@helia/verified-fetch 2.5.5 → 2.6.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.
@@ -136,7 +136,7 @@
136
136
  *
137
137
  * ```typescript
138
138
  * import { createVerifiedFetch } from '@helia/verified-fetch'
139
- * import { fileTypeFromBuffer } from '@sgtpooki/file-type'
139
+ * import { fileTypeFromBuffer } from 'file-type'
140
140
  *
141
141
  * const fetch = await createVerifiedFetch({
142
142
  * gateways: ['https://trustless-gateway.link'],
package/dist/src/index.js CHANGED
@@ -136,7 +136,7 @@
136
136
  *
137
137
  * ```typescript
138
138
  * import { createVerifiedFetch } from '@helia/verified-fetch'
139
- * import { fileTypeFromBuffer } from '@sgtpooki/file-type'
139
+ * import { fileTypeFromBuffer } from 'file-type'
140
140
  *
141
141
  * const fetch = await createVerifiedFetch({
142
142
  * gateways: ['https://trustless-gateway.link'],
@@ -54,7 +54,7 @@ export class RawPlugin extends BasePlugin {
54
54
  log.trace('Set content disposition...');
55
55
  }
56
56
  else {
57
- log.trace('Did NOT setting content disposition...');
57
+ log.trace('Did NOT set content disposition...');
58
58
  }
59
59
  if (path !== '' && cid.code === rawCode) {
60
60
  log.trace('404-ing raw codec request for %c/%s', cid, path);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-handle-raw.js","sourceRoot":"","sources":["../../../src/plugins/plugin-handle-raw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-handle-raw.js","sourceRoot":"","sources":["../../../src/plugins/plugin-handle-raw.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const defaultMimeType = "application/octet-stream";
2
+ export declare function contentTypeParser(bytes: Uint8Array, fileName?: string): Promise<string>;
3
+ //# sourceMappingURL=content-type-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-parser.d.ts","sourceRoot":"","sources":["../../../src/utils/content-type-parser.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe,6BAA6B,CAAA;AAiBzD,wBAAsB,iBAAiB,CAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiD9F"}
@@ -0,0 +1,69 @@
1
+ import { logger } from '@libp2p/logger';
2
+ import { fileTypeFromBuffer } from 'file-type';
3
+ const log = logger('helia:verified-fetch:content-type-parser');
4
+ export const defaultMimeType = 'application/octet-stream';
5
+ function checkForSvg(bytes) {
6
+ log('checking for svg');
7
+ return /^(<\?xml[^>]+>)?[^<^\w]+<svg/ig.test(new TextDecoder().decode(bytes.slice(0, 64)));
8
+ }
9
+ async function checkForJson(bytes) {
10
+ log('checking for json');
11
+ try {
12
+ JSON.parse(new TextDecoder().decode(bytes));
13
+ return true;
14
+ }
15
+ catch (err) {
16
+ log('failed to parse as json', err);
17
+ return false;
18
+ }
19
+ }
20
+ export async function contentTypeParser(bytes, fileName) {
21
+ log('contentTypeParser called for fileName: %s, byte size=%s', fileName, bytes.length);
22
+ const detectedType = (await fileTypeFromBuffer(bytes))?.mime;
23
+ if (detectedType != null) {
24
+ log('detectedType: %s', detectedType);
25
+ return detectedType;
26
+ }
27
+ log('no detectedType');
28
+ if (fileName == null) {
29
+ // no other way to determine file-type.
30
+ if (checkForSvg(bytes)) {
31
+ return 'image/svg+xml';
32
+ }
33
+ else if (await checkForJson(bytes)) {
34
+ return 'application/json';
35
+ }
36
+ return defaultMimeType;
37
+ }
38
+ // no need to include file-types listed at https://github.com/SgtPooki/file-type#supported-file-types
39
+ switch (fileName.split('.').pop()) {
40
+ case 'css':
41
+ return 'text/css';
42
+ case 'html':
43
+ return 'text/html; charset=utf-8';
44
+ case 'js':
45
+ return 'application/javascript';
46
+ case 'json':
47
+ return 'application/json';
48
+ case 'txt':
49
+ return 'text/plain';
50
+ case 'woff2':
51
+ return 'font/woff2';
52
+ // see bottom of https://github.com/SgtPooki/file-type#supported-file-types
53
+ case 'svg':
54
+ return 'image/svg+xml';
55
+ case 'csv':
56
+ return 'text/csv';
57
+ case 'doc':
58
+ return 'application/msword';
59
+ case 'xls':
60
+ return 'application/vnd.ms-excel';
61
+ case 'ppt':
62
+ return 'application/vnd.ms-powerpoint';
63
+ case 'msi':
64
+ return 'application/x-msdownload';
65
+ default:
66
+ return defaultMimeType;
67
+ }
68
+ }
69
+ //# sourceMappingURL=content-type-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-parser.js","sourceRoot":"","sources":["../../../src/utils/content-type-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,MAAM,GAAG,GAAG,MAAM,CAAC,0CAA0C,CAAC,CAAA;AAE9D,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAA;AACzD,SAAS,WAAW,CAAE,KAAiB;IACrC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IACvB,OAAO,gCAAgC,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED,KAAK,UAAU,YAAY,CAAE,KAAiB;IAC5C,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACxB,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;QACnC,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAE,KAAiB,EAAE,QAAiB;IAC3E,GAAG,CAAC,yDAAyD,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACtF,MAAM,YAAY,GAAG,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAA;IAC5D,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAA;QACrC,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAEtB,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,uCAAuC;QACvC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,eAAe,CAAA;QACxB,CAAC;aAAM,IAAI,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,kBAAkB,CAAA;QAC3B,CAAC;QACD,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,qGAAqG;IACrG,QAAQ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QAClC,KAAK,KAAK;YACR,OAAO,UAAU,CAAA;QACnB,KAAK,MAAM;YACT,OAAO,0BAA0B,CAAA;QACnC,KAAK,IAAI;YACP,OAAO,wBAAwB,CAAA;QACjC,KAAK,MAAM;YACT,OAAO,kBAAkB,CAAA;QAC3B,KAAK,KAAK;YACR,OAAO,YAAY,CAAA;QACrB,KAAK,OAAO;YACV,OAAO,YAAY,CAAA;QACrB,2EAA2E;QAC3E,KAAK,KAAK;YACR,OAAO,eAAe,CAAA;QACxB,KAAK,KAAK;YACR,OAAO,UAAU,CAAA;QACnB,KAAK,KAAK;YACR,OAAO,oBAAoB,CAAA;QAC7B,KAAK,KAAK;YACR,OAAO,0BAA0B,CAAA;QACnC,KAAK,KAAK;YACR,OAAO,+BAA+B,CAAA;QACxC,KAAK,KAAK;YACR,OAAO,0BAA0B,CAAA;QACnC;YACE,OAAO,eAAe,CAAA;IAC1B,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"set-content-type.d.ts","sourceRoot":"","sources":["../../../src/utils/set-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGpD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,QAAQ,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAChD,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAsB,cAAc,CAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,kBAA+C,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB9K"}
1
+ {"version":3,"file":"set-content-type.d.ts","sourceRoot":"","sources":["../../../src/utils/set-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,QAAQ,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAChD,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAsB,cAAc,CAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,kBAA+C,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B9K"}
@@ -1,5 +1,6 @@
1
1
  import {} from '@libp2p/interface';
2
2
  import {} from '../types.js';
3
+ import { defaultMimeType } from './content-type-parser.js';
3
4
  import { isPromise } from './type-guards.js';
4
5
  export async function setContentType({ bytes, path, response, contentTypeParser, log, defaultContentType = 'application/octet-stream' }) {
5
6
  let contentType;
@@ -23,6 +24,10 @@ export async function setContentType({ bytes, path, response, contentTypeParser,
23
24
  log.error('error parsing content type', err);
24
25
  }
25
26
  }
27
+ if (contentType === defaultMimeType) {
28
+ // if the content type is the default in our content-type-parser, instead, set it to the default content type provided to this function.
29
+ contentType = defaultContentType;
30
+ }
26
31
  log.trace('setting content type to "%s"', contentType ?? defaultContentType);
27
32
  response.headers.set('content-type', contentType ?? defaultContentType);
28
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"set-content-type.js","sourceRoot":"","sources":["../../../src/utils/set-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAA0B,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAW5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,kBAAkB,GAAG,0BAA0B,EAAyB;IAC7J,IAAI,WAA+B,CAAA;IAEnC,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAA;YAC5C,QAAQ,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;YACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAEjD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAA;gBAE3B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,WAAW,GAAG,MAAM,CAAA;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC1B,WAAW,GAAG,MAAM,CAAA;YACtB,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,WAAW,CAAC,CAAA;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,8BAA8B,EAAE,WAAW,IAAI,kBAAkB,CAAC,CAAA;IAC5E,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,IAAI,kBAAkB,CAAC,CAAA;AACzE,CAAC"}
1
+ {"version":3,"file":"set-content-type.js","sourceRoot":"","sources":["../../../src/utils/set-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAA0B,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAW5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,kBAAkB,GAAG,0BAA0B,EAAyB;IAC7J,IAAI,WAA+B,CAAA;IAEnC,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAA;YAC5C,QAAQ,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;YACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAEjD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAA;gBAE3B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,WAAW,GAAG,MAAM,CAAA;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC1B,WAAW,GAAG,MAAM,CAAA;YACtB,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,WAAW,CAAC,CAAA;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IACD,IAAI,WAAW,KAAK,eAAe,EAAE,CAAC;QACpC,wIAAwI;QACxI,WAAW,GAAG,kBAAkB,CAAA;IAClC,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,8BAA8B,EAAE,WAAW,IAAI,kBAAkB,CAAC,CAAA;IAC5E,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,IAAI,kBAAkB,CAAC,CAAA;AACzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verified-fetch.d.ts","sourceRoot":"","sources":["../../src/verified-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AAyB1D,OAAO,KAAK,EAAgC,0BAA0B,EAAE,QAAQ,EAAkB,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAG/J,OAAO,KAAK,EAAE,KAAK,EAAqB,MAAM,kBAAkB,CAAA;AAMhE,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AA8BD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+B;IACjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqC;IACxE,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAEvC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE,0BAA0B;IAoDxF,OAAO,CAAC,aAAa;YAgBP,kBAAkB;IAahC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAkD3B;;;OAGG;YACW,iBAAiB;IA8E/B;;;;;;OAMG;IACG,KAAK,CAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqEhF;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"verified-fetch.d.ts","sourceRoot":"","sources":["../../src/verified-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AA0B1D,OAAO,KAAK,EAAgC,0BAA0B,EAAE,QAAQ,EAAkB,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAG/J,OAAO,KAAK,EAAE,KAAK,EAAqB,MAAM,kBAAkB,CAAA;AAMhE,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AA8BD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+B;IACjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqC;IACxE,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAEvC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE,0BAA0B;IAoDxF,OAAO,CAAC,aAAa;YAgBP,kBAAkB;IAahC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAkD3B;;;OAGG;YACW,iBAAiB;IA8E/B;;;;;;OAMG;IACG,KAAK,CAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqEhF;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -12,6 +12,7 @@ import { IpnsRecordPlugin } from './plugins/plugin-handle-ipns-record.js';
12
12
  import { JsonPlugin } from './plugins/plugin-handle-json.js';
13
13
  import { RawPlugin } from './plugins/plugin-handle-raw.js';
14
14
  import { TarPlugin } from './plugins/plugin-handle-tar.js';
15
+ import { contentTypeParser } from './utils/content-type-parser.js';
15
16
  import { getContentDispositionFilename } from './utils/get-content-disposition-filename.js';
16
17
  import { getETag } from './utils/get-e-tag.js';
17
18
  import { getResolvedAcceptHeader } from './utils/get-resolved-accept-header.js';
@@ -54,7 +55,7 @@ export class VerifiedFetch {
54
55
  this.helia = helia;
55
56
  this.log = helia.logger.forComponent('helia:verified-fetch');
56
57
  this.ipns = ipns ?? heliaIpns(helia);
57
- this.contentTypeParser = init?.contentTypeParser;
58
+ this.contentTypeParser = init?.contentTypeParser ?? contentTypeParser;
58
59
  this.blockstoreSessions = new LRUCache({
59
60
  max: init?.sessionCacheSize ?? SESSION_CACHE_MAX_SIZE,
60
61
  ttl: init?.sessionTTLms ?? SESSION_CACHE_TTL_MS,
@@ -1 +1 @@
1
- {"version":3,"file":"verified-fetch.js","sourceRoot":"","sources":["../../src/verified-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verified-fetch.js","sourceRoot":"","sources":["../../src/verified-fetch.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": "2.5.5",
3
+ "version": "2.6.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",
@@ -165,6 +165,7 @@
165
165
  "@libp2p/websockets": "^9.1.5",
166
166
  "@multiformats/dns": "^1.0.6",
167
167
  "cborg": "^4.2.8",
168
+ "file-type": "^20.4.0",
168
169
  "hashlru": "^2.3.0",
169
170
  "helia": "^5.2.1",
170
171
  "interface-blockstore": "^5.3.1",
@@ -188,7 +189,6 @@
188
189
  "@helia/json": "^4.0.2",
189
190
  "@ipld/car": "^5.4.0",
190
191
  "@libp2p/crypto": "^5.0.11",
191
- "@sgtpooki/file-type": "^1.0.1",
192
192
  "@types/sinon": "^17.0.3",
193
193
  "aegir": "^45.0.9",
194
194
  "blockstore-core": "^5.0.2",
package/src/index.ts CHANGED
@@ -136,7 +136,7 @@
136
136
  *
137
137
  * ```typescript
138
138
  * import { createVerifiedFetch } from '@helia/verified-fetch'
139
- * import { fileTypeFromBuffer } from '@sgtpooki/file-type'
139
+ * import { fileTypeFromBuffer } from 'file-type'
140
140
  *
141
141
  * const fetch = await createVerifiedFetch({
142
142
  * gateways: ['https://trustless-gateway.link'],
@@ -63,7 +63,7 @@ export class RawPlugin extends BasePlugin {
63
63
  context.query.filename = context.query.filename ?? `${cid.toString()}.bin`
64
64
  log.trace('Set content disposition...')
65
65
  } else {
66
- log.trace('Did NOT setting content disposition...')
66
+ log.trace('Did NOT set content disposition...')
67
67
  }
68
68
 
69
69
  if (path !== '' && cid.code === rawCode) {
@@ -0,0 +1,72 @@
1
+ import { logger } from '@libp2p/logger'
2
+ import { fileTypeFromBuffer } from 'file-type'
3
+
4
+ const log = logger('helia:verified-fetch:content-type-parser')
5
+
6
+ export const defaultMimeType = 'application/octet-stream'
7
+ function checkForSvg (bytes: Uint8Array): boolean {
8
+ log('checking for svg')
9
+ return /^(<\?xml[^>]+>)?[^<^\w]+<svg/ig.test(new TextDecoder().decode(bytes.slice(0, 64)))
10
+ }
11
+
12
+ async function checkForJson (bytes: Uint8Array): Promise<boolean> {
13
+ log('checking for json')
14
+ try {
15
+ JSON.parse(new TextDecoder().decode(bytes))
16
+ return true
17
+ } catch (err) {
18
+ log('failed to parse as json', err)
19
+ return false
20
+ }
21
+ }
22
+
23
+ export async function contentTypeParser (bytes: Uint8Array, fileName?: string): Promise<string> {
24
+ log('contentTypeParser called for fileName: %s, byte size=%s', fileName, bytes.length)
25
+ const detectedType = (await fileTypeFromBuffer(bytes))?.mime
26
+ if (detectedType != null) {
27
+ log('detectedType: %s', detectedType)
28
+ return detectedType
29
+ }
30
+ log('no detectedType')
31
+
32
+ if (fileName == null) {
33
+ // no other way to determine file-type.
34
+ if (checkForSvg(bytes)) {
35
+ return 'image/svg+xml'
36
+ } else if (await checkForJson(bytes)) {
37
+ return 'application/json'
38
+ }
39
+ return defaultMimeType
40
+ }
41
+
42
+ // no need to include file-types listed at https://github.com/SgtPooki/file-type#supported-file-types
43
+ switch (fileName.split('.').pop()) {
44
+ case 'css':
45
+ return 'text/css'
46
+ case 'html':
47
+ return 'text/html; charset=utf-8'
48
+ case 'js':
49
+ return 'application/javascript'
50
+ case 'json':
51
+ return 'application/json'
52
+ case 'txt':
53
+ return 'text/plain'
54
+ case 'woff2':
55
+ return 'font/woff2'
56
+ // see bottom of https://github.com/SgtPooki/file-type#supported-file-types
57
+ case 'svg':
58
+ return 'image/svg+xml'
59
+ case 'csv':
60
+ return 'text/csv'
61
+ case 'doc':
62
+ return 'application/msword'
63
+ case 'xls':
64
+ return 'application/vnd.ms-excel'
65
+ case 'ppt':
66
+ return 'application/vnd.ms-powerpoint'
67
+ case 'msi':
68
+ return 'application/x-msdownload'
69
+ default:
70
+ return defaultMimeType
71
+ }
72
+ }
@@ -1,5 +1,6 @@
1
1
  import { type Logger } from '@libp2p/interface'
2
2
  import { type ContentTypeParser } from '../types.js'
3
+ import { defaultMimeType } from './content-type-parser.js'
3
4
  import { isPromise } from './type-guards.js'
4
5
 
5
6
  export interface SetContentTypeOptions {
@@ -34,6 +35,10 @@ export async function setContentType ({ bytes, path, response, contentTypeParser
34
35
  log.error('error parsing content type', err)
35
36
  }
36
37
  }
38
+ if (contentType === defaultMimeType) {
39
+ // if the content type is the default in our content-type-parser, instead, set it to the default content type provided to this function.
40
+ contentType = defaultContentType
41
+ }
37
42
  log.trace('setting content type to "%s"', contentType ?? defaultContentType)
38
43
  response.headers.set('content-type', contentType ?? defaultContentType)
39
44
  }
@@ -12,6 +12,7 @@ import { IpnsRecordPlugin } from './plugins/plugin-handle-ipns-record.js'
12
12
  import { JsonPlugin } from './plugins/plugin-handle-json.js'
13
13
  import { RawPlugin } from './plugins/plugin-handle-raw.js'
14
14
  import { TarPlugin } from './plugins/plugin-handle-tar.js'
15
+ import { contentTypeParser } from './utils/content-type-parser.js'
15
16
  import { getContentDispositionFilename } from './utils/get-content-disposition-filename.js'
16
17
  import { getETag } from './utils/get-e-tag.js'
17
18
  import { getResolvedAcceptHeader } from './utils/get-resolved-accept-header.js'
@@ -79,7 +80,7 @@ export class VerifiedFetch {
79
80
  this.helia = helia
80
81
  this.log = helia.logger.forComponent('helia:verified-fetch')
81
82
  this.ipns = ipns ?? heliaIpns(helia)
82
- this.contentTypeParser = init?.contentTypeParser
83
+ this.contentTypeParser = init?.contentTypeParser ?? contentTypeParser
83
84
  this.blockstoreSessions = new LRUCache({
84
85
  max: init?.sessionCacheSize ?? SESSION_CACHE_MAX_SIZE,
85
86
  ttl: init?.sessionTTLms ?? SESSION_CACHE_TTL_MS,