@cplieger/deadset-ts 8.0.0-dev.5 → 8.0.0-dev.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/mapper-connection.js +2 -1
- package/dist/bin/node-host.js +3 -2
- package/dist/src/analysis.js +28 -46
- package/dist/src/automatic-types.js +10 -29
- package/dist/src/build-scripts.js +17 -29
- package/dist/src/component-layer.js +4 -2
- package/dist/src/components.js +2 -3
- package/dist/src/config.js +3 -2
- package/dist/src/configuration-files.js +27 -168
- package/dist/src/conformance-record.js +1 -1
- package/dist/src/contract/contract.generated.js +1084 -0
- package/dist/src/contract/report.generated.js +796 -0
- package/dist/src/conventions.js +20 -60
- package/dist/src/dependencies.js +25 -43
- package/dist/src/discover.js +13 -39
- package/dist/src/edges.js +7 -15
- package/dist/src/element-access.js +4 -6
- package/dist/src/entry-point-gaps.js +2 -8
- package/dist/src/entry-points.js +3 -10
- package/dist/src/enum-group.js +3 -10
- package/dist/src/erased-stores.js +4 -6
- package/dist/src/exempt-classes.js +3 -63
- package/dist/src/exempt.js +13 -40
- package/dist/src/file-facts.js +2 -25
- package/dist/src/findings/completion.js +11 -20
- package/dist/src/findings/dependencies-and-module-machinery.js +4 -5
- package/dist/src/findings/emitters.js +4 -4
- package/dist/src/findings/interfaces.js +4 -5
- package/dist/src/findings/intra-function.js +8 -7
- package/dist/src/findings/non-code-artifacts.js +5 -6
- package/dist/src/findings/reads-and-writes.js +11 -9
- package/dist/src/findings/self-check.js +10 -12
- package/dist/src/findings/unused-declarations.js +28 -27
- package/dist/src/findings/visibility-narrowing.js +9 -11
- package/dist/src/findings-pass.js +7 -14
- package/dist/src/fs/manifest.js +43 -0
- package/dist/src/fs/tree.js +88 -0
- package/dist/src/git-ignore.js +34 -25
- package/dist/src/html-entries.js +6 -33
- package/dist/src/in-operands.js +2 -1
- package/dist/src/index.js +1 -1
- package/dist/src/intra-function-parts.js +18 -26
- package/dist/src/inventory.js +2 -21
- package/dist/src/json-document.js +4 -0
- package/dist/src/keyof-comparisons.js +4 -6
- package/dist/src/kinds.js +4 -360
- package/dist/src/manifest.js +5 -43
- package/dist/src/mdx-entries.js +3 -26
- package/dist/src/partial.js +2 -1
- package/dist/src/paths.js +26 -15
- package/dist/src/position.js +2 -1
- package/dist/src/print.js +3 -2
- package/dist/src/product.js +13 -0
- package/dist/src/references.js +14 -27
- package/dist/src/report-schema.js +272 -0
- package/dist/src/report.js +39 -42
- package/dist/src/reporters/sarif.js +4 -2
- package/dist/src/reporters/template.js +4 -19
- package/dist/src/resolve.js +12 -26
- package/dist/src/roots.js +7 -17
- package/dist/src/run.js +10 -8
- package/dist/src/schema.js +4 -3
- package/dist/src/scope.js +4 -5
- package/dist/src/serialization-contract.js +4 -8
- package/dist/src/session.js +2 -1
- package/dist/src/setup-failure.js +2 -6
- package/dist/src/suppress-file.js +12 -13
- package/dist/src/suppress-inline.js +3 -2
- package/dist/src/suppress.js +29 -48
- package/dist/src/symbol-keys.js +3 -5
- package/dist/src/template-field.js +5 -15
- package/dist/src/test-globals.js +6 -28
- package/dist/src/test-joins.js +6 -6
- package/dist/src/text/compare.js +26 -0
- package/dist/src/text/glob.js +194 -0
- package/dist/src/text/shell.js +159 -0
- package/dist/src/{yaml-document.js → text/yaml.js} +38 -0
- package/dist/src/type-errors.js +14 -38
- package/dist/src/unseen-loads.js +2 -9
- package/dist/src/unwrap.js +23 -0
- package/dist/src/verbs/analyze.js +22 -15
- package/dist/src/verbs/describe.js +7 -7
- package/dist/src/verbs/explain.js +7 -4
- package/dist/src/verbs/print-config.js +2 -1
- package/dist/src/verbs/print-projects.js +4 -2
- package/dist/src/verbs/print-retained.js +4 -2
- package/dist/src/verbs/print-roots.js +4 -2
- package/dist/src/verbs/verb.js +1 -5
- package/dist/src/verbs/version.js +4 -3
- package/dist/src/workflow-steps.js +9 -46
- package/dist/src/workspace-manifests.js +2 -2
- package/dist/src/workspace-programs.js +5 -3
- package/dist/src/workspace-resolution.js +13 -17
- package/dist/src/workspace.js +28 -116
- package/jsr.json +1 -1
- package/package.json +2 -1
- package/src/analysis.ts +29 -54
- package/src/automatic-types.ts +11 -29
- package/src/build-scripts.ts +17 -38
- package/src/component-layer.ts +4 -2
- package/src/components.ts +2 -4
- package/src/config.ts +11 -15
- package/src/configuration-files.ts +27 -170
- package/src/conformance-record.ts +1 -1
- package/src/contract/contract.generated.ts +1148 -0
- package/src/contract/report.generated.ts +1157 -0
- package/src/conventions.ts +26 -74
- package/src/dependencies.ts +32 -50
- package/src/discover.ts +14 -39
- package/src/edges.ts +7 -21
- package/src/element-access.ts +4 -7
- package/src/entry-point-gaps.ts +3 -9
- package/src/entry-points.ts +2 -13
- package/src/enum-group.ts +2 -11
- package/src/erased-stores.ts +3 -7
- package/src/exempt-classes.ts +5 -74
- package/src/exempt.ts +17 -47
- package/src/file-facts.ts +6 -24
- package/src/finding.ts +9 -9
- package/src/findings/completion.ts +22 -23
- package/src/findings/dependencies-and-module-machinery.ts +4 -7
- package/src/findings/emitter.ts +6 -7
- package/src/findings/emitters.ts +6 -6
- package/src/findings/interfaces.ts +4 -6
- package/src/findings/intra-function.ts +8 -8
- package/src/findings/non-code-artifacts.ts +5 -7
- package/src/findings/reads-and-writes.ts +15 -12
- package/src/findings/self-check.ts +11 -17
- package/src/findings/unused-declarations.ts +28 -27
- package/src/findings/visibility-narrowing.ts +9 -12
- package/src/findings-pass.ts +7 -16
- package/src/fs/manifest.ts +52 -0
- package/src/fs/tree.ts +110 -0
- package/src/git-ignore.ts +38 -25
- package/src/html-entries.ts +6 -33
- package/src/in-operands.ts +2 -1
- package/src/index.ts +1 -1
- package/src/intra-function-parts.ts +18 -28
- package/src/inventory.ts +2 -20
- package/src/json-document.ts +5 -0
- package/src/keyof-comparisons.ts +3 -7
- package/src/kinds.ts +6 -406
- package/src/manifest.ts +5 -46
- package/src/mdx-entries.ts +3 -26
- package/src/partial.ts +2 -1
- package/src/paths.ts +27 -15
- package/src/position.ts +2 -1
- package/src/print.ts +3 -2
- package/src/product.ts +18 -0
- package/src/references.ts +14 -29
- package/src/report-schema.ts +364 -0
- package/src/report.ts +66 -229
- package/src/reporters/annotations.ts +2 -2
- package/src/reporters/json.ts +1 -1
- package/src/reporters/reporter.ts +2 -2
- package/src/reporters/reporters.ts +1 -1
- package/src/reporters/sarif.ts +17 -12
- package/src/reporters/template.ts +4 -20
- package/src/reporters/text.ts +3 -3
- package/src/resolve.ts +31 -38
- package/src/roots.ts +7 -20
- package/src/run.ts +10 -14
- package/src/schema.ts +4 -3
- package/src/scope.ts +4 -10
- package/src/serialization-contract.ts +4 -9
- package/src/session.ts +2 -1
- package/src/setup-failure.ts +5 -7
- package/src/suppress-file.ts +11 -15
- package/src/suppress-inline.ts +2 -2
- package/src/suppress.ts +39 -55
- package/src/symbol-keys.ts +2 -5
- package/src/template-field.ts +5 -18
- package/src/test-globals.ts +9 -27
- package/src/test-joins.ts +6 -8
- package/src/text/compare.ts +27 -0
- package/src/text/glob.ts +210 -0
- package/src/text/shell.ts +161 -0
- package/src/{yaml-document.ts → text/yaml.ts} +46 -0
- package/src/type-errors.ts +25 -36
- package/src/unseen-loads.ts +1 -12
- package/src/unwrap.ts +34 -0
- package/src/verbs/analyze.ts +38 -25
- package/src/verbs/describe.ts +13 -7
- package/src/verbs/explain.ts +7 -4
- package/src/verbs/print-config.ts +2 -1
- package/src/verbs/print-projects.ts +4 -2
- package/src/verbs/print-retained.ts +4 -2
- package/src/verbs/print-roots.ts +4 -2
- package/src/verbs/verb.ts +0 -6
- package/src/verbs/version.ts +4 -3
- package/src/workflow-steps.ts +9 -44
- package/src/workspace-manifests.ts +2 -2
- package/src/workspace-programs.ts +5 -3
- package/src/workspace-resolution.ts +21 -17
- package/src/workspace.ts +35 -121
- package/dist/src/glob.js +0 -65
- package/dist/src/pnpm-workspace.js +0 -120
- package/dist/src/version.js +0 -7
- package/src/glob.ts +0 -67
- package/src/pnpm-workspace.ts +0 -135
- package/src/version.ts +0 -7
|
@@ -0,0 +1,1157 @@
|
|
|
1
|
+
// Code generated by scripts/gen-report.ts from the Contract copy under fixtures/ (npm run gen). DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
/** The object at finding.schema.json#/$defs/position. */
|
|
4
|
+
export interface Position {
|
|
5
|
+
readonly path: string;
|
|
6
|
+
readonly line: number;
|
|
7
|
+
readonly column: number;
|
|
8
|
+
readonly end_line: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/** The object at finding.schema.json#/properties/symbol. */
|
|
12
|
+
export interface FindingSymbol {
|
|
13
|
+
readonly ref: string;
|
|
14
|
+
readonly kind:
|
|
15
|
+
| "function"
|
|
16
|
+
| "method"
|
|
17
|
+
| "type"
|
|
18
|
+
| "class"
|
|
19
|
+
| "interface"
|
|
20
|
+
| "enum"
|
|
21
|
+
| "namespace"
|
|
22
|
+
| "variable"
|
|
23
|
+
| "constant"
|
|
24
|
+
| "export-alias"
|
|
25
|
+
| "field"
|
|
26
|
+
| "class-member"
|
|
27
|
+
| "type-member"
|
|
28
|
+
| "interface-method"
|
|
29
|
+
| "enum-member"
|
|
30
|
+
| "satisfaction-assertion"
|
|
31
|
+
| "type-parameter"
|
|
32
|
+
| "parameter"
|
|
33
|
+
| "receiver"
|
|
34
|
+
| "result"
|
|
35
|
+
| "statement"
|
|
36
|
+
| "case"
|
|
37
|
+
| "store"
|
|
38
|
+
| "file"
|
|
39
|
+
| "import"
|
|
40
|
+
| "dependency"
|
|
41
|
+
| "module-directive"
|
|
42
|
+
| "suppression"
|
|
43
|
+
| "root"
|
|
44
|
+
| "configured-declaration"
|
|
45
|
+
| "edge";
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly parent?: string;
|
|
48
|
+
readonly exported?: boolean;
|
|
49
|
+
readonly size_lines: number;
|
|
50
|
+
readonly objectpath?: string;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** The object at finding.schema.json#/properties/component. */
|
|
54
|
+
export interface Component {
|
|
55
|
+
readonly id: string;
|
|
56
|
+
readonly root: boolean;
|
|
57
|
+
readonly symbol_count: number;
|
|
58
|
+
readonly deletable_lines: number;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** The object at finding.schema.json#/$defs/positioned_symbol. */
|
|
62
|
+
export interface PositionedSymbol {
|
|
63
|
+
readonly ref: string;
|
|
64
|
+
readonly name: string;
|
|
65
|
+
readonly position: Position;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** The object at finding.schema.json#/properties/details/properties/entry. */
|
|
69
|
+
export interface Entry {
|
|
70
|
+
readonly code: string;
|
|
71
|
+
readonly symbol?: string;
|
|
72
|
+
readonly path?: string;
|
|
73
|
+
readonly reason?: string;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** The object at finding.schema.json#/properties/details/properties/sides/items. */
|
|
77
|
+
export interface SidesEntry {
|
|
78
|
+
readonly side: "provides" | "used_by";
|
|
79
|
+
readonly symbol: string;
|
|
80
|
+
readonly state: "live" | "dead" | "absent";
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** The object at finding.schema.json#/properties/details. */
|
|
84
|
+
export interface Details {
|
|
85
|
+
readonly narrower_visibility?: "file" | "package" | "module";
|
|
86
|
+
readonly implementations?: readonly PositionedSymbol[];
|
|
87
|
+
readonly write_positions?: readonly Position[];
|
|
88
|
+
readonly excluded_by?: string;
|
|
89
|
+
readonly dependency_class?: "require" | "dependency" | "dev-dependency" | "peer-dependency";
|
|
90
|
+
readonly replacement?: string;
|
|
91
|
+
readonly mechanism?: "inline" | "ignore" | "baseline";
|
|
92
|
+
readonly entry?: Entry;
|
|
93
|
+
readonly overlap?: readonly string[];
|
|
94
|
+
readonly edge?: string;
|
|
95
|
+
readonly sides?: readonly SidesEntry[];
|
|
96
|
+
readonly removes_last_use_of?: readonly string[];
|
|
97
|
+
readonly name_literal?: Position;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/** The object at finding.schema.json#. */
|
|
101
|
+
export interface Finding {
|
|
102
|
+
readonly code: string;
|
|
103
|
+
readonly kind: string;
|
|
104
|
+
readonly language: "go" | "ts";
|
|
105
|
+
readonly position: Position;
|
|
106
|
+
readonly symbol: FindingSymbol;
|
|
107
|
+
readonly reachability_class: "certain" | "probable" | "possible";
|
|
108
|
+
readonly confidence: "certain" | "probable" | "possible";
|
|
109
|
+
readonly liveness_relation?: "reference-counting" | "reachability";
|
|
110
|
+
readonly test_only: boolean;
|
|
111
|
+
readonly generated: boolean;
|
|
112
|
+
readonly component: Component;
|
|
113
|
+
readonly retained_by: readonly string[];
|
|
114
|
+
readonly configurations: readonly string[];
|
|
115
|
+
readonly consumers_loaded: readonly string[];
|
|
116
|
+
readonly fixability: "deletable" | "narrowable" | "manual" | "none";
|
|
117
|
+
readonly severity: "allow" | "warn" | "deny";
|
|
118
|
+
readonly message: string;
|
|
119
|
+
readonly analyzer?: string;
|
|
120
|
+
readonly details: Details;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/** The object at report.schema.json#/properties/analyzer/properties/conformance. */
|
|
124
|
+
export interface Conformance {
|
|
125
|
+
readonly corpus_version: string;
|
|
126
|
+
readonly result: "pass" | "fail";
|
|
127
|
+
readonly digest: string;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/** The object at report.schema.json#/properties/analyzer. */
|
|
131
|
+
export interface Analyzer {
|
|
132
|
+
readonly name: string;
|
|
133
|
+
readonly version: string;
|
|
134
|
+
readonly languages: readonly ("go" | "ts")[];
|
|
135
|
+
readonly schema_versions_accepted: readonly string[];
|
|
136
|
+
readonly conformance: Conformance;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/** The object at report.schema.json#/properties/totals/properties/by_severity. */
|
|
140
|
+
export interface BySeverity {
|
|
141
|
+
readonly allow: number;
|
|
142
|
+
readonly warn: number;
|
|
143
|
+
readonly deny: number;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/** The object at report.schema.json#/properties/totals/properties/withheld. */
|
|
147
|
+
export interface Withheld {
|
|
148
|
+
readonly certain: number;
|
|
149
|
+
readonly probable: number;
|
|
150
|
+
readonly possible: number;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/** The object at report.schema.json#/properties/totals. */
|
|
154
|
+
export interface Totals {
|
|
155
|
+
readonly findings: number;
|
|
156
|
+
readonly by_severity: BySeverity;
|
|
157
|
+
readonly deletable_lines: number;
|
|
158
|
+
readonly suppressions_in_effect: number;
|
|
159
|
+
readonly reasons_recorded: number;
|
|
160
|
+
readonly stale_suppressions: number;
|
|
161
|
+
readonly pending: number;
|
|
162
|
+
readonly omitted: number;
|
|
163
|
+
readonly withheld: Withheld;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/** The object at report.schema.json#/properties/merged_from/items. */
|
|
167
|
+
export interface MergedFromEntry {
|
|
168
|
+
readonly name: string;
|
|
169
|
+
readonly version: string;
|
|
170
|
+
readonly digest: string;
|
|
171
|
+
readonly languages: readonly ("go" | "ts")[];
|
|
172
|
+
readonly totals: Totals;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/** The object at report.schema.json#/properties/target/properties/language_kinds. */
|
|
176
|
+
export interface LanguageKinds {
|
|
177
|
+
readonly go?: "application" | "library";
|
|
178
|
+
readonly ts?: "application" | "library";
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/** The object at report.schema.json#/properties/target. */
|
|
182
|
+
export interface Target {
|
|
183
|
+
readonly kind: "application" | "library" | "mixed";
|
|
184
|
+
readonly language_kinds?: LanguageKinds;
|
|
185
|
+
readonly root: string;
|
|
186
|
+
readonly identity: string;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/** The object at report.schema.json#/properties/configurations/items/oneOf/0. */
|
|
190
|
+
export interface ConfigurationsEntry1 {
|
|
191
|
+
readonly id: string;
|
|
192
|
+
readonly os: string;
|
|
193
|
+
readonly arch: string;
|
|
194
|
+
readonly tags: readonly string[];
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/** The object at report.schema.json#/properties/configurations/items/oneOf/1. */
|
|
198
|
+
export interface ConfigurationsEntry2 {
|
|
199
|
+
readonly id: string;
|
|
200
|
+
readonly project: string;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/** The object at report.schema.json#/properties/configurations_not_built/items/oneOf/0. */
|
|
204
|
+
export interface ConfigurationsNotBuiltEntry1 {
|
|
205
|
+
readonly id: string;
|
|
206
|
+
readonly os: string;
|
|
207
|
+
readonly arch: string;
|
|
208
|
+
readonly tags: readonly string[];
|
|
209
|
+
readonly error: string;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/** The object at report.schema.json#/properties/configurations_not_built/items/oneOf/1. */
|
|
213
|
+
export interface ConfigurationsNotBuiltEntry2 {
|
|
214
|
+
readonly id: string;
|
|
215
|
+
readonly project: string;
|
|
216
|
+
readonly error: string;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/** The object at report.schema.json#/properties/consumers/properties/loaded/items. */
|
|
220
|
+
export interface LoadedEntry {
|
|
221
|
+
readonly id: string;
|
|
222
|
+
readonly role: "consumer";
|
|
223
|
+
readonly path: string;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/** The object at report.schema.json#/properties/consumers/properties/unavailable/items. */
|
|
227
|
+
export interface UnavailableEntry {
|
|
228
|
+
readonly id: string;
|
|
229
|
+
readonly role: "consumer";
|
|
230
|
+
readonly reason: string;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/** The object at report.schema.json#/properties/consumers. */
|
|
234
|
+
export interface Consumers {
|
|
235
|
+
readonly declared: number;
|
|
236
|
+
readonly loaded: readonly LoadedEntry[];
|
|
237
|
+
readonly unavailable: readonly UnavailableEntry[];
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/** The object at report.schema.json#/properties/components/items. */
|
|
241
|
+
export interface ComponentsEntry {
|
|
242
|
+
readonly id: string;
|
|
243
|
+
readonly members: readonly PositionedSymbol[];
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/** The object at report.schema.json#/properties/edge_evaluations/items. */
|
|
247
|
+
export interface EdgeEvaluationsEntry {
|
|
248
|
+
readonly edge: string;
|
|
249
|
+
readonly side: "provides" | "used_by";
|
|
250
|
+
readonly symbol: string;
|
|
251
|
+
readonly state: "live" | "dead" | "absent";
|
|
252
|
+
readonly finding?: Finding;
|
|
253
|
+
readonly analyzer?: string;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/** The object at report.schema.json#/properties/stale_suppressions/items/properties/entry. */
|
|
257
|
+
export interface StaleSuppressionsEntryEntry {
|
|
258
|
+
readonly code: string;
|
|
259
|
+
readonly symbol?: string;
|
|
260
|
+
readonly path: string;
|
|
261
|
+
readonly reason: string;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/** The object at report.schema.json#/properties/stale_suppressions/items/properties/position. */
|
|
265
|
+
export interface StaleSuppressionsEntryPosition {
|
|
266
|
+
readonly path: string;
|
|
267
|
+
readonly line: number;
|
|
268
|
+
readonly column: number;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/** The object at report.schema.json#/properties/stale_suppressions/items. */
|
|
272
|
+
export interface StaleSuppressionsEntry {
|
|
273
|
+
readonly code: "DS9003";
|
|
274
|
+
readonly mechanism: "inline" | "ignore" | "baseline";
|
|
275
|
+
readonly entry: StaleSuppressionsEntryEntry;
|
|
276
|
+
readonly position: StaleSuppressionsEntryPosition;
|
|
277
|
+
readonly symbol: string;
|
|
278
|
+
readonly message: string;
|
|
279
|
+
readonly analyzer?: string;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/** The object at report.schema.json#/properties/declared_gaps/items. */
|
|
283
|
+
export interface DeclaredGapsEntry {
|
|
284
|
+
readonly fixture: string;
|
|
285
|
+
readonly symbol?: string;
|
|
286
|
+
readonly capability: string;
|
|
287
|
+
readonly reason: string;
|
|
288
|
+
readonly analyzer?: string;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/** The object at report.schema.json#/properties/test_file_rules/items. */
|
|
292
|
+
export interface TestFileRulesEntry {
|
|
293
|
+
readonly rule: string;
|
|
294
|
+
readonly matched: number;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/** The object at report.schema.json#/properties/type_error_skips/items. */
|
|
298
|
+
export interface TypeErrorSkipsEntry {
|
|
299
|
+
readonly path: string;
|
|
300
|
+
readonly line: number;
|
|
301
|
+
readonly message: string;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/** The object at report.schema.json#/properties/notes/items. */
|
|
305
|
+
export interface NotesEntry {
|
|
306
|
+
readonly kind: "computed-load" | "module-not-loaded" | "published-package" | "unmapped-entry";
|
|
307
|
+
readonly path: string;
|
|
308
|
+
readonly key?: "roots.patterns" | "ts.entry_files";
|
|
309
|
+
readonly message: string;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/** The object at report.schema.json#/properties/unanswered_questions/items. */
|
|
313
|
+
export interface UnansweredQuestionsEntry {
|
|
314
|
+
readonly configuration: string;
|
|
315
|
+
readonly questions: number;
|
|
316
|
+
readonly declarations: number;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/** The object at report.schema.json#/properties/conventions_applied/items. */
|
|
320
|
+
export interface ConventionsAppliedEntry {
|
|
321
|
+
readonly name: string;
|
|
322
|
+
readonly package: string;
|
|
323
|
+
readonly version: string;
|
|
324
|
+
readonly manifest: string;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/** The object at report.schema.json#. */
|
|
328
|
+
export interface Report {
|
|
329
|
+
readonly schema_version: string;
|
|
330
|
+
readonly contract_version: string;
|
|
331
|
+
readonly analyzer: Analyzer;
|
|
332
|
+
readonly merged_from?: readonly MergedFromEntry[];
|
|
333
|
+
readonly target: Target;
|
|
334
|
+
readonly configurations: readonly (ConfigurationsEntry1 | ConfigurationsEntry2)[];
|
|
335
|
+
readonly configurations_not_built: readonly (
|
|
336
|
+
ConfigurationsNotBuiltEntry1 | ConfigurationsNotBuiltEntry2
|
|
337
|
+
)[];
|
|
338
|
+
readonly consumers: Consumers;
|
|
339
|
+
readonly findings: readonly Finding[];
|
|
340
|
+
readonly components?: readonly ComponentsEntry[];
|
|
341
|
+
readonly edge_evaluations: readonly EdgeEvaluationsEntry[];
|
|
342
|
+
readonly stale_suppressions: readonly StaleSuppressionsEntry[];
|
|
343
|
+
readonly declared_gaps: readonly DeclaredGapsEntry[];
|
|
344
|
+
readonly excluded_by_cgo: readonly string[];
|
|
345
|
+
readonly test_file_rules: readonly TestFileRulesEntry[];
|
|
346
|
+
readonly type_error_skips: readonly TypeErrorSkipsEntry[];
|
|
347
|
+
readonly notes: readonly NotesEntry[];
|
|
348
|
+
readonly unanswered_questions: readonly UnansweredQuestionsEntry[];
|
|
349
|
+
readonly conventions_applied: readonly ConventionsAppliedEntry[];
|
|
350
|
+
readonly totals: Totals;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/** The report and finding schemas, as the validator reads them. */
|
|
354
|
+
export const REPORT_SCHEMAS = {
|
|
355
|
+
"report.schema.json": {
|
|
356
|
+
type: "object",
|
|
357
|
+
additionalProperties: false,
|
|
358
|
+
required: [
|
|
359
|
+
"schema_version",
|
|
360
|
+
"contract_version",
|
|
361
|
+
"analyzer",
|
|
362
|
+
"target",
|
|
363
|
+
"configurations",
|
|
364
|
+
"configurations_not_built",
|
|
365
|
+
"consumers",
|
|
366
|
+
"findings",
|
|
367
|
+
"edge_evaluations",
|
|
368
|
+
"stale_suppressions",
|
|
369
|
+
"declared_gaps",
|
|
370
|
+
"excluded_by_cgo",
|
|
371
|
+
"test_file_rules",
|
|
372
|
+
"type_error_skips",
|
|
373
|
+
"notes",
|
|
374
|
+
"unanswered_questions",
|
|
375
|
+
"conventions_applied",
|
|
376
|
+
"totals",
|
|
377
|
+
],
|
|
378
|
+
properties: {
|
|
379
|
+
schema_version: { type: "string", pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
|
|
380
|
+
contract_version: { type: "string", pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
|
|
381
|
+
analyzer: {
|
|
382
|
+
type: "object",
|
|
383
|
+
additionalProperties: false,
|
|
384
|
+
required: ["name", "version", "languages", "schema_versions_accepted", "conformance"],
|
|
385
|
+
properties: {
|
|
386
|
+
name: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
387
|
+
version: {
|
|
388
|
+
type: "string",
|
|
389
|
+
pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+(-[0-9A-Za-z.-]+)?(\\+[0-9A-Za-z.-]+)?$",
|
|
390
|
+
},
|
|
391
|
+
languages: {
|
|
392
|
+
type: "array",
|
|
393
|
+
minItems: 1,
|
|
394
|
+
uniqueItems: true,
|
|
395
|
+
items: { type: "string", enum: ["go", "ts"] },
|
|
396
|
+
},
|
|
397
|
+
schema_versions_accepted: {
|
|
398
|
+
type: "array",
|
|
399
|
+
minItems: 1,
|
|
400
|
+
uniqueItems: true,
|
|
401
|
+
items: { type: "string", pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
|
|
402
|
+
},
|
|
403
|
+
conformance: {
|
|
404
|
+
type: "object",
|
|
405
|
+
additionalProperties: false,
|
|
406
|
+
required: ["corpus_version", "result", "digest"],
|
|
407
|
+
properties: {
|
|
408
|
+
corpus_version: { type: "string", pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
|
|
409
|
+
result: { type: "string", enum: ["pass", "fail"] },
|
|
410
|
+
digest: { type: "string", pattern: "^sha256:[0-9a-f]{64}$" },
|
|
411
|
+
},
|
|
412
|
+
},
|
|
413
|
+
},
|
|
414
|
+
},
|
|
415
|
+
merged_from: {
|
|
416
|
+
type: "array",
|
|
417
|
+
uniqueItems: true,
|
|
418
|
+
items: {
|
|
419
|
+
type: "object",
|
|
420
|
+
additionalProperties: false,
|
|
421
|
+
required: ["name", "version", "digest", "languages", "totals"],
|
|
422
|
+
properties: {
|
|
423
|
+
name: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
424
|
+
version: {
|
|
425
|
+
type: "string",
|
|
426
|
+
pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+(-[0-9A-Za-z.-]+)?(\\+[0-9A-Za-z.-]+)?$",
|
|
427
|
+
},
|
|
428
|
+
digest: { type: "string", pattern: "^sha256:[0-9a-f]{64}$" },
|
|
429
|
+
languages: { $ref: "#/properties/analyzer/properties/languages" },
|
|
430
|
+
totals: { $ref: "#/properties/totals" },
|
|
431
|
+
},
|
|
432
|
+
},
|
|
433
|
+
},
|
|
434
|
+
target: {
|
|
435
|
+
type: "object",
|
|
436
|
+
additionalProperties: false,
|
|
437
|
+
required: ["kind", "root", "identity"],
|
|
438
|
+
if: { properties: { kind: { const: "mixed" } } },
|
|
439
|
+
then: { required: ["language_kinds"] },
|
|
440
|
+
else: { not: { required: ["language_kinds"] } },
|
|
441
|
+
properties: {
|
|
442
|
+
kind: { type: "string", enum: ["application", "library", "mixed"] },
|
|
443
|
+
language_kinds: {
|
|
444
|
+
type: "object",
|
|
445
|
+
additionalProperties: false,
|
|
446
|
+
minProperties: 2,
|
|
447
|
+
properties: {
|
|
448
|
+
go: { type: "string", enum: ["application", "library"] },
|
|
449
|
+
ts: { type: "string", enum: ["application", "library"] },
|
|
450
|
+
},
|
|
451
|
+
},
|
|
452
|
+
root: {
|
|
453
|
+
type: "string",
|
|
454
|
+
pattern:
|
|
455
|
+
"^(?:\\.|(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+)(?:/(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+))*)$",
|
|
456
|
+
},
|
|
457
|
+
identity: { type: "string", minLength: 1 },
|
|
458
|
+
},
|
|
459
|
+
},
|
|
460
|
+
configurations: {
|
|
461
|
+
type: "array",
|
|
462
|
+
minItems: 1,
|
|
463
|
+
uniqueItems: true,
|
|
464
|
+
items: {
|
|
465
|
+
oneOf: [
|
|
466
|
+
{
|
|
467
|
+
type: "object",
|
|
468
|
+
additionalProperties: false,
|
|
469
|
+
required: ["id", "os", "arch", "tags"],
|
|
470
|
+
properties: {
|
|
471
|
+
id: { type: "string", minLength: 1 },
|
|
472
|
+
os: { type: "string", minLength: 1 },
|
|
473
|
+
arch: { type: "string", minLength: 1 },
|
|
474
|
+
tags: { type: "array", uniqueItems: true, items: { type: "string", minLength: 1 } },
|
|
475
|
+
},
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
type: "object",
|
|
479
|
+
additionalProperties: false,
|
|
480
|
+
required: ["id", "project"],
|
|
481
|
+
properties: {
|
|
482
|
+
id: { type: "string", minLength: 1 },
|
|
483
|
+
project: {
|
|
484
|
+
type: "string",
|
|
485
|
+
minLength: 1,
|
|
486
|
+
pattern:
|
|
487
|
+
"^(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+)(?:/(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+))*$",
|
|
488
|
+
},
|
|
489
|
+
},
|
|
490
|
+
},
|
|
491
|
+
],
|
|
492
|
+
},
|
|
493
|
+
},
|
|
494
|
+
configurations_not_built: {
|
|
495
|
+
type: "array",
|
|
496
|
+
uniqueItems: true,
|
|
497
|
+
items: {
|
|
498
|
+
oneOf: [
|
|
499
|
+
{
|
|
500
|
+
type: "object",
|
|
501
|
+
additionalProperties: false,
|
|
502
|
+
required: ["id", "os", "arch", "tags", "error"],
|
|
503
|
+
properties: {
|
|
504
|
+
id: { type: "string", minLength: 1 },
|
|
505
|
+
os: { type: "string", minLength: 1 },
|
|
506
|
+
arch: { type: "string", minLength: 1 },
|
|
507
|
+
tags: { type: "array", uniqueItems: true, items: { type: "string", minLength: 1 } },
|
|
508
|
+
error: { type: "string", minLength: 1, pattern: "^[^\\r\\n]+$" },
|
|
509
|
+
},
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
type: "object",
|
|
513
|
+
additionalProperties: false,
|
|
514
|
+
required: ["id", "project", "error"],
|
|
515
|
+
properties: {
|
|
516
|
+
id: { type: "string", minLength: 1 },
|
|
517
|
+
project: {
|
|
518
|
+
type: "string",
|
|
519
|
+
minLength: 1,
|
|
520
|
+
pattern:
|
|
521
|
+
"^(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+)(?:/(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+))*$",
|
|
522
|
+
},
|
|
523
|
+
error: { type: "string", minLength: 1, pattern: "^[^\\r\\n]+$" },
|
|
524
|
+
},
|
|
525
|
+
},
|
|
526
|
+
],
|
|
527
|
+
},
|
|
528
|
+
},
|
|
529
|
+
consumers: {
|
|
530
|
+
type: "object",
|
|
531
|
+
additionalProperties: false,
|
|
532
|
+
required: ["declared", "loaded", "unavailable"],
|
|
533
|
+
properties: {
|
|
534
|
+
declared: { type: "integer", minimum: 0 },
|
|
535
|
+
loaded: {
|
|
536
|
+
type: "array",
|
|
537
|
+
uniqueItems: true,
|
|
538
|
+
items: {
|
|
539
|
+
type: "object",
|
|
540
|
+
additionalProperties: false,
|
|
541
|
+
required: ["id", "role", "path"],
|
|
542
|
+
properties: {
|
|
543
|
+
id: { type: "string", minLength: 1 },
|
|
544
|
+
role: { type: "string", enum: ["consumer"] },
|
|
545
|
+
path: { type: "string", minLength: 1 },
|
|
546
|
+
},
|
|
547
|
+
},
|
|
548
|
+
},
|
|
549
|
+
unavailable: {
|
|
550
|
+
type: "array",
|
|
551
|
+
uniqueItems: true,
|
|
552
|
+
items: {
|
|
553
|
+
type: "object",
|
|
554
|
+
additionalProperties: false,
|
|
555
|
+
required: ["id", "role", "reason"],
|
|
556
|
+
properties: {
|
|
557
|
+
id: { type: "string", minLength: 1 },
|
|
558
|
+
role: { type: "string", enum: ["consumer"] },
|
|
559
|
+
reason: { type: "string", minLength: 1, pattern: "[^ \\t\\r\\n]" },
|
|
560
|
+
},
|
|
561
|
+
},
|
|
562
|
+
},
|
|
563
|
+
},
|
|
564
|
+
},
|
|
565
|
+
findings: {
|
|
566
|
+
type: "array",
|
|
567
|
+
items: { $ref: "finding.schema.json", properties: { retained_by: { maxItems: 0 } } },
|
|
568
|
+
},
|
|
569
|
+
components: {
|
|
570
|
+
type: "array",
|
|
571
|
+
items: {
|
|
572
|
+
type: "object",
|
|
573
|
+
additionalProperties: false,
|
|
574
|
+
required: ["id", "members"],
|
|
575
|
+
properties: {
|
|
576
|
+
id: { type: "string", pattern: "^[a-z][a-z0-9-]*/c-[0-9]+$" },
|
|
577
|
+
members: {
|
|
578
|
+
type: "array",
|
|
579
|
+
uniqueItems: true,
|
|
580
|
+
items: { $ref: "finding.schema.json#/$defs/positioned_symbol" },
|
|
581
|
+
},
|
|
582
|
+
},
|
|
583
|
+
},
|
|
584
|
+
},
|
|
585
|
+
edge_evaluations: {
|
|
586
|
+
type: "array",
|
|
587
|
+
items: {
|
|
588
|
+
type: "object",
|
|
589
|
+
additionalProperties: false,
|
|
590
|
+
required: ["edge", "side", "symbol", "state"],
|
|
591
|
+
properties: {
|
|
592
|
+
edge: { type: "string", pattern: "^[A-Za-z0-9_.-]+(/[A-Za-z0-9_.-]+)*$" },
|
|
593
|
+
side: { type: "string", enum: ["provides", "used_by"] },
|
|
594
|
+
symbol: { type: "string" },
|
|
595
|
+
state: { type: "string", enum: ["live", "dead", "absent"] },
|
|
596
|
+
finding: { $ref: "finding.schema.json" },
|
|
597
|
+
analyzer: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
598
|
+
},
|
|
599
|
+
if: { properties: { state: { const: "dead" } } },
|
|
600
|
+
then: { required: ["finding"] },
|
|
601
|
+
else: { not: { required: ["finding"] } },
|
|
602
|
+
},
|
|
603
|
+
},
|
|
604
|
+
stale_suppressions: {
|
|
605
|
+
type: "array",
|
|
606
|
+
items: {
|
|
607
|
+
type: "object",
|
|
608
|
+
additionalProperties: false,
|
|
609
|
+
required: ["code", "mechanism", "entry", "position", "symbol", "message"],
|
|
610
|
+
properties: {
|
|
611
|
+
code: { type: "string", const: "DS9003" },
|
|
612
|
+
mechanism: { type: "string", enum: ["inline", "ignore", "baseline"] },
|
|
613
|
+
entry: {
|
|
614
|
+
type: "object",
|
|
615
|
+
additionalProperties: false,
|
|
616
|
+
required: ["code", "path", "reason"],
|
|
617
|
+
properties: {
|
|
618
|
+
code: { type: "string", pattern: "^DS[0-9]{4}$" },
|
|
619
|
+
symbol: { type: "string" },
|
|
620
|
+
path: {
|
|
621
|
+
type: "string",
|
|
622
|
+
pattern:
|
|
623
|
+
"^(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+)(?:/(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+))*$",
|
|
624
|
+
},
|
|
625
|
+
reason: { type: "string", minLength: 1, pattern: "[^ \\t\\r\\n]" },
|
|
626
|
+
},
|
|
627
|
+
},
|
|
628
|
+
position: {
|
|
629
|
+
type: "object",
|
|
630
|
+
additionalProperties: false,
|
|
631
|
+
required: ["path", "line", "column"],
|
|
632
|
+
properties: {
|
|
633
|
+
path: {
|
|
634
|
+
type: "string",
|
|
635
|
+
pattern:
|
|
636
|
+
"^(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+)(?:/(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+))*$",
|
|
637
|
+
},
|
|
638
|
+
line: { type: "integer", minimum: 1 },
|
|
639
|
+
column: { type: "integer", minimum: 1 },
|
|
640
|
+
},
|
|
641
|
+
},
|
|
642
|
+
symbol: { type: "string" },
|
|
643
|
+
message: { type: "string", minLength: 1, pattern: "[^ \\t\\r\\n]" },
|
|
644
|
+
analyzer: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
645
|
+
},
|
|
646
|
+
},
|
|
647
|
+
},
|
|
648
|
+
declared_gaps: {
|
|
649
|
+
type: "array",
|
|
650
|
+
items: {
|
|
651
|
+
type: "object",
|
|
652
|
+
additionalProperties: false,
|
|
653
|
+
required: ["fixture", "capability", "reason"],
|
|
654
|
+
properties: {
|
|
655
|
+
fixture: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
656
|
+
symbol: {
|
|
657
|
+
type: "string",
|
|
658
|
+
pattern: "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$",
|
|
659
|
+
},
|
|
660
|
+
capability: { type: "string", pattern: "^(DS[0-9]{4}|[a-z][a-z0-9]*(-[a-z0-9]+)*)$" },
|
|
661
|
+
reason: { type: "string", minLength: 1, pattern: "[^ \\t\\r\\n]" },
|
|
662
|
+
analyzer: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
663
|
+
},
|
|
664
|
+
},
|
|
665
|
+
},
|
|
666
|
+
excluded_by_cgo: {
|
|
667
|
+
type: "array",
|
|
668
|
+
uniqueItems: true,
|
|
669
|
+
items: {
|
|
670
|
+
type: "string",
|
|
671
|
+
pattern:
|
|
672
|
+
"^(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+)(?:/(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+))*$",
|
|
673
|
+
},
|
|
674
|
+
},
|
|
675
|
+
test_file_rules: {
|
|
676
|
+
type: "array",
|
|
677
|
+
uniqueItems: true,
|
|
678
|
+
items: {
|
|
679
|
+
type: "object",
|
|
680
|
+
additionalProperties: false,
|
|
681
|
+
required: ["rule", "matched"],
|
|
682
|
+
properties: {
|
|
683
|
+
rule: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
684
|
+
matched: { type: "integer", minimum: 0 },
|
|
685
|
+
},
|
|
686
|
+
},
|
|
687
|
+
},
|
|
688
|
+
type_error_skips: {
|
|
689
|
+
type: "array",
|
|
690
|
+
uniqueItems: true,
|
|
691
|
+
items: {
|
|
692
|
+
type: "object",
|
|
693
|
+
additionalProperties: false,
|
|
694
|
+
required: ["path", "line", "message"],
|
|
695
|
+
properties: {
|
|
696
|
+
path: {
|
|
697
|
+
type: "string",
|
|
698
|
+
pattern:
|
|
699
|
+
"^(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+)(?:/(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+))*$",
|
|
700
|
+
},
|
|
701
|
+
line: { type: "integer", minimum: 1 },
|
|
702
|
+
message: { type: "string", minLength: 1, pattern: "^[^\\r\\n]+$" },
|
|
703
|
+
},
|
|
704
|
+
},
|
|
705
|
+
},
|
|
706
|
+
notes: {
|
|
707
|
+
type: "array",
|
|
708
|
+
uniqueItems: true,
|
|
709
|
+
items: {
|
|
710
|
+
type: "object",
|
|
711
|
+
additionalProperties: false,
|
|
712
|
+
required: ["kind", "path", "message"],
|
|
713
|
+
allOf: [
|
|
714
|
+
{
|
|
715
|
+
if: { properties: { kind: { const: "published-package" } } },
|
|
716
|
+
then: { required: ["key"] },
|
|
717
|
+
},
|
|
718
|
+
{
|
|
719
|
+
if: { properties: { kind: { const: "unmapped-entry" } } },
|
|
720
|
+
then: { required: ["key"] },
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
if: { properties: { kind: { const: "module-not-loaded" } } },
|
|
724
|
+
then: { not: { required: ["key"] } },
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
if: { properties: { kind: { const: "computed-load" } } },
|
|
728
|
+
then: { not: { required: ["key"] } },
|
|
729
|
+
},
|
|
730
|
+
],
|
|
731
|
+
properties: {
|
|
732
|
+
kind: {
|
|
733
|
+
type: "string",
|
|
734
|
+
enum: ["computed-load", "module-not-loaded", "published-package", "unmapped-entry"],
|
|
735
|
+
},
|
|
736
|
+
path: {
|
|
737
|
+
type: "string",
|
|
738
|
+
pattern:
|
|
739
|
+
"^(?:\\.|(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+)(?:/(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+))*)$",
|
|
740
|
+
},
|
|
741
|
+
key: { type: "string", enum: ["roots.patterns", "ts.entry_files"] },
|
|
742
|
+
message: { type: "string", minLength: 1, pattern: "^[^\\r\\n]+$" },
|
|
743
|
+
},
|
|
744
|
+
},
|
|
745
|
+
},
|
|
746
|
+
unanswered_questions: {
|
|
747
|
+
type: "array",
|
|
748
|
+
uniqueItems: true,
|
|
749
|
+
items: {
|
|
750
|
+
type: "object",
|
|
751
|
+
additionalProperties: false,
|
|
752
|
+
required: ["configuration", "questions", "declarations"],
|
|
753
|
+
properties: {
|
|
754
|
+
configuration: { type: "string", minLength: 1 },
|
|
755
|
+
questions: { type: "integer", minimum: 1 },
|
|
756
|
+
declarations: { type: "integer", minimum: 0 },
|
|
757
|
+
},
|
|
758
|
+
},
|
|
759
|
+
},
|
|
760
|
+
conventions_applied: {
|
|
761
|
+
type: "array",
|
|
762
|
+
uniqueItems: true,
|
|
763
|
+
items: {
|
|
764
|
+
type: "object",
|
|
765
|
+
additionalProperties: false,
|
|
766
|
+
required: ["name", "package", "version", "manifest"],
|
|
767
|
+
properties: {
|
|
768
|
+
name: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
769
|
+
package: { type: "string", minLength: 1 },
|
|
770
|
+
version: { type: "string", minLength: 1 },
|
|
771
|
+
manifest: {
|
|
772
|
+
type: "string",
|
|
773
|
+
pattern:
|
|
774
|
+
"^(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+)(?:/(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+))*$",
|
|
775
|
+
},
|
|
776
|
+
},
|
|
777
|
+
},
|
|
778
|
+
},
|
|
779
|
+
totals: {
|
|
780
|
+
type: "object",
|
|
781
|
+
additionalProperties: false,
|
|
782
|
+
required: [
|
|
783
|
+
"findings",
|
|
784
|
+
"by_severity",
|
|
785
|
+
"deletable_lines",
|
|
786
|
+
"suppressions_in_effect",
|
|
787
|
+
"reasons_recorded",
|
|
788
|
+
"stale_suppressions",
|
|
789
|
+
"pending",
|
|
790
|
+
"omitted",
|
|
791
|
+
"withheld",
|
|
792
|
+
],
|
|
793
|
+
properties: {
|
|
794
|
+
findings: { type: "integer", minimum: 0 },
|
|
795
|
+
by_severity: {
|
|
796
|
+
type: "object",
|
|
797
|
+
additionalProperties: false,
|
|
798
|
+
required: ["allow", "warn", "deny"],
|
|
799
|
+
properties: {
|
|
800
|
+
allow: { type: "integer", minimum: 0 },
|
|
801
|
+
warn: { type: "integer", minimum: 0 },
|
|
802
|
+
deny: { type: "integer", minimum: 0 },
|
|
803
|
+
},
|
|
804
|
+
},
|
|
805
|
+
deletable_lines: { type: "integer", minimum: 0 },
|
|
806
|
+
suppressions_in_effect: { type: "integer", minimum: 0 },
|
|
807
|
+
reasons_recorded: { type: "integer", minimum: 0 },
|
|
808
|
+
stale_suppressions: { type: "integer", minimum: 0 },
|
|
809
|
+
pending: { type: "integer", minimum: 0 },
|
|
810
|
+
omitted: { type: "integer", minimum: 0 },
|
|
811
|
+
withheld: {
|
|
812
|
+
type: "object",
|
|
813
|
+
additionalProperties: false,
|
|
814
|
+
required: ["certain", "probable", "possible"],
|
|
815
|
+
properties: {
|
|
816
|
+
certain: { type: "integer", minimum: 0, maximum: 0 },
|
|
817
|
+
probable: { type: "integer", minimum: 0 },
|
|
818
|
+
possible: { type: "integer", minimum: 0 },
|
|
819
|
+
},
|
|
820
|
+
},
|
|
821
|
+
},
|
|
822
|
+
},
|
|
823
|
+
},
|
|
824
|
+
},
|
|
825
|
+
"finding.schema.json": {
|
|
826
|
+
type: "object",
|
|
827
|
+
additionalProperties: false,
|
|
828
|
+
required: [
|
|
829
|
+
"code",
|
|
830
|
+
"kind",
|
|
831
|
+
"language",
|
|
832
|
+
"position",
|
|
833
|
+
"symbol",
|
|
834
|
+
"reachability_class",
|
|
835
|
+
"confidence",
|
|
836
|
+
"test_only",
|
|
837
|
+
"generated",
|
|
838
|
+
"component",
|
|
839
|
+
"retained_by",
|
|
840
|
+
"configurations",
|
|
841
|
+
"consumers_loaded",
|
|
842
|
+
"fixability",
|
|
843
|
+
"severity",
|
|
844
|
+
"message",
|
|
845
|
+
"details",
|
|
846
|
+
],
|
|
847
|
+
properties: {
|
|
848
|
+
code: { type: "string", pattern: "^DS[0-9]{4}$" },
|
|
849
|
+
kind: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
850
|
+
language: { type: "string", enum: ["go", "ts"] },
|
|
851
|
+
position: { $ref: "#/$defs/position" },
|
|
852
|
+
symbol: {
|
|
853
|
+
type: "object",
|
|
854
|
+
additionalProperties: false,
|
|
855
|
+
required: ["ref", "kind", "name", "size_lines"],
|
|
856
|
+
properties: {
|
|
857
|
+
ref: { $ref: "#/$defs/symbol_reference" },
|
|
858
|
+
kind: {
|
|
859
|
+
type: "string",
|
|
860
|
+
enum: [
|
|
861
|
+
"function",
|
|
862
|
+
"method",
|
|
863
|
+
"type",
|
|
864
|
+
"class",
|
|
865
|
+
"interface",
|
|
866
|
+
"enum",
|
|
867
|
+
"namespace",
|
|
868
|
+
"variable",
|
|
869
|
+
"constant",
|
|
870
|
+
"export-alias",
|
|
871
|
+
"field",
|
|
872
|
+
"class-member",
|
|
873
|
+
"type-member",
|
|
874
|
+
"interface-method",
|
|
875
|
+
"enum-member",
|
|
876
|
+
"satisfaction-assertion",
|
|
877
|
+
"type-parameter",
|
|
878
|
+
"parameter",
|
|
879
|
+
"receiver",
|
|
880
|
+
"result",
|
|
881
|
+
"statement",
|
|
882
|
+
"case",
|
|
883
|
+
"store",
|
|
884
|
+
"file",
|
|
885
|
+
"import",
|
|
886
|
+
"dependency",
|
|
887
|
+
"module-directive",
|
|
888
|
+
"suppression",
|
|
889
|
+
"root",
|
|
890
|
+
"configured-declaration",
|
|
891
|
+
"edge",
|
|
892
|
+
],
|
|
893
|
+
},
|
|
894
|
+
name: { type: "string", pattern: "^[^\\r\\n]+$" },
|
|
895
|
+
parent: { $ref: "#/$defs/symbol_reference" },
|
|
896
|
+
exported: { type: "boolean" },
|
|
897
|
+
size_lines: { type: "integer", minimum: 1 },
|
|
898
|
+
objectpath: { type: "string", minLength: 1 },
|
|
899
|
+
},
|
|
900
|
+
},
|
|
901
|
+
reachability_class: { type: "string", enum: ["certain", "probable", "possible"] },
|
|
902
|
+
confidence: { type: "string", enum: ["certain", "probable", "possible"] },
|
|
903
|
+
liveness_relation: { type: "string", enum: ["reference-counting", "reachability"] },
|
|
904
|
+
test_only: { type: "boolean" },
|
|
905
|
+
generated: { type: "boolean" },
|
|
906
|
+
component: {
|
|
907
|
+
type: "object",
|
|
908
|
+
additionalProperties: false,
|
|
909
|
+
required: ["id", "root", "symbol_count", "deletable_lines"],
|
|
910
|
+
properties: {
|
|
911
|
+
id: { type: "string", pattern: "^[a-z][a-z0-9-]*/c-[0-9]+$" },
|
|
912
|
+
root: { type: "boolean" },
|
|
913
|
+
symbol_count: { type: "integer", minimum: 1 },
|
|
914
|
+
deletable_lines: { type: "integer", minimum: 0 },
|
|
915
|
+
},
|
|
916
|
+
},
|
|
917
|
+
retained_by: {
|
|
918
|
+
type: "array",
|
|
919
|
+
uniqueItems: true,
|
|
920
|
+
items: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
921
|
+
},
|
|
922
|
+
configurations: { type: "array", uniqueItems: true, items: { type: "string", minLength: 1 } },
|
|
923
|
+
consumers_loaded: {
|
|
924
|
+
type: "array",
|
|
925
|
+
uniqueItems: true,
|
|
926
|
+
items: { type: "string", minLength: 1 },
|
|
927
|
+
},
|
|
928
|
+
fixability: { type: "string", enum: ["deletable", "narrowable", "manual", "none"] },
|
|
929
|
+
severity: { type: "string", enum: ["allow", "warn", "deny"] },
|
|
930
|
+
message: { type: "string", pattern: "^[^\\r\\n]*[^.\\r\\n]$" },
|
|
931
|
+
analyzer: { type: "string", pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
|
|
932
|
+
details: {
|
|
933
|
+
type: "object",
|
|
934
|
+
additionalProperties: false,
|
|
935
|
+
properties: {
|
|
936
|
+
narrower_visibility: { type: "string", enum: ["file", "package", "module"] },
|
|
937
|
+
implementations: {
|
|
938
|
+
type: "array",
|
|
939
|
+
uniqueItems: true,
|
|
940
|
+
items: { $ref: "#/$defs/positioned_symbol" },
|
|
941
|
+
},
|
|
942
|
+
write_positions: {
|
|
943
|
+
type: "array",
|
|
944
|
+
minItems: 1,
|
|
945
|
+
uniqueItems: true,
|
|
946
|
+
items: { $ref: "#/$defs/position" },
|
|
947
|
+
},
|
|
948
|
+
excluded_by: { type: "string", minLength: 1 },
|
|
949
|
+
dependency_class: {
|
|
950
|
+
type: "string",
|
|
951
|
+
enum: ["require", "dependency", "dev-dependency", "peer-dependency"],
|
|
952
|
+
},
|
|
953
|
+
replacement: { type: "string", minLength: 1 },
|
|
954
|
+
mechanism: { type: "string", enum: ["inline", "ignore", "baseline"] },
|
|
955
|
+
entry: {
|
|
956
|
+
type: "object",
|
|
957
|
+
additionalProperties: false,
|
|
958
|
+
required: ["code"],
|
|
959
|
+
properties: {
|
|
960
|
+
code: { type: "string", pattern: "^DS[0-9]{4}$" },
|
|
961
|
+
symbol: { $ref: "#/$defs/symbol_reference" },
|
|
962
|
+
path: { $ref: "#/$defs/relative_path" },
|
|
963
|
+
reason: { type: "string", pattern: "[^ \\t\\r\\n]" },
|
|
964
|
+
},
|
|
965
|
+
},
|
|
966
|
+
overlap: {
|
|
967
|
+
type: "array",
|
|
968
|
+
minItems: 1,
|
|
969
|
+
uniqueItems: true,
|
|
970
|
+
items: { type: "string", minLength: 1 },
|
|
971
|
+
},
|
|
972
|
+
edge: { type: "string", pattern: "^[A-Za-z0-9_.-]+(/[A-Za-z0-9_.-]+)*$" },
|
|
973
|
+
sides: {
|
|
974
|
+
type: "array",
|
|
975
|
+
minItems: 1,
|
|
976
|
+
uniqueItems: true,
|
|
977
|
+
items: {
|
|
978
|
+
type: "object",
|
|
979
|
+
additionalProperties: false,
|
|
980
|
+
required: ["side", "symbol", "state"],
|
|
981
|
+
properties: {
|
|
982
|
+
side: { type: "string", enum: ["provides", "used_by"] },
|
|
983
|
+
symbol: { $ref: "#/$defs/symbol_reference" },
|
|
984
|
+
state: { type: "string", enum: ["live", "dead", "absent"] },
|
|
985
|
+
},
|
|
986
|
+
},
|
|
987
|
+
},
|
|
988
|
+
removes_last_use_of: {
|
|
989
|
+
type: "array",
|
|
990
|
+
minItems: 1,
|
|
991
|
+
uniqueItems: true,
|
|
992
|
+
items: { type: "string", minLength: 1 },
|
|
993
|
+
},
|
|
994
|
+
name_literal: { $ref: "#/$defs/position" },
|
|
995
|
+
},
|
|
996
|
+
},
|
|
997
|
+
},
|
|
998
|
+
allOf: [
|
|
999
|
+
{
|
|
1000
|
+
if: { required: ["code"], properties: { code: { enum: ["DS1501", "DS1502", "DS1503"] } } },
|
|
1001
|
+
then: { properties: { details: { required: ["narrower_visibility"] } } },
|
|
1002
|
+
else: {
|
|
1003
|
+
properties: { details: { not: { anyOf: [{ required: ["narrower_visibility"] }] } } },
|
|
1004
|
+
},
|
|
1005
|
+
},
|
|
1006
|
+
{
|
|
1007
|
+
if: { required: ["code"], properties: { code: { enum: ["DS1201", "DS1202", "DS1203"] } } },
|
|
1008
|
+
then: { properties: { details: { required: ["implementations"] } } },
|
|
1009
|
+
else: { properties: { details: { not: { anyOf: [{ required: ["implementations"] }] } } } },
|
|
1010
|
+
},
|
|
1011
|
+
{
|
|
1012
|
+
if: { required: ["code"], properties: { code: { enum: ["DS1301", "DS1404"] } } },
|
|
1013
|
+
then: { properties: { details: { required: ["write_positions"] } } },
|
|
1014
|
+
else: { properties: { details: { not: { anyOf: [{ required: ["write_positions"] }] } } } },
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
if: { required: ["code"], properties: { code: { const: "DS1601" } } },
|
|
1018
|
+
then: {
|
|
1019
|
+
allOf: [
|
|
1020
|
+
{
|
|
1021
|
+
if: { required: ["language"], properties: { language: { enum: ["go"] } } },
|
|
1022
|
+
then: { properties: { details: { required: ["excluded_by"] } } },
|
|
1023
|
+
else: {
|
|
1024
|
+
properties: { details: { not: { anyOf: [{ required: ["excluded_by"] }] } } },
|
|
1025
|
+
},
|
|
1026
|
+
},
|
|
1027
|
+
],
|
|
1028
|
+
},
|
|
1029
|
+
else: { properties: { details: { not: { anyOf: [{ required: ["excluded_by"] }] } } } },
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
if: { required: ["code"], properties: { code: { const: "DS1701" } } },
|
|
1033
|
+
then: { properties: { details: { required: ["dependency_class"] } } },
|
|
1034
|
+
else: { properties: { details: { not: { anyOf: [{ required: ["dependency_class"] }] } } } },
|
|
1035
|
+
},
|
|
1036
|
+
{
|
|
1037
|
+
if: { required: ["code"], properties: { code: { const: "DS1702" } } },
|
|
1038
|
+
then: { properties: { details: { required: ["replacement"] } } },
|
|
1039
|
+
else: { properties: { details: { not: { anyOf: [{ required: ["replacement"] }] } } } },
|
|
1040
|
+
},
|
|
1041
|
+
{
|
|
1042
|
+
if: { required: ["code"], properties: { code: { enum: ["DS9001", "DS9002", "DS9003"] } } },
|
|
1043
|
+
then: { properties: { details: { required: ["mechanism", "entry"] } } },
|
|
1044
|
+
else: {
|
|
1045
|
+
properties: {
|
|
1046
|
+
details: { not: { anyOf: [{ required: ["mechanism"] }, { required: ["entry"] }] } },
|
|
1047
|
+
},
|
|
1048
|
+
},
|
|
1049
|
+
},
|
|
1050
|
+
{
|
|
1051
|
+
if: {
|
|
1052
|
+
required: ["code"],
|
|
1053
|
+
properties: {
|
|
1054
|
+
code: { enum: ["DS1401", "DS1402", "DS1403", "DS1404", "DS1405", "DS1406"] },
|
|
1055
|
+
},
|
|
1056
|
+
},
|
|
1057
|
+
then: { properties: { details: { required: ["overlap"] } } },
|
|
1058
|
+
else: { properties: { details: { not: { anyOf: [{ required: ["overlap"] }] } } } },
|
|
1059
|
+
},
|
|
1060
|
+
{
|
|
1061
|
+
if: { required: ["code"], properties: { code: { const: "DS9005" } } },
|
|
1062
|
+
then: { properties: { details: { required: ["edge", "sides"] } } },
|
|
1063
|
+
else: {
|
|
1064
|
+
properties: {
|
|
1065
|
+
details: { not: { anyOf: [{ required: ["edge"] }, { required: ["sides"] }] } },
|
|
1066
|
+
},
|
|
1067
|
+
},
|
|
1068
|
+
},
|
|
1069
|
+
{
|
|
1070
|
+
if: {
|
|
1071
|
+
required: ["code"],
|
|
1072
|
+
properties: {
|
|
1073
|
+
code: { enum: ["DS1001", "DS1002", "DS1101", "DS1102", "DS1104", "DS1501", "DS1502"] },
|
|
1074
|
+
},
|
|
1075
|
+
},
|
|
1076
|
+
then: {
|
|
1077
|
+
if: { required: ["details"], properties: { details: { required: ["name_literal"] } } },
|
|
1078
|
+
then: { properties: { reachability_class: { const: "possible" } } },
|
|
1079
|
+
},
|
|
1080
|
+
else: { properties: { details: { not: { anyOf: [{ required: ["name_literal"] }] } } } },
|
|
1081
|
+
},
|
|
1082
|
+
{
|
|
1083
|
+
if: {
|
|
1084
|
+
anyOf: [
|
|
1085
|
+
{
|
|
1086
|
+
required: ["symbol"],
|
|
1087
|
+
properties: {
|
|
1088
|
+
symbol: {
|
|
1089
|
+
required: ["kind"],
|
|
1090
|
+
properties: {
|
|
1091
|
+
kind: {
|
|
1092
|
+
enum: [
|
|
1093
|
+
"case",
|
|
1094
|
+
"configured-declaration",
|
|
1095
|
+
"dependency",
|
|
1096
|
+
"edge",
|
|
1097
|
+
"file",
|
|
1098
|
+
"import",
|
|
1099
|
+
"module-directive",
|
|
1100
|
+
"parameter",
|
|
1101
|
+
"receiver",
|
|
1102
|
+
"result",
|
|
1103
|
+
"root",
|
|
1104
|
+
"statement",
|
|
1105
|
+
"store",
|
|
1106
|
+
"suppression",
|
|
1107
|
+
],
|
|
1108
|
+
},
|
|
1109
|
+
},
|
|
1110
|
+
},
|
|
1111
|
+
},
|
|
1112
|
+
},
|
|
1113
|
+
{
|
|
1114
|
+
required: ["code"],
|
|
1115
|
+
properties: { code: { enum: ["DS1203", "DS1301", "DS1501", "DS1502", "DS1503"] } },
|
|
1116
|
+
},
|
|
1117
|
+
],
|
|
1118
|
+
},
|
|
1119
|
+
then: { not: { required: ["liveness_relation"] } },
|
|
1120
|
+
else: { required: ["liveness_relation"] },
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
if: { required: ["fixability"], properties: { fixability: { const: "deletable" } } },
|
|
1124
|
+
else: { properties: { details: { not: { required: ["removes_last_use_of"] } } } },
|
|
1125
|
+
},
|
|
1126
|
+
],
|
|
1127
|
+
$defs: {
|
|
1128
|
+
position: {
|
|
1129
|
+
type: "object",
|
|
1130
|
+
additionalProperties: false,
|
|
1131
|
+
required: ["path", "line", "column", "end_line"],
|
|
1132
|
+
properties: {
|
|
1133
|
+
path: { $ref: "#/$defs/relative_path" },
|
|
1134
|
+
line: { type: "integer", minimum: 1 },
|
|
1135
|
+
column: { type: "integer", minimum: 1 },
|
|
1136
|
+
end_line: { type: "integer", minimum: 1 },
|
|
1137
|
+
},
|
|
1138
|
+
},
|
|
1139
|
+
relative_path: {
|
|
1140
|
+
type: "string",
|
|
1141
|
+
pattern:
|
|
1142
|
+
"^(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+)(?:/(?:[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.[^/.\\x00-\\x1f\\x7f][^/\\x00-\\x1f\\x7f]*|\\.\\.[^/\\x00-\\x1f\\x7f]+))*$",
|
|
1143
|
+
},
|
|
1144
|
+
symbol_reference: { type: "string", minLength: 1 },
|
|
1145
|
+
positioned_symbol: {
|
|
1146
|
+
type: "object",
|
|
1147
|
+
additionalProperties: false,
|
|
1148
|
+
required: ["ref", "name", "position"],
|
|
1149
|
+
properties: {
|
|
1150
|
+
ref: { $ref: "#/$defs/symbol_reference" },
|
|
1151
|
+
name: { type: "string", pattern: "^[^\\r\\n]+$" },
|
|
1152
|
+
position: { $ref: "#/$defs/position" },
|
|
1153
|
+
},
|
|
1154
|
+
},
|
|
1155
|
+
},
|
|
1156
|
+
},
|
|
1157
|
+
} as const;
|