@helia/verified-fetch 8.1.0 → 8.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +58 -58
- package/dist/index.min.js.map +4 -4
- package/dist/src/utils/content-type-parser.d.ts.map +1 -1
- package/dist/src/utils/content-type-parser.js +54 -4
- package/dist/src/utils/content-type-parser.js.map +1 -1
- package/package.json +1 -1
- package/src/utils/content-type-parser.ts +54 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-type-parser.d.ts","sourceRoot":"","sources":["../../../src/utils/content-type-parser.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,6BAA6B,CAAA;AA4BzD,wBAAsB,iBAAiB,CAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"content-type-parser.d.ts","sourceRoot":"","sources":["../../../src/utils/content-type-parser.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,6BAA6B,CAAA;AA4BzD,wBAAsB,iBAAiB,CAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkH9F"}
|
|
@@ -53,8 +53,15 @@ export async function contentTypeParser(bytes, fileName) {
|
|
|
53
53
|
}
|
|
54
54
|
return defaultMimeType;
|
|
55
55
|
}
|
|
56
|
-
//
|
|
57
|
-
|
|
56
|
+
// formats file-type cannot sniff at all, plus the media containers it only
|
|
57
|
+
// recognizes when their magic bytes start at offset 0 - a file with leading
|
|
58
|
+
// padding (an MP3 whose first frame sync sits behind a run of silence, a PDF
|
|
59
|
+
// that does not begin with its header) reaches this switch as well, and
|
|
60
|
+
// `application/octet-stream` makes the browser download it instead of
|
|
61
|
+
// playing or displaying it inline
|
|
62
|
+
// @see https://github.com/sindresorhus/file-type#supported-file-types
|
|
63
|
+
// @see https://github.com/ipfs/service-worker-gateway/issues/1197
|
|
64
|
+
switch (fileName.split('.').pop()?.toLowerCase()) {
|
|
58
65
|
case 'css':
|
|
59
66
|
return 'text/css';
|
|
60
67
|
case 'html':
|
|
@@ -67,13 +74,56 @@ export async function contentTypeParser(bytes, fileName) {
|
|
|
67
74
|
return 'application/json';
|
|
68
75
|
case 'txt':
|
|
69
76
|
return 'text/plain';
|
|
77
|
+
case 'md':
|
|
78
|
+
case 'markdown':
|
|
79
|
+
return 'text/markdown';
|
|
80
|
+
case 'xml':
|
|
81
|
+
return 'text/xml; charset=utf-8';
|
|
82
|
+
case 'csv':
|
|
83
|
+
return 'text/csv';
|
|
84
|
+
case 'vtt':
|
|
85
|
+
return 'text/vtt';
|
|
70
86
|
case 'woff2':
|
|
71
87
|
return 'font/woff2';
|
|
72
88
|
// see bottom of https://github.com/sindresorhus/file-type#supported-file-types
|
|
73
89
|
case 'svg':
|
|
74
90
|
return 'image/svg+xml';
|
|
75
|
-
case '
|
|
76
|
-
return '
|
|
91
|
+
case 'ico':
|
|
92
|
+
return 'image/x-icon';
|
|
93
|
+
case 'pdf':
|
|
94
|
+
return 'application/pdf';
|
|
95
|
+
case 'aac':
|
|
96
|
+
return 'audio/aac';
|
|
97
|
+
case 'flac':
|
|
98
|
+
return 'audio/flac';
|
|
99
|
+
case 'm4a':
|
|
100
|
+
return 'audio/mp4';
|
|
101
|
+
case 'mid':
|
|
102
|
+
case 'midi':
|
|
103
|
+
return 'audio/midi';
|
|
104
|
+
case 'mp3':
|
|
105
|
+
return 'audio/mpeg';
|
|
106
|
+
case 'oga':
|
|
107
|
+
case 'ogg':
|
|
108
|
+
case 'opus':
|
|
109
|
+
return 'audio/ogg';
|
|
110
|
+
case 'wav':
|
|
111
|
+
return 'audio/wav';
|
|
112
|
+
case 'weba':
|
|
113
|
+
return 'audio/webm';
|
|
114
|
+
case 'avi':
|
|
115
|
+
return 'video/x-msvideo';
|
|
116
|
+
case 'm4v':
|
|
117
|
+
case 'mp4':
|
|
118
|
+
return 'video/mp4';
|
|
119
|
+
case 'mkv':
|
|
120
|
+
return 'video/x-matroska';
|
|
121
|
+
case 'mov':
|
|
122
|
+
return 'video/quicktime';
|
|
123
|
+
case 'ogv':
|
|
124
|
+
return 'video/ogg';
|
|
125
|
+
case 'webm':
|
|
126
|
+
return 'video/webm';
|
|
77
127
|
case 'doc':
|
|
78
128
|
return 'application/msword';
|
|
79
129
|
case 'xls':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-type-parser.js","sourceRoot":"","sources":["../../../src/utils/content-type-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAA;AACzD,SAAS,WAAW,CAAE,IAAY;IAChC,OAAO,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpD,CAAC;AAED,KAAK,UAAU,YAAY,CAAE,IAAY;IACvC,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAE,KAAiB;IACjC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAEzD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAE,IAAY;IACvC,OAAO,4CAA4C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAE,KAAiB,EAAE,QAAiB;IAC3E,MAAM,YAAY,GAAG,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAA;IAE5D,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,YAAY,KAAK,iBAAiB,IAAI,QAAQ,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnF,OAAO,eAAe,CAAA;QACxB,CAAC;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,2CAA2C;IAC3C,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;QACzD,2DAA2D;QAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAE3B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,iDAAiD;YACjD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO,eAAe,CAAA;YACxB,CAAC;iBAAM,IAAI,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,OAAO,kBAAkB,CAAA;YAC3B,CAAC;iBAAM,IAAI,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,OAAO,0BAA0B,CAAA;YACnC,CAAC;iBAAM,CAAC;gBACN,OAAO,2BAA2B,CAAA;YACpC,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"content-type-parser.js","sourceRoot":"","sources":["../../../src/utils/content-type-parser.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/verified-fetch",
|
|
3
|
-
"version": "8.1.
|
|
3
|
+
"version": "8.1.1",
|
|
4
4
|
"description": "A fetch-like API for obtaining verified & trustless IPFS content on the web",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia-verified-fetch/tree/main/packages/verified-fetch#readme",
|
|
@@ -60,8 +60,15 @@ export async function contentTypeParser (bytes: Uint8Array, fileName?: string):
|
|
|
60
60
|
return defaultMimeType
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
//
|
|
64
|
-
|
|
63
|
+
// formats file-type cannot sniff at all, plus the media containers it only
|
|
64
|
+
// recognizes when their magic bytes start at offset 0 - a file with leading
|
|
65
|
+
// padding (an MP3 whose first frame sync sits behind a run of silence, a PDF
|
|
66
|
+
// that does not begin with its header) reaches this switch as well, and
|
|
67
|
+
// `application/octet-stream` makes the browser download it instead of
|
|
68
|
+
// playing or displaying it inline
|
|
69
|
+
// @see https://github.com/sindresorhus/file-type#supported-file-types
|
|
70
|
+
// @see https://github.com/ipfs/service-worker-gateway/issues/1197
|
|
71
|
+
switch (fileName.split('.').pop()?.toLowerCase()) {
|
|
65
72
|
case 'css':
|
|
66
73
|
return 'text/css'
|
|
67
74
|
case 'html':
|
|
@@ -74,13 +81,56 @@ export async function contentTypeParser (bytes: Uint8Array, fileName?: string):
|
|
|
74
81
|
return 'application/json'
|
|
75
82
|
case 'txt':
|
|
76
83
|
return 'text/plain'
|
|
84
|
+
case 'md':
|
|
85
|
+
case 'markdown':
|
|
86
|
+
return 'text/markdown'
|
|
87
|
+
case 'xml':
|
|
88
|
+
return 'text/xml; charset=utf-8'
|
|
89
|
+
case 'csv':
|
|
90
|
+
return 'text/csv'
|
|
91
|
+
case 'vtt':
|
|
92
|
+
return 'text/vtt'
|
|
77
93
|
case 'woff2':
|
|
78
94
|
return 'font/woff2'
|
|
79
95
|
// see bottom of https://github.com/sindresorhus/file-type#supported-file-types
|
|
80
96
|
case 'svg':
|
|
81
97
|
return 'image/svg+xml'
|
|
82
|
-
case '
|
|
83
|
-
return '
|
|
98
|
+
case 'ico':
|
|
99
|
+
return 'image/x-icon'
|
|
100
|
+
case 'pdf':
|
|
101
|
+
return 'application/pdf'
|
|
102
|
+
case 'aac':
|
|
103
|
+
return 'audio/aac'
|
|
104
|
+
case 'flac':
|
|
105
|
+
return 'audio/flac'
|
|
106
|
+
case 'm4a':
|
|
107
|
+
return 'audio/mp4'
|
|
108
|
+
case 'mid':
|
|
109
|
+
case 'midi':
|
|
110
|
+
return 'audio/midi'
|
|
111
|
+
case 'mp3':
|
|
112
|
+
return 'audio/mpeg'
|
|
113
|
+
case 'oga':
|
|
114
|
+
case 'ogg':
|
|
115
|
+
case 'opus':
|
|
116
|
+
return 'audio/ogg'
|
|
117
|
+
case 'wav':
|
|
118
|
+
return 'audio/wav'
|
|
119
|
+
case 'weba':
|
|
120
|
+
return 'audio/webm'
|
|
121
|
+
case 'avi':
|
|
122
|
+
return 'video/x-msvideo'
|
|
123
|
+
case 'm4v':
|
|
124
|
+
case 'mp4':
|
|
125
|
+
return 'video/mp4'
|
|
126
|
+
case 'mkv':
|
|
127
|
+
return 'video/x-matroska'
|
|
128
|
+
case 'mov':
|
|
129
|
+
return 'video/quicktime'
|
|
130
|
+
case 'ogv':
|
|
131
|
+
return 'video/ogg'
|
|
132
|
+
case 'webm':
|
|
133
|
+
return 'video/webm'
|
|
84
134
|
case 'doc':
|
|
85
135
|
return 'application/msword'
|
|
86
136
|
case 'xls':
|