@helia/verified-fetch 4.1.0 → 5.0.0

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.
Files changed (231) hide show
  1. package/README.md +6 -40
  2. package/dist/index.min.js +73 -534
  3. package/dist/index.min.js.map +4 -4
  4. package/dist/src/constants.d.ts +2 -0
  5. package/dist/src/constants.d.ts.map +1 -1
  6. package/dist/src/constants.js +2 -0
  7. package/dist/src/constants.js.map +1 -1
  8. package/dist/src/index.d.ts +162 -68
  9. package/dist/src/index.d.ts.map +1 -1
  10. package/dist/src/index.js +11 -43
  11. package/dist/src/index.js.map +1 -1
  12. package/dist/src/plugins/index.d.ts +0 -5
  13. package/dist/src/plugins/index.d.ts.map +1 -1
  14. package/dist/src/plugins/index.js +0 -4
  15. package/dist/src/plugins/index.js.map +1 -1
  16. package/dist/src/plugins/plugin-base.d.ts +8 -9
  17. package/dist/src/plugins/plugin-base.d.ts.map +1 -1
  18. package/dist/src/plugins/plugin-base.js +5 -6
  19. package/dist/src/plugins/plugin-base.js.map +1 -1
  20. package/dist/src/plugins/plugin-handle-car.d.ts +3 -3
  21. package/dist/src/plugins/plugin-handle-car.d.ts.map +1 -1
  22. package/dist/src/plugins/plugin-handle-car.js +38 -39
  23. package/dist/src/plugins/plugin-handle-car.js.map +1 -1
  24. package/dist/src/plugins/plugin-handle-ipld.d.ts +12 -0
  25. package/dist/src/plugins/plugin-handle-ipld.d.ts.map +1 -0
  26. package/dist/src/plugins/plugin-handle-ipld.js +83 -0
  27. package/dist/src/plugins/plugin-handle-ipld.js.map +1 -0
  28. package/dist/src/plugins/plugin-handle-ipns-record.d.ts +3 -3
  29. package/dist/src/plugins/plugin-handle-ipns-record.d.ts.map +1 -1
  30. package/dist/src/plugins/plugin-handle-ipns-record.js +25 -34
  31. package/dist/src/plugins/plugin-handle-ipns-record.js.map +1 -1
  32. package/dist/src/plugins/plugin-handle-tar.d.ts +3 -3
  33. package/dist/src/plugins/plugin-handle-tar.d.ts.map +1 -1
  34. package/dist/src/plugins/plugin-handle-tar.js +20 -22
  35. package/dist/src/plugins/plugin-handle-tar.js.map +1 -1
  36. package/dist/src/plugins/plugin-handle-unixfs.d.ts +14 -0
  37. package/dist/src/plugins/plugin-handle-unixfs.d.ts.map +1 -0
  38. package/dist/src/plugins/plugin-handle-unixfs.js +180 -0
  39. package/dist/src/plugins/plugin-handle-unixfs.js.map +1 -0
  40. package/dist/src/plugins/types.d.ts +1 -77
  41. package/dist/src/plugins/types.d.ts.map +1 -1
  42. package/dist/src/url-resolver.d.ts +29 -11
  43. package/dist/src/url-resolver.d.ts.map +1 -1
  44. package/dist/src/url-resolver.js +152 -74
  45. package/dist/src/url-resolver.js.map +1 -1
  46. package/dist/src/utils/content-type-parser.d.ts.map +1 -1
  47. package/dist/src/utils/content-type-parser.js +4 -3
  48. package/dist/src/utils/content-type-parser.js.map +1 -1
  49. package/dist/src/utils/content-types.d.ts +26 -0
  50. package/dist/src/utils/content-types.d.ts.map +1 -0
  51. package/dist/src/utils/content-types.js +137 -0
  52. package/dist/src/utils/content-types.js.map +1 -0
  53. package/dist/src/utils/convert-output.d.ts +17 -0
  54. package/dist/src/utils/convert-output.d.ts.map +1 -0
  55. package/dist/src/utils/convert-output.js +176 -0
  56. package/dist/src/utils/convert-output.js.map +1 -0
  57. package/dist/src/utils/error-to-response.d.ts +3 -0
  58. package/dist/src/utils/error-to-response.d.ts.map +1 -0
  59. package/dist/src/utils/error-to-response.js +40 -0
  60. package/dist/src/utils/error-to-response.js.map +1 -0
  61. package/dist/src/utils/get-content-disposition-filename.d.ts +1 -1
  62. package/dist/src/utils/get-content-disposition-filename.d.ts.map +1 -1
  63. package/dist/src/utils/get-content-disposition-filename.js +4 -0
  64. package/dist/src/utils/get-content-disposition-filename.js.map +1 -1
  65. package/dist/src/utils/get-e-tag.d.ts +20 -15
  66. package/dist/src/utils/get-e-tag.d.ts.map +1 -1
  67. package/dist/src/utils/get-e-tag.js +8 -22
  68. package/dist/src/utils/get-e-tag.js.map +1 -1
  69. package/dist/src/utils/get-offset-and-length.d.ts +12 -2
  70. package/dist/src/utils/get-offset-and-length.d.ts.map +1 -1
  71. package/dist/src/utils/get-offset-and-length.js +63 -21
  72. package/dist/src/utils/get-offset-and-length.js.map +1 -1
  73. package/dist/src/utils/get-range-header.d.ts +22 -0
  74. package/dist/src/utils/get-range-header.d.ts.map +1 -0
  75. package/dist/src/utils/get-range-header.js +69 -0
  76. package/dist/src/utils/get-range-header.js.map +1 -0
  77. package/dist/src/utils/parse-url-string.d.ts +2 -1
  78. package/dist/src/utils/parse-url-string.d.ts.map +1 -1
  79. package/dist/src/utils/parse-url-string.js +46 -71
  80. package/dist/src/utils/parse-url-string.js.map +1 -1
  81. package/dist/src/utils/resource-to-cache-key.d.ts +3 -3
  82. package/dist/src/utils/resource-to-cache-key.js +5 -5
  83. package/dist/src/utils/resource-to-cache-key.js.map +1 -1
  84. package/dist/src/utils/response-headers.d.ts +4 -14
  85. package/dist/src/utils/response-headers.d.ts.map +1 -1
  86. package/dist/src/utils/response-headers.js +36 -36
  87. package/dist/src/utils/response-headers.js.map +1 -1
  88. package/dist/src/utils/responses.d.ts +30 -11
  89. package/dist/src/utils/responses.d.ts.map +1 -1
  90. package/dist/src/utils/responses.js +146 -39
  91. package/dist/src/utils/responses.js.map +1 -1
  92. package/dist/src/verified-fetch.d.ts +16 -15
  93. package/dist/src/verified-fetch.d.ts.map +1 -1
  94. package/dist/src/verified-fetch.js +307 -236
  95. package/dist/src/verified-fetch.js.map +1 -1
  96. package/dist/typedoc-urls.json +64 -45
  97. package/package.json +4 -3
  98. package/src/constants.ts +3 -0
  99. package/src/index.ts +203 -71
  100. package/src/plugins/index.ts +0 -6
  101. package/src/plugins/plugin-base.ts +8 -10
  102. package/src/plugins/plugin-handle-car.ts +48 -46
  103. package/src/plugins/plugin-handle-ipld.ts +93 -0
  104. package/src/plugins/plugin-handle-ipns-record.ts +31 -41
  105. package/src/plugins/plugin-handle-tar.ts +25 -29
  106. package/src/plugins/plugin-handle-unixfs.ts +217 -0
  107. package/src/plugins/types.ts +0 -86
  108. package/src/url-resolver.ts +197 -83
  109. package/src/utils/content-type-parser.ts +4 -3
  110. package/src/utils/content-types.ts +159 -0
  111. package/src/utils/convert-output.ts +187 -0
  112. package/src/utils/error-to-response.ts +49 -0
  113. package/src/utils/get-content-disposition-filename.ts +7 -1
  114. package/src/utils/get-e-tag.ts +26 -35
  115. package/src/utils/get-offset-and-length.ts +75 -21
  116. package/src/utils/get-range-header.ts +107 -0
  117. package/src/utils/parse-url-string.ts +51 -80
  118. package/src/utils/resource-to-cache-key.ts +5 -5
  119. package/src/utils/response-headers.ts +40 -41
  120. package/src/utils/responses.ts +186 -45
  121. package/src/verified-fetch.ts +359 -267
  122. package/dist/src/plugins/plugin-handle-byte-range-context.d.ts +0 -14
  123. package/dist/src/plugins/plugin-handle-byte-range-context.d.ts.map +0 -1
  124. package/dist/src/plugins/plugin-handle-byte-range-context.js +0 -25
  125. package/dist/src/plugins/plugin-handle-byte-range-context.js.map +0 -1
  126. package/dist/src/plugins/plugin-handle-cbor.d.ts +0 -17
  127. package/dist/src/plugins/plugin-handle-cbor.d.ts.map +0 -1
  128. package/dist/src/plugins/plugin-handle-cbor.js +0 -94
  129. package/dist/src/plugins/plugin-handle-cbor.js.map +0 -1
  130. package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.d.ts +0 -27
  131. package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.d.ts.map +0 -1
  132. package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.js +0 -279
  133. package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.js.map +0 -1
  134. package/dist/src/plugins/plugin-handle-dag-cbor.d.ts +0 -17
  135. package/dist/src/plugins/plugin-handle-dag-cbor.d.ts.map +0 -1
  136. package/dist/src/plugins/plugin-handle-dag-cbor.js +0 -66
  137. package/dist/src/plugins/plugin-handle-dag-cbor.js.map +0 -1
  138. package/dist/src/plugins/plugin-handle-dag-pb.d.ts +0 -17
  139. package/dist/src/plugins/plugin-handle-dag-pb.d.ts.map +0 -1
  140. package/dist/src/plugins/plugin-handle-dag-pb.js +0 -209
  141. package/dist/src/plugins/plugin-handle-dag-pb.js.map +0 -1
  142. package/dist/src/plugins/plugin-handle-dag-walk.d.ts +0 -21
  143. package/dist/src/plugins/plugin-handle-dag-walk.d.ts.map +0 -1
  144. package/dist/src/plugins/plugin-handle-dag-walk.js +0 -95
  145. package/dist/src/plugins/plugin-handle-dag-walk.js.map +0 -1
  146. package/dist/src/plugins/plugin-handle-dir-index-html.d.ts +0 -10
  147. package/dist/src/plugins/plugin-handle-dir-index-html.d.ts.map +0 -1
  148. package/dist/src/plugins/plugin-handle-dir-index-html.js +0 -59
  149. package/dist/src/plugins/plugin-handle-dir-index-html.js.map +0 -1
  150. package/dist/src/plugins/plugin-handle-json.d.ts +0 -12
  151. package/dist/src/plugins/plugin-handle-json.d.ts.map +0 -1
  152. package/dist/src/plugins/plugin-handle-json.js +0 -73
  153. package/dist/src/plugins/plugin-handle-json.js.map +0 -1
  154. package/dist/src/plugins/plugin-handle-raw.d.ts +0 -9
  155. package/dist/src/plugins/plugin-handle-raw.d.ts.map +0 -1
  156. package/dist/src/plugins/plugin-handle-raw.js +0 -92
  157. package/dist/src/plugins/plugin-handle-raw.js.map +0 -1
  158. package/dist/src/plugins/plugins.d.ts +0 -6
  159. package/dist/src/plugins/plugins.d.ts.map +0 -1
  160. package/dist/src/plugins/plugins.js +0 -6
  161. package/dist/src/plugins/plugins.js.map +0 -1
  162. package/dist/src/utils/byte-range-context.d.ts +0 -103
  163. package/dist/src/utils/byte-range-context.d.ts.map +0 -1
  164. package/dist/src/utils/byte-range-context.js +0 -504
  165. package/dist/src/utils/byte-range-context.js.map +0 -1
  166. package/dist/src/utils/dag-cbor-to-safe-json.d.ts +0 -15
  167. package/dist/src/utils/dag-cbor-to-safe-json.d.ts.map +0 -1
  168. package/dist/src/utils/dag-cbor-to-safe-json.js +0 -54
  169. package/dist/src/utils/dag-cbor-to-safe-json.js.map +0 -1
  170. package/dist/src/utils/dir-index-html.d.ts +0 -19
  171. package/dist/src/utils/dir-index-html.d.ts.map +0 -1
  172. package/dist/src/utils/dir-index-html.js +0 -438
  173. package/dist/src/utils/dir-index-html.js.map +0 -1
  174. package/dist/src/utils/get-peer-id-from-string.d.ts +0 -3
  175. package/dist/src/utils/get-peer-id-from-string.d.ts.map +0 -1
  176. package/dist/src/utils/get-peer-id-from-string.js +0 -10
  177. package/dist/src/utils/get-peer-id-from-string.js.map +0 -1
  178. package/dist/src/utils/get-resolved-accept-header.d.ts +0 -9
  179. package/dist/src/utils/get-resolved-accept-header.d.ts.map +0 -1
  180. package/dist/src/utils/get-resolved-accept-header.js +0 -27
  181. package/dist/src/utils/get-resolved-accept-header.js.map +0 -1
  182. package/dist/src/utils/get-stream-from-async-iterable.d.ts +0 -9
  183. package/dist/src/utils/get-stream-from-async-iterable.d.ts.map +0 -1
  184. package/dist/src/utils/get-stream-from-async-iterable.js +0 -43
  185. package/dist/src/utils/get-stream-from-async-iterable.js.map +0 -1
  186. package/dist/src/utils/handle-redirects.d.ts +0 -16
  187. package/dist/src/utils/handle-redirects.d.ts.map +0 -1
  188. package/dist/src/utils/handle-redirects.js +0 -84
  189. package/dist/src/utils/handle-redirects.js.map +0 -1
  190. package/dist/src/utils/is-accept-explicit.d.ts +0 -15
  191. package/dist/src/utils/is-accept-explicit.d.ts.map +0 -1
  192. package/dist/src/utils/is-accept-explicit.js +0 -26
  193. package/dist/src/utils/is-accept-explicit.js.map +0 -1
  194. package/dist/src/utils/request-headers.d.ts +0 -13
  195. package/dist/src/utils/request-headers.d.ts.map +0 -1
  196. package/dist/src/utils/request-headers.js +0 -63
  197. package/dist/src/utils/request-headers.js.map +0 -1
  198. package/dist/src/utils/select-output-type.d.ts +0 -17
  199. package/dist/src/utils/select-output-type.d.ts.map +0 -1
  200. package/dist/src/utils/select-output-type.js +0 -153
  201. package/dist/src/utils/select-output-type.js.map +0 -1
  202. package/dist/src/utils/tlru.d.ts +0 -15
  203. package/dist/src/utils/tlru.d.ts.map +0 -1
  204. package/dist/src/utils/tlru.js +0 -34
  205. package/dist/src/utils/tlru.js.map +0 -1
  206. package/dist/src/utils/walk-path.d.ts +0 -27
  207. package/dist/src/utils/walk-path.d.ts.map +0 -1
  208. package/dist/src/utils/walk-path.js +0 -45
  209. package/dist/src/utils/walk-path.js.map +0 -1
  210. package/src/plugins/plugin-handle-byte-range-context.ts +0 -30
  211. package/src/plugins/plugin-handle-cbor.ts +0 -107
  212. package/src/plugins/plugin-handle-dag-cbor-html-preview.ts +0 -295
  213. package/src/plugins/plugin-handle-dag-cbor.ts +0 -83
  214. package/src/plugins/plugin-handle-dag-pb.ts +0 -248
  215. package/src/plugins/plugin-handle-dag-walk.ts +0 -110
  216. package/src/plugins/plugin-handle-dir-index-html.ts +0 -72
  217. package/src/plugins/plugin-handle-json.ts +0 -80
  218. package/src/plugins/plugin-handle-raw.ts +0 -110
  219. package/src/plugins/plugins.ts +0 -5
  220. package/src/utils/byte-range-context.ts +0 -597
  221. package/src/utils/dag-cbor-to-safe-json.ts +0 -63
  222. package/src/utils/dir-index-html.ts +0 -505
  223. package/src/utils/get-peer-id-from-string.ts +0 -12
  224. package/src/utils/get-resolved-accept-header.ts +0 -42
  225. package/src/utils/get-stream-from-async-iterable.ts +0 -49
  226. package/src/utils/handle-redirects.ts +0 -109
  227. package/src/utils/is-accept-explicit.ts +0 -38
  228. package/src/utils/request-headers.ts +0 -65
  229. package/src/utils/select-output-type.ts +0 -175
  230. package/src/utils/tlru.ts +0 -42
  231. package/src/utils/walk-path.ts +0 -68
