@c9up/ream 0.2.13 → 0.2.15

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 (192) hide show
  1. package/README.md +1 -0
  2. package/dist/Application.d.ts.map +1 -1
  3. package/dist/Application.js +6 -1
  4. package/dist/Application.js.map +1 -1
  5. package/dist/GracefulShutdown.js +6 -5
  6. package/dist/GracefulShutdown.js.map +1 -1
  7. package/dist/Provider.d.ts +20 -2
  8. package/dist/Provider.d.ts.map +1 -1
  9. package/dist/Provider.js.map +1 -1
  10. package/dist/bodyparser/MultipartFile.d.ts +33 -7
  11. package/dist/bodyparser/MultipartFile.d.ts.map +1 -1
  12. package/dist/bodyparser/MultipartFile.js +61 -12
  13. package/dist/bodyparser/MultipartFile.js.map +1 -1
  14. package/dist/bodyparser/parseSize.d.ts.map +1 -1
  15. package/dist/bodyparser/parseSize.js +3 -2
  16. package/dist/bodyparser/parseSize.js.map +1 -1
  17. package/dist/commands/MigrateBase.d.ts.map +1 -1
  18. package/dist/commands/MigrateBase.js +4 -1
  19. package/dist/commands/MigrateBase.js.map +1 -1
  20. package/dist/console/Kernel.d.ts.map +1 -1
  21. package/dist/console/Kernel.js +7 -0
  22. package/dist/console/Kernel.js.map +1 -1
  23. package/dist/console/types.d.ts +14 -0
  24. package/dist/console/types.d.ts.map +1 -1
  25. package/dist/console/types.js.map +1 -1
  26. package/dist/container/Container.d.ts +19 -3
  27. package/dist/container/Container.d.ts.map +1 -1
  28. package/dist/container/Container.js +89 -31
  29. package/dist/container/Container.js.map +1 -1
  30. package/dist/container/ContainerResolver.js.map +1 -1
  31. package/dist/container/types.d.ts +11 -1
  32. package/dist/container/types.d.ts.map +1 -1
  33. package/dist/decorators/Service.d.ts +1 -1
  34. package/dist/decorators/Service.d.ts.map +1 -1
  35. package/dist/env/Env.d.ts.map +1 -1
  36. package/dist/env/Env.js +4 -2
  37. package/dist/env/Env.js.map +1 -1
  38. package/dist/env/interpolate.d.ts.map +1 -1
  39. package/dist/env/interpolate.js +5 -3
  40. package/dist/env/interpolate.js.map +1 -1
  41. package/dist/errors/FuzzyMatcher.d.ts.map +1 -1
  42. package/dist/errors/FuzzyMatcher.js +30 -13
  43. package/dist/errors/FuzzyMatcher.js.map +1 -1
  44. package/dist/errors/PipelineStageError.d.ts.map +1 -1
  45. package/dist/errors/PipelineStageError.js +4 -2
  46. package/dist/errors/PipelineStageError.js.map +1 -1
  47. package/dist/events/Emitter.d.ts +21 -4
  48. package/dist/events/Emitter.d.ts.map +1 -1
  49. package/dist/events/Emitter.js +6 -2
  50. package/dist/events/Emitter.js.map +1 -1
  51. package/dist/events/testing/FakeBus.d.ts +1 -1
  52. package/dist/events/testing/FakeBus.d.ts.map +1 -1
  53. package/dist/events/testing/FakeBus.js.map +1 -1
  54. package/dist/graphql/GraphQLEngine.d.ts +2 -2
  55. package/dist/graphql/GraphQLEngine.d.ts.map +1 -1
  56. package/dist/graphql/GraphQLEngine.js +4 -2
  57. package/dist/graphql/GraphQLEngine.js.map +1 -1
  58. package/dist/helpers/bytes.d.ts.map +1 -1
  59. package/dist/helpers/bytes.js +13 -2
  60. package/dist/helpers/bytes.js.map +1 -1
  61. package/dist/helpers/string.js +3 -3
  62. package/dist/helpers/string.js.map +1 -1
  63. package/dist/http/Exception.d.ts +8 -4
  64. package/dist/http/Exception.d.ts.map +1 -1
  65. package/dist/http/Exception.js +14 -8
  66. package/dist/http/Exception.js.map +1 -1
  67. package/dist/http/Request.d.ts.map +1 -1
  68. package/dist/http/Request.js +10 -7
  69. package/dist/http/Request.js.map +1 -1
  70. package/dist/http/Response.d.ts.map +1 -1
  71. package/dist/http/Response.js +4 -9
  72. package/dist/http/Response.js.map +1 -1
  73. package/dist/http/SseStream.d.ts.map +1 -1
  74. package/dist/http/SseStream.js +10 -1
  75. package/dist/http/SseStream.js.map +1 -1
  76. package/dist/http/etag.d.ts +44 -0
  77. package/dist/http/etag.d.ts.map +1 -0
  78. package/dist/http/etag.js +65 -0
  79. package/dist/http/etag.js.map +1 -0
  80. package/dist/http/mime.d.ts +33 -0
  81. package/dist/http/mime.d.ts.map +1 -0
  82. package/dist/http/mime.js +1347 -0
  83. package/dist/http/mime.js.map +1 -0
  84. package/dist/index.d.ts +3 -3
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +1 -1
  87. package/dist/native/generated.d.ts +12 -8
  88. package/dist/native/generated.d.ts.map +1 -1
  89. package/dist/openapi/OpenApiGenerator.d.ts.map +1 -1
  90. package/dist/openapi/OpenApiGenerator.js +6 -4
  91. package/dist/openapi/OpenApiGenerator.js.map +1 -1
  92. package/dist/router/Router.d.ts +10 -1
  93. package/dist/router/Router.d.ts.map +1 -1
  94. package/dist/router/Router.js +22 -10
  95. package/dist/router/Router.js.map +1 -1
  96. package/dist/rpc/RpcRouter.d.ts +16 -3
  97. package/dist/rpc/RpcRouter.d.ts.map +1 -1
  98. package/dist/rpc/RpcRouter.js +34 -3
  99. package/dist/rpc/RpcRouter.js.map +1 -1
  100. package/dist/scheduler/Schedule.d.ts +6 -1
  101. package/dist/scheduler/Schedule.d.ts.map +1 -1
  102. package/dist/scheduler/Schedule.js +5 -0
  103. package/dist/scheduler/Schedule.js.map +1 -1
  104. package/dist/security/CookieSigner.d.ts.map +1 -1
  105. package/dist/security/CookieSigner.js +12 -5
  106. package/dist/security/CookieSigner.js.map +1 -1
  107. package/dist/security/SignedUrl.js +3 -2
  108. package/dist/security/SignedUrl.js.map +1 -1
  109. package/dist/session/drivers/DatabaseDriver.d.ts +13 -1
  110. package/dist/session/drivers/DatabaseDriver.d.ts.map +1 -1
  111. package/dist/session/drivers/DatabaseDriver.js +23 -3
  112. package/dist/session/drivers/DatabaseDriver.js.map +1 -1
  113. package/dist/session/drivers/RedisDriver.d.ts.map +1 -1
  114. package/dist/session/drivers/RedisDriver.js +10 -2
  115. package/dist/session/drivers/RedisDriver.js.map +1 -1
  116. package/dist/storage/StaticMiddleware.d.ts.map +1 -1
  117. package/dist/storage/StaticMiddleware.js +78 -59
  118. package/dist/storage/StaticMiddleware.js.map +1 -1
  119. package/dist/testing/ApiResponse.d.ts.map +1 -1
  120. package/dist/testing/ApiResponse.js +10 -11
  121. package/dist/testing/ApiResponse.js.map +1 -1
  122. package/dist/testing/TestClient.js +6 -6
  123. package/dist/testing/TestClient.js.map +1 -1
  124. package/dist/utils/Macroable.d.ts +6 -2
  125. package/dist/utils/Macroable.d.ts.map +1 -1
  126. package/dist/utils/Macroable.js +4 -0
  127. package/dist/utils/Macroable.js.map +1 -1
  128. package/dist/utils/objectPath.d.ts.map +1 -1
  129. package/dist/utils/objectPath.js +14 -6
  130. package/dist/utils/objectPath.js.map +1 -1
  131. package/events.darwin-arm64.node +0 -0
  132. package/events.darwin-x64.node +0 -0
  133. package/events.linux-arm64-gnu.node +0 -0
  134. package/events.linux-x64-gnu.node +0 -0
  135. package/events.win32-x64-msvc.node +0 -0
  136. package/index.darwin-arm64.node +0 -0
  137. package/index.darwin-x64.node +0 -0
  138. package/index.linux-arm64-gnu.node +0 -0
  139. package/index.linux-x64-gnu.node +0 -0
  140. package/index.win32-x64-msvc.node +0 -0
  141. package/package.json +5 -7
  142. package/scheduler.darwin-arm64.node +0 -0
  143. package/scheduler.darwin-x64.node +0 -0
  144. package/scheduler.linux-arm64-gnu.node +0 -0
  145. package/scheduler.linux-x64-gnu.node +0 -0
  146. package/scheduler.win32-x64-msvc.node +0 -0
  147. package/scripts/build-napi-types.mjs +4 -3
  148. package/scripts/generate-mime.mjs +119 -0
  149. package/scripts/generate-napi-types.mjs +28 -12
  150. package/src/Application.ts +6 -1
  151. package/src/GracefulShutdown.ts +5 -5
  152. package/src/Provider.ts +21 -2
  153. package/src/bodyparser/MultipartFile.ts +94 -16
  154. package/src/bodyparser/parseSize.ts +3 -2
  155. package/src/commands/MigrateBase.ts +4 -1
  156. package/src/console/BaseCommand.ts +1 -1
  157. package/src/console/Kernel.ts +8 -0
  158. package/src/console/types.ts +15 -0
  159. package/src/container/Container.ts +120 -57
  160. package/src/container/ContainerResolver.ts +1 -1
  161. package/src/container/types.ts +11 -1
  162. package/src/decorators/Service.ts +1 -1
  163. package/src/env/Env.ts +4 -2
  164. package/src/env/interpolate.ts +5 -3
  165. package/src/errors/FuzzyMatcher.ts +34 -13
  166. package/src/errors/PipelineStageError.ts +4 -2
  167. package/src/events/Emitter.ts +34 -8
  168. package/src/events/testing/FakeBus.ts +12 -5
  169. package/src/graphql/GraphQLEngine.ts +11 -7
  170. package/src/helpers/bytes.ts +13 -2
  171. package/src/helpers/string.ts +3 -3
  172. package/src/http/Exception.ts +14 -8
  173. package/src/http/Request.ts +8 -5
  174. package/src/http/Response.ts +4 -8
  175. package/src/http/SseStream.ts +16 -7
  176. package/src/http/etag.ts +68 -0
  177. package/src/http/mime.ts +1347 -0
  178. package/src/index.ts +3 -3
  179. package/src/native/generated.ts +12 -8
  180. package/src/openapi/OpenApiGenerator.ts +6 -4
  181. package/src/router/Router.ts +31 -11
  182. package/src/rpc/RpcRouter.ts +38 -8
  183. package/src/scheduler/Schedule.ts +8 -1
  184. package/src/security/CookieSigner.ts +15 -5
  185. package/src/security/SignedUrl.ts +3 -2
  186. package/src/session/drivers/DatabaseDriver.ts +36 -8
  187. package/src/session/drivers/RedisDriver.ts +13 -5
  188. package/src/storage/StaticMiddleware.ts +81 -66
  189. package/src/testing/ApiResponse.ts +9 -10
  190. package/src/testing/TestClient.ts +6 -6
  191. package/src/utils/Macroable.ts +6 -2
  192. package/src/utils/objectPath.ts +12 -6
