upload-safety 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +39 -7
  2. package/dist/archive-content.d.ts +15 -0
  3. package/dist/archive-content.d.ts.map +1 -0
  4. package/dist/archive-content.js +277 -0
  5. package/dist/archive-content.js.map +1 -0
  6. package/dist/asf-media.d.ts +22 -0
  7. package/dist/asf-media.d.ts.map +1 -0
  8. package/dist/asf-media.js +159 -0
  9. package/dist/asf-media.js.map +1 -0
  10. package/dist/check-upload.js +1 -1
  11. package/dist/check-upload.js.map +1 -1
  12. package/dist/heif-metadata.d.ts +8 -0
  13. package/dist/heif-metadata.d.ts.map +1 -1
  14. package/dist/heif-metadata.js +1 -1
  15. package/dist/heif-metadata.js.map +1 -1
  16. package/dist/media-formats.d.ts +51 -0
  17. package/dist/media-formats.d.ts.map +1 -0
  18. package/dist/media-formats.js +498 -0
  19. package/dist/media-formats.js.map +1 -0
  20. package/dist/photo-metadata.d.ts +4 -2
  21. package/dist/photo-metadata.d.ts.map +1 -1
  22. package/dist/photo-metadata.js +39 -2
  23. package/dist/photo-metadata.js.map +1 -1
  24. package/dist/rtf-content.d.ts +12 -0
  25. package/dist/rtf-content.d.ts.map +1 -0
  26. package/dist/rtf-content.js +175 -0
  27. package/dist/rtf-content.js.map +1 -0
  28. package/dist/upload-allowlist.d.ts +19 -8
  29. package/dist/upload-allowlist.d.ts.map +1 -1
  30. package/dist/upload-allowlist.js +136 -23
  31. package/dist/upload-allowlist.js.map +1 -1
  32. package/dist/video-formats.d.ts +33 -0
  33. package/dist/video-formats.d.ts.map +1 -0
  34. package/dist/video-formats.js +373 -0
  35. package/dist/video-formats.js.map +1 -0
  36. package/dist/zip-entries.d.ts +8 -0
  37. package/dist/zip-entries.d.ts.map +1 -1
  38. package/dist/zip-entries.js +29 -2
  39. package/dist/zip-entries.js.map +1 -1
  40. package/package.json +6 -3
  41. package/src/archive-content.ts +306 -0
  42. package/src/asf-media.ts +184 -0
  43. package/src/check-upload.ts +1 -1
  44. package/src/heif-metadata.ts +2 -2
  45. package/src/media-formats.ts +522 -0
  46. package/src/photo-metadata.ts +40 -2
  47. package/src/rtf-content.ts +178 -0
  48. package/src/upload-allowlist.ts +162 -27
  49. package/src/video-formats.ts +398 -0
  50. package/src/zip-entries.ts +33 -3
@@ -1,15 +1,18 @@
1
1
  /**
2
- * Strict allowlist + validation for document uploads: PDF, MS Office (also the
3
- * legacy formats), LibreOffice, photos (JPEG, PNG, WebP, HEIC/HEIF, AVIF) and CSV and text. Validation happens on three axes: file
4
- * extension, declared MIME type, and the actual content, i.e. the magic-byte
5
- * signature plus the parts a file of that kind always has. Extension and MIME
6
- * alone are trivially spoofed.
2
+ * Strict allowlist + validation for uploads: PDF, MS Office (also the legacy formats), LibreOffice,
3
+ * images, audio, video, text, RTF and archives. Validation happens on three axes: file extension,
4
+ * declared MIME type, and the actual content, i.e. the magic-byte signature plus the parts a file
5
+ * of that kind always has. Extension and MIME alone are trivially spoofed.
7
6
  */
7
+ import { inspectGzip, inspectTarArchive, inspectZipArchive } from './archive-content.js';
8
+ import { inspectAsf } from './asf-media.js';
8
9
  import { inspectExcelGlobals } from './excel-macro-sheets.js';
9
10
  import { readFtypBrands } from './heif-metadata.js';
10
11
  import { readOleDirectory } from './ole-streams.js';
11
12
  import { inspectPdf } from './pdf-active-content.js';
13
+ import { M4A_BRANDS, MP4_BRANDS, stripPhotoMetadata } from './photo-metadata.js';
12
14
  import { hasPowerPointCode, isEncryptedPowerPoint } from './powerpoint-vba.js';
15
+ import { inspectRtf } from './rtf-content.js';
13
16
  import { inspectText } from './text-content.js';