@@ -1 +1 @@
1
- {"version":3,"file":"url-resolver.js","sourceRoot":"","sources":["../../src/url-resolver.ts"],"names":[],"mappings":"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"}
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,CA6D9F"}
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
- if (fileName == null) {
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/SgtPooki/file-type#supported-file-types
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/SgtPooki/file-type#supported-file-types
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":"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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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"}
@@ -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":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from '../index.js';
2
+ export declare function errorToResponse(resource: Resource | string, err: any): Response;
3
+ //# sourceMappingURL=error-to-response.d.ts.map
@@ -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":"AAAA;;;GAGG;AACH,wBAAgB,6BAA6B,CAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQvE"}
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,QAAgB;IAC7D,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
+ {"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 { RequestFormatShorthand } from '../index.js';
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
- reqFormat?: RequestFormatShorthand;
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
- * Weak Etag is used when we can't guarantee byte-for-byte-determinism (generated, or mutable content).
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
- weak?: boolean;
19
+ rangeEnd?: number;
16
20
  /**
17
- * A custom prefix to use for the content of the etag. This is needed for some cases (like dir-index-html) where we need to use a custom prefix for 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
- * etag
23
- * you need to wrap cid with ""
24
- * we use strong Etags for immutable responses and weak one (prefixed with W/ ) for mutable/generated ones (ipns, car, tar, and generated HTML).
25
- * block and car responses should have different etag than deserialized one, so you can add some prefix like we do in existing gateway
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, reqFormat, weak, rangeStart, rangeEnd, contentPrefix }: GetETagArg): string;
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,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,UAAU,UAAU;IAClB,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,UAAU,GAAG,MAAM,CAQ1G"}
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"}