whiff-python 0.1.0__cp311-abi3-win_amd64.whl
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.
- whiff/__init__.py +64 -0
- whiff/_native.pyd +0 -0
- whiff/_native.pyi +11 -0
- whiff/engine.py +385 -0
- whiff/errors.py +153 -0
- whiff/input.py +65 -0
- whiff/limiter.py +123 -0
- whiff/merge.py +381 -0
- whiff/options.py +238 -0
- whiff/plugins.py +315 -0
- whiff/privacy.py +185 -0
- whiff/py.typed +0 -0
- whiff/report.py +96 -0
- whiff/schemas/whiff-1.schema.json +1735 -0
- whiff/scratch.py +294 -0
- whiff_python-0.1.0.dist-info/METADATA +183 -0
- whiff_python-0.1.0.dist-info/RECORD +20 -0
- whiff_python-0.1.0.dist-info/WHEEL +4 -0
- whiff_python-0.1.0.dist-info/licenses/LICENSE +21 -0
- whiff_python-0.1.0.dist-info/sboms/whiff_native.cyclonedx.json +5681 -0
|
@@ -0,0 +1,1735 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Report",
|
|
4
|
+
"description": "Everything whiff found out about one file (or one embedded child).",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"whiff": {
|
|
8
|
+
"description": "Producer and schema information.",
|
|
9
|
+
"$ref": "#/$defs/WhiffInfo",
|
|
10
|
+
"default": {
|
|
11
|
+
"version": "",
|
|
12
|
+
"schema": "",
|
|
13
|
+
"profile": "standard"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"source": {
|
|
17
|
+
"description": "How the input was named.",
|
|
18
|
+
"$ref": "#/$defs/SourceInfo",
|
|
19
|
+
"default": {}
|
|
20
|
+
},
|
|
21
|
+
"identification": {
|
|
22
|
+
"description": "What the file is.",
|
|
23
|
+
"$ref": "#/$defs/Identification",
|
|
24
|
+
"default": {
|
|
25
|
+
"format": "",
|
|
26
|
+
"name": "",
|
|
27
|
+
"mime": "",
|
|
28
|
+
"confidence": 0.0,
|
|
29
|
+
"detected_by": "none",
|
|
30
|
+
"extractor": null
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"system": {
|
|
34
|
+
"description": "Filesystem identity.",
|
|
35
|
+
"$ref": "#/$defs/System",
|
|
36
|
+
"default": {
|
|
37
|
+
"kind": "memory"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"temporal": {
|
|
41
|
+
"description": "Filesystem times and dates found in the content.",
|
|
42
|
+
"$ref": "#/$defs/Temporal",
|
|
43
|
+
"default": {
|
|
44
|
+
"filesystem": {}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"security": {
|
|
48
|
+
"description": "Permissions, ownership and risk signals.",
|
|
49
|
+
"$ref": "#/$defs/Security",
|
|
50
|
+
"default": {}
|
|
51
|
+
},
|
|
52
|
+
"rights": {
|
|
53
|
+
"description": "Copyright, creators and licence.",
|
|
54
|
+
"$ref": "#/$defs/Rights",
|
|
55
|
+
"default": {}
|
|
56
|
+
},
|
|
57
|
+
"physical": {
|
|
58
|
+
"description": "Size, entropy and dimensions.",
|
|
59
|
+
"$ref": "#/$defs/Physical",
|
|
60
|
+
"default": {}
|
|
61
|
+
},
|
|
62
|
+
"integrity": {
|
|
63
|
+
"description": "Hashes.",
|
|
64
|
+
"$ref": "#/$defs/Integrity",
|
|
65
|
+
"default": {}
|
|
66
|
+
},
|
|
67
|
+
"content": {
|
|
68
|
+
"description": "The LLM-facing view: title, language, keywords, outline, summary.",
|
|
69
|
+
"$ref": "#/$defs/Content",
|
|
70
|
+
"default": {}
|
|
71
|
+
},
|
|
72
|
+
"metadata": {
|
|
73
|
+
"description": "Raw metadata, one object per standard (`exif`, `xmp`, `iptc`, `id3`, …).",
|
|
74
|
+
"type": "object",
|
|
75
|
+
"additionalProperties": true,
|
|
76
|
+
"default": {}
|
|
77
|
+
},
|
|
78
|
+
"format": {
|
|
79
|
+
"description": "Technical, format-specific details, keyed by format id.",
|
|
80
|
+
"type": "object",
|
|
81
|
+
"additionalProperties": true,
|
|
82
|
+
"default": {}
|
|
83
|
+
},
|
|
84
|
+
"embedded": {
|
|
85
|
+
"description": "Reports for embedded children (archive entries, attachments, …).",
|
|
86
|
+
"type": "array",
|
|
87
|
+
"items": {
|
|
88
|
+
"$ref": "#"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"diagnostics": {
|
|
92
|
+
"description": "What ran, what failed, which limits were hit.",
|
|
93
|
+
"$ref": "#/$defs/Diagnostics",
|
|
94
|
+
"default": {
|
|
95
|
+
"truncated": false,
|
|
96
|
+
"elapsed_ms": 0.0
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"$defs": {
|
|
101
|
+
"WhiffInfo": {
|
|
102
|
+
"description": "`whiff` section.",
|
|
103
|
+
"type": "object",
|
|
104
|
+
"properties": {
|
|
105
|
+
"version": {
|
|
106
|
+
"description": "whiff version that produced the report.",
|
|
107
|
+
"type": "string",
|
|
108
|
+
"default": ""
|
|
109
|
+
},
|
|
110
|
+
"schema": {
|
|
111
|
+
"description": "Schema identifier, e.g. `whiff/1`.",
|
|
112
|
+
"type": "string",
|
|
113
|
+
"default": ""
|
|
114
|
+
},
|
|
115
|
+
"profile": {
|
|
116
|
+
"description": "Profile used.",
|
|
117
|
+
"$ref": "#/$defs/Profile",
|
|
118
|
+
"default": "standard"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"Profile": {
|
|
123
|
+
"description": "How much work to do per file.",
|
|
124
|
+
"oneOf": [
|
|
125
|
+
{
|
|
126
|
+
"description": "Stat, detection, headers only. No hashing, no text analysis.",
|
|
127
|
+
"type": "string",
|
|
128
|
+
"const": "minimal"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"description": "All metadata extractors, hashes, bounded text analysis.",
|
|
132
|
+
"type": "string",
|
|
133
|
+
"const": "standard"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"description": "Everything, including payload decoding and deeper recursion.",
|
|
137
|
+
"type": "string",
|
|
138
|
+
"const": "full"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"description": "`standard` plus a summary; the CLI prints the compact LLM view\n([`Report::llm_view`](crate::Report::llm_view)) instead of the report.",
|
|
142
|
+
"type": "string",
|
|
143
|
+
"const": "llm"
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
"SourceInfo": {
|
|
148
|
+
"description": "`source` section.",
|
|
149
|
+
"type": "object",
|
|
150
|
+
"properties": {
|
|
151
|
+
"path": {
|
|
152
|
+
"description": "Path as given by the caller.",
|
|
153
|
+
"type": [
|
|
154
|
+
"string",
|
|
155
|
+
"null"
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
"name": {
|
|
159
|
+
"description": "File name (or entry name for embedded children).",
|
|
160
|
+
"type": [
|
|
161
|
+
"string",
|
|
162
|
+
"null"
|
|
163
|
+
]
|
|
164
|
+
},
|
|
165
|
+
"stem": {
|
|
166
|
+
"description": "File name without the final extension.",
|
|
167
|
+
"type": [
|
|
168
|
+
"string",
|
|
169
|
+
"null"
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
"extension": {
|
|
173
|
+
"description": "Final extension, without the dot.",
|
|
174
|
+
"type": [
|
|
175
|
+
"string",
|
|
176
|
+
"null"
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"Identification": {
|
|
182
|
+
"description": "`identification` section.",
|
|
183
|
+
"type": "object",
|
|
184
|
+
"properties": {
|
|
185
|
+
"format": {
|
|
186
|
+
"description": "Stable whiff format id (`jpeg`, `docx`, …; built-ins: `empty`, `text`, `binary`, `directory`, …).",
|
|
187
|
+
"type": "string",
|
|
188
|
+
"default": ""
|
|
189
|
+
},
|
|
190
|
+
"name": {
|
|
191
|
+
"description": "Human-readable format name.",
|
|
192
|
+
"type": "string",
|
|
193
|
+
"default": ""
|
|
194
|
+
},
|
|
195
|
+
"mime": {
|
|
196
|
+
"description": "MIME type.",
|
|
197
|
+
"type": "string",
|
|
198
|
+
"default": ""
|
|
199
|
+
},
|
|
200
|
+
"family": {
|
|
201
|
+
"description": "Parser family (see docs/metadata-extracted.md).",
|
|
202
|
+
"type": [
|
|
203
|
+
"string",
|
|
204
|
+
"null"
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
"confidence": {
|
|
208
|
+
"description": "Confidence in `0.0..=1.0`.",
|
|
209
|
+
"type": "number",
|
|
210
|
+
"format": "double",
|
|
211
|
+
"default": 0.0
|
|
212
|
+
},
|
|
213
|
+
"detected_by": {
|
|
214
|
+
"description": "Which detector decided.",
|
|
215
|
+
"$ref": "#/$defs/DetectedBy",
|
|
216
|
+
"default": "none"
|
|
217
|
+
},
|
|
218
|
+
"extension_matches": {
|
|
219
|
+
"description": "`false` when the extension contradicts the detected format.",
|
|
220
|
+
"type": [
|
|
221
|
+
"boolean",
|
|
222
|
+
"null"
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
"candidates": {
|
|
226
|
+
"description": "Ranked alternatives (best first).",
|
|
227
|
+
"type": "array",
|
|
228
|
+
"items": {
|
|
229
|
+
"$ref": "#/$defs/Candidate"
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"encoding": {
|
|
233
|
+
"description": "Text encoding, when the content is text.",
|
|
234
|
+
"type": [
|
|
235
|
+
"string",
|
|
236
|
+
"null"
|
|
237
|
+
]
|
|
238
|
+
},
|
|
239
|
+
"extractor": {
|
|
240
|
+
"description": "Extractor that handled the file, or `null` when none is compiled in.",
|
|
241
|
+
"type": [
|
|
242
|
+
"string",
|
|
243
|
+
"null"
|
|
244
|
+
],
|
|
245
|
+
"default": null
|
|
246
|
+
},
|
|
247
|
+
"available_with_feature": {
|
|
248
|
+
"description": "Cargo feature that would add an extractor for this format, when known.",
|
|
249
|
+
"type": [
|
|
250
|
+
"string",
|
|
251
|
+
"null"
|
|
252
|
+
]
|
|
253
|
+
},
|
|
254
|
+
"wrapper": {
|
|
255
|
+
"description": "The name marks a partial download, backup copy or temporary file\n(`report.pdf.crdownload`, `notes.txt.bak`): detection used the\nextension underneath.",
|
|
256
|
+
"anyOf": [
|
|
257
|
+
{
|
|
258
|
+
"$ref": "#/$defs/Wrapper"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"type": "null"
|
|
262
|
+
}
|
|
263
|
+
]
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"DetectedBy": {
|
|
268
|
+
"description": "How the format was determined.",
|
|
269
|
+
"oneOf": [
|
|
270
|
+
{
|
|
271
|
+
"description": "A magic signature matched.",
|
|
272
|
+
"type": "string",
|
|
273
|
+
"const": "magic"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"description": "An extractor's content sniffer recognised it.",
|
|
277
|
+
"type": "string",
|
|
278
|
+
"const": "sniff"
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"description": "Only the file extension matched.",
|
|
282
|
+
"type": "string",
|
|
283
|
+
"const": "extension"
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"description": "Built-in text/binary heuristics.",
|
|
287
|
+
"type": "string",
|
|
288
|
+
"const": "heuristic"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"description": "The caller forced the format.",
|
|
292
|
+
"type": "string",
|
|
293
|
+
"const": "forced"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"description": "A container's extractor looked inside (a compound file's streams, a\nZIP's parts) and named the real format.",
|
|
297
|
+
"type": "string",
|
|
298
|
+
"const": "content"
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"description": "Not applicable (directories, special files).",
|
|
302
|
+
"type": "string",
|
|
303
|
+
"const": "none"
|
|
304
|
+
}
|
|
305
|
+
]
|
|
306
|
+
},
|
|
307
|
+
"Candidate": {
|
|
308
|
+
"description": "One detection candidate.",
|
|
309
|
+
"type": "object",
|
|
310
|
+
"properties": {
|
|
311
|
+
"format": {
|
|
312
|
+
"description": "Format id.",
|
|
313
|
+
"type": "string",
|
|
314
|
+
"default": ""
|
|
315
|
+
},
|
|
316
|
+
"confidence": {
|
|
317
|
+
"description": "Confidence in `0.0..=1.0`.",
|
|
318
|
+
"type": "number",
|
|
319
|
+
"format": "double",
|
|
320
|
+
"default": 0.0
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
"Wrapper": {
|
|
325
|
+
"description": "A wrapper named by a file's last extension.",
|
|
326
|
+
"type": "object",
|
|
327
|
+
"properties": {
|
|
328
|
+
"kind": {
|
|
329
|
+
"description": "`partial_download`, `backup_copy` or `temporary`.",
|
|
330
|
+
"type": "string",
|
|
331
|
+
"default": ""
|
|
332
|
+
},
|
|
333
|
+
"extension": {
|
|
334
|
+
"description": "The wrapper's extension (`crdownload`, `bak`, `~` for an editor backup).",
|
|
335
|
+
"type": "string",
|
|
336
|
+
"default": ""
|
|
337
|
+
},
|
|
338
|
+
"inner_extension": {
|
|
339
|
+
"description": "The extension underneath, used for detection.",
|
|
340
|
+
"type": [
|
|
341
|
+
"string",
|
|
342
|
+
"null"
|
|
343
|
+
]
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
"System": {
|
|
348
|
+
"description": "`system` section.",
|
|
349
|
+
"type": "object",
|
|
350
|
+
"properties": {
|
|
351
|
+
"kind": {
|
|
352
|
+
"description": "Kind of object.",
|
|
353
|
+
"$ref": "#/$defs/FileKind",
|
|
354
|
+
"default": "memory"
|
|
355
|
+
},
|
|
356
|
+
"size_bytes": {
|
|
357
|
+
"description": "Logical size.",
|
|
358
|
+
"type": [
|
|
359
|
+
"integer",
|
|
360
|
+
"null"
|
|
361
|
+
],
|
|
362
|
+
"format": "uint64",
|
|
363
|
+
"minimum": 0
|
|
364
|
+
},
|
|
365
|
+
"allocated_bytes": {
|
|
366
|
+
"description": "Bytes actually allocated on disk.",
|
|
367
|
+
"type": [
|
|
368
|
+
"integer",
|
|
369
|
+
"null"
|
|
370
|
+
],
|
|
371
|
+
"format": "uint64",
|
|
372
|
+
"minimum": 0
|
|
373
|
+
},
|
|
374
|
+
"sparse": {
|
|
375
|
+
"description": "Fewer bytes allocated than the logical size: a sparse file (or one\nthe filesystem compresses).",
|
|
376
|
+
"type": [
|
|
377
|
+
"boolean",
|
|
378
|
+
"null"
|
|
379
|
+
]
|
|
380
|
+
},
|
|
381
|
+
"device": {
|
|
382
|
+
"description": "Device id.",
|
|
383
|
+
"type": [
|
|
384
|
+
"integer",
|
|
385
|
+
"null"
|
|
386
|
+
],
|
|
387
|
+
"format": "uint64",
|
|
388
|
+
"minimum": 0
|
|
389
|
+
},
|
|
390
|
+
"inode": {
|
|
391
|
+
"description": "Inode number.",
|
|
392
|
+
"type": [
|
|
393
|
+
"integer",
|
|
394
|
+
"null"
|
|
395
|
+
],
|
|
396
|
+
"format": "uint64",
|
|
397
|
+
"minimum": 0
|
|
398
|
+
},
|
|
399
|
+
"links": {
|
|
400
|
+
"description": "Hard-link count.",
|
|
401
|
+
"type": [
|
|
402
|
+
"integer",
|
|
403
|
+
"null"
|
|
404
|
+
],
|
|
405
|
+
"format": "uint64",
|
|
406
|
+
"minimum": 0
|
|
407
|
+
},
|
|
408
|
+
"hidden": {
|
|
409
|
+
"description": "Hidden (dot-file on Unix, hidden attribute on Windows).",
|
|
410
|
+
"type": [
|
|
411
|
+
"boolean",
|
|
412
|
+
"null"
|
|
413
|
+
]
|
|
414
|
+
},
|
|
415
|
+
"readonly": {
|
|
416
|
+
"description": "Read-only flag.",
|
|
417
|
+
"type": [
|
|
418
|
+
"boolean",
|
|
419
|
+
"null"
|
|
420
|
+
]
|
|
421
|
+
},
|
|
422
|
+
"symlink_target": {
|
|
423
|
+
"description": "Target of a symbolic link.",
|
|
424
|
+
"type": [
|
|
425
|
+
"string",
|
|
426
|
+
"null"
|
|
427
|
+
]
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
"FileKind": {
|
|
432
|
+
"description": "Kind of filesystem object.",
|
|
433
|
+
"oneOf": [
|
|
434
|
+
{
|
|
435
|
+
"description": "A regular file.",
|
|
436
|
+
"type": "string",
|
|
437
|
+
"const": "regular"
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"description": "A directory.",
|
|
441
|
+
"type": "string",
|
|
442
|
+
"const": "directory"
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"description": "A symbolic link.",
|
|
446
|
+
"type": "string",
|
|
447
|
+
"const": "symlink"
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"description": "A named pipe.",
|
|
451
|
+
"type": "string",
|
|
452
|
+
"const": "fifo"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"description": "A Unix socket.",
|
|
456
|
+
"type": "string",
|
|
457
|
+
"const": "socket"
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"description": "A block device.",
|
|
461
|
+
"type": "string",
|
|
462
|
+
"const": "block_device"
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"description": "A character device.",
|
|
466
|
+
"type": "string",
|
|
467
|
+
"const": "char_device"
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"description": "In-memory input (bytes, stdin, embedded child).",
|
|
471
|
+
"type": "string",
|
|
472
|
+
"const": "memory"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"description": "Unknown.",
|
|
476
|
+
"type": "string",
|
|
477
|
+
"const": "other"
|
|
478
|
+
}
|
|
479
|
+
]
|
|
480
|
+
},
|
|
481
|
+
"Temporal": {
|
|
482
|
+
"description": "`temporal` section.",
|
|
483
|
+
"type": "object",
|
|
484
|
+
"properties": {
|
|
485
|
+
"filesystem": {
|
|
486
|
+
"description": "Filesystem times.",
|
|
487
|
+
"$ref": "#/$defs/FsTimes",
|
|
488
|
+
"default": {}
|
|
489
|
+
},
|
|
490
|
+
"content": {
|
|
491
|
+
"description": "Dates found in the content.",
|
|
492
|
+
"type": "array",
|
|
493
|
+
"items": {
|
|
494
|
+
"$ref": "#/$defs/ContentDate"
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
"earliest": {
|
|
498
|
+
"description": "Earliest zone-aware content date (UTC).",
|
|
499
|
+
"type": [
|
|
500
|
+
"string",
|
|
501
|
+
"null"
|
|
502
|
+
]
|
|
503
|
+
},
|
|
504
|
+
"latest": {
|
|
505
|
+
"description": "Latest zone-aware content date (UTC).",
|
|
506
|
+
"type": [
|
|
507
|
+
"string",
|
|
508
|
+
"null"
|
|
509
|
+
]
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
},
|
|
513
|
+
"FsTimes": {
|
|
514
|
+
"description": "Filesystem timestamps (RFC 3339, UTC).",
|
|
515
|
+
"type": "object",
|
|
516
|
+
"properties": {
|
|
517
|
+
"modified": {
|
|
518
|
+
"description": "Last modification (mtime).",
|
|
519
|
+
"type": [
|
|
520
|
+
"string",
|
|
521
|
+
"null"
|
|
522
|
+
]
|
|
523
|
+
},
|
|
524
|
+
"accessed": {
|
|
525
|
+
"description": "Last access (atime).",
|
|
526
|
+
"type": [
|
|
527
|
+
"string",
|
|
528
|
+
"null"
|
|
529
|
+
]
|
|
530
|
+
},
|
|
531
|
+
"changed": {
|
|
532
|
+
"description": "Last status change (ctime, Unix only).",
|
|
533
|
+
"type": [
|
|
534
|
+
"string",
|
|
535
|
+
"null"
|
|
536
|
+
]
|
|
537
|
+
},
|
|
538
|
+
"created": {
|
|
539
|
+
"description": "Creation (birth time, where the platform provides it).",
|
|
540
|
+
"type": [
|
|
541
|
+
"string",
|
|
542
|
+
"null"
|
|
543
|
+
]
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
"ContentDate": {
|
|
548
|
+
"description": "A date found inside the content.",
|
|
549
|
+
"type": "object",
|
|
550
|
+
"properties": {
|
|
551
|
+
"field": {
|
|
552
|
+
"description": "What the date means.",
|
|
553
|
+
"$ref": "#/$defs/DateField",
|
|
554
|
+
"default": "created"
|
|
555
|
+
},
|
|
556
|
+
"value": {
|
|
557
|
+
"description": "RFC 3339 timestamp (or civil date-time when `tz_known` is false).",
|
|
558
|
+
"type": "string",
|
|
559
|
+
"default": ""
|
|
560
|
+
},
|
|
561
|
+
"source": {
|
|
562
|
+
"description": "Where it came from, e.g. `exif.DateTimeOriginal`.",
|
|
563
|
+
"type": "string",
|
|
564
|
+
"default": ""
|
|
565
|
+
},
|
|
566
|
+
"tz_known": {
|
|
567
|
+
"description": "Whether the source carried a time-zone offset.",
|
|
568
|
+
"type": "boolean",
|
|
569
|
+
"default": false
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
},
|
|
573
|
+
"DateField": {
|
|
574
|
+
"description": "Which date a content timestamp describes.",
|
|
575
|
+
"oneOf": [
|
|
576
|
+
{
|
|
577
|
+
"description": "Creation of the content.",
|
|
578
|
+
"type": "string",
|
|
579
|
+
"const": "created"
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"description": "Last modification.",
|
|
583
|
+
"type": "string",
|
|
584
|
+
"const": "modified"
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"description": "Capture (photo/video).",
|
|
588
|
+
"type": "string",
|
|
589
|
+
"const": "captured"
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"description": "Digitisation (scan).",
|
|
593
|
+
"type": "string",
|
|
594
|
+
"const": "digitized"
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"description": "Publication.",
|
|
598
|
+
"type": "string",
|
|
599
|
+
"const": "published"
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"description": "Expiry (certificates, licences).",
|
|
603
|
+
"type": "string",
|
|
604
|
+
"const": "expires"
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"description": "Last printed (office documents).",
|
|
608
|
+
"type": "string",
|
|
609
|
+
"const": "printed"
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
"description": "Sent (e-mail `Date`, Outlook submit time).",
|
|
613
|
+
"type": "string",
|
|
614
|
+
"const": "sent"
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"description": "Received (e-mail delivery, `Received` hops).",
|
|
618
|
+
"type": "string",
|
|
619
|
+
"const": "received"
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"description": "Anything else (see `source`).",
|
|
623
|
+
"type": "string",
|
|
624
|
+
"const": "other"
|
|
625
|
+
}
|
|
626
|
+
]
|
|
627
|
+
},
|
|
628
|
+
"Security": {
|
|
629
|
+
"description": "`security` section.",
|
|
630
|
+
"type": "object",
|
|
631
|
+
"properties": {
|
|
632
|
+
"mode": {
|
|
633
|
+
"description": "Octal permission bits, e.g. `0644`.",
|
|
634
|
+
"type": [
|
|
635
|
+
"string",
|
|
636
|
+
"null"
|
|
637
|
+
]
|
|
638
|
+
},
|
|
639
|
+
"permissions": {
|
|
640
|
+
"description": "`ls`-style permission string, e.g. `rw-r--r--`.",
|
|
641
|
+
"type": [
|
|
642
|
+
"string",
|
|
643
|
+
"null"
|
|
644
|
+
]
|
|
645
|
+
},
|
|
646
|
+
"owner": {
|
|
647
|
+
"description": "Owner.",
|
|
648
|
+
"anyOf": [
|
|
649
|
+
{
|
|
650
|
+
"$ref": "#/$defs/Owner"
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"type": "null"
|
|
654
|
+
}
|
|
655
|
+
]
|
|
656
|
+
},
|
|
657
|
+
"setuid": {
|
|
658
|
+
"description": "Set-user-id bit.",
|
|
659
|
+
"type": [
|
|
660
|
+
"boolean",
|
|
661
|
+
"null"
|
|
662
|
+
]
|
|
663
|
+
},
|
|
664
|
+
"setgid": {
|
|
665
|
+
"description": "Set-group-id bit.",
|
|
666
|
+
"type": [
|
|
667
|
+
"boolean",
|
|
668
|
+
"null"
|
|
669
|
+
]
|
|
670
|
+
},
|
|
671
|
+
"sticky": {
|
|
672
|
+
"description": "Sticky bit.",
|
|
673
|
+
"type": [
|
|
674
|
+
"boolean",
|
|
675
|
+
"null"
|
|
676
|
+
]
|
|
677
|
+
},
|
|
678
|
+
"acl": {
|
|
679
|
+
"description": "Access-control list present.",
|
|
680
|
+
"type": [
|
|
681
|
+
"boolean",
|
|
682
|
+
"null"
|
|
683
|
+
]
|
|
684
|
+
},
|
|
685
|
+
"xattrs": {
|
|
686
|
+
"description": "Extended attributes of interest.",
|
|
687
|
+
"type": "object",
|
|
688
|
+
"additionalProperties": true
|
|
689
|
+
},
|
|
690
|
+
"encrypted": {
|
|
691
|
+
"description": "Content is encrypted.",
|
|
692
|
+
"type": [
|
|
693
|
+
"boolean",
|
|
694
|
+
"null"
|
|
695
|
+
]
|
|
696
|
+
},
|
|
697
|
+
"signed": {
|
|
698
|
+
"description": "Content carries a signature.",
|
|
699
|
+
"type": [
|
|
700
|
+
"boolean",
|
|
701
|
+
"null"
|
|
702
|
+
]
|
|
703
|
+
},
|
|
704
|
+
"active_content": {
|
|
705
|
+
"description": "Kinds of active content found (`macros`, `javascript`, …).",
|
|
706
|
+
"type": "array",
|
|
707
|
+
"items": {
|
|
708
|
+
"type": "string"
|
|
709
|
+
}
|
|
710
|
+
},
|
|
711
|
+
"external_references": {
|
|
712
|
+
"description": "Number of external references (links, remote resources).",
|
|
713
|
+
"type": [
|
|
714
|
+
"integer",
|
|
715
|
+
"null"
|
|
716
|
+
],
|
|
717
|
+
"format": "uint64",
|
|
718
|
+
"minimum": 0
|
|
719
|
+
},
|
|
720
|
+
"risks": {
|
|
721
|
+
"description": "Risk signals.",
|
|
722
|
+
"type": "array",
|
|
723
|
+
"items": {
|
|
724
|
+
"$ref": "#/$defs/Risk"
|
|
725
|
+
}
|
|
726
|
+
},
|
|
727
|
+
"risk_level": {
|
|
728
|
+
"description": "The highest severity among `risks` and every embedded file's risks;\nabsent when there are none.",
|
|
729
|
+
"anyOf": [
|
|
730
|
+
{
|
|
731
|
+
"$ref": "#/$defs/Severity"
|
|
732
|
+
},
|
|
733
|
+
{
|
|
734
|
+
"type": "null"
|
|
735
|
+
}
|
|
736
|
+
]
|
|
737
|
+
},
|
|
738
|
+
"embedded_risks": {
|
|
739
|
+
"description": "Risks of embedded files (attachments, archive entries, embedded\nobjects, at any depth), counted by kind.",
|
|
740
|
+
"type": "object",
|
|
741
|
+
"additionalProperties": {
|
|
742
|
+
"type": "integer",
|
|
743
|
+
"format": "uint64",
|
|
744
|
+
"minimum": 0
|
|
745
|
+
}
|
|
746
|
+
},
|
|
747
|
+
"secrets": {
|
|
748
|
+
"description": "Secrets found in the content, by kind (`aws_access_key_id`, `private_key`, …).\nOnly counts: values are redacted from the report.",
|
|
749
|
+
"type": "object",
|
|
750
|
+
"additionalProperties": {
|
|
751
|
+
"type": "integer",
|
|
752
|
+
"format": "uint64",
|
|
753
|
+
"minimum": 0
|
|
754
|
+
}
|
|
755
|
+
},
|
|
756
|
+
"personal_data": {
|
|
757
|
+
"description": "Personal data found in the content, by kind (`email`, `phone`, `iban`, …). Only counts.",
|
|
758
|
+
"type": "object",
|
|
759
|
+
"additionalProperties": {
|
|
760
|
+
"type": "integer",
|
|
761
|
+
"format": "uint64",
|
|
762
|
+
"minimum": 0
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
},
|
|
767
|
+
"Owner": {
|
|
768
|
+
"description": "File owner.",
|
|
769
|
+
"type": "object",
|
|
770
|
+
"properties": {
|
|
771
|
+
"uid": {
|
|
772
|
+
"description": "Numeric user id.",
|
|
773
|
+
"type": [
|
|
774
|
+
"integer",
|
|
775
|
+
"null"
|
|
776
|
+
],
|
|
777
|
+
"format": "uint32",
|
|
778
|
+
"minimum": 0
|
|
779
|
+
},
|
|
780
|
+
"user": {
|
|
781
|
+
"description": "User name.",
|
|
782
|
+
"type": [
|
|
783
|
+
"string",
|
|
784
|
+
"null"
|
|
785
|
+
]
|
|
786
|
+
},
|
|
787
|
+
"gid": {
|
|
788
|
+
"description": "Numeric group id.",
|
|
789
|
+
"type": [
|
|
790
|
+
"integer",
|
|
791
|
+
"null"
|
|
792
|
+
],
|
|
793
|
+
"format": "uint32",
|
|
794
|
+
"minimum": 0
|
|
795
|
+
},
|
|
796
|
+
"group": {
|
|
797
|
+
"description": "Group name.",
|
|
798
|
+
"type": [
|
|
799
|
+
"string",
|
|
800
|
+
"null"
|
|
801
|
+
]
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
},
|
|
805
|
+
"Risk": {
|
|
806
|
+
"description": "A risk signal (macro present, script in SVG, extension mismatch, …).",
|
|
807
|
+
"type": "object",
|
|
808
|
+
"properties": {
|
|
809
|
+
"kind": {
|
|
810
|
+
"description": "Stable `snake_case` kind, e.g. `macros`, `javascript`, `link_text_mismatch`;\nthe vocabulary is listed in `docs/risks.md`.",
|
|
811
|
+
"type": "string",
|
|
812
|
+
"default": ""
|
|
813
|
+
},
|
|
814
|
+
"category": {
|
|
815
|
+
"description": "What kind of threat it points to (decided by the kind).",
|
|
816
|
+
"$ref": "#/$defs/RiskCategory",
|
|
817
|
+
"default": "other"
|
|
818
|
+
},
|
|
819
|
+
"severity": {
|
|
820
|
+
"description": "How much it should worry the reader (decided by the kind).",
|
|
821
|
+
"$ref": "#/$defs/Severity",
|
|
822
|
+
"default": "medium"
|
|
823
|
+
},
|
|
824
|
+
"detail": {
|
|
825
|
+
"description": "Human-readable detail.",
|
|
826
|
+
"type": [
|
|
827
|
+
"string",
|
|
828
|
+
"null"
|
|
829
|
+
]
|
|
830
|
+
},
|
|
831
|
+
"source": {
|
|
832
|
+
"description": "Who reported it.",
|
|
833
|
+
"type": "string",
|
|
834
|
+
"default": ""
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
},
|
|
838
|
+
"RiskCategory": {
|
|
839
|
+
"description": "What kind of threat a risk signal points to.",
|
|
840
|
+
"oneOf": [
|
|
841
|
+
{
|
|
842
|
+
"description": "Code that can run: macros, scripts, actions, DDE.",
|
|
843
|
+
"type": "string",
|
|
844
|
+
"const": "active_content"
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
"description": "Deceiving the reader: spoofed senders, misleading links, credential forms.",
|
|
848
|
+
"type": "string",
|
|
849
|
+
"const": "phishing"
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"description": "Content fetched from elsewhere when the file is opened.",
|
|
853
|
+
"type": "string",
|
|
854
|
+
"const": "external_reference"
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
"description": "Constructs tied to known exploitation techniques.",
|
|
858
|
+
"type": "string",
|
|
859
|
+
"const": "exploit"
|
|
860
|
+
},
|
|
861
|
+
{
|
|
862
|
+
"description": "Content hidden from a casual look.",
|
|
863
|
+
"type": "string",
|
|
864
|
+
"const": "obfuscation"
|
|
865
|
+
},
|
|
866
|
+
{
|
|
867
|
+
"description": "Secrets or credentials in the content.",
|
|
868
|
+
"type": "string",
|
|
869
|
+
"const": "data_exposure"
|
|
870
|
+
},
|
|
871
|
+
{
|
|
872
|
+
"description": "Installs, fetches or trusts code from elsewhere.",
|
|
873
|
+
"type": "string",
|
|
874
|
+
"const": "supply_chain"
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
"description": "Operations that change or destroy state with broad privileges.",
|
|
878
|
+
"type": "string",
|
|
879
|
+
"const": "unsafe_operation"
|
|
880
|
+
},
|
|
881
|
+
{
|
|
882
|
+
"description": "Where the content came from (e.g. generated by AI).",
|
|
883
|
+
"type": "string",
|
|
884
|
+
"const": "provenance"
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
"description": "A kind outside the vocabulary (from a third-party extractor).",
|
|
888
|
+
"type": "string",
|
|
889
|
+
"const": "other"
|
|
890
|
+
}
|
|
891
|
+
]
|
|
892
|
+
},
|
|
893
|
+
"Severity": {
|
|
894
|
+
"description": "How much a risk signal should worry the reader.",
|
|
895
|
+
"oneOf": [
|
|
896
|
+
{
|
|
897
|
+
"description": "Worth knowing; not a threat by itself.",
|
|
898
|
+
"type": "string",
|
|
899
|
+
"const": "info"
|
|
900
|
+
},
|
|
901
|
+
{
|
|
902
|
+
"description": "Common in benign files; a threat only together with other signals.",
|
|
903
|
+
"type": "string",
|
|
904
|
+
"const": "low"
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"description": "Can act on the reader's behalf or reach out, but is also used legitimately.",
|
|
908
|
+
"type": "string",
|
|
909
|
+
"const": "medium"
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
"description": "Rarely legitimate, or a known exploitation or deception technique.",
|
|
913
|
+
"type": "string",
|
|
914
|
+
"const": "high"
|
|
915
|
+
}
|
|
916
|
+
]
|
|
917
|
+
},
|
|
918
|
+
"Rights": {
|
|
919
|
+
"description": "`rights` section.",
|
|
920
|
+
"type": "object",
|
|
921
|
+
"properties": {
|
|
922
|
+
"copyright": {
|
|
923
|
+
"description": "Copyright notice.",
|
|
924
|
+
"type": [
|
|
925
|
+
"string",
|
|
926
|
+
"null"
|
|
927
|
+
]
|
|
928
|
+
},
|
|
929
|
+
"creators": {
|
|
930
|
+
"description": "Creators / authors / artists.",
|
|
931
|
+
"type": "array",
|
|
932
|
+
"items": {
|
|
933
|
+
"type": "string"
|
|
934
|
+
}
|
|
935
|
+
},
|
|
936
|
+
"credit": {
|
|
937
|
+
"description": "Credit line.",
|
|
938
|
+
"type": [
|
|
939
|
+
"string",
|
|
940
|
+
"null"
|
|
941
|
+
]
|
|
942
|
+
},
|
|
943
|
+
"license": {
|
|
944
|
+
"description": "Licence.",
|
|
945
|
+
"anyOf": [
|
|
946
|
+
{
|
|
947
|
+
"$ref": "#/$defs/License"
|
|
948
|
+
},
|
|
949
|
+
{
|
|
950
|
+
"type": "null"
|
|
951
|
+
}
|
|
952
|
+
]
|
|
953
|
+
},
|
|
954
|
+
"usage_terms": {
|
|
955
|
+
"description": "Usage terms.",
|
|
956
|
+
"type": [
|
|
957
|
+
"string",
|
|
958
|
+
"null"
|
|
959
|
+
]
|
|
960
|
+
},
|
|
961
|
+
"marked": {
|
|
962
|
+
"description": "Marked as rights-managed.",
|
|
963
|
+
"type": [
|
|
964
|
+
"boolean",
|
|
965
|
+
"null"
|
|
966
|
+
]
|
|
967
|
+
},
|
|
968
|
+
"embedding": {
|
|
969
|
+
"description": "Embedding permission (fonts).",
|
|
970
|
+
"type": [
|
|
971
|
+
"string",
|
|
972
|
+
"null"
|
|
973
|
+
]
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
},
|
|
977
|
+
"License": {
|
|
978
|
+
"description": "A licence.",
|
|
979
|
+
"type": "object",
|
|
980
|
+
"properties": {
|
|
981
|
+
"name": {
|
|
982
|
+
"description": "Name, e.g. `CC BY 4.0` or an SPDX id.",
|
|
983
|
+
"type": [
|
|
984
|
+
"string",
|
|
985
|
+
"null"
|
|
986
|
+
]
|
|
987
|
+
},
|
|
988
|
+
"url": {
|
|
989
|
+
"description": "Licence URL.",
|
|
990
|
+
"type": [
|
|
991
|
+
"string",
|
|
992
|
+
"null"
|
|
993
|
+
]
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
},
|
|
997
|
+
"Physical": {
|
|
998
|
+
"description": "`physical` section.",
|
|
999
|
+
"type": "object",
|
|
1000
|
+
"properties": {
|
|
1001
|
+
"size_bytes": {
|
|
1002
|
+
"description": "Size in bytes.",
|
|
1003
|
+
"type": [
|
|
1004
|
+
"integer",
|
|
1005
|
+
"null"
|
|
1006
|
+
],
|
|
1007
|
+
"format": "uint64",
|
|
1008
|
+
"minimum": 0
|
|
1009
|
+
},
|
|
1010
|
+
"entropy": {
|
|
1011
|
+
"description": "Shannon entropy in bits per byte (0–8).",
|
|
1012
|
+
"type": [
|
|
1013
|
+
"number",
|
|
1014
|
+
"null"
|
|
1015
|
+
],
|
|
1016
|
+
"format": "double"
|
|
1017
|
+
},
|
|
1018
|
+
"entropy_scope": {
|
|
1019
|
+
"description": "Bytes the entropy covers.",
|
|
1020
|
+
"anyOf": [
|
|
1021
|
+
{
|
|
1022
|
+
"$ref": "#/$defs/EntropyScope"
|
|
1023
|
+
},
|
|
1024
|
+
{
|
|
1025
|
+
"type": "null"
|
|
1026
|
+
}
|
|
1027
|
+
]
|
|
1028
|
+
},
|
|
1029
|
+
"text": {
|
|
1030
|
+
"description": "Text properties.",
|
|
1031
|
+
"anyOf": [
|
|
1032
|
+
{
|
|
1033
|
+
"$ref": "#/$defs/TextPhysical"
|
|
1034
|
+
},
|
|
1035
|
+
{
|
|
1036
|
+
"type": "null"
|
|
1037
|
+
}
|
|
1038
|
+
]
|
|
1039
|
+
},
|
|
1040
|
+
"image": {
|
|
1041
|
+
"description": "Image properties.",
|
|
1042
|
+
"anyOf": [
|
|
1043
|
+
{
|
|
1044
|
+
"$ref": "#/$defs/ImagePhysical"
|
|
1045
|
+
},
|
|
1046
|
+
{
|
|
1047
|
+
"type": "null"
|
|
1048
|
+
}
|
|
1049
|
+
]
|
|
1050
|
+
},
|
|
1051
|
+
"media": {
|
|
1052
|
+
"description": "Audio/video properties.",
|
|
1053
|
+
"anyOf": [
|
|
1054
|
+
{
|
|
1055
|
+
"$ref": "#/$defs/MediaPhysical"
|
|
1056
|
+
},
|
|
1057
|
+
{
|
|
1058
|
+
"type": "null"
|
|
1059
|
+
}
|
|
1060
|
+
]
|
|
1061
|
+
},
|
|
1062
|
+
"document": {
|
|
1063
|
+
"description": "Document properties.",
|
|
1064
|
+
"anyOf": [
|
|
1065
|
+
{
|
|
1066
|
+
"$ref": "#/$defs/DocumentPhysical"
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
"type": "null"
|
|
1070
|
+
}
|
|
1071
|
+
]
|
|
1072
|
+
},
|
|
1073
|
+
"container": {
|
|
1074
|
+
"description": "Container properties.",
|
|
1075
|
+
"anyOf": [
|
|
1076
|
+
{
|
|
1077
|
+
"$ref": "#/$defs/ContainerPhysical"
|
|
1078
|
+
},
|
|
1079
|
+
{
|
|
1080
|
+
"type": "null"
|
|
1081
|
+
}
|
|
1082
|
+
]
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
},
|
|
1086
|
+
"EntropyScope": {
|
|
1087
|
+
"description": "Which bytes an entropy value was computed over.",
|
|
1088
|
+
"oneOf": [
|
|
1089
|
+
{
|
|
1090
|
+
"description": "The whole file.",
|
|
1091
|
+
"type": "string",
|
|
1092
|
+
"const": "file"
|
|
1093
|
+
},
|
|
1094
|
+
{
|
|
1095
|
+
"description": "Only the first bytes (minimal profile, or file too large to hash).",
|
|
1096
|
+
"type": "string",
|
|
1097
|
+
"const": "head"
|
|
1098
|
+
}
|
|
1099
|
+
]
|
|
1100
|
+
},
|
|
1101
|
+
"TextPhysical": {
|
|
1102
|
+
"description": "Text physical properties (`wc` parity).",
|
|
1103
|
+
"type": "object",
|
|
1104
|
+
"properties": {
|
|
1105
|
+
"bytes": {
|
|
1106
|
+
"description": "Bytes.",
|
|
1107
|
+
"type": [
|
|
1108
|
+
"integer",
|
|
1109
|
+
"null"
|
|
1110
|
+
],
|
|
1111
|
+
"format": "uint64",
|
|
1112
|
+
"minimum": 0
|
|
1113
|
+
},
|
|
1114
|
+
"chars": {
|
|
1115
|
+
"description": "Unicode scalar values.",
|
|
1116
|
+
"type": [
|
|
1117
|
+
"integer",
|
|
1118
|
+
"null"
|
|
1119
|
+
],
|
|
1120
|
+
"format": "uint64",
|
|
1121
|
+
"minimum": 0
|
|
1122
|
+
},
|
|
1123
|
+
"words": {
|
|
1124
|
+
"description": "Words.",
|
|
1125
|
+
"type": [
|
|
1126
|
+
"integer",
|
|
1127
|
+
"null"
|
|
1128
|
+
],
|
|
1129
|
+
"format": "uint64",
|
|
1130
|
+
"minimum": 0
|
|
1131
|
+
},
|
|
1132
|
+
"lines": {
|
|
1133
|
+
"description": "Newline count (`wc -l`).",
|
|
1134
|
+
"type": [
|
|
1135
|
+
"integer",
|
|
1136
|
+
"null"
|
|
1137
|
+
],
|
|
1138
|
+
"format": "uint64",
|
|
1139
|
+
"minimum": 0
|
|
1140
|
+
},
|
|
1141
|
+
"max_line_length": {
|
|
1142
|
+
"description": "Longest line (`wc -L`).",
|
|
1143
|
+
"type": [
|
|
1144
|
+
"integer",
|
|
1145
|
+
"null"
|
|
1146
|
+
],
|
|
1147
|
+
"format": "uint64",
|
|
1148
|
+
"minimum": 0
|
|
1149
|
+
},
|
|
1150
|
+
"line_endings": {
|
|
1151
|
+
"description": "`lf`, `crlf`, `cr` or `mixed`.",
|
|
1152
|
+
"type": [
|
|
1153
|
+
"string",
|
|
1154
|
+
"null"
|
|
1155
|
+
]
|
|
1156
|
+
},
|
|
1157
|
+
"bom": {
|
|
1158
|
+
"description": "Byte-order mark present.",
|
|
1159
|
+
"type": [
|
|
1160
|
+
"boolean",
|
|
1161
|
+
"null"
|
|
1162
|
+
]
|
|
1163
|
+
},
|
|
1164
|
+
"blank_lines": {
|
|
1165
|
+
"description": "Lines containing only whitespace.",
|
|
1166
|
+
"type": [
|
|
1167
|
+
"integer",
|
|
1168
|
+
"null"
|
|
1169
|
+
],
|
|
1170
|
+
"format": "uint64",
|
|
1171
|
+
"minimum": 0
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
},
|
|
1175
|
+
"ImagePhysical": {
|
|
1176
|
+
"description": "Image physical properties.",
|
|
1177
|
+
"type": "object",
|
|
1178
|
+
"properties": {
|
|
1179
|
+
"width": {
|
|
1180
|
+
"description": "Width in pixels.",
|
|
1181
|
+
"type": "integer",
|
|
1182
|
+
"format": "uint32",
|
|
1183
|
+
"minimum": 0,
|
|
1184
|
+
"default": 0
|
|
1185
|
+
},
|
|
1186
|
+
"height": {
|
|
1187
|
+
"description": "Height in pixels.",
|
|
1188
|
+
"type": "integer",
|
|
1189
|
+
"format": "uint32",
|
|
1190
|
+
"minimum": 0,
|
|
1191
|
+
"default": 0
|
|
1192
|
+
},
|
|
1193
|
+
"bit_depth": {
|
|
1194
|
+
"description": "Bits per channel.",
|
|
1195
|
+
"type": [
|
|
1196
|
+
"integer",
|
|
1197
|
+
"null"
|
|
1198
|
+
],
|
|
1199
|
+
"format": "uint8",
|
|
1200
|
+
"minimum": 0,
|
|
1201
|
+
"maximum": 255
|
|
1202
|
+
},
|
|
1203
|
+
"channels": {
|
|
1204
|
+
"description": "Channel count.",
|
|
1205
|
+
"type": [
|
|
1206
|
+
"integer",
|
|
1207
|
+
"null"
|
|
1208
|
+
],
|
|
1209
|
+
"format": "uint8",
|
|
1210
|
+
"minimum": 0,
|
|
1211
|
+
"maximum": 255
|
|
1212
|
+
},
|
|
1213
|
+
"color_space": {
|
|
1214
|
+
"description": "Colour space, e.g. `sRGB`.",
|
|
1215
|
+
"type": [
|
|
1216
|
+
"string",
|
|
1217
|
+
"null"
|
|
1218
|
+
]
|
|
1219
|
+
},
|
|
1220
|
+
"orientation": {
|
|
1221
|
+
"description": "EXIF orientation (1–8).",
|
|
1222
|
+
"type": [
|
|
1223
|
+
"integer",
|
|
1224
|
+
"null"
|
|
1225
|
+
],
|
|
1226
|
+
"format": "uint8",
|
|
1227
|
+
"minimum": 0,
|
|
1228
|
+
"maximum": 255
|
|
1229
|
+
},
|
|
1230
|
+
"dpi": {
|
|
1231
|
+
"description": "Horizontal and vertical resolution in dots per inch.",
|
|
1232
|
+
"type": [
|
|
1233
|
+
"array",
|
|
1234
|
+
"null"
|
|
1235
|
+
],
|
|
1236
|
+
"items": {
|
|
1237
|
+
"type": "number",
|
|
1238
|
+
"format": "double"
|
|
1239
|
+
},
|
|
1240
|
+
"minItems": 2,
|
|
1241
|
+
"maxItems": 2
|
|
1242
|
+
},
|
|
1243
|
+
"frames": {
|
|
1244
|
+
"description": "Frame count (animations, multi-page).",
|
|
1245
|
+
"type": [
|
|
1246
|
+
"integer",
|
|
1247
|
+
"null"
|
|
1248
|
+
],
|
|
1249
|
+
"format": "uint32",
|
|
1250
|
+
"minimum": 0
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
},
|
|
1254
|
+
"MediaPhysical": {
|
|
1255
|
+
"description": "Audio/video physical properties.",
|
|
1256
|
+
"type": "object",
|
|
1257
|
+
"properties": {
|
|
1258
|
+
"duration_s": {
|
|
1259
|
+
"description": "Duration in seconds.",
|
|
1260
|
+
"type": [
|
|
1261
|
+
"number",
|
|
1262
|
+
"null"
|
|
1263
|
+
],
|
|
1264
|
+
"format": "double"
|
|
1265
|
+
},
|
|
1266
|
+
"bitrate_bps": {
|
|
1267
|
+
"description": "Overall bitrate.",
|
|
1268
|
+
"type": [
|
|
1269
|
+
"integer",
|
|
1270
|
+
"null"
|
|
1271
|
+
],
|
|
1272
|
+
"format": "uint64",
|
|
1273
|
+
"minimum": 0
|
|
1274
|
+
},
|
|
1275
|
+
"streams": {
|
|
1276
|
+
"description": "Streams (codec, type, …), one object each.",
|
|
1277
|
+
"type": "array",
|
|
1278
|
+
"items": {
|
|
1279
|
+
"type": "object",
|
|
1280
|
+
"additionalProperties": true
|
|
1281
|
+
}
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1284
|
+
},
|
|
1285
|
+
"DocumentPhysical": {
|
|
1286
|
+
"description": "Document physical properties.",
|
|
1287
|
+
"type": "object",
|
|
1288
|
+
"properties": {
|
|
1289
|
+
"pages": {
|
|
1290
|
+
"description": "Pages.",
|
|
1291
|
+
"type": [
|
|
1292
|
+
"integer",
|
|
1293
|
+
"null"
|
|
1294
|
+
],
|
|
1295
|
+
"format": "uint64",
|
|
1296
|
+
"minimum": 0
|
|
1297
|
+
},
|
|
1298
|
+
"words": {
|
|
1299
|
+
"description": "Words (as declared by the document).",
|
|
1300
|
+
"type": [
|
|
1301
|
+
"integer",
|
|
1302
|
+
"null"
|
|
1303
|
+
],
|
|
1304
|
+
"format": "uint64",
|
|
1305
|
+
"minimum": 0
|
|
1306
|
+
},
|
|
1307
|
+
"slides": {
|
|
1308
|
+
"description": "Slides.",
|
|
1309
|
+
"type": [
|
|
1310
|
+
"integer",
|
|
1311
|
+
"null"
|
|
1312
|
+
],
|
|
1313
|
+
"format": "uint64",
|
|
1314
|
+
"minimum": 0
|
|
1315
|
+
},
|
|
1316
|
+
"sheets": {
|
|
1317
|
+
"description": "Sheets.",
|
|
1318
|
+
"type": [
|
|
1319
|
+
"integer",
|
|
1320
|
+
"null"
|
|
1321
|
+
],
|
|
1322
|
+
"format": "uint64",
|
|
1323
|
+
"minimum": 0
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1326
|
+
},
|
|
1327
|
+
"ContainerPhysical": {
|
|
1328
|
+
"description": "Container (archive) physical properties.",
|
|
1329
|
+
"type": "object",
|
|
1330
|
+
"properties": {
|
|
1331
|
+
"entries": {
|
|
1332
|
+
"description": "Entry count.",
|
|
1333
|
+
"type": [
|
|
1334
|
+
"integer",
|
|
1335
|
+
"null"
|
|
1336
|
+
],
|
|
1337
|
+
"format": "uint64",
|
|
1338
|
+
"minimum": 0
|
|
1339
|
+
},
|
|
1340
|
+
"uncompressed_bytes": {
|
|
1341
|
+
"description": "Total uncompressed size.",
|
|
1342
|
+
"type": [
|
|
1343
|
+
"integer",
|
|
1344
|
+
"null"
|
|
1345
|
+
],
|
|
1346
|
+
"format": "uint64",
|
|
1347
|
+
"minimum": 0
|
|
1348
|
+
},
|
|
1349
|
+
"ratio": {
|
|
1350
|
+
"description": "Uncompressed / compressed.",
|
|
1351
|
+
"type": [
|
|
1352
|
+
"number",
|
|
1353
|
+
"null"
|
|
1354
|
+
],
|
|
1355
|
+
"format": "double"
|
|
1356
|
+
},
|
|
1357
|
+
"encrypted_entries": {
|
|
1358
|
+
"description": "Encrypted entries.",
|
|
1359
|
+
"type": [
|
|
1360
|
+
"integer",
|
|
1361
|
+
"null"
|
|
1362
|
+
],
|
|
1363
|
+
"format": "uint64",
|
|
1364
|
+
"minimum": 0
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1367
|
+
},
|
|
1368
|
+
"Integrity": {
|
|
1369
|
+
"description": "`integrity` section.",
|
|
1370
|
+
"type": "object",
|
|
1371
|
+
"properties": {
|
|
1372
|
+
"sha256": {
|
|
1373
|
+
"description": "SHA-256, lowercase hex.",
|
|
1374
|
+
"type": [
|
|
1375
|
+
"string",
|
|
1376
|
+
"null"
|
|
1377
|
+
]
|
|
1378
|
+
},
|
|
1379
|
+
"blake3": {
|
|
1380
|
+
"description": "BLAKE3, lowercase hex.",
|
|
1381
|
+
"type": [
|
|
1382
|
+
"string",
|
|
1383
|
+
"null"
|
|
1384
|
+
]
|
|
1385
|
+
},
|
|
1386
|
+
"phash": {
|
|
1387
|
+
"description": "Perceptual hash (images, `full` profile).",
|
|
1388
|
+
"type": [
|
|
1389
|
+
"string",
|
|
1390
|
+
"null"
|
|
1391
|
+
]
|
|
1392
|
+
},
|
|
1393
|
+
"skipped": {
|
|
1394
|
+
"description": "Why hashing was skipped, if it was.",
|
|
1395
|
+
"type": [
|
|
1396
|
+
"string",
|
|
1397
|
+
"null"
|
|
1398
|
+
]
|
|
1399
|
+
}
|
|
1400
|
+
}
|
|
1401
|
+
},
|
|
1402
|
+
"Content": {
|
|
1403
|
+
"description": "`content` section: the LLM-facing view.",
|
|
1404
|
+
"type": "object",
|
|
1405
|
+
"properties": {
|
|
1406
|
+
"title": {
|
|
1407
|
+
"description": "Title.",
|
|
1408
|
+
"type": [
|
|
1409
|
+
"string",
|
|
1410
|
+
"null"
|
|
1411
|
+
]
|
|
1412
|
+
},
|
|
1413
|
+
"description": {
|
|
1414
|
+
"description": "Description / caption / abstract.",
|
|
1415
|
+
"type": [
|
|
1416
|
+
"string",
|
|
1417
|
+
"null"
|
|
1418
|
+
]
|
|
1419
|
+
},
|
|
1420
|
+
"authors": {
|
|
1421
|
+
"description": "Authors.",
|
|
1422
|
+
"type": "array",
|
|
1423
|
+
"items": {
|
|
1424
|
+
"type": "string"
|
|
1425
|
+
}
|
|
1426
|
+
},
|
|
1427
|
+
"language": {
|
|
1428
|
+
"description": "Natural language.",
|
|
1429
|
+
"anyOf": [
|
|
1430
|
+
{
|
|
1431
|
+
"$ref": "#/$defs/Language"
|
|
1432
|
+
},
|
|
1433
|
+
{
|
|
1434
|
+
"type": "null"
|
|
1435
|
+
}
|
|
1436
|
+
]
|
|
1437
|
+
},
|
|
1438
|
+
"keywords": {
|
|
1439
|
+
"description": "Keywords (declared or extracted).",
|
|
1440
|
+
"type": "array",
|
|
1441
|
+
"items": {
|
|
1442
|
+
"type": "string"
|
|
1443
|
+
}
|
|
1444
|
+
},
|
|
1445
|
+
"keyword_frequency": {
|
|
1446
|
+
"description": "Top terms with counts.",
|
|
1447
|
+
"type": "array",
|
|
1448
|
+
"items": {
|
|
1449
|
+
"type": "array",
|
|
1450
|
+
"prefixItems": [
|
|
1451
|
+
{
|
|
1452
|
+
"type": "string"
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
"type": "integer",
|
|
1456
|
+
"format": "uint64",
|
|
1457
|
+
"minimum": 0
|
|
1458
|
+
}
|
|
1459
|
+
],
|
|
1460
|
+
"minItems": 2,
|
|
1461
|
+
"maxItems": 2
|
|
1462
|
+
}
|
|
1463
|
+
},
|
|
1464
|
+
"outline": {
|
|
1465
|
+
"description": "Heading outline in document order.",
|
|
1466
|
+
"type": "array",
|
|
1467
|
+
"items": {
|
|
1468
|
+
"$ref": "#/$defs/Heading"
|
|
1469
|
+
}
|
|
1470
|
+
},
|
|
1471
|
+
"summary": {
|
|
1472
|
+
"description": "Extractive summary.",
|
|
1473
|
+
"type": [
|
|
1474
|
+
"string",
|
|
1475
|
+
"null"
|
|
1476
|
+
]
|
|
1477
|
+
},
|
|
1478
|
+
"excerpt": {
|
|
1479
|
+
"description": "Text excerpt.",
|
|
1480
|
+
"type": [
|
|
1481
|
+
"string",
|
|
1482
|
+
"null"
|
|
1483
|
+
]
|
|
1484
|
+
},
|
|
1485
|
+
"tags": {
|
|
1486
|
+
"description": "Merged tags.",
|
|
1487
|
+
"type": "array",
|
|
1488
|
+
"items": {
|
|
1489
|
+
"type": "string"
|
|
1490
|
+
}
|
|
1491
|
+
},
|
|
1492
|
+
"location": {
|
|
1493
|
+
"description": "Location the content refers to (e.g. photo GPS).",
|
|
1494
|
+
"anyOf": [
|
|
1495
|
+
{
|
|
1496
|
+
"$ref": "#/$defs/Location"
|
|
1497
|
+
},
|
|
1498
|
+
{
|
|
1499
|
+
"type": "null"
|
|
1500
|
+
}
|
|
1501
|
+
]
|
|
1502
|
+
},
|
|
1503
|
+
"extent": {
|
|
1504
|
+
"description": "Area the content covers (e.g. a map's bounding box), in WGS84.",
|
|
1505
|
+
"anyOf": [
|
|
1506
|
+
{
|
|
1507
|
+
"$ref": "#/$defs/Extent"
|
|
1508
|
+
},
|
|
1509
|
+
{
|
|
1510
|
+
"type": "null"
|
|
1511
|
+
}
|
|
1512
|
+
]
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1515
|
+
},
|
|
1516
|
+
"Language": {
|
|
1517
|
+
"description": "Detected natural language.",
|
|
1518
|
+
"type": "object",
|
|
1519
|
+
"properties": {
|
|
1520
|
+
"code": {
|
|
1521
|
+
"description": "ISO 639 code.",
|
|
1522
|
+
"type": "string",
|
|
1523
|
+
"default": ""
|
|
1524
|
+
},
|
|
1525
|
+
"confidence": {
|
|
1526
|
+
"description": "Confidence in `0.0..=1.0`.",
|
|
1527
|
+
"type": "number",
|
|
1528
|
+
"format": "double",
|
|
1529
|
+
"default": 0.0
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
},
|
|
1533
|
+
"Heading": {
|
|
1534
|
+
"description": "One heading of the document outline.",
|
|
1535
|
+
"type": "object",
|
|
1536
|
+
"properties": {
|
|
1537
|
+
"level": {
|
|
1538
|
+
"description": "Level, 1 = top.",
|
|
1539
|
+
"type": "integer",
|
|
1540
|
+
"format": "uint8",
|
|
1541
|
+
"minimum": 0,
|
|
1542
|
+
"maximum": 255,
|
|
1543
|
+
"default": 0
|
|
1544
|
+
},
|
|
1545
|
+
"text": {
|
|
1546
|
+
"description": "Heading text.",
|
|
1547
|
+
"type": "string",
|
|
1548
|
+
"default": ""
|
|
1549
|
+
}
|
|
1550
|
+
}
|
|
1551
|
+
},
|
|
1552
|
+
"Location": {
|
|
1553
|
+
"description": "A geographic location.",
|
|
1554
|
+
"type": "object",
|
|
1555
|
+
"properties": {
|
|
1556
|
+
"lat": {
|
|
1557
|
+
"description": "Latitude, decimal degrees.",
|
|
1558
|
+
"type": "number",
|
|
1559
|
+
"format": "double",
|
|
1560
|
+
"default": 0.0
|
|
1561
|
+
},
|
|
1562
|
+
"lon": {
|
|
1563
|
+
"description": "Longitude, decimal degrees.",
|
|
1564
|
+
"type": "number",
|
|
1565
|
+
"format": "double",
|
|
1566
|
+
"default": 0.0
|
|
1567
|
+
},
|
|
1568
|
+
"alt_m": {
|
|
1569
|
+
"description": "Altitude in metres.",
|
|
1570
|
+
"type": [
|
|
1571
|
+
"number",
|
|
1572
|
+
"null"
|
|
1573
|
+
],
|
|
1574
|
+
"format": "double"
|
|
1575
|
+
},
|
|
1576
|
+
"source": {
|
|
1577
|
+
"description": "Where it came from.",
|
|
1578
|
+
"type": "string",
|
|
1579
|
+
"default": ""
|
|
1580
|
+
}
|
|
1581
|
+
}
|
|
1582
|
+
},
|
|
1583
|
+
"Extent": {
|
|
1584
|
+
"description": "A geographic extent: a WGS84 bounding box.",
|
|
1585
|
+
"type": "object",
|
|
1586
|
+
"properties": {
|
|
1587
|
+
"west": {
|
|
1588
|
+
"description": "Western longitude, decimal degrees.",
|
|
1589
|
+
"type": "number",
|
|
1590
|
+
"format": "double",
|
|
1591
|
+
"default": 0.0
|
|
1592
|
+
},
|
|
1593
|
+
"south": {
|
|
1594
|
+
"description": "Southern latitude, decimal degrees.",
|
|
1595
|
+
"type": "number",
|
|
1596
|
+
"format": "double",
|
|
1597
|
+
"default": 0.0
|
|
1598
|
+
},
|
|
1599
|
+
"east": {
|
|
1600
|
+
"description": "Eastern longitude, decimal degrees.",
|
|
1601
|
+
"type": "number",
|
|
1602
|
+
"format": "double",
|
|
1603
|
+
"default": 0.0
|
|
1604
|
+
},
|
|
1605
|
+
"north": {
|
|
1606
|
+
"description": "Northern latitude, decimal degrees.",
|
|
1607
|
+
"type": "number",
|
|
1608
|
+
"format": "double",
|
|
1609
|
+
"default": 0.0
|
|
1610
|
+
},
|
|
1611
|
+
"source": {
|
|
1612
|
+
"description": "Where it came from.",
|
|
1613
|
+
"type": "string",
|
|
1614
|
+
"default": ""
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
},
|
|
1618
|
+
"Diagnostics": {
|
|
1619
|
+
"description": "`diagnostics` section.",
|
|
1620
|
+
"type": "object",
|
|
1621
|
+
"properties": {
|
|
1622
|
+
"extractors": {
|
|
1623
|
+
"description": "Everything that ran, in order.",
|
|
1624
|
+
"type": "array",
|
|
1625
|
+
"items": {
|
|
1626
|
+
"$ref": "#/$defs/ExtractorRun"
|
|
1627
|
+
}
|
|
1628
|
+
},
|
|
1629
|
+
"warnings": {
|
|
1630
|
+
"description": "Non-fatal problems.",
|
|
1631
|
+
"type": "array",
|
|
1632
|
+
"items": {
|
|
1633
|
+
"type": "string"
|
|
1634
|
+
}
|
|
1635
|
+
},
|
|
1636
|
+
"limits_hit": {
|
|
1637
|
+
"description": "Limits that stopped work early (`read_bytes`, `timeout`, `max_depth`, …).",
|
|
1638
|
+
"type": "array",
|
|
1639
|
+
"items": {
|
|
1640
|
+
"type": "string"
|
|
1641
|
+
}
|
|
1642
|
+
},
|
|
1643
|
+
"truncated": {
|
|
1644
|
+
"description": "Some output was cut short.",
|
|
1645
|
+
"type": "boolean",
|
|
1646
|
+
"default": false
|
|
1647
|
+
},
|
|
1648
|
+
"undecoded_blocks": {
|
|
1649
|
+
"description": "Metadata blocks emitted that no decoder handled.",
|
|
1650
|
+
"type": "array",
|
|
1651
|
+
"items": {
|
|
1652
|
+
"type": "string"
|
|
1653
|
+
}
|
|
1654
|
+
},
|
|
1655
|
+
"provenance": {
|
|
1656
|
+
"description": "Field path → source, when requested with `--provenance`.",
|
|
1657
|
+
"type": [
|
|
1658
|
+
"object",
|
|
1659
|
+
"null"
|
|
1660
|
+
],
|
|
1661
|
+
"additionalProperties": true
|
|
1662
|
+
},
|
|
1663
|
+
"elapsed_ms": {
|
|
1664
|
+
"description": "Total wall time in milliseconds.",
|
|
1665
|
+
"type": "number",
|
|
1666
|
+
"format": "double",
|
|
1667
|
+
"default": 0.0
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1670
|
+
},
|
|
1671
|
+
"ExtractorRun": {
|
|
1672
|
+
"description": "One entry of `diagnostics.extractors`.",
|
|
1673
|
+
"type": "object",
|
|
1674
|
+
"properties": {
|
|
1675
|
+
"id": {
|
|
1676
|
+
"description": "Extractor / decoder / analyzer id.",
|
|
1677
|
+
"type": "string",
|
|
1678
|
+
"default": ""
|
|
1679
|
+
},
|
|
1680
|
+
"version": {
|
|
1681
|
+
"description": "Its output version.",
|
|
1682
|
+
"type": "integer",
|
|
1683
|
+
"format": "uint32",
|
|
1684
|
+
"minimum": 0,
|
|
1685
|
+
"default": 0
|
|
1686
|
+
},
|
|
1687
|
+
"ms": {
|
|
1688
|
+
"description": "Wall time in milliseconds.",
|
|
1689
|
+
"type": "number",
|
|
1690
|
+
"format": "double",
|
|
1691
|
+
"default": 0.0
|
|
1692
|
+
},
|
|
1693
|
+
"status": {
|
|
1694
|
+
"description": "Outcome.",
|
|
1695
|
+
"$ref": "#/$defs/RunStatus",
|
|
1696
|
+
"default": "ok"
|
|
1697
|
+
},
|
|
1698
|
+
"error_kind": {
|
|
1699
|
+
"description": "Error kind (`malformed`, `timeout`, …) when not `ok`.",
|
|
1700
|
+
"type": [
|
|
1701
|
+
"string",
|
|
1702
|
+
"null"
|
|
1703
|
+
]
|
|
1704
|
+
},
|
|
1705
|
+
"error": {
|
|
1706
|
+
"description": "Error message when not `ok`.",
|
|
1707
|
+
"type": [
|
|
1708
|
+
"string",
|
|
1709
|
+
"null"
|
|
1710
|
+
]
|
|
1711
|
+
}
|
|
1712
|
+
}
|
|
1713
|
+
},
|
|
1714
|
+
"RunStatus": {
|
|
1715
|
+
"description": "Outcome of one extractor, decoder or analyzer run.",
|
|
1716
|
+
"oneOf": [
|
|
1717
|
+
{
|
|
1718
|
+
"description": "Finished normally.",
|
|
1719
|
+
"type": "string",
|
|
1720
|
+
"const": "ok"
|
|
1721
|
+
},
|
|
1722
|
+
{
|
|
1723
|
+
"description": "Returned an [`ExtractError`](crate::ExtractError) other than `internal`.",
|
|
1724
|
+
"type": "string",
|
|
1725
|
+
"const": "error"
|
|
1726
|
+
},
|
|
1727
|
+
{
|
|
1728
|
+
"description": "Panicked or broke an invariant (a bug).",
|
|
1729
|
+
"type": "string",
|
|
1730
|
+
"const": "internal"
|
|
1731
|
+
}
|
|
1732
|
+
]
|
|
1733
|
+
}
|
|
1734
|
+
}
|
|
1735
|
+
}
|