@fireproof/vendor 1.0.3 → 1.1.0-dev

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 (299) hide show
  1. package/package.json +4 -97
  2. package/src/@web3-storage/pail/dist/src/batch/index.d.ts +1 -53
  3. package/src/@web3-storage/pail/dist/src/batch/index.d.ts.map +1 -1
  4. package/src/@web3-storage/pail/dist/src/batch/shard.d.ts +1 -1
  5. package/src/@web3-storage/pail/dist/src/batch/shard.d.ts.map +1 -1
  6. package/src/@web3-storage/pail/dist/src/block.d.ts +2 -2
  7. package/src/@web3-storage/pail/dist/src/block.d.ts.map +1 -1
  8. package/src/@web3-storage/pail/dist/src/clock/index.d.ts +2 -2
  9. package/src/@web3-storage/pail/dist/src/clock/index.d.ts.map +1 -1
  10. package/src/@web3-storage/pail/dist/src/crdt/batch/index.d.ts.map +1 -1
  11. package/src/@web3-storage/pail/dist/src/crdt/index.d.ts +2 -2
  12. package/src/@web3-storage/pail/dist/src/crdt/index.d.ts.map +1 -1
  13. package/src/@web3-storage/pail/dist/src/diff.d.ts +3 -3
  14. package/src/@web3-storage/pail/dist/src/diff.d.ts.map +1 -1
  15. package/src/@web3-storage/pail/dist/src/index.d.ts +1 -1
  16. package/src/@web3-storage/pail/dist/src/index.d.ts.map +1 -1
  17. package/src/@web3-storage/pail/dist/src/merge.d.ts.map +1 -1
  18. package/src/@web3-storage/pail/dist/src/shard.d.ts +4 -4
  19. package/src/@web3-storage/pail/dist/src/shard.d.ts.map +1 -1
  20. package/src/@web3-storage/pail/dist/tsconfig.tsbuildinfo +1 -1
  21. package/src/@web3-storage/pail/src/api.ts +1 -1
  22. package/src/@web3-storage/pail/src/clock/index.js +1 -1
  23. package/src/@web3-storage/pail/src/shard.js +1 -1
  24. package/src/@ipld/car/LICENSE +0 -4
  25. package/src/@ipld/car/README.md +0 -1132
  26. package/src/@ipld/car/dist/index.min.js +0 -5
  27. package/src/@ipld/car/dist/src/api.d.ts +0 -72
  28. package/src/@ipld/car/dist/src/api.d.ts.map +0 -1
  29. package/src/@ipld/car/dist/src/buffer-decoder.d.ts +0 -67
  30. package/src/@ipld/car/dist/src/buffer-decoder.d.ts.map +0 -1
  31. package/src/@ipld/car/dist/src/buffer-reader-browser.d.ts +0 -116
  32. package/src/@ipld/car/dist/src/buffer-reader-browser.d.ts.map +0 -1
  33. package/src/@ipld/car/dist/src/buffer-reader.d.ts +0 -31
  34. package/src/@ipld/car/dist/src/buffer-reader.d.ts.map +0 -1
  35. package/src/@ipld/car/dist/src/buffer-writer.d.ts +0 -86
  36. package/src/@ipld/car/dist/src/buffer-writer.d.ts.map +0 -1
  37. package/src/@ipld/car/dist/src/coding.d.ts +0 -49
  38. package/src/@ipld/car/dist/src/coding.d.ts.map +0 -1
  39. package/src/@ipld/car/dist/src/decoder-common.d.ts +0 -43
  40. package/src/@ipld/car/dist/src/decoder-common.d.ts.map +0 -1
  41. package/src/@ipld/car/dist/src/decoder.d.ts +0 -87
  42. package/src/@ipld/car/dist/src/decoder.d.ts.map +0 -1
  43. package/src/@ipld/car/dist/src/encoder.d.ts +0 -17
  44. package/src/@ipld/car/dist/src/encoder.d.ts.map +0 -1
  45. package/src/@ipld/car/dist/src/header-validator.d.ts +0 -5
  46. package/src/@ipld/car/dist/src/header-validator.d.ts.map +0 -1
  47. package/src/@ipld/car/dist/src/index-browser.d.ts +0 -10
  48. package/src/@ipld/car/dist/src/index-browser.d.ts.map +0 -1
  49. package/src/@ipld/car/dist/src/index.d.ts +0 -11
  50. package/src/@ipld/car/dist/src/index.d.ts.map +0 -1
  51. package/src/@ipld/car/dist/src/indexed-reader-browser.d.ts +0 -5
  52. package/src/@ipld/car/dist/src/indexed-reader-browser.d.ts.map +0 -1
  53. package/src/@ipld/car/dist/src/indexed-reader.d.ts +0 -152
  54. package/src/@ipld/car/dist/src/indexed-reader.d.ts.map +0 -1
  55. package/src/@ipld/car/dist/src/indexer.d.ts +0 -95
  56. package/src/@ipld/car/dist/src/indexer.d.ts.map +0 -1
  57. package/src/@ipld/car/dist/src/iterator-channel.d.ts +0 -7
  58. package/src/@ipld/car/dist/src/iterator-channel.d.ts.map +0 -1
  59. package/src/@ipld/car/dist/src/iterator.d.ts +0 -174
  60. package/src/@ipld/car/dist/src/iterator.d.ts.map +0 -1
  61. package/src/@ipld/car/dist/src/reader-browser.d.ts +0 -151
  62. package/src/@ipld/car/dist/src/reader-browser.d.ts.map +0 -1
  63. package/src/@ipld/car/dist/src/reader.d.ts +0 -35
  64. package/src/@ipld/car/dist/src/reader.d.ts.map +0 -1
  65. package/src/@ipld/car/dist/src/writer-browser.d.ts +0 -155
  66. package/src/@ipld/car/dist/src/writer-browser.d.ts.map +0 -1
  67. package/src/@ipld/car/dist/src/writer.d.ts +0 -45
  68. package/src/@ipld/car/dist/src/writer.d.ts.map +0 -1
  69. package/src/@ipld/car/src/api.ts +0 -90
  70. package/src/@ipld/car/src/buffer-decoder.js +0 -213
  71. package/src/@ipld/car/src/buffer-reader-browser.js +0 -144
  72. package/src/@ipld/car/src/buffer-reader.js +0 -51
  73. package/src/@ipld/car/src/buffer-writer.js +0 -286
  74. package/src/@ipld/car/src/coding.ts +0 -68
  75. package/src/@ipld/car/src/decoder-common.js +0 -82
  76. package/src/@ipld/car/src/decoder.js +0 -347
  77. package/src/@ipld/car/src/encoder.js +0 -76
  78. package/src/@ipld/car/src/header-validator.js +0 -214
  79. package/src/@ipld/car/src/header.ipldsch +0 -18
  80. package/src/@ipld/car/src/index-browser.js +0 -18
  81. package/src/@ipld/car/src/index.js +0 -21
  82. package/src/@ipld/car/src/indexed-reader-browser.js +0 -7
  83. package/src/@ipld/car/src/indexed-reader.js +0 -211
  84. package/src/@ipld/car/src/indexer.js +0 -130
  85. package/src/@ipld/car/src/iterator-channel.js +0 -91
  86. package/src/@ipld/car/src/iterator.js +0 -267
  87. package/src/@ipld/car/src/reader-browser.js +0 -194
  88. package/src/@ipld/car/src/reader.js +0 -73
  89. package/src/@ipld/car/src/writer-browser.js +0 -250
  90. package/src/@ipld/car/src/writer.js +0 -84
  91. package/src/@ipld/dag-cbor/LICENSE +0 -4
  92. package/src/@ipld/dag-cbor/README.md +0 -80
  93. package/src/@ipld/dag-cbor/dist/index.min.js +0 -3
  94. package/src/@ipld/dag-cbor/dist/src/index.d.ts +0 -67
  95. package/src/@ipld/dag-cbor/dist/src/index.d.ts.map +0 -1
  96. package/src/@ipld/dag-cbor/src/index.js +0 -147
  97. package/src/@ipld/dag-json/LICENSE +0 -4
  98. package/src/@ipld/dag-json/README.md +0 -58
  99. package/src/@ipld/dag-json/dist/index.min.js +0 -3
  100. package/src/@ipld/dag-json/dist/src/index.d.ts +0 -12
  101. package/src/@ipld/dag-json/dist/src/index.d.ts.map +0 -1
  102. package/src/@ipld/dag-json/src/index.js +0 -291
  103. package/src/cborg/.github/dependabot.yml +0 -16
  104. package/src/cborg/.github/workflows/test-and-release.yml +0 -52
  105. package/src/cborg/CHANGELOG.md +0 -513
  106. package/src/cborg/LICENSE +0 -13
  107. package/src/cborg/README.md +0 -515
  108. package/src/cborg/bench/bench.js +0 -117
  109. package/src/cborg/bench/json.js +0 -124
  110. package/src/cborg/bench/package.json +0 -8
  111. package/src/cborg/cborg/bin.js +0 -189
  112. package/src/cborg/cborg/common.js +0 -28
  113. package/src/cborg/cborg/decode.js +0 -211
  114. package/src/cborg/cborg/diagnostic.js +0 -158
  115. package/src/cborg/cborg/diagnostic_test.js +0 -117
  116. package/src/cborg/cborg/encode.js +0 -466
  117. package/src/cborg/cborg/index.js +0 -33
  118. package/src/cborg/cborg/is.js +0 -106
  119. package/src/cborg/cborg/length.js +0 -62
  120. package/src/cborg/example-bytestrings.js +0 -180
  121. package/src/cborg/example-json.js +0 -6
  122. package/src/cborg/example.js +0 -5
  123. package/src/cborg/interface.ts +0 -59
  124. package/src/cborg/json/decode.js +0 -462
  125. package/src/cborg/json/encode.js +0 -302
  126. package/src/cborg/json/json.js +0 -4
  127. package/src/cborg/taglib.js +0 -75
  128. package/src/cborg/test/appendix_a.js +0 -647
  129. package/src/cborg/test/common.js +0 -18
  130. package/src/cborg/test/node-test-bin.js +0 -402
  131. package/src/cborg/test/noop-bin-test.js +0 -3
  132. package/src/cborg/test/test-0uint.js +0 -103
  133. package/src/cborg/test/test-1negint.js +0 -96
  134. package/src/cborg/test/test-2bytes.js +0 -198
  135. package/src/cborg/test/test-3string.js +0 -136
  136. package/src/cborg/test/test-4array.js +0 -93
  137. package/src/cborg/test/test-5map.js +0 -284
  138. package/src/cborg/test/test-6tag.js +0 -84
  139. package/src/cborg/test/test-7float.js +0 -131
  140. package/src/cborg/test/test-bl.js +0 -37
  141. package/src/cborg/test/test-cbor-vectors.js +0 -107
  142. package/src/cborg/test/test-decode-errors.js +0 -65
  143. package/src/cborg/test/test-fuzz.js +0 -42
  144. package/src/cborg/test/test-json.js +0 -219
  145. package/src/cborg/test/test-length.js +0 -65
  146. package/src/cborg/test/test-partial.js +0 -111
  147. package/src/cborg/tsconfig.json +0 -48
  148. package/src/cborg/types/cborg/decode.d.ts +0 -43
  149. package/src/cborg/types/cborg/decode.d.ts.map +0 -1
  150. package/src/cborg/types/cborg/encode.d.ts +0 -51
  151. package/src/cborg/types/cborg/encode.d.ts.map +0 -1
  152. package/src/cborg/types/cborg/index.d.ts +0 -26
  153. package/src/cborg/types/cborg/index.d.ts.map +0 -1
  154. package/src/cborg/types/cborg/is.d.ts +0 -6
  155. package/src/cborg/types/cborg/is.d.ts.map +0 -1
  156. package/src/cborg/types/example.d.ts +0 -2
  157. package/src/cborg/types/example.d.ts.map +0 -1
  158. package/src/cborg/types/interface.d.ts +0 -49
  159. package/src/cborg/types/interface.d.ts.map +0 -1
  160. package/src/cborg/types/json/decode.d.ts +0 -67
  161. package/src/cborg/types/json/decode.d.ts.map +0 -1
  162. package/src/cborg/types/json/encode.d.ts +0 -11
  163. package/src/cborg/types/json/encode.d.ts.map +0 -1
  164. package/src/cborg/types/json/json.d.ts +0 -6
  165. package/src/cborg/types/json/json.d.ts.map +0 -1
  166. package/src/cborg/types/taglib.d.ts +0 -18
  167. package/src/cborg/types/taglib.d.ts.map +0 -1
  168. package/src/cborg/types/tsconfig.tsbuildinfo +0 -1
  169. package/src/cborg/types/utils/0uint.d.ts +0 -102
  170. package/src/cborg/types/utils/0uint.d.ts.map +0 -1
  171. package/src/cborg/types/utils/1negint.d.ts +0 -59
  172. package/src/cborg/types/utils/1negint.d.ts.map +0 -1
  173. package/src/cborg/types/utils/2bytes.d.ts +0 -69
  174. package/src/cborg/types/utils/2bytes.d.ts.map +0 -1
  175. package/src/cborg/types/utils/3string.d.ts +0 -46
  176. package/src/cborg/types/utils/3string.d.ts.map +0 -1
  177. package/src/cborg/types/utils/4array.d.ts +0 -66
  178. package/src/cborg/types/utils/4array.d.ts.map +0 -1
  179. package/src/cborg/types/utils/5map.d.ts +0 -66
  180. package/src/cborg/types/utils/5map.d.ts.map +0 -1
  181. package/src/cborg/types/utils/6tag.d.ts +0 -62
  182. package/src/cborg/types/utils/6tag.d.ts.map +0 -1
  183. package/src/cborg/types/utils/7float.d.ts +0 -60
  184. package/src/cborg/types/utils/7float.d.ts.map +0 -1
  185. package/src/cborg/types/utils/bl.d.ts +0 -26
  186. package/src/cborg/types/utils/bl.d.ts.map +0 -1
  187. package/src/cborg/types/utils/byte-utils.d.ts +0 -53
  188. package/src/cborg/types/utils/byte-utils.d.ts.map +0 -1
  189. package/src/cborg/types/utils/common.d.ts +0 -8
  190. package/src/cborg/types/utils/common.d.ts.map +0 -1
  191. package/src/cborg/types/utils/index.d.ts +0 -13
  192. package/src/cborg/types/utils/index.d.ts.map +0 -1
  193. package/src/cborg/types/utils/jump.d.ts +0 -16
  194. package/src/cborg/types/utils/jump.d.ts.map +0 -1
  195. package/src/cborg/types/utils/token.d.ts +0 -59
  196. package/src/cborg/types/utils/token.d.ts.map +0 -1
  197. package/src/cborg/utils/0uint.js +0 -229
  198. package/src/cborg/utils/1negint.js +0 -111
  199. package/src/cborg/utils/2bytes.js +0 -135
  200. package/src/cborg/utils/3string.js +0 -90
  201. package/src/cborg/utils/4array.js +0 -114
  202. package/src/cborg/utils/5map.js +0 -113
  203. package/src/cborg/utils/6tag.js +0 -81
  204. package/src/cborg/utils/7float.js +0 -310
  205. package/src/cborg/utils/bl.js +0 -124
  206. package/src/cborg/utils/byte-utils.js +0 -417
  207. package/src/cborg/utils/common.js +0 -11
  208. package/src/cborg/utils/index.js +0 -12
  209. package/src/cborg/utils/jump.js +0 -222
  210. package/src/cborg/utils/token.js +0 -76
  211. package/src/ipfs-unixfs-exporter/LICENSE +0 -4
  212. package/src/ipfs-unixfs-exporter/README.md +0 -105
  213. package/src/ipfs-unixfs-exporter/dist/index.min.js +0 -3
  214. package/src/ipfs-unixfs-exporter/dist/src/errors.d.ts +0 -57
  215. package/src/ipfs-unixfs-exporter/dist/src/errors.d.ts.map +0 -1
  216. package/src/ipfs-unixfs-exporter/dist/src/errors.js +0 -73
  217. package/src/ipfs-unixfs-exporter/dist/src/errors.js.map +0 -1
  218. package/src/ipfs-unixfs-exporter/dist/src/index.d.ts +0 -355
  219. package/src/ipfs-unixfs-exporter/dist/src/index.d.ts.map +0 -1
  220. package/src/ipfs-unixfs-exporter/dist/src/index.js +0 -197
  221. package/src/ipfs-unixfs-exporter/dist/src/index.js.map +0 -1
  222. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.d.ts +0 -4
  223. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.d.ts.map +0 -1
  224. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.js +0 -9
  225. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.js.map +0 -1
  226. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.d.ts +0 -4
  227. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.d.ts.map +0 -1
  228. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.js +0 -9
  229. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.js.map +0 -1
  230. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.d.ts +0 -4
  231. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.d.ts.map +0 -1
  232. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.js +0 -38
  233. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.js.map +0 -1
  234. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.d.ts +0 -4
  235. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.d.ts.map +0 -1
  236. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.js +0 -30
  237. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.js.map +0 -1
  238. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.d.ts +0 -4
  239. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.d.ts.map +0 -1
  240. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.js +0 -9
  241. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.js.map +0 -1
  242. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.d.ts +0 -4
  243. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.d.ts.map +0 -1
  244. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.js +0 -37
  245. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.js.map +0 -1
  246. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.d.ts +0 -4
  247. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.d.ts.map +0 -1
  248. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.js +0 -29
  249. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.js.map +0 -1
  250. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.d.ts +0 -4
  251. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.d.ts.map +0 -1
  252. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.js +0 -153
  253. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.js.map +0 -1
  254. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.d.ts +0 -4
  255. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.d.ts.map +0 -1
  256. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.js +0 -59
  257. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.js.map +0 -1
  258. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.d.ts +0 -4
  259. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.d.ts.map +0 -1
  260. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.js +0 -25
  261. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.js.map +0 -1
  262. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.d.ts +0 -4
  263. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.d.ts.map +0 -1
  264. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.js +0 -104
  265. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.js.map +0 -1
  266. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.d.ts +0 -3
  267. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.d.ts.map +0 -1
  268. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.js +0 -20
  269. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.js.map +0 -1
  270. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.d.ts +0 -6
  271. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.d.ts.map +0 -1
  272. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.js +0 -116
  273. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.js.map +0 -1
  274. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.d.ts +0 -4
  275. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.d.ts.map +0 -1
  276. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.js +0 -57
  277. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.js.map +0 -1
  278. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.d.ts +0 -6
  279. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.d.ts.map +0 -1
  280. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.js +0 -30
  281. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.js.map +0 -1
  282. package/src/ipfs-unixfs-exporter/dist/typedoc-urls.json +0 -58
  283. package/src/ipfs-unixfs-exporter/src/errors.ts +0 -87
  284. package/src/ipfs-unixfs-exporter/src/index.ts +0 -498
  285. package/src/ipfs-unixfs-exporter/src/resolvers/dag-cbor.ts +0 -12
  286. package/src/ipfs-unixfs-exporter/src/resolvers/dag-json.ts +0 -12
  287. package/src/ipfs-unixfs-exporter/src/resolvers/identity.ts +0 -49
  288. package/src/ipfs-unixfs-exporter/src/resolvers/index.ts +0 -35
  289. package/src/ipfs-unixfs-exporter/src/resolvers/json.ts +0 -12
  290. package/src/ipfs-unixfs-exporter/src/resolvers/raw.ts +0 -49
  291. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/directory.ts +0 -39
  292. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/file.ts +0 -198
  293. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/hamt-sharded-directory.ts +0 -76
  294. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/raw.ts +0 -37
  295. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/index.ts +0 -121
  296. package/src/ipfs-unixfs-exporter/src/utils/extract-data-from-block.ts +0 -24
  297. package/src/ipfs-unixfs-exporter/src/utils/find-cid-in-shard.ts +0 -149
  298. package/src/ipfs-unixfs-exporter/src/utils/resolve-object-path.ts +0 -62
  299. package/src/ipfs-unixfs-exporter/src/utils/validate-offset-and-length.ts +0 -38
