@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.
@@ -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,CAgE9F"}
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
- // no need to include file-types listed at https://github.com/sindresorhus/file-type#supported-file-types
57
- switch (fileName.split('.').pop()) {
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 'csv':
76
- return 'text/csv';
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":"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"}
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.0",
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
- // no need to include file-types listed at https://github.com/sindresorhus/file-type#supported-file-types
64
- switch (fileName.split('.').pop()) {
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 'csv':
83
- return 'text/csv'
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':