starlight-server 0.0.1

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 (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/demo/index.d.ts +1 -0
  4. package/dist/demo/index.js +27 -0
  5. package/dist/http/body/form-data.d.ts +35 -0
  6. package/dist/http/body/form-data.js +141 -0
  7. package/dist/http/body/index.d.ts +23 -0
  8. package/dist/http/body/index.js +47 -0
  9. package/dist/http/body/receive.d.ts +7 -0
  10. package/dist/http/body/receive.js +39 -0
  11. package/dist/http/http-status.d.ts +9 -0
  12. package/dist/http/http-status.js +64 -0
  13. package/dist/http/index.d.ts +9 -0
  14. package/dist/http/index.js +9 -0
  15. package/dist/http/mime-types.d.ts +14 -0
  16. package/dist/http/mime-types.js +764 -0
  17. package/dist/http/request.d.ts +25 -0
  18. package/dist/http/request.js +40 -0
  19. package/dist/http/response.d.ts +32 -0
  20. package/dist/http/response.js +66 -0
  21. package/dist/http/server.d.ts +31 -0
  22. package/dist/http/server.js +52 -0
  23. package/dist/http/types.d.ts +26 -0
  24. package/dist/http/types.js +12 -0
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.js +4 -0
  27. package/dist/logging.d.ts +24 -0
  28. package/dist/logging.js +30 -0
  29. package/dist/router/cors.d.ts +24 -0
  30. package/dist/router/cors.js +35 -0
  31. package/dist/router/index.d.ts +38 -0
  32. package/dist/router/index.js +36 -0
  33. package/dist/router/match.d.ts +23 -0
  34. package/dist/router/match.js +172 -0
  35. package/dist/router/parameters.d.ts +51 -0
  36. package/dist/router/parameters.js +118 -0
  37. package/dist/router/router.d.ts +127 -0
  38. package/dist/router/router.js +97 -0
  39. package/dist/swagger/index.d.ts +1 -0
  40. package/dist/swagger/index.js +168 -0
  41. package/dist/swagger/openapi-spec.d.ts +261 -0
  42. package/dist/swagger/openapi-spec.js +5 -0
  43. package/dist/validators/array.d.ts +9 -0
  44. package/dist/validators/array.js +28 -0
  45. package/dist/validators/boolean.d.ts +4 -0
  46. package/dist/validators/boolean.js +28 -0
  47. package/dist/validators/common.d.ts +23 -0
  48. package/dist/validators/common.js +25 -0
  49. package/dist/validators/index.d.ts +20 -0
  50. package/dist/validators/index.js +38 -0
  51. package/dist/validators/number.d.ts +10 -0
  52. package/dist/validators/number.js +30 -0
  53. package/dist/validators/object.d.ts +13 -0
  54. package/dist/validators/object.js +36 -0
  55. package/dist/validators/string.d.ts +11 -0
  56. package/dist/validators/string.js +29 -0
  57. package/package.json +54 -0
  58. package/src/demo/index.ts +33 -0
  59. package/src/http/body/form-data.ts +164 -0
  60. package/src/http/body/index.ts +59 -0
  61. package/src/http/body/receive.ts +49 -0
  62. package/src/http/http-status.ts +65 -0
  63. package/src/http/index.ts +9 -0
  64. package/src/http/mime-types.ts +765 -0
  65. package/src/http/request.ts +44 -0
  66. package/src/http/response.ts +73 -0
  67. package/src/http/server.ts +67 -0
  68. package/src/http/types.ts +31 -0
  69. package/src/index.ts +4 -0
  70. package/src/logging.ts +57 -0
  71. package/src/router/cors.ts +54 -0
  72. package/src/router/index.ts +38 -0
  73. package/src/router/match.ts +194 -0
  74. package/src/router/parameters.ts +172 -0
  75. package/src/router/router.ts +233 -0
  76. package/src/swagger/index.ts +184 -0
  77. package/src/swagger/openapi-spec.ts +312 -0
  78. package/src/validators/array.ts +33 -0
  79. package/src/validators/boolean.ts +23 -0
  80. package/src/validators/common.ts +46 -0
  81. package/src/validators/index.ts +50 -0
  82. package/src/validators/number.ts +36 -0
  83. package/src/validators/object.ts +41 -0
  84. package/src/validators/string.ts +38 -0
@@ -0,0 +1,764 @@
1
+ /**
2
+ * 传入文件路径,返回此文件的 MIME Type。路径不含扩展名或找不到对应类型的,返回 null。
3
+ * Given a file path, return the MIME Type of the file.
4
+ * If the path does not contain an extension or if the type cannot be found, return null.
5
+ */
6
+ export function path2MIMEType(path) {
7
+ const dotIndex = path.lastIndexOf('.');
8
+ if (dotIndex !== -1)
9
+ return MIMETypesMap.get(path.slice(dotIndex)) ?? null;
10
+ return null;
11
+ }
12
+ /*
13
+ Common MIME Types
14
+ Extract From:https://mimetype.io/all-types
15
+
16
+ [...document.querySelectorAll('section .title')].map(v => ({
17
+ type: v.innerText,
18
+ extensions: v.parentElement.querySelector('.extensions').innerText.split('\n')
19
+ }))
20
+ */
21
+ export const MIMETypes = [
22
+ { type: 'application/andrew-inset', extensions: ['.ez'] },
23
+ { type: 'application/applixware', extensions: ['.aw'] },
24
+ { type: 'application/atom+xml', extensions: ['.atom'] },
25
+ { type: 'application/atomcat+xml', extensions: ['.atomcat'] },
26
+ { type: 'application/atomsvc+xml', extensions: ['.atomsvc'] },
27
+ { type: 'application/ccxml+xml', extensions: ['.ccxml'] },
28
+ { type: 'application/cu-seeme', extensions: ['.cu'] },
29
+ { type: 'application/davmount+xml', extensions: ['.davmount'] },
30
+ { type: 'application/ecmascript', extensions: ['.ecma'] },
31
+ { type: 'application/emma+xml', extensions: ['.emma'] },
32
+ { type: 'application/epub+zip', extensions: ['.epub'] },
33
+ { type: 'application/font-tdpfr', extensions: ['.pfr'] },
34
+ { type: 'application/gzip', extensions: ['.gz', '.tgz'] },
35
+ { type: 'application/hyperstudio', extensions: ['.stk'] },
36
+ { type: 'application/java-archive', extensions: ['.jar'] },
37
+ { type: 'application/java-serialized-object', extensions: ['.ser'] },
38
+ { type: 'application/java-vm', extensions: ['.class'] },
39
+ { type: 'application/json', extensions: ['.json'] },
40
+ { type: 'application/lost+xml', extensions: ['.lostxml'] },
41
+ { type: 'application/mac-binhex40', extensions: ['.hqx'] },
42
+ { type: 'application/mac-compactpro', extensions: ['.cpt'] },
43
+ { type: 'application/marc', extensions: ['.mrc'] },
44
+ { type: 'application/mathematica', extensions: ['.ma', '.mb', '.nb'] },
45
+ { type: 'application/mathml+xml', extensions: ['.mathml', '.mml'] },
46
+ { type: 'application/mbox', extensions: ['.mbox'] },
47
+ { type: 'application/mediaservercontrol+xml', extensions: ['.mscml'] },
48
+ { type: 'application/mp4', extensions: ['.mp4s'] },
49
+ { type: 'application/msword', extensions: ['.doc', '.dot', '.wiz'] },
50
+ { type: 'application/mxf', extensions: ['.mxf'] },
51
+ {
52
+ type: 'application/octet-stream',
53
+ extensions: [
54
+ '.a',
55
+ '.bin',
56
+ '.bpk',
57
+ '.deploy',
58
+ '.dist',
59
+ '.distz',
60
+ '.dmg',
61
+ '.dms',
62
+ '.dump',
63
+ '.elc',
64
+ '.iso',
65
+ '.lha',
66
+ '.lrf',
67
+ '.lzh',
68
+ '.o',
69
+ '.obj',
70
+ '.pkg',
71
+ '.so',
72
+ ],
73
+ },
74
+ { type: 'application/oda', extensions: ['.oda'] },
75
+ { type: 'application/oebps-package+xml', extensions: ['.opf'] },
76
+ { type: 'application/ogg', extensions: ['.ogx'] },
77
+ { type: 'application/onenote', extensions: ['.onepkg', '.onetmp', '.onetoc', '.onetoc2'] },
78
+ { type: 'application/patch-ops-error+xml', extensions: ['.xer'] },
79
+ { type: 'application/pdf', extensions: ['.pdf'] },
80
+ { type: 'application/pgp-encrypted', extensions: ['.pgp'] },
81
+ { type: 'application/pgp-signature', extensions: ['.asc', '.sig'] },
82
+ { type: 'application/pics-rules', extensions: ['.prf'] },
83
+ { type: 'application/pkcs10', extensions: ['.p10'] },
84
+ { type: 'application/pkcs7-mime', extensions: ['.p7c', '.p7m'] },
85
+ { type: 'application/pkcs7-signature', extensions: ['.p7s'] },
86
+ { type: 'application/pkix-cert', extensions: ['.cer'] },
87
+ { type: 'application/pkix-crl', extensions: ['.crl'] },
88
+ { type: 'application/pkix-pkipath', extensions: ['.pkipath'] },
89
+ { type: 'application/pkixcmp', extensions: ['.pki'] },
90
+ { type: 'application/pls+xml', extensions: ['.pls'] },
91
+ { type: 'application/postscript', extensions: ['.ai', '.eps', '.ps'] },
92
+ { type: 'application/prs.cww', extensions: ['.cww'] },
93
+ { type: 'application/rdf+xml', extensions: ['.rdf'] },
94
+ { type: 'application/reginfo+xml', extensions: ['.rif'] },
95
+ { type: 'application/relax-ng-compact-syntax', extensions: ['.rnc'] },
96
+ { type: 'application/resource-lists+xml', extensions: ['.rl'] },
97
+ { type: 'application/resource-lists-diff+xml', extensions: ['.rld'] },
98
+ { type: 'application/rls-services+xml', extensions: ['.rs'] },
99
+ { type: 'application/rsd+xml', extensions: ['.rsd'] },
100
+ { type: 'application/rss+xml', extensions: ['.rss'] },
101
+ { type: 'application/rtf', extensions: ['.rtf'] },
102
+ { type: 'application/sbml+xml', extensions: ['.sbml'] },
103
+ { type: 'application/scvp-cv-request', extensions: ['.scq'] },
104
+ { type: 'application/scvp-cv-response', extensions: ['.scs'] },
105
+ { type: 'application/scvp-vp-request', extensions: ['.spq'] },
106
+ { type: 'application/scvp-vp-response', extensions: ['.spp'] },
107
+ { type: 'application/sdp', extensions: ['.sdp'] },
108
+ { type: 'application/set-payment-initiation', extensions: ['.setpay'] },
109
+ { type: 'application/set-registration-initiation', extensions: ['.setreg'] },
110
+ { type: 'application/shf+xml', extensions: ['.shf'] },
111
+ { type: 'application/smil+xml', extensions: ['.smi', '.smil'] },
112
+ { type: 'application/sparql-query', extensions: ['.rq'] },
113
+ { type: 'application/sparql-results+xml', extensions: ['.srx'] },
114
+ { type: 'application/srgs', extensions: ['.gram'] },
115
+ { type: 'application/srgs+xml', extensions: ['.grxml'] },
116
+ { type: 'application/ssml+xml', extensions: ['.ssml'] },
117
+ { type: 'application/vnd.3gpp.pic-bw-large', extensions: ['.plb'] },
118
+ { type: 'application/vnd.3gpp.pic-bw-small', extensions: ['.psb'] },
119
+ { type: 'application/vnd.3gpp.pic-bw-var', extensions: ['.pvb'] },
120
+ { type: 'application/vnd.3gpp2.tcap', extensions: ['.tcap'] },
121
+ { type: 'application/vnd.3m.post-it-notes', extensions: ['.pwn'] },
122
+ { type: 'application/vnd.accpac.simply.aso', extensions: ['.aso'] },
123
+ { type: 'application/vnd.accpac.simply.imp', extensions: ['.imp'] },
124
+ { type: 'application/vnd.acucobol', extensions: ['.acu'] },
125
+ { type: 'application/vnd.acucorp', extensions: ['.acutc', '.atc'] },
126
+ { type: 'application/vnd.adobe.air-application-installer-package+zip', extensions: ['.air'] },
127
+ { type: 'application/vnd.adobe.xdp+xml', extensions: ['.xdp'] },
128
+ { type: 'application/vnd.adobe.xfdf', extensions: ['.xfdf'] },
129
+ { type: 'application/vnd.airzip.filesecure.azf', extensions: ['.azf'] },
130
+ { type: 'application/vnd.airzip.filesecure.azs', extensions: ['.azs'] },
131
+ { type: 'application/vnd.amazon.ebook', extensions: ['.azw'] },
132
+ { type: 'application/vnd.americandynamics.acc', extensions: ['.acc'] },
133
+ { type: 'application/vnd.amiga.ami', extensions: ['.ami'] },
134
+ { type: 'application/vnd.android.package-archive', extensions: ['.apk'] },
135
+ { type: 'application/vnd.anser-web-certificate-issue-initiation', extensions: ['.cii'] },
136
+ { type: 'application/vnd.anser-web-funds-transfer-initiation', extensions: ['.fti'] },
137
+ { type: 'application/vnd.antix.game-component', extensions: ['.atx'] },
138
+ { type: 'application/vnd.apple.installer+xml', extensions: ['.mpkg'] },
139
+ { type: 'application/vnd.arastra.swi', extensions: ['.swi'] },
140
+ { type: 'application/vnd.audiograph', extensions: ['.aep'] },
141
+ { type: 'application/vnd.blueice.multipass', extensions: ['.mpm'] },
142
+ { type: 'application/vnd.bmi', extensions: ['.bmi'] },
143
+ { type: 'application/vnd.businessobjects', extensions: ['.rep'] },
144
+ { type: 'application/vnd.chemdraw+xml', extensions: ['.cdxml'] },
145
+ { type: 'application/vnd.chipnuts.karaoke-mmd', extensions: ['.mmd'] },
146
+ { type: 'application/vnd.cinderella', extensions: ['.cdy'] },
147
+ { type: 'application/vnd.claymore', extensions: ['.cla'] },
148
+ { type: 'application/vnd.clonk.c4group', extensions: ['.c4d', '.c4f', '.c4g', '.c4p', '.c4u'] },
149
+ { type: 'application/vnd.commonspace', extensions: ['.csp'] },
150
+ { type: 'application/vnd.contact.cmsg', extensions: ['.cdbcmsg'] },
151
+ { type: 'application/vnd.cosmocaller', extensions: ['.cmc'] },
152
+ { type: 'application/vnd.crick.clicker', extensions: ['.clkx'] },
153
+ { type: 'application/vnd.crick.clicker.keyboard', extensions: ['.clkk'] },
154
+ { type: 'application/vnd.crick.clicker.palette', extensions: ['.clkp'] },
155
+ { type: 'application/vnd.crick.clicker.template', extensions: ['.clkt'] },
156
+ { type: 'application/vnd.crick.clicker.wordbank', extensions: ['.clkw'] },
157
+ { type: 'application/vnd.criticaltools.wbs+xml', extensions: ['.wbs'] },
158
+ { type: 'application/vnd.ctc-posml', extensions: ['.pml'] },
159
+ { type: 'application/vnd.cups-ppd', extensions: ['.ppd'] },
160
+ { type: 'application/vnd.curl.car', extensions: ['.car'] },
161
+ { type: 'application/vnd.curl.pcurl', extensions: ['.pcurl'] },
162
+ { type: 'application/vnd.data-vision.rdz', extensions: ['.rdz'] },
163
+ { type: 'application/vnd.debian.binary-package', extensions: ['.deb', '.udeb'] },
164
+ { type: 'application/vnd.denovo.fcselayout-link', extensions: ['.fe_launch'] },
165
+ { type: 'application/vnd.dna', extensions: ['.dna'] },
166
+ { type: 'application/vnd.dolby.mlp', extensions: ['.mlp'] },
167
+ { type: 'application/vnd.dpgraph', extensions: ['.dpg'] },
168
+ { type: 'application/vnd.dreamfactory', extensions: ['.dfac'] },
169
+ { type: 'application/vnd.dynageo', extensions: ['.geo'] },
170
+ { type: 'application/vnd.ecowin.chart', extensions: ['.mag'] },
171
+ { type: 'application/vnd.enliven', extensions: ['.nml'] },
172
+ { type: 'application/vnd.epson.esf', extensions: ['.esf'] },
173
+ { type: 'application/vnd.epson.msf', extensions: ['.msf'] },
174
+ { type: 'application/vnd.epson.quickanime', extensions: ['.qam'] },
175
+ { type: 'application/vnd.epson.salt', extensions: ['.slt'] },
176
+ { type: 'application/vnd.epson.ssf', extensions: ['.ssf'] },
177
+ { type: 'application/vnd.eszigno3+xml', extensions: ['.es3', '.et3'] },
178
+ { type: 'application/vnd.ezpix-album', extensions: ['.ez2'] },
179
+ { type: 'application/vnd.ezpix-package', extensions: ['.ez3'] },
180
+ { type: 'application/vnd.fdf', extensions: ['.fdf'] },
181
+ { type: 'application/vnd.fdsn.mseed', extensions: ['.mseed'] },
182
+ { type: 'application/vnd.fdsn.seed', extensions: ['.dataless', '.seed'] },
183
+ { type: 'application/vnd.flographit', extensions: ['.gph'] },
184
+ { type: 'application/vnd.fluxtime.clip', extensions: ['.ftc'] },
185
+ { type: 'application/vnd.framemaker', extensions: ['.book', '.fm', '.frame', '.maker'] },
186
+ { type: 'application/vnd.frogans.fnc', extensions: ['.fnc'] },
187
+ { type: 'application/vnd.frogans.ltf', extensions: ['.ltf'] },
188
+ { type: 'application/vnd.fsc.weblaunch', extensions: ['.fsc'] },
189
+ { type: 'application/vnd.fujitsu.oasys', extensions: ['.oas'] },
190
+ { type: 'application/vnd.fujitsu.oasys2', extensions: ['.oa2'] },
191
+ { type: 'application/vnd.fujitsu.oasys3', extensions: ['.oa3'] },
192
+ { type: 'application/vnd.fujitsu.oasysgp', extensions: ['.fg5'] },
193
+ { type: 'application/vnd.fujitsu.oasysprs', extensions: ['.bh2'] },
194
+ { type: 'application/vnd.fujixerox.ddd', extensions: ['.ddd'] },
195
+ { type: 'application/vnd.fujixerox.docuworks', extensions: ['.xdw'] },
196
+ { type: 'application/vnd.fujixerox.docuworks.binder', extensions: ['.xbd'] },
197
+ { type: 'application/vnd.fuzzysheet', extensions: ['.fzs'] },
198
+ { type: 'application/vnd.genomatix.tuxedo', extensions: ['.txd'] },
199
+ { type: 'application/vnd.geogebra.file', extensions: ['.ggb'] },
200
+ { type: 'application/vnd.geogebra.tool', extensions: ['.ggt'] },
201
+ { type: 'application/vnd.geometry-explorer', extensions: ['.gex', '.gre'] },
202
+ { type: 'application/vnd.gmx', extensions: ['.gmx'] },
203
+ { type: 'application/vnd.google-earth.kml+xml', extensions: ['.kml'] },
204
+ { type: 'application/vnd.google-earth.kmz', extensions: ['.kmz'] },
205
+ { type: 'application/vnd.grafeq', extensions: ['.gqf', '.gqs'] },
206
+ { type: 'application/vnd.groove-account', extensions: ['.gac'] },
207
+ { type: 'application/vnd.groove-help', extensions: ['.ghf'] },
208
+ { type: 'application/vnd.groove-identity-message', extensions: ['.gim'] },
209
+ { type: 'application/vnd.groove-injector', extensions: ['.grv'] },
210
+ { type: 'application/vnd.groove-tool-message', extensions: ['.gtm'] },
211
+ { type: 'application/vnd.groove-tool-template', extensions: ['.tpl'] },
212
+ { type: 'application/vnd.groove-vcard', extensions: ['.vcg'] },
213
+ { type: 'application/vnd.handheld-entertainment+xml', extensions: ['.zmm'] },
214
+ { type: 'application/vnd.hbci', extensions: ['.hbci'] },
215
+ { type: 'application/vnd.hhe.lesson-player', extensions: ['.les'] },
216
+ { type: 'application/vnd.hp-hpgl', extensions: ['.hpgl'] },
217
+ { type: 'application/vnd.hp-hpid', extensions: ['.hpid'] },
218
+ { type: 'application/vnd.hp-hps', extensions: ['.hps'] },
219
+ { type: 'application/vnd.hp-jlyt', extensions: ['.jlt'] },
220
+ { type: 'application/vnd.hp-pcl', extensions: ['.pcl'] },
221
+ { type: 'application/vnd.hp-pclxl', extensions: ['.pclxl'] },
222
+ { type: 'application/vnd.hydrostatix.sof-data', extensions: ['.sfd-hdstx'] },
223
+ { type: 'application/vnd.hzn-3d-crossword', extensions: ['.x3d'] },
224
+ { type: 'application/vnd.ibm.minipay', extensions: ['.mpy'] },
225
+ { type: 'application/vnd.ibm.modcap', extensions: ['.afp', '.list3820', '.listafp'] },
226
+ { type: 'application/vnd.ibm.rights-management', extensions: ['.irm'] },
227
+ { type: 'application/vnd.ibm.secure-container', extensions: ['.sc'] },
228
+ { type: 'application/vnd.iccprofile', extensions: ['.icc', '.icm'] },
229
+ { type: 'application/vnd.igloader', extensions: ['.igl'] },
230
+ { type: 'application/vnd.immervision-ivp', extensions: ['.ivp'] },
231
+ { type: 'application/vnd.immervision-ivu', extensions: ['.ivu'] },
232
+ { type: 'application/vnd.intercon.formnet', extensions: ['.xpw', '.xpx'] },
233
+ { type: 'application/vnd.intu.qbo', extensions: ['.qbo'] },
234
+ { type: 'application/vnd.intu.qfx', extensions: ['.qfx'] },
235
+ { type: 'application/vnd.ipunplugged.rcprofile', extensions: ['.rcprofile'] },
236
+ { type: 'application/vnd.irepository.package+xml', extensions: ['.irp'] },
237
+ { type: 'application/vnd.is-xpr', extensions: ['.xpr'] },
238
+ { type: 'application/vnd.jam', extensions: ['.jam'] },
239
+ { type: 'application/vnd.jcp.javame.midlet-rms', extensions: ['.rms'] },
240
+ { type: 'application/vnd.jisp', extensions: ['.jisp'] },
241
+ { type: 'application/vnd.joost.joda-archive', extensions: ['.joda'] },
242
+ { type: 'application/vnd.kahootz', extensions: ['.ktr', '.ktz'] },
243
+ { type: 'application/vnd.kde.karbon', extensions: ['.karbon'] },
244
+ { type: 'application/vnd.kde.kchart', extensions: ['.chrt'] },
245
+ { type: 'application/vnd.kde.kformula', extensions: ['.kfo'] },
246
+ { type: 'application/vnd.kde.kivio', extensions: ['.flw'] },
247
+ { type: 'application/vnd.kde.kontour', extensions: ['.kon'] },
248
+ { type: 'application/vnd.kde.kpresenter', extensions: ['.kpr', '.kpt'] },
249
+ { type: 'application/vnd.kde.kspread', extensions: ['.ksp'] },
250
+ { type: 'application/vnd.kde.kword', extensions: ['.kwd', '.kwt'] },
251
+ { type: 'application/vnd.kenameaapp', extensions: ['.htke'] },
252
+ { type: 'application/vnd.kidspiration', extensions: ['.kia'] },
253
+ { type: 'application/vnd.kinar', extensions: ['.kne', '.knp'] },
254
+ { type: 'application/vnd.koan', extensions: ['.skd', '.skm', '.skp', '.skt'] },
255
+ { type: 'application/vnd.kodak-descriptor', extensions: ['.sse'] },
256
+ { type: 'application/vnd.llamagraphics.life-balance.desktop', extensions: ['.lbd'] },
257
+ { type: 'application/vnd.llamagraphics.life-balance.exchange+xml', extensions: ['.lbe'] },
258
+ { type: 'application/vnd.lotus-1-2-3', extensions: ['.123'] },
259
+ { type: 'application/vnd.lotus-approach', extensions: ['.apr'] },
260
+ { type: 'application/vnd.lotus-freelance', extensions: ['.pre'] },
261
+ { type: 'application/vnd.lotus-notes', extensions: ['.nsf'] },
262
+ { type: 'application/vnd.lotus-organizer', extensions: ['.org'] },
263
+ { type: 'application/vnd.lotus-screencam', extensions: ['.scm'] },
264
+ { type: 'application/vnd.lotus-wordpro', extensions: ['.lwp'] },
265
+ { type: 'application/vnd.macports.portpkg', extensions: ['.portpkg'] },
266
+ { type: 'application/vnd.mcd', extensions: ['.mcd'] },
267
+ { type: 'application/vnd.medcalcdata', extensions: ['.mc1'] },
268
+ { type: 'application/vnd.mediastation.cdkey', extensions: ['.cdkey'] },
269
+ { type: 'application/vnd.mfer', extensions: ['.mwf'] },
270
+ { type: 'application/vnd.mfmp', extensions: ['.mfm'] },
271
+ { type: 'application/vnd.micrografx.flo', extensions: ['.flo'] },
272
+ { type: 'application/vnd.micrografx.igx', extensions: ['.igx'] },
273
+ { type: 'application/vnd.mif', extensions: ['.mif'] },
274
+ { type: 'application/vnd.mobius.daf', extensions: ['.daf'] },
275
+ { type: 'application/vnd.mobius.dis', extensions: ['.dis'] },
276
+ { type: 'application/vnd.mobius.mbk', extensions: ['.mbk'] },
277
+ { type: 'application/vnd.mobius.mqy', extensions: ['.mqy'] },
278
+ { type: 'application/vnd.mobius.msl', extensions: ['.msl'] },
279
+ { type: 'application/vnd.mobius.plc', extensions: ['.plc'] },
280
+ { type: 'application/vnd.mobius.txf', extensions: ['.txf'] },
281
+ { type: 'application/vnd.mophun.application', extensions: ['.mpn'] },
282
+ { type: 'application/vnd.mophun.certificate', extensions: ['.mpc'] },
283
+ { type: 'application/vnd.mozilla.xul+xml', extensions: ['.xul'] },
284
+ { type: 'application/vnd.ms-artgalry', extensions: ['.cil'] },
285
+ { type: 'application/vnd.ms-cab-compressed', extensions: ['.cab'] },
286
+ {
287
+ type: 'application/vnd.ms-excel',
288
+ extensions: ['.xla', '.xlb', '.xlc', '.xlm', '.xls', '.xlt', '.xlw'],
289
+ },
290
+ { type: 'application/vnd.ms-excel.addin.macroenabled.12', extensions: ['.xlam'] },
291
+ { type: 'application/vnd.ms-excel.sheet.binary.macroenabled.12', extensions: ['.xlsb'] },
292
+ { type: 'application/vnd.ms-excel.sheet.macroenabled.12', extensions: ['.xlsm'] },
293
+ { type: 'application/vnd.ms-excel.template.macroenabled.12', extensions: ['.xltm'] },
294
+ { type: 'application/vnd.ms-fontobject', extensions: ['.eot'] },
295
+ { type: 'application/vnd.ms-htmlhelp', extensions: ['.chm'] },
296
+ { type: 'application/vnd.ms-ims', extensions: ['.ims'] },
297
+ { type: 'application/vnd.ms-lrm', extensions: ['.lrm'] },
298
+ { type: 'application/vnd.ms-pki.seccat', extensions: ['.cat'] },
299
+ { type: 'application/vnd.ms-pki.stl', extensions: ['.stl'] },
300
+ { type: 'application/vnd.ms-powerpoint', extensions: ['.pot', '.ppa', '.pps', '.ppt', '.pwz'] },
301
+ { type: 'application/vnd.ms-powerpoint.addin.macroenabled.12', extensions: ['.ppam'] },
302
+ { type: 'application/vnd.ms-powerpoint.presentation.macroenabled.12', extensions: ['.pptm'] },
303
+ { type: 'application/vnd.ms-powerpoint.slide.macroenabled.12', extensions: ['.sldm'] },
304
+ { type: 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', extensions: ['.ppsm'] },
305
+ { type: 'application/vnd.ms-powerpoint.template.macroenabled.12', extensions: ['.potm'] },
306
+ { type: 'application/vnd.ms-project', extensions: ['.mpp', '.mpt'] },
307
+ { type: 'application/vnd.ms-word.document.macroenabled.12', extensions: ['.docm'] },
308
+ { type: 'application/vnd.ms-word.template.macroenabled.12', extensions: ['.dotm'] },
309
+ { type: 'application/vnd.ms-works', extensions: ['.wcm', '.wdb', '.wks', '.wps'] },
310
+ { type: 'application/vnd.ms-wpl', extensions: ['.wpl'] },
311
+ { type: 'application/vnd.ms-xpsdocument', extensions: ['.xps'] },
312
+ { type: 'application/vnd.mseq', extensions: ['.mseq'] },
313
+ { type: 'application/vnd.musician', extensions: ['.mus'] },
314
+ { type: 'application/vnd.muvee.style', extensions: ['.msty'] },
315
+ { type: 'application/vnd.neurolanguage.nlu', extensions: ['.nlu'] },
316
+ { type: 'application/vnd.noblenet-directory', extensions: ['.nnd'] },
317
+ { type: 'application/vnd.noblenet-sealer', extensions: ['.nns'] },
318
+ { type: 'application/vnd.noblenet-web', extensions: ['.nnw'] },
319
+ { type: 'application/vnd.nokia.n-gage.data', extensions: ['.ngdat'] },
320
+ { type: 'application/vnd.nokia.n-gage.symbian.install', extensions: ['.n-gage'] },
321
+ { type: 'application/vnd.nokia.radio-preset', extensions: ['.rpst'] },
322
+ { type: 'application/vnd.nokia.radio-presets', extensions: ['.rpss'] },
323
+ { type: 'application/vnd.novadigm.edm', extensions: ['.edm'] },
324
+ { type: 'application/vnd.novadigm.edx', extensions: ['.edx'] },
325
+ { type: 'application/vnd.novadigm.ext', extensions: ['.ext'] },
326
+ { type: 'application/vnd.oasis.opendocument.chart', extensions: ['.odc'] },
327
+ { type: 'application/vnd.oasis.opendocument.chart-template', extensions: ['.otc'] },
328
+ { type: 'application/vnd.oasis.opendocument.database', extensions: ['.odb'] },
329
+ { type: 'application/vnd.oasis.opendocument.formula', extensions: ['.odf'] },
330
+ { type: 'application/vnd.oasis.opendocument.formula-template', extensions: ['.odft'] },
331
+ { type: 'application/vnd.oasis.opendocument.graphics', extensions: ['.odg'] },
332
+ { type: 'application/vnd.oasis.opendocument.graphics-template', extensions: ['.otg'] },
333
+ { type: 'application/vnd.oasis.opendocument.image', extensions: ['.odi'] },
334
+ { type: 'application/vnd.oasis.opendocument.image-template', extensions: ['.oti'] },
335
+ { type: 'application/vnd.oasis.opendocument.presentation', extensions: ['.odp'] },
336
+ { type: 'application/vnd.oasis.opendocument.presentation-template', extensions: ['.otp'] },
337
+ { type: 'application/vnd.oasis.opendocument.spreadsheet', extensions: ['.ods'] },
338
+ { type: 'application/vnd.oasis.opendocument.spreadsheet-template', extensions: ['.ots'] },
339
+ { type: 'application/vnd.oasis.opendocument.text', extensions: ['.odt'] },
340
+ { type: 'application/vnd.oasis.opendocument.text-master', extensions: ['.otm'] },
341
+ { type: 'application/vnd.oasis.opendocument.text-template', extensions: ['.ott'] },
342
+ { type: 'application/vnd.oasis.opendocument.text-web', extensions: ['.oth'] },
343
+ { type: 'application/vnd.olpc-sugar', extensions: ['.xo'] },
344
+ { type: 'application/vnd.oma.dd2+xml', extensions: ['.dd2'] },
345
+ { type: 'application/vnd.openofficeorg.extension', extensions: ['.oxt'] },
346
+ {
347
+ type: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
348
+ extensions: ['.pptx'],
349
+ },
350
+ {
351
+ type: 'application/vnd.openxmlformats-officedocument.presentationml.slide',
352
+ extensions: ['.sldx'],
353
+ },
354
+ {
355
+ type: 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
356
+ extensions: ['.ppsx'],
357
+ },
358
+ {
359
+ type: 'application/vnd.openxmlformats-officedocument.presentationml.template',
360
+ extensions: ['.potx'],
361
+ },
362
+ {
363
+ type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
364
+ extensions: ['.xlsx'],
365
+ },
366
+ {
367
+ type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
368
+ extensions: ['.xltx'],
369
+ },
370
+ {
371
+ type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
372
+ extensions: ['.docx'],
373
+ },
374
+ {
375
+ type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
376
+ extensions: ['.dotx'],
377
+ },
378
+ { type: 'application/vnd.osgi.dp', extensions: ['.dp'] },
379
+ { type: 'application/vnd.palm', extensions: ['.oprc', '.pdb', '.pqa'] },
380
+ { type: 'application/vnd.pg.format', extensions: ['.str'] },
381
+ { type: 'application/vnd.pg.osasli', extensions: ['.ei6'] },
382
+ { type: 'application/vnd.picsel', extensions: ['.efif'] },
383
+ { type: 'application/vnd.pocketlearn', extensions: ['.plf'] },
384
+ { type: 'application/vnd.powerbuilder6', extensions: ['.pbd'] },
385
+ { type: 'application/vnd.previewsystems.box', extensions: ['.box'] },
386
+ { type: 'application/vnd.proteus.magazine', extensions: ['.mgz'] },
387
+ { type: 'application/vnd.publishare-delta-tree', extensions: ['.qps'] },
388
+ { type: 'application/vnd.pvi.ptid1', extensions: ['.ptid'] },
389
+ {
390
+ type: 'application/vnd.quark.quarkxpress',
391
+ extensions: ['.qwd', '.qwt', '.qxb', '.qxd', '.qxl', '.qxt'],
392
+ },
393
+ { type: 'application/vnd.recordare.musicxml', extensions: ['.mxl'] },
394
+ { type: 'application/vnd.recordare.musicxml+xml', extensions: ['.musicxml'] },
395
+ { type: 'application/vnd.rim.cod', extensions: ['.cod'] },
396
+ { type: 'application/vnd.rn-realmedia', extensions: ['.rm'] },
397
+ { type: 'application/vnd.route66.link66+xml', extensions: ['.link66'] },
398
+ { type: 'application/vnd.seemail', extensions: ['.see'] },
399
+ { type: 'application/vnd.sema', extensions: ['.sema'] },
400
+ { type: 'application/vnd.semd', extensions: ['.semd'] },
401
+ { type: 'application/vnd.semf', extensions: ['.semf'] },
402
+ { type: 'application/vnd.shana.informed.formdata', extensions: ['.ifm'] },
403
+ { type: 'application/vnd.shana.informed.formtemplate', extensions: ['.itp'] },
404
+ { type: 'application/vnd.shana.informed.interchange', extensions: ['.iif'] },
405
+ { type: 'application/vnd.shana.informed.package', extensions: ['.ipk'] },
406
+ { type: 'application/vnd.simtech-mindmapper', extensions: ['.twd', '.twds'] },
407
+ { type: 'application/vnd.smaf', extensions: ['.mmf'] },
408
+ { type: 'application/vnd.smart.teacher', extensions: ['.teacher'] },
409
+ { type: 'application/vnd.solent.sdkm+xml', extensions: ['.sdkd', '.sdkm'] },
410
+ { type: 'application/vnd.spotfire.dxp', extensions: ['.dxp'] },
411
+ { type: 'application/vnd.spotfire.sfs', extensions: ['.sfs'] },
412
+ {
413
+ type: 'application/vnd.sqlite3',
414
+ extensions: ['.db', '.sqlite', '.sqlite3', '.db-wal', '.sqlite-wal', '.db-shm', '.sqlite-shm'],
415
+ },
416
+ { type: 'application/vnd.stardivision.calc', extensions: ['.sdc'] },
417
+ { type: 'application/vnd.stardivision.draw', extensions: ['.sda'] },
418
+ { type: 'application/vnd.stardivision.impress', extensions: ['.sdd'] },
419
+ { type: 'application/vnd.stardivision.math', extensions: ['.smf'] },
420
+ { type: 'application/vnd.stardivision.writer', extensions: ['.sdw', '.vor'] },
421
+ { type: 'application/vnd.stardivision.writer-global', extensions: ['.sgl'] },
422
+ { type: 'application/vnd.sun.xml.calc', extensions: ['.sxc'] },
423
+ { type: 'application/vnd.sun.xml.calc.template', extensions: ['.stc'] },
424
+ { type: 'application/vnd.sun.xml.draw', extensions: ['.sxd'] },
425
+ { type: 'application/vnd.sun.xml.draw.template', extensions: ['.std'] },
426
+ { type: 'application/vnd.sun.xml.impress', extensions: ['.sxi'] },
427
+ { type: 'application/vnd.sun.xml.impress.template', extensions: ['.sti'] },
428
+ { type: 'application/vnd.sun.xml.math', extensions: ['.sxm'] },
429
+ { type: 'application/vnd.sun.xml.writer', extensions: ['.sxw'] },
430
+ { type: 'application/vnd.sun.xml.writer.global', extensions: ['.sxg'] },
431
+ { type: 'application/vnd.sun.xml.writer.template', extensions: ['.stw'] },
432
+ { type: 'application/vnd.sus-calendar', extensions: ['.sus', '.susp'] },
433
+ { type: 'application/vnd.svd', extensions: ['.svd'] },
434
+ { type: 'application/vnd.symbian.install', extensions: ['.sis', '.sisx'] },
435
+ { type: 'application/vnd.syncml+xml', extensions: ['.xsm'] },
436
+ { type: 'application/vnd.syncml.dm+wbxml', extensions: ['.bdm'] },
437
+ { type: 'application/vnd.syncml.dm+xml', extensions: ['.xdm'] },
438
+ { type: 'application/vnd.tao.intent-module-archive', extensions: ['.tao'] },
439
+ { type: 'application/vnd.tmobile-livetv', extensions: ['.tmo'] },
440
+ { type: 'application/vnd.trid.tpt', extensions: ['.tpt'] },
441
+ { type: 'application/vnd.triscape.mxs', extensions: ['.mxs'] },
442
+ { type: 'application/vnd.trueapp', extensions: ['.tra'] },
443
+ { type: 'application/vnd.ufdl', extensions: ['.ufd', '.ufdl'] },
444
+ { type: 'application/vnd.uiq.theme', extensions: ['.utz'] },
445
+ { type: 'application/vnd.umajin', extensions: ['.umj'] },
446
+ { type: 'application/vnd.unity', extensions: ['.unityweb'] },
447
+ { type: 'application/vnd.uoml+xml', extensions: ['.uoml'] },
448
+ { type: 'application/vnd.vcx', extensions: ['.vcx'] },
449
+ { type: 'application/vnd.visio', extensions: ['.vsd', '.vss', '.vst', '.vsw'] },
450
+ { type: 'application/vnd.visionary', extensions: ['.vis'] },
451
+ { type: 'application/vnd.vsf', extensions: ['.vsf'] },
452
+ { type: 'application/vnd.wap.sic', extensions: ['.sic'] },
453
+ { type: 'application/vnd.wap.slc', extensions: ['.slc'] },
454
+ { type: 'application/vnd.wap.wbxml', extensions: ['.wbxml'] },
455
+ { type: 'application/vnd.wap.wmlc', extensions: ['.wmlc'] },
456
+ { type: 'application/vnd.wap.wmlscriptc', extensions: ['.wmlsc'] },
457
+ { type: 'application/vnd.webturbo', extensions: ['.wtb'] },
458
+ { type: 'application/vnd.wordperfect', extensions: ['.wpd'] },
459
+ { type: 'application/vnd.wqd', extensions: ['.wqd'] },
460
+ { type: 'application/vnd.wt.stf', extensions: ['.stf'] },
461
+ { type: 'application/vnd.xara', extensions: ['.xar'] },
462
+ { type: 'application/vnd.xfdl', extensions: ['.xfdl'] },
463
+ { type: 'application/vnd.yamaha.hv-dic', extensions: ['.hvd'] },
464
+ { type: 'application/vnd.yamaha.hv-script', extensions: ['.hvs'] },
465
+ { type: 'application/vnd.yamaha.hv-voice', extensions: ['.hvp'] },
466
+ { type: 'application/vnd.yamaha.openscoreformat', extensions: ['.osf'] },
467
+ { type: 'application/vnd.yamaha.openscoreformat.osfpvg+xml', extensions: ['.osfpvg'] },
468
+ { type: 'application/vnd.yamaha.smaf-audio', extensions: ['.saf'] },
469
+ { type: 'application/vnd.yamaha.smaf-phrase', extensions: ['.spf'] },
470
+ { type: 'application/vnd.yellowriver-custom-menu', extensions: ['.cmp'] },
471
+ { type: 'application/vnd.zul', extensions: ['.zir', '.zirz'] },
472
+ { type: 'application/vnd.zzazz.deck+xml', extensions: ['.zaz'] },
473
+ { type: 'application/voicexml+xml', extensions: ['.vxml'] },
474
+ { type: 'application/winhlp', extensions: ['.hlp'] },
475
+ { type: 'application/wsdl+xml', extensions: ['.wsdl'] },
476
+ { type: 'application/wspolicy+xml', extensions: ['.wspolicy'] },
477
+ { type: 'application/x-7z-compressed', extensions: ['.7z'] },
478
+ { type: 'application/x-abiword', extensions: ['.abw'] },
479
+ { type: 'application/x-ace-compressed', extensions: ['.ace'] },
480
+ { type: 'application/x-authorware-bin', extensions: ['.aab', '.u32', '.vox', '.x32'] },
481
+ { type: 'application/x-authorware-map', extensions: ['.aam'] },
482
+ { type: 'application/x-authorware-seg', extensions: ['.aas'] },
483
+ { type: 'application/x-bcpio', extensions: ['.bcpio'] },
484
+ { type: 'application/x-bittorrent', extensions: ['.torrent'] },
485
+ { type: 'application/x-bzip', extensions: ['.bz'] },
486
+ { type: 'application/x-bzip2', extensions: ['.boz', '.bz2'] },
487
+ { type: 'application/x-cdlink', extensions: ['.vcd'] },
488
+ { type: 'application/x-chat', extensions: ['.chat'] },
489
+ { type: 'application/x-chess-pgn', extensions: ['.pgn'] },
490
+ { type: 'application/x-cpio', extensions: ['.cpio'] },
491
+ { type: 'application/x-csh', extensions: ['.csh'] },
492
+ { type: 'application/x-debian-package', extensions: ['.deb', '.udeb'] },
493
+ {
494
+ type: 'application/x-director',
495
+ extensions: ['.cct', '.cst', '.cxt', '.dcr', '.dir', '.dxr', '.fgd', '.swa', '.w3d'],
496
+ },
497
+ { type: 'application/x-doom', extensions: ['.wad'] },
498
+ { type: 'application/x-dtbncx+xml', extensions: ['.ncx'] },
499
+ { type: 'application/x-dtbook+xml', extensions: ['.dtb'] },
500
+ { type: 'application/x-dtbresource+xml', extensions: ['.res'] },
501
+ { type: 'application/x-dvi', extensions: ['.dvi'] },
502
+ { type: 'application/x-font-bdf', extensions: ['.bdf'] },
503
+ { type: 'application/x-font-ghostscript', extensions: ['.gsf'] },
504
+ { type: 'application/x-font-linux-psf', extensions: ['.psf'] },
505
+ { type: 'application/x-font-otf', extensions: ['.otf'] },
506
+ { type: 'application/x-font-pcf', extensions: ['.pcf'] },
507
+ { type: 'application/x-font-snf', extensions: ['.snf'] },
508
+ { type: 'application/x-font-ttf', extensions: ['.ttc', '.ttf'] },
509
+ { type: 'application/x-font-type1', extensions: ['.afm', '.pfa', '.pfb', '.pfm'] },
510
+ { type: 'application/x-futuresplash', extensions: ['.spl'] },
511
+ { type: 'application/x-gnumeric', extensions: ['.gnumeric'] },
512
+ { type: 'application/x-gtar', extensions: ['.gtar'] },
513
+ { type: 'application/x-gzip', extensions: ['.gz', '.tgz'] },
514
+ { type: 'application/x-hdf', extensions: ['.hdf'] },
515
+ { type: 'application/x-java-jnlp-file', extensions: ['.jnlp'] },
516
+ { type: 'application/x-killustrator', extensions: ['.kil'] },
517
+ { type: 'application/x-krita', extensions: ['.kra', '.krz'] },
518
+ { type: 'application/x-latex', extensions: ['.latex'] },
519
+ { type: 'application/x-mobipocket-ebook', extensions: ['.mobi', '.prc'] },
520
+ { type: 'application/x-ms-application', extensions: ['.application'] },
521
+ { type: 'application/x-ms-wmd', extensions: ['.wmd'] },
522
+ { type: 'application/x-ms-wmz', extensions: ['.wmz'] },
523
+ { type: 'application/x-ms-xbap', extensions: ['.xbap'] },
524
+ { type: 'application/x-msaccess', extensions: ['.mdb'] },
525
+ { type: 'application/x-msbinder', extensions: ['.obd'] },
526
+ { type: 'application/x-mscardfile', extensions: ['.crd'] },
527
+ { type: 'application/x-msclip', extensions: ['.clp'] },
528
+ { type: 'application/x-msdownload', extensions: ['.bat', '.com', '.dll', '.exe', '.msi'] },
529
+ { type: 'application/x-msmediaview', extensions: ['.m13', '.m14', '.mvb'] },
530
+ { type: 'application/x-msmetafile', extensions: ['.wmf'] },
531
+ { type: 'application/x-msmoney', extensions: ['.mny'] },
532
+ { type: 'application/x-mspublisher', extensions: ['.pub'] },
533
+ { type: 'application/x-msschedule', extensions: ['.scd'] },
534
+ { type: 'application/x-msterminal', extensions: ['.trm'] },
535
+ { type: 'application/x-mswrite', extensions: ['.wri'] },
536
+ { type: 'application/x-netcdf', extensions: ['.cdf', '.nc'] },
537
+ { type: 'application/x-perl', extensions: ['.pm', '.pl'] },
538
+ { type: 'application/x-pkcs12', extensions: ['.p12', '.pfx'] },
539
+ { type: 'application/x-pkcs7-certificates', extensions: ['.p7b', '.spc'] },
540
+ { type: 'application/x-python-code', extensions: ['.pyc', '.pyo'] },
541
+ { type: 'application/x-redhat-package-manager', extensions: ['.rpa'] },
542
+ { type: 'application/x-rpm', extensions: ['.rpm'] },
543
+ { type: 'application/x-sh', extensions: ['.sh'] },
544
+ { type: 'application/x-shar', extensions: ['.shar'] },
545
+ { type: 'application/x-shellscript', extensions: ['.sh'] },
546
+ { type: 'application/x-shockwave-flash', extensions: ['.swf'] },
547
+ { type: 'application/x-silverlight-app', extensions: ['.xap'] },
548
+ { type: 'application/x-stuffit', extensions: ['.sit'] },
549
+ { type: 'application/x-stuffitx', extensions: ['.sitx'] },
550
+ { type: 'application/x-sv4cpio', extensions: ['.sv4cpio'] },
551
+ { type: 'application/x-sv4crc', extensions: ['.sv4crc'] },
552
+ { type: 'application/x-tar', extensions: ['.tar'] },
553
+ { type: 'application/x-tcl', extensions: ['.tcl'] },
554
+ { type: 'application/x-tex', extensions: ['.tex'] },
555
+ { type: 'application/x-tex-tfm', extensions: ['.tfm'] },
556
+ { type: 'application/x-texinfo', extensions: ['.texi', '.texinfo'] },
557
+ { type: 'application/x-trash', extensions: [''] },
558
+ { type: 'application/x-ustar', extensions: ['.ustar'] },
559
+ { type: 'application/x-wais-source', extensions: ['.src'] },
560
+ { type: 'application/x-x509-ca-cert', extensions: ['.crt', '.der'] },
561
+ { type: 'application/x-xfig', extensions: ['.fig'] },
562
+ { type: 'application/x-xpinstall', extensions: ['.xpi'] },
563
+ { type: 'application/xenc+xml', extensions: ['.xenc'] },
564
+ { type: 'application/xhtml+xml', extensions: ['.xht', '.xhtml'] },
565
+ { type: 'application/xml', extensions: ['.xml', '.xpdl', '.xsl'] },
566
+ { type: 'application/xml-dtd', extensions: ['.dtd'] },
567
+ { type: 'application/xop+xml', extensions: ['.xop'] },
568
+ { type: 'application/xslt+xml', extensions: ['.xslt'] },
569
+ { type: 'application/xspf+xml', extensions: ['.xspf'] },
570
+ { type: 'application/xv+xml', extensions: ['.mxml', '.xhvml', '.xvm', '.xvml'] },
571
+ { type: 'application/zip', extensions: ['.zip'] },
572
+ { type: 'audio/3gpp', extensions: ['.3gp'] },
573
+ { type: 'audio/3gpp2', extensions: ['.3g2'] },
574
+ { type: 'audio/adpcm', extensions: ['.adp'] },
575
+ { type: 'audio/aiff', extensions: ['.aiff', '.aif', '.aff'] },
576
+ { type: 'audio/basic', extensions: ['.au', '.snd'] },
577
+ { type: 'audio/flac', extensions: ['.flac'] },
578
+ { type: 'audio/midi', extensions: ['.kar', '.mid', '.midi', '.rmi'] },
579
+ { type: 'audio/mp4', extensions: ['.mp4a'] },
580
+ { type: 'audio/mpeg', extensions: ['.m2a', '.m3a', '.mp2', '.mp2a', '.mp3', '.mpga'] },
581
+ { type: 'audio/ogg', extensions: ['.oga', '.ogg', '.spx'] },
582
+ { type: 'audio/opus', extensions: ['.opus'] },
583
+ { type: 'audio/vnd.digital-winds', extensions: ['.eol'] },
584
+ { type: 'audio/vnd.dts', extensions: ['.dts'] },
585
+ { type: 'audio/vnd.dts.hd', extensions: ['.dtshd'] },
586
+ { type: 'audio/vnd.lucent.voice', extensions: ['.lvp'] },
587
+ { type: 'audio/vnd.ms-playready.media.pya', extensions: ['.pya'] },
588
+ { type: 'audio/vnd.nuera.ecelp4800', extensions: ['.ecelp4800'] },
589
+ { type: 'audio/vnd.nuera.ecelp7470', extensions: ['.ecelp7470'] },
590
+ { type: 'audio/vnd.nuera.ecelp9600', extensions: ['.ecelp9600'] },
591
+ { type: 'audio/wav', extensions: ['.wav'] },
592
+ { type: 'audio/webm', extensions: ['.weba'] },
593
+ { type: 'audio/x-aac', extensions: ['.aac'] },
594
+ { type: 'audio/x-aiff', extensions: ['.aif', '.aifc', '.aiff'] },
595
+ { type: 'audio/x-matroska', extensions: ['.mka'] },
596
+ { type: 'audio/x-mpegurl', extensions: ['.m3u'] },
597
+ { type: 'audio/x-ms-wax', extensions: ['.wax'] },
598
+ { type: 'audio/x-ms-wma', extensions: ['.wma'] },
599
+ { type: 'audio/x-pn-realaudio', extensions: ['.ra', '.ram'] },
600
+ { type: 'audio/x-pn-realaudio-plugin', extensions: ['.rmp'] },
601
+ { type: 'chemical/x-cdx', extensions: ['.cdx'] },
602
+ { type: 'chemical/x-cif', extensions: ['.cif'] },
603
+ { type: 'chemical/x-cmdf', extensions: ['.cmdf'] },
604
+ { type: 'chemical/x-cml', extensions: ['.cml'] },
605
+ { type: 'chemical/x-csml', extensions: ['.csml'] },
606
+ { type: 'chemical/x-xyz', extensions: ['.xyz'] },
607
+ { type: 'font/otf', extensions: ['.otf'] },
608
+ { type: 'font/woff', extensions: ['.woff'] },
609
+ { type: 'font/woff2', extensions: ['.woff2'] },
610
+ { type: 'gcode', extensions: ['.gcode'] },
611
+ { type: 'image/avif', extensions: ['.avif', '.avifs'] },
612
+ { type: 'image/bmp', extensions: ['.bmp'] },
613
+ { type: 'image/cgm', extensions: ['.cgm'] },
614
+ { type: 'image/g3fax', extensions: ['.g3'] },
615
+ { type: 'image/gif', extensions: ['.gif'] },
616
+ { type: 'image/heic', extensions: ['.heif', '.heic'] },
617
+ { type: 'image/ief', extensions: ['.ief'] },
618
+ {
619
+ type: 'image/jpeg',
620
+ extensions: ['.jpe', '.jpeg', '.jpg', '.pjpg', '.jfif', '.jfif-tbnl', '.jif'],
621
+ },
622
+ {
623
+ type: 'image/pjpeg',
624
+ extensions: ['.jpe', '.jpeg', '.jpg', '.pjpg', '.jfi', '.jfif', '.jfif-tbnl', '.jif'],
625
+ },
626
+ { type: 'image/png', extensions: ['.png'] },
627
+ { type: 'image/prs.btif', extensions: ['.btif'] },
628
+ { type: 'image/svg+xml', extensions: ['.svg', '.svgz'] },
629
+ { type: 'image/tiff', extensions: ['.tif', '.tiff'] },
630
+ { type: 'image/vnd.adobe.photoshop', extensions: ['.psd'] },
631
+ { type: 'image/vnd.djvu', extensions: ['.djv', '.djvu'] },
632
+ { type: 'image/vnd.dwg', extensions: ['.dwg'] },
633
+ { type: 'image/vnd.dxf', extensions: ['.dxf'] },
634
+ { type: 'image/vnd.fastbidsheet', extensions: ['.fbs'] },
635
+ { type: 'image/vnd.fpx', extensions: ['.fpx'] },
636
+ { type: 'image/vnd.fst', extensions: ['.fst'] },
637
+ { type: 'image/vnd.fujixerox.edmics-mmr', extensions: ['.mmr'] },
638
+ { type: 'image/vnd.fujixerox.edmics-rlc', extensions: ['.rlc'] },
639
+ { type: 'image/vnd.ms-modi', extensions: ['.mdi'] },
640
+ { type: 'image/vnd.net-fpx', extensions: ['.npx'] },
641
+ { type: 'image/vnd.wap.wbmp', extensions: ['.wbmp'] },
642
+ { type: 'image/vnd.xiff', extensions: ['.xif'] },
643
+ { type: 'image/webp', extensions: ['.webp'] },
644
+ { type: 'image/x-adobe-dng', extensions: ['.dng'] },
645
+ { type: 'image/x-canon-cr2', extensions: ['.cr2'] },
646
+ { type: 'image/x-canon-crw', extensions: ['.crw'] },
647
+ { type: 'image/x-cmu-raster', extensions: ['.ras'] },
648
+ { type: 'image/x-cmx', extensions: ['.cmx'] },
649
+ { type: 'image/x-epson-erf', extensions: ['.erf'] },
650
+ { type: 'image/x-freehand', extensions: ['.fh', '.fh4', '.fh5', '.fh7', '.fhc'] },
651
+ { type: 'image/x-fuji-raf', extensions: ['.raf'] },
652
+ { type: 'image/x-icon', extensions: ['.ico'] },
653
+ { type: 'image/x-kodak-dcr', extensions: ['.dcr'] },
654
+ { type: 'image/x-kodak-k25', extensions: ['.k25'] },
655
+ { type: 'image/x-kodak-kdc', extensions: ['.kdc'] },
656
+ { type: 'image/x-minolta-mrw', extensions: ['.mrw'] },
657
+ { type: 'image/x-nikon-nef', extensions: ['.nef'] },
658
+ { type: 'image/x-olympus-orf', extensions: ['.orf'] },
659
+ { type: 'image/x-panasonic-raw', extensions: ['.raw', '.rw2', '.rwl'] },
660
+ { type: 'image/x-pcx', extensions: ['.pcx'] },
661
+ { type: 'image/x-pentax-pef', extensions: ['.pef', '.ptx'] },
662
+ { type: 'image/x-pict', extensions: ['.pct', '.pic'] },
663
+ { type: 'image/x-portable-anymap', extensions: ['.pnm'] },
664
+ { type: 'image/x-portable-bitmap', extensions: ['.pbm'] },
665
+ { type: 'image/x-portable-graymap', extensions: ['.pgm'] },
666
+ { type: 'image/x-portable-pixmap', extensions: ['.ppm'] },
667
+ { type: 'image/x-rgb', extensions: ['.rgb'] },
668
+ { type: 'image/x-sigma-x3f', extensions: ['.x3f'] },
669
+ { type: 'image/x-sony-arw', extensions: ['.arw'] },
670
+ { type: 'image/x-sony-sr2', extensions: ['.sr2'] },
671
+ { type: 'image/x-sony-srf', extensions: ['.srf'] },
672
+ { type: 'image/x-xbitmap', extensions: ['.xbm'] },
673
+ { type: 'image/x-xpixmap', extensions: ['.xpm'] },
674
+ { type: 'image/x-xwindowdump', extensions: ['.xwd'] },
675
+ { type: 'message/rfc822', extensions: ['.eml', '.mht', '.mhtml', '.mime', '.nws'] },
676
+ { type: 'model/iges', extensions: ['.iges', '.igs'] },
677
+ { type: 'model/mesh', extensions: ['.mesh', '.msh', '.silo'] },
678
+ { type: 'model/vnd.dwf', extensions: ['.dwf'] },
679
+ { type: 'model/vnd.gdl', extensions: ['.gdl'] },
680
+ { type: 'model/vnd.gtw', extensions: ['.gtw'] },
681
+ { type: 'model/vnd.mts', extensions: ['.mts'] },
682
+ { type: 'model/vnd.vtu', extensions: ['.vtu'] },
683
+ { type: 'model/vrml', extensions: ['.vrml', '.wrl'] },
684
+ { type: 'text/calendar', extensions: ['.ics', '.ifb'] },
685
+ { type: 'text/css', extensions: ['.css'] },
686
+ { type: 'text/csv', extensions: ['.csv'] },
687
+ { type: 'text/html', extensions: ['.htm', '.html'] },
688
+ { type: 'text/javascript', extensions: ['.js'] },
689
+ { type: 'text/markdown', extensions: ['.md', '.markdown', '.mdown', '.markdn'] },
690
+ { type: 'text/mathml', extensions: ['.mathml', '.mml'] },
691
+ {
692
+ type: 'text/plain',
693
+ extensions: ['.conf', '.def', '.diff', '.in', '.ksh', '.list', '.log', '.pl', '.text', '.txt'],
694
+ },
695
+ { type: 'text/prs.lines.tag', extensions: ['.dsc'] },
696
+ { type: 'text/richtext', extensions: ['.rtx'] },
697
+ { type: 'text/sgml', extensions: ['.sgm', '.sgml'] },
698
+ { type: 'text/tab-separated-values', extensions: ['.tsv'] },
699
+ { type: 'text/troff', extensions: ['.man', '.me', '.ms', '.roff', '.t', '.tr'] },
700
+ { type: 'text/uri-list', extensions: ['.uri', '.uris', '.urls'] },
701
+ { type: 'text/vnd.curl', extensions: ['.curl'] },
702
+ { type: 'text/vnd.curl.dcurl', extensions: ['.dcurl'] },
703
+ { type: 'text/vnd.curl.mcurl', extensions: ['.mcurl'] },
704
+ { type: 'text/vnd.curl.scurl', extensions: ['.scurl'] },
705
+ { type: 'text/vnd.fly', extensions: ['.fly'] },
706
+ { type: 'text/vnd.fmi.flexstor', extensions: ['.flx'] },
707
+ { type: 'text/vnd.graphviz', extensions: ['.gv'] },
708
+ { type: 'text/vnd.in3d.3dml', extensions: ['.3dml'] },
709
+ { type: 'text/vnd.in3d.spot', extensions: ['.spot'] },
710
+ { type: 'text/vnd.sun.j2me.app-descriptor', extensions: ['.jad'] },
711
+ { type: 'text/vnd.wap.si', extensions: ['.si'] },
712
+ { type: 'text/vnd.wap.sl', extensions: ['.sl'] },
713
+ { type: 'text/vnd.wap.wml', extensions: ['.wml'] },
714
+ { type: 'text/vnd.wap.wmlscript', extensions: ['.wmls'] },
715
+ { type: 'text/x-asm', extensions: ['.asm', '.s'] },
716
+ { type: 'text/x-c', extensions: ['.c', '.cc', '.cpp', '.cxx', '.dic', '.h', '.hh'] },
717
+ { type: 'text/x-fortran', extensions: ['.f', '.f77', '.f90', '.for'] },
718
+ { type: 'text/x-java-source', extensions: ['.java'] },
719
+ { type: 'text/x-pascal', extensions: ['.p', '.pas', '.pp', '.inc'] },
720
+ { type: 'text/x-python', extensions: ['.py'] },
721
+ { type: 'text/x-setext', extensions: ['.etx'] },
722
+ { type: 'text/x-uuencode', extensions: ['.uu'] },
723
+ { type: 'text/x-vcalendar', extensions: ['.vcs'] },
724
+ { type: 'text/x-vcard', extensions: ['.vcf'] },
725
+ { type: 'video/3gpp', extensions: ['.3gp'] },
726
+ { type: 'video/3gpp2', extensions: ['.3g2'] },
727
+ { type: 'video/h261', extensions: ['.h261'] },
728
+ { type: 'video/h263', extensions: ['.h263'] },
729
+ { type: 'video/h264', extensions: ['.h264'] },
730
+ { type: 'video/jpeg', extensions: ['.jpgv'] },
731
+ { type: 'video/jpm', extensions: ['.jpgm', '.jpm'] },
732
+ { type: 'video/mj2', extensions: ['.mj2', '.mjp2'] },
733
+ { type: 'video/mp4', extensions: ['.mp4', '.mp4v', '.mpg4'] },
734
+ { type: 'video/mpeg', extensions: ['.m1v', '.m2v', '.mpa', '.mpe', '.mpeg', '.mpg'] },
735
+ { type: 'video/ogg', extensions: ['.ogv'] },
736
+ { type: 'video/quicktime', extensions: ['.mov', '.qt'] },
737
+ { type: 'video/vnd.fvt', extensions: ['.fvt'] },
738
+ { type: 'video/vnd.mpegurl', extensions: ['.m4u', '.mxu'] },
739
+ { type: 'video/vnd.ms-playready.media.pyv', extensions: ['.pyv'] },
740
+ { type: 'video/vnd.vivo', extensions: ['.viv'] },
741
+ { type: 'video/webm', extensions: ['.webm'] },
742
+ { type: 'video/x-f4v', extensions: ['.f4v'] },
743
+ { type: 'video/x-fli', extensions: ['.fli'] },
744
+ { type: 'video/x-flv', extensions: ['.flv'] },
745
+ { type: 'video/x-m4v', extensions: ['.m4v'] },
746
+ { type: 'video/x-matroska', extensions: ['.mkv'] },
747
+ { type: 'video/x-ms-asf', extensions: ['.asf', '.asx'] },
748
+ { type: 'video/x-ms-wm', extensions: ['.wm'] },
749
+ { type: 'video/x-ms-wmv', extensions: ['.wmv'] },
750
+ { type: 'video/x-ms-wmx', extensions: ['.wmx'] },
751
+ { type: 'video/x-ms-wvx', extensions: ['.wvx'] },
752
+ { type: 'video/x-msvideo', extensions: ['.avi'] },
753
+ { type: 'video/x-sgi-movie', extensions: ['.movie'] },
754
+ { type: 'x-conference/x-cooltalk', extensions: ['.ice'] },
755
+ ];
756
+ /**
757
+ * Map(.ext => 'MIME-Type')
758
+ */
759
+ export const MIMETypesMap = new Map();
760
+ MIMETypes.forEach(({ type, extensions }) => {
761
+ extensions.forEach(extension => {
762
+ MIMETypesMap.set(extension, type);
763
+ });
764
+ });