/********************************************************************
 * @author:      Kaven
 * @email:       kaven@wuwenkai.com
 * @website:     http://kavenblog.com
 * @file:        [basic] /src/libs/MIME.ts
 * @create:      2018-10-26 09:00:10.241
 * @modify:      2018-10-26 10:25:17.391
 * @version:     1.1.14
 * @times:       8
 * @lines:       703
 * @copyright:   Copyright © 2018 Kaven. All Rights Reserved.
 * @description: [description]
 * @license:
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 ********************************************************************/
/**
 * Incomplete list of MIME types
 * @version 1.1.14
 * @since 2018-10-26
 * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types
 */
export class MIME {
    static get All() {
        return Object.keys(MIME)
            .filter(p => p.startsWith("MIME_"))
            .map(p => MIME[p]);
    }
}
/**
 * Kind of document
 */
MIME.MIME_EXTENSION = {
    Extension: "Extension",
    KindOfDocument: "Kind of document",
    Type: "MIME Type",
};
/**
 * AAC audio
 */
MIME.MIME_AAC = {
    Extension: ".aac",
    KindOfDocument: "AAC audio",
    Type: "audio/aac",
};
/**
 * AbiWord document
 */
MIME.MIME_ABW = {
    Extension: ".abw",
    KindOfDocument: "AbiWord document",
    Type: "application/x-abiword",
};
/**
 * Archive document (multiple files embedded)
 */
MIME.MIME_ARC = {
    Extension: ".arc",
    KindOfDocument: "Archive document (multiple files embedded)",
    Type: "application/octet-stream",
};
/**
 * AVI: Audio Video Interleave
 */
MIME.MIME_AVI = {
    Extension: ".avi",
    KindOfDocument: "AVI: Audio Video Interleave",
    Type: "video/x-msvideo",
};
/**
 * Amazon Kindle eBook format
 */
MIME.MIME_AZW = {
    Extension: ".azw",
    KindOfDocument: "Amazon Kindle eBook format",
    Type: "application/vnd.amazon.ebook",
};
/**
 * Any kind of binary data
 */
MIME.MIME_BIN = {
    Extension: ".bin",
    KindOfDocument: "Any kind of binary data",
    Type: "application/octet-stream",
};
/**
 * Windows OS/2 Bitmap Graphics
 */
MIME.MIME_BMP = {
    Extension: ".bmp",
    KindOfDocument: "Windows OS/2 Bitmap Graphics",
    Type: "image/bmp",
};
/**
 * BZip archive
 */
MIME.MIME_BZ = {
    Extension: ".bz",
    KindOfDocument: "BZip archive",
    Type: "application/x-bzip",
};
/**
 * BZip2 archive
 */
MIME.MIME_BZ2 = {
    Extension: ".bz2",
    KindOfDocument: "BZip2 archive",
    Type: "application/x-bzip2",
};
/**
 * C-Shell script
 */
MIME.MIME_CSH = {
    Extension: ".csh",
    KindOfDocument: "C-Shell script",
    Type: "application/x-csh",
};
/**
 * Cascading Style Sheets (CSS)
 */
MIME.MIME_CSS = {
    Extension: ".css",
    KindOfDocument: "Cascading Style Sheets (CSS)",
    Type: "text/css",
};
/**
 * Comma-separated values (CSV)
 */
MIME.MIME_CSV = {
    Extension: ".csv",
    KindOfDocument: "Comma-separated values (CSV)",
    Type: "text/csv",
};
/**
 * Microsoft Word
 */
MIME.MIME_DOC = {
    Extension: ".doc",
    KindOfDocument: "Microsoft Word",
    Type: "application/msword",
};
/**
 * Microsoft Word (OpenXML)
 */
MIME.MIME_DOCX = {
    Extension: ".docx",
    KindOfDocument: "Microsoft Word (OpenXML)",
    Type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
};
/**
 * MS Embedded OpenType fonts
 */