@@ -0,0 +1,1347 @@
1
+ /**
2
+ * Content types for a response, resolved here rather than pulled in.
3
+ *
4
+ * `response.type("txt")` has to become `text/plain; charset=utf-8`, which is a
5
+ * lookup table and one charset rule — the same job `@c9up/archive` already
6
+ * does in its own table, so the framework was carrying a dependency for work
7
+ * the ecosystem already owned.
8
+ *
9
+ * A hand-written table is what made that a regression rather than a saving:
10
+ * it knew the extensions someone thought of, so `.yaml`, `.sql`, `.opus` and
11
+ * `.xhtml` fell through and the caller's own string went out as the content
12
+ * type. The tables below are GENERATED from mime-db instead, which is where
13
+ * `mime-types` reads them too, so the resolution is the same one and stays
14
+ * the same one.
15
+ *
16
+ * Regenerate with:
17
+ *
18
+ * node scripts/generate-mime.mjs
19
+ *
20
+ * Do not edit {@link TYPES} or {@link CHARSETS} by hand.
21
+ *
22
+ * @generated from mime-db 1.54.0 (1239 extensions)
23
+ */
24
+ /** Extension → type. No leading dot; lowercase. */
25
+ const TYPES = {
26
+ '123': 'application/vnd.lotus-1-2-3',
27
+ '1km': 'application/vnd.1000minds.decision-model+xml',
28
+ '210': 'model/step',
29
+ '3dml': 'text/vnd.in3d.3dml',
30
+ '3ds': 'image/x-3ds',
31
+ '3g2': 'video/3gpp2',
32
+ '3gp': 'video/3gpp',
33
+ '3gpp': 'video/3gpp',
34
+ '3mf': 'model/3mf',
35
+ '7z': 'application/x-7z-compressed',
36
+ aab: 'application/x-authorware-bin',
37
+ aac: 'audio/aac',
38
+ aam: 'application/x-authorware-map',
39
+ aas: 'application/x-authorware-seg',
40
+ abw: 'application/x-abiword',
41
+ ac: 'application/pkix-attr-cert',
42
+ acc: 'application/vnd.americandynamics.acc',
43
+ ace: 'application/x-ace-compressed',
44
+ acu: 'application/vnd.acucobol',
45
+ acutc: 'application/vnd.acucorp',
46
+ adp: 'audio/adpcm',
47
+ adts: 'audio/aac',
48
+ aep: 'application/vnd.audiograph',
49
+ afm: 'application/x-font-type1',
50
+ afp: 'application/vnd.ibm.modcap',
51
+ age: 'application/vnd.age',
52
+ ahead: 'application/vnd.ahead.space',
53
+ ai: 'application/postscript',
54
+ aif: 'audio/x-aiff',
55
+ aifc: 'audio/x-aiff',
56
+ aiff: 'audio/x-aiff',
57
+ air: 'application/vnd.adobe.air-application-installer-package+zip',
58
+ ait: 'application/vnd.dvb.ait',
59
+ ami: 'application/vnd.amiga.ami',
60
+ aml: 'application/automationml-aml+xml',
61
+ amlx: 'application/automationml-amlx+zip',
62
+ amr: 'audio/amr',
63
+ apk: 'application/vnd.android.package-archive',
64
+ apng: 'image/apng',
65
+ appcache: 'text/cache-manifest',
66
+ appinstaller: 'application/appinstaller',
67
+ application: 'application/x-ms-application',
68
+ appx: 'application/appx',
69
+ appxbundle: 'application/appxbundle',
70
+ apr: 'application/vnd.lotus-approach',
71
+ arc: 'application/x-freearc',
72
+ arj: 'application/x-arj',
73
+ asc: 'application/pgp-keys',
74
+ asf: 'video/x-ms-asf',
75
+ asm: 'text/x-asm',
76
+ aso: 'application/vnd.accpac.simply.aso',
77
+ asx: 'video/x-ms-asf',
78
+ atc: 'application/vnd.acucorp',
79
+ atom: 'application/atom+xml',
80
+ atomcat: 'application/atomcat+xml',
81
+ atomdeleted: 'application/atomdeleted+xml',
82
+ atomsvc: 'application/atomsvc+xml',
83
+ atx: 'application/vnd.antix.game-component',
84
+ au: 'audio/basic',
85
+ avci: 'image/avci',
86
+ avcs: 'image/avcs',
87
+ avi: 'video/x-msvideo',
88
+ avif: 'image/avif',
89
+ aw: 'application/applixware',
90
+ azf: 'application/vnd.airzip.filesecure.azf',
91
+ azs: 'application/vnd.airzip.filesecure.azs',
92
+ azv: 'image/vnd.airzip.accelerator.azv',
93
+ azw: 'application/vnd.amazon.ebook',
94
+ b16: 'image/vnd.pco.b16',
95
+ bary: 'model/vnd.bary',
96
+ bat: 'application/x-msdownload',
97
+ bcpio: 'application/x-bcpio',
98
+ bdf: 'application/x-font-bdf',
99
+ bdm: 'application/vnd.syncml.dm+wbxml',
100
+ bdo: 'application/vnd.nato.bindingdataobject+xml',
101
+ bdoc: 'application/bdoc',
102
+ bed: 'application/vnd.realvnc.bed',
103
+ bh2: 'application/vnd.fujitsu.oasysprs',
104
+ bin: 'application/octet-stream',
105
+ blb: 'application/x-blorb',
106
+ blend: 'application/x-blender',
107
+ blorb: 'application/x-blorb',
108
+ bmi: 'application/vnd.bmi',
109
+ bmml: 'application/vnd.balsamiq.bmml+xml',
110
+ bmp: 'image/bmp',
111
+ book: 'application/vnd.framemaker',
112
+ box: 'application/vnd.previewsystems.box',
113
+ boz: 'application/x-bzip2',
114
+ bpk: 'application/octet-stream',
115
+ brush: 'application/vnd.procreate.brush',
116
+ brushset: 'application/vnd.procrate.brushset',
117
+ bsp: 'model/vnd.valve.source.compiled-map',
118
+ btf: 'image/prs.btif',
119
+ btif: 'image/prs.btif',
120
+ buffer: 'application/octet-stream',
121
+ bz: 'application/x-bzip',
122
+ bz2: 'application/x-bzip2',
123
+ c: 'text/x-c',
124
+ c11amc: 'application/vnd.cluetrust.cartomobile-config',
125
+ c11amz: 'application/vnd.cluetrust.cartomobile-config-pkg',
126
+ c4d: 'application/vnd.clonk.c4group',
127
+ c4f: 'application/vnd.clonk.c4group',
128
+ c4g: 'application/vnd.clonk.c4group',
129
+ c4p: 'application/vnd.clonk.c4group',
130
+ c4u: 'application/vnd.clonk.c4group',
131
+ cab: 'application/vnd.ms-cab-compressed',
132
+ caf: 'audio/x-caf',
133
+ cap: 'application/vnd.tcpdump.pcap',
134
+ car: 'application/vnd.curl.car',
135
+ cat: 'application/vnd.ms-pki.seccat',
136
+ cb7: 'application/x-cbr',
137
+ cba: 'application/x-cbr',
138
+ cbr: 'application/x-cbr',
139
+ cbt: 'application/x-cbr',
140
+ cbz: 'application/x-cbr',
141
+ cc: 'text/x-c',
142
+ cco: 'application/x-cocoa',
143
+ cct: 'application/x-director',
144
+ ccxml: 'application/ccxml+xml',
145
+ cdbcmsg: 'application/vnd.contact.cmsg',
146
+ cdf: 'application/x-netcdf',
147
+ cdfx: 'application/cdfx+xml',
148
+ cdkey: 'application/vnd.mediastation.cdkey',
149
+ cdmia: 'application/cdmi-capability',
150
+ cdmic: 'application/cdmi-container',
151
+ cdmid: 'application/cdmi-domain',
152
+ cdmio: 'application/cdmi-object',
153
+ cdmiq: 'application/cdmi-queue',
154
+ cdx: 'chemical/x-cdx',
155
+ cdxml: 'application/vnd.chemdraw+xml',
156
+ cdy: 'application/vnd.cinderella',
157
+ cer: 'application/pkix-cert',
158
+ cfs: 'application/x-cfs-compressed',
159
+ cgm: 'image/cgm',
160
+ chat: 'application/x-chat',
161
+ chm: 'application/vnd.ms-htmlhelp',
162
+ chrt: 'application/vnd.kde.kchart',
163
+ cif: 'chemical/x-cif',
164
+ cii: 'application/vnd.anser-web-certificate-issue-initiation',
165
+ cil: 'application/vnd.ms-artgalry',
166
+ cjs: 'application/node',
167
+ cla: 'application/vnd.claymore',
168
+ class: 'application/java-vm',
169
+ cld: 'model/vnd.cld',
170
+ clkk: 'application/vnd.crick.clicker.keyboard',
171
+ clkp: 'application/vnd.crick.clicker.palette',
172
+ clkt: 'application/vnd.crick.clicker.template',
173
+ clkw: 'application/vnd.crick.clicker.wordbank',
174
+ clkx: 'application/vnd.crick.clicker',
175
+ clp: 'application/x-msclip',
176
+ cmc: 'application/vnd.cosmocaller',
177
+ cmdf: 'chemical/x-cmdf',
178
+ cml: 'chemical/x-cml',
179
+ cmp: 'application/vnd.yellowriver-custom-menu',
180
+ cmx: 'image/x-cmx',
181
+ cod: 'application/vnd.rim.cod',
182
+ coffee: 'text/coffeescript',
183
+ com: 'application/x-msdownload',
184
+ conf: 'text/plain',
185
+ cpio: 'application/x-cpio',
186
+ cpl: 'application/cpl+xml',
187
+ cpp: 'text/x-c',
188
+ cpt: 'application/mac-compactpro',
189
+ crd: 'application/x-mscardfile',
190
+ crl: 'application/pkix-crl',
191
+ crt: 'application/x-x509-ca-cert',
192
+ crx: 'application/x-chrome-extension',
193
+ cryptonote: 'application/vnd.rig.cryptonote',
194
+ csh: 'application/x-csh',
195
+ csl: 'application/vnd.citationstyles.style+xml',
196
+ csml: 'chemical/x-csml',
197
+ csp: 'application/vnd.commonspace',
198
+ css: 'text/css',
199
+ cst: 'application/x-director',
200
+ csv: 'text/csv',
201
+ cu: 'application/cu-seeme',
202
+ curl: 'text/vnd.curl',
203
+ cwl: 'application/cwl',
204
+ cww: 'application/prs.cww',
205
+ cxt: 'application/x-director',
206
+ cxx: 'text/x-c',
207
+ dae: 'model/vnd.collada+xml',
208
+ daf: 'application/vnd.mobius.daf',
209
+ dart: 'application/vnd.dart',
210
+ dataless: 'application/vnd.fdsn.seed',
211
+ davmount: 'application/davmount+xml',
212
+ dbf: 'application/vnd.dbf',
213
+ dbk: 'application/docbook+xml',
214
+ dcm: 'application/dicom',
215
+ dcmp: 'application/vnd.dcmp+xml',
216
+ dcr: 'application/x-director',
217
+ dcurl: 'text/vnd.curl.dcurl',
218
+ dd2: 'application/vnd.oma.dd2+xml',
219
+ ddd: 'application/vnd.fujixerox.ddd',
220
+ ddf: 'application/vnd.syncml.dmddf+xml',
221
+ dds: 'image/vnd.ms-dds',
222
+ deb: 'application/x-debian-package',
223
+ def: 'text/plain',
224
+ deploy: 'application/octet-stream',
225
+ der: 'application/x-x509-ca-cert',
226
+ dfac: 'application/vnd.dreamfactory',
227
+ dgc: 'application/x-dgc-compressed',
228
+ dib: 'image/bmp',
229
+ dic: 'text/x-c',
230
+ dir: 'application/x-director',
231
+ dis: 'application/vnd.mobius.dis',
232
+ 'disposition-notification': 'message/disposition-notification',
233
+ dist: 'application/octet-stream',
234
+ distz: 'application/octet-stream',
235
+ djv: 'image/vnd.djvu',
236
+ djvu: 'image/vnd.djvu',
237
+ dll: 'application/x-msdownload',
238
+ dmg: 'application/x-apple-diskimage',
239
+ dmp: 'application/vnd.tcpdump.pcap',
240
+ dms: 'application/octet-stream',
241
+ dna: 'application/vnd.dna',
242
+ dng: 'image/x-adobe-dng',
243
+ doc: 'application/msword',
244
+ docm: 'application/vnd.ms-word.document.macroenabled.12',
245
+ docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
246
+ dot: 'application/msword',
247
+ dotm: 'application/vnd.ms-word.template.macroenabled.12',
248
+ dotx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
249
+ dp: 'application/vnd.osgi.dp',
250
+ dpg: 'application/vnd.dpgraph',
251
+ dpx: 'image/dpx',
252
+ dra: 'audio/vnd.dra',
253
+ drle: 'image/dicom-rle',
254
+ drm: 'application/vnd.procreate.dream',
255
+ dsc: 'text/prs.lines.tag',
256
+ dssc: 'application/dssc+der',
257
+ dtb: 'application/x-dtbook+xml',
258
+ dtd: 'application/xml-dtd',
259
+ dts: 'audio/vnd.dts',
260
+ dtshd: 'audio/vnd.dts.hd',
261
+ dump: 'application/octet-stream',
262
+ dvb: 'video/vnd.dvb.file',
263
+ dvi: 'application/x-dvi',
264
+ dwd: 'application/atsc-dwd+xml',
265
+ dwf: 'model/vnd.dwf',
266
+ dwg: 'image/vnd.dwg',
267
+ dxf: 'image/vnd.dxf',
268
+ dxp: 'application/vnd.spotfire.dxp',
269
+ dxr: 'application/x-director',
270
+ ear: 'application/java-archive',
271
+ ecelp4800: 'audio/vnd.nuera.ecelp4800',
272
+ ecelp7470: 'audio/vnd.nuera.ecelp7470',
273
+ ecelp9600: 'audio/vnd.nuera.ecelp9600',
274
+ ecma: 'application/ecmascript',
275
+ edm: 'application/vnd.novadigm.edm',
276
+ edx: 'application/vnd.novadigm.edx',
277
+ efif: 'application/vnd.picsel',
278
+ ei6: 'application/vnd.pg.osasli',
279
+ elc: 'application/octet-stream',
280
+ emf: 'image/emf',
281
+ eml: 'message/rfc822',
282
+ emma: 'application/emma+xml',
283
+ emotionml: 'application/emotionml+xml',
284
+ emz: 'application/x-msmetafile',
285
+ eol: 'audio/vnd.digital-winds',
286
+ eot: 'application/vnd.ms-fontobject',
287
+ eps: 'application/postscript',
288
+ epub: 'application/epub+zip',
289
+ es3: 'application/vnd.eszigno3+xml',
290
+ esa: 'application/vnd.osgi.subsystem',
291
+ esf: 'application/vnd.epson.esf',
292
+ et3: 'application/vnd.eszigno3+xml',
293
+ etx: 'text/x-setext',
294
+ eva: 'application/x-eva',
295
+ evy: 'application/x-envoy',
296
+ exe: 'application/x-msdos-program',
297
+ exi: 'application/exi',
298
+ exp: 'application/express',
299
+ exr: 'image/aces',
300
+ ext: 'application/vnd.novadigm.ext',
301
+ ez: 'application/andrew-inset',
302
+ ez2: 'application/vnd.ezpix-album',
303
+ ez3: 'application/vnd.ezpix-package',
304
+ f: 'text/x-fortran',
305
+ f4v: 'video/x-f4v',
306
+ f77: 'text/x-fortran',
307
+ f90: 'text/x-fortran',
308
+ fbs: 'image/vnd.fastbidsheet',
309
+ fbx: 'application/vnd.autodesk.fbx',
310
+ fcdt: 'application/vnd.adobe.formscentral.fcdt',
311
+ fcs: 'application/vnd.isac.fcs',
312
+ fdf: 'application/fdf',
313
+ fdt: 'application/fdt+xml',
314
+ fe_launch: 'application/vnd.denovo.fcselayout-link',
315
+ fg5: 'application/vnd.fujitsu.oasysgp',
316
+ fgd: 'application/x-director',
317
+ fh: 'image/x-freehand',
318
+ fh4: 'image/x-freehand',
319
+ fh5: 'image/x-freehand',
320
+ fh7: 'image/x-freehand',
321
+ fhc: 'image/x-freehand',
322
+ fig: 'application/x-xfig',
323
+ fits: 'image/fits',
324
+ flac: 'audio/x-flac',
325
+ fli: 'video/x-fli',
326
+ flo: 'application/vnd.micrografx.flo',
327
+ flv: 'video/x-flv',
328
+ flw: 'application/vnd.kde.kivio',
329
+ flx: 'text/vnd.fmi.flexstor',
330
+ fly: 'text/vnd.fly',
331
+ fm: 'application/vnd.framemaker',
332
+ fnc: 'application/vnd.frogans.fnc',
333
+ fo: 'application/vnd.software602.filler.form+xml',
334
+ for: 'text/x-fortran',
335
+ fpx: 'image/vnd.fpx',
336
+ frame: 'application/vnd.framemaker',
337
+ fsc: 'application/vnd.fsc.weblaunch',
338
+ fst: 'image/vnd.fst',
339
+ ftc: 'application/vnd.fluxtime.clip',
340
+ fti: 'application/vnd.anser-web-funds-transfer-initiation',
341
+ fvt: 'video/vnd.fvt',
342
+ fxp: 'application/vnd.adobe.fxp',
343
+ fxpl: 'application/vnd.adobe.fxp',
344
+ fzs: 'application/vnd.fuzzysheet',
345
+ g2w: 'application/vnd.geoplan',
346
+ g3: 'image/g3fax',
347
+ g3w: 'application/vnd.geospace',
348
+ gac: 'application/vnd.groove-account',
349
+ gam: 'application/x-tads',
350
+ gbr: 'application/rpki-ghostbusters',
351
+ gca: 'application/x-gca-compressed',
352
+ gdl: 'model/vnd.gdl',
353
+ gdoc: 'application/vnd.google-apps.document',
354
+ gdraw: 'application/vnd.google-apps.drawing',
355
+ ged: 'text/vnd.familysearch.gedcom',
356
+ geo: 'application/vnd.dynageo',
357
+ geojson: 'application/geo+json',
358
+ gex: 'application/vnd.geometry-explorer',
359
+ gform: 'application/vnd.google-apps.form',
360
+ ggb: 'application/vnd.geogebra.file',
361
+ ggs: 'application/vnd.geogebra.slides',
362
+ ggt: 'application/vnd.geogebra.tool',
363
+ ghf: 'application/vnd.groove-help',
364
+ gif: 'image/gif',
365
+ gim: 'application/vnd.groove-identity-message',
366
+ gjam: 'application/vnd.google-apps.jam',
367
+ glb: 'model/gltf-binary',
368
+ gltf: 'model/gltf+json',
369
+ gmap: 'application/vnd.google-apps.map',
370
+ gml: 'application/gml+xml',
371
+ gmx: 'application/vnd.gmx',
372
+ gnumeric: 'application/x-gnumeric',
373
+ gph: 'application/vnd.flographit',
374
+ gpx: 'application/gpx+xml',
375
+ gqf: 'application/vnd.grafeq',
376
+ gqs: 'application/vnd.grafeq',
377
+ gram: 'application/srgs',
378
+ gramps: 'application/x-gramps-xml',
379
+ gre: 'application/vnd.geometry-explorer',
380
+ grv: 'application/vnd.groove-injector',
381
+ grxml: 'application/srgs+xml',
382
+ gscript: 'application/vnd.google-apps.script',
383
+ gsf: 'application/x-font-ghostscript',
384
+ gsheet: 'application/vnd.google-apps.spreadsheet',
385
+ gsite: 'application/vnd.google-apps.site',
386
+ gslides: 'application/vnd.google-apps.presentation',
387
+ gtar: 'application/x-gtar',
388
+ gtm: 'application/vnd.groove-tool-message',
389
+ gtw: 'model/vnd.gtw',
390
+ gv: 'text/vnd.graphviz',
391
+ gxf: 'application/gxf',
392
+ gxt: 'application/vnd.geonext',
393
+ gz: 'application/gzip',
394
+ h: 'text/x-c',
395
+ h261: 'video/h261',
396
+ h263: 'video/h263',
397
+ h264: 'video/h264',
398
+ hal: 'application/vnd.hal+xml',
399
+ hbci: 'application/vnd.hbci',
400
+ hbs: 'text/x-handlebars-template',
401
+ hdd: 'application/x-virtualbox-hdd',
402
+ hdf: 'application/x-hdf',
403
+ heic: 'image/heic',
404
+ heics: 'image/heic-sequence',
405
+ heif: 'image/heif',
406
+ heifs: 'image/heif-sequence',
407
+ hej2: 'image/hej2k',
408
+ held: 'application/atsc-held+xml',
409
+ hh: 'text/x-c',
410
+ hjson: 'application/hjson',
411
+ hlp: 'application/winhlp',
412
+ hpgl: 'application/vnd.hp-hpgl',
413
+ hpid: 'application/vnd.hp-hpid',
414
+ hps: 'application/vnd.hp-hps',
415
+ hqx: 'application/mac-binhex40',
416
+ htc: 'text/x-component',
417
+ htke: 'application/vnd.kenameaapp',
418
+ htm: 'text/html',
419
+ html: 'text/html',
420
+ hvd: 'application/vnd.yamaha.hv-dic',
421
+ hvp: 'application/vnd.yamaha.hv-voice',
422
+ hvs: 'application/vnd.yamaha.hv-script',
423
+ i2g: 'application/vnd.intergeo',
424
+ icc: 'application/vnd.iccprofile',
425
+ ice: 'x-conference/x-cooltalk',
426
+ icm: 'application/vnd.iccprofile',
427
+ ico: 'image/vnd.microsoft.icon',
428
+ ics: 'text/calendar',
429
+ ief: 'image/ief',
430
+ ifb: 'text/calendar',
431
+ ifm: 'application/vnd.shana.informed.formdata',
432
+ iges: 'model/iges',
433
+ igl: 'application/vnd.igloader',
434
+ igm: 'application/vnd.insors.igm',
435
+ igs: 'model/iges',
436
+ igx: 'application/vnd.micrografx.igx',
437
+ iif: 'application/vnd.shana.informed.interchange',
438
+ img: 'application/octet-stream',
439
+ imp: 'application/vnd.accpac.simply.imp',
440
+ ims: 'application/vnd.ms-ims',
441
+ in: 'text/plain',
442
+ ini: 'text/plain',
443
+ ink: 'application/inkml+xml',
444
+ inkml: 'application/inkml+xml',
445
+ install: 'application/x-install-instructions',
446
+ iota: 'application/vnd.astraea-software.iota',
447
+ ipfix: 'application/ipfix',
448
+ ipk: 'application/vnd.shana.informed.package',
449
+ ipynb: 'application/x-ipynb+json',
450
+ irm: 'application/vnd.ibm.rights-management',
451
+ irp: 'application/vnd.irepository.package+xml',
452
+ iso: 'application/x-iso9660-image',
453
+ itp: 'application/vnd.shana.informed.formtemplate',
454
+ its: 'application/its+xml',
455
+ ivp: 'application/vnd.immervision-ivp',
456
+ ivu: 'application/vnd.immervision-ivu',
457
+ jad: 'text/vnd.sun.j2me.app-descriptor',
458
+ jade: 'text/jade',
459
+ jaii: 'image/jaii',
460
+ jais: 'image/jais',
461
+ jam: 'application/vnd.jam',
462
+ jar: 'application/java-archive',
463
+ jardiff: 'application/x-java-archive-diff',
464
+ java: 'text/x-java-source',
465
+ jfif: 'image/pjpeg',
466
+ jhc: 'image/jphc',
467
+ jisp: 'application/vnd.jisp',
468
+ jls: 'image/jls',
469
+ jlt: 'application/vnd.hp-jlyt',
470
+ jng: 'image/x-jng',
471
+ jnlp: 'application/x-java-jnlp-file',
472
+ joda: 'application/vnd.joost.joda-archive',
473
+ jp2: 'image/jp2',
474
+ jpe: 'image/jpeg',
475
+ jpeg: 'image/jpeg',
476
+ jpf: 'image/jpx',
477
+ jpg: 'image/jpeg',
478
+ jpg2: 'image/jp2',
479
+ jpgm: 'image/jpm',
480
+ jpgv: 'video/jpeg',
481
+ jph: 'image/jph',
482
+ jpm: 'image/jpm',
483
+ jpx: 'image/jpx',
484
+ js: 'text/javascript',
485
+ json: 'application/json',
486
+ json5: 'application/json5',
487
+ jsonld: 'application/ld+json',
488
+ jsonml: 'application/jsonml+json',
489
+ jsx: 'text/jsx',
490
+ jt: 'model/jt',
491
+ jxl: 'image/jxl',
492
+ jxr: 'image/jxr',
493
+ jxra: 'image/jxra',
494
+ jxrs: 'image/jxrs',
495
+ jxs: 'image/jxs',
496
+ jxsc: 'image/jxsc',
497
+ jxsi: 'image/jxsi',
498
+ jxss: 'image/jxss',
499
+ kar: 'audio/midi',
500
+ karbon: 'application/vnd.kde.karbon',
501
+ kdbx: 'application/x-keepass2',
502
+ key: 'application/vnd.apple.keynote',
503
+ kfo: 'application/vnd.kde.kformula',
504
+ kia: 'application/vnd.kidspiration',
505
+ kml: 'application/vnd.google-earth.kml+xml',
506
+ kmz: 'application/vnd.google-earth.kmz',
507
+ kne: 'application/vnd.kinar',
508
+ knp: 'application/vnd.kinar',
509
+ kon: 'application/vnd.kde.kontour',
510
+ kpr: 'application/vnd.kde.kpresenter',
511
+ kpt: 'application/vnd.kde.kpresenter',
512
+ kpxx: 'application/vnd.ds-keypoint',
513
+ ksp: 'application/vnd.kde.kspread',
514
+ ktr: 'application/vnd.kahootz',
515
+ ktx: 'image/ktx',
516
+ ktx2: 'image/ktx2',
517
+ ktz: 'application/vnd.kahootz',
518
+ kwd: 'application/vnd.kde.kword',
519
+ kwt: 'application/vnd.kde.kword',
520
+ lasxml: 'application/vnd.las.las+xml',
521
+ latex: 'application/x-latex',
522
+ lbd: 'application/vnd.llamagraphics.life-balance.desktop',
523
+ lbe: 'application/vnd.llamagraphics.life-balance.exchange+xml',
524
+ les: 'application/vnd.hhe.lesson-player',
525
+ less: 'text/less',
526
+ lgr: 'application/lgr+xml',
527
+ lha: 'application/x-lzh-compressed',
528
+ link66: 'application/vnd.route66.link66+xml',
529
+ list: 'text/plain',
530
+ list3820: 'application/vnd.ibm.modcap',
531
+ listafp: 'application/vnd.ibm.modcap',
532
+ litcoffee: 'text/coffeescript',
533
+ lnk: 'application/x-ms-shortcut',
534
+ log: 'text/plain',
535
+ lostxml: 'application/lost+xml',
536
+ lottie: 'application/zip+dotlottie',
537
+ lrf: 'application/octet-stream',
538
+ lrm: 'application/vnd.ms-lrm',
539
+ ltf: 'application/vnd.frogans.ltf',
540
+ lua: 'text/x-lua',
541
+ luac: 'application/x-lua-bytecode',
542
+ lvp: 'audio/vnd.lucent.voice',
543
+ lwp: 'application/vnd.lotus-wordpro',
544
+ lzh: 'application/x-lzh-compressed',
545
+ m13: 'application/x-msmediaview',
546
+ m14: 'application/x-msmediaview',
547
+ m1v: 'video/mpeg',
548
+ m21: 'application/mp21',
549
+ m2a: 'audio/mpeg',
550
+ m2t: 'video/mp2t',
551
+ m2ts: 'video/mp2t',
552
+ m2v: 'video/mpeg',
553
+ m3a: 'audio/mpeg',
554
+ m3u: 'audio/x-mpegurl',
555
+ m3u8: 'application/vnd.apple.mpegurl',
556
+ m4a: 'audio/mp4',
557
+ m4b: 'audio/mp4',
558
+ m4p: 'application/mp4',
559
+ m4s: 'video/iso.segment',
560
+ m4u: 'video/vnd.mpegurl',
561
+ m4v: 'video/x-m4v',
562
+ ma: 'application/mathematica',
563
+ mads: 'application/mads+xml',
564
+ maei: 'application/mmt-aei+xml',
565
+ mag: 'application/vnd.ecowin.chart',
566
+ maker: 'application/vnd.framemaker',
567
+ man: 'text/troff',
568
+ manifest: 'text/cache-manifest',
569
+ map: 'application/json',
570
+ mar: 'application/octet-stream',
571
+ markdown: 'text/markdown',
572
+ mathml: 'application/mathml+xml',
573
+ mb: 'application/mathematica',
574
+ mbk: 'application/vnd.mobius.mbk',
575
+ mbox: 'application/mbox',
576
+ mc1: 'application/vnd.medcalcdata',
577
+ mcd: 'application/vnd.mcd',
578
+ mcurl: 'text/vnd.curl.mcurl',
579
+ md: 'text/markdown',
580
+ mdb: 'application/x-msaccess',
581
+ mdi: 'image/vnd.ms-modi',
582
+ mdx: 'text/mdx',
583
+ me: 'text/troff',
584
+ mesh: 'model/mesh',
585
+ meta4: 'application/metalink4+xml',
586
+ metalink: 'application/metalink+xml',
587
+ mets: 'application/mets+xml',
588
+ mfm: 'application/vnd.mfmp',
589
+ mft: 'application/rpki-manifest',
590
+ mgp: 'application/vnd.osgeo.mapguide.package',
591
+ mgz: 'application/vnd.proteus.magazine',
592
+ mht: 'message/rfc822',
593
+ mhtml: 'message/rfc822',
594
+ mid: 'audio/midi',
595
+ midi: 'audio/midi',
596
+ mie: 'application/x-mie',
597
+ mif: 'application/vnd.mif',
598
+ mime: 'message/rfc822',
599
+ mj2: 'video/mj2',
600
+ mjp2: 'video/mj2',
601
+ mjs: 'text/javascript',
602
+ mk3d: 'video/x-matroska',
603
+ mka: 'audio/x-matroska',
604
+ mkd: 'text/x-markdown',
605
+ mks: 'video/x-matroska',
606
+ mkv: 'video/x-matroska',
607
+ mlp: 'application/vnd.dolby.mlp',
608
+ mmd: 'application/vnd.chipnuts.karaoke-mmd',
609
+ mmf: 'application/vnd.smaf',
610
+ mml: 'text/mathml',
611
+ mmr: 'image/vnd.fujixerox.edmics-mmr',
612
+ mng: 'video/x-mng',
613
+ mny: 'application/x-msmoney',
614
+ mobi: 'application/x-mobipocket-ebook',
615
+ mods: 'application/mods+xml',
616
+ mov: 'video/quicktime',
617
+ movie: 'video/x-sgi-movie',
618
+ mp2: 'audio/mpeg',
619
+ mp21: 'application/mp21',
620
+ mp2a: 'audio/mpeg',
621
+ mp3: 'audio/mpeg',
622
+ mp4: 'video/mp4',
623
+ mp4a: 'audio/mp4',
624
+ mp4s: 'application/mp4',
625
+ mp4v: 'video/mp4',
626
+ mpc: 'application/vnd.mophun.certificate',
627
+ mpd: 'application/dash+xml',
628
+ mpe: 'video/mpeg',
629
+ mpeg: 'video/mpeg',
630
+ mpf: 'application/media-policy-dataset+xml',
631
+ mpg: 'video/mpeg',
632
+ mpg4: 'video/mp4',
633
+ mpga: 'audio/mpeg',
634
+ mpkg: 'application/vnd.apple.installer+xml',
635
+ mpm: 'application/vnd.blueice.multipass',
636
+ mpn: 'application/vnd.mophun.application',
637
+ mpp: 'application/dash-patch+xml',
638
+ mpt: 'application/vnd.ms-project',
639
+ mpy: 'application/vnd.ibm.minipay',
640
+ mqy: 'application/vnd.mobius.mqy',
641
+ mrc: 'application/marc',
642
+ mrcx: 'application/marcxml+xml',
643
+ ms: 'text/troff',
644
+ mscml: 'application/mediaservercontrol+xml',
645
+ mseed: 'application/vnd.fdsn.mseed',
646
+ mseq: 'application/vnd.mseq',
647
+ msf: 'application/vnd.epson.msf',
648
+ msg: 'application/vnd.ms-outlook',
649
+ msh: 'model/mesh',
650
+ msi: 'application/x-msdownload',
651
+ msix: 'application/msix',
652
+ msixbundle: 'application/msixbundle',
653
+ msl: 'application/vnd.mobius.msl',
654
+ msm: 'application/octet-stream',
655
+ msp: 'application/octet-stream',
656
+ msty: 'application/vnd.muvee.style',
657
+ mtl: 'model/mtl',
658
+ mts: 'video/mp2t',
659
+ mus: 'application/vnd.musician',
660
+ musd: 'application/mmt-usd+xml',
661
+ musicxml: 'application/vnd.recordare.musicxml+xml',
662
+ mvb: 'application/x-msmediaview',
663
+ mvt: 'application/vnd.mapbox-vector-tile',
664
+ mwf: 'application/vnd.mfer',
665
+ mxf: 'application/mxf',
666
+ mxl: 'application/vnd.recordare.musicxml',
667
+ mxmf: 'audio/mobile-xmf',
668
+ mxml: 'application/xv+xml',
669
+ mxs: 'application/vnd.triscape.mxs',
670
+ mxu: 'video/vnd.mpegurl',
671
+ 'n-gage': 'application/vnd.nokia.n-gage.symbian.install',
672
+ n3: 'text/n3',
673
+ nb: 'application/mathematica',
674
+ nbp: 'application/vnd.wolfram.player',
675
+ nc: 'application/x-netcdf',
676
+ ncx: 'application/x-dtbncx+xml',
677
+ nfo: 'text/x-nfo',
678
+ ngdat: 'application/vnd.nokia.n-gage.data',
679
+ nitf: 'application/vnd.nitf',
680
+ nlu: 'application/vnd.neurolanguage.nlu',
681
+ nml: 'application/vnd.enliven',
682
+ nnd: 'application/vnd.noblenet-directory',
683
+ nns: 'application/vnd.noblenet-sealer',
684
+ nnw: 'application/vnd.noblenet-web',
685
+ npx: 'image/vnd.net-fpx',
686
+ nq: 'application/n-quads',
687
+ nsc: 'application/x-conference',
688
+ nsf: 'application/vnd.lotus-notes',
689
+ nt: 'application/n-triples',
690
+ ntf: 'application/vnd.nitf',
691
+ numbers: 'application/vnd.apple.numbers',
692
+ nzb: 'application/x-nzb',
693
+ oa2: 'application/vnd.fujitsu.oasys2',
694
+ oa3: 'application/vnd.fujitsu.oasys3',
695
+ oas: 'application/vnd.fujitsu.oasys',
696
+ obd: 'application/x-msbinder',
697
+ obgx: 'application/vnd.openblox.game+xml',
698
+ obj: 'model/obj',
699
+ oda: 'application/oda',
700
+ odb: 'application/vnd.oasis.opendocument.database',
701
+ odc: 'application/vnd.oasis.opendocument.chart',
702
+ odf: 'application/vnd.oasis.opendocument.formula',
703
+ odft: 'application/vnd.oasis.opendocument.formula-template',
704
+ odg: 'application/vnd.oasis.opendocument.graphics',
705
+ odi: 'application/vnd.oasis.opendocument.image',
706
+ odm: 'application/vnd.oasis.opendocument.text-master',
707
+ odp: 'application/vnd.oasis.opendocument.presentation',
708
+ ods: 'application/vnd.oasis.opendocument.spreadsheet',
709
+ odt: 'application/vnd.oasis.opendocument.text',
710
+ oga: 'audio/ogg',
711
+ ogex: 'model/vnd.opengex',
712
+ ogg: 'audio/ogg',
713
+ ogv: 'video/ogg',
714
+ ogx: 'application/ogg',
715
+ omdoc: 'application/omdoc+xml',
716
+ one: 'application/onenote',
717
+ onea: 'application/onenote',
718
+ onepkg: 'application/onenote',
719
+ onetmp: 'application/onenote',
720
+ onetoc: 'application/onenote',
721
+ onetoc2: 'application/onenote',
722
+ opf: 'application/oebps-package+xml',
723
+ opml: 'text/x-opml',
724
+ oprc: 'application/vnd.palm',
725
+ opus: 'audio/ogg',
726
+ org: 'application/vnd.lotus-organizer',
727
+ osf: 'application/vnd.yamaha.openscoreformat',
728
+ osfpvg: 'application/vnd.yamaha.openscoreformat.osfpvg+xml',
729
+ osm: 'application/vnd.openstreetmap.data+xml',
730
+ otc: 'application/vnd.oasis.opendocument.chart-template',
731
+ otf: 'font/otf',
732
+ otg: 'application/vnd.oasis.opendocument.graphics-template',
733
+ oth: 'application/vnd.oasis.opendocument.text-web',
734
+ oti: 'application/vnd.oasis.opendocument.image-template',
735
+ otp: 'application/vnd.oasis.opendocument.presentation-template',
736
+ ots: 'application/vnd.oasis.opendocument.spreadsheet-template',
737
+ ott: 'application/vnd.oasis.opendocument.text-template',
738
+ ova: 'application/x-virtualbox-ova',
739
+ ovf: 'application/x-virtualbox-ovf',
740
+ owl: 'application/rdf+xml',
741
+ oxps: 'application/oxps',
742
+ oxt: 'application/vnd.openofficeorg.extension',
743
+ p: 'text/x-pascal',
744
+ p10: 'application/pkcs10',
745
+ p12: 'application/x-pkcs12',
746
+ p21: 'model/step',
747
+ p7b: 'application/x-pkcs7-certificates',
748
+ p7c: 'application/pkcs7-mime',
749
+ p7m: 'application/pkcs7-mime',
750
+ p7r: 'application/x-pkcs7-certreqresp',
751
+ p7s: 'application/pkcs7-signature',
752
+ p8: 'application/pkcs8',
753
+ pac: 'application/x-ns-proxy-autoconfig',
754
+ pages: 'application/vnd.apple.pages',
755
+ pas: 'text/x-pascal',
756
+ paw: 'application/vnd.pawaafile',
757
+ pbd: 'application/vnd.powerbuilder6',
758
+ pbm: 'image/x-portable-bitmap',
759
+ pcap: 'application/vnd.tcpdump.pcap',
760
+ pcf: 'application/x-font-pcf',
761
+ pcl: 'application/vnd.hp-pcl',
762
+ pclxl: 'application/vnd.hp-pclxl',
763
+ pct: 'image/x-pict',
764
+ pcurl: 'application/vnd.curl.pcurl',
765
+ pcx: 'image/vnd.zbrush.pcx',
766
+ pdb: 'application/vnd.palm',
767
+ pde: 'text/x-processing',
768
+ pdf: 'application/pdf',
769
+ pem: 'application/x-x509-ca-cert',
770
+ pfa: 'application/x-font-type1',
771
+ pfb: 'application/x-font-type1',
772
+ pfm: 'application/x-font-type1',
773
+ pfr: 'application/font-tdpfr',
774
+ pfx: 'application/x-pkcs12',
775
+ pgm: 'image/x-portable-graymap',
776
+ pgn: 'application/x-chess-pgn',
777
+ pgp: 'application/pgp-encrypted',
778
+ php: 'application/x-httpd-php',
779
+ pic: 'image/x-pict',
780
+ pkg: 'application/octet-stream',
781
+ pki: 'application/pkixcmp',
782
+ pkipath: 'application/pkix-pkipath',
783
+ pkpass: 'application/vnd.apple.pkpass',
784
+ pl: 'application/x-perl',
785
+ plb: 'application/vnd.3gpp.pic-bw-large',
786
+ plc: 'application/vnd.mobius.plc',
787
+ plf: 'application/vnd.pocketlearn',
788
+ pls: 'application/pls+xml',
789
+ pm: 'application/x-perl',
790
+ pml: 'application/vnd.ctc-posml',
791
+ png: 'image/png',
792
+ pnm: 'image/x-portable-anymap',
793
+ portpkg: 'application/vnd.macports.portpkg',
794
+ pot: 'application/vnd.ms-powerpoint',
795
+ potm: 'application/vnd.ms-powerpoint.template.macroenabled.12',
796
+ potx: 'application/vnd.openxmlformats-officedocument.presentationml.template',
797
+ ppam: 'application/vnd.ms-powerpoint.addin.macroenabled.12',
798
+ ppd: 'application/vnd.cups-ppd',
799
+ ppm: 'image/x-portable-pixmap',
800
+ pps: 'application/vnd.ms-powerpoint',
801
+ ppsm: 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',
802
+ ppsx: 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
803
+ ppt: 'application/vnd.ms-powerpoint',
804
+ pptm: 'application/vnd.ms-powerpoint.presentation.macroenabled.12',
805
+ pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
806
+ pqa: 'application/vnd.palm',
807
+ prc: 'model/prc',
808
+ pre: 'application/vnd.lotus-freelance',
809
+ prf: 'application/pics-rules',
810
+ provx: 'application/provenance+xml',
811
+ ps: 'application/postscript',
812
+ psb: 'application/vnd.3gpp.pic-bw-small',
813
+ psd: 'image/vnd.adobe.photoshop',
814
+ psf: 'application/x-font-linux-psf',
815
+ pskcxml: 'application/pskc+xml',
816
+ pti: 'image/prs.pti',
817
+ ptid: 'application/vnd.pvi.ptid1',
818
+ pub: 'application/x-mspublisher',
819
+ pvb: 'application/vnd.3gpp.pic-bw-var',
820
+ pwn: 'application/vnd.3m.post-it-notes',
821
+ pya: 'audio/vnd.ms-playready.media.pya',
822
+ pyo: 'model/vnd.pytha.pyox',
823
+ pyox: 'model/vnd.pytha.pyox',
824
+ pyv: 'video/vnd.ms-playready.media.pyv',
825
+ qam: 'application/vnd.epson.quickanime',
826
+ qbo: 'application/vnd.intu.qbo',
827
+ qfx: 'application/vnd.intu.qfx',
828
+ qps: 'application/vnd.publishare-delta-tree',
829
+ qt: 'video/quicktime',
830
+ qwd: 'application/vnd.quark.quarkxpress',
831
+ qwt: 'application/vnd.quark.quarkxpress',
832
+ qxb: 'application/vnd.quark.quarkxpress',
833
+ qxd: 'application/vnd.quark.quarkxpress',
834
+ qxl: 'application/vnd.quark.quarkxpress',
835
+ qxt: 'application/vnd.quark.quarkxpress',
836
+ ra: 'audio/x-pn-realaudio',
837
+ ram: 'audio/x-pn-realaudio',
838
+ raml: 'application/raml+yaml',
839
+ rapd: 'application/route-apd+xml',
840
+ rar: 'application/vnd.rar',
841
+ ras: 'image/x-cmu-raster',
842
+ rcprofile: 'application/vnd.ipunplugged.rcprofile',
843
+ rdf: 'application/rdf+xml',
844
+ rdz: 'application/vnd.data-vision.rdz',
845
+ relo: 'application/p2p-overlay+xml',
846
+ rep: 'application/vnd.businessobjects',
847
+ res: 'application/x-dtbresource+xml',
848
+ rgb: 'image/x-rgb',
849
+ rif: 'application/reginfo+xml',
850
+ rip: 'audio/vnd.rip',
851
+ ris: 'application/x-research-info-systems',
852
+ rl: 'application/resource-lists+xml',
853
+ rlc: 'image/vnd.fujixerox.edmics-rlc',
854
+ rld: 'application/resource-lists-diff+xml',
855
+ rm: 'application/vnd.rn-realmedia',
856
+ rmi: 'audio/midi',
857
+ rmp: 'audio/x-pn-realaudio-plugin',
858
+ rms: 'application/vnd.jcp.javame.midlet-rms',
859
+ rmvb: 'application/vnd.rn-realmedia-vbr',
860
+ rnc: 'application/relax-ng-compact-syntax',
861
+ rng: 'application/xml',
862
+ roa: 'application/rpki-roa',
863
+ roff: 'text/troff',
864
+ rp9: 'application/vnd.cloanto.rp9',
865
+ rpm: 'application/x-redhat-package-manager',
866
+ rpss: 'application/vnd.nokia.radio-presets',
867
+ rpst: 'application/vnd.nokia.radio-preset',
868
+ rq: 'application/sparql-query',
869
+ rs: 'application/rls-services+xml',
870
+ rsat: 'application/atsc-rsat+xml',
871
+ rsd: 'application/rsd+xml',
872
+ rsheet: 'application/urc-ressheet+xml',
873
+ rss: 'application/rss+xml',
874
+ rtf: 'application/rtf',
875
+ rtx: 'text/richtext',
876
+ run: 'application/x-makeself',
877
+ rusd: 'application/route-usd+xml',
878
+ s: 'text/x-asm',
879
+ s3m: 'audio/s3m',
880
+ saf: 'application/vnd.yamaha.smaf-audio',
881
+ sass: 'text/x-sass',
882
+ sbml: 'application/sbml+xml',
883
+ sc: 'application/vnd.ibm.secure-container',
884
+ scd: 'application/x-msschedule',
885
+ scm: 'application/vnd.lotus-screencam',
886
+ scq: 'application/scvp-cv-request',
887
+ scs: 'application/scvp-cv-response',
888
+ scss: 'text/x-scss',
889
+ scurl: 'text/vnd.curl.scurl',
890
+ sda: 'application/vnd.stardivision.draw',
891
+ sdc: 'application/vnd.stardivision.calc',
892
+ sdd: 'application/vnd.stardivision.impress',
893
+ sdkd: 'application/vnd.solent.sdkm+xml',
894
+ sdkm: 'application/vnd.solent.sdkm+xml',
895
+ sdp: 'application/sdp',
896
+ sdw: 'application/vnd.stardivision.writer',
897
+ sea: 'application/x-sea',
898
+ see: 'application/vnd.seemail',
899
+ seed: 'application/vnd.fdsn.seed',
900
+ sema: 'application/vnd.sema',
901
+ semd: 'application/vnd.semd',
902
+ semf: 'application/vnd.semf',
903
+ senmlx: 'application/senml+xml',
904
+ sensmlx: 'application/sensml+xml',
905
+ ser: 'application/java-serialized-object',
906
+ setpay: 'application/set-payment-initiation',
907
+ setreg: 'application/set-registration-initiation',
908
+ 'sfd-hdstx': 'application/vnd.hydrostatix.sof-data',
909
+ sfs: 'application/vnd.spotfire.sfs',
910
+ sfv: 'text/x-sfv',
911
+ sgi: 'image/sgi',
912
+ sgl: 'application/vnd.stardivision.writer-global',
913
+ sgm: 'text/sgml',
914
+ sgml: 'text/sgml',
915
+ sh: 'application/x-sh',
916
+ shar: 'application/x-shar',
917
+ shex: 'text/shex',
918
+ shf: 'application/shf+xml',
919
+ shtml: 'text/html',
920
+ sid: 'image/x-mrsid-image',
921
+ sieve: 'application/sieve',
922
+ sig: 'application/pgp-signature',
923
+ sil: 'audio/silk',
924
+ silo: 'model/mesh',
925
+ sis: 'application/vnd.symbian.install',
926
+ sisx: 'application/vnd.symbian.install',
927
+ sit: 'application/x-stuffit',
928
+ sitx: 'application/x-stuffitx',
929
+ siv: 'application/sieve',
930
+ skd: 'application/vnd.koan',
931
+ skm: 'application/vnd.koan',
932
+ skp: 'application/vnd.koan',
933
+ skt: 'application/vnd.koan',
934
+ sldm: 'application/vnd.ms-powerpoint.slide.macroenabled.12',
935
+ sldx: 'application/vnd.openxmlformats-officedocument.presentationml.slide',
936
+ slim: 'text/slim',
937
+ slm: 'text/slim',
938
+ sls: 'application/route-s-tsid+xml',
939
+ slt: 'application/vnd.epson.salt',
940
+ sm: 'application/vnd.stepmania.stepchart',
941
+ smf: 'application/vnd.stardivision.math',
942
+ smi: 'application/smil+xml',
943
+ smil: 'application/smil+xml',
944
+ smv: 'video/x-smv',
945
+ smzip: 'application/vnd.stepmania.package',
946
+ snd: 'audio/basic',
947
+ snf: 'application/x-font-snf',
948
+ so: 'application/octet-stream',
949
+ spc: 'application/x-pkcs7-certificates',
950
+ spdx: 'text/spdx',
951
+ spf: 'application/vnd.yamaha.smaf-phrase',
952
+ spl: 'application/x-futuresplash',
953
+ spot: 'text/vnd.in3d.spot',
954
+ spp: 'application/scvp-vp-response',
955
+ spq: 'application/scvp-vp-request',
956
+ spx: 'audio/ogg',
957
+ sql: 'application/sql',
958
+ src: 'application/x-wais-source',
959
+ srt: 'application/x-subrip',
960
+ sru: 'application/sru+xml',
961
+ srx: 'application/sparql-results+xml',
962
+ ssdl: 'application/ssdl+xml',
963
+ sse: 'application/vnd.kodak-descriptor',
964
+ ssf: 'application/vnd.epson.ssf',
965
+ ssml: 'application/ssml+xml',
966
+ st: 'application/vnd.sailingtracker.track',
967
+ stc: 'application/vnd.sun.xml.calc.template',
968
+ std: 'application/vnd.sun.xml.draw.template',
969
+ step: 'model/step',
970
+ stf: 'application/vnd.wt.stf',
971
+ sti: 'application/vnd.sun.xml.impress.template',
972
+ stk: 'application/hyperstudio',
973
+ stl: 'model/stl',
974
+ stp: 'model/step',
975
+ stpnc: 'model/step',
976
+ stpx: 'model/step+xml',
977
+ stpxz: 'model/step-xml+zip',
978
+ stpz: 'model/step+zip',
979
+ str: 'application/vnd.pg.format',
980
+ stw: 'application/vnd.sun.xml.writer.template',
981
+ styl: 'text/stylus',
982
+ stylus: 'text/stylus',
983
+ sub: 'text/vnd.dvb.subtitle',
984
+ sus: 'application/vnd.sus-calendar',
985
+ susp: 'application/vnd.sus-calendar',
986
+ sv4cpio: 'application/x-sv4cpio',
987
+ sv4crc: 'application/x-sv4crc',
988
+ svc: 'application/vnd.dvb.service',
989
+ svd: 'application/vnd.svd',
990
+ svg: 'image/svg+xml',
991
+ svgz: 'image/svg+xml',
992
+ swa: 'application/x-director',
993
+ swf: 'application/x-shockwave-flash',
994
+ swi: 'application/vnd.aristanetworks.swi',
995
+ swidtag: 'application/swid+xml',
996
+ sxc: 'application/vnd.sun.xml.calc',
997
+ sxd: 'application/vnd.sun.xml.draw',
998
+ sxg: 'application/vnd.sun.xml.writer.global',
999
+ sxi: 'application/vnd.sun.xml.impress',
1000
+ sxm: 'application/vnd.sun.xml.math',
1001
+ sxw: 'application/vnd.sun.xml.writer',
1002
+ t: 'text/troff',
1003
+ t3: 'application/x-t3vm-image',
1004
+ t38: 'image/t38',
1005
+ taglet: 'application/vnd.mynfc',
1006
+ tao: 'application/vnd.tao.intent-module-archive',
1007
+ tap: 'image/vnd.tencent.tap',
1008
+ tar: 'application/x-tar',
1009
+ tcap: 'application/vnd.3gpp2.tcap',
1010
+ tcl: 'application/x-tcl',
1011
+ td: 'application/urc-targetdesc+xml',
1012
+ teacher: 'application/vnd.smart.teacher',
1013
+ tei: 'application/tei+xml',
1014
+ teicorpus: 'application/tei+xml',
1015
+ tex: 'application/x-tex',
1016
+ texi: 'application/x-texinfo',
1017
+ texinfo: 'application/x-texinfo',
1018
+ text: 'text/plain',
1019
+ tfi: 'application/thraud+xml',
1020
+ tfm: 'application/x-tex-tfm',
1021
+ tfx: 'image/tiff-fx',
1022
+ tga: 'image/x-tga',
1023
+ thmx: 'application/vnd.ms-officetheme',
1024
+ tif: 'image/tiff',
1025
+ tiff: 'image/tiff',
1026
+ tk: 'application/x-tcl',
1027
+ tmo: 'application/vnd.tmobile-livetv',
1028
+ toml: 'application/toml',
1029
+ torrent: 'application/x-bittorrent',
1030
+ tpl: 'application/vnd.groove-tool-template',
1031
+ tpt: 'application/vnd.trid.tpt',
1032
+ tr: 'text/troff',
1033
+ tra: 'application/vnd.trueapp',
1034
+ trig: 'application/trig',
1035
+ trm: 'application/x-msterminal',
1036
+ ts: 'video/mp2t',
1037
+ tsd: 'application/timestamped-data',
1038
+ tsv: 'text/tab-separated-values',
1039
+ ttc: 'font/collection',
1040
+ ttf: 'font/ttf',
1041
+ ttl: 'text/turtle',
1042
+ ttml: 'application/ttml+xml',
1043
+ twd: 'application/vnd.simtech-mindmapper',
1044
+ twds: 'application/vnd.simtech-mindmapper',
1045
+ txd: 'application/vnd.genomatix.tuxedo',
1046
+ txf: 'application/vnd.mobius.txf',
1047
+ txt: 'text/plain',
1048
+ u32: 'application/x-authorware-bin',
1049
+ u3d: 'model/u3d',
1050
+ u8dsn: 'message/global-delivery-status',
1051
+ u8hdr: 'message/global-headers',
1052
+ u8mdn: 'message/global-disposition-notification',
1053
+ u8msg: 'message/global',
1054
+ ubj: 'application/ubjson',
1055
+ udeb: 'application/x-debian-package',
1056
+ ufd: 'application/vnd.ufdl',
1057
+ ufdl: 'application/vnd.ufdl',
1058
+ ulx: 'application/x-glulx',
1059
+ umj: 'application/vnd.umajin',
1060
+ unityweb: 'application/vnd.unity',
1061
+ uo: 'application/vnd.uoml+xml',
1062
+ uoml: 'application/vnd.uoml+xml',
1063
+ uri: 'text/uri-list',
1064
+ uris: 'text/uri-list',
1065
+ urls: 'text/uri-list',
1066
+ usda: 'model/vnd.usda',
1067
+ usdz: 'model/vnd.usdz+zip',
1068
+ ustar: 'application/x-ustar',
1069
+ utz: 'application/vnd.uiq.theme',
1070
+ uu: 'text/x-uuencode',
1071
+ uva: 'audio/vnd.dece.audio',
1072
+ uvd: 'application/vnd.dece.data',
1073
+ uvf: 'application/vnd.dece.data',
1074
+ uvg: 'image/vnd.dece.graphic',
1075
+ uvh: 'video/vnd.dece.hd',
1076
+ uvi: 'image/vnd.dece.graphic',
1077
+ uvm: 'video/vnd.dece.mobile',
1078
+ uvp: 'video/vnd.dece.pd',
1079
+ uvs: 'video/vnd.dece.sd',
1080
+ uvt: 'application/vnd.dece.ttml+xml',
1081
+ uvu: 'video/vnd.uvvu.mp4',
1082
+ uvv: 'video/vnd.dece.video',
1083
+ uvva: 'audio/vnd.dece.audio',
1084
+ uvvd: 'application/vnd.dece.data',
1085
+ uvvf: 'application/vnd.dece.data',
1086
+ uvvg: 'image/vnd.dece.graphic',
1087
+ uvvh: 'video/vnd.dece.hd',
1088
+ uvvi: 'image/vnd.dece.graphic',
1089
+ uvvm: 'video/vnd.dece.mobile',
1090
+ uvvp: 'video/vnd.dece.pd',
1091
+ uvvs: 'video/vnd.dece.sd',
1092
+ uvvt: 'application/vnd.dece.ttml+xml',
1093
+ uvvu: 'video/vnd.uvvu.mp4',
1094
+ uvvv: 'video/vnd.dece.video',
1095
+ uvvx: 'application/vnd.dece.unspecified',
1096
+ uvvz: 'application/vnd.dece.zip',
1097
+ uvx: 'application/vnd.dece.unspecified',
1098
+ uvz: 'application/vnd.dece.zip',
1099
+ vbox: 'application/x-virtualbox-vbox',
1100
+ 'vbox-extpack': 'application/x-virtualbox-vbox-extpack',
1101
+ vcard: 'text/vcard',
1102
+ vcd: 'application/x-cdlink',
1103
+ vcf: 'text/x-vcard',
1104
+ vcg: 'application/vnd.groove-vcard',
1105
+ vcs: 'text/x-vcalendar',
1106
+ vcx: 'application/vnd.vcx',
1107
+ vdi: 'application/x-virtualbox-vdi',
1108
+ vds: 'model/vnd.sap.vds',
1109
+ vdx: 'application/vnd.ms-visio.viewer',
1110
+ vhd: 'application/x-virtualbox-vhd',
1111
+ vis: 'application/vnd.visionary',
1112
+ viv: 'video/vnd.vivo',
1113
+ vmdk: 'application/x-virtualbox-vmdk',
1114
+ vob: 'video/x-ms-vob',
1115
+ vor: 'application/vnd.stardivision.writer',
1116
+ vox: 'application/x-authorware-bin',
1117
+ vrml: 'model/vrml',
1118
+ vsd: 'application/vnd.visio',
1119
+ vsdx: 'application/vnd.visio',
1120
+ vsf: 'application/vnd.vsf',
1121
+ vss: 'application/vnd.visio',
1122
+ vst: 'application/vnd.visio',
1123
+ vsw: 'application/vnd.visio',
1124
+ vtf: 'image/vnd.valve.source.texture',
1125
+ vtt: 'text/vtt',
1126
+ vtu: 'model/vnd.vtu',
1127
+ vtx: 'application/vnd.visio',
1128
+ vxml: 'application/voicexml+xml',
1129
+ w3d: 'application/x-director',
1130
+ wad: 'application/x-doom',
1131
+ wadl: 'application/vnd.sun.wadl+xml',
1132
+ war: 'application/java-archive',
1133
+ wasm: 'application/wasm',
1134
+ wav: 'audio/wav',
1135
+ wax: 'audio/x-ms-wax',
1136
+ wbmp: 'image/vnd.wap.wbmp',
1137
+ wbs: 'application/vnd.criticaltools.wbs+xml',
1138
+ wbxml: 'application/vnd.wap.wbxml',
1139
+ wcm: 'application/vnd.ms-works',
1140
+ wdb: 'application/vnd.ms-works',
1141
+ wdp: 'image/vnd.ms-photo',
1142
+ weba: 'audio/webm',
1143
+ webapp: 'application/x-web-app-manifest+json',
1144
+ webm: 'video/webm',
1145
+ webmanifest: 'application/manifest+json',
1146
+ webp: 'image/webp',
1147
+ wg: 'application/vnd.pmi.widget',
1148
+ wgsl: 'text/wgsl',
1149
+ wgt: 'application/widget',
1150
+ wif: 'application/watcherinfo+xml',
1151
+ wks: 'application/vnd.ms-works',
1152
+ wm: 'video/x-ms-wm',
1153
+ wma: 'audio/x-ms-wma',
1154
+ wmd: 'application/x-ms-wmd',
1155
+ wmf: 'image/wmf',
1156
+ wml: 'text/vnd.wap.wml',
1157
+ wmlc: 'application/vnd.wap.wmlc',
1158
+ wmls: 'text/vnd.wap.wmlscript',
1159
+ wmlsc: 'application/vnd.wap.wmlscriptc',
1160
+ wmv: 'video/x-ms-wmv',
1161
+ wmx: 'video/x-ms-wmx',
1162
+ wmz: 'application/x-ms-wmz',
1163
+ woff: 'font/woff',
1164
+ woff2: 'font/woff2',
1165
+ wpd: 'application/vnd.wordperfect',
1166
+ wpl: 'application/vnd.ms-wpl',
1167
+ wps: 'application/vnd.ms-works',
1168
+ wqd: 'application/vnd.wqd',
1169
+ wri: 'application/x-mswrite',
1170
+ wrl: 'model/vrml',
1171
+ wsc: 'message/vnd.wfa.wsc',
1172
+ wsdl: 'application/wsdl+xml',
1173
+ wspolicy: 'application/wspolicy+xml',
1174
+ wtb: 'application/vnd.webturbo',
1175
+ wvx: 'video/x-ms-wvx',
1176
+ x32: 'application/x-authorware-bin',
1177
+ x3d: 'model/x3d+xml',
1178
+ x3db: 'model/x3d+fastinfoset',
1179
+ x3dbz: 'model/x3d+binary',
1180
+ x3dv: 'model/x3d-vrml',
1181
+ x3dvz: 'model/x3d+vrml',
1182
+ x3dz: 'model/x3d+xml',
1183
+ x_b: 'model/vnd.parasolid.transmit.binary',
1184
+ x_t: 'model/vnd.parasolid.transmit.text',
1185
+ xaml: 'application/xaml+xml',
1186
+ xap: 'application/x-silverlight-app',
1187
+ xar: 'application/vnd.xara',
1188
+ xav: 'application/xcap-att+xml',
1189
+ xbap: 'application/x-ms-xbap',
1190
+ xbd: 'application/vnd.fujixerox.docuworks.binder',
1191
+ xbm: 'image/x-xbitmap',
1192
+ xca: 'application/xcap-caps+xml',
1193
+ xcs: 'application/calendar+xml',
1194
+ xdcf: 'application/vnd.gov.sk.xmldatacontainer+xml',
1195
+ xdf: 'application/xcap-diff+xml',
1196
+ xdm: 'application/vnd.syncml.dm+xml',
1197
+ xdp: 'application/vnd.adobe.xdp+xml',
1198
+ xdssc: 'application/dssc+xml',
1199
+ xdw: 'application/vnd.fujixerox.docuworks',
1200
+ xel: 'application/xcap-el+xml',
1201
+ xenc: 'application/xenc+xml',
1202
+ xer: 'application/patch-ops-error+xml',
1203
+ xfdf: 'application/xfdf',
1204
+ xfdl: 'application/vnd.xfdl',
1205
+ xht: 'application/xhtml+xml',
1206
+ xhtm: 'application/vnd.pwg-xhtml-print+xml',
1207
+ xhtml: 'application/xhtml+xml',
1208
+ xhvml: 'application/xv+xml',
1209
+ xif: 'image/vnd.xiff',
1210
+ xla: 'application/vnd.ms-excel',
1211
+ xlam: 'application/vnd.ms-excel.addin.macroenabled.12',
1212
+ xlc: 'application/vnd.ms-excel',
1213
+ xlf: 'application/xliff+xml',
1214
+ xlm: 'application/vnd.ms-excel',
1215
+ xls: 'application/vnd.ms-excel',
1216
+ xlsb: 'application/vnd.ms-excel.sheet.binary.macroenabled.12',
1217
+ xlsm: 'application/vnd.ms-excel.sheet.macroenabled.12',
1218
+ xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
1219
+ xlt: 'application/vnd.ms-excel',
1220
+ xltm: 'application/vnd.ms-excel.template.macroenabled.12',
1221
+ xltx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
1222
+ xlw: 'application/vnd.ms-excel',
1223
+ xm: 'audio/xm',
1224
+ xml: 'application/xml',
1225
+ xns: 'application/xcap-ns+xml',
1226
+ xo: 'application/vnd.olpc-sugar',
1227
+ xop: 'application/xop+xml',
1228
+ xpi: 'application/x-xpinstall',
1229
+ xpl: 'application/xproc+xml',
1230
+ xpm: 'image/x-xpixmap',
1231
+ xpr: 'application/vnd.is-xpr',
1232
+ xps: 'application/vnd.ms-xpsdocument',
1233
+ xpw: 'application/vnd.intercon.formnet',
1234
+ xpx: 'application/vnd.intercon.formnet',
1235
+ xsd: 'application/xml',
1236
+ xsf: 'application/prs.xsf+xml',
1237
+ xsl: 'application/xml',
1238
+ xslt: 'application/xslt+xml',
1239
+ xsm: 'application/vnd.syncml+xml',
1240
+ xspf: 'application/xspf+xml',
1241
+ xul: 'application/vnd.mozilla.xul+xml',
1242
+ xvm: 'application/xv+xml',
1243
+ xvml: 'application/xv+xml',
1244
+ xwd: 'image/x-xwindowdump',
1245
+ xyz: 'chemical/x-xyz',
1246
+ xz: 'application/x-xz',
1247
+ yaml: 'text/yaml',
1248
+ yang: 'application/yang',
1249
+ yin: 'application/yin+xml',
1250
+ yml: 'text/yaml',
1251
+ ymp: 'text/x-suse-ymp',
1252
+ z1: 'application/x-zmachine',
1253
+ z2: 'application/x-zmachine',
1254
+ z3: 'application/x-zmachine',
1255
+ z4: 'application/x-zmachine',
1256
+ z5: 'application/x-zmachine',
1257
+ z6: 'application/x-zmachine',
1258
+ z7: 'application/x-zmachine',
1259
+ z8: 'application/x-zmachine',
1260
+ zaz: 'application/vnd.zzazz.deck+xml',
1261
+ zip: 'application/zip',
1262
+ zir: 'application/vnd.zul',
1263
+ zirz: 'application/vnd.zul',
1264
+ zmm: 'application/vnd.handheld-entertainment+xml',
1265
+ };
1266
+ /**
1267
+ * Types that declare a charset of their own, lowercased.
1268
+ *
1269
+ * Everything else under `text/` defaults to utf-8; everything else has none.
1270
+ * That is mime-db's `charset` field plus `mime-types`' `text/*` fallback.
1271
+ */
1272
+ const CHARSETS = {
1273
+ 'application/3gpdash-qoe-report+xml': 'utf-8',
1274
+ 'application/beep+xml': 'utf-8',
1275
+ 'application/cda+xml': 'utf-8',
1276
+ 'application/elm+json': 'utf-8',
1277
+ 'application/emergencycalldata.cap+xml': 'utf-8',
1278
+ 'application/fhir+json': 'utf-8',
1279
+ 'application/fhir+xml': 'utf-8',
1280
+ 'application/hl7v2+xml': 'utf-8',
1281
+ 'application/im-iscomposing+xml': 'utf-8',
1282
+ 'application/javascript': 'utf-8',
1283
+ 'application/json': 'utf-8',
1284
+ 'application/manifest+json': 'utf-8',
1285
+ 'application/msc-ivr+xml': 'utf-8',
1286
+ 'application/msc-mixer+xml': 'utf-8',
1287
+ 'application/news-checkgroups': 'us-ascii',
1288
+ 'application/news-groupinfo': 'us-ascii',
1289
+ 'application/pidf-diff+xml': 'utf-8',
1290
+ 'application/pidf+xml': 'utf-8',
1291
+ 'application/poc-settings+xml': 'utf-8',
1292
+ 'application/prs.cyn': '7-bit',
1293
+ 'application/vnd.fdsn.stationxml+xml': 'xml-based',
1294
+ 'application/vnd.omads-email+xml': 'utf-8',
1295
+ 'application/vnd.omads-file+xml': 'utf-8',
1296
+ 'application/vnd.omads-folder+xml': 'utf-8',
1297
+ 'application/vnd.syncml.dm+wbxml': 'utf-8',
1298
+ 'application/vnd.syncml.dm+xml': 'utf-8',
1299
+ 'application/vnd.syncml.dmddf+xml': 'utf-8',
1300
+ 'application/vnd.syncml.dmtnds+xml': 'utf-8',
1301
+ 'application/vnd.syncml+xml': 'utf-8',
1302
+ 'application/vnd.wap.wbxml': 'utf-8',
1303
+ 'text/css': 'utf-8',
1304
+ 'text/javascript': 'utf-8',
1305
+ 'text/n3': 'utf-8',
1306
+ 'text/parameters': 'utf-8',
1307
+ 'text/provenance-notation': 'utf-8',
1308
+ 'text/turtle': 'utf-8',
1309
+ 'text/vnd.debian.copyright': 'utf-8',
1310
+ 'text/vnd.esmertec.theme-descriptor': 'utf-8',
1311
+ 'text/vnd.sun.j2me.app-descriptor': 'utf-8',
1312
+ 'text/vnd.trolltech.linguist': 'utf-8',
1313
+ 'text/vtt': 'utf-8',
1314
+ };
1315
+ /** The charset for a type, or `undefined` when it carries none. */
1316
+ function charsetFor(type) {
1317
+ const [head = ''] = type.split(';');
1318
+ const base = head.trim().toLowerCase();
1319
+ const declared = CHARSETS[base];
1320
+ if (declared !== undefined)
1321
+ return declared;
1322
+ return base.startsWith('text/') ? 'utf-8' : undefined;
1323
+ }
1324
+ /** The type for a bare extension, or `undefined` when it is not one we know. */
1325
+ export function lookupType(extension) {
1326
+ const ext = extension.replace(/^.*\./, '').toLowerCase();
1327
+ return TYPES[ext];
1328
+ }
1329
+ /**
1330
+ * A full `Content-Type` for an extension or a type (`mime-types.contentType`).
1331
+ *
1332
+ * Returns `false` for something it cannot resolve, as the package did, so the
1333
+ * caller keeps its existing fallback rather than writing `content-type: false`.
1334
+ */
1335
+ export function contentType(input) {
1336
+ if (input.length === 0)
1337
+ return false;
1338
+ // Already a type — possibly with parameters the caller set itself.
1339
+ const type = input.includes('/') ? input : lookupType(input);
1340
+ if (type === undefined)
1341
+ return false;
1342
+ if (type.includes('charset='))
1343
+ return type;
1344
+ const charset = charsetFor(type);
1345
+ return charset === undefined ? type : `${type}; charset=${charset}`;
1346
+ }
1347
+ //# sourceMappingURL=mime.js.map