@helia/verified-fetch 3.2.2 → 4.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 (130) hide show
  1. package/README.md +5 -5
  2. package/dist/index.min.js +81 -71
  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 -0
  6. package/dist/src/constants.js +2 -0
  7. package/dist/src/constants.js.map +1 -0
  8. package/dist/src/index.d.ts +57 -13
  9. package/dist/src/index.d.ts.map +1 -1
  10. package/dist/src/index.js +6 -6
  11. package/dist/src/index.js.map +1 -1
  12. package/dist/src/plugins/plugin-handle-car.d.ts.map +1 -1
  13. package/dist/src/plugins/plugin-handle-car.js +37 -27
  14. package/dist/src/plugins/plugin-handle-car.js.map +1 -1
  15. package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.d.ts +1 -1
  16. package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.d.ts.map +1 -1
  17. package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.js +1 -1
  18. package/dist/src/plugins/plugin-handle-dag-cbor-html-preview.js.map +1 -1
  19. package/dist/src/plugins/plugin-handle-dag-cbor.js +5 -5
  20. package/dist/src/plugins/plugin-handle-dag-cbor.js.map +1 -1
  21. package/dist/src/plugins/plugin-handle-dag-pb.js +12 -12
  22. package/dist/src/plugins/plugin-handle-dag-pb.js.map +1 -1
  23. package/dist/src/plugins/plugin-handle-dag-walk.d.ts.map +1 -1
  24. package/dist/src/plugins/plugin-handle-dag-walk.js +5 -4
  25. package/dist/src/plugins/plugin-handle-dag-walk.js.map +1 -1
  26. package/dist/src/plugins/plugin-handle-ipns-record.d.ts.map +1 -1
  27. package/dist/src/plugins/plugin-handle-ipns-record.js +13 -19
  28. package/dist/src/plugins/plugin-handle-ipns-record.js.map +1 -1
  29. package/dist/src/plugins/plugin-handle-json.d.ts.map +1 -1
  30. package/dist/src/plugins/plugin-handle-json.js +5 -4
  31. package/dist/src/plugins/plugin-handle-json.js.map +1 -1
  32. package/dist/src/plugins/plugin-handle-raw.d.ts.map +1 -1
  33. package/dist/src/plugins/plugin-handle-raw.js +18 -5
  34. package/dist/src/plugins/plugin-handle-raw.js.map +1 -1
  35. package/dist/src/plugins/plugin-handle-tar.js +1 -1
  36. package/dist/src/plugins/plugin-handle-tar.js.map +1 -1
  37. package/dist/src/plugins/types.d.ts +10 -8
  38. package/dist/src/plugins/types.d.ts.map +1 -1
  39. package/dist/src/url-resolver.d.ts +21 -0
  40. package/dist/src/url-resolver.d.ts.map +1 -0
  41. package/dist/src/url-resolver.js +118 -0
  42. package/dist/src/url-resolver.js.map +1 -0
  43. package/dist/src/utils/byte-range-context.d.ts +1 -1
  44. package/dist/src/utils/content-type-parser.d.ts.map +1 -1
  45. package/dist/src/utils/content-type-parser.js +3 -0
  46. package/dist/src/utils/content-type-parser.js.map +1 -1
  47. package/dist/src/utils/get-content-type.d.ts +3 -3
  48. package/dist/src/utils/get-content-type.d.ts.map +1 -1
  49. package/dist/src/utils/get-content-type.js +1 -1
  50. package/dist/src/utils/get-content-type.js.map +1 -1
  51. package/dist/src/utils/get-e-tag.d.ts +1 -1
  52. package/dist/src/utils/get-offset-and-length.d.ts +6 -0
  53. package/dist/src/utils/get-offset-and-length.d.ts.map +1 -0
  54. package/dist/src/utils/get-offset-and-length.js +46 -0
  55. package/dist/src/utils/get-offset-and-length.js.map +1 -0
  56. package/dist/src/utils/get-resolved-accept-header.d.ts +2 -2
  57. package/dist/src/utils/get-resolved-accept-header.d.ts.map +1 -1
  58. package/dist/src/utils/handle-redirects.d.ts.map +1 -1
  59. package/dist/src/utils/handle-redirects.js +3 -3
  60. package/dist/src/utils/handle-redirects.js.map +1 -1
  61. package/dist/src/utils/ipfs-path-to-string.d.ts +6 -0
  62. package/dist/src/utils/ipfs-path-to-string.d.ts.map +1 -0
  63. package/dist/src/utils/ipfs-path-to-string.js +10 -0
  64. package/dist/src/utils/ipfs-path-to-string.js.map +1 -0
  65. package/dist/src/utils/is-accept-explicit.d.ts +6 -4
  66. package/dist/src/utils/is-accept-explicit.d.ts.map +1 -1
  67. package/dist/src/utils/is-accept-explicit.js +7 -4
  68. package/dist/src/utils/is-accept-explicit.js.map +1 -1
  69. package/dist/src/utils/parse-url-string.d.ts +1 -55
  70. package/dist/src/utils/parse-url-string.d.ts.map +1 -1
  71. package/dist/src/utils/parse-url-string.js +16 -217
  72. package/dist/src/utils/parse-url-string.js.map +1 -1
  73. package/dist/src/utils/response-headers.d.ts +1 -1
  74. package/dist/src/utils/response-headers.d.ts.map +1 -1
  75. package/dist/src/utils/responses.d.ts +1 -1
  76. package/dist/src/utils/select-output-type.d.ts +6 -2
  77. package/dist/src/utils/select-output-type.d.ts.map +1 -1
  78. package/dist/src/utils/select-output-type.js +28 -37
  79. package/dist/src/utils/select-output-type.js.map +1 -1
  80. package/dist/src/utils/server-timing.d.ts +5 -11
  81. package/dist/src/utils/server-timing.d.ts.map +1 -1
  82. package/dist/src/utils/server-timing.js +17 -15
  83. package/dist/src/utils/server-timing.js.map +1 -1
  84. package/dist/src/utils/walk-path.js +1 -1
  85. package/dist/src/utils/walk-path.js.map +1 -1
  86. package/dist/src/verified-fetch.d.ts +3 -10
  87. package/dist/src/verified-fetch.d.ts.map +1 -1
  88. package/dist/src/verified-fetch.js +68 -57
  89. package/dist/src/verified-fetch.js.map +1 -1
  90. package/dist/typedoc-urls.json +13 -2
  91. package/package.json +35 -36
  92. package/src/constants.ts +1 -0
  93. package/src/index.ts +73 -22
  94. package/src/plugins/plugin-handle-car.ts +54 -30
  95. package/src/plugins/plugin-handle-dag-cbor-html-preview.ts +2 -2
  96. package/src/plugins/plugin-handle-dag-cbor.ts +5 -5
  97. package/src/plugins/plugin-handle-dag-pb.ts +12 -12
  98. package/src/plugins/plugin-handle-dag-walk.ts +5 -4
  99. package/src/plugins/plugin-handle-ipns-record.ts +16 -19
  100. package/src/plugins/plugin-handle-json.ts +5 -4
  101. package/src/plugins/plugin-handle-raw.ts +21 -6
  102. package/src/plugins/plugin-handle-tar.ts +1 -1
  103. package/src/plugins/types.ts +12 -8
  104. package/src/url-resolver.ts +159 -0
  105. package/src/utils/byte-range-context.ts +1 -1
  106. package/src/utils/content-type-parser.ts +3 -0
  107. package/src/utils/get-content-type.ts +5 -4
  108. package/src/utils/get-e-tag.ts +1 -1
  109. package/src/utils/get-offset-and-length.ts +54 -0
  110. package/src/utils/get-resolved-accept-header.ts +2 -2
  111. package/src/utils/handle-redirects.ts +10 -3
  112. package/src/utils/ipfs-path-to-string.ts +9 -0
  113. package/src/utils/is-accept-explicit.ts +14 -7
  114. package/src/utils/parse-url-string.ts +20 -286
  115. package/src/utils/response-headers.ts +1 -1
  116. package/src/utils/responses.ts +1 -1
  117. package/src/utils/select-output-type.ts +38 -44
  118. package/src/utils/server-timing.ts +17 -30
  119. package/src/utils/walk-path.ts +1 -1
  120. package/src/verified-fetch.ts +78 -69
  121. package/dist/src/types.d.ts +0 -16
  122. package/dist/src/types.d.ts.map +0 -1
  123. package/dist/src/types.js +0 -2
  124. package/dist/src/types.js.map +0 -1
  125. package/dist/src/utils/parse-resource.d.ts +0 -18
  126. package/dist/src/utils/parse-resource.d.ts.map +0 -1
  127. package/dist/src/utils/parse-resource.js +0 -27
  128. package/dist/src/utils/parse-resource.js.map +0 -1
  129. package/src/types.ts +0 -17
  130. package/src/utils/parse-resource.ts +0 -42
