@pawover/kit 0.3.0 → 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.
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@ function useLatest(value) {
|
|
|
11
11
|
return ref;
|
|
12
12
|
}
|
|
13
13
|
//#endregion
|
|
14
|
-
//#region ../utils/dist/stringUtil-
|
|
14
|
+
//#region ../utils/dist/stringUtil-voQaLOJj.js
|
|
15
15
|
/**
|
|
16
16
|
* 类型工具类
|
|
17
17
|
*/
|
|
@@ -732,12 +732,13 @@ var TypeUtil = class {
|
|
|
732
732
|
* 字符串工具类
|
|
733
733
|
*/
|
|
734
734
|
var StringUtil = class {
|
|
735
|
-
static cast(candidate, checkEmpty = true) {
|
|
735
|
+
static cast(candidate, checkEmpty = true, trim = true) {
|
|
736
736
|
if (checkEmpty) {
|
|
737
737
|
if (candidate === null || candidate === void 0) return "";
|
|
738
738
|
if (typeof candidate === "string" && candidate.trim().length === 0) return "";
|
|
739
739
|
}
|
|
740
|
-
|
|
740
|
+
const result = String(candidate);
|
|
741
|
+
return trim ? result.trim() : result;
|
|
741
742
|
}
|
|
742
743
|
/**
|
|
743
744
|
* 从字符串中提取数字字符串
|
|
@@ -1538,6 +1539,395 @@ var EnvUtil = class {
|
|
|
1538
1539
|
}
|
|
1539
1540
|
};
|
|
1540
1541
|
/**
|
|
1542
|
+
* MIME 工具类
|
|
1543
|
+
*/
|
|
1544
|
+
var MimeUtil = class {
|
|
1545
|
+
/**
|
|
1546
|
+
* 文件类型 MIME 常量
|
|
1547
|
+
* - 每个类型对应具体的文件扩展名
|
|
1548
|
+
*/
|
|
1549
|
+
static FILE_MIME = {
|
|
1550
|
+
/** 普通文本文件(.txt) */
|
|
1551
|
+
TEXT: "text/plain",
|
|
1552
|
+
/** 超文本标记语言文档(.html/.htm) */
|
|
1553
|
+
HTML: "text/html",
|
|
1554
|
+
/** 层叠样式表文件(.css) */
|
|
1555
|
+
CSS: "text/css",
|
|
1556
|
+
/** 逗号分隔值文件/表格数据(.csv) */
|
|
1557
|
+
CSV: "text/csv",
|
|
1558
|
+
/** 制表符分隔值文件(.tsv) */
|
|
1559
|
+
TSV: "text/tab-separated-values",
|
|
1560
|
+
/** XML 文档(.xml) */
|
|
1561
|
+
XML: "application/xml",
|
|
1562
|
+
/** XML 文档/兼容值 */
|
|
1563
|
+
XML_LEGACY: "text/xml",
|
|
1564
|
+
/** XHTML 文档(.xhtml/.xht) */
|
|
1565
|
+
XHTML: "application/xhtml+xml",
|
|
1566
|
+
/** JavaScript 文件(.js) */
|
|
1567
|
+
JS: "text/javascript",
|
|
1568
|
+
/** TypeScript 文件(.ts) */
|
|
1569
|
+
TS: "text/typescript",
|
|
1570
|
+
/** Python 文件(.py) */
|
|
1571
|
+
PY: "text/x-python",
|
|
1572
|
+
/** Shell 脚本 (.sh) */
|
|
1573
|
+
SH: "text/x-sh",
|
|
1574
|
+
/** C 语言源文件(.c) */
|
|
1575
|
+
C: "text/x-c",
|
|
1576
|
+
/** C++ 源文件(.cpp/.cc/.cxx) */
|
|
1577
|
+
CPP: "text/x-c++",
|
|
1578
|
+
/** C# 源文件(.cs) */
|
|
1579
|
+
CSHARP: "text/x-csharp",
|
|
1580
|
+
/** Java 源文件(.java) */
|
|
1581
|
+
JAVA: "text/x-java",
|
|
1582
|
+
/** Go 源文件(.go) */
|
|
1583
|
+
GO: "text/x-go",
|
|
1584
|
+
/** Rust 源文件(.rs) */
|
|
1585
|
+
RUST: "text/x-rust",
|
|
1586
|
+
/** PHP 文件(.php) */
|
|
1587
|
+
PHP: "text/x-php",
|
|
1588
|
+
/** Ruby 文件(.rb) */
|
|
1589
|
+
RUBY: "text/x-ruby",
|
|
1590
|
+
/** Swift 源文件(.swift) */
|
|
1591
|
+
SWIFT: "text/x-swift",
|
|
1592
|
+
/** YAML 文档(.yaml/.yml) */
|
|
1593
|
+
YAML: "application/yaml",
|
|
1594
|
+
/** YAML 文档/兼容值 */
|
|
1595
|
+
YAML_LEGACY: "text/vnd.yaml",
|
|
1596
|
+
/** TOML 文档(.toml) */
|
|
1597
|
+
TOML: "application/toml",
|
|
1598
|
+
/** TOML 文档/兼容值 */
|
|
1599
|
+
TOML_LEGACY: "text/x-toml",
|
|
1600
|
+
/** SQL 脚本(.sql) */
|
|
1601
|
+
SQL: "application/sql",
|
|
1602
|
+
/** SQL 脚本/兼容值 */
|
|
1603
|
+
SQL_LEGACY: "text/x-sql",
|
|
1604
|
+
/** Markdown 格式文档(.md/.markdown) */
|
|
1605
|
+
MARKDOWN: "text/markdown",
|
|
1606
|
+
/** 富文本格式文档(.rtf) */
|
|
1607
|
+
RTF: "application/rtf",
|
|
1608
|
+
/** iCalendar 日历格式(.ics) */
|
|
1609
|
+
CALENDAR: "text/calendar",
|
|
1610
|
+
/** JPEG 图像(.jpg/.jpeg) */
|
|
1611
|
+
JPEG: "image/jpeg",
|
|
1612
|
+
/** JPG 图像(JPEG 别名,.jpg) */
|
|
1613
|
+
JPG: "image/jpeg",
|
|
1614
|
+
/** PNG 图像/无损压缩,支持透明(.png) */
|
|
1615
|
+
PNG: "image/png",
|
|
1616
|
+
/** GIF 图像/支持动画(.gif) */
|
|
1617
|
+
GIF: "image/gif",
|
|
1618
|
+
/** Windows 位图(.bmp) */
|
|
1619
|
+
BMP: "image/bmp",
|
|
1620
|
+
/** SVG 向量图形(.svg) */
|
|
1621
|
+
SVG: "image/svg+xml",
|
|
1622
|
+
/** APNG 动态图像(.apng) */
|
|
1623
|
+
APNG: "image/apng",
|
|
1624
|
+
/** AVIF 图像/高效压缩(.avif) */
|
|
1625
|
+
AVIF: "image/avif",
|
|
1626
|
+
/** 图标文件格式(.ico) */
|
|
1627
|
+
ICO: "image/vnd.microsoft.icon",
|
|
1628
|
+
/** 图标文件格式/兼容值(.ico) */
|
|
1629
|
+
ICO_LEGACY: "image/x-icon",
|
|
1630
|
+
/** WebP 图像/高效压缩(.webp) */
|
|
1631
|
+
WEBP: "image/webp",
|
|
1632
|
+
/** TIFF 图像(.tif/.tiff) */
|
|
1633
|
+
TIFF: "image/tiff",
|
|
1634
|
+
/** HEIC 图像/高效编码(.heic) */
|
|
1635
|
+
HEIC: "image/heic",
|
|
1636
|
+
/** HEIF 图像/高效编码(.heif) */
|
|
1637
|
+
HEIF: "image/heif",
|
|
1638
|
+
/** Adobe Photoshop 文件(.psd) */
|
|
1639
|
+
PSD: "image/vnd.adobe.photoshop",
|
|
1640
|
+
/** MP3 音频(.mp3) */
|
|
1641
|
+
MP3: "audio/mpeg",
|
|
1642
|
+
/** AAC 音频(.aac) */
|
|
1643
|
+
AAC: "audio/aac",
|
|
1644
|
+
/** MIDI 音乐文件(.mid/.midi) */
|
|
1645
|
+
MIDI: "audio/midi",
|
|
1646
|
+
/** OGG 音频(.oga) */
|
|
1647
|
+
OGG_AUDIO: "audio/ogg",
|
|
1648
|
+
/** Opus 音频(.opus) */
|
|
1649
|
+
OPUS: "audio/opus",
|
|
1650
|
+
/** FLAC 无损音频(.flac) */
|
|
1651
|
+
FLAC: "audio/flac",
|
|
1652
|
+
/** WAV 音频(.wav) */
|
|
1653
|
+
WAV: "audio/wav",
|
|
1654
|
+
/** WebM 音频(.weba) */
|
|
1655
|
+
WEBM_AUDIO: "audio/webm",
|
|
1656
|
+
/** RealAudio 音频(.ra/.ram) */
|
|
1657
|
+
REAL_AUDIO: "audio/x-pn-realaudio",
|
|
1658
|
+
/** MP4 视频(.mp4) */
|
|
1659
|
+
MP4: "video/mp4",
|
|
1660
|
+
/** MPEG 视频(.mpeg/.mpg) */
|
|
1661
|
+
MPEG: "video/mpeg",
|
|
1662
|
+
/** OGG 视频(.ogv) */
|
|
1663
|
+
OGG_VIDEO: "video/ogg",
|
|
1664
|
+
/** AVI 视频(.avi) */
|
|
1665
|
+
AVI: "video/x-msvideo",
|
|
1666
|
+
/** 3GPP 视频(.3gp) */
|
|
1667
|
+
THREE_GPP: "video/3gpp",
|
|
1668
|
+
/** 3GPP2 视频(.3g2) */
|
|
1669
|
+
THREE_GPP2: "video/3gpp2",
|
|
1670
|
+
/** WebM 视频(.webm) */
|
|
1671
|
+
WEBM: "video/webm",
|
|
1672
|
+
/** Matroska 视频(.mkv) */
|
|
1673
|
+
MKV: "video/x-matroska",
|
|
1674
|
+
/** Matroska 音频(.mka) */
|
|
1675
|
+
MKA: "audio/x-matroska",
|
|
1676
|
+
/** QuickTime 视频(.mov) */
|
|
1677
|
+
QUICKTIME: "video/quicktime",
|
|
1678
|
+
/** PDF 文档(.pdf) */
|
|
1679
|
+
PDF: "application/pdf",
|
|
1680
|
+
/** Word 97-2003 文档(.doc) */
|
|
1681
|
+
DOC: "application/msword",
|
|
1682
|
+
/** Word 2007+ 文档(.docx) */
|
|
1683
|
+
DOCX: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
1684
|
+
/** Excel 2007+ 工作簿(.xlsx) */
|
|
1685
|
+
XLSX: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
1686
|
+
/** 启用宏的Excel工作簿(.xlsm) */
|
|
1687
|
+
XLSM: "application/vnd.ms-excel.sheet.macroEnabled.12",
|
|
1688
|
+
/** Excel模板文件(.xltx) */
|
|
1689
|
+
XLTX: "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
|
|
1690
|
+
/** PowerPoint 2007+ 演示文稿(.pptx) */
|
|
1691
|
+
PPTX: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
1692
|
+
/** PowerPoint 97-2003 演示文稿(.ppt) */
|
|
1693
|
+
PPT: "application/vnd.ms-powerpoint",
|
|
1694
|
+
/** OpenDocument 文本文档(.odt) */
|
|
1695
|
+
ODT: "application/vnd.oasis.opendocument.text",
|
|
1696
|
+
/** OpenDocument 表格文档(.ods) */
|
|
1697
|
+
ODS: "application/vnd.oasis.opendocument.spreadsheet",
|
|
1698
|
+
/** OpenDocument 演示文稿(.odp) */
|
|
1699
|
+
ODP: "application/vnd.oasis.opendocument.presentation",
|
|
1700
|
+
/** EPUB 电子书(.epub) */
|
|
1701
|
+
EPUB: "application/epub+zip",
|
|
1702
|
+
/** Kindle 电子书(.azw) */
|
|
1703
|
+
AZW: "application/vnd.amazon.ebook",
|
|
1704
|
+
/** ZIP 压缩文件(.zip) */
|
|
1705
|
+
ZIP: "application/zip",
|
|
1706
|
+
/** GZIP 压缩文件(.gz) */
|
|
1707
|
+
GZIP: "application/gzip",
|
|
1708
|
+
/** TAR 归档文件(.tar) */
|
|
1709
|
+
TAR: "application/x-tar",
|
|
1710
|
+
/** BZip 归档(.bz) */
|
|
1711
|
+
BZIP: "application/x-bzip",
|
|
1712
|
+
/** BZip2 归档(.bz2) */
|
|
1713
|
+
BZIP2: "application/x-bzip2",
|
|
1714
|
+
/** 7-Zip 压缩文件(.7z) */
|
|
1715
|
+
SEVEN_Z: "application/x-7z-compressed",
|
|
1716
|
+
/** RAR 压缩文件(.rar) */
|
|
1717
|
+
RAR: "application/vnd.rar",
|
|
1718
|
+
/** XZ 压缩文件(.xz) */
|
|
1719
|
+
XZ: "application/x-xz",
|
|
1720
|
+
/** Zstandard 压缩文件(.zst) */
|
|
1721
|
+
ZSTD: "application/zstd",
|
|
1722
|
+
/** ISO 光盘镜像(.iso) */
|
|
1723
|
+
ISO9660_IMAGE: "application/x-iso9660-image",
|
|
1724
|
+
/** JSON 数据格式(.json) */
|
|
1725
|
+
JSON: "application/json",
|
|
1726
|
+
/** JSON-LD 格式(.jsonld) */
|
|
1727
|
+
LD_JSON: "application/ld+json",
|
|
1728
|
+
/** Web App Manifest(.webmanifest) */
|
|
1729
|
+
MANIFEST: "application/manifest+json",
|
|
1730
|
+
/** Java 归档文件(.jar) */
|
|
1731
|
+
JAR: "application/java-archive",
|
|
1732
|
+
/** WebAssembly 二进制指令格式(.wasm) */
|
|
1733
|
+
WASM: "application/wasm",
|
|
1734
|
+
/** MS 嵌入式 OpenType 字体(.eot) */
|
|
1735
|
+
EOT: "application/vnd.ms-fontobject",
|
|
1736
|
+
/** OpenType 字体(.otf) */
|
|
1737
|
+
OTF: "font/otf",
|
|
1738
|
+
/** WOFF 字体(.woff) */
|
|
1739
|
+
WOFF: "font/woff",
|
|
1740
|
+
/** WOFF2 字体(.woff2) */
|
|
1741
|
+
WOFF2: "font/woff2",
|
|
1742
|
+
/** TrueType 字体(.ttf) */
|
|
1743
|
+
TTF: "font/ttf",
|
|
1744
|
+
/** Excel 97-2003 工作簿(.xls) */
|
|
1745
|
+
XLS: "application/vnd.ms-excel",
|
|
1746
|
+
/** Microsoft XPS 文档(.xps) */
|
|
1747
|
+
XPS: "application/vnd.ms-xpsdocument",
|
|
1748
|
+
/** Word 启用宏文档(.docm) */
|
|
1749
|
+
DOCM: "application/vnd.ms-word.document.macroEnabled.12"
|
|
1750
|
+
};
|
|
1751
|
+
/**
|
|
1752
|
+
* 协议/内容类型 MIME 常量
|
|
1753
|
+
* - 用于 HTTP 请求/响应内容协商,无对应文件扩展名
|
|
1754
|
+
*/
|
|
1755
|
+
static PROTOCOL_MIME = {
|
|
1756
|
+
/** 通用二进制数据流 */
|
|
1757
|
+
OCTET_STREAM: "application/octet-stream",
|
|
1758
|
+
/** URL 编码表单 */
|
|
1759
|
+
FORM_URLENCODED: "application/x-www-form-urlencoded",
|
|
1760
|
+
/** multipart 表单 */
|
|
1761
|
+
FORM_DATA: "multipart/form-data",
|
|
1762
|
+
/** Server-Sent Events 数据流 */
|
|
1763
|
+
EVENT_STREAM: "text/event-stream",
|
|
1764
|
+
/** 问题详情 JSON(RFC 9457) */
|
|
1765
|
+
PROBLEM_JSON: "application/problem+json",
|
|
1766
|
+
/** JSON Patch(RFC 6902) */
|
|
1767
|
+
JSON_PATCH: "application/json-patch+json",
|
|
1768
|
+
/** JSON Merge Patch(RFC 7386) */
|
|
1769
|
+
MERGE_PATCH_JSON: "application/merge-patch+json"
|
|
1770
|
+
};
|
|
1771
|
+
/**
|
|
1772
|
+
* 根据文件后缀名获取对应的标准 MIME 类型(含历史兼容值)
|
|
1773
|
+
* - 支持带 `.` 或不带 `.` 的后缀名,不区分大小写
|
|
1774
|
+
* - 元组第一项始终为 IANA 官方标准 MIME,后续项为历史兼容值
|
|
1775
|
+
* - 仅查询文件类型 MIME,不包含无后缀对应的协议类型
|
|
1776
|
+
*
|
|
1777
|
+
* @param extension 文件后缀名(如 `".png"` / `"png"` / `".PNG"`)
|
|
1778
|
+
* @returns 标准 MIME + 兼容值的元组;如无匹配则返回 `undefined`
|
|
1779
|
+
* @example
|
|
1780
|
+
* ```ts
|
|
1781
|
+
* MimeUtil.fromExtension(".png"); // ["image/png"]
|
|
1782
|
+
* MimeUtil.fromExtension("ico"); // ["image/vnd.microsoft.icon", "image/x-icon"]
|
|
1783
|
+
* MimeUtil.fromExtension(".xml"); // ["application/xml", "text/xml"]
|
|
1784
|
+
* MimeUtil.fromExtension(".xyz"); // undefined
|
|
1785
|
+
* ```
|
|
1786
|
+
*/
|
|
1787
|
+
static fromExtension(extension) {
|
|
1788
|
+
const ext = StringUtil.cast(extension).toLowerCase();
|
|
1789
|
+
const key = ext.startsWith(".") ? ext : `.${ext}`;
|
|
1790
|
+
return EXT_TO_MIME[key];
|
|
1791
|
+
}
|
|
1792
|
+
/**
|
|
1793
|
+
* 根据 MIME 类型获取对应的文件后缀名列表
|
|
1794
|
+
* - 一个 MIME 类型可能对应多个后缀名(如 `text/html` → `.html` / `.htm`)
|
|
1795
|
+
* - 兼容值和标准值映射到相同的后缀(如 `image/x-icon` 和 `image/vnd.microsoft.icon` 均返回 `[".ico"]`)
|
|
1796
|
+
* - 仅查询文件类型 MIME,协议类型无对应后缀
|
|
1797
|
+
*
|
|
1798
|
+
* @param mime MIME 类型字符串(如 `"image/png"` / `"IMAGE/PNG"`)
|
|
1799
|
+
* @returns 文件后缀名列表;如无匹配则返回 `undefined`
|
|
1800
|
+
* @example
|
|
1801
|
+
* ```ts
|
|
1802
|
+
* MimeUtil.toExtension("IMAGE/PNG"); // [".png"]
|
|
1803
|
+
* MimeUtil.toExtension("text/html"); // [".html", ".htm"]
|
|
1804
|
+
* MimeUtil.toExtension("image/jpeg"); // [".jpg", ".jpeg"]
|
|
1805
|
+
* MimeUtil.toExtension("application/octet-stream"); // undefined
|
|
1806
|
+
* ```
|
|
1807
|
+
*/
|
|
1808
|
+
static toExtension(mime) {
|
|
1809
|
+
const m = StringUtil.cast(mime).toLowerCase();
|
|
1810
|
+
return MIME_TO_EXT.get(m);
|
|
1811
|
+
}
|
|
1812
|
+
};
|
|
1813
|
+
const EXT_TO_MIME = {
|
|
1814
|
+
".txt": [MimeUtil.FILE_MIME.TEXT],
|
|
1815
|
+
".html": [MimeUtil.FILE_MIME.HTML],
|
|
1816
|
+
".htm": [MimeUtil.FILE_MIME.HTML],
|
|
1817
|
+
".css": [MimeUtil.FILE_MIME.CSS],
|
|
1818
|
+
".csv": [MimeUtil.FILE_MIME.CSV],
|
|
1819
|
+
".tsv": [MimeUtil.FILE_MIME.TSV],
|
|
1820
|
+
".xml": [MimeUtil.FILE_MIME.XML, MimeUtil.FILE_MIME.XML_LEGACY],
|
|
1821
|
+
".xhtml": [MimeUtil.FILE_MIME.XHTML],
|
|
1822
|
+
".xht": [MimeUtil.FILE_MIME.XHTML],
|
|
1823
|
+
".js": [MimeUtil.FILE_MIME.JS],
|
|
1824
|
+
".ts": [MimeUtil.FILE_MIME.TS],
|
|
1825
|
+
".py": [MimeUtil.FILE_MIME.PY],
|
|
1826
|
+
".sh": [MimeUtil.FILE_MIME.SH],
|
|
1827
|
+
".c": [MimeUtil.FILE_MIME.C],
|
|
1828
|
+
".cpp": [MimeUtil.FILE_MIME.CPP],
|
|
1829
|
+
".cc": [MimeUtil.FILE_MIME.CPP],
|
|
1830
|
+
".cxx": [MimeUtil.FILE_MIME.CPP],
|
|
1831
|
+
".cs": [MimeUtil.FILE_MIME.CSHARP],
|
|
1832
|
+
".java": [MimeUtil.FILE_MIME.JAVA],
|
|
1833
|
+
".go": [MimeUtil.FILE_MIME.GO],
|
|
1834
|
+
".rs": [MimeUtil.FILE_MIME.RUST],
|
|
1835
|
+
".php": [MimeUtil.FILE_MIME.PHP],
|
|
1836
|
+
".rb": [MimeUtil.FILE_MIME.RUBY],
|
|
1837
|
+
".swift": [MimeUtil.FILE_MIME.SWIFT],
|
|
1838
|
+
".yaml": [MimeUtil.FILE_MIME.YAML, MimeUtil.FILE_MIME.YAML_LEGACY],
|
|
1839
|
+
".yml": [MimeUtil.FILE_MIME.YAML, MimeUtil.FILE_MIME.YAML_LEGACY],
|
|
1840
|
+
".toml": [MimeUtil.FILE_MIME.TOML, MimeUtil.FILE_MIME.TOML_LEGACY],
|
|
1841
|
+
".sql": [MimeUtil.FILE_MIME.SQL, MimeUtil.FILE_MIME.SQL_LEGACY],
|
|
1842
|
+
".md": [MimeUtil.FILE_MIME.MARKDOWN],
|
|
1843
|
+
".markdown": [MimeUtil.FILE_MIME.MARKDOWN],
|
|
1844
|
+
".rtf": [MimeUtil.FILE_MIME.RTF],
|
|
1845
|
+
".ics": [MimeUtil.FILE_MIME.CALENDAR],
|
|
1846
|
+
".jpg": [MimeUtil.FILE_MIME.JPEG],
|
|
1847
|
+
".jpeg": [MimeUtil.FILE_MIME.JPEG],
|
|
1848
|
+
".png": [MimeUtil.FILE_MIME.PNG],
|
|
1849
|
+
".gif": [MimeUtil.FILE_MIME.GIF],
|
|
1850
|
+
".bmp": [MimeUtil.FILE_MIME.BMP],
|
|
1851
|
+
".svg": [MimeUtil.FILE_MIME.SVG],
|
|
1852
|
+
".apng": [MimeUtil.FILE_MIME.APNG],
|
|
1853
|
+
".avif": [MimeUtil.FILE_MIME.AVIF],
|
|
1854
|
+
".ico": [MimeUtil.FILE_MIME.ICO, MimeUtil.FILE_MIME.ICO_LEGACY],
|
|
1855
|
+
".webp": [MimeUtil.FILE_MIME.WEBP],
|
|
1856
|
+
".tif": [MimeUtil.FILE_MIME.TIFF],
|
|
1857
|
+
".tiff": [MimeUtil.FILE_MIME.TIFF],
|
|
1858
|
+
".heic": [MimeUtil.FILE_MIME.HEIC],
|
|
1859
|
+
".heif": [MimeUtil.FILE_MIME.HEIF],
|
|
1860
|
+
".psd": [MimeUtil.FILE_MIME.PSD],
|
|
1861
|
+
".mp3": [MimeUtil.FILE_MIME.MP3],
|
|
1862
|
+
".aac": [MimeUtil.FILE_MIME.AAC],
|
|
1863
|
+
".mid": [MimeUtil.FILE_MIME.MIDI],
|
|
1864
|
+
".midi": [MimeUtil.FILE_MIME.MIDI],
|
|
1865
|
+
".oga": [MimeUtil.FILE_MIME.OGG_AUDIO],
|
|
1866
|
+
".opus": [MimeUtil.FILE_MIME.OPUS],
|
|
1867
|
+
".flac": [MimeUtil.FILE_MIME.FLAC],
|
|
1868
|
+
".wav": [MimeUtil.FILE_MIME.WAV],
|
|
1869
|
+
".weba": [MimeUtil.FILE_MIME.WEBM_AUDIO],
|
|
1870
|
+
".ra": [MimeUtil.FILE_MIME.REAL_AUDIO],
|
|
1871
|
+
".ram": [MimeUtil.FILE_MIME.REAL_AUDIO],
|
|
1872
|
+
".mp4": [MimeUtil.FILE_MIME.MP4],
|
|
1873
|
+
".mpeg": [MimeUtil.FILE_MIME.MPEG],
|
|
1874
|
+
".mpg": [MimeUtil.FILE_MIME.MPEG],
|
|
1875
|
+
".ogv": [MimeUtil.FILE_MIME.OGG_VIDEO],
|
|
1876
|
+
".avi": [MimeUtil.FILE_MIME.AVI],
|
|
1877
|
+
".3gp": [MimeUtil.FILE_MIME.THREE_GPP],
|
|
1878
|
+
".3g2": [MimeUtil.FILE_MIME.THREE_GPP2],
|
|
1879
|
+
".webm": [MimeUtil.FILE_MIME.WEBM],
|
|
1880
|
+
".mkv": [MimeUtil.FILE_MIME.MKV],
|
|
1881
|
+
".mka": [MimeUtil.FILE_MIME.MKA],
|
|
1882
|
+
".mov": [MimeUtil.FILE_MIME.QUICKTIME],
|
|
1883
|
+
".pdf": [MimeUtil.FILE_MIME.PDF],
|
|
1884
|
+
".doc": [MimeUtil.FILE_MIME.DOC],
|
|
1885
|
+
".docx": [MimeUtil.FILE_MIME.DOCX],
|
|
1886
|
+
".xlsx": [MimeUtil.FILE_MIME.XLSX],
|
|
1887
|
+
".xlsm": [MimeUtil.FILE_MIME.XLSM],
|
|
1888
|
+
".xltx": [MimeUtil.FILE_MIME.XLTX],
|
|
1889
|
+
".pptx": [MimeUtil.FILE_MIME.PPTX],
|
|
1890
|
+
".ppt": [MimeUtil.FILE_MIME.PPT],
|
|
1891
|
+
".odt": [MimeUtil.FILE_MIME.ODT],
|
|
1892
|
+
".ods": [MimeUtil.FILE_MIME.ODS],
|
|
1893
|
+
".odp": [MimeUtil.FILE_MIME.ODP],
|
|
1894
|
+
".epub": [MimeUtil.FILE_MIME.EPUB],
|
|
1895
|
+
".azw": [MimeUtil.FILE_MIME.AZW],
|
|
1896
|
+
".zip": [MimeUtil.FILE_MIME.ZIP],
|
|
1897
|
+
".gz": [MimeUtil.FILE_MIME.GZIP],
|
|
1898
|
+
".tar": [MimeUtil.FILE_MIME.TAR],
|
|
1899
|
+
".bz": [MimeUtil.FILE_MIME.BZIP],
|
|
1900
|
+
".bz2": [MimeUtil.FILE_MIME.BZIP2],
|
|
1901
|
+
".7z": [MimeUtil.FILE_MIME.SEVEN_Z],
|
|
1902
|
+
".rar": [MimeUtil.FILE_MIME.RAR],
|
|
1903
|
+
".xz": [MimeUtil.FILE_MIME.XZ],
|
|
1904
|
+
".zst": [MimeUtil.FILE_MIME.ZSTD],
|
|
1905
|
+
".iso": [MimeUtil.FILE_MIME.ISO9660_IMAGE],
|
|
1906
|
+
".json": [MimeUtil.FILE_MIME.JSON],
|
|
1907
|
+
".jsonld": [MimeUtil.FILE_MIME.LD_JSON],
|
|
1908
|
+
".webmanifest": [MimeUtil.FILE_MIME.MANIFEST],
|
|
1909
|
+
".jar": [MimeUtil.FILE_MIME.JAR],
|
|
1910
|
+
".wasm": [MimeUtil.FILE_MIME.WASM],
|
|
1911
|
+
".eot": [MimeUtil.FILE_MIME.EOT],
|
|
1912
|
+
".otf": [MimeUtil.FILE_MIME.OTF],
|
|
1913
|
+
".woff": [MimeUtil.FILE_MIME.WOFF],
|
|
1914
|
+
".woff2": [MimeUtil.FILE_MIME.WOFF2],
|
|
1915
|
+
".ttf": [MimeUtil.FILE_MIME.TTF],
|
|
1916
|
+
".xls": [MimeUtil.FILE_MIME.XLS],
|
|
1917
|
+
".xps": [MimeUtil.FILE_MIME.XPS],
|
|
1918
|
+
".docm": [MimeUtil.FILE_MIME.DOCM]
|
|
1919
|
+
};
|
|
1920
|
+
const MIME_TO_EXT = (() => {
|
|
1921
|
+
const map = /* @__PURE__ */ new Map();
|
|
1922
|
+
for (const [ext, mimes] of Object.entries(EXT_TO_MIME)) for (const mime of mimes) {
|
|
1923
|
+
const exts = map.get(mime);
|
|
1924
|
+
if (exts) {
|
|
1925
|
+
if (!exts.includes(ext)) exts.push(ext);
|
|
1926
|
+
} else map.set(mime, [ext]);
|
|
1927
|
+
}
|
|
1928
|
+
return map;
|
|
1929
|
+
})();
|
|
1930
|
+
/**
|
|
1541
1931
|
* 对象工具类
|
|
1542
1932
|
*/
|
|
1543
1933
|
var ObjectUtil = class {
|
|
@@ -711,7 +711,7 @@ declare class MimeUtil {
|
|
|
711
711
|
/** XML 文档(.xml) */
|
|
712
712
|
readonly XML: "application/xml";
|
|
713
713
|
/** XML 文档/兼容值 */
|
|
714
|
-
readonly
|
|
714
|
+
readonly XML_LEGACY: "text/xml";
|
|
715
715
|
/** XHTML 文档(.xhtml/.xht) */
|
|
716
716
|
readonly XHTML: "application/xhtml+xml";
|
|
717
717
|
/** JavaScript 文件(.js) */
|
|
@@ -743,15 +743,15 @@ declare class MimeUtil {
|
|
|
743
743
|
/** YAML 文档(.yaml/.yml) */
|
|
744
744
|
readonly YAML: "application/yaml";
|
|
745
745
|
/** YAML 文档/兼容值 */
|
|
746
|
-
readonly
|
|
746
|
+
readonly YAML_LEGACY: "text/vnd.yaml";
|
|
747
747
|
/** TOML 文档(.toml) */
|
|
748
748
|
readonly TOML: "application/toml";
|
|
749
749
|
/** TOML 文档/兼容值 */
|
|
750
|
-
readonly
|
|
750
|
+
readonly TOML_LEGACY: "text/x-toml";
|
|
751
751
|
/** SQL 脚本(.sql) */
|
|
752
752
|
readonly SQL: "application/sql";
|
|
753
753
|
/** SQL 脚本/兼容值 */
|
|
754
|
-
readonly
|
|
754
|
+
readonly SQL_LEGACY: "text/x-sql";
|
|
755
755
|
/** Markdown 格式文档(.md/.markdown) */
|
|
756
756
|
readonly MARKDOWN: "text/markdown";
|
|
757
757
|
/** 富文本格式文档(.rtf) */
|
|
@@ -776,6 +776,8 @@ declare class MimeUtil {
|
|
|
776
776
|
readonly AVIF: "image/avif";
|
|
777
777
|
/** 图标文件格式(.ico) */
|
|
778
778
|
readonly ICO: "image/vnd.microsoft.icon";
|
|
779
|
+
/** 图标文件格式/兼容值(.ico) */
|
|
780
|
+
readonly ICO_LEGACY: "image/x-icon";
|
|
779
781
|
/** WebP 图像/高效压缩(.webp) */
|
|
780
782
|
readonly WEBP: "image/webp";
|
|
781
783
|
/** TIFF 图像(.tif/.tiff) */
|
|
@@ -818,6 +820,10 @@ declare class MimeUtil {
|
|
|
818
820
|
readonly THREE_GPP2: "video/3gpp2";
|
|
819
821
|
/** WebM 视频(.webm) */
|
|
820
822
|
readonly WEBM: "video/webm";
|
|
823
|
+
/** Matroska 视频(.mkv) */
|
|
824
|
+
readonly MKV: "video/x-matroska";
|
|
825
|
+
/** Matroska 音频(.mka) */
|
|
826
|
+
readonly MKA: "audio/x-matroska";
|
|
821
827
|
/** QuickTime 视频(.mov) */
|
|
822
828
|
readonly QUICKTIME: "video/quicktime";
|
|
823
829
|
/** PDF 文档(.pdf) */
|
|
@@ -913,6 +919,40 @@ declare class MimeUtil {
|
|
|
913
919
|
/** JSON Merge Patch(RFC 7386) */
|
|
914
920
|
readonly MERGE_PATCH_JSON: "application/merge-patch+json";
|
|
915
921
|
};
|
|
922
|
+
/**
|
|
923
|
+
* 根据文件后缀名获取对应的标准 MIME 类型(含历史兼容值)
|
|
924
|
+
* - 支持带 `.` 或不带 `.` 的后缀名,不区分大小写
|
|
925
|
+
* - 元组第一项始终为 IANA 官方标准 MIME,后续项为历史兼容值
|
|
926
|
+
* - 仅查询文件类型 MIME,不包含无后缀对应的协议类型
|
|
927
|
+
*
|
|
928
|
+
* @param extension 文件后缀名(如 `".png"` / `"png"` / `".PNG"`)
|
|
929
|
+
* @returns 标准 MIME + 兼容值的元组;如无匹配则返回 `undefined`
|
|
930
|
+
* @example
|
|
931
|
+
* ```ts
|
|
932
|
+
* MimeUtil.fromExtension(".png"); // ["image/png"]
|
|
933
|
+
* MimeUtil.fromExtension("ico"); // ["image/vnd.microsoft.icon", "image/x-icon"]
|
|
934
|
+
* MimeUtil.fromExtension(".xml"); // ["application/xml", "text/xml"]
|
|
935
|
+
* MimeUtil.fromExtension(".xyz"); // undefined
|
|
936
|
+
* ```
|
|
937
|
+
*/
|
|
938
|
+
static fromExtension(extension: string): readonly [string, ...string[]] | undefined;
|
|
939
|
+
/**
|
|
940
|
+
* 根据 MIME 类型获取对应的文件后缀名列表
|
|
941
|
+
* - 一个 MIME 类型可能对应多个后缀名(如 `text/html` → `.html` / `.htm`)
|
|
942
|
+
* - 兼容值和标准值映射到相同的后缀(如 `image/x-icon` 和 `image/vnd.microsoft.icon` 均返回 `[".ico"]`)
|
|
943
|
+
* - 仅查询文件类型 MIME,协议类型无对应后缀
|
|
944
|
+
*
|
|
945
|
+
* @param mime MIME 类型字符串(如 `"image/png"` / `"IMAGE/PNG"`)
|
|
946
|
+
* @returns 文件后缀名列表;如无匹配则返回 `undefined`
|
|
947
|
+
* @example
|
|
948
|
+
* ```ts
|
|
949
|
+
* MimeUtil.toExtension("IMAGE/PNG"); // [".png"]
|
|
950
|
+
* MimeUtil.toExtension("text/html"); // [".html", ".htm"]
|
|
951
|
+
* MimeUtil.toExtension("image/jpeg"); // [".jpg", ".jpeg"]
|
|
952
|
+
* MimeUtil.toExtension("application/octet-stream"); // undefined
|
|
953
|
+
* ```
|
|
954
|
+
*/
|
|
955
|
+
static toExtension(mime: string): readonly [string, ...string[]] | undefined;
|
|
916
956
|
}
|
|
917
957
|
//#endregion
|
|
918
958
|
//#region src/number/numberUtil.d.ts
|
|
@@ -3835,6 +3875,7 @@ declare class StringUtil {
|
|
|
3835
3875
|
*
|
|
3836
3876
|
* @param candidate 待转换的值
|
|
3837
3877
|
* @param checkEmpty 是否检查空值(`null` / `undefined` / 空白字符串),默认为 `true`
|
|
3878
|
+
* @param trim 是否去除结果首尾空白,默认为 `true`
|
|
3838
3879
|
* @returns 转换后的字符串
|
|
3839
3880
|
* @example
|
|
3840
3881
|
* ```ts
|
|
@@ -3856,12 +3897,17 @@ declare class StringUtil {
|
|
|
3856
3897
|
*
|
|
3857
3898
|
* // 重载 4: 其他类型 → string
|
|
3858
3899
|
* StringUtil.cast(Symbol("foo")); // "Symbol(foo)" (类型为 string)
|
|
3900
|
+
*
|
|
3901
|
+
* // trim 参数(默认 true)
|
|
3902
|
+
* StringUtil.cast(" hello "); // "hello"
|
|
3903
|
+
* StringUtil.cast("\n abc \n"); // "abc"
|
|
3904
|
+
* StringUtil.cast("\n abc \n", true, false); // "\n abc \n"
|
|
3859
3905
|
* ```
|
|
3860
3906
|
*/
|
|
3861
|
-
static cast<T extends null | undefined>(candidate: T, checkEmpty?: true): "";
|
|
3862
|
-
static cast<T extends null | undefined>(candidate: T, checkEmpty: false): `${T}`;
|
|
3863
|
-
static cast<T extends string | number | bigint | boolean>(candidate: T, checkEmpty?: boolean): `${T}`;
|
|
3864
|
-
static cast(candidate: unknown, checkEmpty?: boolean): string;
|
|
3907
|
+
static cast<T extends null | undefined>(candidate: T, checkEmpty?: true, trim?: boolean): "";
|
|
3908
|
+
static cast<T extends null | undefined>(candidate: T, checkEmpty: false, trim?: boolean): `${T}`;
|
|
3909
|
+
static cast<T extends string | number | bigint | boolean>(candidate: T, checkEmpty?: boolean, trim?: boolean): `${T}`;
|
|
3910
|
+
static cast(candidate: unknown, checkEmpty?: boolean, trim?: boolean): string;
|
|
3865
3911
|
/**
|
|
3866
3912
|
* 从字符串中提取数字字符串
|
|
3867
3913
|
* - 移除非数字字符,保留符号和小数点
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as TypeUtil, t as StringUtil } from "./stringUtil-
|
|
1
|
+
import { n as TypeUtil, t as StringUtil } from "./stringUtil-voQaLOJj.js";
|
|
2
2
|
//#region src/array/arrayUtil.ts
|
|
3
3
|
/**
|
|
4
4
|
* 数组工具类
|
|
@@ -721,7 +721,7 @@ var MimeUtil = class {
|
|
|
721
721
|
/** XML 文档(.xml) */
|
|
722
722
|
XML: "application/xml",
|
|
723
723
|
/** XML 文档/兼容值 */
|
|
724
|
-
|
|
724
|
+
XML_LEGACY: "text/xml",
|
|
725
725
|
/** XHTML 文档(.xhtml/.xht) */
|
|
726
726
|
XHTML: "application/xhtml+xml",
|
|
727
727
|
/** JavaScript 文件(.js) */
|
|
@@ -753,15 +753,15 @@ var MimeUtil = class {
|
|
|
753
753
|
/** YAML 文档(.yaml/.yml) */
|
|
754
754
|
YAML: "application/yaml",
|
|
755
755
|
/** YAML 文档/兼容值 */
|
|
756
|
-
|
|
756
|
+
YAML_LEGACY: "text/vnd.yaml",
|
|
757
757
|
/** TOML 文档(.toml) */
|
|
758
758
|
TOML: "application/toml",
|
|
759
759
|
/** TOML 文档/兼容值 */
|
|
760
|
-
|
|
760
|
+
TOML_LEGACY: "text/x-toml",
|
|
761
761
|
/** SQL 脚本(.sql) */
|
|
762
762
|
SQL: "application/sql",
|
|
763
763
|
/** SQL 脚本/兼容值 */
|
|
764
|
-
|
|
764
|
+
SQL_LEGACY: "text/x-sql",
|
|
765
765
|
/** Markdown 格式文档(.md/.markdown) */
|
|
766
766
|
MARKDOWN: "text/markdown",
|
|
767
767
|
/** 富文本格式文档(.rtf) */
|
|
@@ -786,6 +786,8 @@ var MimeUtil = class {
|
|
|
786
786
|
AVIF: "image/avif",
|
|
787
787
|
/** 图标文件格式(.ico) */
|
|
788
788
|
ICO: "image/vnd.microsoft.icon",
|
|
789
|
+
/** 图标文件格式/兼容值(.ico) */
|
|
790
|
+
ICO_LEGACY: "image/x-icon",
|
|
789
791
|
/** WebP 图像/高效压缩(.webp) */
|
|
790
792
|
WEBP: "image/webp",
|
|
791
793
|
/** TIFF 图像(.tif/.tiff) */
|
|
@@ -828,6 +830,10 @@ var MimeUtil = class {
|
|
|
828
830
|
THREE_GPP2: "video/3gpp2",
|
|
829
831
|
/** WebM 视频(.webm) */
|
|
830
832
|
WEBM: "video/webm",
|
|
833
|
+
/** Matroska 视频(.mkv) */
|
|
834
|
+
MKV: "video/x-matroska",
|
|
835
|
+
/** Matroska 音频(.mka) */
|
|
836
|
+
MKA: "audio/x-matroska",
|
|
831
837
|
/** QuickTime 视频(.mov) */
|
|
832
838
|
QUICKTIME: "video/quicktime",
|
|
833
839
|
/** PDF 文档(.pdf) */
|
|
@@ -923,7 +929,165 @@ var MimeUtil = class {
|
|
|
923
929
|
/** JSON Merge Patch(RFC 7386) */
|
|
924
930
|
MERGE_PATCH_JSON: "application/merge-patch+json"
|
|
925
931
|
};
|
|
932
|
+
/**
|
|
933
|
+
* 根据文件后缀名获取对应的标准 MIME 类型(含历史兼容值)
|
|
934
|
+
* - 支持带 `.` 或不带 `.` 的后缀名,不区分大小写
|
|
935
|
+
* - 元组第一项始终为 IANA 官方标准 MIME,后续项为历史兼容值
|
|
936
|
+
* - 仅查询文件类型 MIME,不包含无后缀对应的协议类型
|
|
937
|
+
*
|
|
938
|
+
* @param extension 文件后缀名(如 `".png"` / `"png"` / `".PNG"`)
|
|
939
|
+
* @returns 标准 MIME + 兼容值的元组;如无匹配则返回 `undefined`
|
|
940
|
+
* @example
|
|
941
|
+
* ```ts
|
|
942
|
+
* MimeUtil.fromExtension(".png"); // ["image/png"]
|
|
943
|
+
* MimeUtil.fromExtension("ico"); // ["image/vnd.microsoft.icon", "image/x-icon"]
|
|
944
|
+
* MimeUtil.fromExtension(".xml"); // ["application/xml", "text/xml"]
|
|
945
|
+
* MimeUtil.fromExtension(".xyz"); // undefined
|
|
946
|
+
* ```
|
|
947
|
+
*/
|
|
948
|
+
static fromExtension(extension) {
|
|
949
|
+
const ext = StringUtil.cast(extension).toLowerCase();
|
|
950
|
+
const key = ext.startsWith(".") ? ext : `.${ext}`;
|
|
951
|
+
return EXT_TO_MIME[key];
|
|
952
|
+
}
|
|
953
|
+
/**
|
|
954
|
+
* 根据 MIME 类型获取对应的文件后缀名列表
|
|
955
|
+
* - 一个 MIME 类型可能对应多个后缀名(如 `text/html` → `.html` / `.htm`)
|
|
956
|
+
* - 兼容值和标准值映射到相同的后缀(如 `image/x-icon` 和 `image/vnd.microsoft.icon` 均返回 `[".ico"]`)
|
|
957
|
+
* - 仅查询文件类型 MIME,协议类型无对应后缀
|
|
958
|
+
*
|
|
959
|
+
* @param mime MIME 类型字符串(如 `"image/png"` / `"IMAGE/PNG"`)
|
|
960
|
+
* @returns 文件后缀名列表;如无匹配则返回 `undefined`
|
|
961
|
+
* @example
|
|
962
|
+
* ```ts
|
|
963
|
+
* MimeUtil.toExtension("IMAGE/PNG"); // [".png"]
|
|
964
|
+
* MimeUtil.toExtension("text/html"); // [".html", ".htm"]
|
|
965
|
+
* MimeUtil.toExtension("image/jpeg"); // [".jpg", ".jpeg"]
|
|
966
|
+
* MimeUtil.toExtension("application/octet-stream"); // undefined
|
|
967
|
+
* ```
|
|
968
|
+
*/
|
|
969
|
+
static toExtension(mime) {
|
|
970
|
+
const m = StringUtil.cast(mime).toLowerCase();
|
|
971
|
+
return MIME_TO_EXT.get(m);
|
|
972
|
+
}
|
|
973
|
+
};
|
|
974
|
+
const EXT_TO_MIME = {
|
|
975
|
+
".txt": [MimeUtil.FILE_MIME.TEXT],
|
|
976
|
+
".html": [MimeUtil.FILE_MIME.HTML],
|
|
977
|
+
".htm": [MimeUtil.FILE_MIME.HTML],
|
|
978
|
+
".css": [MimeUtil.FILE_MIME.CSS],
|
|
979
|
+
".csv": [MimeUtil.FILE_MIME.CSV],
|
|
980
|
+
".tsv": [MimeUtil.FILE_MIME.TSV],
|
|
981
|
+
".xml": [MimeUtil.FILE_MIME.XML, MimeUtil.FILE_MIME.XML_LEGACY],
|
|
982
|
+
".xhtml": [MimeUtil.FILE_MIME.XHTML],
|
|
983
|
+
".xht": [MimeUtil.FILE_MIME.XHTML],
|
|
984
|
+
".js": [MimeUtil.FILE_MIME.JS],
|
|
985
|
+
".ts": [MimeUtil.FILE_MIME.TS],
|
|
986
|
+
".py": [MimeUtil.FILE_MIME.PY],
|
|
987
|
+
".sh": [MimeUtil.FILE_MIME.SH],
|
|
988
|
+
".c": [MimeUtil.FILE_MIME.C],
|
|
989
|
+
".cpp": [MimeUtil.FILE_MIME.CPP],
|
|
990
|
+
".cc": [MimeUtil.FILE_MIME.CPP],
|
|
991
|
+
".cxx": [MimeUtil.FILE_MIME.CPP],
|
|
992
|
+
".cs": [MimeUtil.FILE_MIME.CSHARP],
|
|
993
|
+
".java": [MimeUtil.FILE_MIME.JAVA],
|
|
994
|
+
".go": [MimeUtil.FILE_MIME.GO],
|
|
995
|
+
".rs": [MimeUtil.FILE_MIME.RUST],
|
|
996
|
+
".php": [MimeUtil.FILE_MIME.PHP],
|
|
997
|
+
".rb": [MimeUtil.FILE_MIME.RUBY],
|
|
998
|
+
".swift": [MimeUtil.FILE_MIME.SWIFT],
|
|
999
|
+
".yaml": [MimeUtil.FILE_MIME.YAML, MimeUtil.FILE_MIME.YAML_LEGACY],
|
|
1000
|
+
".yml": [MimeUtil.FILE_MIME.YAML, MimeUtil.FILE_MIME.YAML_LEGACY],
|
|
1001
|
+
".toml": [MimeUtil.FILE_MIME.TOML, MimeUtil.FILE_MIME.TOML_LEGACY],
|
|
1002
|
+
".sql": [MimeUtil.FILE_MIME.SQL, MimeUtil.FILE_MIME.SQL_LEGACY],
|
|
1003
|
+
".md": [MimeUtil.FILE_MIME.MARKDOWN],
|
|
1004
|
+
".markdown": [MimeUtil.FILE_MIME.MARKDOWN],
|
|
1005
|
+
".rtf": [MimeUtil.FILE_MIME.RTF],
|
|
1006
|
+
".ics": [MimeUtil.FILE_MIME.CALENDAR],
|
|
1007
|
+
".jpg": [MimeUtil.FILE_MIME.JPEG],
|
|
1008
|
+
".jpeg": [MimeUtil.FILE_MIME.JPEG],
|
|
1009
|
+
".png": [MimeUtil.FILE_MIME.PNG],
|
|
1010
|
+
".gif": [MimeUtil.FILE_MIME.GIF],
|
|
1011
|
+
".bmp": [MimeUtil.FILE_MIME.BMP],
|
|
1012
|
+
".svg": [MimeUtil.FILE_MIME.SVG],
|
|
1013
|
+
".apng": [MimeUtil.FILE_MIME.APNG],
|
|
1014
|
+
".avif": [MimeUtil.FILE_MIME.AVIF],
|
|
1015
|
+
".ico": [MimeUtil.FILE_MIME.ICO, MimeUtil.FILE_MIME.ICO_LEGACY],
|
|
1016
|
+
".webp": [MimeUtil.FILE_MIME.WEBP],
|
|
1017
|
+
".tif": [MimeUtil.FILE_MIME.TIFF],
|
|
1018
|
+
".tiff": [MimeUtil.FILE_MIME.TIFF],
|
|
1019
|
+
".heic": [MimeUtil.FILE_MIME.HEIC],
|
|
1020
|
+
".heif": [MimeUtil.FILE_MIME.HEIF],
|
|
1021
|
+
".psd": [MimeUtil.FILE_MIME.PSD],
|
|
1022
|
+
".mp3": [MimeUtil.FILE_MIME.MP3],
|
|
1023
|
+
".aac": [MimeUtil.FILE_MIME.AAC],
|
|
1024
|
+
".mid": [MimeUtil.FILE_MIME.MIDI],
|
|
1025
|
+
".midi": [MimeUtil.FILE_MIME.MIDI],
|
|
1026
|
+
".oga": [MimeUtil.FILE_MIME.OGG_AUDIO],
|
|
1027
|
+
".opus": [MimeUtil.FILE_MIME.OPUS],
|
|
1028
|
+
".flac": [MimeUtil.FILE_MIME.FLAC],
|
|
1029
|
+
".wav": [MimeUtil.FILE_MIME.WAV],
|
|
1030
|
+
".weba": [MimeUtil.FILE_MIME.WEBM_AUDIO],
|
|
1031
|
+
".ra": [MimeUtil.FILE_MIME.REAL_AUDIO],
|
|
1032
|
+
".ram": [MimeUtil.FILE_MIME.REAL_AUDIO],
|
|
1033
|
+
".mp4": [MimeUtil.FILE_MIME.MP4],
|
|
1034
|
+
".mpeg": [MimeUtil.FILE_MIME.MPEG],
|
|
1035
|
+
".mpg": [MimeUtil.FILE_MIME.MPEG],
|
|
1036
|
+
".ogv": [MimeUtil.FILE_MIME.OGG_VIDEO],
|
|
1037
|
+
".avi": [MimeUtil.FILE_MIME.AVI],
|
|
1038
|
+
".3gp": [MimeUtil.FILE_MIME.THREE_GPP],
|
|
1039
|
+
".3g2": [MimeUtil.FILE_MIME.THREE_GPP2],
|
|
1040
|
+
".webm": [MimeUtil.FILE_MIME.WEBM],
|
|
1041
|
+
".mkv": [MimeUtil.FILE_MIME.MKV],
|
|
1042
|
+
".mka": [MimeUtil.FILE_MIME.MKA],
|
|
1043
|
+
".mov": [MimeUtil.FILE_MIME.QUICKTIME],
|
|
1044
|
+
".pdf": [MimeUtil.FILE_MIME.PDF],
|
|
1045
|
+
".doc": [MimeUtil.FILE_MIME.DOC],
|
|
1046
|
+
".docx": [MimeUtil.FILE_MIME.DOCX],
|
|
1047
|
+
".xlsx": [MimeUtil.FILE_MIME.XLSX],
|
|
1048
|
+
".xlsm": [MimeUtil.FILE_MIME.XLSM],
|
|
1049
|
+
".xltx": [MimeUtil.FILE_MIME.XLTX],
|
|
1050
|
+
".pptx": [MimeUtil.FILE_MIME.PPTX],
|
|
1051
|
+
".ppt": [MimeUtil.FILE_MIME.PPT],
|
|
1052
|
+
".odt": [MimeUtil.FILE_MIME.ODT],
|
|
1053
|
+
".ods": [MimeUtil.FILE_MIME.ODS],
|
|
1054
|
+
".odp": [MimeUtil.FILE_MIME.ODP],
|
|
1055
|
+
".epub": [MimeUtil.FILE_MIME.EPUB],
|
|
1056
|
+
".azw": [MimeUtil.FILE_MIME.AZW],
|
|
1057
|
+
".zip": [MimeUtil.FILE_MIME.ZIP],
|
|
1058
|
+
".gz": [MimeUtil.FILE_MIME.GZIP],
|
|
1059
|
+
".tar": [MimeUtil.FILE_MIME.TAR],
|
|
1060
|
+
".bz": [MimeUtil.FILE_MIME.BZIP],
|
|
1061
|
+
".bz2": [MimeUtil.FILE_MIME.BZIP2],
|
|
1062
|
+
".7z": [MimeUtil.FILE_MIME.SEVEN_Z],
|
|
1063
|
+
".rar": [MimeUtil.FILE_MIME.RAR],
|
|
1064
|
+
".xz": [MimeUtil.FILE_MIME.XZ],
|
|
1065
|
+
".zst": [MimeUtil.FILE_MIME.ZSTD],
|
|
1066
|
+
".iso": [MimeUtil.FILE_MIME.ISO9660_IMAGE],
|
|
1067
|
+
".json": [MimeUtil.FILE_MIME.JSON],
|
|
1068
|
+
".jsonld": [MimeUtil.FILE_MIME.LD_JSON],
|
|
1069
|
+
".webmanifest": [MimeUtil.FILE_MIME.MANIFEST],
|
|
1070
|
+
".jar": [MimeUtil.FILE_MIME.JAR],
|
|
1071
|
+
".wasm": [MimeUtil.FILE_MIME.WASM],
|
|
1072
|
+
".eot": [MimeUtil.FILE_MIME.EOT],
|
|
1073
|
+
".otf": [MimeUtil.FILE_MIME.OTF],
|
|
1074
|
+
".woff": [MimeUtil.FILE_MIME.WOFF],
|
|
1075
|
+
".woff2": [MimeUtil.FILE_MIME.WOFF2],
|
|
1076
|
+
".ttf": [MimeUtil.FILE_MIME.TTF],
|
|
1077
|
+
".xls": [MimeUtil.FILE_MIME.XLS],
|
|
1078
|
+
".xps": [MimeUtil.FILE_MIME.XPS],
|
|
1079
|
+
".docm": [MimeUtil.FILE_MIME.DOCM]
|
|
926
1080
|
};
|
|
1081
|
+
const MIME_TO_EXT = (() => {
|
|
1082
|
+
const map = /* @__PURE__ */ new Map();
|
|
1083
|
+
for (const [ext, mimes] of Object.entries(EXT_TO_MIME)) for (const mime of mimes) {
|
|
1084
|
+
const exts = map.get(mime);
|
|
1085
|
+
if (exts) {
|
|
1086
|
+
if (!exts.includes(ext)) exts.push(ext);
|
|
1087
|
+
} else map.set(mime, [ext]);
|
|
1088
|
+
}
|
|
1089
|
+
return map;
|
|
1090
|
+
})();
|
|
927
1091
|
//#endregion
|
|
928
1092
|
//#region src/number/numberUtil.ts
|
|
929
1093
|
/**
|
|
@@ -721,12 +721,13 @@ var TypeUtil = class {
|
|
|
721
721
|
* 字符串工具类
|
|
722
722
|
*/
|
|
723
723
|
var StringUtil = class {
|
|
724
|
-
static cast(candidate, checkEmpty = true) {
|
|
724
|
+
static cast(candidate, checkEmpty = true, trim = true) {
|
|
725
725
|
if (checkEmpty) {
|
|
726
726
|
if (candidate === null || candidate === void 0) return "";
|
|
727
727
|
if (typeof candidate === "string" && candidate.trim().length === 0) return "";
|
|
728
728
|
}
|
|
729
|
-
|
|
729
|
+
const result = String(candidate);
|
|
730
|
+
return trim ? result.trim() : result;
|
|
730
731
|
}
|
|
731
732
|
/**
|
|
732
733
|
* 从字符串中提取数字字符串
|