@twin.org/web 0.0.3-next.13 → 0.0.3-next.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/models/headerTypes.js +95 -0
- package/dist/es/models/headerTypes.js.map +1 -1
- package/dist/es/models/httpMethod.js +36 -0
- package/dist/es/models/httpMethod.js.map +1 -1
- package/dist/es/models/httpStatusCode.js +63 -0
- package/dist/es/models/httpStatusCode.js.map +1 -1
- package/dist/es/models/mimeTypes.js +170 -1
- package/dist/es/models/mimeTypes.js.map +1 -1
- package/dist/es/utils/mimeTypeHelper.js +42 -1
- package/dist/es/utils/mimeTypeHelper.js.map +1 -1
- package/dist/types/models/headerTypes.d.ts +95 -0
- package/dist/types/models/httpMethod.d.ts +36 -0
- package/dist/types/models/httpStatusCode.d.ts +63 -0
- package/dist/types/models/mimeTypes.d.ts +169 -0
- package/docs/changelog.md +20 -0
- package/docs/reference/variables/HeaderTypes.md +190 -0
- package/docs/reference/variables/HttpMethod.md +54 -0
- package/docs/reference/variables/HttpStatusCode.md +252 -0
- package/docs/reference/variables/MimeTypes.md +256 -0
- package/package.json +4 -4
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0.
|
|
3
3
|
/**
|
|
4
4
|
* Common mime types.
|
|
5
|
+
* @see https://www.iana.org/assignments/media-types/media-types.xhtml
|
|
5
6
|
*/
|
|
6
7
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
7
8
|
export const MimeTypes = {
|
|
@@ -9,30 +10,138 @@ export const MimeTypes = {
|
|
|
9
10
|
* Plaint Text - text/plain
|
|
10
11
|
*/
|
|
11
12
|
PlainText: "text/plain",
|
|
13
|
+
/**
|
|
14
|
+
* Event Stream - text/event-stream
|
|
15
|
+
*/
|
|
16
|
+
EventStream: "text/event-stream",
|
|
12
17
|
/**
|
|
13
18
|
* HTML - text/html
|
|
14
19
|
*/
|
|
15
20
|
Html: "text/html",
|
|
21
|
+
/**
|
|
22
|
+
* CSS - text/css
|
|
23
|
+
*/
|
|
24
|
+
Css: "text/css",
|
|
16
25
|
/**
|
|
17
26
|
* Javascript - text/javascript
|
|
18
27
|
*/
|
|
19
28
|
Javascript: "text/javascript",
|
|
29
|
+
/**
|
|
30
|
+
* Markdown - text/markdown
|
|
31
|
+
*/
|
|
32
|
+
Markdown: "text/markdown",
|
|
20
33
|
/**
|
|
21
34
|
* JSON - application/json
|
|
22
35
|
*/
|
|
23
36
|
Json: "application/json",
|
|
37
|
+
/**
|
|
38
|
+
* Problem JSON - application/problem+json
|
|
39
|
+
*/
|
|
40
|
+
ProblemJson: "application/problem+json",
|
|
24
41
|
/**
|
|
25
42
|
* JSON-LD - application/ld+json
|
|
26
43
|
*/
|
|
27
44
|
JsonLd: "application/ld+json",
|
|
45
|
+
/**
|
|
46
|
+
* Activity Streams - application/activity+json
|
|
47
|
+
*/
|
|
48
|
+
ActivityStreams: "application/activity+json",
|
|
49
|
+
/**
|
|
50
|
+
* WebFinger JRD - application/jrd+json
|
|
51
|
+
*/
|
|
52
|
+
JrdJson: "application/jrd+json",
|
|
28
53
|
/**
|
|
29
54
|
* JWT - application/jwt
|
|
30
55
|
*/
|
|
31
56
|
Jwt: "application/jwt",
|
|
57
|
+
/**
|
|
58
|
+
* Access Token JWT - application/at+jwt
|
|
59
|
+
*/
|
|
60
|
+
AccessTokenJwt: "application/at+jwt",
|
|
61
|
+
/**
|
|
62
|
+
* JOSE (Compact Serialization) - application/jose
|
|
63
|
+
*/
|
|
64
|
+
Jose: "application/jose",
|
|
65
|
+
/**
|
|
66
|
+
* JOSE (JSON Serialization) - application/jose+json
|
|
67
|
+
*/
|
|
68
|
+
JoseJson: "application/jose+json",
|
|
69
|
+
/**
|
|
70
|
+
* JSON Web Key (JWK) - application/jwk+json
|
|
71
|
+
*/
|
|
72
|
+
JwkJson: "application/jwk+json",
|
|
73
|
+
/**
|
|
74
|
+
* JSON Web Key Set (JWKS) - application/jwk-set+json
|
|
75
|
+
*/
|
|
76
|
+
JwkSetJson: "application/jwk-set+json",
|
|
77
|
+
/**
|
|
78
|
+
* Decentralized Identifier (DID) - application/did+json
|
|
79
|
+
*/
|
|
80
|
+
DidJson: "application/did+json",
|
|
81
|
+
/**
|
|
82
|
+
* Decentralized Identifier (DID) (JSON-LD) - application/did+ld+json
|
|
83
|
+
*/
|
|
84
|
+
DidLdJson: "application/did+ld+json",
|
|
85
|
+
/**
|
|
86
|
+
* Verifiable Credential (JSON-LD) - application/vc+ld+json
|
|
87
|
+
*/
|
|
88
|
+
VerifiableCredentialLdJson: "application/vc+ld+json",
|
|
89
|
+
/**
|
|
90
|
+
* Verifiable Presentation (JSON-LD) - application/vp+ld+json
|
|
91
|
+
*/
|
|
92
|
+
VerifiablePresentationLdJson: "application/vp+ld+json",
|
|
93
|
+
/**
|
|
94
|
+
* Verifiable Credential (JWT) - application/vc+jwt
|
|
95
|
+
*/
|
|
96
|
+
VerifiableCredentialJwt: "application/vc+jwt",
|
|
97
|
+
/**
|
|
98
|
+
* Verifiable Presentation (JWT) - application/vp+jwt
|
|
99
|
+
*/
|
|
100
|
+
VerifiablePresentationJwt: "application/vp+jwt",
|
|
101
|
+
/**
|
|
102
|
+
* JSON Patch - application/json-patch+json
|
|
103
|
+
*/
|
|
104
|
+
JsonPatch: "application/json-patch+json",
|
|
105
|
+
/**
|
|
106
|
+
* JSON Merge Patch - application/merge-patch+json
|
|
107
|
+
*/
|
|
108
|
+
MergePatch: "application/merge-patch+json",
|
|
109
|
+
/**
|
|
110
|
+
* CBOR Web Token (CWT) - application/cwt
|
|
111
|
+
*/
|
|
112
|
+
Cwt: "application/cwt",
|
|
113
|
+
/**
|
|
114
|
+
* COSE - application/cose
|
|
115
|
+
*/
|
|
116
|
+
Cose: "application/cose",
|
|
117
|
+
/**
|
|
118
|
+
* COSE Key - application/cose-key
|
|
119
|
+
*/
|
|
120
|
+
CoseKey: "application/cose-key",
|
|
121
|
+
/**
|
|
122
|
+
* COSE Key Set - application/cose-key-set
|
|
123
|
+
*/
|
|
124
|
+
CoseKeySet: "application/cose-key-set",
|
|
125
|
+
/**
|
|
126
|
+
* Form URL Encoded - application/x-www-form-urlencoded
|
|
127
|
+
*/
|
|
128
|
+
FormUrlEncoded: "application/x-www-form-urlencoded",
|
|
129
|
+
/**
|
|
130
|
+
* Multipart Form Data - multipart/form-data
|
|
131
|
+
*/
|
|
132
|
+
MultipartFormData: "multipart/form-data",
|
|
32
133
|
/**
|
|
33
134
|
* XML - application/xml
|
|
34
135
|
*/
|
|
35
136
|
Xml: "application/xml",
|
|
137
|
+
/**
|
|
138
|
+
* WASM - application/wasm
|
|
139
|
+
*/
|
|
140
|
+
Wasm: "application/wasm",
|
|
141
|
+
/**
|
|
142
|
+
* Web App Manifest - application/manifest+json
|
|
143
|
+
*/
|
|
144
|
+
WebManifest: "application/manifest+json",
|
|
36
145
|
/**
|
|
37
146
|
* Application Octet Stream, arbitrary binary - application/octet-stream
|
|
38
147
|
*/
|
|
@@ -81,10 +190,62 @@ export const MimeTypes = {
|
|
|
81
190
|
* Image SVG - image/svg+xml
|
|
82
191
|
*/
|
|
83
192
|
Svg: "image/svg+xml",
|
|
193
|
+
/**
|
|
194
|
+
* Image ICO - image/x-icon
|
|
195
|
+
*/
|
|
196
|
+
Ico: "image/x-icon",
|
|
84
197
|
/**
|
|
85
198
|
* Image WEBP - image/webp
|
|
86
199
|
*/
|
|
87
200
|
WebP: "image/webp",
|
|
201
|
+
/**
|
|
202
|
+
* Image AVIF - image/avif
|
|
203
|
+
*/
|
|
204
|
+
Avif: "image/avif",
|
|
205
|
+
/**
|
|
206
|
+
* Image APNG - image/apng
|
|
207
|
+
*/
|
|
208
|
+
Apng: "image/apng",
|
|
209
|
+
/**
|
|
210
|
+
* Font WOFF - font/woff
|
|
211
|
+
*/
|
|
212
|
+
Woff: "font/woff",
|
|
213
|
+
/**
|
|
214
|
+
* Font WOFF2 - font/woff2
|
|
215
|
+
*/
|
|
216
|
+
Woff2: "font/woff2",
|
|
217
|
+
/**
|
|
218
|
+
* Font TTF - font/ttf
|
|
219
|
+
*/
|
|
220
|
+
Ttf: "font/ttf",
|
|
221
|
+
/**
|
|
222
|
+
* Font OTF - font/otf
|
|
223
|
+
*/
|
|
224
|
+
Otf: "font/otf",
|
|
225
|
+
/**
|
|
226
|
+
* Audio MP3 - audio/mpeg
|
|
227
|
+
*/
|
|
228
|
+
Mp3: "audio/mpeg",
|
|
229
|
+
/**
|
|
230
|
+
* Audio OGG - audio/ogg
|
|
231
|
+
*/
|
|
232
|
+
OggAudio: "audio/ogg",
|
|
233
|
+
/**
|
|
234
|
+
* Audio WAV - audio/wav
|
|
235
|
+
*/
|
|
236
|
+
Wav: "audio/wav",
|
|
237
|
+
/**
|
|
238
|
+
* Audio WEBM - audio/webm
|
|
239
|
+
*/
|
|
240
|
+
WebmAudio: "audio/webm",
|
|
241
|
+
/**
|
|
242
|
+
* Audio AAC - audio/aac
|
|
243
|
+
*/
|
|
244
|
+
Aac: "audio/aac",
|
|
245
|
+
/**
|
|
246
|
+
* Audio MP4 - audio/mp4
|
|
247
|
+
*/
|
|
248
|
+
Mp4Audio: "audio/mp4",
|
|
88
249
|
/**
|
|
89
250
|
* Video MP4 - video/mp4
|
|
90
251
|
*/
|
|
@@ -96,6 +257,14 @@ export const MimeTypes = {
|
|
|
96
257
|
/**
|
|
97
258
|
* Video WEBM - video/webm
|
|
98
259
|
*/
|
|
99
|
-
Webm: "video/webm"
|
|
260
|
+
Webm: "video/webm",
|
|
261
|
+
/**
|
|
262
|
+
* Video OGG - video/ogg
|
|
263
|
+
*/
|
|
264
|
+
OggVideo: "video/ogg",
|
|
265
|
+
/**
|
|
266
|
+
* Video QuickTime - video/quicktime
|
|
267
|
+
*/
|
|
268
|
+
Quicktime: "video/quicktime"
|
|
100
269
|
};
|
|
101
270
|
//# sourceMappingURL=mimeTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mimeTypes.js","sourceRoot":"","sources":["../../../src/models/mimeTypes.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC
|
|
1
|
+
{"version":3,"file":"mimeTypes.js","sourceRoot":"","sources":["../../../src/models/mimeTypes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Common mime types.\n * @see https://www.iana.org/assignments/media-types/media-types.xhtml\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const MimeTypes = {\n\t/**\n\t * Plaint Text - text/plain\n\t */\n\tPlainText: \"text/plain\",\n\n\t/**\n\t * Event Stream - text/event-stream\n\t */\n\tEventStream: \"text/event-stream\",\n\n\t/**\n\t * HTML - text/html\n\t */\n\tHtml: \"text/html\",\n\n\t/**\n\t * CSS - text/css\n\t */\n\tCss: \"text/css\",\n\n\t/**\n\t * Javascript - text/javascript\n\t */\n\tJavascript: \"text/javascript\",\n\n\t/**\n\t * Markdown - text/markdown\n\t */\n\tMarkdown: \"text/markdown\",\n\n\t/**\n\t * JSON - application/json\n\t */\n\tJson: \"application/json\",\n\n\t/**\n\t * Problem JSON - application/problem+json\n\t */\n\tProblemJson: \"application/problem+json\",\n\n\t/**\n\t * JSON-LD - application/ld+json\n\t */\n\tJsonLd: \"application/ld+json\",\n\n\t/**\n\t * Activity Streams - application/activity+json\n\t */\n\tActivityStreams: \"application/activity+json\",\n\n\t/**\n\t * WebFinger JRD - application/jrd+json\n\t */\n\tJrdJson: \"application/jrd+json\",\n\n\t/**\n\t * JWT - application/jwt\n\t */\n\tJwt: \"application/jwt\",\n\n\t/**\n\t * Access Token JWT - application/at+jwt\n\t */\n\tAccessTokenJwt: \"application/at+jwt\",\n\n\t/**\n\t * JOSE (Compact Serialization) - application/jose\n\t */\n\tJose: \"application/jose\",\n\n\t/**\n\t * JOSE (JSON Serialization) - application/jose+json\n\t */\n\tJoseJson: \"application/jose+json\",\n\n\t/**\n\t * JSON Web Key (JWK) - application/jwk+json\n\t */\n\tJwkJson: \"application/jwk+json\",\n\n\t/**\n\t * JSON Web Key Set (JWKS) - application/jwk-set+json\n\t */\n\tJwkSetJson: \"application/jwk-set+json\",\n\n\t/**\n\t * Decentralized Identifier (DID) - application/did+json\n\t */\n\tDidJson: \"application/did+json\",\n\n\t/**\n\t * Decentralized Identifier (DID) (JSON-LD) - application/did+ld+json\n\t */\n\tDidLdJson: \"application/did+ld+json\",\n\n\t/**\n\t * Verifiable Credential (JSON-LD) - application/vc+ld+json\n\t */\n\tVerifiableCredentialLdJson: \"application/vc+ld+json\",\n\n\t/**\n\t * Verifiable Presentation (JSON-LD) - application/vp+ld+json\n\t */\n\tVerifiablePresentationLdJson: \"application/vp+ld+json\",\n\n\t/**\n\t * Verifiable Credential (JWT) - application/vc+jwt\n\t */\n\tVerifiableCredentialJwt: \"application/vc+jwt\",\n\n\t/**\n\t * Verifiable Presentation (JWT) - application/vp+jwt\n\t */\n\tVerifiablePresentationJwt: \"application/vp+jwt\",\n\n\t/**\n\t * JSON Patch - application/json-patch+json\n\t */\n\tJsonPatch: \"application/json-patch+json\",\n\n\t/**\n\t * JSON Merge Patch - application/merge-patch+json\n\t */\n\tMergePatch: \"application/merge-patch+json\",\n\n\t/**\n\t * CBOR Web Token (CWT) - application/cwt\n\t */\n\tCwt: \"application/cwt\",\n\n\t/**\n\t * COSE - application/cose\n\t */\n\tCose: \"application/cose\",\n\n\t/**\n\t * COSE Key - application/cose-key\n\t */\n\tCoseKey: \"application/cose-key\",\n\n\t/**\n\t * COSE Key Set - application/cose-key-set\n\t */\n\tCoseKeySet: \"application/cose-key-set\",\n\n\t/**\n\t * Form URL Encoded - application/x-www-form-urlencoded\n\t */\n\tFormUrlEncoded: \"application/x-www-form-urlencoded\",\n\n\t/**\n\t * Multipart Form Data - multipart/form-data\n\t */\n\tMultipartFormData: \"multipart/form-data\",\n\n\t/**\n\t * XML - application/xml\n\t */\n\tXml: \"application/xml\",\n\n\t/**\n\t * WASM - application/wasm\n\t */\n\tWasm: \"application/wasm\",\n\n\t/**\n\t * Web App Manifest - application/manifest+json\n\t */\n\tWebManifest: \"application/manifest+json\",\n\n\t/**\n\t * Application Octet Stream, arbitrary binary - application/octet-stream\n\t */\n\tOctetStream: \"application/octet-stream\",\n\n\t/**\n\t * Application GZIP - application/gzip\n\t */\n\tGzip: \"application/gzip\",\n\n\t/**\n\t * Application deflate - application/zlib\n\t */\n\tZlib: \"application/zlib\",\n\n\t/**\n\t * Application BZIP2 - application/x-bzip2\n\t */\n\tBzip2: \"application/x-bzip2\",\n\n\t/**\n\t * Application ZIP - application/zip\n\t */\n\tZip: \"application/zip\",\n\n\t/**\n\t * Application PDF - application/pdf\n\t */\n\tPdf: \"application/pdf\",\n\n\t/**\n\t * Image GIF - image/gif\n\t */\n\tGif: \"image/gif\",\n\n\t/**\n\t * Image BMP - image/bmp\n\t */\n\tBmp: \"image/bmp\",\n\n\t/**\n\t * Image JPEG - image/jpeg\n\t */\n\tJpeg: \"image/jpeg\",\n\n\t/**\n\t * Image PNG - image/png\n\t */\n\tPng: \"image/png\",\n\n\t/**\n\t * Image Tiff - image/tiff\n\t */\n\tTiff: \"image/tiff\",\n\n\t/**\n\t * Image SVG - image/svg+xml\n\t */\n\tSvg: \"image/svg+xml\",\n\n\t/**\n\t * Image ICO - image/x-icon\n\t */\n\tIco: \"image/x-icon\",\n\n\t/**\n\t * Image WEBP - image/webp\n\t */\n\tWebP: \"image/webp\",\n\n\t/**\n\t * Image AVIF - image/avif\n\t */\n\tAvif: \"image/avif\",\n\n\t/**\n\t * Image APNG - image/apng\n\t */\n\tApng: \"image/apng\",\n\n\t/**\n\t * Font WOFF - font/woff\n\t */\n\tWoff: \"font/woff\",\n\n\t/**\n\t * Font WOFF2 - font/woff2\n\t */\n\tWoff2: \"font/woff2\",\n\n\t/**\n\t * Font TTF - font/ttf\n\t */\n\tTtf: \"font/ttf\",\n\n\t/**\n\t * Font OTF - font/otf\n\t */\n\tOtf: \"font/otf\",\n\n\t/**\n\t * Audio MP3 - audio/mpeg\n\t */\n\tMp3: \"audio/mpeg\",\n\n\t/**\n\t * Audio OGG - audio/ogg\n\t */\n\tOggAudio: \"audio/ogg\",\n\n\t/**\n\t * Audio WAV - audio/wav\n\t */\n\tWav: \"audio/wav\",\n\n\t/**\n\t * Audio WEBM - audio/webm\n\t */\n\tWebmAudio: \"audio/webm\",\n\n\t/**\n\t * Audio AAC - audio/aac\n\t */\n\tAac: \"audio/aac\",\n\n\t/**\n\t * Audio MP4 - audio/mp4\n\t */\n\tMp4Audio: \"audio/mp4\",\n\n\t/**\n\t * Video MP4 - video/mp4\n\t */\n\tMp4: \"video/mp4\",\n\n\t/**\n\t * Audio/Video MPEG - video/mpeg\n\t */\n\tMpeg: \"video/mpeg\",\n\n\t/**\n\t * Video WEBM - video/webm\n\t */\n\tWebm: \"video/webm\",\n\n\t/**\n\t * Video OGG - video/ogg\n\t */\n\tOggVideo: \"video/ogg\",\n\n\t/**\n\t * Video QuickTime - video/quicktime\n\t */\n\tQuicktime: \"video/quicktime\"\n} as const;\n\n/**\n * Common mime types.\n */\nexport type MimeTypes = (typeof MimeTypes)[keyof typeof MimeTypes];\n"]}
|
|
@@ -85,12 +85,38 @@ export class MimeTypeHelper {
|
|
|
85
85
|
}
|
|
86
86
|
const lookup = {
|
|
87
87
|
[MimeTypes.PlainText]: "txt",
|
|
88
|
+
[MimeTypes.EventStream]: "txt",
|
|
88
89
|
[MimeTypes.Html]: "html",
|
|
90
|
+
[MimeTypes.Css]: "css",
|
|
89
91
|
[MimeTypes.Javascript]: "js",
|
|
92
|
+
[MimeTypes.Markdown]: "md",
|
|
90
93
|
[MimeTypes.Json]: "json",
|
|
94
|
+
[MimeTypes.ProblemJson]: "json",
|
|
95
|
+
[MimeTypes.WebManifest]: "webmanifest",
|
|
91
96
|
[MimeTypes.JsonLd]: "jsonld",
|
|
92
97
|
[MimeTypes.Jwt]: "jwt",
|
|
98
|
+
[MimeTypes.AccessTokenJwt]: "jwt",
|
|
99
|
+
[MimeTypes.Jose]: "jose",
|
|
100
|
+
[MimeTypes.JoseJson]: "json",
|
|
101
|
+
[MimeTypes.JwkJson]: "json",
|
|
102
|
+
[MimeTypes.JwkSetJson]: "json",
|
|
103
|
+
[MimeTypes.JrdJson]: "json",
|
|
104
|
+
[MimeTypes.DidJson]: "json",
|
|
105
|
+
[MimeTypes.DidLdJson]: "jsonld",
|
|
106
|
+
[MimeTypes.VerifiableCredentialLdJson]: "jsonld",
|
|
107
|
+
[MimeTypes.VerifiablePresentationLdJson]: "jsonld",
|
|
108
|
+
[MimeTypes.VerifiableCredentialJwt]: "jwt",
|
|
109
|
+
[MimeTypes.VerifiablePresentationJwt]: "jwt",
|
|
110
|
+
[MimeTypes.JsonPatch]: "json",
|
|
111
|
+
[MimeTypes.MergePatch]: "json",
|
|
112
|
+
[MimeTypes.Cwt]: "cwt",
|
|
113
|
+
[MimeTypes.Cose]: "cose",
|
|
114
|
+
[MimeTypes.CoseKey]: "cose",
|
|
115
|
+
[MimeTypes.CoseKeySet]: "cose",
|
|
116
|
+
[MimeTypes.FormUrlEncoded]: "txt",
|
|
117
|
+
[MimeTypes.MultipartFormData]: "txt",
|
|
93
118
|
[MimeTypes.Xml]: "xml",
|
|
119
|
+
[MimeTypes.Wasm]: "wasm",
|
|
94
120
|
[MimeTypes.OctetStream]: "bin",
|
|
95
121
|
[MimeTypes.Gzip]: "gzip",
|
|
96
122
|
[MimeTypes.Zlib]: "zlib",
|
|
@@ -103,10 +129,25 @@ export class MimeTypeHelper {
|
|
|
103
129
|
[MimeTypes.Png]: "png",
|
|
104
130
|
[MimeTypes.Tiff]: "tif",
|
|
105
131
|
[MimeTypes.Svg]: "svg",
|
|
132
|
+
[MimeTypes.Ico]: "ico",
|
|
106
133
|
[MimeTypes.WebP]: "webp",
|
|
134
|
+
[MimeTypes.Avif]: "avif",
|
|
135
|
+
[MimeTypes.Apng]: "apng",
|
|
136
|
+
[MimeTypes.Woff]: "woff",
|
|
137
|
+
[MimeTypes.Woff2]: "woff2",
|
|
138
|
+
[MimeTypes.Ttf]: "ttf",
|
|
139
|
+
[MimeTypes.Otf]: "otf",
|
|
140
|
+
[MimeTypes.Mp3]: "mp3",
|
|
141
|
+
[MimeTypes.OggAudio]: "ogg",
|
|
142
|
+
[MimeTypes.Wav]: "wav",
|
|
143
|
+
[MimeTypes.WebmAudio]: "webm",
|
|
144
|
+
[MimeTypes.Aac]: "aac",
|
|
145
|
+
[MimeTypes.Mp4Audio]: "m4a",
|
|
107
146
|
[MimeTypes.Mp4]: "mp4",
|
|
108
147
|
[MimeTypes.Mpeg]: "mpg",
|
|
109
|
-
[MimeTypes.Webm]: "webm"
|
|
148
|
+
[MimeTypes.Webm]: "webm",
|
|
149
|
+
[MimeTypes.OggVideo]: "ogv",
|
|
150
|
+
[MimeTypes.Quicktime]: "mov"
|
|
110
151
|
};
|
|
111
152
|
return lookup[mimeType];
|
|
112
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mimeTypeHelper.js","sourceRoot":"","sources":["../../../src/utils/mimeTypeHelper.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { Converter, Is, StringHelper } from \"@twin.org/core\";\nimport { MimeTypes } from \"../models/mimeTypes.js\";\n\n/**\n * Class to help with mime types.\n */\nexport class MimeTypeHelper {\n\t/**\n\t * Detect the mime type from a byte array.\n\t * @param data The data to test.\n\t * @returns The mime type if detected.\n\t */\n\tpublic static async detect(data: Uint8Array): Promise<string | undefined> {\n\t\tif (!Is.uint8Array(data) || data.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Image\n\t\tif (MimeTypeHelper.checkBytes(data, [0x47, 0x49, 0x46])) {\n\t\t\treturn MimeTypes.Gif;\n\t\t}\n\n\t\tif (MimeTypeHelper.checkBytes(data, [0x42, 0x4d])) {\n\t\t\treturn MimeTypes.Bmp;\n\t\t}\n\t\tif (MimeTypeHelper.checkBytes(data, [0xff, 0xd8, 0xff])) {\n\t\t\treturn MimeTypes.Jpeg;\n\t\t}\n\n\t\tif (MimeTypeHelper.checkBytes(data, [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a])) {\n\t\t\treturn MimeTypes.Png;\n\t\t}\n\n\t\tif (\n\t\t\tMimeTypeHelper.checkBytes(data, [0x49, 0x49, 0x2a, 0x00]) ||\n\t\t\tMimeTypeHelper.checkBytes(data, [0x4d, 0x4d, 0x00, 0x2a])\n\t\t) {\n\t\t\treturn MimeTypes.Tiff;\n\t\t}\n\n\t\t// Compression\n\t\tif (MimeTypeHelper.checkBytes(data, [0x1f, 0x8b, 0x8])) {\n\t\t\treturn MimeTypes.Gzip;\n\t\t}\n\n\t\tif (\n\t\t\tMimeTypeHelper.checkBytes(data, [0x78, 0x01]) ||\n\t\t\tMimeTypeHelper.checkBytes(data, [0x78, 0x9c]) ||\n\t\t\tMimeTypeHelper.checkBytes(data, [0x78, 0xda])\n\t\t) {\n\t\t\treturn MimeTypes.Zlib;\n\t\t}\n\n\t\tif (MimeTypeHelper.checkBytes(data, [0x42, 0x5a, 0x68])) {\n\t\t\treturn MimeTypes.Bzip2;\n\t\t}\n\n\t\tif (MimeTypeHelper.checkBytes(data, [0x50, 0x4b, 0x3, 0x4])) {\n\t\t\treturn MimeTypes.Zip;\n\t\t}\n\n\t\t// Documents\n\t\tif (MimeTypeHelper.checkText(data, [\"%PDF\"])) {\n\t\t\treturn MimeTypes.Pdf;\n\t\t}\n\n\t\t// Lookup svg before xml, as svg are xml files as well\n\t\tconst asText = Converter.bytesToUtf8(data);\n\t\tif (asText.includes(\"<svg\")) {\n\t\t\treturn MimeTypes.Svg;\n\t\t}\n\n\t\tif (MimeTypeHelper.checkText(data, [\"<?xml \", \"<message\"])) {\n\t\t\treturn MimeTypes.Xml;\n\t\t}\n\n\t\tif (\n\t\t\tMimeTypeHelper.checkBytes(data, [0xef, 0xbb, 0xbf]) &&\n\t\t\tMimeTypeHelper.checkText(data, [\"<?xml \"], 3)\n\t\t) {\n\t\t\t// UTF-8-BOM\n\t\t\treturn MimeTypes.Xml;\n\t\t}\n\n\t\tif (StringHelper.isUtf8(data)) {\n\t\t\ttry {\n\t\t\t\tJSON.parse(new TextDecoder().decode(data));\n\t\t\t\treturn MimeTypes.Json;\n\t\t\t} catch {\n\t\t\t\treturn MimeTypes.PlainText;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Return the default extension for a mime type.\n\t * @param mimeType The mimetype to get the extension for.\n\t * @returns The extension for the mime type.\n\t */\n\tpublic static defaultExtension(mimeType: string | undefined): string | undefined {\n\t\tif (!Is.stringValue(mimeType)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst lookup: { [mimeType: string]: string } = {\n\t\t\t[MimeTypes.PlainText]: \"txt\",\n\t\t\t[MimeTypes.Html]: \"html\",\n\t\t\t[MimeTypes.Javascript]: \"js\",\n\t\t\t[MimeTypes.Json]: \"json\",\n\t\t\t[MimeTypes.JsonLd]: \"jsonld\",\n\t\t\t[MimeTypes.Jwt]: \"jwt\",\n\t\t\t[MimeTypes.Xml]: \"xml\",\n\t\t\t[MimeTypes.OctetStream]: \"bin\",\n\t\t\t[MimeTypes.Gzip]: \"gzip\",\n\t\t\t[MimeTypes.Zlib]: \"zlib\",\n\t\t\t[MimeTypes.Bzip2]: \"bz2\",\n\t\t\t[MimeTypes.Zip]: \"zip\",\n\t\t\t[MimeTypes.Pdf]: \"pdf\",\n\t\t\t[MimeTypes.Gif]: \"gif\",\n\t\t\t[MimeTypes.Bmp]: \"bmp\",\n\t\t\t[MimeTypes.Jpeg]: \"jpeg\",\n\t\t\t[MimeTypes.Png]: \"png\",\n\t\t\t[MimeTypes.Tiff]: \"tif\",\n\t\t\t[MimeTypes.Svg]: \"svg\",\n\t\t\t[MimeTypes.WebP]: \"webp\",\n\t\t\t[MimeTypes.Mp4]: \"mp4\",\n\t\t\t[MimeTypes.Mpeg]: \"mpg\",\n\t\t\t[MimeTypes.Webm]: \"webm\"\n\t\t};\n\n\t\treturn lookup[mimeType];\n\t}\n\n\t/**\n\t * Check if the bytes match.\n\t * @param data The data to look at.\n\t * @param bytes The bytes to try and match.\n\t * @param startOffset Start offset in the data.\n\t * @returns True if the bytes match.\n\t * @internal\n\t */\n\tprivate static checkBytes(data: Uint8Array, bytes: number[], startOffset = 0): boolean {\n\t\tif (data.length - startOffset < bytes.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (let i = 0; i < bytes.length; i++) {\n\t\t\tif (data[i + startOffset] !== bytes[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Check if the text matches.\n\t * @param data The data to look at.\n\t * @param texts The text to try and match.\n\t * @param startOffset Start offset in the data.\n\t * @returns True if the bytes match.\n\t * @internal\n\t */\n\tprivate static checkText(data: Uint8Array, texts: string[], startOffset = 0): boolean {\n\t\treturn texts.some(text =>\n\t\t\tMimeTypeHelper.checkBytes(data, Array.from(Converter.utf8ToBytes(text)), startOffset)\n\t\t);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mimeTypeHelper.js","sourceRoot":"","sources":["../../../src/utils/mimeTypeHelper.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { Converter, Is, StringHelper } from \"@twin.org/core\";\nimport { MimeTypes } from \"../models/mimeTypes.js\";\n\n/**\n * Class to help with mime types.\n */\nexport class MimeTypeHelper {\n\t/**\n\t * Detect the mime type from a byte array.\n\t * @param data The data to test.\n\t * @returns The mime type if detected.\n\t */\n\tpublic static async detect(data: Uint8Array): Promise<string | undefined> {\n\t\tif (!Is.uint8Array(data) || data.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Image\n\t\tif (MimeTypeHelper.checkBytes(data, [0x47, 0x49, 0x46])) {\n\t\t\treturn MimeTypes.Gif;\n\t\t}\n\n\t\tif (MimeTypeHelper.checkBytes(data, [0x42, 0x4d])) {\n\t\t\treturn MimeTypes.Bmp;\n\t\t}\n\t\tif (MimeTypeHelper.checkBytes(data, [0xff, 0xd8, 0xff])) {\n\t\t\treturn MimeTypes.Jpeg;\n\t\t}\n\n\t\tif (MimeTypeHelper.checkBytes(data, [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a])) {\n\t\t\treturn MimeTypes.Png;\n\t\t}\n\n\t\tif (\n\t\t\tMimeTypeHelper.checkBytes(data, [0x49, 0x49, 0x2a, 0x00]) ||\n\t\t\tMimeTypeHelper.checkBytes(data, [0x4d, 0x4d, 0x00, 0x2a])\n\t\t) {\n\t\t\treturn MimeTypes.Tiff;\n\t\t}\n\n\t\t// Compression\n\t\tif (MimeTypeHelper.checkBytes(data, [0x1f, 0x8b, 0x8])) {\n\t\t\treturn MimeTypes.Gzip;\n\t\t}\n\n\t\tif (\n\t\t\tMimeTypeHelper.checkBytes(data, [0x78, 0x01]) ||\n\t\t\tMimeTypeHelper.checkBytes(data, [0x78, 0x9c]) ||\n\t\t\tMimeTypeHelper.checkBytes(data, [0x78, 0xda])\n\t\t) {\n\t\t\treturn MimeTypes.Zlib;\n\t\t}\n\n\t\tif (MimeTypeHelper.checkBytes(data, [0x42, 0x5a, 0x68])) {\n\t\t\treturn MimeTypes.Bzip2;\n\t\t}\n\n\t\tif (MimeTypeHelper.checkBytes(data, [0x50, 0x4b, 0x3, 0x4])) {\n\t\t\treturn MimeTypes.Zip;\n\t\t}\n\n\t\t// Documents\n\t\tif (MimeTypeHelper.checkText(data, [\"%PDF\"])) {\n\t\t\treturn MimeTypes.Pdf;\n\t\t}\n\n\t\t// Lookup svg before xml, as svg are xml files as well\n\t\tconst asText = Converter.bytesToUtf8(data);\n\t\tif (asText.includes(\"<svg\")) {\n\t\t\treturn MimeTypes.Svg;\n\t\t}\n\n\t\tif (MimeTypeHelper.checkText(data, [\"<?xml \", \"<message\"])) {\n\t\t\treturn MimeTypes.Xml;\n\t\t}\n\n\t\tif (\n\t\t\tMimeTypeHelper.checkBytes(data, [0xef, 0xbb, 0xbf]) &&\n\t\t\tMimeTypeHelper.checkText(data, [\"<?xml \"], 3)\n\t\t) {\n\t\t\t// UTF-8-BOM\n\t\t\treturn MimeTypes.Xml;\n\t\t}\n\n\t\tif (StringHelper.isUtf8(data)) {\n\t\t\ttry {\n\t\t\t\tJSON.parse(new TextDecoder().decode(data));\n\t\t\t\treturn MimeTypes.Json;\n\t\t\t} catch {\n\t\t\t\treturn MimeTypes.PlainText;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Return the default extension for a mime type.\n\t * @param mimeType The mimetype to get the extension for.\n\t * @returns The extension for the mime type.\n\t */\n\tpublic static defaultExtension(mimeType: string | undefined): string | undefined {\n\t\tif (!Is.stringValue(mimeType)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst lookup: { [mimeType: string]: string } = {\n\t\t\t[MimeTypes.PlainText]: \"txt\",\n\t\t\t[MimeTypes.EventStream]: \"txt\",\n\t\t\t[MimeTypes.Html]: \"html\",\n\t\t\t[MimeTypes.Css]: \"css\",\n\t\t\t[MimeTypes.Javascript]: \"js\",\n\t\t\t[MimeTypes.Markdown]: \"md\",\n\t\t\t[MimeTypes.Json]: \"json\",\n\t\t\t[MimeTypes.ProblemJson]: \"json\",\n\t\t\t[MimeTypes.WebManifest]: \"webmanifest\",\n\t\t\t[MimeTypes.JsonLd]: \"jsonld\",\n\t\t\t[MimeTypes.Jwt]: \"jwt\",\n\t\t\t[MimeTypes.AccessTokenJwt]: \"jwt\",\n\t\t\t[MimeTypes.Jose]: \"jose\",\n\t\t\t[MimeTypes.JoseJson]: \"json\",\n\t\t\t[MimeTypes.JwkJson]: \"json\",\n\t\t\t[MimeTypes.JwkSetJson]: \"json\",\n\t\t\t[MimeTypes.JrdJson]: \"json\",\n\t\t\t[MimeTypes.DidJson]: \"json\",\n\t\t\t[MimeTypes.DidLdJson]: \"jsonld\",\n\t\t\t[MimeTypes.VerifiableCredentialLdJson]: \"jsonld\",\n\t\t\t[MimeTypes.VerifiablePresentationLdJson]: \"jsonld\",\n\t\t\t[MimeTypes.VerifiableCredentialJwt]: \"jwt\",\n\t\t\t[MimeTypes.VerifiablePresentationJwt]: \"jwt\",\n\t\t\t[MimeTypes.JsonPatch]: \"json\",\n\t\t\t[MimeTypes.MergePatch]: \"json\",\n\t\t\t[MimeTypes.Cwt]: \"cwt\",\n\t\t\t[MimeTypes.Cose]: \"cose\",\n\t\t\t[MimeTypes.CoseKey]: \"cose\",\n\t\t\t[MimeTypes.CoseKeySet]: \"cose\",\n\t\t\t[MimeTypes.FormUrlEncoded]: \"txt\",\n\t\t\t[MimeTypes.MultipartFormData]: \"txt\",\n\t\t\t[MimeTypes.Xml]: \"xml\",\n\t\t\t[MimeTypes.Wasm]: \"wasm\",\n\t\t\t[MimeTypes.OctetStream]: \"bin\",\n\t\t\t[MimeTypes.Gzip]: \"gzip\",\n\t\t\t[MimeTypes.Zlib]: \"zlib\",\n\t\t\t[MimeTypes.Bzip2]: \"bz2\",\n\t\t\t[MimeTypes.Zip]: \"zip\",\n\t\t\t[MimeTypes.Pdf]: \"pdf\",\n\t\t\t[MimeTypes.Gif]: \"gif\",\n\t\t\t[MimeTypes.Bmp]: \"bmp\",\n\t\t\t[MimeTypes.Jpeg]: \"jpeg\",\n\t\t\t[MimeTypes.Png]: \"png\",\n\t\t\t[MimeTypes.Tiff]: \"tif\",\n\t\t\t[MimeTypes.Svg]: \"svg\",\n\t\t\t[MimeTypes.Ico]: \"ico\",\n\t\t\t[MimeTypes.WebP]: \"webp\",\n\t\t\t[MimeTypes.Avif]: \"avif\",\n\t\t\t[MimeTypes.Apng]: \"apng\",\n\t\t\t[MimeTypes.Woff]: \"woff\",\n\t\t\t[MimeTypes.Woff2]: \"woff2\",\n\t\t\t[MimeTypes.Ttf]: \"ttf\",\n\t\t\t[MimeTypes.Otf]: \"otf\",\n\t\t\t[MimeTypes.Mp3]: \"mp3\",\n\t\t\t[MimeTypes.OggAudio]: \"ogg\",\n\t\t\t[MimeTypes.Wav]: \"wav\",\n\t\t\t[MimeTypes.WebmAudio]: \"webm\",\n\t\t\t[MimeTypes.Aac]: \"aac\",\n\t\t\t[MimeTypes.Mp4Audio]: \"m4a\",\n\t\t\t[MimeTypes.Mp4]: \"mp4\",\n\t\t\t[MimeTypes.Mpeg]: \"mpg\",\n\t\t\t[MimeTypes.Webm]: \"webm\",\n\t\t\t[MimeTypes.OggVideo]: \"ogv\",\n\t\t\t[MimeTypes.Quicktime]: \"mov\"\n\t\t};\n\n\t\treturn lookup[mimeType];\n\t}\n\n\t/**\n\t * Check if the bytes match.\n\t * @param data The data to look at.\n\t * @param bytes The bytes to try and match.\n\t * @param startOffset Start offset in the data.\n\t * @returns True if the bytes match.\n\t * @internal\n\t */\n\tprivate static checkBytes(data: Uint8Array, bytes: number[], startOffset = 0): boolean {\n\t\tif (data.length - startOffset < bytes.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (let i = 0; i < bytes.length; i++) {\n\t\t\tif (data[i + startOffset] !== bytes[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Check if the text matches.\n\t * @param data The data to look at.\n\t * @param texts The text to try and match.\n\t * @param startOffset Start offset in the data.\n\t * @returns True if the bytes match.\n\t * @internal\n\t */\n\tprivate static checkText(data: Uint8Array, texts: string[], startOffset = 0): boolean {\n\t\treturn texts.some(text =>\n\t\t\tMimeTypeHelper.checkBytes(data, Array.from(Converter.utf8ToBytes(text)), startOffset)\n\t\t);\n\t}\n}\n"]}
|
|
@@ -7,6 +7,11 @@ export declare const HeaderTypes: {
|
|
|
7
7
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
|
|
8
8
|
*/
|
|
9
9
|
readonly ContentType: "content-type";
|
|
10
|
+
/**
|
|
11
|
+
* Content Language.
|
|
12
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Language
|
|
13
|
+
*/
|
|
14
|
+
readonly ContentLanguage: "content-language";
|
|
10
15
|
/**
|
|
11
16
|
* Content Length.
|
|
12
17
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
|
|
@@ -22,6 +27,31 @@ export declare const HeaderTypes: {
|
|
|
22
27
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding
|
|
23
28
|
*/
|
|
24
29
|
readonly ContentEncoding: "content-encoding";
|
|
30
|
+
/**
|
|
31
|
+
* Cache Control.
|
|
32
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
|
|
33
|
+
*/
|
|
34
|
+
readonly CacheControl: "cache-control";
|
|
35
|
+
/**
|
|
36
|
+
* ETag.
|
|
37
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag
|
|
38
|
+
*/
|
|
39
|
+
readonly ETag: "etag";
|
|
40
|
+
/**
|
|
41
|
+
* If-None-Match.
|
|
42
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match
|
|
43
|
+
*/
|
|
44
|
+
readonly IfNoneMatch: "if-none-match";
|
|
45
|
+
/**
|
|
46
|
+
* Last-Modified.
|
|
47
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
|
|
48
|
+
*/
|
|
49
|
+
readonly LastModified: "last-modified";
|
|
50
|
+
/**
|
|
51
|
+
* If-Modified-Since.
|
|
52
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since
|
|
53
|
+
*/
|
|
54
|
+
readonly IfModifiedSince: "if-modified-since";
|
|
25
55
|
/**
|
|
26
56
|
* Accept.
|
|
27
57
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Accept
|
|
@@ -42,6 +72,11 @@ export declare const HeaderTypes: {
|
|
|
42
72
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Authorization
|
|
43
73
|
*/
|
|
44
74
|
readonly Authorization: "authorization";
|
|
75
|
+
/**
|
|
76
|
+
* WWW-Authenticate.
|
|
77
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/WWW-Authenticate
|
|
78
|
+
*/
|
|
79
|
+
readonly WwwAuthenticate: "www-authenticate";
|
|
45
80
|
/**
|
|
46
81
|
* Cookie.
|
|
47
82
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cookie
|
|
@@ -57,11 +92,71 @@ export declare const HeaderTypes: {
|
|
|
57
92
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Location
|
|
58
93
|
*/
|
|
59
94
|
readonly Location: "location";
|
|
95
|
+
/**
|
|
96
|
+
* Origin.
|
|
97
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin
|
|
98
|
+
*/
|
|
99
|
+
readonly Origin: "origin";
|
|
100
|
+
/**
|
|
101
|
+
* Referer.
|
|
102
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer
|
|
103
|
+
*/
|
|
104
|
+
readonly Referer: "referer";
|
|
60
105
|
/**
|
|
61
106
|
* Link
|
|
62
107
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Link
|
|
63
108
|
*/
|
|
64
109
|
readonly Link: "link";
|
|
110
|
+
/**
|
|
111
|
+
* Vary.
|
|
112
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Vary
|
|
113
|
+
*/
|
|
114
|
+
readonly Vary: "vary";
|
|
115
|
+
/**
|
|
116
|
+
* Access-Control-Allow-Origin.
|
|
117
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
|
|
118
|
+
*/
|
|
119
|
+
readonly AccessControlAllowOrigin: "access-control-allow-origin";
|
|
120
|
+
/**
|
|
121
|
+
* Access-Control-Allow-Methods.
|
|
122
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
|
|
123
|
+
*/
|
|
124
|
+
readonly AccessControlAllowMethods: "access-control-allow-methods";
|
|
125
|
+
/**
|
|
126
|
+
* Access-Control-Allow-Headers.
|
|
127
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
|
|
128
|
+
*/
|
|
129
|
+
readonly AccessControlAllowHeaders: "access-control-allow-headers";
|
|
130
|
+
/**
|
|
131
|
+
* Access-Control-Expose-Headers.
|
|
132
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers
|
|
133
|
+
*/
|
|
134
|
+
readonly AccessControlExposeHeaders: "access-control-expose-headers";
|
|
135
|
+
/**
|
|
136
|
+
* Access-Control-Max-Age.
|
|
137
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age
|
|
138
|
+
*/
|
|
139
|
+
readonly AccessControlMaxAge: "access-control-max-age";
|
|
140
|
+
/**
|
|
141
|
+
* Access-Control-Allow-Credentials.
|
|
142
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials
|
|
143
|
+
*/
|
|
144
|
+
readonly AccessControlAllowCredentials: "access-control-allow-credentials";
|
|
145
|
+
/**
|
|
146
|
+
* Range.
|
|
147
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range
|
|
148
|
+
*/
|
|
149
|
+
readonly Range: "range";
|
|
150
|
+
/**
|
|
151
|
+
* Accept-Ranges.
|
|
152
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Ranges
|
|
153
|
+
*/
|
|
154
|
+
readonly AcceptRanges: "accept-ranges";
|
|
155
|
+
/**
|
|
156
|
+
* Content-Range.
|
|
157
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range
|
|
158
|
+
*/
|
|
159
|
+
readonly ContentRange: "content-range";
|
|
65
160
|
/**
|
|
66
161
|
* User-Agent
|
|
67
162
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
|
|
@@ -2,14 +2,50 @@
|
|
|
2
2
|
* The names of the HTTP Methods.
|
|
3
3
|
*/
|
|
4
4
|
export declare const HttpMethod: {
|
|
5
|
+
/**
|
|
6
|
+
* Retrieve a representation of the resource.
|
|
7
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/GET
|
|
8
|
+
*/
|
|
5
9
|
readonly GET: "GET";
|
|
10
|
+
/**
|
|
11
|
+
* Submit an entity to the specified resource.
|
|
12
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
|
|
13
|
+
*/
|
|
6
14
|
readonly POST: "POST";
|
|
15
|
+
/**
|
|
16
|
+
* Replace all current representations of the target resource.
|
|
17
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PUT
|
|
18
|
+
*/
|
|
7
19
|
readonly PUT: "PUT";
|
|
20
|
+
/**
|
|
21
|
+
* Apply partial modifications to a resource.
|
|
22
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH
|
|
23
|
+
*/
|
|
8
24
|
readonly PATCH: "PATCH";
|
|
25
|
+
/**
|
|
26
|
+
* Delete the specified resource.
|
|
27
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE
|
|
28
|
+
*/
|
|
9
29
|
readonly DELETE: "DELETE";
|
|
30
|
+
/**
|
|
31
|
+
* Describe the communication options for the target resource.
|
|
32
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS
|
|
33
|
+
*/
|
|
10
34
|
readonly OPTIONS: "OPTIONS";
|
|
35
|
+
/**
|
|
36
|
+
* Ask for a response identical to GET, but without the response body.
|
|
37
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/HEAD
|
|
38
|
+
*/
|
|
11
39
|
readonly HEAD: "HEAD";
|
|
40
|
+
/**
|
|
41
|
+
* Establish a tunnel to the server identified by the target resource.
|
|
42
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT
|
|
43
|
+
*/
|
|
12
44
|
readonly CONNECT: "CONNECT";
|
|
45
|
+
/**
|
|
46
|
+
* Perform a message loop-back test along the path to the target resource.
|
|
47
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/TRACE
|
|
48
|
+
*/
|
|
13
49
|
readonly TRACE: "TRACE";
|
|
14
50
|
};
|
|
15
51
|
/**
|