package/README.md CHANGED
@@ -777,12 +777,12 @@ To add your own plugin:
777
777
  canHandle(context: PluginContext): boolean {
778
778
  // Only handle requests if the Accept header matches your custom type
779
779
  // Or check context for pathDetails, custom values, etc...
780
- return context.accept === 'application/vnd.my-custom-type'
780
+ return context.accept?.mimeType === 'application/vnd.my-custom-type'
781
781
  }
782
782
 
783
783
  async handle(context: PluginContext): Promise<Response | null> {
784
784
  // Perform any partial processing here, e.g., modify the context:
785
- context.customProcessed = true;
785
+ context.customProcessed = true
786
786
 
787
787
  // If you are ready to finalize the response:
788
788
  return new Response('Hello, world!', {
@@ -790,7 +790,7 @@ To add your own plugin:
790
790
  headers: {
791
791
  'Content-Type': 'text/plain'
792
792
  }
793
- });
793
+ })
794
794
 
795
795
  // Or, if further processing is needed by another plugin, simply return null.
796
796
  }
@@ -844,13 +844,13 @@ if (recoverable === true) {
844
844
  details: {
845
845
  someKey: 'Additional details here'
846
846
  }
847
- });
847
+ })
848
848
  }
849
849
 
850
850
  if (recoverable === false) {
851
851
  throw new PluginFatalError('MY_CUSTOM_FATAL', 'A critical error occurred', {
852
852
  response: new Response('Something happened', { status: 500 }) // Required: supply your own error response
853
- });
853
+ })
854
854
  }
855
855
 
856
856
  // Otherwise, continue processing...