fallow 3.28.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 +137 -68
- 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 +25 -21
- package/skills/fallow/references/issue-types.md +1 -0
- package/skills/fallow/references/mcp.md +5 -3
- package/types/output-contract.d.ts +834 -101
|
@@ -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
|
*
|
|
@@ -618,13 +643,15 @@ kind: "file-scores-unavailable"
|
|
|
618
643
|
} | {
|
|
619
644
|
/**
|
|
620
645
|
* Which input stopped it, as a kebab-case token: `not-a-repository`,
|
|
621
|
-
* `invalid-since` or `churn-file-unreadable`. The set is
|
|
646
|
+
* `no-commits`, `invalid-since` or `churn-file-unreadable`. The set is
|
|
647
|
+
* open.
|
|
622
648
|
*
|
|
623
649
|
* The cause decides the remedy, which is why it is on the wire: a run
|
|
624
650
|
* outside a repository is fixed by running fallow inside one, a
|
|
625
|
-
*
|
|
626
|
-
*
|
|
627
|
-
* kind would offer the first
|
|
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.
|
|
628
655
|
*/
|
|
629
656
|
cause: string
|
|
630
657
|
kind: "hotspots-skipped"
|
|
@@ -664,13 +691,16 @@ kind: "trend-snapshot-unreadable"
|
|
|
664
691
|
plugin: string
|
|
665
692
|
/**
|
|
666
693
|
* The config key that was present and not fully readable (`exposes`,
|
|
667
|
-
* `remotes`)
|
|
694
|
+
* `remotes`), or the Module Federation runtime function whose
|
|
695
|
+
* argument was not readable (`registerRemotes`, `loadRemote`, `init`,
|
|
696
|
+
* `createInstance`). The set is open.
|
|
668
697
|
*/
|
|
669
698
|
key: string
|
|
670
699
|
/**
|
|
671
700
|
* Why it could not be read, as a kebab-case token:
|
|
672
|
-
* `not-object-literal`, `array-form`, `spread
|
|
673
|
-
* `unreadable-entries
|
|
701
|
+
* `not-object-literal`, `array-form`, `spread`,
|
|
702
|
+
* `unreadable-entries`, `unrecognized-call`,
|
|
703
|
+
* `import-target-unreadable` or `dynamic-argument`. The set is open.
|
|
674
704
|
*
|
|
675
705
|
* The reason decides the remedy, which is why it is on the wire: a
|
|
676
706
|
* value that is not an object literal is fixed by writing one, while
|
|
@@ -686,7 +716,8 @@ kind: "plugin-config-unreadable"
|
|
|
686
716
|
plugin: string
|
|
687
717
|
/**
|
|
688
718
|
* The config key whose effect is not modeled (`components`,
|
|
689
|
-
* `imports`)
|
|
719
|
+
* `imports`), or the virtual module a file reads (`#components`,
|
|
720
|
+
* `#imports`). The set is open.
|
|
690
721
|
*/
|
|
691
722
|
key: string
|
|
692
723
|
/**
|
|
@@ -771,6 +802,10 @@ export type HealthFindingActionType = ("refactor-function" | "add-tests" | "incr
|
|
|
771
802
|
* Coverage model used for CRAP score computation.
|
|
772
803
|
*/
|
|
773
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")
|
|
774
809
|
/**
|
|
775
810
|
* Whether CRAP findings in the report used one coverage-source kind or a mix.
|
|
776
811
|
*/
|
|
@@ -1222,7 +1257,7 @@ export type SecurityUrlShape = ("fixed-origin-dynamic-path" | "dynamic-origin")
|
|
|
1222
1257
|
*/
|
|
1223
1258
|
export type SecurityRuntimeState = ("runtime-hot" | "runtime-cold" | "never-executed" | "low-traffic" | "coverage-unavailable" | "runtime-unknown")
|
|
1224
1259
|
/**
|
|
1225
|
-
*
|
|
1260
|
+
* Family of a control pattern observed in a file on an import trace.
|
|
1226
1261
|
*/
|
|
1227
1262
|
export type SecurityControlKind = ("sanitization" | "validation" | "authentication" | "authorization")
|
|
1228
1263
|
/**
|
|
@@ -1270,7 +1305,7 @@ export type FeatureFlagActionType = ("investigate-flag" | "suppress-line")
|
|
|
1270
1305
|
* Independently-versioned wire-version newtype for the brief envelope.
|
|
1271
1306
|
* Serializes as the integer `REVIEW_BRIEF_SCHEMA_VERSION`.
|
|
1272
1307
|
*/
|
|
1273
|
-
export type ReviewBriefSchemaVersion =
|
|
1308
|
+
export type ReviewBriefSchemaVersion = 11
|
|
1274
1309
|
/**
|
|
1275
1310
|
* The exactly-three shippable decision categories (the SOLID-3). No cut category
|
|
1276
1311
|
* (abstraction / deletion / convention / irreversibility) is representable: this
|
|
@@ -1487,13 +1522,13 @@ base_snapshot_skipped?: (boolean | null)
|
|
|
1487
1522
|
summary: AuditSummary
|
|
1488
1523
|
attribution: AuditAttribution
|
|
1489
1524
|
/**
|
|
1490
|
-
*
|
|
1491
|
-
*
|
|
1492
|
-
* integration reads the verdict instead of
|
|
1493
|
-
* it usually cannot see. A gate fails the
|
|
1494
|
-
* AND `enforced` is true.
|
|
1495
|
-
*
|
|
1496
|
-
*
|
|
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`].
|
|
1497
1532
|
*/
|
|
1498
1533
|
gate_outcomes?: (GateOutcomes | null)
|
|
1499
1534
|
/**
|
|
@@ -1579,24 +1614,25 @@ styling_inherited: number
|
|
|
1579
1614
|
duplication_demoted: number
|
|
1580
1615
|
}
|
|
1581
1616
|
/**
|
|
1582
|
-
*
|
|
1617
|
+
* The verdict of every gate a run evaluated, keyed by name.
|
|
1583
1618
|
*
|
|
1584
|
-
*
|
|
1585
|
-
*
|
|
1586
|
-
*
|
|
1587
|
-
*
|
|
1588
|
-
*
|
|
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.
|
|
1589
1627
|
*
|
|
1590
|
-
*
|
|
1591
|
-
*
|
|
1592
|
-
* is never emitted: it would assert that gates were armed and none tripped,
|
|
1593
|
-
* 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.
|
|
1594
1630
|
*
|
|
1595
1631
|
* The names this build can emit are `error-severity-findings`, `regression`,
|
|
1596
1632
|
* `stale-baseline`, `duplication-threshold`, `health-min-score`,
|
|
1597
1633
|
* `health-min-severity`, `health-findings`, `health-coverage-gaps`,
|
|
1598
|
-
* `health-runtime-coverage`, `security`, `security-advisory`, `audit-verdict
|
|
1599
|
-
*
|
|
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
|
|
1600
1636
|
* recognise means "some gate", not an error.
|
|
1601
1637
|
*/
|
|
1602
1638
|
export interface GateOutcomes {
|
|
@@ -1623,15 +1659,17 @@ export interface GateOutcome {
|
|
|
1623
1659
|
status: GateStatus
|
|
1624
1660
|
/**
|
|
1625
1661
|
* True when a `fail` from this gate makes the run exit non-zero. False
|
|
1626
|
-
* when the verdict is published for information only
|
|
1627
|
-
*
|
|
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.
|
|
1628
1665
|
*/
|
|
1629
1666
|
enforced: boolean
|
|
1630
1667
|
/**
|
|
1631
1668
|
* The measured value the gate compared, when there is one: the duplication
|
|
1632
|
-
* percentage, the health score,
|
|
1633
|
-
* severity floor
|
|
1634
|
-
* 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.
|
|
1635
1673
|
*/
|
|
1636
1674
|
observed?: (number | null)
|
|
1637
1675
|
/**
|
|
@@ -1649,6 +1687,34 @@ threshold?: (number | null)
|
|
|
1649
1687
|
* object. Absent for gates whose numbers speak for themselves.
|
|
1650
1688
|
*/
|
|
1651
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
|
|
1652
1718
|
}
|
|
1653
1719
|
/**
|
|
1654
1720
|
* Metric and rule definitions emitted under `_meta` when `--explain` is
|
|
@@ -2614,6 +2680,12 @@ unused_types: UnusedTypeFinding[]
|
|
|
2614
2680
|
* typed `actions` array natively.
|
|
2615
2681
|
*/
|
|
2616
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[]
|
|
2617
2689
|
/**
|
|
2618
2690
|
* Dependencies listed in package.json but never imported. Wrapped in
|
|
2619
2691
|
* [`UnusedDependencyFinding`] so each entry carries a typed `actions`
|
|
@@ -2941,13 +3013,13 @@ baseline_staleness?: (BaselineStaleness | null)
|
|
|
2941
3013
|
*/
|
|
2942
3014
|
regression?: (RegressionResult | null)
|
|
2943
3015
|
/**
|
|
2944
|
-
*
|
|
2945
|
-
*
|
|
2946
|
-
* integration reads the verdict instead of
|
|
2947
|
-
* it usually cannot see. A gate fails the
|
|
2948
|
-
* AND `enforced` is true.
|
|
2949
|
-
*
|
|
2950
|
-
*
|
|
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`].
|
|
2951
3023
|
*/
|
|
2952
3024
|
gate_outcomes?: (GateOutcomes | null)
|
|
2953
3025
|
/**
|
|
@@ -3066,6 +3138,10 @@ unused_types: number
|
|
|
3066
3138
|
* Public exports whose signature references same-file private types.
|
|
3067
3139
|
*/
|
|
3068
3140
|
private_type_leaks: number
|
|
3141
|
+
/**
|
|
3142
|
+
* Exports marked `@deprecated` that are still referenced.
|
|
3143
|
+
*/
|
|
3144
|
+
deprecated_exports_in_use: number
|
|
3069
3145
|
/**
|
|
3070
3146
|
* Combined count of unused entries across `dependencies`,
|
|
3071
3147
|
* `devDependencies`, and `optionalDependencies`. The per-section
|
|
@@ -3247,6 +3323,13 @@ actions: IssueAction[]
|
|
|
3247
3323
|
* the merge-base. `None` when serialized directly from Rust.
|
|
3248
3324
|
*/
|
|
3249
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)
|
|
3250
3333
|
/**
|
|
3251
3334
|
* Advisory caveats on the reachability verdict behind this finding.
|
|
3252
3335
|
* Sorted, deduplicated, and omitted from the wire when empty, so a run
|
|
@@ -3450,6 +3533,17 @@ span_start: number
|
|
|
3450
3533
|
* Whether this finding comes from a barrel/index re-export rather than the source definition.
|
|
3451
3534
|
*/
|
|
3452
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)
|
|
3453
3547
|
/**
|
|
3454
3548
|
* Suggested next steps. Always emitted (possibly empty for
|
|
3455
3549
|
* forward-compat).
|
|
@@ -3464,6 +3558,13 @@ semantic?: (SemanticCandidateDecision | null)
|
|
|
3464
3558
|
* the merge-base.
|
|
3465
3559
|
*/
|
|
3466
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)
|
|
3467
3568
|
/**
|
|
3468
3569
|
* Advisory caveats on the reachability verdict behind this finding.
|
|
3469
3570
|
* Sorted, deduplicated, and omitted from the wire when empty. Never gates
|
|
@@ -3507,6 +3608,17 @@ span_start: number
|
|
|
3507
3608
|
* Whether this finding comes from a barrel/index re-export rather than the source definition.
|
|
3508
3609
|
*/
|
|
3509
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)
|
|
3510
3622
|
/**
|
|
3511
3623
|
* Suggested next steps. Always emitted (possibly empty for
|
|
3512
3624
|
* forward-compat).
|
|
@@ -3521,6 +3633,13 @@ semantic?: (SemanticCandidateDecision | null)
|
|
|
3521
3633
|
* the merge-base.
|
|
3522
3634
|
*/
|
|
3523
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)
|
|
3524
3643
|
/**
|
|
3525
3644
|
* Advisory caveats on the reachability verdict behind this finding.
|
|
3526
3645
|
* A type export rests on exactly the reachability test an
|
|
@@ -3575,6 +3694,103 @@ actions: IssueAction[]
|
|
|
3575
3694
|
* the merge-base.
|
|
3576
3695
|
*/
|
|
3577
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
|
|
3578
3794
|
}
|
|
3579
3795
|
/**
|
|
3580
3796
|
* Wire-shape envelope for an [`UnusedDependency`] finding consumed under
|
|
@@ -3612,6 +3828,13 @@ actions: IssueAction[]
|
|
|
3612
3828
|
* the merge-base.
|
|
3613
3829
|
*/
|
|
3614
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)
|
|
3615
3838
|
/**
|
|
3616
3839
|
* Advisory caveats on the verdict behind this finding. A dependency is
|
|
3617
3840
|
* reported unused when NO module in the project imports its specifier,
|
|
@@ -3658,6 +3881,13 @@ actions: IssueAction[]
|
|
|
3658
3881
|
* the merge-base.
|
|
3659
3882
|
*/
|
|
3660
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)
|
|
3661
3891
|
/**
|
|
3662
3892
|
* Advisory caveats on the verdict behind this finding. A dependency is
|
|
3663
3893
|
* reported unused when NO module in the project imports its specifier,
|
|
@@ -3704,6 +3934,13 @@ actions: IssueAction[]
|
|
|
3704
3934
|
* the merge-base.
|
|
3705
3935
|
*/
|
|
3706
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)
|
|
3707
3944
|
/**
|
|
3708
3945
|
* Advisory caveats on the verdict behind this finding. A dependency is
|
|
3709
3946
|
* reported unused when NO module in the project imports its specifier,
|
|
@@ -3750,6 +3987,13 @@ actions: IssueAction[]
|
|
|
3750
3987
|
* the merge-base.
|
|
3751
3988
|
*/
|
|
3752
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)
|
|
3753
3997
|
/**
|
|
3754
3998
|
* Advisory caveats on the verdict behind this finding. A member's usage
|
|
3755
3999
|
* is collected by walking the member accesses of every module the run
|
|
@@ -3802,6 +4046,13 @@ semantic?: (SemanticCandidateDecision | null)
|
|
|
3802
4046
|
* the merge-base.
|
|
3803
4047
|
*/
|
|
3804
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)
|
|
3805
4056
|
/**
|
|
3806
4057
|
* Advisory caveats on the verdict behind this finding. A class member's
|
|
3807
4058
|
* usage is collected by the same reachability-free member-access walk an
|
|
@@ -3855,6 +4106,13 @@ actions: IssueAction[]
|
|
|
3855
4106
|
* the merge-base.
|
|
3856
4107
|
*/
|
|
3857
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)
|
|
3858
4116
|
/**
|
|
3859
4117
|
* Advisory caveats on the verdict behind this finding. A store member's
|
|
3860
4118
|
* usage is collected by the same reachability-free member-access walk a
|
|
@@ -3905,6 +4163,13 @@ actions: IssueAction[]
|
|
|
3905
4163
|
* the merge-base.
|
|
3906
4164
|
*/
|
|
3907
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)
|
|
3908
4173
|
}
|
|
3909
4174
|
/**
|
|
3910
4175
|
* Wire-shape envelope for an [`UnlistedDependency`] finding. Carries an
|
|
@@ -3931,6 +4196,13 @@ actions: IssueAction[]
|
|
|
3931
4196
|
* the merge-base.
|
|
3932
4197
|
*/
|
|
3933
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)
|
|
3934
4206
|
}
|
|
3935
4207
|
/**
|
|
3936
4208
|
* A location where an import occurs.
|
|
@@ -3981,6 +4253,13 @@ actions: IssueAction[]
|
|
|
3981
4253
|
* the merge-base.
|
|
3982
4254
|
*/
|
|
3983
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)
|
|
3984
4263
|
}
|
|
3985
4264
|
/**
|
|
3986
4265
|
* A location where a duplicate export appears.
|
|
@@ -4027,6 +4306,13 @@ actions: IssueAction[]
|
|
|
4027
4306
|
* the merge-base.
|
|
4028
4307
|
*/
|
|
4029
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)
|
|
4030
4316
|
}
|
|
4031
4317
|
/**
|
|
4032
4318
|
* Wire-shape envelope for a [`TestOnlyDependency`] finding. Carries a
|
|
@@ -4057,6 +4343,13 @@ actions: IssueAction[]
|
|
|
4057
4343
|
* the merge-base.
|
|
4058
4344
|
*/
|
|
4059
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)
|
|
4060
4353
|
}
|
|
4061
4354
|
/**
|
|
4062
4355
|
* Wire-shape envelope for a [`DevDependencyInProduction`] finding. Carries a
|
|
@@ -4088,6 +4381,13 @@ actions: IssueAction[]
|
|
|
4088
4381
|
* the merge-base.
|
|
4089
4382
|
*/
|
|
4090
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)
|
|
4091
4391
|
}
|
|
4092
4392
|
/**
|
|
4093
4393
|
* Wire-shape envelope for a [`CircularDependency`] finding. Mirrors
|
|
@@ -4135,6 +4435,13 @@ actions: IssueAction[]
|
|
|
4135
4435
|
* the merge-base.
|
|
4136
4436
|
*/
|
|
4137
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)
|
|
4138
4445
|
}
|
|
4139
4446
|
/**
|
|
4140
4447
|
* One import hop in a circular dependency: the file containing the import
|
|
@@ -4190,6 +4497,13 @@ actions: IssueAction[]
|
|
|
4190
4497
|
* the merge-base.
|
|
4191
4498
|
*/
|
|
4192
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)
|
|
4193
4507
|
}
|
|
4194
4508
|
/**
|
|
4195
4509
|
* Wire-shape envelope for a [`BoundaryViolation`] finding. Mirrors
|
|
@@ -4236,6 +4550,13 @@ actions: IssueAction[]
|
|
|
4236
4550
|
* the merge-base.
|
|
4237
4551
|
*/
|
|
4238
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)
|
|
4239
4560
|
}
|
|
4240
4561
|
/**
|
|
4241
4562
|
* Wire-shape envelope for a [`BoundaryCoverageViolation`] finding. Carries
|
|
@@ -4264,6 +4585,13 @@ actions: IssueAction[]
|
|
|
4264
4585
|
* the merge-base.
|
|
4265
4586
|
*/
|
|
4266
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)
|
|
4267
4595
|
}
|
|
4268
4596
|
/**
|
|
4269
4597
|
* Wire-shape envelope for a [`BoundaryCallViolation`] finding. Carries
|
|
@@ -4305,6 +4633,13 @@ actions: IssueAction[]
|
|
|
4305
4633
|
* the merge-base.
|
|
4306
4634
|
*/
|
|
4307
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)
|
|
4308
4643
|
}
|
|
4309
4644
|
/**
|
|
4310
4645
|
* Wire-shape envelope for a [`PolicyViolation`] finding. Carries actions for
|
|
@@ -4382,6 +4717,13 @@ missing_reason?: boolean
|
|
|
4382
4717
|
* Suggested next steps. Always emitted.
|
|
4383
4718
|
*/
|
|
4384
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)
|
|
4385
4727
|
}
|
|
4386
4728
|
/**
|
|
4387
4729
|
* Wire-shape envelope for an [`UnusedCatalogEntry`] finding. Per-instance
|
|
@@ -4422,6 +4764,13 @@ actions: IssueAction[]
|
|
|
4422
4764
|
* the merge-base.
|
|
4423
4765
|
*/
|
|
4424
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)
|
|
4425
4774
|
}
|
|
4426
4775
|
/**
|
|
4427
4776
|
* Wire-shape envelope for an [`EmptyCatalogGroup`] finding. Carries a
|
|
@@ -4450,6 +4799,13 @@ actions: IssueAction[]
|
|
|
4450
4799
|
* the merge-base.
|
|
4451
4800
|
*/
|
|
4452
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)
|
|
4453
4809
|
}
|
|
4454
4810
|
/**
|
|
4455
4811
|
* Wire-shape envelope for an [`UnresolvedCatalogReference`] finding. The
|
|
@@ -4500,6 +4856,13 @@ actions: IssueAction[]
|
|
|
4500
4856
|
* the merge-base.
|
|
4501
4857
|
*/
|
|
4502
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)
|
|
4503
4866
|
}
|
|
4504
4867
|
/**
|
|
4505
4868
|
* Wire-shape envelope for an [`UnusedDependencyOverride`] finding. Carries
|
|
@@ -4562,6 +4925,13 @@ actions: IssueAction[]
|
|
|
4562
4925
|
* the merge-base.
|
|
4563
4926
|
*/
|
|
4564
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)
|
|
4565
4935
|
}
|
|
4566
4936
|
/**
|
|
4567
4937
|
* Wire-shape envelope for a [`MisconfiguredDependencyOverride`] finding.
|
|
@@ -4611,6 +4981,13 @@ actions: IssueAction[]
|
|
|
4611
4981
|
* the merge-base.
|
|
4612
4982
|
*/
|
|
4613
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)
|
|
4614
4991
|
}
|
|
4615
4992
|
/**
|
|
4616
4993
|
* Wire-shape envelope for an [`InvalidClientExport`] finding. There is no safe
|
|
@@ -4652,6 +5029,13 @@ actions: IssueAction[]
|
|
|
4652
5029
|
* the merge-base.
|
|
4653
5030
|
*/
|
|
4654
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)
|
|
4655
5039
|
}
|
|
4656
5040
|
/**
|
|
4657
5041
|
* Wire-shape envelope for a [`MixedClientServerBarrel`] finding. There is no
|
|
@@ -4693,6 +5077,13 @@ actions: IssueAction[]
|
|
|
4693
5077
|
* the merge-base.
|
|
4694
5078
|
*/
|
|
4695
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)
|
|
4696
5087
|
}
|
|
4697
5088
|
/**
|
|
4698
5089
|
* Wire-shape envelope for a [`MisplacedDirective`] finding. There is no safe
|
|
@@ -4729,6 +5120,13 @@ actions: IssueAction[]
|
|
|
4729
5120
|
* the merge-base.
|
|
4730
5121
|
*/
|
|
4731
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)
|
|
4732
5130
|
}
|
|
4733
5131
|
/**
|
|
4734
5132
|
* Wire-shape envelope for an [`UnprovidedInject`] finding. There is no safe
|
|
@@ -4767,6 +5165,13 @@ actions: IssueAction[]
|
|
|
4767
5165
|
* the merge-base.
|
|
4768
5166
|
*/
|
|
4769
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)
|
|
4770
5175
|
}
|
|
4771
5176
|
/**
|
|
4772
5177
|
* Wire-shape envelope for an [`UnrenderedComponent`] finding. There is no safe
|
|
@@ -4816,6 +5221,13 @@ actions: IssueAction[]
|
|
|
4816
5221
|
* the merge-base.
|
|
4817
5222
|
*/
|
|
4818
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)
|
|
4819
5231
|
}
|
|
4820
5232
|
/**
|
|
4821
5233
|
* Wire-shape envelope for a [`RouteCollision`] finding. A route collision is a
|
|
@@ -4858,6 +5270,13 @@ actions: IssueAction[]
|
|
|
4858
5270
|
* the merge-base.
|
|
4859
5271
|
*/
|
|
4860
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)
|
|
4861
5280
|
}
|
|
4862
5281
|
/**
|
|
4863
5282
|
* Wire-shape envelope for a [`DynamicSegmentNameConflict`] finding. The
|
|
@@ -4904,6 +5323,13 @@ actions: IssueAction[]
|
|
|
4904
5323
|
* the merge-base.
|
|
4905
5324
|
*/
|
|
4906
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)
|
|
4907
5333
|
}
|
|
4908
5334
|
/**
|
|
4909
5335
|
* Wire-shape envelope for an [`UnusedComponentProp`] finding. There is no safe
|
|
@@ -4942,6 +5368,13 @@ actions: IssueAction[]
|
|
|
4942
5368
|
* the merge-base.
|
|
4943
5369
|
*/
|
|
4944
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)
|
|
4945
5378
|
}
|
|
4946
5379
|
/**
|
|
4947
5380
|
* Wire-shape envelope for an [`UnusedComponentEmit`] finding. There is no safe
|
|
@@ -4980,6 +5413,13 @@ actions: IssueAction[]
|
|
|
4980
5413
|
* the merge-base.
|
|
4981
5414
|
*/
|
|
4982
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)
|
|
4983
5423
|
}
|
|
4984
5424
|
/**
|
|
4985
5425
|
* Wire-shape envelope for an [`UnusedComponentInput`] finding. There is no safe
|
|
@@ -5018,6 +5458,13 @@ actions: IssueAction[]
|
|
|
5018
5458
|
* the merge-base.
|
|
5019
5459
|
*/
|
|
5020
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)
|
|
5021
5468
|
}
|
|
5022
5469
|
/**
|
|
5023
5470
|
* Wire-shape envelope for an [`UnusedComponentOutput`] finding. There is no safe
|
|
@@ -5056,6 +5503,13 @@ actions: IssueAction[]
|
|
|
5056
5503
|
* the merge-base.
|
|
5057
5504
|
*/
|
|
5058
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)
|
|
5059
5513
|
}
|
|
5060
5514
|
/**
|
|
5061
5515
|
* Wire-shape envelope for an [`UnusedSvelteEvent`] finding. There is no safe
|
|
@@ -5095,6 +5549,13 @@ actions: IssueAction[]
|
|
|
5095
5549
|
* the merge-base.
|
|
5096
5550
|
*/
|
|
5097
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)
|
|
5098
5559
|
}
|
|
5099
5560
|
/**
|
|
5100
5561
|
* Wire-shape envelope for an [`UnusedServerAction`] finding. There is no safe
|
|
@@ -5129,6 +5590,13 @@ actions: IssueAction[]
|
|
|
5129
5590
|
* the merge-base.
|
|
5130
5591
|
*/
|
|
5131
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)
|
|
5132
5600
|
}
|
|
5133
5601
|
/**
|
|
5134
5602
|
* Wire-shape envelope for an [`UnusedLoadDataKey`] finding. There is no safe
|
|
@@ -5169,6 +5637,13 @@ actions: IssueAction[]
|
|
|
5169
5637
|
* the merge-base.
|
|
5170
5638
|
*/
|
|
5171
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)
|
|
5172
5647
|
}
|
|
5173
5648
|
/**
|
|
5174
5649
|
* Wire-shape envelope for a [`PropDrillingChain`] finding. There is no safe
|
|
@@ -5203,6 +5678,14 @@ actions: IssueAction[]
|
|
|
5203
5678
|
* the merge-base.
|
|
5204
5679
|
*/
|
|
5205
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)
|
|
5206
5689
|
}
|
|
5207
5690
|
/**
|
|
5208
5691
|
* One hop in a prop-drilling chain: a component that received the prop and
|
|
@@ -5260,6 +5743,14 @@ actions: IssueAction[]
|
|
|
5260
5743
|
* the merge-base.
|
|
5261
5744
|
*/
|
|
5262
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)
|
|
5263
5754
|
}
|
|
5264
5755
|
/**
|
|
5265
5756
|
* Wire-shape envelope for a [`DuplicatePropShape`] finding. There is no safe
|
|
@@ -5310,6 +5801,14 @@ actions: IssueAction[]
|
|
|
5310
5801
|
* the merge-base.
|
|
5311
5802
|
*/
|
|
5312
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)
|
|
5313
5812
|
}
|
|
5314
5813
|
/**
|
|
5315
5814
|
* One member of a duplicate-prop-shape group: the OTHER components that share
|
|
@@ -5483,6 +5982,19 @@ moved_entries: number
|
|
|
5483
5982
|
* existed gets, which is why the keys remain the fallback.
|
|
5484
5983
|
*/
|
|
5485
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
|
|
5486
5998
|
/**
|
|
5487
5999
|
* Which channels narrowed this run, present and non-empty exactly when
|
|
5488
6000
|
* `change_scoped` is true. Both members are derived from one function, so
|
|
@@ -5566,9 +6078,10 @@ reason?: (string | null)
|
|
|
5566
6078
|
* whole object narrows the report tells its reader an unwritten SARIF file
|
|
5567
6079
|
* widened the analysis, which is what `affects` exists to prevent.
|
|
5568
6080
|
*
|
|
5569
|
-
* `scope_size` is emitted for `diff-filter
|
|
5570
|
-
*
|
|
5571
|
-
*
|
|
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.
|
|
5572
6085
|
*
|
|
5573
6086
|
* `invalid-ref` is reachable only through the programmatic API. The
|
|
5574
6087
|
* `--changed-since` flag validates its value before a run starts and fails
|
|
@@ -5591,7 +6104,8 @@ affects: RequestEffect
|
|
|
5591
6104
|
/**
|
|
5592
6105
|
* What was asked, as the user spelled it: the git ref for
|
|
5593
6106
|
* `changed-since`, the diff source label (`--diff-file pr.diff`,
|
|
5594
|
-
* `--diff-stdin`, `$FALLOW_DIFF_FILE build/pr.diff
|
|
6107
|
+
* `--diff-stdin`, `$FALLOW_DIFF_FILE build/pr.diff`, or
|
|
6108
|
+
* `diffFile pr.diff` for the programmatic option) for `diff-filter`,
|
|
5595
6109
|
* the target path for `sarif-file`. Echoed rather than normalised, so a
|
|
5596
6110
|
* consumer must not join it to the project root the way it joins every
|
|
5597
6111
|
* other path-shaped field.
|
|
@@ -5604,9 +6118,14 @@ requested: string
|
|
|
5604
6118
|
* number there would describe a scope nobody applied.
|
|
5605
6119
|
*
|
|
5606
6120
|
* The unit belongs to the name. `diff-filter` counts added lines, which is
|
|
5607
|
-
* what its filter keeps a finding for.
|
|
5608
|
-
*
|
|
5609
|
-
*
|
|
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.
|
|
5610
6129
|
*
|
|
5611
6130
|
* The count is what the run INDEXED rather than the true total:
|
|
5612
6131
|
* `diff-filter` indexes at most one million added lines and reports that
|
|
@@ -6201,6 +6720,14 @@ react_prop_count?: number
|
|
|
6201
6720
|
react_hook_profile?: (ReactHookProfile | null)
|
|
6202
6721
|
exceeded: ExceededThreshold
|
|
6203
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)
|
|
6204
6731
|
/**
|
|
6205
6732
|
* CRAP score (change risk anti-pattern), when coverage data exists.
|
|
6206
6733
|
*/
|
|
@@ -6507,6 +7034,11 @@ average_maintainability?: (number | null)
|
|
|
6507
7034
|
* Coverage model behind the CRAP scores, when coverage was used.
|
|
6508
7035
|
*/
|
|
6509
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)
|
|
6510
7042
|
/**
|
|
6511
7043
|
* Whether CRAP findings mix coverage sources.
|
|
6512
7044
|
*/
|
|
@@ -7510,8 +8042,8 @@ watermark?: (RuntimeCoverageWatermark | null)
|
|
|
7510
8042
|
*/
|
|
7511
8043
|
warnings?: RuntimeCoverageMessage[]
|
|
7512
8044
|
/**
|
|
7513
|
-
* Whether an autonomous agent may act on this report (
|
|
7514
|
-
*
|
|
8045
|
+
* Whether an autonomous agent may act on this report (mirrors
|
|
8046
|
+
* the cloud runtime-context contract). `false` when the capture
|
|
7515
8047
|
* carries no usable runtime evidence (no tracked functions); then
|
|
7516
8048
|
* `actionability_verdict` is `insufficient_evidence` and
|
|
7517
8049
|
* `actionability_reason` explains. F4: a non-action floor, never a gate on a
|
|
@@ -7741,7 +8273,7 @@ description: string
|
|
|
7741
8273
|
auto_fixable: boolean
|
|
7742
8274
|
}
|
|
7743
8275
|
/**
|
|
7744
|
-
* Discriminator inputs that PRODUCED a finding's verdict
|
|
8276
|
+
* Discriminator inputs that PRODUCED a finding's verdict,
|
|
7745
8277
|
* emitted alongside the verdict so an agent can reproduce it and see the
|
|
7746
8278
|
* minimum-observation confidence cap instead of re-deriving them from scratch.
|
|
7747
8279
|
* F4: these make the EXISTING Fallow-owned discriminators legible; they are not
|
|
@@ -7937,7 +8469,7 @@ code: string
|
|
|
7937
8469
|
message: string
|
|
7938
8470
|
}
|
|
7939
8471
|
/**
|
|
7940
|
-
* Provenance of a runtime-coverage report
|
|
8472
|
+
* Provenance of a runtime-coverage report, mirroring
|
|
7941
8473
|
* the cloud runtime-context `provenance` block so the local-capture and cloud
|
|
7942
8474
|
* surfaces present one portable shape. F4: provenance is context only; it never
|
|
7943
8475
|
* gates a verdict or confidence.
|
|
@@ -10137,6 +10669,12 @@ imported_by: string[]
|
|
|
10137
10669
|
* Re-exports declared by this file.
|
|
10138
10670
|
*/
|
|
10139
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[]
|
|
10140
10678
|
}
|
|
10141
10679
|
/**
|
|
10142
10680
|
* An export with usage information.
|
|
@@ -10176,6 +10714,37 @@ imported_name: string
|
|
|
10176
10714
|
*/
|
|
10177
10715
|
exported_name: string
|
|
10178
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
|
+
}
|
|
10179
10748
|
/**
|
|
10180
10749
|
* Result of tracing a dependency: where it is used.
|
|
10181
10750
|
*/
|
|
@@ -10204,6 +10773,13 @@ is_used: boolean
|
|
|
10204
10773
|
* Total import count.
|
|
10205
10774
|
*/
|
|
10206
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[]
|
|
10207
10783
|
}
|
|
10208
10784
|
/**
|
|
10209
10785
|
* Result of tracing a clone: all groups containing the code at a source
|
|
@@ -11296,13 +11872,13 @@ grouped_by?: (GroupByMode | null)
|
|
|
11296
11872
|
*/
|
|
11297
11873
|
groups?: (HealthGroup[] | null)
|
|
11298
11874
|
/**
|
|
11299
|
-
*
|
|
11300
|
-
*
|
|
11301
|
-
* integration reads the verdict instead of
|
|
11302
|
-
* it usually cannot see. A gate fails the
|
|
11303
|
-
* AND `enforced` is true.
|
|
11304
|
-
*
|
|
11305
|
-
*
|
|
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`].
|
|
11306
11882
|
*/
|
|
11307
11883
|
gate_outcomes?: (GateOutcomes | null)
|
|
11308
11884
|
/**
|
|
@@ -11499,13 +12075,11 @@ groups?: (DuplicationGroup[] | null)
|
|
|
11499
12075
|
*/
|
|
11500
12076
|
baseline_staleness?: (BaselineStaleness | null)
|
|
11501
12077
|
/**
|
|
11502
|
-
*
|
|
11503
|
-
*
|
|
11504
|
-
*
|
|
11505
|
-
*
|
|
11506
|
-
*
|
|
11507
|
-
* rules fail a run with no flag at all, so an absent object means "no gate
|
|
11508
|
-
* 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`].
|
|
11509
12083
|
*/
|
|
11510
12084
|
gate_outcomes?: (GateOutcomes | null)
|
|
11511
12085
|
/**
|
|
@@ -11686,13 +12260,13 @@ groups: CheckGroupedEntry[]
|
|
|
11686
12260
|
*/
|
|
11687
12261
|
baseline_staleness?: (BaselineStaleness | null)
|
|
11688
12262
|
/**
|
|
11689
|
-
*
|
|
11690
|
-
*
|
|
11691
|
-
* integration reads the verdict instead of
|
|
11692
|
-
* it usually cannot see. A gate fails the
|
|
11693
|
-
* AND `enforced` is true.
|
|
11694
|
-
*
|
|
11695
|
-
*
|
|
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`].
|
|
11696
12270
|
*/
|
|
11697
12271
|
gate_outcomes?: (GateOutcomes | null)
|
|
11698
12272
|
/**
|
|
@@ -11764,6 +12338,12 @@ unused_types: UnusedTypeFinding[]
|
|
|
11764
12338
|
* typed `actions` array natively.
|
|
11765
12339
|
*/
|
|
11766
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[]
|
|
11767
12347
|
/**
|
|
11768
12348
|
* Dependencies listed in package.json but never imported. Wrapped in
|
|
11769
12349
|
* [`UnusedDependencyFinding`] so each entry carries a typed `actions`
|
|
@@ -12375,13 +12955,13 @@ version: ToolVersion
|
|
|
12375
12955
|
elapsed_ms: ElapsedMs
|
|
12376
12956
|
config: SecurityOutputConfig
|
|
12377
12957
|
/**
|
|
12378
|
-
*
|
|
12379
|
-
*
|
|
12380
|
-
* integration reads the verdict instead of
|
|
12381
|
-
* it usually cannot see. A gate fails the
|
|
12382
|
-
* AND `enforced` is true.
|
|
12383
|
-
*
|
|
12384
|
-
*
|
|
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`].
|
|
12385
12965
|
*/
|
|
12386
12966
|
gate_outcomes?: (GateOutcomes | null)
|
|
12387
12967
|
/**
|
|
@@ -12488,10 +13068,10 @@ new_count: number
|
|
|
12488
13068
|
export interface SecurityFinding {
|
|
12489
13069
|
/**
|
|
12490
13070
|
* Stable per-finding correlation id, identical across runs for the same
|
|
12491
|
-
* rule + anchor path + line. An autonomous agent that triaged this
|
|
13071
|
+
* rule + anchor path + line + column. An autonomous agent that triaged this
|
|
12492
13072
|
* candidate on a prior run uses it to correlate the candidate after a
|
|
12493
|
-
* rebase. Equal to the SARIF `partialFingerprints`
|
|
12494
|
-
* 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).
|
|
12495
13075
|
*/
|
|
12496
13076
|
finding_id: string
|
|
12497
13077
|
kind: SecurityFindingKind
|
|
@@ -12909,7 +13489,8 @@ defensive_boundary: SecurityDefensiveBoundary
|
|
|
12909
13489
|
*/
|
|
12910
13490
|
export interface SecurityDefensiveBoundary {
|
|
12911
13491
|
/**
|
|
12912
|
-
*
|
|
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.
|
|
12913
13494
|
*/
|
|
12914
13495
|
controls: SecurityDefensiveControl[]
|
|
12915
13496
|
/**
|
|
@@ -12919,7 +13500,9 @@ controls: SecurityDefensiveControl[]
|
|
|
12919
13500
|
verification_prompt: string
|
|
12920
13501
|
}
|
|
12921
13502
|
/**
|
|
12922
|
-
*
|
|
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.
|
|
12923
13506
|
*/
|
|
12924
13507
|
export interface SecurityDefensiveControl {
|
|
12925
13508
|
kind: SecurityControlKind
|
|
@@ -13018,13 +13601,13 @@ version: ToolVersion
|
|
|
13018
13601
|
elapsed_ms: ElapsedMs
|
|
13019
13602
|
config: SecurityOutputConfig
|
|
13020
13603
|
/**
|
|
13021
|
-
*
|
|
13022
|
-
*
|
|
13023
|
-
* integration reads the verdict instead of
|
|
13024
|
-
* it usually cannot see. A gate fails the
|
|
13025
|
-
* AND `enforced` is true.
|
|
13026
|
-
*
|
|
13027
|
-
*
|
|
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`].
|
|
13028
13611
|
*/
|
|
13029
13612
|
gate_outcomes?: (GateOutcomes | null)
|
|
13030
13613
|
/**
|
|
@@ -13321,13 +13904,17 @@ schema_version: CombinedSchemaVersion
|
|
|
13321
13904
|
version: ToolVersion
|
|
13322
13905
|
elapsed_ms: ElapsedMs
|
|
13323
13906
|
/**
|
|
13324
|
-
*
|
|
13325
|
-
*
|
|
13326
|
-
*
|
|
13327
|
-
*
|
|
13328
|
-
*
|
|
13329
|
-
*
|
|
13330
|
-
*
|
|
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`].
|
|
13331
13918
|
*/
|
|
13332
13919
|
gate_outcomes?: (GateOutcomes | null)
|
|
13333
13920
|
/**
|
|
@@ -13351,7 +13938,7 @@ check?: (CheckOutput | null)
|
|
|
13351
13938
|
/**
|
|
13352
13939
|
* Duplication section of the combined run.
|
|
13353
13940
|
*/
|
|
13354
|
-
dupes?: (
|
|
13941
|
+
dupes?: (CombinedDupesSection | null)
|
|
13355
13942
|
/**
|
|
13356
13943
|
* Health section of the combined run.
|
|
13357
13944
|
*/
|
|
@@ -13392,6 +13979,41 @@ health?: (Meta | null)
|
|
|
13392
13979
|
*/
|
|
13393
13980
|
telemetry?: (TelemetryMeta | null)
|
|
13394
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
|
+
}
|
|
13395
14017
|
/**
|
|
13396
14018
|
* Envelope emitted by `fallow flags --format json`.
|
|
13397
14019
|
*/
|
|
@@ -13637,6 +14259,11 @@ deltas: ReviewDeltas
|
|
|
13637
14259
|
*/
|
|
13638
14260
|
weakening: WeakeningSignal[]
|
|
13639
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)
|
|
13640
14267
|
/**
|
|
13641
14268
|
* Dead-code findings scoped to the audit changeset.
|
|
13642
14269
|
*/
|
|
@@ -14116,6 +14743,96 @@ expert: string[]
|
|
|
14116
14743
|
*/
|
|
14117
14744
|
bus_factor_one?: boolean
|
|
14118
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
|
+
}
|
|
14119
14836
|
/**
|
|
14120
14837
|
* The brief's branching section.
|
|
14121
14838
|
*/
|
|
@@ -14495,6 +15212,12 @@ deltas: ReviewDeltas
|
|
|
14495
15212
|
*/
|
|
14496
15213
|
weakening: WeakeningSignal[]
|
|
14497
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)
|
|
14498
15221
|
decisions: DecisionSurface
|
|
14499
15222
|
/**
|
|
14500
15223
|
* Branching conservation across the changeset: total branching against
|
|
@@ -15742,6 +16465,16 @@ export type BoundaryViolation = BoundaryViolationFinding;
|
|
|
15742
16465
|
*/
|
|
15743
16466
|
export type CircularDependency = CircularDependencyFinding;
|
|
15744
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
|
+
|
|
15745
16478
|
/**
|
|
15746
16479
|
* Backwards-compat alias for the pre-#384 bare `DevDependencyInProduction` name.
|
|
15747
16480
|
* The wire shape is byte-identical: `DevDependencyInProductionFinding` flattens the bare
|