MIME.MIME_EOT = {
    Extension: ".eot",
    KindOfDocument: "MS Embedded OpenType fonts",
    Type: "application/vnd.ms-fontobject",
};
/**
 * Electronic publication (EPUB)
 */
MIME.MIME_EPUB = {
    Extension: ".epub",
    KindOfDocument: "Electronic publication (EPUB)",
    Type: "application/epub+zip",
};
/**
 * ECMAScript (IANA Specification) (RFC 4329 Section 8.2)
 */
MIME.MIME_ES = {
    Extension: ".es",
    KindOfDocument: "ECMAScript (IANA Specification) (RFC 4329 Section 8.2)",
    Type: "application/ecmascript",
};
/**
 * Graphics Interchange Format (GIF)
 */
MIME.MIME_GIF = {
    Extension: ".gif",
    KindOfDocument: "Graphics Interchange Format (GIF)",
    Type: "image/gif",
};
/**
 * HyperText Markup Language (HTML)
 */
MIME.MIME_HTM = {
    Extension: ".htm",
    KindOfDocument: "HyperText Markup Language (HTML)",
    Type: "text/html",
};
/**
 * HyperText Markup Language (HTML)
 */
MIME.MIME_HTML = {
    Extension: ".html",
    KindOfDocument: "HyperText Markup Language (HTML)",
    Type: "text/html",
};
/**
 * Icon format
 */
MIME.MIME_ICO = {
    Extension: ".ico",
    KindOfDocument: "Icon format",
    Type: "image/x-icon",
};
/**
 * iCalendar format
 */
MIME.MIME_ICS = {
    Extension: ".ics",
    KindOfDocument: "iCalendar format",
    Type: "text/calendar",
};
/**
 * Java Archive (JAR)
 */
MIME.MIME_JAR = {
    Extension: ".jar",
    KindOfDocument: "Java Archive (JAR)",
    Type: "application/java-archive",
};
/**
 * JPEG images
 */
MIME.MIME_JPEG = {
    Extension: ".jpeg",
    KindOfDocument: "JPEG images",
    Type: "image/jpeg",
};
/**
 * JPEG images
 */
MIME.MIME_JPG = {
    Extension: ".jpg",
    KindOfDocument: "JPEG images",
    Type: "image/jpeg",
};
/**
 * JavaScript (IANA Specification) (RFC 4329 Section 8.2)
 */
MIME.MIME_JS = {
    Extension: ".js",
    KindOfDocument: "JavaScript (IANA Specification) (RFC 4329 Section 8.2)",
    Type: "application/javascript",
};
/**
 * JSON format
 */
MIME.MIME_JSON = {
    Extension: ".json",
    KindOfDocument: "JSON format",
    Type: "application/json",
};
/**
 * Musical Instrument Digital Interface (MIDI)
 */
MIME.MIME_MID = {
    Extension: ".mid",
    KindOfDocument: "Musical Instrument Digital Interface (MIDI)",
    Type: "audio/midi audio/x-midi",
};
/**
 * Musical Instrument Digital Interface (MIDI)
 */
MIME.MIME_MIDI = {
    Extension: ".midi",
    KindOfDocument: "Musical Instrument Digital Interface (MIDI)",
    Type: "audio/midi audio/x-midi",
};
/**
 * MPEG Video
 */
MIME.MIME_MPEG = {
    Extension: ".mpeg",
    KindOfDocument: "MPEG Video",
    Type: "video/mpeg",
};
/**
 * Apple Installer Package
 */
MIME.MIME_MPKG = {
    Extension: ".mpkg",
    KindOfDocument: "Apple Installer Package",
    Type: "application/vnd.apple.installer+xml",
};
/**
 * OpenDocument presentation document
 */
MIME.MIME_ODP = {
    Extension: ".odp",
    KindOfDocument: "OpenDocument presentation document",
    Type: "application/vnd.oasis.opendocument.presentation",
};
/**
 * OpenDocument spreadsheet document
 */
