fallow 3.27.0 → 3.29.0
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/capabilities.json +139 -69
- package/issue-registry.json +85 -48
- package/package.json +10 -10
- package/schema.json +77 -4
- package/scripts/lazy-verify.js +14 -16
- package/scripts/lazy-verify.test.js +24 -13
- package/scripts/sentinel-path.js +4 -4
- package/scripts/sentinel-path.test.js +1 -4
- package/scripts/verify-binary.js +4 -2
- package/skills/fallow/SKILL.md +2 -2
- package/skills/fallow/references/cli-reference.md +29 -23
- package/skills/fallow/references/issue-types.md +1 -0
- package/skills/fallow/references/mcp.md +5 -3
- package/types/output-contract.d.ts +1200 -97
|
@@ -261,7 +261,7 @@ export type IssueAction = (FixAction | SuppressLineAction | SuppressFileAction |
|
|
|
261
261
|
* Discriminant string for [`FixAction`]. Kebab-case per the JSON output
|
|
262
262
|
* contract.
|
|
263
263
|
*/
|
|
264
|
-
export type FixActionType = ("remove-export" | "delete-file" | "remove-dependency" | "move-dependency" | "remove-enum-member" | "remove-class-member" | "resolve-import" | "install-dependency" | "remove-duplicate" | "move-to-dev" | "move-to-prod" | "refactor-cycle" | "refactor-re-export-cycle" | "refactor-boundary" | "export-type" | "remove-catalog-entry" | "remove-empty-catalog-group" | "update-catalog-reference" | "add-catalog-entry" | "remove-catalog-reference" | "remove-dependency-override" | "fix-dependency-override" | "resolve-policy-violation" | "move-to-server-module" | "split-mixed-barrel" | "hoist-directive" | "wire-server-action" | "provide-inject" | "use-load-data" | "render-component" | "use-component-prop" | "emit-component-event" | "wire-svelte-event" | "resolve-route-collision" | "resolve-dynamic-segment-name-conflict" | "add-suppression-reason" | "remove-stale-suppression")
|
|
264
|
+
export type FixActionType = ("remove-export" | "delete-file" | "remove-dependency" | "move-dependency" | "remove-enum-member" | "remove-class-member" | "resolve-import" | "install-dependency" | "remove-duplicate" | "move-to-dev" | "move-to-prod" | "refactor-cycle" | "refactor-re-export-cycle" | "refactor-boundary" | "export-type" | "migrate-deprecated-export" | "remove-catalog-entry" | "remove-empty-catalog-group" | "update-catalog-reference" | "add-catalog-entry" | "remove-catalog-reference" | "remove-dependency-override" | "fix-dependency-override" | "resolve-policy-violation" | "move-to-server-module" | "split-mixed-barrel" | "hoist-directive" | "wire-server-action" | "provide-inject" | "use-load-data" | "render-component" | "use-component-prop" | "emit-component-event" | "wire-svelte-event" | "resolve-route-collision" | "resolve-dynamic-segment-name-conflict" | "add-suppression-reason" | "remove-stale-suppression")
|
|
265
265
|
/**
|
|
266
266
|
* Singleton discriminant for [`SuppressLineAction`].
|
|
267
267
|
*/
|
|
@@ -301,6 +301,27 @@ export type AddToConfigValue = (string | IgnoreExportsRule[] | {
|
|
|
301
301
|
* hold `Option<AuditIntroduced>`. Renders to the JSON wire as a bare boolean.
|
|
302
302
|
*/
|
|
303
303
|
export type AuditIntroduced = boolean
|
|
304
|
+
/**
|
|
305
|
+
* Gate severity of one finding after rule resolution.
|
|
306
|
+
*
|
|
307
|
+
* It is the severity that `rules` and the matching `overrides[].rules` give
|
|
308
|
+
* the finding for its path. `--fail-on-issues` raises `warn` to `error`. A
|
|
309
|
+
* finding whose rule is `off` is not reported, so there is no `off` value.
|
|
310
|
+
* The type is separate from the health `severity` band, which ranks a
|
|
311
|
+
* finding and does not gate it.
|
|
312
|
+
*
|
|
313
|
+
* The `fallow dead-code` findings gate fails when a finding is `error`.
|
|
314
|
+
* Other gates (regression, stale baseline) decide on their own inputs. Two
|
|
315
|
+
* commands differ: the `fallow audit` `new-only` gate fails only on introduced
|
|
316
|
+
* findings, so an inherited `error` finding does not fail the audit, and the
|
|
317
|
+
* combined command (`fallow` without a subcommand) exits 0 for machine
|
|
318
|
+
* formats.
|
|
319
|
+
*
|
|
320
|
+
* Complexity findings carry the same type. The `complexity-cyclomatic`,
|
|
321
|
+
* `complexity-cognitive` and `complexity-crap` rules set it, and the
|
|
322
|
+
* `fallow health` findings gate and the audit verdict read it.
|
|
323
|
+
*/
|
|
324
|
+
export type EffectiveSeverity = ("error" | "warn")
|
|
304
325
|
/**
|
|
305
326
|
* A per-finding caveat on a dead-code verdict that a file this run never
|
|
306
327
|
* fully analyzed can distort.
|
|
@@ -325,6 +346,10 @@ export type AuditIntroduced = boolean
|
|
|
325
346
|
* caveat" rather than as an error.
|
|
326
347
|
*/
|
|
327
348
|
export type ReachabilityCaveat = ("incomplete-file-analysis" | "incomplete-import-graph")
|
|
349
|
+
/**
|
|
350
|
+
* How a consumer references a deprecated export.
|
|
351
|
+
*/
|
|
352
|
+
export type DeprecatedConsumerKind = ("named-import" | "default-import" | "namespace-import" | "re-export" | "dynamic-import" | "side-effect-import")
|
|
328
353
|
/**
|
|
329
354
|
* Where in package.json a dependency is listed.
|
|
330
355
|
*
|
|
@@ -420,6 +445,22 @@ export type DependencyOverrideMisconfigReason = ("unparsable-key" | "empty-value
|
|
|
420
445
|
* from counts.
|
|
421
446
|
*/
|
|
422
447
|
export type BaselineStalenessAdvisory = ("none" | "zero-overlap" | "partial")
|
|
448
|
+
/**
|
|
449
|
+
* One channel that narrowed a run to part of the project.
|
|
450
|
+
*
|
|
451
|
+
* Serialized as kebab-case inside `scope_reasons` and published as an OPEN
|
|
452
|
+
* set, the same tolerate-unknown contract `gate_outcomes` keys carry: a name
|
|
453
|
+
* this build does not emit means "some narrowing", not an error.
|
|
454
|
+
*
|
|
455
|
+
* Which names a command can emit differs per command, because the three
|
|
456
|
+
* narrowing predicates see different state. `dead-code` reads the flags
|
|
457
|
+
* themselves and can name every channel. `dupes` and `health` see an already
|
|
458
|
+
* resolved changed-file set and report `changed-files`, because at that point
|
|
459
|
+
* the flag that produced it is gone. `health` reports `workspace` for both
|
|
460
|
+
* `--workspace` and `--changed-workspaces` for the same reason. A consumer
|
|
461
|
+
* must therefore not assume a given command emits a given name.
|
|
462
|
+
*/
|
|
463
|
+
export type ScopeReason = ("diff" | "changed-since" | "changed-files" | "workspace" | "changed-workspaces" | "scope" | "file" | "issue-type-filter" | "production")
|
|
423
464
|
/**
|
|
424
465
|
* Status of a regression-check pass.
|
|
425
466
|
*/
|
|
@@ -428,6 +469,29 @@ export type RegressionStatus = ("pass" | "exceeded" | "skipped")
|
|
|
428
469
|
* Interpretation of [`RegressionResult::tolerance`].
|
|
429
470
|
*/
|
|
430
471
|
export type RegressionToleranceKind = ("absolute" | "percentage")
|
|
472
|
+
/**
|
|
473
|
+
* What became of one request on this run.
|
|
474
|
+
*
|
|
475
|
+
* Two-valued today. The value set is OPEN so a later `partial` needs no bump,
|
|
476
|
+
* and it is deliberately not added now: nothing emits it, and a permanently
|
|
477
|
+
* unused value reads as a measurement nobody takes.
|
|
478
|
+
*/
|
|
479
|
+
export type RequestStatus = ("applied" | "not-applied")
|
|
480
|
+
/**
|
|
481
|
+
* What a request governs, and therefore what its failure means.
|
|
482
|
+
*
|
|
483
|
+
* Published on every entry so a consumer selects on the class rather than on
|
|
484
|
+
* a name list. Without it the one sentence a consumer can write for the whole
|
|
485
|
+
* object ("the report is wider than requested") is false for any request that
|
|
486
|
+
* does not narrow, which is how a failed `--sarif-file` write came to be
|
|
487
|
+
* reported as an unscoped run. A request name added later carries its own
|
|
488
|
+
* class, so a consumer written today keeps saying the right thing about it.
|
|
489
|
+
*
|
|
490
|
+
* The value set is OPEN, like the names and the statuses: read a class this
|
|
491
|
+
* build does not recognise as "some request", not as an error, and do not read
|
|
492
|
+
* it as `scope`.
|
|
493
|
+
*/
|
|
494
|
+
export type RequestEffect = ("scope" | "artifact")
|
|
431
495
|
/**
|
|
432
496
|
* A diagnostic about a workspace-discovery candidate.
|
|
433
497
|
*
|
|
@@ -570,6 +634,103 @@ kind: "excluded-by-default-ignore"
|
|
|
570
634
|
*/
|
|
571
635
|
excluded_file_count: number
|
|
572
636
|
kind: "no-source-files-analyzed"
|
|
637
|
+
} | {
|
|
638
|
+
/**
|
|
639
|
+
* Scoring error text.
|
|
640
|
+
*/
|
|
641
|
+
error: string
|
|
642
|
+
kind: "file-scores-unavailable"
|
|
643
|
+
} | {
|
|
644
|
+
/**
|
|
645
|
+
* Which input stopped it, as a kebab-case token: `not-a-repository`,
|
|
646
|
+
* `no-commits`, `invalid-since` or `churn-file-unreadable`. The set is
|
|
647
|
+
* open.
|
|
648
|
+
*
|
|
649
|
+
* The cause decides the remedy, which is why it is on the wire: a run
|
|
650
|
+
* outside a repository is fixed by running fallow inside one, a
|
|
651
|
+
* branch without a commit by committing, a malformed `--since` by
|
|
652
|
+
* respelling the flag, and a churn file that changed under the run by
|
|
653
|
+
* rerunning it. A consumer reading only the kind would offer the first
|
|
654
|
+
* remedy for all four.
|
|
655
|
+
*/
|
|
656
|
+
cause: string
|
|
657
|
+
kind: "hotspots-skipped"
|
|
658
|
+
} | {
|
|
659
|
+
/**
|
|
660
|
+
* `true` when the run also asked for ownership attribution, which a
|
|
661
|
+
* shallow clone skews further by inflating single-author dominance.
|
|
662
|
+
*/
|
|
663
|
+
ownership_requested: boolean
|
|
664
|
+
kind: "shallow-clone"
|
|
665
|
+
} | {
|
|
666
|
+
kind: "unpinned-clock"
|
|
667
|
+
} | {
|
|
668
|
+
/**
|
|
669
|
+
* Which input failed, as a kebab-case token: `invalid-bot-pattern` or
|
|
670
|
+
* `codeowners-parse-failed`. The set is open.
|
|
671
|
+
*/
|
|
672
|
+
cause: string
|
|
673
|
+
/**
|
|
674
|
+
* Underlying error text.
|
|
675
|
+
*/
|
|
676
|
+
error: string
|
|
677
|
+
kind: "ownership-unavailable"
|
|
678
|
+
} | {
|
|
679
|
+
/**
|
|
680
|
+
* Filesystem or JSON error text.
|
|
681
|
+
*/
|
|
682
|
+
error: string
|
|
683
|
+
kind: "trend-snapshot-unreadable"
|
|
684
|
+
} | {
|
|
685
|
+
/**
|
|
686
|
+
* The plugin that read the config, as it labels itself:
|
|
687
|
+
* `module-federation` for a standalone `module-federation.config.*`,
|
|
688
|
+
* or the bundler plugin (`webpack`, `rspack`, `rsbuild`, `vite`) that
|
|
689
|
+
* read the same options inline from its own config.
|
|
690
|
+
*/
|
|
691
|
+
plugin: string
|
|
692
|
+
/**
|
|
693
|
+
* The config key that was present and not fully readable (`exposes`,
|
|
694
|
+
* `remotes`), or the Module Federation runtime function whose
|
|
695
|
+
* argument was not readable (`registerRemotes`, `loadRemote`, `init`,
|
|
696
|
+
* `createInstance`). The set is open.
|
|
697
|
+
*/
|
|
698
|
+
key: string
|
|
699
|
+
/**
|
|
700
|
+
* Why it could not be read, as a kebab-case token:
|
|
701
|
+
* `not-object-literal`, `array-form`, `spread`,
|
|
702
|
+
* `unreadable-entries`, `unrecognized-call`,
|
|
703
|
+
* `import-target-unreadable` or `dynamic-argument`. The set is open.
|
|
704
|
+
*
|
|
705
|
+
* The reason decides the remedy, which is why it is on the wire: a
|
|
706
|
+
* value that is not an object literal is fixed by writing one, while
|
|
707
|
+
* unreadable entries are fixed by naming those entries in the config
|
|
708
|
+
* option the message points at.
|
|
709
|
+
*/
|
|
710
|
+
reason: string
|
|
711
|
+
kind: "plugin-config-unreadable"
|
|
712
|
+
} | {
|
|
713
|
+
/**
|
|
714
|
+
* The plugin that read the config, as it labels itself (`nuxt`).
|
|
715
|
+
*/
|
|
716
|
+
plugin: string
|
|
717
|
+
/**
|
|
718
|
+
* The config key whose effect is not modeled (`components`,
|
|
719
|
+
* `imports`), or the virtual module a file reads (`#components`,
|
|
720
|
+
* `#imports`). The set is open.
|
|
721
|
+
*/
|
|
722
|
+
key: string
|
|
723
|
+
/**
|
|
724
|
+
* Why the effect is not modeled, as a kebab-case token:
|
|
725
|
+
* `key-effect-not-modeled` when the key's own value is the reason,
|
|
726
|
+
* `config-property-unreadable` when a top-level property of the same
|
|
727
|
+
* config file could not be read statically, so no surface in it can
|
|
728
|
+
* be classified at all. The set is open.
|
|
729
|
+
*/
|
|
730
|
+
reason: string
|
|
731
|
+
kind: "plugin-effect-not-modeled"
|
|
732
|
+
} | {
|
|
733
|
+
kind: "coverage-auto-detected"
|
|
573
734
|
})
|
|
574
735
|
/**
|
|
575
736
|
* Discriminant for [`CloneGroupAction::kind`]. Mirrors the action types
|
|
@@ -641,6 +802,10 @@ export type HealthFindingActionType = ("refactor-function" | "add-tests" | "incr
|
|
|
641
802
|
* Coverage model used for CRAP score computation.
|
|
642
803
|
*/
|
|
643
804
|
export type CoverageModel = ("static_binary" | "static_estimated" | "istanbul")
|
|
805
|
+
/**
|
|
806
|
+
* Input format of the measured coverage behind `CoverageModel::Istanbul`.
|
|
807
|
+
*/
|
|
808
|
+
export type CoverageInputFormat = ("istanbul" | "v8")
|
|
644
809
|
/**
|
|
645
810
|
* Whether CRAP findings in the report used one coverage-source kind or a mix.
|
|
646
811
|
*/
|
|
@@ -1092,7 +1257,7 @@ export type SecurityUrlShape = ("fixed-origin-dynamic-path" | "dynamic-origin")
|
|
|
1092
1257
|
*/
|
|
1093
1258
|
export type SecurityRuntimeState = ("runtime-hot" | "runtime-cold" | "never-executed" | "low-traffic" | "coverage-unavailable" | "runtime-unknown")
|
|
1094
1259
|
/**
|
|
1095
|
-
*
|
|
1260
|
+
* Family of a control pattern observed in a file on an import trace.
|
|
1096
1261
|
*/
|
|
1097
1262
|
export type SecurityControlKind = ("sanitization" | "validation" | "authentication" | "authorization")
|
|
1098
1263
|
/**
|
|
@@ -1140,7 +1305,7 @@ export type FeatureFlagActionType = ("investigate-flag" | "suppress-line")
|
|
|
1140
1305
|
* Independently-versioned wire-version newtype for the brief envelope.
|
|
1141
1306
|
* Serializes as the integer `REVIEW_BRIEF_SCHEMA_VERSION`.
|
|
1142
1307
|
*/
|
|
1143
|
-
export type ReviewBriefSchemaVersion =
|
|
1308
|
+
export type ReviewBriefSchemaVersion = 11
|
|
1144
1309
|
/**
|
|
1145
1310
|
* The exactly-three shippable decision categories (the SOLID-3). No cut category
|
|
1146
1311
|
* (abstraction / deletion / convention / irreversibility) is representable: this
|
|
@@ -1357,13 +1522,13 @@ base_snapshot_skipped?: (boolean | null)
|
|
|
1357
1522
|
summary: AuditSummary
|
|
1358
1523
|
attribution: AuditAttribution
|
|
1359
1524
|
/**
|
|
1360
|
-
*
|
|
1361
|
-
*
|
|
1362
|
-
* integration reads the verdict instead of
|
|
1363
|
-
* it usually cannot see. A gate fails the
|
|
1364
|
-
* AND `enforced` is true.
|
|
1365
|
-
*
|
|
1366
|
-
*
|
|
1525
|
+
* The verdict of every gate this run evaluated, keyed by name. The CLI
|
|
1526
|
+
* always emits it, with the command's default exit rule in it also when
|
|
1527
|
+
* no flag armed a gate, so a CI integration reads the verdict instead of
|
|
1528
|
+
* guessing from a process status it usually cannot see. A gate fails the
|
|
1529
|
+
* build when `status` is `fail` AND `enforced` is true. The typed
|
|
1530
|
+
* programmatic API runs no CLI gate and leaves it absent. See
|
|
1531
|
+
* [`crate::GateOutcomes`].
|
|
1367
1532
|
*/
|
|
1368
1533
|
gate_outcomes?: (GateOutcomes | null)
|
|
1369
1534
|
/**
|
|
@@ -1449,24 +1614,25 @@ styling_inherited: number
|
|
|
1449
1614
|
duplication_demoted: number
|
|
1450
1615
|
}
|
|
1451
1616
|
/**
|
|
1452
|
-
*
|
|
1617
|
+
* The verdict of every gate a run evaluated, keyed by name.
|
|
1453
1618
|
*
|
|
1454
|
-
*
|
|
1455
|
-
*
|
|
1456
|
-
*
|
|
1457
|
-
*
|
|
1458
|
-
*
|
|
1619
|
+
* A gate is armed by a flag or by config. The default exit rule of a command
|
|
1620
|
+
* is always in the object, also when no flag armed a gate:
|
|
1621
|
+
* `error-severity-findings` on `dead-code`, `check` and the combined run
|
|
1622
|
+
* (with `health-findings` when the combined run analyzed health),
|
|
1623
|
+
* `health-findings` on `health`, `security-advisory` on `security` and
|
|
1624
|
+
* `audit-verdict` on `audit`. A reader of the JSON sees a failing run without
|
|
1625
|
+
* the exit code. `dupes` has no default exit rule, so a `dupes` run that armed
|
|
1626
|
+
* no gate carries no object and always exits 0.
|
|
1459
1627
|
*
|
|
1460
|
-
*
|
|
1461
|
-
*
|
|
1462
|
-
* is never emitted: it would assert that gates were armed and none tripped,
|
|
1463
|
-
* which is a different and false claim.
|
|
1628
|
+
* An empty object is never emitted. The typed programmatic API runs no CLI
|
|
1629
|
+
* gate and leaves the object absent.
|
|
1464
1630
|
*
|
|
1465
1631
|
* The names this build can emit are `error-severity-findings`, `regression`,
|
|
1466
1632
|
* `stale-baseline`, `duplication-threshold`, `health-min-score`,
|
|
1467
1633
|
* `health-min-severity`, `health-findings`, `health-coverage-gaps`,
|
|
1468
|
-
* `health-runtime-coverage`, `security`, `security-advisory`, `audit-verdict
|
|
1469
|
-
*
|
|
1634
|
+
* `health-runtime-coverage`, `security`, `security-advisory`, `audit-verdict`,
|
|
1635
|
+
* `type-aware-require` and `parse-error`. The set is OPEN: a name a consumer does not
|
|
1470
1636
|
* recognise means "some gate", not an error.
|
|
1471
1637
|
*/
|
|
1472
1638
|
export interface GateOutcomes {
|
|
@@ -1493,15 +1659,17 @@ export interface GateOutcome {
|
|
|
1493
1659
|
status: GateStatus
|
|
1494
1660
|
/**
|
|
1495
1661
|
* True when a `fail` from this gate makes the run exit non-zero. False
|
|
1496
|
-
* when the verdict is published for information only
|
|
1497
|
-
*
|
|
1662
|
+
* when the verdict is published for information only: the gate was never
|
|
1663
|
+
* armed, the run was told never to fail, or the combined machine formats
|
|
1664
|
+
* exit 0 for the gate.
|
|
1498
1665
|
*/
|
|
1499
1666
|
enforced: boolean
|
|
1500
1667
|
/**
|
|
1501
1668
|
* The measured value the gate compared, when there is one: the duplication
|
|
1502
|
-
* percentage, the health score,
|
|
1503
|
-
* severity floor
|
|
1504
|
-
* three reads as `3.0`. Absent for
|
|
1669
|
+
* percentage, the health score, the number of findings at or above the
|
|
1670
|
+
* severity floor, or the number of files in `files`. Whole numbers are
|
|
1671
|
+
* carried as JSON numbers, so a count of three reads as `3.0`. Absent for
|
|
1672
|
+
* gates that compare no number.
|
|
1505
1673
|
*/
|
|
1506
1674
|
observed?: (number | null)
|
|
1507
1675
|
/**
|
|
@@ -1519,6 +1687,34 @@ threshold?: (number | null)
|
|
|
1519
1687
|
* object. Absent for gates whose numbers speak for themselves.
|
|
1520
1688
|
*/
|
|
1521
1689
|
threshold_label?: (string | null)
|
|
1690
|
+
/**
|
|
1691
|
+
* The files the gate judged, for a gate that judges files rather than a
|
|
1692
|
+
* number. Only `parse-error` sets it: one item per file that did not
|
|
1693
|
+
* parse cleanly, sorted by path. Absent when the list is empty.
|
|
1694
|
+
*/
|
|
1695
|
+
files?: GateFile[]
|
|
1696
|
+
}
|
|
1697
|
+
/**
|
|
1698
|
+
* One file a file-judging gate names, with the reason the gate counted it.
|
|
1699
|
+
*
|
|
1700
|
+
* Today only `parse-error` emits it. The item carries the same facts as the
|
|
1701
|
+
* `source-parse-degraded` entry in `workspace_diagnostics[]` for that file,
|
|
1702
|
+
* so a consumer can act on the gate without a join.
|
|
1703
|
+
*/
|
|
1704
|
+
export interface GateFile {
|
|
1705
|
+
/**
|
|
1706
|
+
* The file path, relative to the project root, with `/` separators.
|
|
1707
|
+
*/
|
|
1708
|
+
path: string
|
|
1709
|
+
/**
|
|
1710
|
+
* The number of parser errors for the file.
|
|
1711
|
+
*/
|
|
1712
|
+
error_count: number
|
|
1713
|
+
/**
|
|
1714
|
+
* True when the parser stopped in the file instead of recovering, so the
|
|
1715
|
+
* analysis saw only the part before the error.
|
|
1716
|
+
*/
|
|
1717
|
+
panicked: boolean
|
|
1522
1718
|
}
|
|
1523
1719
|
/**
|
|
1524
1720
|
* Metric and rule definitions emitted under `_meta` when `--explain` is
|
|
@@ -2484,6 +2680,12 @@ unused_types: UnusedTypeFinding[]
|
|
|
2484
2680
|
* typed `actions` array natively.
|
|
2485
2681
|
*/
|
|
2486
2682
|
private_type_leaks: PrivateTypeLeakFinding[]
|
|
2683
|
+
/**
|
|
2684
|
+
* Exports marked `@deprecated` that still have at least one consumer in
|
|
2685
|
+
* a reachable file. Wrapped in [`DeprecatedExportInUseFinding`]. Opt-in: the
|
|
2686
|
+
* `deprecated-exports-in-use` rule defaults to `off`.
|
|
2687
|
+
*/
|
|
2688
|
+
deprecated_exports_in_use?: DeprecatedExportInUseFinding[]
|
|
2487
2689
|
/**
|
|
2488
2690
|
* Dependencies listed in package.json but never imported. Wrapped in
|
|
2489
2691
|
* [`UnusedDependencyFinding`] so each entry carries a typed `actions`
|
|
@@ -2811,15 +3013,25 @@ baseline_staleness?: (BaselineStaleness | null)
|
|
|
2811
3013
|
*/
|
|
2812
3014
|
regression?: (RegressionResult | null)
|
|
2813
3015
|
/**
|
|
2814
|
-
*
|
|
2815
|
-
*
|
|
2816
|
-
* integration reads the verdict instead of
|
|
2817
|
-
* it usually cannot see. A gate fails the
|
|
2818
|
-
* AND `enforced` is true.
|
|
2819
|
-
*
|
|
2820
|
-
*
|
|
3016
|
+
* The verdict of every gate this run evaluated, keyed by name. The CLI
|
|
3017
|
+
* always emits it, with the command's default exit rule in it also when
|
|
3018
|
+
* no flag armed a gate, so a CI integration reads the verdict instead of
|
|
3019
|
+
* guessing from a process status it usually cannot see. A gate fails the
|
|
3020
|
+
* build when `status` is `fail` AND `enforced` is true. The typed
|
|
3021
|
+
* programmatic API runs no CLI gate and leaves it absent. See
|
|
3022
|
+
* [`crate::GateOutcomes`].
|
|
2821
3023
|
*/
|
|
2822
3024
|
gate_outcomes?: (GateOutcomes | null)
|
|
3025
|
+
/**
|
|
3026
|
+
* Every narrowing or shaping request this run RECEIVED, keyed by name,
|
|
3027
|
+
* absent when it was asked for nothing. An entry whose `status` is not
|
|
3028
|
+
* `applied` means the run could not do what it was asked and reported
|
|
3029
|
+
* something WIDER instead, so what follows is a valid report of a scope
|
|
3030
|
+
* nobody requested. Honoured requests are published too, with
|
|
3031
|
+
* `status: "applied"`, so an absent object means "nothing was asked for",
|
|
3032
|
+
* never "nothing failed". See [`crate::RequestOutcomes`].
|
|
3033
|
+
*/
|
|
3034
|
+
request_outcomes?: (RequestOutcomes | null)
|
|
2823
3035
|
/**
|
|
2824
3036
|
* `_meta` block with docs and rule definitions, when `--explain` was
|
|
2825
3037
|
* passed.
|
|
@@ -2838,10 +3050,12 @@ _meta?: (Meta | null)
|
|
|
2838
3050
|
* `source-parse-degraded`;
|
|
2839
3051
|
* - dead-code analysis, from the dependency-catalog and override
|
|
2840
3052
|
* detectors: `malformed-pnpm-workspace-yaml`,
|
|
2841
|
-
* `bun-lockb-override-resolution-skipped
|
|
3053
|
+
* `bun-lockb-override-resolution-skipped`;
|
|
3054
|
+
* - framework plugins, while they read their own build configs:
|
|
3055
|
+
* `plugin-config-unreadable`, `plugin-effect-not-modeled`.
|
|
2842
3056
|
*
|
|
2843
|
-
* Analysis-stage kinds therefore reach only the envelopes
|
|
2844
|
-
* includes a dead-code analyze pass, never a standalone
|
|
3057
|
+
* Analysis-stage and plugin-stage kinds therefore reach only the envelopes
|
|
3058
|
+
* whose run includes a dead-code analyze pass, never a standalone
|
|
2845
3059
|
* `fallow dupes --format json`. `path` is project-root-relative with
|
|
2846
3060
|
* forward slashes; the array is omitted when empty. The same list is
|
|
2847
3061
|
* repeated on each top-level command's envelope so single-command
|
|
@@ -2924,6 +3138,10 @@ unused_types: number
|
|
|
2924
3138
|
* Public exports whose signature references same-file private types.
|
|
2925
3139
|
*/
|
|
2926
3140
|
private_type_leaks: number
|
|
3141
|
+
/**
|
|
3142
|
+
* Exports marked `@deprecated` that are still referenced.
|
|
3143
|
+
*/
|
|
3144
|
+
deprecated_exports_in_use: number
|
|
2927
3145
|
/**
|
|
2928
3146
|
* Combined count of unused entries across `dependencies`,
|
|
2929
3147
|
* `devDependencies`, and `optionalDependencies`. The per-section
|
|
@@ -3105,6 +3323,13 @@ actions: IssueAction[]
|
|
|
3105
3323
|
* the merge-base. `None` when serialized directly from Rust.
|
|
3106
3324
|
*/
|
|
3107
3325
|
introduced?: (AuditIntroduced | null)
|
|
3326
|
+
/**
|
|
3327
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
3328
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
3329
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
3330
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
3331
|
+
*/
|
|
3332
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3108
3333
|
/**
|
|
3109
3334
|
* Advisory caveats on the reachability verdict behind this finding.
|
|
3110
3335
|
* Sorted, deduplicated, and omitted from the wire when empty, so a run
|
|
@@ -3308,6 +3533,17 @@ span_start: number
|
|
|
3308
3533
|
* Whether this finding comes from a barrel/index re-export rather than the source definition.
|
|
3309
3534
|
*/
|
|
3310
3535
|
is_re_export: boolean
|
|
3536
|
+
/**
|
|
3537
|
+
* Whether the export's leading JSDoc carries `@deprecated`. Absent from
|
|
3538
|
+
* the wire when false.
|
|
3539
|
+
*/
|
|
3540
|
+
deprecated?: boolean
|
|
3541
|
+
/**
|
|
3542
|
+
* Plain-text message of the `@deprecated` tag, capped at
|
|
3543
|
+
* [`DEPRECATED_REASON_MAX_CHARS`] characters. Absent when the export is
|
|
3544
|
+
* not deprecated or the tag carries no text.
|
|
3545
|
+
*/
|
|
3546
|
+
deprecated_reason?: (string | null)
|
|
3311
3547
|
/**
|
|
3312
3548
|
* Suggested next steps. Always emitted (possibly empty for
|
|
3313
3549
|
* forward-compat).
|
|
@@ -3322,6 +3558,13 @@ semantic?: (SemanticCandidateDecision | null)
|
|
|
3322
3558
|
* the merge-base.
|
|
3323
3559
|
*/
|
|
3324
3560
|
introduced?: (AuditIntroduced | null)
|
|
3561
|
+
/**
|
|
3562
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
3563
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
3564
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
3565
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
3566
|
+
*/
|
|
3567
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3325
3568
|
/**
|
|
3326
3569
|
* Advisory caveats on the reachability verdict behind this finding.
|
|
3327
3570
|
* Sorted, deduplicated, and omitted from the wire when empty. Never gates
|
|
@@ -3365,6 +3608,17 @@ span_start: number
|
|
|
3365
3608
|
* Whether this finding comes from a barrel/index re-export rather than the source definition.
|
|
3366
3609
|
*/
|
|
3367
3610
|
is_re_export: boolean
|
|
3611
|
+
/**
|
|
3612
|
+
* Whether the export's leading JSDoc carries `@deprecated`. Absent from
|
|
3613
|
+
* the wire when false.
|
|
3614
|
+
*/
|
|
3615
|
+
deprecated?: boolean
|
|
3616
|
+
/**
|
|
3617
|
+
* Plain-text message of the `@deprecated` tag, capped at
|
|
3618
|
+
* [`DEPRECATED_REASON_MAX_CHARS`] characters. Absent when the export is
|
|
3619
|
+
* not deprecated or the tag carries no text.
|
|
3620
|
+
*/
|
|
3621
|
+
deprecated_reason?: (string | null)
|
|
3368
3622
|
/**
|
|
3369
3623
|
* Suggested next steps. Always emitted (possibly empty for
|
|
3370
3624
|
* forward-compat).
|
|
@@ -3379,6 +3633,13 @@ semantic?: (SemanticCandidateDecision | null)
|
|
|
3379
3633
|
* the merge-base.
|
|
3380
3634
|
*/
|
|
3381
3635
|
introduced?: (AuditIntroduced | null)
|
|
3636
|
+
/**
|
|
3637
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
3638
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
3639
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
3640
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
3641
|
+
*/
|
|
3642
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3382
3643
|
/**
|
|
3383
3644
|
* Advisory caveats on the reachability verdict behind this finding.
|
|
3384
3645
|
* A type export rests on exactly the reachability test an
|
|
@@ -3433,6 +3694,103 @@ actions: IssueAction[]
|
|
|
3433
3694
|
* the merge-base.
|
|
3434
3695
|
*/
|
|
3435
3696
|
introduced?: (AuditIntroduced | null)
|
|
3697
|
+
/**
|
|
3698
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
3699
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
3700
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
3701
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
3702
|
+
*/
|
|
3703
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3704
|
+
}
|
|
3705
|
+
/**
|
|
3706
|
+
* Wire-shape envelope for a [`DeprecatedExportInUse`] finding. Carries a
|
|
3707
|
+
* manual `migrate-deprecated-export` primary action plus a `suppress-line`
|
|
3708
|
+
* secondary. Never auto-fixable: fallow does not rewrite consumers.
|
|
3709
|
+
*/
|
|
3710
|
+
export interface DeprecatedExportInUseFinding {
|
|
3711
|
+
/**
|
|
3712
|
+
* File that declares the deprecated export.
|
|
3713
|
+
*/
|
|
3714
|
+
path: string
|
|
3715
|
+
/**
|
|
3716
|
+
* Name of the deprecated export.
|
|
3717
|
+
*/
|
|
3718
|
+
export_name: string
|
|
3719
|
+
/**
|
|
3720
|
+
* Whether this is a type-only export.
|
|
3721
|
+
*/
|
|
3722
|
+
is_type_only: boolean
|
|
3723
|
+
/**
|
|
3724
|
+
* 1-based line number of the export.
|
|
3725
|
+
*/
|
|
3726
|
+
line: number
|
|
3727
|
+
/**
|
|
3728
|
+
* 0-based byte column offset of the export.
|
|
3729
|
+
*/
|
|
3730
|
+
col: number
|
|
3731
|
+
/**
|
|
3732
|
+
* Byte offset of the export in the source file.
|
|
3733
|
+
*/
|
|
3734
|
+
span_start: number
|
|
3735
|
+
/**
|
|
3736
|
+
* Plain-text message of the `@deprecated` tag, capped at
|
|
3737
|
+
* [`DEPRECATED_REASON_MAX_CHARS`] characters. Absent when the tag
|
|
3738
|
+
* carries no text.
|
|
3739
|
+
*/
|
|
3740
|
+
deprecated_reason?: (string | null)
|
|
3741
|
+
/**
|
|
3742
|
+
* Exact number of distinct consumers: reference sites in reachable
|
|
3743
|
+
* files, one per path, line, column and kind. `consumers` holds the
|
|
3744
|
+
* first [`DEPRECATED_CONSUMER_SAMPLE_CAP`] of them, so the sample is
|
|
3745
|
+
* complete when this count is at most the cap.
|
|
3746
|
+
*/
|
|
3747
|
+
consumer_count: number
|
|
3748
|
+
/**
|
|
3749
|
+
* Consumer sample sorted by path, line, column and kind, capped at
|
|
3750
|
+
* [`DEPRECATED_CONSUMER_SAMPLE_CAP`] entries.
|
|
3751
|
+
*/
|
|
3752
|
+
consumers: DeprecatedExportConsumer[]
|
|
3753
|
+
/**
|
|
3754
|
+
* True when the export is part of the public API: it lives in an entry
|
|
3755
|
+
* point, or a re-export chain reaches an entry point. External consumers
|
|
3756
|
+
* are not visible, so the finding makes no removal claim.
|
|
3757
|
+
*/
|
|
3758
|
+
public_api: boolean
|
|
3759
|
+
/**
|
|
3760
|
+
* Suggested next steps. Always emitted (possibly empty for
|
|
3761
|
+
* forward-compat).
|
|
3762
|
+
*/
|
|
3763
|
+
actions: IssueAction[]
|
|
3764
|
+
/**
|
|
3765
|
+
* Set by the audit pass when this finding is introduced relative to
|
|
3766
|
+
* the merge-base.
|
|
3767
|
+
*/
|
|
3768
|
+
introduced?: (AuditIntroduced | null)
|
|
3769
|
+
/**
|
|
3770
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
3771
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
3772
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
3773
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
3774
|
+
*/
|
|
3775
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3776
|
+
}
|
|
3777
|
+
/**
|
|
3778
|
+
* One file location that references a deprecated export.
|
|
3779
|
+
*/
|
|
3780
|
+
export interface DeprecatedExportConsumer {
|
|
3781
|
+
/**
|
|
3782
|
+
* File that references the deprecated export.
|
|
3783
|
+
*/
|
|
3784
|
+
path: string
|
|
3785
|
+
/**
|
|
3786
|
+
* 1-based line number of the import or re-export statement.
|
|
3787
|
+
*/
|
|
3788
|
+
line: number
|
|
3789
|
+
/**
|
|
3790
|
+
* 0-based byte column offset of the import or re-export statement.
|
|
3791
|
+
*/
|
|
3792
|
+
col: number
|
|
3793
|
+
kind: DeprecatedConsumerKind
|
|
3436
3794
|
}
|
|
3437
3795
|
/**
|
|
3438
3796
|
* Wire-shape envelope for an [`UnusedDependency`] finding consumed under
|
|
@@ -3470,6 +3828,13 @@ actions: IssueAction[]
|
|
|
3470
3828
|
* the merge-base.
|
|
3471
3829
|
*/
|
|
3472
3830
|
introduced?: (AuditIntroduced | null)
|
|
3831
|
+
/**
|
|
3832
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
3833
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
3834
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
3835
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
3836
|
+
*/
|
|
3837
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3473
3838
|
/**
|
|
3474
3839
|
* Advisory caveats on the verdict behind this finding. A dependency is
|
|
3475
3840
|
* reported unused when NO module in the project imports its specifier,
|
|
@@ -3516,6 +3881,13 @@ actions: IssueAction[]
|
|
|
3516
3881
|
* the merge-base.
|
|
3517
3882
|
*/
|
|
3518
3883
|
introduced?: (AuditIntroduced | null)
|
|
3884
|
+
/**
|
|
3885
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
3886
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
3887
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
3888
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
3889
|
+
*/
|
|
3890
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3519
3891
|
/**
|
|
3520
3892
|
* Advisory caveats on the verdict behind this finding. A dependency is
|
|
3521
3893
|
* reported unused when NO module in the project imports its specifier,
|
|
@@ -3562,6 +3934,13 @@ actions: IssueAction[]
|
|
|
3562
3934
|
* the merge-base.
|
|
3563
3935
|
*/
|
|
3564
3936
|
introduced?: (AuditIntroduced | null)
|
|
3937
|
+
/**
|
|
3938
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
3939
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
3940
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
3941
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
3942
|
+
*/
|
|
3943
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3565
3944
|
/**
|
|
3566
3945
|
* Advisory caveats on the verdict behind this finding. A dependency is
|
|
3567
3946
|
* reported unused when NO module in the project imports its specifier,
|
|
@@ -3608,6 +3987,13 @@ actions: IssueAction[]
|
|
|
3608
3987
|
* the merge-base.
|
|
3609
3988
|
*/
|
|
3610
3989
|
introduced?: (AuditIntroduced | null)
|
|
3990
|
+
/**
|
|
3991
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
3992
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
3993
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
3994
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
3995
|
+
*/
|
|
3996
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3611
3997
|
/**
|
|
3612
3998
|
* Advisory caveats on the verdict behind this finding. A member's usage
|
|
3613
3999
|
* is collected by walking the member accesses of every module the run
|
|
@@ -3660,6 +4046,13 @@ semantic?: (SemanticCandidateDecision | null)
|
|
|
3660
4046
|
* the merge-base.
|
|
3661
4047
|
*/
|
|
3662
4048
|
introduced?: (AuditIntroduced | null)
|
|
4049
|
+
/**
|
|
4050
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4051
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4052
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4053
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4054
|
+
*/
|
|
4055
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3663
4056
|
/**
|
|
3664
4057
|
* Advisory caveats on the verdict behind this finding. A class member's
|
|
3665
4058
|
* usage is collected by the same reachability-free member-access walk an
|
|
@@ -3713,6 +4106,13 @@ actions: IssueAction[]
|
|
|
3713
4106
|
* the merge-base.
|
|
3714
4107
|
*/
|
|
3715
4108
|
introduced?: (AuditIntroduced | null)
|
|
4109
|
+
/**
|
|
4110
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4111
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4112
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4113
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4114
|
+
*/
|
|
4115
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3716
4116
|
/**
|
|
3717
4117
|
* Advisory caveats on the verdict behind this finding. A store member's
|
|
3718
4118
|
* usage is collected by the same reachability-free member-access walk a
|
|
@@ -3763,6 +4163,13 @@ actions: IssueAction[]
|
|
|
3763
4163
|
* the merge-base.
|
|
3764
4164
|
*/
|
|
3765
4165
|
introduced?: (AuditIntroduced | null)
|
|
4166
|
+
/**
|
|
4167
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4168
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4169
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4170
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4171
|
+
*/
|
|
4172
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3766
4173
|
}
|
|
3767
4174
|
/**
|
|
3768
4175
|
* Wire-shape envelope for an [`UnlistedDependency`] finding. Carries an
|
|
@@ -3789,6 +4196,13 @@ actions: IssueAction[]
|
|
|
3789
4196
|
* the merge-base.
|
|
3790
4197
|
*/
|
|
3791
4198
|
introduced?: (AuditIntroduced | null)
|
|
4199
|
+
/**
|
|
4200
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4201
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4202
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4203
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4204
|
+
*/
|
|
4205
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3792
4206
|
}
|
|
3793
4207
|
/**
|
|
3794
4208
|
* A location where an import occurs.
|
|
@@ -3839,6 +4253,13 @@ actions: IssueAction[]
|
|
|
3839
4253
|
* the merge-base.
|
|
3840
4254
|
*/
|
|
3841
4255
|
introduced?: (AuditIntroduced | null)
|
|
4256
|
+
/**
|
|
4257
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4258
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4259
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4260
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4261
|
+
*/
|
|
4262
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3842
4263
|
}
|
|
3843
4264
|
/**
|
|
3844
4265
|
* A location where a duplicate export appears.
|
|
@@ -3885,6 +4306,13 @@ actions: IssueAction[]
|
|
|
3885
4306
|
* the merge-base.
|
|
3886
4307
|
*/
|
|
3887
4308
|
introduced?: (AuditIntroduced | null)
|
|
4309
|
+
/**
|
|
4310
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4311
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4312
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4313
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4314
|
+
*/
|
|
4315
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3888
4316
|
}
|
|
3889
4317
|
/**
|
|
3890
4318
|
* Wire-shape envelope for a [`TestOnlyDependency`] finding. Carries a
|
|
@@ -3915,6 +4343,13 @@ actions: IssueAction[]
|
|
|
3915
4343
|
* the merge-base.
|
|
3916
4344
|
*/
|
|
3917
4345
|
introduced?: (AuditIntroduced | null)
|
|
4346
|
+
/**
|
|
4347
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4348
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4349
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4350
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4351
|
+
*/
|
|
4352
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3918
4353
|
}
|
|
3919
4354
|
/**
|
|
3920
4355
|
* Wire-shape envelope for a [`DevDependencyInProduction`] finding. Carries a
|
|
@@ -3946,6 +4381,13 @@ actions: IssueAction[]
|
|
|
3946
4381
|
* the merge-base.
|
|
3947
4382
|
*/
|
|
3948
4383
|
introduced?: (AuditIntroduced | null)
|
|
4384
|
+
/**
|
|
4385
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4386
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4387
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4388
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4389
|
+
*/
|
|
4390
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3949
4391
|
}
|
|
3950
4392
|
/**
|
|
3951
4393
|
* Wire-shape envelope for a [`CircularDependency`] finding. Mirrors
|
|
@@ -3993,6 +4435,13 @@ actions: IssueAction[]
|
|
|
3993
4435
|
* the merge-base.
|
|
3994
4436
|
*/
|
|
3995
4437
|
introduced?: (AuditIntroduced | null)
|
|
4438
|
+
/**
|
|
4439
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4440
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4441
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4442
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4443
|
+
*/
|
|
4444
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
3996
4445
|
}
|
|
3997
4446
|
/**
|
|
3998
4447
|
* One import hop in a circular dependency: the file containing the import
|
|
@@ -4048,6 +4497,13 @@ actions: IssueAction[]
|
|
|
4048
4497
|
* the merge-base.
|
|
4049
4498
|
*/
|
|
4050
4499
|
introduced?: (AuditIntroduced | null)
|
|
4500
|
+
/**
|
|
4501
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4502
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4503
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4504
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4505
|
+
*/
|
|
4506
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4051
4507
|
}
|
|
4052
4508
|
/**
|
|
4053
4509
|
* Wire-shape envelope for a [`BoundaryViolation`] finding. Mirrors
|
|
@@ -4094,6 +4550,13 @@ actions: IssueAction[]
|
|
|
4094
4550
|
* the merge-base.
|
|
4095
4551
|
*/
|
|
4096
4552
|
introduced?: (AuditIntroduced | null)
|
|
4553
|
+
/**
|
|
4554
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4555
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4556
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4557
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4558
|
+
*/
|
|
4559
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4097
4560
|
}
|
|
4098
4561
|
/**
|
|
4099
4562
|
* Wire-shape envelope for a [`BoundaryCoverageViolation`] finding. Carries
|
|
@@ -4122,6 +4585,13 @@ actions: IssueAction[]
|
|
|
4122
4585
|
* the merge-base.
|
|
4123
4586
|
*/
|
|
4124
4587
|
introduced?: (AuditIntroduced | null)
|
|
4588
|
+
/**
|
|
4589
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4590
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4591
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4592
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4593
|
+
*/
|
|
4594
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4125
4595
|
}
|
|
4126
4596
|
/**
|
|
4127
4597
|
* Wire-shape envelope for a [`BoundaryCallViolation`] finding. Carries
|
|
@@ -4163,6 +4633,13 @@ actions: IssueAction[]
|
|
|
4163
4633
|
* the merge-base.
|
|
4164
4634
|
*/
|
|
4165
4635
|
introduced?: (AuditIntroduced | null)
|
|
4636
|
+
/**
|
|
4637
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4638
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4639
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4640
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4641
|
+
*/
|
|
4642
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4166
4643
|
}
|
|
4167
4644
|
/**
|
|
4168
4645
|
* Wire-shape envelope for a [`PolicyViolation`] finding. Carries actions for
|
|
@@ -4240,6 +4717,13 @@ missing_reason?: boolean
|
|
|
4240
4717
|
* Suggested next steps. Always emitted.
|
|
4241
4718
|
*/
|
|
4242
4719
|
actions: IssueAction[]
|
|
4720
|
+
/**
|
|
4721
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4722
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4723
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4724
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4725
|
+
*/
|
|
4726
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4243
4727
|
}
|
|
4244
4728
|
/**
|
|
4245
4729
|
* Wire-shape envelope for an [`UnusedCatalogEntry`] finding. Per-instance
|
|
@@ -4280,6 +4764,13 @@ actions: IssueAction[]
|
|
|
4280
4764
|
* the merge-base.
|
|
4281
4765
|
*/
|
|
4282
4766
|
introduced?: (AuditIntroduced | null)
|
|
4767
|
+
/**
|
|
4768
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4769
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4770
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4771
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4772
|
+
*/
|
|
4773
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4283
4774
|
}
|
|
4284
4775
|
/**
|
|
4285
4776
|
* Wire-shape envelope for an [`EmptyCatalogGroup`] finding. Carries a
|
|
@@ -4308,6 +4799,13 @@ actions: IssueAction[]
|
|
|
4308
4799
|
* the merge-base.
|
|
4309
4800
|
*/
|
|
4310
4801
|
introduced?: (AuditIntroduced | null)
|
|
4802
|
+
/**
|
|
4803
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4804
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4805
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4806
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4807
|
+
*/
|
|
4808
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4311
4809
|
}
|
|
4312
4810
|
/**
|
|
4313
4811
|
* Wire-shape envelope for an [`UnresolvedCatalogReference`] finding. The
|
|
@@ -4358,6 +4856,13 @@ actions: IssueAction[]
|
|
|
4358
4856
|
* the merge-base.
|
|
4359
4857
|
*/
|
|
4360
4858
|
introduced?: (AuditIntroduced | null)
|
|
4859
|
+
/**
|
|
4860
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4861
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4862
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4863
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4864
|
+
*/
|
|
4865
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4361
4866
|
}
|
|
4362
4867
|
/**
|
|
4363
4868
|
* Wire-shape envelope for an [`UnusedDependencyOverride`] finding. Carries
|
|
@@ -4420,6 +4925,13 @@ actions: IssueAction[]
|
|
|
4420
4925
|
* the merge-base.
|
|
4421
4926
|
*/
|
|
4422
4927
|
introduced?: (AuditIntroduced | null)
|
|
4928
|
+
/**
|
|
4929
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4930
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4931
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4932
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4933
|
+
*/
|
|
4934
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4423
4935
|
}
|
|
4424
4936
|
/**
|
|
4425
4937
|
* Wire-shape envelope for a [`MisconfiguredDependencyOverride`] finding.
|
|
@@ -4469,6 +4981,13 @@ actions: IssueAction[]
|
|
|
4469
4981
|
* the merge-base.
|
|
4470
4982
|
*/
|
|
4471
4983
|
introduced?: (AuditIntroduced | null)
|
|
4984
|
+
/**
|
|
4985
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
4986
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
4987
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
4988
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
4989
|
+
*/
|
|
4990
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4472
4991
|
}
|
|
4473
4992
|
/**
|
|
4474
4993
|
* Wire-shape envelope for an [`InvalidClientExport`] finding. There is no safe
|
|
@@ -4510,6 +5029,13 @@ actions: IssueAction[]
|
|
|
4510
5029
|
* the merge-base.
|
|
4511
5030
|
*/
|
|
4512
5031
|
introduced?: (AuditIntroduced | null)
|
|
5032
|
+
/**
|
|
5033
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5034
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5035
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5036
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5037
|
+
*/
|
|
5038
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4513
5039
|
}
|
|
4514
5040
|
/**
|
|
4515
5041
|
* Wire-shape envelope for a [`MixedClientServerBarrel`] finding. There is no
|
|
@@ -4551,6 +5077,13 @@ actions: IssueAction[]
|
|
|
4551
5077
|
* the merge-base.
|
|
4552
5078
|
*/
|
|
4553
5079
|
introduced?: (AuditIntroduced | null)
|
|
5080
|
+
/**
|
|
5081
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5082
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5083
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5084
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5085
|
+
*/
|
|
5086
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4554
5087
|
}
|
|
4555
5088
|
/**
|
|
4556
5089
|
* Wire-shape envelope for a [`MisplacedDirective`] finding. There is no safe
|
|
@@ -4587,6 +5120,13 @@ actions: IssueAction[]
|
|
|
4587
5120
|
* the merge-base.
|
|
4588
5121
|
*/
|
|
4589
5122
|
introduced?: (AuditIntroduced | null)
|
|
5123
|
+
/**
|
|
5124
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5125
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5126
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5127
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5128
|
+
*/
|
|
5129
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4590
5130
|
}
|
|
4591
5131
|
/**
|
|
4592
5132
|
* Wire-shape envelope for an [`UnprovidedInject`] finding. There is no safe
|
|
@@ -4625,6 +5165,13 @@ actions: IssueAction[]
|
|
|
4625
5165
|
* the merge-base.
|
|
4626
5166
|
*/
|
|
4627
5167
|
introduced?: (AuditIntroduced | null)
|
|
5168
|
+
/**
|
|
5169
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5170
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5171
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5172
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5173
|
+
*/
|
|
5174
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4628
5175
|
}
|
|
4629
5176
|
/**
|
|
4630
5177
|
* Wire-shape envelope for an [`UnrenderedComponent`] finding. There is no safe
|
|
@@ -4674,6 +5221,13 @@ actions: IssueAction[]
|
|
|
4674
5221
|
* the merge-base.
|
|
4675
5222
|
*/
|
|
4676
5223
|
introduced?: (AuditIntroduced | null)
|
|
5224
|
+
/**
|
|
5225
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5226
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5227
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5228
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5229
|
+
*/
|
|
5230
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4677
5231
|
}
|
|
4678
5232
|
/**
|
|
4679
5233
|
* Wire-shape envelope for a [`RouteCollision`] finding. A route collision is a
|
|
@@ -4716,6 +5270,13 @@ actions: IssueAction[]
|
|
|
4716
5270
|
* the merge-base.
|
|
4717
5271
|
*/
|
|
4718
5272
|
introduced?: (AuditIntroduced | null)
|
|
5273
|
+
/**
|
|
5274
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5275
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5276
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5277
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5278
|
+
*/
|
|
5279
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4719
5280
|
}
|
|
4720
5281
|
/**
|
|
4721
5282
|
* Wire-shape envelope for a [`DynamicSegmentNameConflict`] finding. The
|
|
@@ -4762,6 +5323,13 @@ actions: IssueAction[]
|
|
|
4762
5323
|
* the merge-base.
|
|
4763
5324
|
*/
|
|
4764
5325
|
introduced?: (AuditIntroduced | null)
|
|
5326
|
+
/**
|
|
5327
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5328
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5329
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5330
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5331
|
+
*/
|
|
5332
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4765
5333
|
}
|
|
4766
5334
|
/**
|
|
4767
5335
|
* Wire-shape envelope for an [`UnusedComponentProp`] finding. There is no safe
|
|
@@ -4800,6 +5368,13 @@ actions: IssueAction[]
|
|
|
4800
5368
|
* the merge-base.
|
|
4801
5369
|
*/
|
|
4802
5370
|
introduced?: (AuditIntroduced | null)
|
|
5371
|
+
/**
|
|
5372
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5373
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5374
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5375
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5376
|
+
*/
|
|
5377
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4803
5378
|
}
|
|
4804
5379
|
/**
|
|
4805
5380
|
* Wire-shape envelope for an [`UnusedComponentEmit`] finding. There is no safe
|
|
@@ -4838,6 +5413,13 @@ actions: IssueAction[]
|
|
|
4838
5413
|
* the merge-base.
|
|
4839
5414
|
*/
|
|
4840
5415
|
introduced?: (AuditIntroduced | null)
|
|
5416
|
+
/**
|
|
5417
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5418
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5419
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5420
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5421
|
+
*/
|
|
5422
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4841
5423
|
}
|
|
4842
5424
|
/**
|
|
4843
5425
|
* Wire-shape envelope for an [`UnusedComponentInput`] finding. There is no safe
|
|
@@ -4876,6 +5458,13 @@ actions: IssueAction[]
|
|
|
4876
5458
|
* the merge-base.
|
|
4877
5459
|
*/
|
|
4878
5460
|
introduced?: (AuditIntroduced | null)
|
|
5461
|
+
/**
|
|
5462
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5463
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5464
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5465
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5466
|
+
*/
|
|
5467
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4879
5468
|
}
|
|
4880
5469
|
/**
|
|
4881
5470
|
* Wire-shape envelope for an [`UnusedComponentOutput`] finding. There is no safe
|
|
@@ -4914,6 +5503,13 @@ actions: IssueAction[]
|
|
|
4914
5503
|
* the merge-base.
|
|
4915
5504
|
*/
|
|
4916
5505
|
introduced?: (AuditIntroduced | null)
|
|
5506
|
+
/**
|
|
5507
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5508
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5509
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5510
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5511
|
+
*/
|
|
5512
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4917
5513
|
}
|
|
4918
5514
|
/**
|
|
4919
5515
|
* Wire-shape envelope for an [`UnusedSvelteEvent`] finding. There is no safe
|
|
@@ -4953,6 +5549,13 @@ actions: IssueAction[]
|
|
|
4953
5549
|
* the merge-base.
|
|
4954
5550
|
*/
|
|
4955
5551
|
introduced?: (AuditIntroduced | null)
|
|
5552
|
+
/**
|
|
5553
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5554
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5555
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5556
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5557
|
+
*/
|
|
5558
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4956
5559
|
}
|
|
4957
5560
|
/**
|
|
4958
5561
|
* Wire-shape envelope for an [`UnusedServerAction`] finding. There is no safe
|
|
@@ -4987,6 +5590,13 @@ actions: IssueAction[]
|
|
|
4987
5590
|
* the merge-base.
|
|
4988
5591
|
*/
|
|
4989
5592
|
introduced?: (AuditIntroduced | null)
|
|
5593
|
+
/**
|
|
5594
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5595
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5596
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5597
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5598
|
+
*/
|
|
5599
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
4990
5600
|
}
|
|
4991
5601
|
/**
|
|
4992
5602
|
* Wire-shape envelope for an [`UnusedLoadDataKey`] finding. There is no safe
|
|
@@ -5027,6 +5637,13 @@ actions: IssueAction[]
|
|
|
5027
5637
|
* the merge-base.
|
|
5028
5638
|
*/
|
|
5029
5639
|
introduced?: (AuditIntroduced | null)
|
|
5640
|
+
/**
|
|
5641
|
+
* Gate severity of this finding after `rules` and `overrides[].rules`
|
|
5642
|
+
* resolve for its path. CI formats read it for the annotation, SARIF
|
|
5643
|
+
* and CodeClimate level. Absent in output from older versions. Not
|
|
5644
|
+
* part of the finding identity, baseline keys or fingerprints.
|
|
5645
|
+
*/
|
|
5646
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
5030
5647
|
}
|
|
5031
5648
|
/**
|
|
5032
5649
|
* Wire-shape envelope for a [`PropDrillingChain`] finding. There is no safe
|
|
@@ -5061,6 +5678,14 @@ actions: IssueAction[]
|
|
|
5061
5678
|
* the merge-base.
|
|
5062
5679
|
*/
|
|
5063
5680
|
introduced?: (AuditIntroduced | null)
|
|
5681
|
+
/**
|
|
5682
|
+
* Rule severity of this finding. This type never gates the run, so the
|
|
5683
|
+
* value does not change the exit code. `fallow report --from` reads it
|
|
5684
|
+
* for the SARIF level, so the level does not depend on the config at
|
|
5685
|
+
* render time. Absent in output from older versions. Not part of the
|
|
5686
|
+
* finding identity, baseline keys or fingerprints.
|
|
5687
|
+
*/
|
|
5688
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
5064
5689
|
}
|
|
5065
5690
|
/**
|
|
5066
5691
|
* One hop in a prop-drilling chain: a component that received the prop and
|
|
@@ -5118,6 +5743,14 @@ actions: IssueAction[]
|
|
|
5118
5743
|
* the merge-base.
|
|
5119
5744
|
*/
|
|
5120
5745
|
introduced?: (AuditIntroduced | null)
|
|
5746
|
+
/**
|
|
5747
|
+
* Rule severity of this finding. This type never gates the run, so the
|
|
5748
|
+
* value does not change the exit code. `fallow report --from` reads it
|
|
5749
|
+
* for the SARIF level, so the level does not depend on the config at
|
|
5750
|
+
* render time. Absent in output from older versions. Not part of the
|
|
5751
|
+
* finding identity, baseline keys or fingerprints.
|
|
5752
|
+
*/
|
|
5753
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
5121
5754
|
}
|
|
5122
5755
|
/**
|
|
5123
5756
|
* Wire-shape envelope for a [`DuplicatePropShape`] finding. There is no safe
|
|
@@ -5168,6 +5801,14 @@ actions: IssueAction[]
|
|
|
5168
5801
|
* the merge-base.
|
|
5169
5802
|
*/
|
|
5170
5803
|
introduced?: (AuditIntroduced | null)
|
|
5804
|
+
/**
|
|
5805
|
+
* Rule severity of this finding. This type never gates the run, so the
|
|
5806
|
+
* value does not change the exit code. `fallow report --from` reads it
|
|
5807
|
+
* for the SARIF level, so the level does not depend on the config at
|
|
5808
|
+
* render time. Absent in output from older versions. Not part of the
|
|
5809
|
+
* finding identity, baseline keys or fingerprints.
|
|
5810
|
+
*/
|
|
5811
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
5171
5812
|
}
|
|
5172
5813
|
/**
|
|
5173
5814
|
* One member of a duplicate-prop-shape group: the OTHER components that share
|
|
@@ -5289,7 +5930,8 @@ current_findings: number
|
|
|
5289
5930
|
* differ per command and include a diff, a base ref, `--changed-since`,
|
|
5290
5931
|
* `--workspace`, `--changed-workspaces`, `--scope`, `--file`, an
|
|
5291
5932
|
* issue-type filter, and production mode. Both `stale` and `gate_trips`
|
|
5292
|
-
* are false whenever this is true.
|
|
5933
|
+
* are false whenever this is true. `scope_reasons` names the channels
|
|
5934
|
+
* that fired.
|
|
5293
5935
|
*/
|
|
5294
5936
|
change_scoped: boolean
|
|
5295
5937
|
/**
|
|
@@ -5301,13 +5943,21 @@ change_scoped: boolean
|
|
|
5301
5943
|
stale: boolean
|
|
5302
5944
|
warning: BaselineStalenessAdvisory
|
|
5303
5945
|
/**
|
|
5304
|
-
* True exactly when
|
|
5305
|
-
* `!change_scoped && baseline_entries > 0 && matched_entries < baseline_entries
|
|
5306
|
-
*
|
|
5307
|
-
* stricter than `stale`: any unmatched entry counts
|
|
5308
|
-
*
|
|
5309
|
-
*
|
|
5310
|
-
*
|
|
5946
|
+
* True exactly when `unrecognised_format` is true, or
|
|
5947
|
+
* `!change_scoped && baseline_entries > 0 && matched_entries < baseline_entries`.
|
|
5948
|
+
* That is the rule `--fail-on-stale-baseline` applies. Deliberately
|
|
5949
|
+
* stricter than `stale`: any unmatched entry counts, and so does a file
|
|
5950
|
+
* this command could not read as its own, which protects nothing at all.
|
|
5951
|
+
* The second half is suppressed by `change_scoped` and the first is not:
|
|
5952
|
+
* which command wrote a file does not depend on how much of the project
|
|
5953
|
+
* the run looked at.
|
|
5954
|
+
*
|
|
5955
|
+
* It describes the baseline, not the run's exit code: `health
|
|
5956
|
+
* --report-only` is an explicit request never to fail, so that run exits 0
|
|
5957
|
+
* and says so on stderr while still reporting `gate_trips: true` here, and
|
|
5958
|
+
* `fallow audit` never judges a baseline at all, so its
|
|
5959
|
+
* `gate_outcomes["stale-baseline"]` stands down beside a section that
|
|
5960
|
+
* reports `true`.
|
|
5311
5961
|
*/
|
|
5312
5962
|
gate_trips: boolean
|
|
5313
5963
|
/**
|
|
@@ -5317,6 +5967,50 @@ gate_trips: boolean
|
|
|
5317
5967
|
* `0`. Always `0` in health's count mode too.
|
|
5318
5968
|
*/
|
|
5319
5969
|
moved_entries: number
|
|
5970
|
+
/**
|
|
5971
|
+
* True when the loaded file is not a baseline of the command that read it:
|
|
5972
|
+
* it names another command in its top-level `kind`, or it names none and
|
|
5973
|
+
* carries no key this command's own format writes. Read this, not
|
|
5974
|
+
* `baseline_entries == 0`, before telling anyone their baseline is the
|
|
5975
|
+
* wrong file: a baseline saved from a project that had nothing to record
|
|
5976
|
+
* is legitimately empty and is not a mistake.
|
|
5977
|
+
*
|
|
5978
|
+
* Present only when true, so an envelope from a run that loaded its own
|
|
5979
|
+
* baseline is unchanged. All three commands set it, including `dead-code`,
|
|
5980
|
+
* which classifies the file before its required fields could reject it.
|
|
5981
|
+
* A file with no `kind` is the reading a baseline saved before that member
|
|
5982
|
+
* existed gets, which is why the keys remain the fallback.
|
|
5983
|
+
*/
|
|
5984
|
+
unrecognised_format?: boolean
|
|
5985
|
+
/**
|
|
5986
|
+
* The command that saved the loaded file, when `unrecognised_format` is
|
|
5987
|
+
* true and the file names a writer this version knows: `dead-code`,
|
|
5988
|
+
* `dupes` or `health`, the token the file carries in its top-level `kind`.
|
|
5989
|
+
*
|
|
5990
|
+
* Absent, never null, for this command's own baseline, for a file that
|
|
5991
|
+
* names no writer (an empty file, or a baseline saved before `kind`
|
|
5992
|
+
* existed) and for a `kind` token this version does not know. The value
|
|
5993
|
+
* set is OPEN: a later release can add a writer, so treat an unknown value
|
|
5994
|
+
* as "another command". The CLI computes it once per loaded baseline and
|
|
5995
|
+
* uses the same value for its stderr note.
|
|
5996
|
+
*/
|
|
5997
|
+
saved_by?: string
|
|
5998
|
+
/**
|
|
5999
|
+
* Which channels narrowed this run, present and non-empty exactly when
|
|
6000
|
+
* `change_scoped` is true. Both members are derived from one function, so
|
|
6001
|
+
* the boolean and the array cannot disagree.
|
|
6002
|
+
*
|
|
6003
|
+
* Read it to decide whether the narrowing is removable: a run narrowed
|
|
6004
|
+
* only by `diff`, `changed-since`, `changed-files`, `scope`, `file` or
|
|
6005
|
+
* `issue-type-filter` can be repeated unscoped to judge the baseline,
|
|
6006
|
+
* while `production`, `workspace` and `changed-workspaces` are the
|
|
6007
|
+
* caller's own choice about what to analyze and an unscoped repeat would
|
|
6008
|
+
* contradict it.
|
|
6009
|
+
*
|
|
6010
|
+
* The name set is OPEN and the names a command can emit differ per
|
|
6011
|
+
* command; see [`ScopeReason`].
|
|
6012
|
+
*/
|
|
6013
|
+
scope_reasons?: ScopeReason[]
|
|
5320
6014
|
}
|
|
5321
6015
|
/**
|
|
5322
6016
|
* Result of regression detection (`--fail-on-regression`). Compares current
|
|
@@ -5354,6 +6048,109 @@ exceeded: boolean
|
|
|
5354
6048
|
*/
|
|
5355
6049
|
reason?: (string | null)
|
|
5356
6050
|
}
|
|
6051
|
+
/**
|
|
6052
|
+
* Every narrowing or shaping request a run RECEIVED, keyed by name.
|
|
6053
|
+
*
|
|
6054
|
+
* Received, not failed: a request the run honoured is published with
|
|
6055
|
+
* `status: "applied"`, so a consumer can say "scoped to the change"
|
|
6056
|
+
* positively. Read an absent object as "nothing was asked for", never as
|
|
6057
|
+
* "nothing failed".
|
|
6058
|
+
*
|
|
6059
|
+
* Absent from an envelope whenever it is empty, so a run that was asked for
|
|
6060
|
+
* nothing is byte-identical to one produced before this object existed. An
|
|
6061
|
+
* empty object is never emitted: it would assert that something was asked and
|
|
6062
|
+
* all of it applied, which is a different and false claim.
|
|
6063
|
+
*
|
|
6064
|
+
* The names this build can emit are `changed-since`, `diff-filter` and
|
|
6065
|
+
* `sarif-file`. The reasons are `git-missing`, `not-a-repository`,
|
|
6066
|
+
* `git-failed` and `invalid-ref` for `changed-since`, `oversize`,
|
|
6067
|
+
* `unreadable`, `not-utf8`, `foreign-namespace` and `ambiguous-base` for
|
|
6068
|
+
* `diff-filter`, and `directory-create-failed`, `write-failed` and
|
|
6069
|
+
* `serialize-failed` for `sarif-file`. Every set is OPEN: a name a consumer
|
|
6070
|
+
* does not recognise means "some request", not an error.
|
|
6071
|
+
*
|
|
6072
|
+
* `sarif-file` reports a SECONDARY artifact rather than the scope of the
|
|
6073
|
+
* report it travels in, and it is in the same object for the same reason the
|
|
6074
|
+
* others are: the run was asked to do something and did something else, and
|
|
6075
|
+
* nothing in the primary report says so. Which of the two an entry is, every
|
|
6076
|
+
* entry says for itself: `affects` is `scope` for the narrowing requests and
|
|
6077
|
+
* `artifact` for this one. Select on it. A consumer that instead assumes the
|
|
6078
|
+
* whole object narrows the report tells its reader an unwritten SARIF file
|
|
6079
|
+
* widened the analysis, which is what `affects` exists to prevent.
|
|
6080
|
+
*
|
|
6081
|
+
* `scope_size` is emitted for `diff-filter`, in added lines, and for
|
|
6082
|
+
* `changed-since`, in changed files that the run analyzed. `sarif-file`
|
|
6083
|
+
* measures no scope. A consumer reads the unit off the name, so a name that
|
|
6084
|
+
* starts to measure its own scope in a later release needs no change here.
|
|
6085
|
+
*
|
|
6086
|
+
* `invalid-ref` is reachable only through the programmatic API. The
|
|
6087
|
+
* `--changed-since` flag validates its value before a run starts and fails
|
|
6088
|
+
* with exit 2 and an error document, which is the right side to err on: a
|
|
6089
|
+
* malformed ref is invalid input rather than a report of the wrong scope.
|
|
6090
|
+
*/
|
|
6091
|
+
export interface RequestOutcomes {
|
|
6092
|
+
[k: string]: RequestOutcome
|
|
6093
|
+
}
|
|
6094
|
+
/**
|
|
6095
|
+
* One request's fate on one run.
|
|
6096
|
+
*
|
|
6097
|
+
* `reason` and `message` are present exactly when `status` is not `applied`,
|
|
6098
|
+
* and absent otherwise, so a consumer that only wants to know whether a
|
|
6099
|
+
* report is scoped reads `status` alone.
|
|
6100
|
+
*/
|
|
6101
|
+
export interface RequestOutcome {
|
|
6102
|
+
status: RequestStatus
|
|
6103
|
+
affects: RequestEffect
|
|
6104
|
+
/**
|
|
6105
|
+
* What was asked, as the user spelled it: the git ref for
|
|
6106
|
+
* `changed-since`, the diff source label (`--diff-file pr.diff`,
|
|
6107
|
+
* `--diff-stdin`, `$FALLOW_DIFF_FILE build/pr.diff`, or
|
|
6108
|
+
* `diffFile pr.diff` for the programmatic option) for `diff-filter`,
|
|
6109
|
+
* the target path for `sarif-file`. Echoed rather than normalised, so a
|
|
6110
|
+
* consumer must not join it to the project root the way it joins every
|
|
6111
|
+
* other path-shaped field.
|
|
6112
|
+
*/
|
|
6113
|
+
requested: string
|
|
6114
|
+
/**
|
|
6115
|
+
* How much this request left in scope, in the request's own unit, when the
|
|
6116
|
+
* run applied it AND measured that scope. Absent otherwise, including on
|
|
6117
|
+
* every unapplied entry: a request that stood down narrowed nothing, so a
|
|
6118
|
+
* number there would describe a scope nobody applied.
|
|
6119
|
+
*
|
|
6120
|
+
* The unit belongs to the name. `diff-filter` counts added lines, which is
|
|
6121
|
+
* what its filter keeps a finding for. `changed-since` counts changed
|
|
6122
|
+
* files that the run analyzed: a changed file that discovery or an ignore
|
|
6123
|
+
* rule dropped does not count, so a change to a README only gives `0`. A
|
|
6124
|
+
* combined run counts a file that any of its analyses kept, because a
|
|
6125
|
+
* per-analysis `production` setting can give its analyses different
|
|
6126
|
+
* files.
|
|
6127
|
+
* Read the unit off the name the entry is keyed under, never across names,
|
|
6128
|
+
* and read an absent member as "not measured" rather than as zero.
|
|
6129
|
+
*
|
|
6130
|
+
* The count is what the run INDEXED rather than the true total:
|
|
6131
|
+
* `diff-filter` indexes at most one million added lines and reports that
|
|
6132
|
+
* cap for a larger diff, so read any non-zero value as a lower bound.
|
|
6133
|
+
*
|
|
6134
|
+
* `0` is the case this member exists for: a request that applied over an
|
|
6135
|
+
* EMPTY scope. Every finding then filters out and the report reads clean,
|
|
6136
|
+
* so a consumer that sees no findings beside `scope_size: 0` learns that
|
|
6137
|
+
* nothing was analyzable rather than that the code is clean.
|
|
6138
|
+
*/
|
|
6139
|
+
scope_size?: (number | null)
|
|
6140
|
+
/**
|
|
6141
|
+
* Why the request was not applied, as a kebab-case token. Present exactly
|
|
6142
|
+
* when `status` is not `applied`. The set is open per request name; the
|
|
6143
|
+
* names this build can emit are listed on [`RequestOutcomes`].
|
|
6144
|
+
*/
|
|
6145
|
+
reason?: (string | null)
|
|
6146
|
+
/**
|
|
6147
|
+
* One sentence naming what was asked, what happened instead, and the next
|
|
6148
|
+
* step. Byte-identical to the stderr line for the same case, so a
|
|
6149
|
+
* consumer that renders this never contradicts a log a human read.
|
|
6150
|
+
* Present exactly when `status` is not `applied`.
|
|
6151
|
+
*/
|
|
6152
|
+
message?: (string | null)
|
|
6153
|
+
}
|
|
5357
6154
|
/**
|
|
5358
6155
|
* A read-only follow-up command fallow surfaces from the current findings,
|
|
5359
6156
|
* emitted as the top-level `next_steps` array on each command's JSON envelope.
|
|
@@ -5923,6 +6720,14 @@ react_prop_count?: number
|
|
|
5923
6720
|
react_hook_profile?: (ReactHookProfile | null)
|
|
5924
6721
|
exceeded: ExceededThreshold
|
|
5925
6722
|
severity: FindingSeverity
|
|
6723
|
+
/**
|
|
6724
|
+
* Gate severity after the `complexity-*` rules and their
|
|
6725
|
+
* `overrides[].rules` entries: `error` fails the run, `warn` does not.
|
|
6726
|
+
* The most severe rule of the kinds in `exceeded` wins. It is separate
|
|
6727
|
+
* from the band in `severity`, which ranks the finding and does not gate
|
|
6728
|
+
* it. Absent in reports from older versions.
|
|
6729
|
+
*/
|
|
6730
|
+
effective_severity?: (EffectiveSeverity | null)
|
|
5926
6731
|
/**
|
|
5927
6732
|
* CRAP score (change risk anti-pattern), when coverage data exists.
|
|
5928
6733
|
*/
|
|
@@ -6229,6 +7034,11 @@ average_maintainability?: (number | null)
|
|
|
6229
7034
|
* Coverage model behind the CRAP scores, when coverage was used.
|
|
6230
7035
|
*/
|
|
6231
7036
|
coverage_model?: (CoverageModel | null)
|
|
7037
|
+
/**
|
|
7038
|
+
* Input format of the measured coverage (`istanbul` or `v8`). Present
|
|
7039
|
+
* only with `coverage_model: "istanbul"`.
|
|
7040
|
+
*/
|
|
7041
|
+
coverage_input_format?: (CoverageInputFormat | null)
|
|
6232
7042
|
/**
|
|
6233
7043
|
* Whether CRAP findings mix coverage sources.
|
|
6234
7044
|
*/
|
|
@@ -7232,8 +8042,8 @@ watermark?: (RuntimeCoverageWatermark | null)
|
|
|
7232
8042
|
*/
|
|
7233
8043
|
warnings?: RuntimeCoverageMessage[]
|
|
7234
8044
|
/**
|
|
7235
|
-
* Whether an autonomous agent may act on this report (
|
|
7236
|
-
*
|
|
8045
|
+
* Whether an autonomous agent may act on this report (mirrors
|
|
8046
|
+
* the cloud runtime-context contract). `false` when the capture
|
|
7237
8047
|
* carries no usable runtime evidence (no tracked functions); then
|
|
7238
8048
|
* `actionability_verdict` is `insufficient_evidence` and
|
|
7239
8049
|
* `actionability_reason` explains. F4: a non-action floor, never a gate on a
|
|
@@ -7463,7 +8273,7 @@ description: string
|
|
|
7463
8273
|
auto_fixable: boolean
|
|
7464
8274
|
}
|
|
7465
8275
|
/**
|
|
7466
|
-
* Discriminator inputs that PRODUCED a finding's verdict
|
|
8276
|
+
* Discriminator inputs that PRODUCED a finding's verdict,
|
|
7467
8277
|
* emitted alongside the verdict so an agent can reproduce it and see the
|
|
7468
8278
|
* minimum-observation confidence cap instead of re-deriving them from scratch.
|
|
7469
8279
|
* F4: these make the EXISTING Fallow-owned discriminators legible; they are not
|
|
@@ -7659,7 +8469,7 @@ code: string
|
|
|
7659
8469
|
message: string
|
|
7660
8470
|
}
|
|
7661
8471
|
/**
|
|
7662
|
-
* Provenance of a runtime-coverage report
|
|
8472
|
+
* Provenance of a runtime-coverage report, mirroring
|
|
7663
8473
|
* the cloud runtime-context `provenance` block so the local-capture and cloud
|
|
7664
8474
|
* surfaces present one portable shape. F4: provenance is context only; it never
|
|
7665
8475
|
* gates a verdict or confidence.
|
|
@@ -9859,6 +10669,12 @@ imported_by: string[]
|
|
|
9859
10669
|
* Re-exports declared by this file.
|
|
9860
10670
|
*/
|
|
9861
10671
|
re_exports: TracedReExport[]
|
|
10672
|
+
/**
|
|
10673
|
+
* The configs that make this file an entry point through Module
|
|
10674
|
+
* Federation `exposes`, one per config. Absent when no Federation config
|
|
10675
|
+
* exposes the file (issue #2796).
|
|
10676
|
+
*/
|
|
10677
|
+
sources?: TraceSource[]
|
|
9862
10678
|
}
|
|
9863
10679
|
/**
|
|
9864
10680
|
* An export with usage information.
|
|
@@ -9898,6 +10714,37 @@ imported_name: string
|
|
|
9898
10714
|
*/
|
|
9899
10715
|
exported_name: string
|
|
9900
10716
|
}
|
|
10717
|
+
/**
|
|
10718
|
+
* A config that names a traced file or a traced dependency, and the key that
|
|
10719
|
+
* names it.
|
|
10720
|
+
*/
|
|
10721
|
+
export interface TraceSource {
|
|
10722
|
+
/**
|
|
10723
|
+
* The mechanism that names the file or the dependency:
|
|
10724
|
+
* `module-federation`. The set is open.
|
|
10725
|
+
*/
|
|
10726
|
+
kind: string
|
|
10727
|
+
/**
|
|
10728
|
+
* The plugin that read the config, as it labels itself:
|
|
10729
|
+
* `module-federation` for a standalone `module-federation.config.*`,
|
|
10730
|
+
* or the bundler plugin (`webpack`, `rspack`, `rsbuild`, `vite`,
|
|
10731
|
+
* `nextjs`) that read the same options inline from its own config.
|
|
10732
|
+
*/
|
|
10733
|
+
plugin: string
|
|
10734
|
+
/**
|
|
10735
|
+
* The file that names the file or the dependency, relative to the
|
|
10736
|
+
* project root: the config file, or the source file of a Module
|
|
10737
|
+
* Federation runtime call.
|
|
10738
|
+
*/
|
|
10739
|
+
config: string
|
|
10740
|
+
/**
|
|
10741
|
+
* The config key or the runtime function that names the file or the
|
|
10742
|
+
* dependency: `exposes` for an exposed file, `remotes` for a remote
|
|
10743
|
+
* alias, and `registerRemotes`, `loadRemote`, `init` or `createInstance`
|
|
10744
|
+
* for a remote that a runtime call names. The set is open.
|
|
10745
|
+
*/
|
|
10746
|
+
key: string
|
|
10747
|
+
}
|
|
9901
10748
|
/**
|
|
9902
10749
|
* Result of tracing a dependency: where it is used.
|
|
9903
10750
|
*/
|
|
@@ -9926,6 +10773,13 @@ is_used: boolean
|
|
|
9926
10773
|
* Total import count.
|
|
9927
10774
|
*/
|
|
9928
10775
|
import_count: number
|
|
10776
|
+
/**
|
|
10777
|
+
* The configs that declare this name as a Module Federation remote alias
|
|
10778
|
+
* under `remotes`, one per config. A remote alias is provided by a
|
|
10779
|
+
* remote container at runtime, not by an npm package. Absent when no
|
|
10780
|
+
* Federation config declares the name (issue #2796).
|
|
10781
|
+
*/
|
|
10782
|
+
sources?: TraceSource[]
|
|
9929
10783
|
}
|
|
9930
10784
|
/**
|
|
9931
10785
|
* Result of tracing a clone: all groups containing the code at a source
|
|
@@ -11018,15 +11872,25 @@ grouped_by?: (GroupByMode | null)
|
|
|
11018
11872
|
*/
|
|
11019
11873
|
groups?: (HealthGroup[] | null)
|
|
11020
11874
|
/**
|
|
11021
|
-
*
|
|
11022
|
-
*
|
|
11023
|
-
* integration reads the verdict instead of
|
|
11024
|
-
* it usually cannot see. A gate fails the
|
|
11025
|
-
* AND `enforced` is true.
|
|
11026
|
-
*
|
|
11027
|
-
*
|
|
11875
|
+
* The verdict of every gate this run evaluated, keyed by name. The CLI
|
|
11876
|
+
* always emits it, with the command's default exit rule in it also when
|
|
11877
|
+
* no flag armed a gate, so a CI integration reads the verdict instead of
|
|
11878
|
+
* guessing from a process status it usually cannot see. A gate fails the
|
|
11879
|
+
* build when `status` is `fail` AND `enforced` is true. The typed
|
|
11880
|
+
* programmatic API runs no CLI gate and leaves it absent. See
|
|
11881
|
+
* [`crate::GateOutcomes`].
|
|
11028
11882
|
*/
|
|
11029
11883
|
gate_outcomes?: (GateOutcomes | null)
|
|
11884
|
+
/**
|
|
11885
|
+
* Every narrowing or shaping request this run RECEIVED, keyed by name,
|
|
11886
|
+
* absent when it was asked for nothing. An entry whose `status` is not
|
|
11887
|
+
* `applied` means the run could not do what it was asked and reported
|
|
11888
|
+
* something WIDER instead, so what follows is a valid report of a scope
|
|
11889
|
+
* nobody requested. Honoured requests are published too, with
|
|
11890
|
+
* `status: "applied"`, so an absent object means "nothing was asked for",
|
|
11891
|
+
* never "nothing failed". See [`crate::RequestOutcomes`].
|
|
11892
|
+
*/
|
|
11893
|
+
request_outcomes?: (RequestOutcomes | null)
|
|
11030
11894
|
/**
|
|
11031
11895
|
* `_meta` block with metric definitions, when `--explain` was passed.
|
|
11032
11896
|
*/
|
|
@@ -11211,15 +12075,23 @@ groups?: (DuplicationGroup[] | null)
|
|
|
11211
12075
|
*/
|
|
11212
12076
|
baseline_staleness?: (BaselineStaleness | null)
|
|
11213
12077
|
/**
|
|
11214
|
-
*
|
|
11215
|
-
*
|
|
11216
|
-
*
|
|
11217
|
-
*
|
|
11218
|
-
*
|
|
11219
|
-
* rules fail a run with no flag at all, so an absent object means "no gate
|
|
11220
|
-
* was asked for", never "nothing failed". See [`crate::GateOutcomes`].
|
|
12078
|
+
* The verdict of every gate this run armed, keyed by name, absent when
|
|
12079
|
+
* it armed none. `dupes` has no default exit rule: a run with no armed
|
|
12080
|
+
* gate always exits 0, so an absent object means that the run passed. A
|
|
12081
|
+
* gate fails the build when `status` is `fail` AND `enforced` is true.
|
|
12082
|
+
* See [`crate::GateOutcomes`].
|
|
11221
12083
|
*/
|
|
11222
12084
|
gate_outcomes?: (GateOutcomes | null)
|
|
12085
|
+
/**
|
|
12086
|
+
* Every narrowing or shaping request this run RECEIVED, keyed by name,
|
|
12087
|
+
* absent when it was asked for nothing. An entry whose `status` is not
|
|
12088
|
+
* `applied` means the run could not do what it was asked and reported
|
|
12089
|
+
* something WIDER instead, so what follows is a valid report of a scope
|
|
12090
|
+
* nobody requested. Honoured requests are published too, with
|
|
12091
|
+
* `status: "applied"`, so an absent object means "nothing was asked for",
|
|
12092
|
+
* never "nothing failed". See [`crate::RequestOutcomes`].
|
|
12093
|
+
*/
|
|
12094
|
+
request_outcomes?: (RequestOutcomes | null)
|
|
11223
12095
|
/**
|
|
11224
12096
|
* `_meta` block with metric / rule definitions, emitted when `--explain`
|
|
11225
12097
|
* is passed (always present in MCP responses).
|
|
@@ -11388,15 +12260,25 @@ groups: CheckGroupedEntry[]
|
|
|
11388
12260
|
*/
|
|
11389
12261
|
baseline_staleness?: (BaselineStaleness | null)
|
|
11390
12262
|
/**
|
|
11391
|
-
*
|
|
11392
|
-
*
|
|
11393
|
-
* integration reads the verdict instead of
|
|
11394
|
-
* it usually cannot see. A gate fails the
|
|
11395
|
-
* AND `enforced` is true.
|
|
11396
|
-
*
|
|
11397
|
-
*
|
|
12263
|
+
* The verdict of every gate this run evaluated, keyed by name. The CLI
|
|
12264
|
+
* always emits it, with the command's default exit rule in it also when
|
|
12265
|
+
* no flag armed a gate, so a CI integration reads the verdict instead of
|
|
12266
|
+
* guessing from a process status it usually cannot see. A gate fails the
|
|
12267
|
+
* build when `status` is `fail` AND `enforced` is true. The typed
|
|
12268
|
+
* programmatic API runs no CLI gate and leaves it absent. See
|
|
12269
|
+
* [`crate::GateOutcomes`].
|
|
11398
12270
|
*/
|
|
11399
12271
|
gate_outcomes?: (GateOutcomes | null)
|
|
12272
|
+
/**
|
|
12273
|
+
* Every narrowing or shaping request this run RECEIVED, keyed by name,
|
|
12274
|
+
* absent when it was asked for nothing. An entry whose `status` is not
|
|
12275
|
+
* `applied` means the run could not do what it was asked and reported
|
|
12276
|
+
* something WIDER instead, so what follows is a valid report of a scope
|
|
12277
|
+
* nobody requested. Honoured requests are published too, with
|
|
12278
|
+
* `status: "applied"`, so an absent object means "nothing was asked for",
|
|
12279
|
+
* never "nothing failed". See [`crate::RequestOutcomes`].
|
|
12280
|
+
*/
|
|
12281
|
+
request_outcomes?: (RequestOutcomes | null)
|
|
11400
12282
|
/**
|
|
11401
12283
|
* `_meta` block with docs and rule definitions, when `--explain` was
|
|
11402
12284
|
* passed.
|
|
@@ -11456,6 +12338,12 @@ unused_types: UnusedTypeFinding[]
|
|
|
11456
12338
|
* typed `actions` array natively.
|
|
11457
12339
|
*/
|
|
11458
12340
|
private_type_leaks: PrivateTypeLeakFinding[]
|
|
12341
|
+
/**
|
|
12342
|
+
* Exports marked `@deprecated` that still have at least one consumer in
|
|
12343
|
+
* a reachable file. Wrapped in [`DeprecatedExportInUseFinding`]. Opt-in: the
|
|
12344
|
+
* `deprecated-exports-in-use` rule defaults to `off`.
|
|
12345
|
+
*/
|
|
12346
|
+
deprecated_exports_in_use?: DeprecatedExportInUseFinding[]
|
|
11459
12347
|
/**
|
|
11460
12348
|
* Dependencies listed in package.json but never imported. Wrapped in
|
|
11461
12349
|
* [`UnusedDependencyFinding`] so each entry carries a typed `actions`
|
|
@@ -12067,15 +12955,25 @@ version: ToolVersion
|
|
|
12067
12955
|
elapsed_ms: ElapsedMs
|
|
12068
12956
|
config: SecurityOutputConfig
|
|
12069
12957
|
/**
|
|
12070
|
-
*
|
|
12071
|
-
*
|
|
12072
|
-
* integration reads the verdict instead of
|
|
12073
|
-
* it usually cannot see. A gate fails the
|
|
12074
|
-
* AND `enforced` is true.
|
|
12075
|
-
*
|
|
12076
|
-
*
|
|
12958
|
+
* The verdict of every gate this run evaluated, keyed by name. The CLI
|
|
12959
|
+
* always emits it, with the command's default exit rule in it also when
|
|
12960
|
+
* no flag armed a gate, so a CI integration reads the verdict instead of
|
|
12961
|
+
* guessing from a process status it usually cannot see. A gate fails the
|
|
12962
|
+
* build when `status` is `fail` AND `enforced` is true. The typed
|
|
12963
|
+
* programmatic API runs no CLI gate and leaves it absent. See
|
|
12964
|
+
* [`crate::GateOutcomes`].
|
|
12077
12965
|
*/
|
|
12078
12966
|
gate_outcomes?: (GateOutcomes | null)
|
|
12967
|
+
/**
|
|
12968
|
+
* Every narrowing or shaping request this run RECEIVED, keyed by name,
|
|
12969
|
+
* absent when it was asked for nothing. An entry whose `status` is not
|
|
12970
|
+
* `applied` means the run could not do what it was asked and reported
|
|
12971
|
+
* something WIDER instead, so what follows is a valid report of a scope
|
|
12972
|
+
* nobody requested. Honoured requests are published too, with
|
|
12973
|
+
* `status: "applied"`, so an absent object means "nothing was asked for",
|
|
12974
|
+
* never "nothing failed". See [`crate::RequestOutcomes`].
|
|
12975
|
+
*/
|
|
12976
|
+
request_outcomes?: (RequestOutcomes | null)
|
|
12079
12977
|
/**
|
|
12080
12978
|
* Security-specific rule and field metadata, emitted with `--explain`.
|
|
12081
12979
|
*/
|
|
@@ -12170,10 +13068,10 @@ new_count: number
|
|
|
12170
13068
|
export interface SecurityFinding {
|
|
12171
13069
|
/**
|
|
12172
13070
|
* Stable per-finding correlation id, identical across runs for the same
|
|
12173
|
-
* rule + anchor path + line. An autonomous agent that triaged this
|
|
13071
|
+
* rule + anchor path + line + column. An autonomous agent that triaged this
|
|
12174
13072
|
* candidate on a prior run uses it to correlate the candidate after a
|
|
12175
|
-
* rebase. Equal to the SARIF `partialFingerprints`
|
|
12176
|
-
* finding (one shared helper computes both).
|
|
13073
|
+
* rebase. Equal to the SARIF `partialFingerprints["fallowSecurity/v2"]`
|
|
13074
|
+
* value for the same finding (one shared helper computes both).
|
|
12177
13075
|
*/
|
|
12178
13076
|
finding_id: string
|
|
12179
13077
|
kind: SecurityFindingKind
|
|
@@ -12591,7 +13489,8 @@ defensive_boundary: SecurityDefensiveBoundary
|
|
|
12591
13489
|
*/
|
|
12592
13490
|
export interface SecurityDefensiveBoundary {
|
|
12593
13491
|
/**
|
|
12594
|
-
*
|
|
13492
|
+
* Control patterns observed in files on this import trace. These are
|
|
13493
|
+
* verification hints, not proof of sink protection or value-level data flow.
|
|
12595
13494
|
*/
|
|
12596
13495
|
controls: SecurityDefensiveControl[]
|
|
12597
13496
|
/**
|
|
@@ -12601,7 +13500,9 @@ controls: SecurityDefensiveControl[]
|
|
|
12601
13500
|
verification_prompt: string
|
|
12602
13501
|
}
|
|
12603
13502
|
/**
|
|
12604
|
-
*
|
|
13503
|
+
* Control pattern observed in a file on an attack-surface import trace.
|
|
13504
|
+
* Its presence does not prove that it executes before the sink or protects
|
|
13505
|
+
* the same input.
|
|
12605
13506
|
*/
|
|
12606
13507
|
export interface SecurityDefensiveControl {
|
|
12607
13508
|
kind: SecurityControlKind
|
|
@@ -12700,15 +13601,25 @@ version: ToolVersion
|
|
|
12700
13601
|
elapsed_ms: ElapsedMs
|
|
12701
13602
|
config: SecurityOutputConfig
|
|
12702
13603
|
/**
|
|
12703
|
-
*
|
|
12704
|
-
*
|
|
12705
|
-
* integration reads the verdict instead of
|
|
12706
|
-
* it usually cannot see. A gate fails the
|
|
12707
|
-
* AND `enforced` is true.
|
|
12708
|
-
*
|
|
12709
|
-
*
|
|
13604
|
+
* The verdict of every gate this run evaluated, keyed by name. The CLI
|
|
13605
|
+
* always emits it, with the command's default exit rule in it also when
|
|
13606
|
+
* no flag armed a gate, so a CI integration reads the verdict instead of
|
|
13607
|
+
* guessing from a process status it usually cannot see. A gate fails the
|
|
13608
|
+
* build when `status` is `fail` AND `enforced` is true. The typed
|
|
13609
|
+
* programmatic API runs no CLI gate and leaves it absent. See
|
|
13610
|
+
* [`crate::GateOutcomes`].
|
|
12710
13611
|
*/
|
|
12711
13612
|
gate_outcomes?: (GateOutcomes | null)
|
|
13613
|
+
/**
|
|
13614
|
+
* Every narrowing or shaping request this run RECEIVED, keyed by name,
|
|
13615
|
+
* absent when it was asked for nothing. An entry whose `status` is not
|
|
13616
|
+
* `applied` means the run could not do what it was asked and reported
|
|
13617
|
+
* something WIDER instead, so what follows is a valid report of a scope
|
|
13618
|
+
* nobody requested. Honoured requests are published too, with
|
|
13619
|
+
* `status: "applied"`, so an absent object means "nothing was asked for",
|
|
13620
|
+
* never "nothing failed". See [`crate::RequestOutcomes`].
|
|
13621
|
+
*/
|
|
13622
|
+
request_outcomes?: (RequestOutcomes | null)
|
|
12712
13623
|
/**
|
|
12713
13624
|
* Security-specific rule and field metadata, emitted with `--explain`.
|
|
12714
13625
|
*/
|
|
@@ -12993,15 +13904,29 @@ schema_version: CombinedSchemaVersion
|
|
|
12993
13904
|
version: ToolVersion
|
|
12994
13905
|
elapsed_ms: ElapsedMs
|
|
12995
13906
|
/**
|
|
12996
|
-
*
|
|
12997
|
-
*
|
|
12998
|
-
*
|
|
12999
|
-
*
|
|
13000
|
-
*
|
|
13001
|
-
*
|
|
13002
|
-
*
|
|
13907
|
+
* The verdict of every gate this run evaluated, keyed by name. The CLI
|
|
13908
|
+
* always emits it, with the default exit rule of each section that ran
|
|
13909
|
+
* (`error-severity-findings`, `health-findings`). The machine formats of
|
|
13910
|
+
* the combined run exit 0 for findings, so most entries have `enforced:
|
|
13911
|
+
* false`. For the default exit rules (`error-severity-findings`,
|
|
13912
|
+
* `health-findings`), `status` gives the verdict of the human run. An
|
|
13913
|
+
* advisory entry can report `fail` without a failure of the human run: an
|
|
13914
|
+
* example is a `stale-baseline` entry that `--fail-on-stale-baseline` did
|
|
13915
|
+
* not arm. A gate fails the build when `status` is `fail` AND `enforced`
|
|
13916
|
+
* is true. The typed
|
|
13917
|
+
* programmatic API leaves it absent. See [`crate::GateOutcomes`].
|
|
13003
13918
|
*/
|
|
13004
13919
|
gate_outcomes?: (GateOutcomes | null)
|
|
13920
|
+
/**
|
|
13921
|
+
* Every narrowing or shaping request this run RECEIVED, keyed by name,
|
|
13922
|
+
* absent when it was asked for nothing. An entry whose `status` is not
|
|
13923
|
+
* `applied` means the run could not do what it was asked and reported
|
|
13924
|
+
* something WIDER instead, so what follows is a valid report of a scope
|
|
13925
|
+
* nobody requested. Honoured requests are published too, with
|
|
13926
|
+
* `status: "applied"`, so an absent object means "nothing was asked for",
|
|
13927
|
+
* never "nothing failed". See [`crate::RequestOutcomes`].
|
|
13928
|
+
*/
|
|
13929
|
+
request_outcomes?: (RequestOutcomes | null)
|
|
13005
13930
|
/**
|
|
13006
13931
|
* Per-section `_meta` blocks, when `--explain` was passed.
|
|
13007
13932
|
*/
|
|
@@ -13013,7 +13938,7 @@ check?: (CheckOutput | null)
|
|
|
13013
13938
|
/**
|
|
13014
13939
|
* Duplication section of the combined run.
|
|
13015
13940
|
*/
|
|
13016
|
-
dupes?: (
|
|
13941
|
+
dupes?: (CombinedDupesSection | null)
|
|
13017
13942
|
/**
|
|
13018
13943
|
* Health section of the combined run.
|
|
13019
13944
|
*/
|
|
@@ -13054,6 +13979,41 @@ health?: (Meta | null)
|
|
|
13054
13979
|
*/
|
|
13055
13980
|
telemetry?: (TelemetryMeta | null)
|
|
13056
13981
|
}
|
|
13982
|
+
/**
|
|
13983
|
+
* Wire shape of the `dupes` section inside the bare combined envelope.
|
|
13984
|
+
*
|
|
13985
|
+
* The section is the standalone payload plus the view of the loaded
|
|
13986
|
+
* duplication baseline. The standalone `dupes` envelope carries the same
|
|
13987
|
+
* `baseline_staleness` key at its root.
|
|
13988
|
+
*/
|
|
13989
|
+
export interface CombinedDupesSection {
|
|
13990
|
+
/**
|
|
13991
|
+
* All detected clone groups, each wrapped with typed actions.
|
|
13992
|
+
*/
|
|
13993
|
+
clone_groups: CloneGroupFinding[]
|
|
13994
|
+
/**
|
|
13995
|
+
* Clone families, each wrapped with typed actions. Inner `groups`
|
|
13996
|
+
* inside each `CloneFamilyFinding` are themselves wrapped as
|
|
13997
|
+
* `CloneGroupFinding` entries carrying their own `actions[]` (and
|
|
13998
|
+
* optional audit-mode `introduced` flag), so JSON-Schema strict
|
|
13999
|
+
* consumers and TS consumers reading `clone_families[].groups[]` see
|
|
14000
|
+
* the same shape as the top-level `clone_groups[]` array (preserves
|
|
14001
|
+
* the issue #393 regression contract).
|
|
14002
|
+
*/
|
|
14003
|
+
clone_families: CloneFamilyFinding[]
|
|
14004
|
+
/**
|
|
14005
|
+
* Mirrored directory pairs.
|
|
14006
|
+
*/
|
|
14007
|
+
mirrored_directories?: MirroredDirectory[]
|
|
14008
|
+
stats: DuplicationStats
|
|
14009
|
+
/**
|
|
14010
|
+
* This run's view of the loaded duplication baseline, present only when
|
|
14011
|
+
* `--dupes-baseline` loaded one. Read `change_scoped` before dividing
|
|
14012
|
+
* `matched_entries` by `baseline_entries`: a narrowed run can report
|
|
14013
|
+
* `matched_entries: 0` on a healthy baseline.
|
|
14014
|
+
*/
|
|
14015
|
+
baseline_staleness?: (BaselineStaleness | null)
|
|
14016
|
+
}
|
|
13057
14017
|
/**
|
|
13058
14018
|
* Envelope emitted by `fallow flags --format json`.
|
|
13059
14019
|
*/
|
|
@@ -13061,6 +14021,22 @@ export interface FeatureFlagsOutput {
|
|
|
13061
14021
|
schema_version: FeatureFlagsSchemaVersion
|
|
13062
14022
|
version: ToolVersion
|
|
13063
14023
|
elapsed_ms: ElapsedMs
|
|
14024
|
+
/**
|
|
14025
|
+
* What the run was asked to narrow and whether it did. See
|
|
14026
|
+
* [`crate::RequestOutcomes`] for the full contract.
|
|
14027
|
+
*
|
|
14028
|
+
* `fallow flags` accepts `--changed-since`, and an unresolvable ref widens
|
|
14029
|
+
* the scan to the whole project rather than failing the run. Until this
|
|
14030
|
+
* member existed the only account of that was a stderr line, which `--quiet`
|
|
14031
|
+
* removes, so a flag inventory read as scoped to the change could silently
|
|
14032
|
+
* be the whole project's (issue #2734).
|
|
14033
|
+
*
|
|
14034
|
+
* The command applies no diff filter, so the object carries the
|
|
14035
|
+
* `changed-since` entry only. Omitted when the run was asked for nothing,
|
|
14036
|
+
* which keeps a scan that passed no narrowing flag byte-identical and moves
|
|
14037
|
+
* no `schema_version`.
|
|
14038
|
+
*/
|
|
14039
|
+
request_outcomes?: (RequestOutcomes | null)
|
|
13064
14040
|
/**
|
|
13065
14041
|
* Detected feature-flag findings.
|
|
13066
14042
|
*/
|
|
@@ -13283,6 +14259,11 @@ deltas: ReviewDeltas
|
|
|
13283
14259
|
*/
|
|
13284
14260
|
weakening: WeakeningSignal[]
|
|
13285
14261
|
routing: RoutingFacts
|
|
14262
|
+
/**
|
|
14263
|
+
* Owner-group reach from the CODEOWNERS file. Absent when no CODEOWNERS
|
|
14264
|
+
* file is found or the file cannot be read.
|
|
14265
|
+
*/
|
|
14266
|
+
ownership?: (OwnershipFacts | null)
|
|
13286
14267
|
/**
|
|
13287
14268
|
* Dead-code findings scoped to the audit changeset.
|
|
13288
14269
|
*/
|
|
@@ -13762,6 +14743,96 @@ expert: string[]
|
|
|
13762
14743
|
*/
|
|
13763
14744
|
bus_factor_one?: boolean
|
|
13764
14745
|
}
|
|
14746
|
+
/**
|
|
14747
|
+
* How far a changeset reaches across CODEOWNERS owner groups.
|
|
14748
|
+
*
|
|
14749
|
+
* Computed from the CODEOWNERS file alone: no git history is read, so the
|
|
14750
|
+
* section is present whenever a CODEOWNERS file is found, also when the churn
|
|
14751
|
+
* walk behind `routing` finds nothing. Each file maps to its primary owner
|
|
14752
|
+
* (the first owner of the last matching rule). A file that no rule matches,
|
|
14753
|
+
* or that a GitLab negation rule matches, belongs to the `(unowned)` group.
|
|
14754
|
+
* The owner strings use the same vocabulary as `routing.units[].expert`.
|
|
14755
|
+
*
|
|
14756
|
+
* Absent from the brief when no CODEOWNERS file is found, or when the file
|
|
14757
|
+
* cannot be read or does not parse. A configured `codeowners` path that
|
|
14758
|
+
* fails also prints a warning on stderr.
|
|
14759
|
+
*
|
|
14760
|
+
* `groups[].direct_count` counts all changed files, source or not, so the
|
|
14761
|
+
* sum over all groups is the number of changed files, not the size of
|
|
14762
|
+
* `impact_closure.in_diff`. Slice owners count only the files of the
|
|
14763
|
+
* partition units, which are source files.
|
|
14764
|
+
*/
|
|
14765
|
+
export interface OwnershipFacts {
|
|
14766
|
+
/**
|
|
14767
|
+
* Distinct owner groups across the changed files and the impact closure.
|
|
14768
|
+
* The `(unowned)` group counts as one group. Exact, never capped.
|
|
14769
|
+
*/
|
|
14770
|
+
group_count: number
|
|
14771
|
+
/**
|
|
14772
|
+
* Owner groups that own no changed file and appear only through the
|
|
14773
|
+
* impact closure. Exact, never capped.
|
|
14774
|
+
*/
|
|
14775
|
+
transitive_only_count: number
|
|
14776
|
+
/**
|
|
14777
|
+
* Changed files that belong to the `(unowned)` group.
|
|
14778
|
+
*/
|
|
14779
|
+
unowned_direct_count: number
|
|
14780
|
+
/**
|
|
14781
|
+
* The owner groups, sorted by `direct_count` descending, then
|
|
14782
|
+
* `affected_count` descending, then `owner`. At most [`OWNER_GROUP_CAP`]
|
|
14783
|
+
* entries. The counts in each entry are exact.
|
|
14784
|
+
*/
|
|
14785
|
+
groups: OwnerGroupFact[]
|
|
14786
|
+
/**
|
|
14787
|
+
* How many owner groups did not fit within [`OWNER_GROUP_CAP`] and are
|
|
14788
|
+
* absent from `groups`. Zero when nothing was omitted.
|
|
14789
|
+
*/
|
|
14790
|
+
groups_omitted: number
|
|
14791
|
+
/**
|
|
14792
|
+
* The owner set of each independent slice, aligned by index with
|
|
14793
|
+
* `partition.independent_slices`. Present only when that list is present
|
|
14794
|
+
* (two or more slices). A fact for the reviewer, never a demand to split.
|
|
14795
|
+
*/
|
|
14796
|
+
slices?: OwnershipSliceFact[]
|
|
14797
|
+
}
|
|
14798
|
+
/**
|
|
14799
|
+
* One owner group and how many files of the changeset it owns.
|
|
14800
|
+
*/
|
|
14801
|
+
export interface OwnerGroupFact {
|
|
14802
|
+
/**
|
|
14803
|
+
* The CODEOWNERS owner (`@user`, `@org/team`, or an email), or
|
|
14804
|
+
* `(unowned)`.
|
|
14805
|
+
*/
|
|
14806
|
+
owner: string
|
|
14807
|
+
/**
|
|
14808
|
+
* Changed files this group owns.
|
|
14809
|
+
*/
|
|
14810
|
+
direct_count: number
|
|
14811
|
+
/**
|
|
14812
|
+
* Files of the impact closure (affected, not in the diff) this group owns.
|
|
14813
|
+
*/
|
|
14814
|
+
affected_count: number
|
|
14815
|
+
}
|
|
14816
|
+
/**
|
|
14817
|
+
* The owners of one independent slice of the partition.
|
|
14818
|
+
*/
|
|
14819
|
+
export interface OwnershipSliceFact {
|
|
14820
|
+
/**
|
|
14821
|
+
* The module directories of the slice, as in
|
|
14822
|
+
* `partition.independent_slices`.
|
|
14823
|
+
*/
|
|
14824
|
+
module_dirs: string[]
|
|
14825
|
+
/**
|
|
14826
|
+
* The distinct owners of the changed files in the slice, sorted. The
|
|
14827
|
+
* `(unowned)` group is a distinct owner. Never empty.
|
|
14828
|
+
*/
|
|
14829
|
+
owners: string[]
|
|
14830
|
+
/**
|
|
14831
|
+
* True when the slice has exactly one owner, so one owner group can
|
|
14832
|
+
* review it on its own.
|
|
14833
|
+
*/
|
|
14834
|
+
separable: boolean
|
|
14835
|
+
}
|
|
13765
14836
|
/**
|
|
13766
14837
|
* The brief's branching section.
|
|
13767
14838
|
*/
|
|
@@ -14141,6 +15212,12 @@ deltas: ReviewDeltas
|
|
|
14141
15212
|
*/
|
|
14142
15213
|
weakening: WeakeningSignal[]
|
|
14143
15214
|
routing: RoutingFacts
|
|
15215
|
+
/**
|
|
15216
|
+
* How far the change reaches across CODEOWNERS owner groups, computed
|
|
15217
|
+
* from the CODEOWNERS file alone. Absent when no CODEOWNERS file is
|
|
15218
|
+
* found or the file cannot be read.
|
|
15219
|
+
*/
|
|
15220
|
+
ownership?: (OwnershipFacts | null)
|
|
14144
15221
|
decisions: DecisionSurface
|
|
14145
15222
|
/**
|
|
14146
15223
|
* Branching conservation across the changeset: total branching against
|
|
@@ -14397,6 +15474,22 @@ invalid_value?: (string | null)
|
|
|
14397
15474
|
*/
|
|
14398
15475
|
export interface SuppressionInventoryOutput {
|
|
14399
15476
|
schema_version: SuppressionInventorySchemaVersion
|
|
15477
|
+
/**
|
|
15478
|
+
* What the run was asked to narrow and whether it did. See
|
|
15479
|
+
* [`crate::RequestOutcomes`] for the full contract.
|
|
15480
|
+
*
|
|
15481
|
+
* `fallow suppressions` accepts `--changed-since`, and an unresolvable ref
|
|
15482
|
+
* widens the inventory to the whole project rather than failing the run.
|
|
15483
|
+
* Until this member existed the only account of that was a stderr line,
|
|
15484
|
+
* which `--quiet` removes, so an inventory read as scoped to the change
|
|
15485
|
+
* could silently be the whole project's (issue #2734).
|
|
15486
|
+
*
|
|
15487
|
+
* The command applies no diff filter, so the object carries the
|
|
15488
|
+
* `changed-since` entry only. Omitted when the run was asked for nothing,
|
|
15489
|
+
* which keeps an inventory that passed no narrowing flag byte-identical and
|
|
15490
|
+
* leaves `schema_version` at `1`.
|
|
15491
|
+
*/
|
|
15492
|
+
request_outcomes?: (RequestOutcomes | null)
|
|
14400
15493
|
summary: SuppressionInventorySummary
|
|
14401
15494
|
/**
|
|
14402
15495
|
* Per-file suppression listings, sorted by path then line.
|
|
@@ -15372,6 +16465,16 @@ export type BoundaryViolation = BoundaryViolationFinding;
|
|
|
15372
16465
|
*/
|
|
15373
16466
|
export type CircularDependency = CircularDependencyFinding;
|
|
15374
16467
|
|
|
16468
|
+
/**
|
|
16469
|
+
* Backwards-compat alias for the pre-#384 bare `DeprecatedExportInUse` name.
|
|
16470
|
+
* The wire shape is byte-identical: `DeprecatedExportInUseFinding` flattens the bare
|
|
16471
|
+
* finding's fields via `#[serde(flatten)]` and adds `actions[]` plus
|
|
16472
|
+
* the optional audit-mode `introduced` flag. Consumers that imported
|
|
16473
|
+
* `DeprecatedExportInUse` from `fallow/types` pre-migration continue to work via
|
|
16474
|
+
* this alias; new code should prefer `DeprecatedExportInUseFinding`.
|
|
16475
|
+
*/
|
|
16476
|
+
export type DeprecatedExportInUse = DeprecatedExportInUseFinding;
|
|
16477
|
+
|
|
15375
16478
|
/**
|
|
15376
16479
|
* Backwards-compat alias for the pre-#384 bare `DevDependencyInProduction` name.
|
|
15377
16480
|
* The wire shape is byte-identical: `DevDependencyInProductionFinding` flattens the bare
|