@helia/verified-fetch 4.1.1 → 5.0.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/README.md +6 -40
- package/dist/index.min.js +73 -534
- package/dist/index.min.js.map +4 -4
- package/dist/src/constants.d.ts +2 -0
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +2 -0
- package/dist/src/constants.js.map +1 -1
- package/dist/src/index.d.ts +162 -68
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -40
- package/dist/src/index.js.map +1 -1
- package/dist/src/plugins/index.d.ts +0 -5
- package/dist/src/plugins/index.d.ts.map +1 -1
- package/dist/src/plugins/index.js +0 -4
- package/dist/src/plugins/index.js.map +1 -1
- package/dist/src/plugins/plugin-base.d.ts +8 -9
- package/dist/src/plugins/plugin-base.d.ts.map +1 -1
- package/dist/src/plugins/plugin-base.js +5 -6
- package/dist/src/plugins/plugin-base.js.map +1 -1
- package/dist/src/plugins/plugin-handle-car.d.ts +3 -3
- package/dist/src/plugins/plugin-handle-car.d.ts.map +1 -1
- package/dist/src/plugins/plugin-handle-car.js +38 -39
- package/dist/src/plugins/plugin-handle-car.js.map +1 -1
- package/dist/src/plugins/plugin-handle-ipld.d.ts +12 -0
- package/dist/src/plugins/plugin-handle-ipld.d.ts.map +1 -0
- package/dist/src/plugins/plugin-handle-ipld.js +83 -0
- package/dist/src/plugins/plugin-handle-ipld.js.map +1 -0
- package/dist/src/plugins/plugin-handle-ipns-record.d.ts +3 -3
- package/dist/src/plugins/plugin-handle-ipns-record.d.ts.map +1 -1
- package/dist/src/plugins/plugin-handle-ipns-record.js +25 -34
- package/dist/src/plugins/plugin-handle-ipns-record.js.map +1 -1
- package/dist/src/plugins/plugin-handle-tar.d.ts +3 -3
- package/dist/src/plugins/plugin-handle-tar.d.ts.map +1 -1
- package/dist/src/plugins/plugin-handle-tar.js +20 -22
- package/dist/src/plugins/plugin-handle-tar.js.map +1 -1
- package/dist/src/plugins/plugin-handle-unixfs.d.ts +14 -0
- package/dist/src/plugins/plugin-handle-unixfs.d.ts.map +1 -0
- package/dist/src/plugins/plugin-handle-unixfs.js +180 -0
- package/dist/src/plugins/plugin-handle-unixfs.js.map +1 -0
- package/dist/src/plugins/types.d.ts +1 -77
- package/dist/src/plugins/types.d.ts.map +1 -1
- package/dist/src/url-resolver.d.ts +29 -11
- package/dist/src/url-resolver.d.ts.map +1 -1
- package/dist/src/url-resolver.js +152 -74
- package/dist/src/url-resolver.js.map +1 -1
- package/dist/src/utils/content-type-parser.d.ts.map +1 -1
- package/dist/src/utils/content-type-parser.js +4 -3
- package/dist/src/utils/content-type-parser.js.map +1 -1
- package/dist/src/utils/content-types.d.ts +26 -0
- package/dist/src/utils/content-types.d.ts.map +1 -0
- package/dist/src/utils/content-types.js +137 -0
- package/dist/src/utils/content-types.js.map +1 -0
- package/dist/src/utils/convert-output.d.ts +17 -0
- package/dist/src/utils/convert-output.d.ts.map +1 -0
- package/dist/src/utils/convert-output.js +176 -0
- package/dist/src/utils/convert-output.js.map +1 -0
- package/dist/src/utils/error-to-response.d.ts +3 -0
- package/dist/src/utils/error-to-response.d.ts.map +1 -0
- package/dist/src/utils/error-to-response.js +40 -0
- package/dist/src/utils/error-to-response.js.map +1 -0
- package/dist/src/utils/get-content-disposition-filename.d.ts +1 -1
- package/dist/src/utils/get-content-disposition-filename.d.ts.map +1 -1
- package/dist/src/utils/get-content-disposition-filename.js +4 -0
- package/dist/src/utils/get-content-disposition-filename.js.map +1 -1
- package/dist/src/utils/get-e-tag.d.ts +20 -15
- package/dist/src/utils/get-e-tag.d.ts.map +1 -1
- package/dist/src/utils/get-e-tag.js +8 -22
- package/dist/src/utils/get-e-tag.js.map +1 -1
- package/dist/src/utils/get-offset-and-length.d.ts +12 -2
- package/dist/src/utils/get-offset-and-length.d.ts.map +1 -1
- package/dist/src/utils/get-offset-and-length.js +63 -21
- package/dist/src/utils/get-offset-and-length.js.map +1 -1
- package/dist/src/utils/get-range-header.d.ts +22 -0
- package/dist/src/utils/get-range-header.d.ts.map +1 -0
- package/dist/src/utils/get-range-header.js +69 -0
- package/dist/src/utils/get-range-header.js.map +1 -0
- package/dist/src/utils/parse-url-string.d.ts +2 -1
- package/dist/src/utils/parse-url-string.d.ts.map +1 -1
- package/dist/src/utils/parse-url-string.js +46 -71
- package/dist/src/utils/parse-url-string.js.map +1 -1
- package/dist/src/utils/resource-to-cache-key.d.ts +3 -3
- package/dist/src/utils/resource-to-cache-key.js +5 -5
- package/dist/src/utils/resource-to-cache-key.js.map +1 -1
- package/dist/src/utils/response-headers.d.ts +4 -14
- package/dist/src/utils/response-headers.d.ts.map +1 -1
- package/dist/src/utils/response-headers.js +36 -36
- package/dist/src/utils/response-headers.js.map +1 -1
- package/dist/src/utils/responses.d.ts +30 -11
- package/dist/src/utils/responses.d.ts.map +1 -1
- package/dist/src/utils/responses.js +146 -39
- package/dist/src/utils/responses.js.map +1 -1
- package/dist/src/verified-fetch.d.ts +16 -15
- package/dist/src/verified-fetch.d.ts.map +1 -1
- package/dist/src/verified-fetch.js +302 -238
- package/dist/src/verified-fetch.js.map +1 -1
- package/dist/typedoc-urls.json +64 -45
- package/package.json +4 -3
- package/src/constants.ts +3 -0
- package/src/index.ts +199 -68
- package/src/plugins/index.ts +0 -6
- package/src/plugins/plugin-base.ts +8 -10
- package/src/plugins/plugin-handle-car.ts +48 -46
- package/src/plugins/plugin-handle-ipld.ts +93 -0
- package/src/plugins/plugin-handle-ipns-record.ts +31 -41
- package/src/plugins/plugin-handle-tar.ts +25 -29
- package/src/plugins/plugin-handle-unixfs.ts +217 -0
- package/src/plugins/types.ts +0 -86
- package/src/url-resolver.ts +197 -83
- package/src/utils/content-type-parser.ts +4 -3
- package/src/utils/content-types.ts +159 -0
- package/src/utils/convert-output.ts +187 -0
- package/src/utils/error-to-response.ts +49 -0
- package/src/utils/get-content-disposition-filename.ts +7 -1
- package/src/utils/get-e-tag.ts +26 -35
- package/src/utils/get-offset-and-length.ts +75 -21
- package/src/utils/get-range-header.ts +107 -0
- package/src/utils/parse-url-string.ts +51 -80
- package/src/utils/resource-to-cache-key.ts +5 -5
- package/src/utils/response-headers.ts +40 -41
- package/src/utils/responses.ts +186 -45
- package/src/verified-fetch.ts +353 -270
- package/dist/src/plugins/plugin-handle-byte-range-context.d.ts +0 -14
- package/dist/src/plugins/plugin-handle-byte-range-context.d.ts.map +0 -1
- package/dist/src/plugins/plugin-handle-byte-range-context.js +0 -25
- package/dist/src/plugins/plugin-handle-byte-range-context.js.map +0 -1
- package/dist/src/plugins/plugin-handle-cbor.d.ts +0 -17
- package/dist/src/plugins/plugin-handle-cbor.d.ts.map +0 -1
- package/dist/src/plugins/plugin-handle-cbor.js +0 -94
- package/dist/src/plugins/plugin-handle-cbor.js.map +0 -1
- package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.d.ts +0 -27
- package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.d.ts.map +0 -1
- package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.js +0 -279
- package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.js.map +0 -1
- package/dist/src/plugins/plugin-handle-dag-cbor.d.ts +0 -17
- package/dist/src/plugins/plugin-handle-dag-cbor.d.ts.map +0 -1
- package/dist/src/plugins/plugin-handle-dag-cbor.js +0 -66
- package/dist/src/plugins/plugin-handle-dag-cbor.js.map +0 -1
- package/dist/src/plugins/plugin-handle-dag-pb.d.ts +0 -17
- package/dist/src/plugins/plugin-handle-dag-pb.d.ts.map +0 -1
- package/dist/src/plugins/plugin-handle-dag-pb.js +0 -209
- package/dist/src/plugins/plugin-handle-dag-pb.js.map +0 -1
- package/dist/src/plugins/plugin-handle-dag-walk.d.ts +0 -21
- package/dist/src/plugins/plugin-handle-dag-walk.d.ts.map +0 -1
- package/dist/src/plugins/plugin-handle-dag-walk.js +0 -95
- package/dist/src/plugins/plugin-handle-dag-walk.js.map +0 -1
- package/dist/src/plugins/plugin-handle-dir-index-html.d.ts +0 -10
- package/dist/src/plugins/plugin-handle-dir-index-html.d.ts.map +0 -1
- package/dist/src/plugins/plugin-handle-dir-index-html.js +0 -59
- package/dist/src/plugins/plugin-handle-dir-index-html.js.map +0 -1
- package/dist/src/plugins/plugin-handle-json.d.ts +0 -12
- package/dist/src/plugins/plugin-handle-json.d.ts.map +0 -1
- package/dist/src/plugins/plugin-handle-json.js +0 -73
- package/dist/src/plugins/plugin-handle-json.js.map +0 -1
- package/dist/src/plugins/plugin-handle-raw.d.ts +0 -9
- package/dist/src/plugins/plugin-handle-raw.d.ts.map +0 -1
- package/dist/src/plugins/plugin-handle-raw.js +0 -92
- package/dist/src/plugins/plugin-handle-raw.js.map +0 -1
- package/dist/src/plugins/plugins.d.ts +0 -6
- package/dist/src/plugins/plugins.d.ts.map +0 -1
- package/dist/src/plugins/plugins.js +0 -6
- package/dist/src/plugins/plugins.js.map +0 -1
- package/dist/src/utils/byte-range-context.d.ts +0 -103
- package/dist/src/utils/byte-range-context.d.ts.map +0 -1
- package/dist/src/utils/byte-range-context.js +0 -504
- package/dist/src/utils/byte-range-context.js.map +0 -1
- package/dist/src/utils/dag-cbor-to-safe-json.d.ts +0 -15
- package/dist/src/utils/dag-cbor-to-safe-json.d.ts.map +0 -1
- package/dist/src/utils/dag-cbor-to-safe-json.js +0 -54
- package/dist/src/utils/dag-cbor-to-safe-json.js.map +0 -1
- package/dist/src/utils/dir-index-html.d.ts +0 -19
- package/dist/src/utils/dir-index-html.d.ts.map +0 -1
- package/dist/src/utils/dir-index-html.js +0 -438
- package/dist/src/utils/dir-index-html.js.map +0 -1
- package/dist/src/utils/get-peer-id-from-string.d.ts +0 -3
- package/dist/src/utils/get-peer-id-from-string.d.ts.map +0 -1
- package/dist/src/utils/get-peer-id-from-string.js +0 -10
- package/dist/src/utils/get-peer-id-from-string.js.map +0 -1
- package/dist/src/utils/get-resolved-accept-header.d.ts +0 -9
- package/dist/src/utils/get-resolved-accept-header.d.ts.map +0 -1
- package/dist/src/utils/get-resolved-accept-header.js +0 -27
- package/dist/src/utils/get-resolved-accept-header.js.map +0 -1
- package/dist/src/utils/get-stream-from-async-iterable.d.ts +0 -9
- package/dist/src/utils/get-stream-from-async-iterable.d.ts.map +0 -1
- package/dist/src/utils/get-stream-from-async-iterable.js +0 -43
- package/dist/src/utils/get-stream-from-async-iterable.js.map +0 -1
- package/dist/src/utils/handle-redirects.d.ts +0 -16
- package/dist/src/utils/handle-redirects.d.ts.map +0 -1
- package/dist/src/utils/handle-redirects.js +0 -84
- package/dist/src/utils/handle-redirects.js.map +0 -1
- package/dist/src/utils/is-accept-explicit.d.ts +0 -15
- package/dist/src/utils/is-accept-explicit.d.ts.map +0 -1
- package/dist/src/utils/is-accept-explicit.js +0 -26
- package/dist/src/utils/is-accept-explicit.js.map +0 -1
- package/dist/src/utils/request-headers.d.ts +0 -13
- package/dist/src/utils/request-headers.d.ts.map +0 -1
- package/dist/src/utils/request-headers.js +0 -63
- package/dist/src/utils/request-headers.js.map +0 -1
- package/dist/src/utils/select-output-type.d.ts +0 -17
- package/dist/src/utils/select-output-type.d.ts.map +0 -1
- package/dist/src/utils/select-output-type.js +0 -153
- package/dist/src/utils/select-output-type.js.map +0 -1
- package/dist/src/utils/tlru.d.ts +0 -15
- package/dist/src/utils/tlru.d.ts.map +0 -1
- package/dist/src/utils/tlru.js +0 -34
- package/dist/src/utils/tlru.js.map +0 -1
- package/dist/src/utils/walk-path.d.ts +0 -27
- package/dist/src/utils/walk-path.d.ts.map +0 -1
- package/dist/src/utils/walk-path.js +0 -45
- package/dist/src/utils/walk-path.js.map +0 -1
- package/src/plugins/plugin-handle-byte-range-context.ts +0 -30
- package/src/plugins/plugin-handle-cbor.ts +0 -107
- package/src/plugins/plugin-handle-dag-cbor-html-preview.ts +0 -295
- package/src/plugins/plugin-handle-dag-cbor.ts +0 -83
- package/src/plugins/plugin-handle-dag-pb.ts +0 -248
- package/src/plugins/plugin-handle-dag-walk.ts +0 -110
- package/src/plugins/plugin-handle-dir-index-html.ts +0 -72
- package/src/plugins/plugin-handle-json.ts +0 -80
- package/src/plugins/plugin-handle-raw.ts +0 -110
- package/src/plugins/plugins.ts +0 -5
- package/src/utils/byte-range-context.ts +0 -597
- package/src/utils/dag-cbor-to-safe-json.ts +0 -63
- package/src/utils/dir-index-html.ts +0 -505
- package/src/utils/get-peer-id-from-string.ts +0 -12
- package/src/utils/get-resolved-accept-header.ts +0 -42
- package/src/utils/get-stream-from-async-iterable.ts +0 -49
- package/src/utils/handle-redirects.ts +0 -109
- package/src/utils/is-accept-explicit.ts +0 -38
- package/src/utils/request-headers.ts +0 -65
- package/src/utils/select-output-type.ts +0 -175
- package/src/utils/tlru.ts +0 -42
- package/src/utils/walk-path.ts +0 -69
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-resolver.js","sourceRoot":"","sources":["../../src/url-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"url-resolver.js","sourceRoot":"","sources":["../../src/url-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,CA8D9F"}
|
|
@@ -32,7 +32,8 @@ export async function contentTypeParser(bytes, fileName) {
|
|
|
32
32
|
}
|
|
33
33
|
return detectedType;
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
// no filename or filename has no extension
|
|
36
|
+
if (fileName == null || fileName.includes('.') === false) {
|
|
36
37
|
// it's likely text... no other way to determine file-type.
|
|
37
38
|
const text = getText(bytes);
|
|
38
39
|
if (text != null) {
|
|
@@ -52,7 +53,7 @@ export async function contentTypeParser(bytes, fileName) {
|
|
|
52
53
|
}
|
|
53
54
|
return defaultMimeType;
|
|
54
55
|
}
|
|
55
|
-
// no need to include file-types listed at https://github.com/
|
|
56
|
+
// no need to include file-types listed at https://github.com/sindresorhus/file-type#supported-file-types
|
|
56
57
|
switch (fileName.split('.').pop()) {
|
|
57
58
|
case 'css':
|
|
58
59
|
return 'text/css';
|
|
@@ -66,7 +67,7 @@ export async function contentTypeParser(bytes, fileName) {
|
|
|
66
67
|
return 'text/plain';
|
|
67
68
|
case 'woff2':
|
|
68
69
|
return 'font/woff2';
|
|
69
|
-
// see bottom of https://github.com/
|
|
70
|
+
// see bottom of https://github.com/sindresorhus/file-type#supported-file-types
|
|
70
71
|
case 'svg':
|
|
71
72
|
return 'image/svg+xml';
|
|
72
73
|
case 'csv':
|
|
@@ -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,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"content-type-parser.js","sourceRoot":"","sources":["../../../src/utils/content-type-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ContentType } from '../index.ts';
|
|
2
|
+
import type { CID } from 'multiformats/cid';
|
|
3
|
+
export declare const MEDIA_TYPE_DAG_CBOR = "application/vnd.ipld.dag-cbor";
|
|
4
|
+
export declare const MEDIA_TYPE_CBOR = "application/cbor";
|
|
5
|
+
export declare const MEDIA_TYPE_DAG_JSON = "application/vnd.ipld.dag-json";
|
|
6
|
+
export declare const MEDIA_TYPE_JSON = "application/json";
|
|
7
|
+
export declare const MEDIA_TYPE_RAW = "application/vnd.ipld.raw";
|
|
8
|
+
export declare const MEDIA_TYPE_OCTET_STREAM = "application/octet-stream";
|
|
9
|
+
export declare const MEDIA_TYPE_IPNS_RECORD = "application/vnd.ipfs.ipns-record";
|
|
10
|
+
export declare const MEDIA_TYPE_CAR = "application/vnd.ipld.car";
|
|
11
|
+
export declare const MEDIA_TYPE_TAR = "application/x-tar";
|
|
12
|
+
export declare const MEDIA_TYPE_DAG_PB = "application/vnd.ipld.dag-pb";
|
|
13
|
+
export declare const CONTENT_TYPE_OCTET_STREAM: ContentType;
|
|
14
|
+
export declare const CONTENT_TYPE_DAG_CBOR: ContentType;
|
|
15
|
+
export declare const CONTENT_TYPE_CBOR: ContentType;
|
|
16
|
+
export declare const CONTENT_TYPE_DAG_JSON: ContentType;
|
|
17
|
+
export declare const CONTENT_TYPE_JSON: ContentType;
|
|
18
|
+
export declare const CONTENT_TYPE_RAW: ContentType;
|
|
19
|
+
export declare const CONTENT_TYPE_IPNS: ContentType;
|
|
20
|
+
export declare const CONTENT_TYPE_CAR: ContentType;
|
|
21
|
+
export declare const CONTENT_TYPE_TAR: ContentType;
|
|
22
|
+
export declare const CONTENT_TYPES: ContentType[];
|
|
23
|
+
export declare function getContentType(mediaType?: string | null): ContentType | undefined;
|
|
24
|
+
export declare function getContentTypesForCid(cid?: CID): ContentType[];
|
|
25
|
+
export declare function getSupportedContentTypes(protocol?: string, cid?: CID): ContentType[];
|
|
26
|
+
//# sourceMappingURL=content-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../../../src/utils/content-types.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,eAAO,MAAM,mBAAmB,kCAAkC,CAAA;AAClE,eAAO,MAAM,eAAe,qBAAqB,CAAA;AACjD,eAAO,MAAM,mBAAmB,kCAAkC,CAAA;AAClE,eAAO,MAAM,eAAe,qBAAqB,CAAA;AACjD,eAAO,MAAM,cAAc,6BAA6B,CAAA;AACxD,eAAO,MAAM,uBAAuB,6BAA6B,CAAA;AACjE,eAAO,MAAM,sBAAsB,qCAAqC,CAAA;AACxE,eAAO,MAAM,cAAc,6BAA6B,CAAA;AACxD,eAAO,MAAM,cAAc,sBAAsB,CAAA;AACjD,eAAO,MAAM,iBAAiB,gCAAgC,CAAA;AAE9D,eAAO,MAAM,yBAAyB,EAAE,WAOvC,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,WAOnC,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,WAO/B,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,WAOnC,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,WAO/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,WAO9B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,WAO/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,WAO9B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,WAO9B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,WAAW,EAUtC,CAAA;AAED,wBAAgB,cAAc,CAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,SAAS,CAGlF;AAED,wBAAgB,qBAAqB,CAAE,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,EAAE,CAuB/D;AAED,wBAAgB,wBAAwB,CAAE,QAAQ,GAAE,MAAgB,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,EAAE,CAe9F"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { code as dagCborCode } from '@ipld/dag-cbor';
|
|
2
|
+
import { code as dagJsonCode } from '@ipld/dag-json';
|
|
3
|
+
import { code as dagPbCode } from '@ipld/dag-pb';
|
|
4
|
+
import { code as jsonCode } from 'multiformats/codecs/json';
|
|
5
|
+
import { code as rawCode } from 'multiformats/codecs/raw';
|
|
6
|
+
import { CODEC_CBOR } from "../constants.js";
|
|
7
|
+
export const MEDIA_TYPE_DAG_CBOR = 'application/vnd.ipld.dag-cbor';
|
|
8
|
+
export const MEDIA_TYPE_CBOR = 'application/cbor';
|
|
9
|
+
export const MEDIA_TYPE_DAG_JSON = 'application/vnd.ipld.dag-json';
|
|
10
|
+
export const MEDIA_TYPE_JSON = 'application/json';
|
|
11
|
+
export const MEDIA_TYPE_RAW = 'application/vnd.ipld.raw';
|
|
12
|
+
export const MEDIA_TYPE_OCTET_STREAM = 'application/octet-stream';
|
|
13
|
+
export const MEDIA_TYPE_IPNS_RECORD = 'application/vnd.ipfs.ipns-record';
|
|
14
|
+
export const MEDIA_TYPE_CAR = 'application/vnd.ipld.car';
|
|
15
|
+
export const MEDIA_TYPE_TAR = 'application/x-tar';
|
|
16
|
+
export const MEDIA_TYPE_DAG_PB = 'application/vnd.ipld.dag-pb';
|
|
17
|
+
export const CONTENT_TYPE_OCTET_STREAM = {
|
|
18
|
+
mediaType: MEDIA_TYPE_OCTET_STREAM,
|
|
19
|
+
codecs: [rawCode, jsonCode, dagJsonCode, CODEC_CBOR, dagCborCode, dagPbCode],
|
|
20
|
+
immutable: true,
|
|
21
|
+
extension: '.bin',
|
|
22
|
+
etag: '',
|
|
23
|
+
disposition: 'attachment'
|
|
24
|
+
};
|
|
25
|
+
export const CONTENT_TYPE_DAG_CBOR = {
|
|
26
|
+
mediaType: MEDIA_TYPE_DAG_CBOR,
|
|
27
|
+
codecs: [dagCborCode, CODEC_CBOR, dagJsonCode, jsonCode, dagPbCode, rawCode],
|
|
28
|
+
immutable: true,
|
|
29
|
+
extension: '.cbor',
|
|
30
|
+
etag: '.dag-cbor',
|
|
31
|
+
disposition: 'attachment'
|
|
32
|
+
};
|
|
33
|
+
export const CONTENT_TYPE_CBOR = {
|
|
34
|
+
mediaType: MEDIA_TYPE_CBOR,
|
|
35
|
+
codecs: [CODEC_CBOR, dagCborCode, dagJsonCode, jsonCode, dagPbCode, rawCode],
|
|
36
|
+
immutable: true,
|
|
37
|
+
extension: '.cbor',
|
|
38
|
+
etag: '.cbor',
|
|
39
|
+
disposition: 'attachment'
|
|
40
|
+
};
|
|
41
|
+
export const CONTENT_TYPE_DAG_JSON = {
|
|
42
|
+
mediaType: MEDIA_TYPE_DAG_JSON,
|
|
43
|
+
codecs: [dagJsonCode, jsonCode, dagCborCode, CODEC_CBOR, dagPbCode, rawCode],
|
|
44
|
+
immutable: true,
|
|
45
|
+
extension: '.json',
|
|
46
|
+
etag: '.dag-json',
|
|
47
|
+
disposition: 'inline'
|
|
48
|
+
};
|
|
49
|
+
export const CONTENT_TYPE_JSON = {
|
|
50
|
+
mediaType: MEDIA_TYPE_JSON,
|
|
51
|
+
codecs: [jsonCode, dagJsonCode, dagCborCode, CODEC_CBOR, dagPbCode, rawCode],
|
|
52
|
+
immutable: true,
|
|
53
|
+
extension: '.json',
|
|
54
|
+
etag: '.json',
|
|
55
|
+
disposition: 'inline'
|
|
56
|
+
};
|
|
57
|
+
export const CONTENT_TYPE_RAW = {
|
|
58
|
+
mediaType: MEDIA_TYPE_RAW,
|
|
59
|
+
codecs: [rawCode, jsonCode, dagJsonCode, CODEC_CBOR, dagCborCode, dagPbCode],
|
|
60
|
+
immutable: true,
|
|
61
|
+
extension: '.raw',
|
|
62
|
+
etag: '.raw',
|
|
63
|
+
disposition: 'attachment'
|
|
64
|
+
};
|
|
65
|
+
export const CONTENT_TYPE_IPNS = {
|
|
66
|
+
mediaType: MEDIA_TYPE_IPNS_RECORD,
|
|
67
|
+
codecs: [],
|
|
68
|
+
immutable: false,
|
|
69
|
+
extension: '.bin',
|
|
70
|
+
etag: '.bin',
|
|
71
|
+
disposition: 'attachment'
|
|
72
|
+
};
|
|
73
|
+
export const CONTENT_TYPE_CAR = {
|
|
74
|
+
mediaType: MEDIA_TYPE_CAR,
|
|
75
|
+
codecs: [rawCode, jsonCode, dagJsonCode, CODEC_CBOR, dagCborCode, dagPbCode],
|
|
76
|
+
immutable: false,
|
|
77
|
+
extension: '.car',
|
|
78
|
+
etag: '.car',
|
|
79
|
+
disposition: 'attachment'
|
|
80
|
+
};
|
|
81
|
+
export const CONTENT_TYPE_TAR = {
|
|
82
|
+
mediaType: MEDIA_TYPE_TAR,
|
|
83
|
+
codecs: [rawCode, dagPbCode],
|
|
84
|
+
immutable: false,
|
|
85
|
+
extension: '.x-tar',
|
|
86
|
+
etag: '.x-tar',
|
|
87
|
+
disposition: 'attachment'
|
|
88
|
+
};
|
|
89
|
+
export const CONTENT_TYPES = [
|
|
90
|
+
CONTENT_TYPE_DAG_CBOR,
|
|
91
|
+
CONTENT_TYPE_CBOR,
|
|
92
|
+
CONTENT_TYPE_DAG_JSON,
|
|
93
|
+
CONTENT_TYPE_JSON,
|
|
94
|
+
CONTENT_TYPE_RAW,
|
|
95
|
+
CONTENT_TYPE_IPNS,
|
|
96
|
+
CONTENT_TYPE_CAR,
|
|
97
|
+
CONTENT_TYPE_TAR,
|
|
98
|
+
CONTENT_TYPE_OCTET_STREAM
|
|
99
|
+
];
|
|
100
|
+
export function getContentType(mediaType) {
|
|
101
|
+
return CONTENT_TYPES
|
|
102
|
+
.find(m => m.mediaType === mediaType);
|
|
103
|
+
}
|
|
104
|
+
export function getContentTypesForCid(cid) {
|
|
105
|
+
if (cid == null) {
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
return CONTENT_TYPES
|
|
109
|
+
.filter(m => m.codecs.includes(cid.code))
|
|
110
|
+
.sort((a, b) => {
|
|
111
|
+
// prefer content types where the CID code is earlier in the list of
|
|
112
|
+
// supported codecs
|
|
113
|
+
const posA = a.codecs.indexOf(cid.code);
|
|
114
|
+
const posB = b.codecs.indexOf(cid.code);
|
|
115
|
+
if (posA < posB) {
|
|
116
|
+
return -1;
|
|
117
|
+
}
|
|
118
|
+
if (posB < posA) {
|
|
119
|
+
return 1;
|
|
120
|
+
}
|
|
121
|
+
return 0;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
export function getSupportedContentTypes(protocol = 'ipfs:', cid) {
|
|
125
|
+
let contentTypes = getContentTypesForCid(cid);
|
|
126
|
+
if (protocol === 'ipfs:' && contentTypes.length === 0) {
|
|
127
|
+
contentTypes = [
|
|
128
|
+
CONTENT_TYPE_RAW,
|
|
129
|
+
CONTENT_TYPE_OCTET_STREAM
|
|
130
|
+
];
|
|
131
|
+
}
|
|
132
|
+
if (protocol === 'ipns:') {
|
|
133
|
+
contentTypes.push(CONTENT_TYPE_IPNS);
|
|
134
|
+
}
|
|
135
|
+
return contentTypes;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=content-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-types.js","sourceRoot":"","sources":["../../../src/utils/content-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AcceptHeader, ContentType } from '../index.ts';
|
|
2
|
+
import type { CID } from 'multiformats/cid';
|
|
3
|
+
export interface ConvertedOutput {
|
|
4
|
+
block: Uint8Array;
|
|
5
|
+
contentType: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Where supported, deserialize the passed block using the codec appropriate for
|
|
9
|
+
* the CID, then loop over the acceptable content types and attempt to convert
|
|
10
|
+
* the deserialized value to that format and serialize it back to a block -
|
|
11
|
+
* return the first successful result.
|
|
12
|
+
*/
|
|
13
|
+
export declare function convertOutput(cid: CID, block: Uint8Array, accept: AcceptHeader[]): {
|
|
14
|
+
contentType: ContentType;
|
|
15
|
+
output: Uint8Array;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=convert-output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-output.d.ts","sourceRoot":"","sources":["../../../src/utils/convert-output.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAiJ3C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAqBpI"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import * as dagCbor from '@ipld/dag-cbor';
|
|
2
|
+
import * as dagJson from '@ipld/dag-json';
|
|
3
|
+
import * as dagPb from '@ipld/dag-pb';
|
|
4
|
+
import * as json from 'multiformats/codecs/json';
|
|
5
|
+
import * as raw from 'multiformats/codecs/raw';
|
|
6
|
+
import { identity } from 'multiformats/hashes/identity';
|
|
7
|
+
import { CODEC_CBOR } from "../constants.js";
|
|
8
|
+
import { getContentTypesForCid, MEDIA_TYPE_CBOR, MEDIA_TYPE_DAG_CBOR, MEDIA_TYPE_DAG_JSON, MEDIA_TYPE_JSON, MEDIA_TYPE_OCTET_STREAM, MEDIA_TYPE_RAW } from "./content-types.js";
|
|
9
|
+
const CONVERSIONS = {
|
|
10
|
+
[dagCbor.code]: {
|
|
11
|
+
[MEDIA_TYPE_JSON]: (buf) => {
|
|
12
|
+
return dagJson.encode(dagCbor.decode(buf));
|
|
13
|
+
},
|
|
14
|
+
[MEDIA_TYPE_DAG_JSON]: (buf) => {
|
|
15
|
+
return dagJson.encode(dagCbor.decode(buf));
|
|
16
|
+
},
|
|
17
|
+
[MEDIA_TYPE_DAG_CBOR]: (buf) => {
|
|
18
|
+
return buf;
|
|
19
|
+
},
|
|
20
|
+
[MEDIA_TYPE_CBOR]: (buf) => {
|
|
21
|
+
return buf;
|
|
22
|
+
},
|
|
23
|
+
[MEDIA_TYPE_RAW]: (buf) => {
|
|
24
|
+
return buf;
|
|
25
|
+
},
|
|
26
|
+
[MEDIA_TYPE_OCTET_STREAM]: (buf) => {
|
|
27
|
+
return buf;
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
[CODEC_CBOR]: {
|
|
31
|
+
[MEDIA_TYPE_JSON]: (buf) => {
|
|
32
|
+
return dagJson.encode(dagCbor.decode(buf));
|
|
33
|
+
},
|
|
34
|
+
[MEDIA_TYPE_DAG_JSON]: (buf) => {
|
|
35
|
+
return dagJson.encode(dagCbor.decode(buf));
|
|
36
|
+
},
|
|
37
|
+
[MEDIA_TYPE_DAG_CBOR]: (buf) => {
|
|
38
|
+
return buf;
|
|
39
|
+
},
|
|
40
|
+
[MEDIA_TYPE_CBOR]: (buf) => {
|
|
41
|
+
return buf;
|
|
42
|
+
},
|
|
43
|
+
[MEDIA_TYPE_RAW]: (buf) => {
|
|
44
|
+
return buf;
|
|
45
|
+
},
|
|
46
|
+
[MEDIA_TYPE_OCTET_STREAM]: (buf) => {
|
|
47
|
+
return buf;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
[dagJson.code]: {
|
|
51
|
+
[MEDIA_TYPE_CBOR]: (buf) => {
|
|
52
|
+
return dagCbor.encode(dagJson.decode(buf));
|
|
53
|
+
},
|
|
54
|
+
[MEDIA_TYPE_DAG_CBOR]: (buf) => {
|
|
55
|
+
return dagCbor.encode(dagJson.decode(buf));
|
|
56
|
+
},
|
|
57
|
+
[MEDIA_TYPE_DAG_JSON]: (buf) => {
|
|
58
|
+
return buf;
|
|
59
|
+
},
|
|
60
|
+
[MEDIA_TYPE_JSON]: (buf) => {
|
|
61
|
+
return buf;
|
|
62
|
+
},
|
|
63
|
+
[MEDIA_TYPE_RAW]: (buf) => {
|
|
64
|
+
return buf;
|
|
65
|
+
},
|
|
66
|
+
[MEDIA_TYPE_OCTET_STREAM]: (buf) => {
|
|
67
|
+
return buf;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
[json.code]: {
|
|
71
|
+
[MEDIA_TYPE_CBOR]: (buf) => {
|
|
72
|
+
return dagCbor.encode(json.decode(buf));
|
|
73
|
+
},
|
|
74
|
+
[MEDIA_TYPE_DAG_CBOR]: (buf) => {
|
|
75
|
+
return dagCbor.encode(json.decode(buf));
|
|
76
|
+
},
|
|
77
|
+
[MEDIA_TYPE_DAG_JSON]: (buf) => {
|
|
78
|
+
return buf;
|
|
79
|
+
},
|
|
80
|
+
[MEDIA_TYPE_JSON]: (buf) => {
|
|
81
|
+
return buf;
|
|
82
|
+
},
|
|
83
|
+
[MEDIA_TYPE_RAW]: (buf) => {
|
|
84
|
+
return buf;
|
|
85
|
+
},
|
|
86
|
+
[MEDIA_TYPE_OCTET_STREAM]: (buf) => {
|
|
87
|
+
return buf;
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
[dagPb.code]: {
|
|
91
|
+
[MEDIA_TYPE_CBOR]: (buf) => {
|
|
92
|
+
return dagCbor.encode(dagPb.decode(buf));
|
|
93
|
+
},
|
|
94
|
+
[MEDIA_TYPE_DAG_CBOR]: (buf) => {
|
|
95
|
+
return dagCbor.encode(dagPb.decode(buf));
|
|
96
|
+
},
|
|
97
|
+
[MEDIA_TYPE_JSON]: (buf) => {
|
|
98
|
+
return dagJson.encode(dagPb.decode(buf));
|
|
99
|
+
},
|
|
100
|
+
[MEDIA_TYPE_DAG_JSON]: (buf) => {
|
|
101
|
+
return dagJson.encode(dagPb.decode(buf));
|
|
102
|
+
},
|
|
103
|
+
[MEDIA_TYPE_RAW]: (buf) => {
|
|
104
|
+
return buf;
|
|
105
|
+
},
|
|
106
|
+
[MEDIA_TYPE_OCTET_STREAM]: (buf) => {
|
|
107
|
+
return buf;
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
[raw.code]: {
|
|
111
|
+
[MEDIA_TYPE_CBOR]: (buf) => {
|
|
112
|
+
return dagCbor.encode(buf);
|
|
113
|
+
},
|
|
114
|
+
[MEDIA_TYPE_DAG_CBOR]: (buf) => {
|
|
115
|
+
return dagCbor.encode(buf);
|
|
116
|
+
},
|
|
117
|
+
[MEDIA_TYPE_JSON]: (buf) => {
|
|
118
|
+
return buf;
|
|
119
|
+
},
|
|
120
|
+
[MEDIA_TYPE_DAG_JSON]: (buf) => {
|
|
121
|
+
return dagJson.encode(buf);
|
|
122
|
+
},
|
|
123
|
+
[MEDIA_TYPE_RAW]: (buf) => {
|
|
124
|
+
return buf;
|
|
125
|
+
},
|
|
126
|
+
[MEDIA_TYPE_OCTET_STREAM]: (buf) => {
|
|
127
|
+
return buf;
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
[identity.code]: {
|
|
131
|
+
[MEDIA_TYPE_CBOR]: (buf) => {
|
|
132
|
+
return dagCbor.encode(buf);
|
|
133
|
+
},
|
|
134
|
+
[MEDIA_TYPE_DAG_CBOR]: (buf) => {
|
|
135
|
+
return dagCbor.encode(buf);
|
|
136
|
+
},
|
|
137
|
+
[MEDIA_TYPE_JSON]: (buf) => {
|
|
138
|
+
return dagJson.encode(buf);
|
|
139
|
+
},
|
|
140
|
+
[MEDIA_TYPE_DAG_JSON]: (buf) => {
|
|
141
|
+
return dagJson.encode(buf);
|
|
142
|
+
},
|
|
143
|
+
[MEDIA_TYPE_RAW]: (buf) => {
|
|
144
|
+
return buf;
|
|
145
|
+
},
|
|
146
|
+
[MEDIA_TYPE_OCTET_STREAM]: (buf) => {
|
|
147
|
+
return buf;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Where supported, deserialize the passed block using the codec appropriate for
|
|
153
|
+
* the CID, then loop over the acceptable content types and attempt to convert
|
|
154
|
+
* the deserialized value to that format and serialize it back to a block -
|
|
155
|
+
* return the first successful result.
|
|
156
|
+
*/
|
|
157
|
+
export function convertOutput(cid, block, accept) {
|
|
158
|
+
if (accept.length === 0) {
|
|
159
|
+
// return current format
|
|
160
|
+
return {
|
|
161
|
+
contentType: getContentTypesForCid(cid)[0],
|
|
162
|
+
output: block
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
for (const format of accept) {
|
|
166
|
+
const converter = CONVERSIONS[cid.code]?.[format.contentType.mediaType];
|
|
167
|
+
if (converter != null) {
|
|
168
|
+
return {
|
|
169
|
+
contentType: format.contentType,
|
|
170
|
+
output: converter(block)
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
throw new Error(`Could not convert ${cid} to any of ${accept.map(a => a.contentType.mediaType).join(', ')}`);
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=convert-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-output.js","sourceRoot":"","sources":["../../../src/utils/convert-output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAA;AAChD,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAI/K,MAAM,WAAW,GAAoE;IACnF,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACd,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,GAAG,CAAA;QACZ,CAAC;KACF;IACD,CAAC,UAAU,CAAC,EAAE;QACZ,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,GAAG,CAAA;QACZ,CAAC;KACF;IACD,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACd,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,GAAG,CAAA;QACZ,CAAC;KACF;IACD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACX,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACzC,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACzC,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,GAAG,CAAA;QACZ,CAAC;KACF;IACD,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACZ,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1C,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1C,CAAC;QACD,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1C,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1C,CAAC;QACD,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,GAAG,CAAA;QACZ,CAAC;KACF;IACD,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,GAAG,CAAA;QACZ,CAAC;KACF;IACD,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACf,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,CAAC,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,GAAG,CAAA;QACZ,CAAC;KACF;CACF,CAAA;AAOD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAE,GAAQ,EAAE,KAAiB,EAAE,MAAsB;IAChF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,wBAAwB;QACxB,OAAO;YACL,WAAW,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,EAAE,KAAK;SACd,CAAA;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAEvE,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO;gBACL,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;aACzB,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,cAAc,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC9G,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-to-response.d.ts","sourceRoot":"","sources":["../../../src/utils/error-to-response.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,wBAAgB,eAAe,CAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,QAAQ,CA4ChF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { CONTENT_TYPE_OCTET_STREAM, CONTENT_TYPE_RAW } from "./content-types.js";
|
|
2
|
+
import { badGatewayResponse, gatewayTimeoutResponse, internalServerErrorResponse, notAcceptableResponse, notFoundResponse, preconditionFailedResponse } from './responses.js';
|
|
3
|
+
export function errorToResponse(resource, err) {
|
|
4
|
+
// if a signal abort caused the error, throw the error
|
|
5
|
+
if (err.name === 'AbortError') {
|
|
6
|
+
throw err;
|
|
7
|
+
}
|
|
8
|
+
// could not reach an upstream server, bad connection or offline
|
|
9
|
+
if (err.code === 'ECONNREFUSED' || err.code === 'ECANCELLED' || err.name === 'DNSQueryFailedError') {
|
|
10
|
+
return badGatewayResponse(resource.toString(), err);
|
|
11
|
+
}
|
|
12
|
+
// data was not parseable, user may be able to request raw block
|
|
13
|
+
if (['NotUnixFSError'].includes(err.name)) {
|
|
14
|
+
return notAcceptableResponse(resource.toString(), [
|
|
15
|
+
CONTENT_TYPE_RAW,
|
|
16
|
+
CONTENT_TYPE_OCTET_STREAM
|
|
17
|
+
]);
|
|
18
|
+
}
|
|
19
|
+
// an upstream server didn't respond in time but inside the signal timeout
|
|
20
|
+
if (err.code === 'ETIMEOUT' || err.name === 'TimeoutError') {
|
|
21
|
+
return gatewayTimeoutResponse(resource.toString(), err);
|
|
22
|
+
}
|
|
23
|
+
// path was not under DAG root
|
|
24
|
+
if (['ERR_NO_PROP', 'ERR_NO_TERMINAL_ELEMENT', 'ERR_NOT_FOUND'].includes(err.code)) {
|
|
25
|
+
return notFoundResponse(resource.toString());
|
|
26
|
+
}
|
|
27
|
+
// path was not under DAG root
|
|
28
|
+
if (['DoesNotExistError'].includes(err.name)) {
|
|
29
|
+
return notFoundResponse(resource.toString());
|
|
30
|
+
}
|
|
31
|
+
if (['BlockNotFoundWhileOfflineError'].includes(err.name)) {
|
|
32
|
+
return preconditionFailedResponse(resource.toString());
|
|
33
|
+
}
|
|
34
|
+
if (['RecordNotFoundError'].includes('err.name')) {
|
|
35
|
+
return badGatewayResponse(resource.toString(), err);
|
|
36
|
+
}
|
|
37
|
+
// can't tell what went wrong, return a generic error
|
|
38
|
+
return internalServerErrorResponse(resource.toString(), err);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=error-to-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-to-response.js","sourceRoot":"","sources":["../../../src/utils/error-to-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAG7K,MAAM,UAAU,eAAe,CAAE,QAA2B,EAAE,GAAQ;IACpE,sDAAsD;IACtD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC9B,MAAM,GAAG,CAAA;IACX,CAAC;IAED,gEAAgE;IAChE,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;QACnG,OAAO,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;IACrD,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;YAChD,gBAAgB;YAChB,yBAAyB;SAC1B,CAAC,CAAA;IACJ,CAAC;IAED,0EAA0E;IAC1E,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC3D,OAAO,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;IACzD,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,aAAa,EAAE,yBAAyB,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACnF,OAAO,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;IACrD,CAAC;IAED,qDAAqD;IACrD,OAAO,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;AAC9D,CAAC"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Takes a filename URL param and returns a string for use in a
|
|
3
3
|
* `Content-Disposition` header
|
|
4
4
|
*/
|
|
5
|
-
export declare function getContentDispositionFilename(filename: string): string;
|
|
5
|
+
export declare function getContentDispositionFilename(filename: string | null): string;
|
|
6
6
|
//# sourceMappingURL=get-content-disposition-filename.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-content-disposition-filename.d.ts","sourceRoot":"","sources":["../../../src/utils/get-content-disposition-filename.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-content-disposition-filename.d.ts","sourceRoot":"","sources":["../../../src/utils/get-content-disposition-filename.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,6BAA6B,CAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAY9E"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { InvalidParametersError } from '@libp2p/interface';
|
|
1
2
|
/**
|
|
2
3
|
* Takes a filename URL param and returns a string for use in a
|
|
3
4
|
* `Content-Disposition` header
|
|
4
5
|
*/
|
|
5
6
|
export function getContentDispositionFilename(filename) {
|
|
7
|
+
if (filename == null) {
|
|
8
|
+
throw new InvalidParametersError('Cannot get filename for Content-Disposition header - filename argument was missing');
|
|
9
|
+
}
|
|
6
10
|
const asciiOnly = replaceNonAsciiCharacters(filename);
|
|
7
11
|
if (asciiOnly === filename) {
|
|
8
12
|
return `filename="${filename}"`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-content-disposition-filename.js","sourceRoot":"","sources":["../../../src/utils/get-content-disposition-filename.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAE,
|
|
1
|
+
{"version":3,"file":"get-content-disposition-filename.js","sourceRoot":"","sources":["../../../src/utils/get-content-disposition-filename.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAE,QAAuB;IACpE,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,sBAAsB,CAAC,oFAAoF,CAAC,CAAA;IACxH,CAAC;IAED,MAAM,SAAS,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAErD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,aAAa,QAAQ,GAAG,CAAA;IACjC,CAAC;IAED,OAAO,aAAa,SAAS,uBAAuB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;AACpF,CAAC;AAED,SAAS,yBAAyB,CAAE,QAAgB;IAClD,4CAA4C;IAC5C,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;AAC/C,CAAC"}
|
|
@@ -1,32 +1,37 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ContentType } from '../index.ts';
|
|
2
2
|
import type { CID } from 'multiformats/cid';
|
|
3
3
|
interface GetETagArg {
|
|
4
|
+
/**
|
|
5
|
+
* The CID that was resolved to the content in the response
|
|
6
|
+
*/
|
|
4
7
|
cid: CID;
|
|
5
|
-
|
|
8
|
+
/**
|
|
9
|
+
* The content type of the response
|
|
10
|
+
*/
|
|
11
|
+
contentType: ContentType;
|
|
12
|
+
/**
|
|
13
|
+
* Where the byte range starts, if specified
|
|
14
|
+
*/
|
|
6
15
|
rangeStart?: number;
|
|
7
|
-
rangeEnd?: number;
|
|
8
16
|
/**
|
|
9
|
-
*
|
|
10
|
-
* Some examples:
|
|
11
|
-
* - IPNS requests
|
|
12
|
-
* - CAR streamed with blocks in non-deterministic order
|
|
13
|
-
* - TAR streamed with files in non-deterministic order
|
|
17
|
+
* Where the byte range ends, if specified
|
|
14
18
|
*/
|
|
15
|
-
|
|
19
|
+
rangeEnd?: number;
|
|
16
20
|
/**
|
|
17
|
-
* A custom prefix to use for the content of the etag
|
|
21
|
+
* A custom prefix to use for the content of the etag
|
|
18
22
|
*/
|
|
19
23
|
contentPrefix?: string;
|
|
20
24
|
}
|
|
21
25
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
+
* We use strong Etags for immutable responses and weak ones (prefixed with W/ )
|
|
27
|
+
* for mutable/generated ones (ipns, car, tar, and generated HTML).
|
|
28
|
+
*
|
|
29
|
+
* Block and car responses should have different etags to deserialized ones, so
|
|
30
|
+
* you can add a prefix like we do in the existing gateway.
|
|
26
31
|
*
|
|
27
32
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag
|
|
28
33
|
* @see https://specs.ipfs.tech/http-gateways/path-gateway/#etag-response-header
|
|
29
34
|
*/
|
|
30
|
-
export declare function getETag({ cid,
|
|
35
|
+
export declare function getETag({ cid, contentType, rangeStart, rangeEnd, contentPrefix }: GetETagArg): string;
|
|
31
36
|
export {};
|
|
32
37
|
//# sourceMappingURL=get-e-tag.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-e-tag.d.ts","sourceRoot":"","sources":["../../../src/utils/get-e-tag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"get-e-tag.d.ts","sourceRoot":"","sources":["../../../src/utils/get-e-tag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,UAAU,UAAU;IAClB;;OAEG;IACH,GAAG,EAAE,GAAG,CAAA;IAER;;OAEG;IACH,WAAW,EAAE,WAAW,CAAA;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAE,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,UAAU,GAAG,MAAM,CAStG"}
|