MIME.MIME_ODS = {
    Extension: ".ods",
    KindOfDocument: "OpenDocument spreadsheet document",
    Type: "application/vnd.oasis.opendocument.spreadsheet",
};
/**
 * OpenDocument text document
 */
MIME.MIME_ODT = {
    Extension: ".odt",
    KindOfDocument: "OpenDocument text document",
    Type: "application/vnd.oasis.opendocument.text",
};
/**
 * OGG audio
 */
MIME.MIME_OGA = {
    Extension: ".oga",
    KindOfDocument: "OGG audio",
    Type: "audio/ogg",
};
/**
 * OGG video
 */
MIME.MIME_OGV = {
    Extension: ".ogv",
    KindOfDocument: "OGG video",
    Type: "video/ogg",
};
/**
 * OGG
 */
MIME.MIME_OGX = {
    Extension: ".ogx",
    KindOfDocument: "OGG",
    Type: "application/ogg",
};
/**
 * OpenType font
 */
MIME.MIME_OTF = {
    Extension: ".otf",
    KindOfDocument: "OpenType font",
    Type: "font/otf",
};
/**
 * Portable Network Graphics
 */
MIME.MIME_PNG = {
    Extension: ".png",
    KindOfDocument: "Portable Network Graphics",
    Type: "image/png",
};
/**
 * Adobe Portable Document Format (PDF)
 */
MIME.MIME_PDF = {
    Extension: ".pdf",
    KindOfDocument: "Adobe Portable Document Format (PDF)",
    Type: "application/pdf",
};
/**
 * Microsoft PowerPoint
 */
MIME.MIME_PPT = {
    Extension: ".ppt",
    KindOfDocument: "Microsoft PowerPoint",
    Type: "application/vnd.ms-powerpoint",
};
/**
 * Microsoft PowerPoint (OpenXML)
 */
MIME.MIME_PPTX = {
    Extension: ".pptx",
    KindOfDocument: "Microsoft PowerPoint (OpenXML)",
    Type: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
};
/**
 * RAR archive
 */
MIME.MIME_RAR = {
    Extension: ".rar",
    KindOfDocument: "RAR archive",
    Type: "application/x-rar-compressed",
};
/**
 * Rich Text Format (RTF)
 */
MIME.MIME_RTF = {
    Extension: ".rtf",
    KindOfDocument: "Rich Text Format (RTF)",
    Type: "application/rtf",
};
/**
 * Bourne shell script
 */
MIME.MIME_SH = {
    Extension: ".sh",
    KindOfDocument: "Bourne shell script",
    Type: "application/x-sh",
};
/**
 * Scalable Vector Graphics (SVG)
 */
MIME.MIME_SVG = {
    Extension: ".svg",
    KindOfDocument: "Scalable Vector Graphics (SVG)",
    Type: "image/svg+xml",
};
/**
 * Small web format (SWF) or Adobe Flash document
 */
MIME.MIME_SWF = {
    Extension: ".swf",
    KindOfDocument: "Small web format (SWF) or Adobe Flash document",
    Type: "application/x-shockwave-flash",
};
/**
 * Tape Archive (TAR)
 */
MIME.MIME_TAR = {
    Extension: ".tar",
    KindOfDocument: "Tape Archive (TAR)",
    Type: "application/x-tar",
};
/**
 * Tagged Image File Format (TIFF)
 */
MIME.MIME_TIF = {
    Extension: ".tif",
    KindOfDocument: "Tagged Image File Format (TIFF)",
    Type: "image/tiff",
};
/**
 * Tagged Image File Format (TIFF)
 */
MIME.MIME_TIFF = {
    Extension: ".tiff",
    KindOfDocument: "Tagged Image File Format (TIFF)",
    Type: "image/tiff",
};
/**
 * Typescript file
 */
MIME.MIME_TS = {
    Extension: ".ts",
    KindOfDocument: "Typescript file",
    Type: "application/typescript",
};
/**
 * TrueType Font
 */
