file-type 16.0.0 → 16.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/core.d.ts CHANGED
@@ -135,7 +135,10 @@ declare namespace core {
135
135
  | 'lzh'
136
136
  | 'pgp'
137
137
  | 'asar'
138
- | 'stl';
138
+ | 'stl'
139
+ | 'chm'
140
+ | '3mf'
141
+ | 'zst';
139
142
 
140
143
  type MimeType =
141
144
  | 'image/jpeg'
@@ -264,7 +267,10 @@ declare namespace core {
264
267
  | 'application/x-lzh-compressed'
265
268
  | 'application/pgp-encrypted'
266
269
  | 'application/x-asar'
267
- | 'model/stl';
270
+ | 'model/stl'
271
+ | 'application/vnd.ms-htmlhelp'
272
+ | 'model/3mf'
273
+ | 'application/zstd';
268
274
 
269
275
  interface FileTypeResult {
270
276
  /**
@@ -372,4 +378,3 @@ declare namespace core {
372
378
  }
373
379
 
374
380
  export = core;
375
-
package/core.js CHANGED
@@ -55,15 +55,6 @@ function _check(buffer, headers, options) {
55
55
  return true;
56
56
  }
57
57
 
58
- async function _checkSequence(sequence, tokenizer, ignoreBytes) {
59
- const buffer = Buffer.alloc(minimumBytes);
60
- await tokenizer.ignore(ignoreBytes);
61
-
62
- await tokenizer.peekBuffer(buffer, {mayBeLess: true});
63
-
64
- return buffer.includes(Buffer.from(sequence));
65
- }
66
-
67
58
  async function fromTokenizer(tokenizer) {
68
59
  try {
69
60
  return _fromTokenizer(tokenizer);
@@ -79,7 +70,6 @@ async function _fromTokenizer(tokenizer) {
79
70
  const bytesRead = 12;
80
71
  const check = (header, options) => _check(buffer, header, options);
81
72
  const checkString = (header, options) => check(stringToBytes(header), options);
82
- const checkSequence = (sequence, ignoreBytes) => _checkSequence(sequence, tokenizer, ignoreBytes);
83
73
 
84
74
  // Keep reading until EOF if the file size is unknown.
85
75
  if (!tokenizer.fileInfo.size) {
@@ -318,6 +308,13 @@ async function _fromTokenizer(tokenizer) {
318
308
  };
319
309
  }
320
310
 
311
+ if (zipHeader.filename.startsWith('3D/') && zipHeader.filename.endsWith('.model')) {
312
+ return {
313
+ ext: '3mf',
314
+ mime: 'model/3mf'
315
+ };
316
+ }
317
+
321
318
  // The docx, xlsx and pptx file types extend the Office Open XML file format:
322
319
  // https://en.wikipedia.org/wiki/Office_Open_XML_file_formats
323
320
  // We look for:
@@ -589,9 +586,13 @@ async function _fromTokenizer(tokenizer) {
589
586
  }
590
587
 
591
588
  if (checkString('%PDF')) {
589
+ await tokenizer.ignore(1350);
590
+ const maxBufferSize = 10 * 1024 * 1024;
591
+ const buffer = Buffer.alloc(Math.min(maxBufferSize, tokenizer.fileInfo.size));
592
+ await tokenizer.readBuffer(buffer, {mayBeLess: true});
593
+
592
594
  // Check if this is an Adobe Illustrator file
593
- const isAiFile = await checkSequence('Adobe Illustrator', 1350);
594
- if (isAiFile) {
595
+ if (buffer.includes(Buffer.from('AIPrivateData'))) {
595
596
  return {
596
597
  ext: 'ai',
597
598
  mime: 'application/postscript'
@@ -804,6 +805,13 @@ async function _fromTokenizer(tokenizer) {
804
805
  };
805
806
  }
806
807
 
808
+ if (check([0x28, 0xB5, 0x2F, 0xFD])) {
809
+ return {
810
+ ext: 'zst',
811
+ mime: 'application/zstd'
812
+ };
813
+ }
814
+
807
815
  // -- 5-byte signatures --
808
816
 
809
817
  if (check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {
@@ -880,6 +888,13 @@ async function _fromTokenizer(tokenizer) {
880
888
  }
881
889
  }
882
890
 
891
+ if (checkString('ITSF')) {
892
+ return {
893
+ ext: 'chm',
894
+ mime: 'application/vnd.ms-htmlhelp'
895
+ };
896
+ }
897
+
883
898
  // -- 6-byte signatures --
884
899
 
885
900
  if (check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "file-type",
3
- "version": "16.0.0",
3
+ "version": "16.3.0",
4
4
  "description": "Detect the file type of a Buffer/Uint8Array/ArrayBuffer",
5
5
  "license": "MIT",
6
6
  "repository": "sindresorhus/file-type",
@@ -179,7 +179,10 @@
179
179
  "lzh",
180
180
  "pgp",
181
181
  "asar",
182
- "stl"
182
+ "stl",
183
+ "chm",
184
+ "3mf",
185
+ "zst"
183
186
  ],
184
187
  "devDependencies": {
185
188
  "@types/node": "^13.1.4",
@@ -190,7 +193,7 @@
190
193
  "xo": "^0.25.3"
191
194
  },
192
195
  "dependencies": {
193
- "readable-web-to-node-stream": "^2.0.0",
196
+ "readable-web-to-node-stream": "^3.0.0",
194
197
  "strtok3": "^6.0.3",
195
198
  "token-types": "^2.0.0",
196
199
  "typedarray-to-buffer": "^3.1.5"
package/readme.md CHANGED
@@ -1,4 +1,4 @@
1
- # file-type [![Build Status](https://travis-ci.com/sindresorhus/file-type.svg?branch=master)](https://travis-ci.com/github/sindresorhus/file-type)
1
+ # file-type
2
2
 
3
3
  > Detect the file type of a Buffer/Uint8Array/ArrayBuffer
4
4
 
@@ -272,12 +272,12 @@ Returns a set of supported MIME types.
272
272
 
273
273
  ## Supported file types
274
274
 
275
- - [`jpg`](https://en.wikipedia.org/wiki/JPEG)
276
- - [`png`](https://en.wikipedia.org/wiki/Portable_Network_Graphics)
275
+ - [`jpg`](https://en.wikipedia.org/wiki/JPEG) - Joint Photographic Experts Group image
276
+ - [`png`](https://en.wikipedia.org/wiki/Portable_Network_Graphics) - Portable Network Graphics
277
277
  - [`apng`](https://en.wikipedia.org/wiki/APNG) - Animated Portable Network Graphics
278
- - [`gif`](https://en.wikipedia.org/wiki/GIF)
279
- - [`webp`](https://en.wikipedia.org/wiki/WebP)
280
- - [`flif`](https://en.wikipedia.org/wiki/Free_Lossless_Image_Format)
278
+ - [`gif`](https://en.wikipedia.org/wiki/GIF) - Graphics Interchange Format
279
+ - [`webp`](https://en.wikipedia.org/wiki/WebP) - Web Picture format
280
+ - [`flif`](https://en.wikipedia.org/wiki/Free_Lossless_Image_Format) - Free Lossless Image Format
281
281
  - [`cr2`](https://fileinfo.com/extension/cr2) - Canon Raw image file (v2)
282
282
  - [`cr3`](https://fileinfo.com/extension/cr3) - Canon Raw image file (v3)
283
283
  - [`orf`](https://en.wikipedia.org/wiki/ORF_format) - Olympus Raw image file
@@ -286,86 +286,87 @@ Returns a set of supported MIME types.
286
286
  - [`nef`](https://www.nikonusa.com/en/learn-and-explore/a/products-and-innovation/nikon-electronic-format-nef.html) - Nikon Electronic Format image file
287
287
  - [`rw2`](https://en.wikipedia.org/wiki/Raw_image_format) - Panasonic RAW image file
288
288
  - [`raf`](https://en.wikipedia.org/wiki/Raw_image_format) - Fujifilm RAW image file
289
- - [`tif`](https://en.wikipedia.org/wiki/Tagged_Image_File_Format)
290
- - [`bmp`](https://en.wikipedia.org/wiki/BMP_file_format)
291
- - [`icns`](https://en.wikipedia.org/wiki/Apple_Icon_Image_format)
292
- - [`jxr`](https://en.wikipedia.org/wiki/JPEG_XR)
293
- - [`psd`](https://en.wikipedia.org/wiki/Adobe_Photoshop#File_format)
294
- - [`indd`](https://en.wikipedia.org/wiki/Adobe_InDesign#File_format)
295
- - [`zip`](https://en.wikipedia.org/wiki/Zip_(file_format))
296
- - [`tar`](https://en.wikipedia.org/wiki/Tar_(computing)#File_format)
297
- - [`rar`](https://en.wikipedia.org/wiki/RAR_(file_format))
298
- - [`gz`](https://en.wikipedia.org/wiki/Gzip)
299
- - [`bz2`](https://en.wikipedia.org/wiki/Bzip2)
300
- - [`7z`](https://en.wikipedia.org/wiki/7z)
301
- - [`dmg`](https://en.wikipedia.org/wiki/Apple_Disk_Image)
302
- - [`mp4`](https://en.wikipedia.org/wiki/MPEG-4_Part_14#Filename_extensions)
303
- - [`mid`](https://en.wikipedia.org/wiki/MIDI)
304
- - [`mkv`](https://en.wikipedia.org/wiki/Matroska)
305
- - [`webm`](https://en.wikipedia.org/wiki/WebM)
306
- - [`mov`](https://en.wikipedia.org/wiki/QuickTime_File_Format)
307
- - [`avi`](https://en.wikipedia.org/wiki/Audio_Video_Interleave)
308
- - [`mpg`](https://en.wikipedia.org/wiki/MPEG-1)
289
+ - [`tif`](https://en.wikipedia.org/wiki/Tagged_Image_File_Format) - Tagged Image file
290
+ - [`bmp`](https://en.wikipedia.org/wiki/BMP_file_format) - Bitmap image file
291
+ - [`icns`](https://en.wikipedia.org/wiki/Apple_Icon_Image_format) - Apple Icon image
292
+ - [`jxr`](https://en.wikipedia.org/wiki/JPEG_XR) - Joint Photographic Experts Group extended range
293
+ - [`psd`](https://en.wikipedia.org/wiki/Adobe_Photoshop#File_format) - Adobe Photoshop document
294
+ - [`indd`](https://en.wikipedia.org/wiki/Adobe_InDesign#File_format) - Adobe InDesign document
295
+ - [`zip`](https://en.wikipedia.org/wiki/Zip_(file_format)) - Archive file
296
+ - [`tar`](https://en.wikipedia.org/wiki/Tar_(computing)#File_format) - Tarball archive file
297
+ - [`rar`](https://en.wikipedia.org/wiki/RAR_(file_format)) - Archive file
298
+ - [`gz`](https://en.wikipedia.org/wiki/Gzip) - Archive file
299
+ - [`bz2`](https://en.wikipedia.org/wiki/Bzip2) - Archive file
300
+ - [`zst`](https://en.wikipedia.org/wiki/Zstandard) - Archive file
301
+ - [`7z`](https://en.wikipedia.org/wiki/7z) - 7-Zip archive
302
+ - [`dmg`](https://en.wikipedia.org/wiki/Apple_Disk_Image) - Apple Disk Image
303
+ - [`mp4`](https://en.wikipedia.org/wiki/MPEG-4_Part_14#Filename_extensions) - MPEG-4 Part 14 video file
304
+ - [`mid`](https://en.wikipedia.org/wiki/MIDI) - Musical Instrument Digital Interface file
305
+ - [`mkv`](https://en.wikipedia.org/wiki/Matroska) - Matroska video file
306
+ - [`webm`](https://en.wikipedia.org/wiki/WebM) - Web video file
307
+ - [`mov`](https://en.wikipedia.org/wiki/QuickTime_File_Format) - QuickTime video file
308
+ - [`avi`](https://en.wikipedia.org/wiki/Audio_Video_Interleave) - Audio Video Interleave file
309
+ - [`mpg`](https://en.wikipedia.org/wiki/MPEG-1) - MPEG-1 file
309
310
  - [`mp1`](https://en.wikipedia.org/wiki/MPEG-1_Audio_Layer_I) - MPEG-1 Audio Layer I
310
- - [`mp2`](https://en.wikipedia.org/wiki/MPEG-1_Audio_Layer_II)
311
- - [`mp3`](https://en.wikipedia.org/wiki/MP3)
312
- - [`ogg`](https://en.wikipedia.org/wiki/Ogg)
313
- - [`ogv`](https://en.wikipedia.org/wiki/Ogg)
314
- - [`ogm`](https://en.wikipedia.org/wiki/Ogg)
315
- - [`oga`](https://en.wikipedia.org/wiki/Ogg)
316
- - [`spx`](https://en.wikipedia.org/wiki/Ogg)
317
- - [`ogx`](https://en.wikipedia.org/wiki/Ogg)
318
- - [`opus`](https://en.wikipedia.org/wiki/Opus_(audio_format))
319
- - [`flac`](https://en.wikipedia.org/wiki/FLAC)
320
- - [`wav`](https://en.wikipedia.org/wiki/WAV)
321
- - [`qcp`](https://en.wikipedia.org/wiki/QCP)
322
- - [`amr`](https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec)
323
- - [`pdf`](https://en.wikipedia.org/wiki/Portable_Document_Format)
324
- - [`epub`](https://en.wikipedia.org/wiki/EPUB)
311
+ - [`mp2`](https://en.wikipedia.org/wiki/MPEG-1_Audio_Layer_II) - MPEG-1 Audio Layer II
312
+ - [`mp3`](https://en.wikipedia.org/wiki/MP3) - Audio file
313
+ - [`ogg`](https://en.wikipedia.org/wiki/Ogg) - Audio file
314
+ - [`ogv`](https://en.wikipedia.org/wiki/Ogg) - Audio file
315
+ - [`ogm`](https://en.wikipedia.org/wiki/Ogg) - Audio file
316
+ - [`oga`](https://en.wikipedia.org/wiki/Ogg) - Audio file
317
+ - [`spx`](https://en.wikipedia.org/wiki/Ogg) - Audio file
318
+ - [`ogx`](https://en.wikipedia.org/wiki/Ogg) - Audio file
319
+ - [`opus`](https://en.wikipedia.org/wiki/Opus_(audio_format)) - Audio file
320
+ - [`flac`](https://en.wikipedia.org/wiki/FLAC) - Free Lossless Audio Codec
321
+ - [`wav`](https://en.wikipedia.org/wiki/WAV) - Waveform Audio file
322
+ - [`qcp`](https://en.wikipedia.org/wiki/QCP) - Tagged and chunked data
323
+ - [`amr`](https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec) - Adaptive Multi-Rate audio codec
324
+ - [`pdf`](https://en.wikipedia.org/wiki/Portable_Document_Format) - Portable Document Format
325
+ - [`epub`](https://en.wikipedia.org/wiki/EPUB) - E-book file
325
326
  - [`mobi`](https://en.wikipedia.org/wiki/Mobipocket) - Mobipocket
326
- - [`exe`](https://en.wikipedia.org/wiki/.exe)
327
- - [`swf`](https://en.wikipedia.org/wiki/SWF)
328
- - [`rtf`](https://en.wikipedia.org/wiki/Rich_Text_Format)
329
- - [`woff`](https://en.wikipedia.org/wiki/Web_Open_Font_Format)
330
- - [`woff2`](https://en.wikipedia.org/wiki/Web_Open_Font_Format)
331
- - [`eot`](https://en.wikipedia.org/wiki/Embedded_OpenType)
332
- - [`ttf`](https://en.wikipedia.org/wiki/TrueType)
333
- - [`otf`](https://en.wikipedia.org/wiki/OpenType)
334
- - [`ico`](https://en.wikipedia.org/wiki/ICO_(file_format))
335
- - [`flv`](https://en.wikipedia.org/wiki/Flash_Video)
336
- - [`ps`](https://en.wikipedia.org/wiki/Postscript)
337
- - [`xz`](https://en.wikipedia.org/wiki/Xz)
338
- - [`sqlite`](https://www.sqlite.org/fileformat2.html)
339
- - [`nes`](https://fileinfo.com/extension/nes)
340
- - [`crx`](https://developer.chrome.com/extensions/crx)
341
- - [`xpi`](https://en.wikipedia.org/wiki/XPInstall)
342
- - [`cab`](https://en.wikipedia.org/wiki/Cabinet_(file_format))
343
- - [`deb`](https://en.wikipedia.org/wiki/Deb_(file_format))
344
- - [`ar`](https://en.wikipedia.org/wiki/Ar_(Unix))
345
- - [`rpm`](https://fileinfo.com/extension/rpm)
346
- - [`Z`](https://fileinfo.com/extension/z)
347
- - [`lz`](https://en.wikipedia.org/wiki/Lzip)
348
- - [`cfb`](https://en.wikipedia.org/wiki/Compound_File_Binary_Format)
349
- - [`mxf`](https://en.wikipedia.org/wiki/Material_Exchange_Format)
350
- - [`mts`](https://en.wikipedia.org/wiki/.m2ts)
351
- - [`wasm`](https://en.wikipedia.org/wiki/WebAssembly)
352
- - [`blend`](https://wiki.blender.org/index.php/Dev:Source/Architecture/File_Format)
353
- - [`bpg`](https://bellard.org/bpg/)
354
- - [`docx`](https://en.wikipedia.org/wiki/Office_Open_XML)
355
- - [`pptx`](https://en.wikipedia.org/wiki/Office_Open_XML)
356
- - [`xlsx`](https://en.wikipedia.org/wiki/Office_Open_XML)
327
+ - [`exe`](https://en.wikipedia.org/wiki/.exe) - Executable file
328
+ - [`swf`](https://en.wikipedia.org/wiki/SWF) - Adobe Flash Player file
329
+ - [`rtf`](https://en.wikipedia.org/wiki/Rich_Text_Format) - Rich Text Format
330
+ - [`woff`](https://en.wikipedia.org/wiki/Web_Open_Font_Format) - Web Open Font Format
331
+ - [`woff2`](https://en.wikipedia.org/wiki/Web_Open_Font_Format) - Web Open Font Format
332
+ - [`eot`](https://en.wikipedia.org/wiki/Embedded_OpenType) - Embedded OpenType font
333
+ - [`ttf`](https://en.wikipedia.org/wiki/TrueType) - TrueType font
334
+ - [`otf`](https://en.wikipedia.org/wiki/OpenType) - OpenType font
335
+ - [`ico`](https://en.wikipedia.org/wiki/ICO_(file_format)) - Windows icon file
336
+ - [`flv`](https://en.wikipedia.org/wiki/Flash_Video) - Flash video
337
+ - [`ps`](https://en.wikipedia.org/wiki/Postscript) - Postscript
338
+ - [`xz`](https://en.wikipedia.org/wiki/Xz) - Compressed file
339
+ - [`sqlite`](https://www.sqlite.org/fileformat2.html) - SQLite file
340
+ - [`nes`](https://fileinfo.com/extension/nes) - Nintendo NES ROM
341
+ - [`crx`](https://developer.chrome.com/extensions/crx) - Google Chrome extension
342
+ - [`xpi`](https://en.wikipedia.org/wiki/XPInstall) - XPInstall file
343
+ - [`cab`](https://en.wikipedia.org/wiki/Cabinet_(file_format)) - Cabinet file
344
+ - [`deb`](https://en.wikipedia.org/wiki/Deb_(file_format)) - Debian package
345
+ - [`ar`](https://en.wikipedia.org/wiki/Ar_(Unix)) - Archive file
346
+ - [`rpm`](https://fileinfo.com/extension/rpm) - Red Hat Package Manager file
347
+ - [`Z`](https://fileinfo.com/extension/z) - Unix Compressed File
348
+ - [`lz`](https://en.wikipedia.org/wiki/Lzip) - Arhive file
349
+ - [`cfb`](https://en.wikipedia.org/wiki/Compound_File_Binary_Format) - Compount File Binary Format
350
+ - [`mxf`](https://en.wikipedia.org/wiki/Material_Exchange_Format) - Material Exchange Format
351
+ - [`mts`](https://en.wikipedia.org/wiki/.m2ts) - Blu-ray Disc Audio-Video MPEG-2 Transport Stream
352
+ - [`wasm`](https://en.wikipedia.org/wiki/WebAssembly) - WebAssembly intermediate compiled format
353
+ - [`blend`](https://wiki.blender.org/index.php/Dev:Source/Architecture/File_Format) - Blender project
354
+ - [`bpg`](https://bellard.org/bpg/) - Better Portable Graphics file
355
+ - [`docx`](https://en.wikipedia.org/wiki/Office_Open_XML) - Microsoft Word
356
+ - [`pptx`](https://en.wikipedia.org/wiki/Office_Open_XML) - Microsoft Powerpoint
357
+ - [`xlsx`](https://en.wikipedia.org/wiki/Office_Open_XML) - Microsoft Excel
357
358
  - [`jp2`](https://en.wikipedia.org/wiki/JPEG_2000) - JPEG 2000
358
359
  - [`jpm`](https://en.wikipedia.org/wiki/JPEG_2000) - JPEG 2000
359
360
  - [`jpx`](https://en.wikipedia.org/wiki/JPEG_2000) - JPEG 2000
360
361
  - [`mj2`](https://en.wikipedia.org/wiki/Motion_JPEG_2000) - Motion JPEG 2000
361
- - [`aif`](https://en.wikipedia.org/wiki/Audio_Interchange_File_Format)
362
+ - [`aif`](https://en.wikipedia.org/wiki/Audio_Interchange_File_Format) - Audio Interchange file
362
363
  - [`odt`](https://en.wikipedia.org/wiki/OpenDocument) - OpenDocument for word processing
363
364
  - [`ods`](https://en.wikipedia.org/wiki/OpenDocument) - OpenDocument for spreadsheets
364
365
  - [`odp`](https://en.wikipedia.org/wiki/OpenDocument) - OpenDocument for presentations
365
- - [`xml`](https://en.wikipedia.org/wiki/XML)
366
- - [`heic`](https://nokiatech.github.io/heif/technical.html)
367
- - [`cur`](https://en.wikipedia.org/wiki/ICO_(file_format))
368
- - [`ktx`](https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/)
366
+ - [`xml`](https://en.wikipedia.org/wiki/XML) - eXtensible Markup Language
367
+ - [`heic`](https://nokiatech.github.io/heif/technical.html) - High Efficiency Image File Format
368
+ - [`cur`](https://en.wikipedia.org/wiki/ICO_(file_format)) - Icon file
369
+ - [`ktx`](https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/) - OpenGL and OpenGL ES textures
369
370
  - [`ape`](https://en.wikipedia.org/wiki/Monkey%27s_Audio) - Monkey's Audio
370
371
  - [`wv`](https://en.wikipedia.org/wiki/WavPack) - WavPack
371
372
  - [`asf`](https://en.wikipedia.org/wiki/Advanced_Systems_Format) - Advanced Systems Format
@@ -404,13 +405,15 @@ Returns a set of supported MIME types.
404
405
  - [`pgp`](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) - Pretty Good Privacy
405
406
  - [`asar`](https://github.com/electron/asar#format) - Archive format primarily used to enclose Electron applications
406
407
  - [`stl`](https://en.wikipedia.org/wiki/STL_(file_format)) - Standard Tesselated Geometry File Format (ASCII only)
408
+ - [`chm`](https://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help) - Microsoft Compiled HTML Help
409
+ - [`3mf`](https://en.wikipedia.org/wiki/3D_Manufacturing_Format) - 3D Manufacturing Format
407
410
 
408
411
  *Pull requests are welcome for additional commonly used file types.*
409
412
 
410
413
  The following file types will not be accepted:
411
414
  - [MS-CFB: Microsoft Compound File Binary File Format based formats](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cfb/53989ce4-7b05-4f8d-829b-d08d6148375b), too old and difficult to parse:
412
- - `.doc` - Microsoft Word 97-2003 Document
413
- - `.xls` - Microsoft Excel 97-2003 Document
415
+ - `.doc` - Microsoft Word 97-2003 Document
416
+ - `.xls` - Microsoft Excel 97-2003 Document
414
417
  - `.ppt` - Microsoft PowerPoint97-2003 Document
415
418
  - `.msi` - Microsoft Windows Installer
416
419
  - `.csv` - [Reason.](https://github.com/sindresorhus/file-type/issues/264#issuecomment-568439196)
package/supported.js CHANGED
@@ -133,7 +133,10 @@ module.exports = {
133
133
  'lzh',
134
134
  'pgp',
135
135
  'asar',
136
- 'stl'
136
+ 'stl',
137
+ 'chm',
138
+ '3mf',
139
+ 'zst'
137
140
  ],
138
141
  mimeTypes: [
139
142
  'image/jpeg',
@@ -262,6 +265,9 @@ module.exports = {
262
265
  'application/x-lzh-compressed',
263
266
  'application/pgp-encrypted',
264
267
  'application/x-asar',
265
- 'model/stl'
268
+ 'model/stl',
269
+ 'application/vnd.ms-htmlhelp',
270
+ 'model/3mf',
271
+ 'application/zstd'
266
272
  ]
267
273
  };