file-type
Advanced tools
Comparing version 16.3.0 to 16.4.0
@@ -13,2 +13,3 @@ /// <reference types="node"/> | ||
| 'flif' | ||
| 'xcf' | ||
| 'cr2' | ||
@@ -142,3 +143,4 @@ | 'cr3' | ||
| '3mf' | ||
| 'zst'; | ||
| 'zst' | ||
| 'vcf'; | ||
@@ -151,2 +153,3 @@ type MimeType = | ||
| 'image/flif' | ||
| 'image/x-xcf' | ||
| 'image/x-canon-cr2' | ||
@@ -244,2 +247,3 @@ | 'image/x-canon-cr3' | ||
| 'text/calendar' | ||
| 'text/vcard' | ||
| 'model/gltf-binary' | ||
@@ -246,0 +250,0 @@ | 'application/vnd.tcpdump.pcap' |
101
core.js
@@ -914,9 +914,2 @@ 'use strict'; | ||
if (checkString('BEGIN:')) { | ||
return { | ||
ext: 'ics', | ||
mime: 'text/calendar' | ||
}; | ||
} | ||
if (check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) { | ||
@@ -1055,2 +1048,9 @@ return { | ||
if (checkString('gimp xcf ')) { | ||
return { | ||
ext: 'xcf', | ||
mime: 'image/x-xcf' | ||
}; | ||
} | ||
// -- 12-byte signatures -- | ||
@@ -1211,2 +1211,20 @@ | ||
// -- 15-byte signatures -- | ||
if (checkString('BEGIN:')) { | ||
if (checkString('VCARD', {offset: 6})) { | ||
return { | ||
ext: 'vcf', | ||
mime: 'text/vcard' | ||
}; | ||
} | ||
if (checkString('VCALENDAR', {offset: 6})) { | ||
return { | ||
ext: 'ics', | ||
mime: 'text/calendar' | ||
}; | ||
} | ||
} | ||
// `raf` is here just to keep all the raw image detectors together. | ||
@@ -1347,16 +1365,7 @@ if (checkString('FUJIFILMCCD-RAW')) { | ||
// Check for MPEG header at different starting offsets | ||
for (let start = 0; start < 2 && start < (buffer.length - 16); start++) { | ||
// Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE) | ||
if (buffer.length >= start + 2 && check([0xFF, 0xE0], {offset: start, mask: [0xFF, 0xE0]})) { | ||
if (check([0x10], {offset: start + 1, mask: [0x16]})) { | ||
// Check for (ADTS) MPEG-2 | ||
if (check([0x08], {offset: start + 1, mask: [0x08]})) { | ||
return { | ||
ext: 'aac', | ||
mime: 'audio/aac' | ||
}; | ||
} | ||
// Must be (ADTS) MPEG-4 | ||
// Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE) | ||
if (buffer.length >= 2 && check([0xFF, 0xE0], {offset: 0, mask: [0xFF, 0xE0]})) { | ||
if (check([0x10], {offset: 1, mask: [0x16]})) { | ||
// Check for (ADTS) MPEG-2 | ||
if (check([0x08], {offset: 1, mask: [0x08]})) { | ||
return { | ||
@@ -1368,27 +1377,33 @@ ext: 'aac', | ||
// MPEG 1 or 2 Layer 3 header | ||
// Check for MPEG layer 3 | ||
if (check([0x02], {offset: start + 1, mask: [0x06]})) { | ||
return { | ||
ext: 'mp3', | ||
mime: 'audio/mpeg' | ||
}; | ||
} | ||
// Must be (ADTS) MPEG-4 | ||
return { | ||
ext: 'aac', | ||
mime: 'audio/aac' | ||
}; | ||
} | ||
// Check for MPEG layer 2 | ||
if (check([0x04], {offset: start + 1, mask: [0x06]})) { | ||
return { | ||
ext: 'mp2', | ||
mime: 'audio/mpeg' | ||
}; | ||
} | ||
// MPEG 1 or 2 Layer 3 header | ||
// Check for MPEG layer 3 | ||
if (check([0x02], {offset: 1, mask: [0x06]})) { | ||
return { | ||
ext: 'mp3', | ||
mime: 'audio/mpeg' | ||
}; | ||
} | ||
// Check for MPEG layer 1 | ||
if (check([0x06], {offset: start + 1, mask: [0x06]})) { | ||
return { | ||
ext: 'mp1', | ||
mime: 'audio/mpeg' | ||
}; | ||
} | ||
// Check for MPEG layer 2 | ||
if (check([0x04], {offset: 1, mask: [0x06]})) { | ||
return { | ||
ext: 'mp2', | ||
mime: 'audio/mpeg' | ||
}; | ||
} | ||
// Check for MPEG layer 1 | ||
if (check([0x06], {offset: 1, mask: [0x06]})) { | ||
return { | ||
ext: 'mp1', | ||
mime: 'audio/mpeg' | ||
}; | ||
} | ||
} | ||
@@ -1395,0 +1410,0 @@ } |
{ | ||
"name": "file-type", | ||
"version": "16.3.0", | ||
"version": "16.4.0", | ||
"description": "Detect the file type of a Buffer/Uint8Array/ArrayBuffer", | ||
@@ -57,2 +57,3 @@ "license": "MIT", | ||
"flif", | ||
"xcf", | ||
"cr2", | ||
@@ -186,3 +187,4 @@ "cr3", | ||
"3mf", | ||
"zst" | ||
"zst", | ||
"vcf" | ||
], | ||
@@ -189,0 +191,0 @@ "devDependencies": { |
@@ -281,2 +281,3 @@ # file-type | ||
- [`flif`](https://en.wikipedia.org/wiki/Free_Lossless_Image_Format) - Free Lossless Image Format | ||
- [`xcf`](https://en.wikipedia.org/wiki/XCF_(file_format)) - eXperimental Computing Facility | ||
- [`cr2`](https://fileinfo.com/extension/cr2) - Canon Raw image file (v2) | ||
@@ -377,2 +378,3 @@ - [`cr3`](https://fileinfo.com/extension/cr3) - Canon Raw image file (v3) | ||
- [`ics`](https://en.wikipedia.org/wiki/ICalendar#Data_format) - iCalendar | ||
- [`vcf`](https://en.wikipedia.org/wiki/VCard) - vCard | ||
- [`glb`](https://github.com/KhronosGroup/glTF) - GL Transmission Format | ||
@@ -379,0 +381,0 @@ - [`pcap`](https://wiki.wireshark.org/Development/LibpcapFileFormat) - Libpcap File Format |
@@ -11,2 +11,3 @@ 'use strict'; | ||
'flif', | ||
'xcf', | ||
'cr2', | ||
@@ -140,3 +141,4 @@ 'cr3', | ||
'3mf', | ||
'zst' | ||
'zst', | ||
'vcf' | ||
], | ||
@@ -149,2 +151,3 @@ mimeTypes: [ | ||
'image/flif', | ||
'image/x-xcf', | ||
'image/x-canon-cr2', | ||
@@ -242,2 +245,3 @@ 'image/x-canon-cr3', | ||
'text/calendar', | ||
'text/vcard', | ||
'model/gltf-binary', | ||
@@ -244,0 +248,0 @@ 'application/vnd.tcpdump.pcap', |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
75804
2054
440