MIME.MIME_TTF = {
    Extension: ".ttf",
    KindOfDocument: "TrueType Font",
    Type: "font/ttf",
};
/**
 * Text
 */
MIME.MIME_TXT = {
    Extension: ".txt",
    KindOfDocument: "Text",
    Type: " (generally ASCII or ISO 8859-n)",
};
/**
 * Microsoft Visio
 */
MIME.MIME_VSD = {
    Extension: ".vsd",
    KindOfDocument: "Microsoft Visio",
    Type: "application/vnd.visio",
};
/**
 * Waveform Audio Format
 */
MIME.MIME_WAV = {
    Extension: ".wav",
    KindOfDocument: "Waveform Audio Format",
    Type: "audio/wav",
};
/**
 * WEBM audio
 */
MIME.MIME_WEBA = {
    Extension: ".weba",
    KindOfDocument: "WEBM audio",
    Type: "audio/webm",
};
/**
 * WEBM video
 */
MIME.MIME_WEBM = {
    Extension: ".webm",
    KindOfDocument: "WEBM video",
    Type: "video/webm",
};
/**
 * WEBP image
 */
MIME.MIME_WEBP = {
    Extension: ".webp",
    KindOfDocument: "WEBP image",
    Type: "image/webp",
};
/**
 * Web Open Font Format (WOFF)
 */
MIME.MIME_WOFF = {
    Extension: ".woff",
    KindOfDocument: "Web Open Font Format (WOFF)",
    Type: "font/woff",
};
/**
 * Web Open Font Format (WOFF)
 */
MIME.MIME_WOFF2 = {
    Extension: ".woff2",
    KindOfDocument: "Web Open Font Format (WOFF)",
    Type: "font/woff2",
};
/**
 * XHTML
 */
MIME.MIME_XHTML = {
    Extension: ".xhtml",
    KindOfDocument: "XHTML",
    Type: "application/xhtml+xml",
};
/**
 * Microsoft Excel
 */
MIME.MIME_XLS = {
    Extension: ".xls",
    KindOfDocument: "Microsoft Excel",
    Type: "application/vnd.ms-excel",
};
/**
 * Microsoft Excel (OpenXML)
 */
MIME.MIME_XLSX = {
    Extension: ".xlsx",
    KindOfDocument: "Microsoft Excel (OpenXML)",
    Type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
};
/**
 * XML
 */
MIME.MIME_XML = {
    Extension: ".xml",
    KindOfDocument: "XML",
    Type: "application/xml",
};
/**
 * XUL
 */
MIME.MIME_XUL = {
    Extension: ".xul",
    KindOfDocument: "XUL",
    Type: "application/vnd.mozilla.xul+xml",
};
/**
 * ZIP archive
 */
MIME.MIME_ZIP = {
    Extension: ".zip",
    KindOfDocument: "ZIP archive",
    Type: "application/zip",
};
/**
 * 3GPP audio container
 */
MIME.MIME_3GP_AUDIO = {
    Extension: ".3gp",
    KindOfDocument: "3GPP audio container",
    Type: "audio/3gpp",
};
/**
 * 3GPP video container
 */
MIME.MIME_3GP_VIDEO = {
    Extension: ".3gp",
    KindOfDocument: "3GPP video container",
    Type: "video/3gpp",
};
/**
 * 3GPP2 audio container
 */
MIME.MIME_3G2_AUDIO = {
    Extension: ".3g2",
    KindOfDocument: "3GPP audio container",
    Type: "audio/3gpp2",
};
/**
 * 3GPP2 video container
 */
MIME.MIME_3G2_VIDEO = {
    Extension: ".3g2",
    KindOfDocument: "3GPP video container",
    Type: "video/3gpp2",
};
/**
 * 7-zip archive
 */
MIME.MIME_7Z = {
    Extension: ".7z",
    KindOfDocument: "7-zip archive",
    Type: "application/x-7z-compressed",
};
//# sourceMappingURL=MIME.js.map