@@ -1,39 +0,0 @@
1
- import filter from 'it-filter'
2
- import map from 'it-map'
3
- import parallel from 'it-parallel'
4
- import { pipe } from 'it-pipe'
5
- import { CustomProgressEvent } from 'progress-events'
6
- import type { ExporterOptions, ExportWalk, UnixfsV1DirectoryContent, UnixfsV1Resolver } from '../../../index.js'
7
-
8
- const directoryContent: UnixfsV1Resolver = (cid, node, unixfs, path, resolve, depth, blockstore) => {
9
- async function * yieldDirectoryContent (options: ExporterOptions = {}): UnixfsV1DirectoryContent {
10
- const offset = options.offset ?? 0
11
- const length = options.length ?? node.Links.length
12
- const links = node.Links.slice(offset, length)
13
-
14
- options.onProgress?.(new CustomProgressEvent<ExportWalk>('unixfs:exporter:walk:directory', {
15
- cid
16
- }))
17
-
18
- yield * pipe(
19
- links,
20
- source => map(source, link => {
21
- return async () => {
22
- const linkName = link.Name ?? ''
23
- const linkPath = `${path}/${linkName}`
24
- const result = await resolve(link.Hash, linkName, linkPath, [], depth + 1, blockstore, options)
25
- return result.entry
26
- }
27
- }),
28
- source => parallel(source, {
29
- ordered: true,
30
- concurrency: options.blockReadConcurrency
31
- }),
32
- source => filter(source, entry => entry != null)
33
- )
34
- }
35
-
36
- return yieldDirectoryContent
37
- }
38
-
39
- export default directoryContent
@@ -1,198 +0,0 @@
1
- import * as dagPb from '@ipld/dag-pb'
2
- import { UnixFS } from 'ipfs-unixfs'
3
- import map from 'it-map'
4
- import parallel from 'it-parallel'
5
- import { pipe } from 'it-pipe'
6
- import { type Pushable, pushable } from 'it-pushable'
7
- import * as raw from 'multiformats/codecs/raw'
8
- import PQueue from 'p-queue'
9
- import { CustomProgressEvent } from 'progress-events'
10
- import { NotUnixFSError, OverReadError, UnderReadError } from '../../../errors.js'
11
- import extractDataFromBlock from '../../../utils/extract-data-from-block.js'
12
- import validateOffsetAndLength from '../../../utils/validate-offset-and-length.js'
13
- import type { ExporterOptions, UnixfsV1FileContent, UnixfsV1Resolver, ReadableStorage, ExportProgress, ExportWalk } from '../../../index.js'
14
-
15
- async function walkDAG (blockstore: ReadableStorage, node: dagPb.PBNode | Uint8Array, queue: Pushable<Uint8Array>, streamPosition: bigint, start: bigint, end: bigint, options: ExporterOptions): Promise<void> {
16
- // a `raw` node
17
- if (node instanceof Uint8Array) {
18
- const buf = extractDataFromBlock(node, streamPosition, start, end)
19
-
20
- queue.push(buf)
21
-
22
- return
23
- }
24
-
25
- if (node.Data == null) {
26
- throw new NotUnixFSError('no data in PBNode')
27
- }
28
-
29
- let file: UnixFS
30
-
31
- try {
32
- file = UnixFS.unmarshal(node.Data)
33
- } catch (err: any) {
34
- throw new NotUnixFSError(err.message)
35
- }
36
-
37
- // might be a unixfs `raw` node or have data on intermediate nodes
38
- if (file.data != null) {
39
- const data = file.data
40
- const buf = extractDataFromBlock(data, streamPosition, start, end)
41
-
42
- queue.push(buf)
43
-
44
- streamPosition += BigInt(buf.byteLength)
45
- }
46
-
47
- const childOps: Array<{ link: dagPb.PBLink, blockStart: bigint }> = []
48
-
49
- if (node.Links.length !== file.blockSizes.length) {
50
- throw new NotUnixFSError('Inconsistent block sizes and dag links')
51
- }
52
-
53
- for (let i = 0; i < node.Links.length; i++) {
54
- const childLink = node.Links[i]
55
- const childStart = streamPosition // inclusive
56
- const childEnd = childStart + file.blockSizes[i] // exclusive
57
-
58
- if ((start >= childStart && start < childEnd) || // child has offset byte
59
- (end >= childStart && end <= childEnd) || // child has end byte
60
- (start < childStart && end > childEnd)) { // child is between offset and end bytes
61
- childOps.push({
62
- link: childLink,
63
- blockStart: streamPosition
64
- })
65
- }
66
-
67
- streamPosition = childEnd
68
-
69
- if (streamPosition > end) {
70
- break
71
- }
72
- }
73
-
74
- await pipe(
75
- childOps,
76
- (source) => map(source, (op) => {
77
- return async () => {
78
- const block = await blockstore.get(op.link.Hash, options)
79
-
80
- return {
81
- ...op,
82
- block
83
- }
84
- }
85
- }),
86
- (source) => parallel(source, {
87
- ordered: true,
88
- concurrency: options.blockReadConcurrency
89
- }),
90
- async (source) => {
91
- for await (const { link, block, blockStart } of source) {
92
- let child: dagPb.PBNode | Uint8Array
93
- switch (link.Hash.code) {
94
- case dagPb.code:
95
- child = dagPb.decode(block)
96
- break
97
- case raw.code:
98
- child = block
99
- break
100
- default:
101
- queue.end(new NotUnixFSError(`Unsupported codec: ${link.Hash.code}`))
102
- return
103
- }
104
-
105
- // create a queue for this child - we use a queue instead of recursion
106
- // to avoid overflowing the stack
107
- const childQueue = new PQueue({
108
- concurrency: 1
109
- })
110
- // if any of the child jobs error, end the read queue with the error
111
- childQueue.on('error', error => {
112
- queue.end(error)
113
- })
114
-
115
- // if the job rejects the 'error' event will be emitted on the child queue
116
- void childQueue.add(async () => {
117
- options.onProgress?.(new CustomProgressEvent<ExportWalk>('unixfs:exporter:walk:file', {
118
- cid: link.Hash
119
- }))
120
-
121
- await walkDAG(blockstore, child, queue, blockStart, start, end, options)
122
- })
123
-
124
- // wait for this child to complete before moving on to the next
125
- await childQueue.onIdle()
126
- }
127
- }
128
- )
129
-
130
- if (streamPosition >= end) {
131
- queue.end()
132
- }
133
- }
134
-
135
- const fileContent: UnixfsV1Resolver = (cid, node, unixfs, path, resolve, depth, blockstore) => {
136
- async function * yieldFileContent (options: ExporterOptions = {}): UnixfsV1FileContent {
137
- const fileSize = unixfs.fileSize()
138
-
139
- if (fileSize === undefined) {
140
- throw new Error('File was a directory')
141
- }
142
-
143
- const {
144
- start,
145
- end
146
- } = validateOffsetAndLength(fileSize, options.offset, options.length)
147
-
148
- if (end === 0n) {
149
- return
150
- }
151
-
152
- let read = 0n
153
- const wanted = end - start
154
- const queue = pushable()
155
-
156
- options.onProgress?.(new CustomProgressEvent<ExportWalk>('unixfs:exporter:walk:file', {
157
- cid
158
- }))
159
-
160
- void walkDAG(blockstore, node, queue, 0n, start, end, options)
161
- .catch(err => {
162
- queue.end(err)
163
- })
164
-
165
- for await (const buf of queue) {
166
- if (buf == null) {
167
- continue
168
- }
169
-
170
- read += BigInt(buf.byteLength)
171
-
172
- if (read > wanted) {
173
- queue.end()
174
- throw new OverReadError('Read too many bytes - the file size reported by the UnixFS data in the root node may be incorrect')
175
- }
176
-
177
- if (read === wanted) {
178
- queue.end()
179
- }
180
-
181
- options.onProgress?.(new CustomProgressEvent<ExportProgress>('unixfs:exporter:progress:unixfs:file', {
182
- bytesRead: read,
183
- totalBytes: wanted,
184
- fileSize
185
- }))
186
-
187
- yield buf
188
- }
189
-
190
- if (read < wanted) {
191
- throw new UnderReadError('Traversed entire DAG but did not read enough bytes')
192
- }
193
- }
194
-
195
- return yieldFileContent
196
- }
197
-
198
- export default fileContent
@@ -1,76 +0,0 @@
1
- import { decode, type PBNode } from '@ipld/dag-pb'
2
- import { UnixFS } from 'ipfs-unixfs'
3
- import map from 'it-map'
4
- import parallel from 'it-parallel'
5
- import { pipe } from 'it-pipe'
6
- import { CustomProgressEvent } from 'progress-events'
7
- import { NotUnixFSError } from '../../../errors.js'
8
- import type { ExporterOptions, Resolve, UnixfsV1DirectoryContent, UnixfsV1Resolver, ReadableStorage, ExportWalk } from '../../../index.js'
9
-
10
- const hamtShardedDirectoryContent: UnixfsV1Resolver = (cid, node, unixfs, path, resolve, depth, blockstore) => {
11
- function yieldHamtDirectoryContent (options: ExporterOptions = {}): UnixfsV1DirectoryContent {
12
- options.onProgress?.(new CustomProgressEvent<ExportWalk>('unixfs:exporter:walk:hamt-sharded-directory', {
13
- cid
14
- }))
15
-
16
- return listDirectory(node, path, resolve, depth, blockstore, options)
17
- }
18
-
19
- return yieldHamtDirectoryContent
20
- }
21
-
22
- async function * listDirectory (node: PBNode, path: string, resolve: Resolve, depth: number, blockstore: ReadableStorage, options: ExporterOptions): UnixfsV1DirectoryContent {
23
- const links = node.Links
24
-
25
- if (node.Data == null) {
26
- throw new NotUnixFSError('no data in PBNode')
27
- }
28
-
29
- let dir: UnixFS
30
- try {
31
- dir = UnixFS.unmarshal(node.Data)
32
- } catch (err: any) {
33
- throw new NotUnixFSError(err.message)
34
- }
35
-
36
- if (dir.fanout == null) {
37
- throw new NotUnixFSError('missing fanout')
38
- }
39
-
40
- const padLength = (dir.fanout - 1n).toString(16).length
41
-
42
- const results = pipe(
43
- links,
44
- source => map(source, link => {
45
- return async () => {
46
- const name = link.Name != null ? link.Name.substring(padLength) : null
47
-
48
- if (name != null && name !== '') {
49
- const result = await resolve(link.Hash, name, `${path}/${name}`, [], depth + 1, blockstore, options)
50
-
51
- return { entries: result.entry == null ? [] : [result.entry] }
52
- } else {
53
- // descend into subshard
54
- const block = await blockstore.get(link.Hash, options)
55
- node = decode(block)
56
-
57
- options.onProgress?.(new CustomProgressEvent<ExportWalk>('unixfs:exporter:walk:hamt-sharded-directory', {
58
- cid: link.Hash
59
- }))
60
-
61
- return { entries: listDirectory(node, path, resolve, depth, blockstore, options) }
62
- }
63
- }
64
- }),
65
- source => parallel(source, {
66
- ordered: true,
67
- concurrency: options.blockReadConcurrency
68
- })
69
- )
70
-
71
- for await (const { entries } of results) {
72
- yield * entries
73
- }
74
- }
75
-
76
- export default hamtShardedDirectoryContent
@@ -1,37 +0,0 @@
1
- import { CustomProgressEvent } from 'progress-events'
2
- import extractDataFromBlock from '../../../utils/extract-data-from-block.js'
3
- import validateOffsetAndLength from '../../../utils/validate-offset-and-length.js'
4
- import type { ExporterOptions, ExportProgress, ExportWalk, UnixfsV1Resolver } from '../../../index.js'
5
-
6
- const rawContent: UnixfsV1Resolver = (cid, node, unixfs, path, resolve, depth, blockstore) => {
7
- function * yieldRawContent (options: ExporterOptions = {}): Generator<Uint8Array, void, undefined> {
8
- if (unixfs.data == null) {
9
- throw new Error('Raw block had no data')
10
- }
11
-
12
- const size = unixfs.data.length
13
-
14
- const {
15
- start,
16
- end
17
- } = validateOffsetAndLength(size, options.offset, options.length)
18
-
19
- options.onProgress?.(new CustomProgressEvent<ExportWalk>('unixfs:exporter:walk:raw', {
20
- cid
21
- }))
22
-
23
- const buf = extractDataFromBlock(unixfs.data, 0n, start, end)
24
-
25
- options.onProgress?.(new CustomProgressEvent<ExportProgress>('unixfs:exporter:progress:unixfs:raw', {
26
- bytesRead: BigInt(buf.byteLength),
27
- totalBytes: end - start,
28
- fileSize: BigInt(unixfs.data.byteLength)
29
- }))
30
-
31
- yield buf
32
- }
33
-
34
- return yieldRawContent
35
- }
36
-
37
- export default rawContent
@@ -1,121 +0,0 @@
1
- import { decode, type PBNode } from '@ipld/dag-pb'
2
- import { UnixFS } from 'ipfs-unixfs'
3
- import { NotFoundError, NotUnixFSError } from '../../errors.js'
4
- import findShardCid from '../../utils/find-cid-in-shard.js'
5
- import contentDirectory from './content/directory.js'
6
- import contentFile from './content/file.js'
7
- import contentHamtShardedDirectory from './content/hamt-sharded-directory.js'
8
- import type { Resolver, UnixfsV1Resolver } from '../../index.js'
9
- import type { CID } from 'multiformats/cid'
10
-
11
- const findLinkCid = (node: PBNode, name: string): CID | undefined => {
12
- const link = node.Links.find(link => link.Name === name)
13
-
14
- return link?.Hash
15
- }
16
-
17
- const contentExporters: Record<string, UnixfsV1Resolver> = {
18
- raw: contentFile,
19
- file: contentFile,
20
- directory: contentDirectory,
21
- 'hamt-sharded-directory': contentHamtShardedDirectory,
22
- metadata: (cid, node, unixfs, path, resolve, depth, blockstore) => {
23
- return () => []
24
- },
25
- symlink: (cid, node, unixfs, path, resolve, depth, blockstore) => {
26
- return () => []
27
- }
28
- }
29
-
30
- // @ts-expect-error types are wrong
31
- const unixFsResolver: Resolver = async (cid, name, path, toResolve, resolve, depth, blockstore, options) => {
32
- const block = await blockstore.get(cid, options)
33
- const node = decode(block)
34
- let unixfs
35
- let next
36
-
37
- if (name == null) {
38
- name = cid.toString()
39
- }
40
-
41
- if (node.Data == null) {
42
- throw new NotUnixFSError('no data in PBNode')
43
- }
44
-
45
- try {
46
- unixfs = UnixFS.unmarshal(node.Data)
47
- } catch (err: any) {
48
- // non-UnixFS dag-pb node? It could happen.
49
- throw new NotUnixFSError(err.message)
50
- }
51
-
52
- if (path == null) {
53
- path = name
54
- }
55
-
56
- if (toResolve.length > 0) {
57
- let linkCid
58
-
59
- if (unixfs?.type === 'hamt-sharded-directory') {
60
- // special case - unixfs v1 hamt shards
61
- linkCid = await findShardCid(node, toResolve[0], blockstore)
62
- } else {
63
- linkCid = findLinkCid(node, toResolve[0])
64
- }
65
-
66
- if (linkCid == null) {
67
- throw new NotFoundError('file does not exist')
68
- }
69
-
70
- // remove the path component we have resolved
71
- const nextName = toResolve.shift()
72
- const nextPath = `${path}/${nextName}`
73
-
74
- next = {
75
- cid: linkCid,
76
- toResolve,
77
- name: nextName ?? '',
78
- path: nextPath
79
- }
80
- }
81
-
82
- const content = contentExporters[unixfs.type](cid, node, unixfs, path, resolve, depth, blockstore)
83
-
84
- if (content == null) {
85
- throw new NotFoundError('could not find content exporter')
86
- }
87
-
88
- if (unixfs.isDirectory()) {
89
- return {
90
- entry: {
91
- type: 'directory',
92
- name,
93
- path,
94
- cid,
95
- content,
96
- unixfs,
97
- depth,
98
- node,
99
- size: unixfs.fileSize()
100
- },
101
- next
102
- }
103
- }
104
-
105
- return {
106
- entry: {
107
- type: 'file',
108
- name,
109
- path,
110
- cid,
111
- content,
112
- unixfs,
113
- depth,
114
- node,
115
- size: unixfs.fileSize()
116
- },
117
- next
118
- }
119
- }
120
-
121
- export default unixFsResolver
@@ -1,24 +0,0 @@
1
- function extractDataFromBlock (block: Uint8Array, blockStart: bigint, requestedStart: bigint, requestedEnd: bigint): Uint8Array {
2
- const blockLength = BigInt(block.length)
3
- const blockEnd = BigInt(blockStart + blockLength)
4
-
5
- if (requestedStart >= blockEnd || requestedEnd < blockStart) {
6
- // If we are looking for a byte range that is starts after the start of the block,
7
- // return an empty block. This can happen when internal nodes contain data
8
- return new Uint8Array(0)
9
- }
10
-
11
- if (requestedEnd >= blockStart && requestedEnd < blockEnd) {
12
- // If the end byte is in the current block, truncate the block to the end byte
13
- block = block.subarray(0, Number(requestedEnd - blockStart))
14
- }
15
-
16
- if (requestedStart >= blockStart && requestedStart < blockEnd) {
17
- // If the start byte is in the current block, skip to the start byte
18
- block = block.subarray(Number(requestedStart - blockStart))
19
- }
20
-
21
- return block
22
- }
23
-
24
- export default extractDataFromBlock
@@ -1,149 +0,0 @@
1
- import { decode, type PBLink, type PBNode } from '@ipld/dag-pb'
2
- import { murmur3128 } from '@multiformats/murmur3'
3
- import { Bucket, type BucketPosition, createHAMT } from 'hamt-sharding'
4
- import { UnixFS } from 'ipfs-unixfs'
5
- import { NotUnixFSError } from '../errors.js'
6
- import type { ExporterOptions, ShardTraversalContext, ReadableStorage } from '../index.js'
7
- import type { CID } from 'multiformats/cid'
8
-
9
- // FIXME: this is copy/pasted from ipfs-unixfs-importer/src/options.js
10
- const hashFn = async function (buf: Uint8Array): Promise<Uint8Array> {
11
- return (await murmur3128.encode(buf))
12
- // Murmur3 outputs 128 bit but, accidentally, IPFS Go's
13
- // implementation only uses the first 64, so we must do the same
14
- // for parity..
15
- .slice(0, 8)
16
- // Invert buffer because that's how Go impl does it
17
- .reverse()
18
- }
19
-
20
- const addLinksToHamtBucket = async (links: PBLink[], bucket: Bucket<boolean>, rootBucket: Bucket<boolean>): Promise<void> => {
21
- const padLength = (bucket.tableSize() - 1).toString(16).length
22
- await Promise.all(
23
- links.map(async link => {
24
- if (link.Name == null) {
25
- // TODO(@rvagg): what do? this is technically possible
26
- throw new Error('Unexpected Link without a Name')
27
- }
28
- if (link.Name.length === padLength) {
29
- const pos = parseInt(link.Name, 16)
30
-
31
- bucket._putObjectAt(pos, new Bucket({
32
- hash: rootBucket._options.hash,
33
- bits: rootBucket._options.bits
34
- }, bucket, pos))
35
- return
36
- }
37
-
38
- await rootBucket.put(link.Name.substring(2), true)
39
- })
40
- )
41
- }
42
-
43
- const toPrefix = (position: number, padLength: number): string => {
44
- return position
45
- .toString(16)
46
- .toUpperCase()
47
- .padStart(padLength, '0')
48
- .substring(0, padLength)
49
- }
50
-
51
- const toBucketPath = (position: BucketPosition<boolean>): Array<Bucket<boolean>> => {
52
- let bucket = position.bucket
53
- const path = []
54
-
55
- while (bucket._parent != null) {
56
- path.push(bucket)
57
-
58
- bucket = bucket._parent
59
- }
60
-
61
- path.push(bucket)
62
-
63
- return path.reverse()
64
- }
65
-
66
- const findShardCid = async (node: PBNode, name: string, blockstore: ReadableStorage, context?: ShardTraversalContext, options?: ExporterOptions): Promise<CID | undefined> => {
67
- if (context == null) {
68
- if (node.Data == null) {
69
- throw new NotUnixFSError('no data in PBNode')
70
- }
71
-
72
- let dir: UnixFS
73
- try {
74
- dir = UnixFS.unmarshal(node.Data)
75
- } catch (err: any) {
76
- throw new NotUnixFSError(err.message)
77
- }
78
-
79
- if (dir.type !== 'hamt-sharded-directory') {
80
- throw new NotUnixFSError('not a HAMT')
81
- }
82
- if (dir.fanout == null) {
83
- throw new NotUnixFSError('missing fanout')
84
- }
85
-
86
- const rootBucket = createHAMT<boolean>({
87
- hashFn,
88
- bits: Math.log2(Number(dir.fanout))
89
- })
90
-
91
- context = {
92
- rootBucket,
93
- hamtDepth: 1,
94
- lastBucket: rootBucket
95
- }
96
- }
97
-
98
- const padLength = (context.lastBucket.tableSize() - 1).toString(16).length
99
-
100
- await addLinksToHamtBucket(node.Links, context.lastBucket, context.rootBucket)
101
-
102
- const position = await context.rootBucket._findNewBucketAndPos(name)
103
- let prefix = toPrefix(position.pos, padLength)
104
- const bucketPath = toBucketPath(position)
105
-
106
- if (bucketPath.length > context.hamtDepth) {
107
- context.lastBucket = bucketPath[context.hamtDepth]
108
-
109
- prefix = toPrefix(context.lastBucket._posAtParent, padLength)
110
- }
111
-
112
- const link = node.Links.find(link => {
113
- if (link.Name == null) {
114
- return false
115
- }
116
-
117
- const entryPrefix = link.Name.substring(0, padLength)
118
- const entryName = link.Name.substring(padLength)
119
-
120
- if (entryPrefix !== prefix) {
121
- // not the entry or subshard we're looking for
122
- return false
123
- }
124
-
125
- if (entryName !== '' && entryName !== name) {
126
- // not the entry we're looking for
127
- return false
128
- }
129
-
130
- return true
131
- })
132
-
133
- if (link == null) {
134
- return
135
- }
136
-
137
- if (link.Name != null && link.Name.substring(padLength) === name) {
138
- return link.Hash
139
- }
140
-
141
- context.hamtDepth++
142
-
143
- const block = await blockstore.get(link.Hash, options)
144
- node = decode(block)
145
-
146
- return findShardCid(node, name, blockstore, context, options)
147
- }
148
-
149
- export default findShardCid