14
17
  import { stripXmlMarkup } from './xml-markup.js';
15
18
  import { readZipEntries, readZipEntryData, startsWithBytes } from './zip-entries.js';
@@ -307,61 +310,105 @@ const ODP = 'application/vnd.oasis.opendocument.presentation';
307
310
  const JPEG = { magic: 'jpeg', mimeTypes: ['image/jpeg', 'image/pjpeg'] };
308
311
  // HEIC is HEIF with HEVC images; `mif1` names HEIF without saying which codec. Sequences (`msf1`, `hevc`, `hevx`, `avis`) are left out.
309
312
  const HEVC_BRANDS = ['heic', 'heix', 'heim', 'heis'];
313
+ const ARCHIVE_EXTENSIONS = new Set(['zip', 'tar', 'gz', 'tgz', 'rar', '7z']);
310
314
  // OOXML (docx/xlsx/pptx) and OpenDocument (odt/ods/odp) files are ZIP
311
315
  // containers; legacy Office formats (doc/xls/ppt) are OLE compound files.
312
316
  const ALLOWED_TYPES = [
313
- { extension: 'pdf', magic: 'pdf', mimeTypes: ['application/pdf'] },
317
+ { extension: 'pdf', risk: 'low', magic: 'pdf', mimeTypes: ['application/pdf'] },
314
318
  {
315
- extension: 'doc', magic: 'ole', mimeTypes: ['application/msword'], oleStreams: ['WordDocument'],
319
+ extension: 'doc',
320
+ risk: 'low', magic: 'ole', mimeTypes: ['application/msword'], oleStreams: ['WordDocument'],
316
321
  },
317
322
  {
318
323
  extension: 'docx',
324
+ risk: 'low',
319
325
  magic: 'zip',
320
326
  mimeTypes: ['application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
321
327
  zipEntries: ooxml('word/document.xml'),
322
328
  },
323
329
  {
324
- extension: 'ppt', magic: 'ole', mimeTypes: ['application/vnd.ms-powerpoint'], oleStreams: ['PowerPoint Document'],
330
+ extension: 'ppt',
331
+ risk: 'low', magic: 'ole', mimeTypes: ['application/vnd.ms-powerpoint'], oleStreams: ['PowerPoint Document'],
325
332
  },
326
333
  {
327
334
  extension: 'pptx',
335
+ risk: 'low',
328
336
  magic: 'zip',
329
337
  mimeTypes: ['application/vnd.openxmlformats-officedocument.presentationml.presentation'],
330
338
  zipEntries: ooxml('ppt/presentation.xml'),
331
339
  },
332
340
  {
333
- extension: 'xls', magic: 'ole', mimeTypes: ['application/vnd.ms-excel'], oleStreams: ['Workbook', 'Book'],
341
+ extension: 'xls',
342
+ risk: 'low', magic: 'ole', mimeTypes: ['application/vnd.ms-excel'], oleStreams: ['Workbook', 'Book'],
334
343
  },
335
344
  {
336
345
  extension: 'xlsx',
346
+ risk: 'low',
337
347
  magic: 'zip',
338
348
  mimeTypes: ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
339
349
  zipEntries: ooxml('xl/workbook.xml'),
340
350
  },
341
351
  {
342
- extension: 'odt', magic: 'zip', mimeTypes: [ODT], zipEntries: OPEN_DOCUMENT_ENTRIES, openDocumentType: ODT,
352
+ extension: 'odt',
353
+ risk: 'low', magic: 'zip', mimeTypes: [ODT], zipEntries: OPEN_DOCUMENT_ENTRIES, openDocumentType: ODT,
343
354
  },
344
355
  {
345
- extension: 'ods', magic: 'zip', mimeTypes: [ODS], zipEntries: OPEN_DOCUMENT_ENTRIES, openDocumentType: ODS,
356
+ extension: 'ods',
357
+ risk: 'low', magic: 'zip', mimeTypes: [ODS], zipEntries: OPEN_DOCUMENT_ENTRIES, openDocumentType: ODS,
346
358
  },
347
359
  {
348
- extension: 'odp', magic: 'zip', mimeTypes: [ODP], zipEntries: OPEN_DOCUMENT_ENTRIES, openDocumentType: ODP,
360
+ extension: 'odp',
361
+ risk: 'low', magic: 'zip', mimeTypes: [ODP], zipEntries: OPEN_DOCUMENT_ENTRIES, openDocumentType: ODP,
349
362
  },
350
- { extension: 'jpg', ...JPEG },
351
- { extension: 'jpeg', ...JPEG },
352
- { extension: 'png', magic: 'png', mimeTypes: ['image/png'] },
353
- { extension: 'webp', magic: 'webp', mimeTypes: ['image/webp'] },
354
- { extension: 'heic', magic: 'isobmff', mimeTypes: ['image/heic'], brands: HEVC_BRANDS },
355
- { extension: 'heif', magic: 'isobmff', mimeTypes: ['image/heif', 'image/heic'], brands: [...HEVC_BRANDS, 'mif1'] },
356
- { extension: 'avif', magic: 'isobmff', mimeTypes: ['image/avif'], brands: ['avif'] },
363
+ { extension: 'jpg', risk: 'low', ...JPEG },
364
+ { extension: 'jpeg', risk: 'low', ...JPEG },
365
+ { extension: 'png', risk: 'low', magic: 'png', mimeTypes: ['image/png'] },
366
+ { extension: 'webp', risk: 'low', magic: 'webp', mimeTypes: ['image/webp'] },
367
+ { extension: 'heic', risk: 'low', magic: 'isobmff', mimeTypes: ['image/heic'], brands: HEVC_BRANDS },
368
+ { extension: 'heif', risk: 'low', magic: 'isobmff', mimeTypes: ['image/heif', 'image/heic'], brands: [...HEVC_BRANDS, 'mif1'] },
369
+ { extension: 'avif', risk: 'low', magic: 'isobmff', mimeTypes: ['image/avif'], brands: ['avif'] },
357
370
  // Windows names the type of a CSV file after Excel.
358
371
  {
359
- extension: 'csv', magic: 'text', mimeTypes: ['text/csv', 'application/vnd.ms-excel', 'application/csv', 'text/x-csv', 'text/comma-separated-values', 'text/plain'],
372
+ extension: 'csv',
373
+ risk: 'low', magic: 'text', mimeTypes: ['text/csv', 'application/vnd.ms-excel', 'application/csv', 'text/x-csv', 'text/comma-separated-values', 'text/plain'],
360
374
  },
361
- { extension: 'txt', magic: 'text', mimeTypes: ['text/plain'] },
375
+ { extension: 'txt', risk: 'low', magic: 'text', mimeTypes: ['text/plain'] },
376
+ { extension: 'gif', risk: 'low', magic: 'gif', mimeTypes: ['image/gif'] },
377
+ { extension: 'bmp', risk: 'low', magic: 'bmp', mimeTypes: ['image/bmp', 'image/x-bmp', 'image/x-ms-bmp'] },
378
+ { extension: 'ico', risk: 'low', magic: 'ico', mimeTypes: ['image/vnd.microsoft.icon', 'image/x-icon', 'image/ico'] },
379
+ { extension: 'mp3', risk: 'low', magic: 'mp3', mimeTypes: ['audio/mpeg', 'audio/mp3', 'audio/mpeg3'] },
380
+ { extension: 'wav', risk: 'low', magic: 'wav', mimeTypes: ['audio/wav', 'audio/x-wav', 'audio/wave', 'audio/vnd.wave'] },
381
+ { extension: 'flac', risk: 'low', magic: 'flac', mimeTypes: ['audio/flac', 'audio/x-flac'] },
382
+ { extension: 'ogg', risk: 'low', magic: 'ogg', mimeTypes: ['audio/ogg', 'application/ogg', 'video/ogg'] },
383
+ { extension: 'm4a', risk: 'low', magic: 'isobmff', mimeTypes: ['audio/mp4', 'audio/x-m4a', 'audio/m4a'], brands: M4A_BRANDS },
384
+ { extension: 'mp4', risk: 'low', magic: 'isobmff', mimeTypes: ['video/mp4', 'application/mp4'], brands: MP4_BRANDS },
385
+ // Old QuickTime movies have no `ftyp`; the structure is checked when the metadata is removed.
386
+ { extension: 'mov', risk: 'low', magic: 'quicktime', mimeTypes: ['video/quicktime'] },
387
+ { extension: 'webm', risk: 'low', magic: 'webm', mimeTypes: ['video/webm', 'audio/webm'] },
388
+ { extension: 'aac', risk: 'low', magic: 'aac', mimeTypes: ['audio/aac', 'audio/x-aac', 'audio/aacp'] },
389
+ { extension: 'mkv', risk: 'low', magic: 'webm', mimeTypes: ['video/x-matroska', 'video/matroska', 'audio/x-matroska'] },
390
+ { extension: 'avi', risk: 'low', magic: 'avi', mimeTypes: ['video/x-msvideo', 'video/avi', 'video/msvideo'] },
391
+ // Windows Media Player runs script commands and opens DRM license URLs in these; both are refused.
392
+ { extension: 'wma', risk: 'elevated', magic: 'asf', mimeTypes: ['audio/x-ms-wma', 'application/vnd.ms-asf'] },
393
+ { extension: 'wmv', risk: 'elevated', magic: 'asf', mimeTypes: ['video/x-ms-wmv', 'video/x-ms-asf', 'application/vnd.ms-asf'] },
394
+ // Rendered Markdown may carry raw HTML and `javascript:` links; the file itself is checked as text.
395
+ { extension: 'md', risk: 'elevated', magic: 'text', mimeTypes: ['text/markdown', 'text/x-markdown', 'text/plain'] },
396
+ // A common carrier of OLE exploits; refused on any object, template or DDE field.
397
+ { extension: 'rtf', risk: 'elevated', magic: 'rtf', mimeTypes: ['application/rtf', 'text/rtf'] },
398
+ // Archives pass when every file in them would pass on its own; they are not rewritten.
399
+ { extension: 'zip', risk: 'elevated', magic: 'zip', mimeTypes: ['application/zip', 'application/x-zip-compressed'] },
400
+ { extension: 'tar', risk: 'elevated', magic: 'tar', mimeTypes: ['application/x-tar'] },
401
+ { extension: 'gz', risk: 'elevated', magic: 'gzip', mimeTypes: ['application/gzip', 'application/x-gzip'] },
402
+ { extension: 'tgz', risk: 'elevated', magic: 'gzip', mimeTypes: ['application/gzip', 'application/x-gzip', 'application/x-compressed-tar', 'application/x-gtar'] },
403
+ // Reading these needs an LZMA or RAR decompressor, so only their signature is checked.
404
+ { extension: 'rar', risk: 'unchecked', magic: 'rar', mimeTypes: ['application/vnd.rar', 'application/x-rar-compressed', 'application/x-rar'] },
405
+ { extension: '7z', risk: 'unchecked', magic: '7z', mimeTypes: ['application/x-7z-compressed'] },
362
406
  ];
363
407
  const TYPE_BY_EXTENSION = new Map(ALLOWED_TYPES.map((type) => [type.extension, type]));
364
- export const ALLOWED_EXTENSIONS = ALLOWED_TYPES.map((type) => type.extension);
408
+ /** The default list: every format of `low` risk. The others must be named in `allowedExtensions`. */
409
+ export const ALLOWED_EXTENSIONS = ALLOWED_TYPES.filter((type) => type.risk === 'low').map((type) => type.extension);
410
+ /** The risk of accepting each format; see {@link FormatRisk}. */
411
+ export const FORMAT_RISK = Object.fromEntries(ALLOWED_TYPES.map((type) => [type.extension, type.risk]));
365
412
  /** The `accept` attribute value for a file input that takes `extensions`. */
366
413
  export function acceptAttribute(extensions = ALLOWED_EXTENSIONS) {
367
414
  return extensions.map((extension) => `.${extension}`).join(',');
@@ -473,6 +520,42 @@ const MAGIC_SIGNATURES = {
473
520
  jpeg: (bytes) => startsWith(bytes, [0xff, 0xd8, 0xff]),
474
521
  // "\x89PNG\r\n\x1A\n"
475
522
  png: (bytes) => startsWith(bytes, [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]),
523
+ // "GIF8", then "7a" or "9a"
524
+ gif: (bytes) => startsWith(bytes, [0x47, 0x49, 0x46, 0x38]),
525
+ // "BM"
526
+ bmp: (bytes) => startsWith(bytes, [0x42, 0x4d]),
527
+ // Reserved 0, type 1 (icon)
528
+ ico: (bytes) => startsWith(bytes, [0x00, 0x00, 0x01, 0x00]),
529
+ // An ID3 tag or an MPEG audio frame sync
530
+ mp3: (bytes) => startsWith(bytes, [0x49, 0x44, 0x33]) || (bytes.length >= 2 && bytes[0] === 0xff && (bytes[1] & 0xe0) === 0xe0),
531
+ // "RIFF", the size, "WAVE"
532
+ wav: (bytes) => startsWith(bytes, [0x52, 0x49, 0x46, 0x46]) && bytes.length >= 12 &&
533
+ startsWith(bytes.subarray(8), [0x57, 0x41, 0x56, 0x45]),
534
+ // An ID3 tag or an ADTS frame sync (12 bits set, MPEG layer 0)
535
+ aac: (bytes) => startsWith(bytes, [0x49, 0x44, 0x33]) || (bytes.length >= 2 && bytes[0] === 0xff && (bytes[1] & 0xf6) === 0xf0),
536
+ // "RIFF", the size, "AVI "
537
+ avi: (bytes) => startsWith(bytes, [0x52, 0x49, 0x46, 0x46]) && bytes.length >= 12 &&
538
+ startsWith(bytes.subarray(8), [0x41, 0x56, 0x49, 0x20]),
539
+ // The ASF Header Object GUID
540
+ asf: (bytes) => startsWith(bytes, [0x30, 0x26, 0xb2, 0x75, 0x8e, 0x66, 0xcf, 0x11, 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c]),
541
+ // "fLaC"
542
+ flac: (bytes) => startsWith(bytes, [0x66, 0x4c, 0x61, 0x43]),
543
+ // "OggS"
544
+ ogg: (bytes) => startsWith(bytes, [0x4f, 0x67, 0x67, 0x53]),
545
+ // Checked box by box when the metadata is removed, as an old movie may start with any of several boxes.
546
+ quicktime: (bytes) => bytes.length >= 8,
547
+ // EBML header
548
+ webm: (bytes) => startsWith(bytes, [0x1a, 0x45, 0xdf, 0xa3]),
549
+ // Checked by the RTF reader, which also takes Word's shorter `{\rt`.
550
+ rtf: () => true,
551
+ // "ustar" at 257, checked by the tar reader.
552
+ tar: () => true,
553
+ gzip: (bytes) => startsWith(bytes, [0x1f, 0x8b]),
554
+ // "Rar!\x1A\x07", then 0x00 (RAR 4) or 0x01 0x00 (RAR 5)
555
+ rar: (bytes) => startsWith(bytes, [0x52, 0x61, 0x72, 0x21, 0x1a, 0x07, 0x00]) ||
556
+ startsWith(bytes, [0x52, 0x61, 0x72, 0x21, 0x1a, 0x07, 0x01, 0x00]),
557
+ // "7z\xBC\xAF\x27\x1C"
558
+ '7z': (bytes) => startsWith(bytes, [0x37, 0x7a, 0xbc, 0xaf, 0x27, 0x1c]),
476
559
  // "RIFF", the size, "WEBP"
477
560
  webp: (bytes) => startsWith(bytes, [0x52, 0x49, 0x46, 0x46]) && bytes.length >= 12 &&
478
561
  startsWith(bytes.subarray(8), [0x57, 0x45, 0x42, 0x50]),
@@ -480,11 +563,26 @@ const MAGIC_SIGNATURES = {
480
563
  isobmff: (bytes) => bytes.length >= 8 && startsWith(bytes.subarray(4), [0x66, 0x74, 0x79, 0x70]),
481
564
  text: () => true,
482
565
  };
566
+ /**
567
+ * A check for a file inside an archive: it must be of a format in `allowedExtensions`, not an
568
+ * archive itself, and pass what it would pass uploaded alone, its structure included.
569
+ */
570
+ function archiveEntryCheck(allowedExtensions) {
571
+ return (name, bytes) => {
572
+ const extension = getExtension(name);
573
+ if (!isAllowedExtension(extension) || !allowedExtensions.includes(extension) || ARCHIVE_EXTENSIONS.has(extension)) {
574
+ return 'mismatch';
575
+ }
576
+ const verdict = inspectFileContent(extension, bytes, allowedExtensions);
577
+ return verdict === 'valid' && !stripPhotoMetadata(extension, bytes) ? 'mismatch' : verdict;
578
+ };
579
+ }
483
580
  /**
484
581
  * Checks once that a file's bytes are what `extension` claims: the signature
485
582
  * of its family and every part a file of that kind contains, but no macros.
583
+ * Files inside an archive must be of a format in `allowedExtensions`.
486
584
  */
487
- export function inspectFileContent(extension, bytes) {
585
+ export function inspectFileContent(extension, bytes, allowedExtensions = ALLOWED_EXTENSIONS) {
488
586
  const allowed = TYPE_BY_EXTENSION.get(extension);
489
587
  if (allowed?.zipEntries && !allowed.openDocumentType && MAGIC_SIGNATURES.ole(bytes)) {
490
588
  return holdsEncryptedPackage(readOleDirectory(toBuffer(bytes))) ? 'encrypted' : 'mismatch';
@@ -502,6 +600,21 @@ export function inspectFileContent(extension, bytes) {
502
600
  if (allowed.magic === 'text') {
503
601
  return inspectText(content, allowed.extension === 'csv');
504
602
  }
603
+ if (allowed.magic === 'asf') {
604
+ return inspectAsf(content, allowed.extension === 'wmv').verdict;
605
+ }
606
+ if (allowed.magic === 'rtf') {
607
+ return inspectRtf(content);
608
+ }
609
+ if (allowed.extension === 'zip') {
610
+ return inspectZipArchive(content, archiveEntryCheck(allowedExtensions));
611
+ }
612
+ if (allowed.magic === 'tar') {
613
+ return inspectTarArchive(content, archiveEntryCheck(allowedExtensions));
614
+ }
615
+ if (allowed.magic === 'gzip') {
616
+ return inspectGzip(content, archiveEntryCheck(allowedExtensions), allowed.extension === 'tgz');
617
+ }
505
618
  if (allowed.brands) {
506
619
  const brands = readFtypBrands(content);
507
620
  return allowed.brands.some((brand) => brands.includes(brand)) ? 'valid' : 'mismatch';
@@ -1 +1 @@
1
- {"version":3,"file":"upload-allowlist.js","sourceRoot":"","sources":["../src/upload-allowlist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload-allowlist.js","sourceRoot":"","sources":["../src/upload-allowlist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Checks the structure of MP4, MOV, M4A, WebM, Matroska and AVI files and removes their metadata (GPS,
3
+ * titles, cover art, XMP) without moving a byte, so sample offsets and cluster positions stay
4
+ * valid and a large video is not re-encoded. Boxes and elements are overwritten in place:
5
+ * ISOBMFF boxes become `free` boxes with a zeroed payload, WebM and Matroska elements become
6
+ * `Void` elements of the same length and AVI chunks become zeroed `JUNK` chunks.
7
+ *
8
+ * Limitation: metadata stored as samples in a timed metadata track (GoPro GPMF, DJI, Apple
9
+ * `mebx`) lives in `mdat` or in clusters, which are never touched, so it stays.
10
+ */
11
+ /**
12
+ * The ISO media file (MP4, MOV, M4A) with its metadata boxes overwritten, the input itself when
13
+ * there was nothing to remove, or null when its boxes do not read, it has no single `moov` or it
14
+ * names none of `brands`. `brands` null means a QuickTime movie, which may lack `ftyp`.
15
+ */
16
+ export declare function stripIsoMedia(content: Buffer, brands: readonly string[] | null): Buffer | null;
17
+ /**
18
+ * The WebM or Matroska file with its Tags, Attachments (in Matroska they can hold any file) and Title
19
+ * overwritten by `Void` elements of the same length, the input itself when there was nothing to remove,
20
+ * or null when its DocType is not allowed or its elements do not read. `webm` allows only WebM;
21
+ * `matroska` allows both, as a WebM file is a Matroska file. A cluster of unknown size, as live
22
+ * recorders write, ends at the first element a cluster cannot hold.
23
+ */
24
+ export declare function stripMatroska(content: Buffer, docType: 'webm' | 'matroska'): Buffer | null;
25
+ /**
26
+ * The AVI with its `INFO` lists and its `IDIT`, `ISMP`, `_PMX` (XMP), `strd` (vendor data) and `strn`
27
+ * chunks, and the contents of `JUNK` chunks, overwritten by zeroed `JUNK` chunks of the same size, the input
28
+ * itself when there was nothing to remove, or null when the chunks do not read, the first RIFF lacks `hdrl`
29
+ * with `avih` or `movi`, or bytes follow the last RIFF. OpenDML `AVIX` RIFFs after the first are read the
30
+ * same way. No byte moves, so the `idx1` offsets stay valid; `movi` and `idx1` are never touched.
31
+ */
32
+ export declare function stripAvi(content: Buffer): Buffer | null;
33
+ //# sourceMappingURL=video-formats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-formats.d.ts","sourceRoot":"","sources":["../src/video-formats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA6DH;;;;GAIG;AACH,wBAAgB,aAAa,CAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAI,MAAM,GAAG,IAAI,CAmChG;AA+GD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAI,MAAM,GAAG,IAAI,CAgE5F;AAmED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAE,OAAO,EAAE,MAAM,GAAI,MAAM,GAAG,IAAI,CA+BzD"}