@fireproof/vendor 1.0.4 → 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 (302) 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/promise-fs-opts.d.ts +0 -30
  62. package/src/@ipld/car/dist/src/promise-fs-opts.d.ts.map +0 -1
  63. package/src/@ipld/car/dist/src/reader-browser.d.ts +0 -151
  64. package/src/@ipld/car/dist/src/reader-browser.d.ts.map +0 -1
  65. package/src/@ipld/car/dist/src/reader.d.ts +0 -39
  66. package/src/@ipld/car/dist/src/reader.d.ts.map +0 -1
  67. package/src/@ipld/car/dist/src/writer-browser.d.ts +0 -155
  68. package/src/@ipld/car/dist/src/writer-browser.d.ts.map +0 -1
  69. package/src/@ipld/car/dist/src/writer.d.ts +0 -44
  70. package/src/@ipld/car/dist/src/writer.d.ts.map +0 -1
  71. package/src/@ipld/car/src/api.ts +0 -90
  72. package/src/@ipld/car/src/buffer-decoder.js +0 -213
  73. package/src/@ipld/car/src/buffer-reader-browser.js +0 -144
  74. package/src/@ipld/car/src/buffer-reader.js +0 -51
  75. package/src/@ipld/car/src/buffer-writer.js +0 -286
  76. package/src/@ipld/car/src/coding.ts +0 -68
  77. package/src/@ipld/car/src/decoder-common.js +0 -82
  78. package/src/@ipld/car/src/decoder.js +0 -347
  79. package/src/@ipld/car/src/encoder.js +0 -76
  80. package/src/@ipld/car/src/header-validator.js +0 -214
  81. package/src/@ipld/car/src/header.ipldsch +0 -18
  82. package/src/@ipld/car/src/index-browser.js +0 -18
  83. package/src/@ipld/car/src/index.js +0 -21
  84. package/src/@ipld/car/src/indexed-reader-browser.js +0 -7
  85. package/src/@ipld/car/src/indexed-reader.js +0 -211
  86. package/src/@ipld/car/src/indexer.js +0 -130
  87. package/src/@ipld/car/src/iterator-channel.js +0 -91
  88. package/src/@ipld/car/src/iterator.js +0 -267
  89. package/src/@ipld/car/src/promise-fs-opts.js +0 -42
  90. package/src/@ipld/car/src/reader-browser.js +0 -194
  91. package/src/@ipld/car/src/reader.js +0 -53
  92. package/src/@ipld/car/src/writer-browser.js +0 -250
  93. package/src/@ipld/car/src/writer.js +0 -80
  94. package/src/@ipld/dag-cbor/LICENSE +0 -4
  95. package/src/@ipld/dag-cbor/README.md +0 -80
  96. package/src/@ipld/dag-cbor/dist/index.min.js +0 -3
  97. package/src/@ipld/dag-cbor/dist/src/index.d.ts +0 -67
  98. package/src/@ipld/dag-cbor/dist/src/index.d.ts.map +0 -1
  99. package/src/@ipld/dag-cbor/src/index.js +0 -147
  100. package/src/@ipld/dag-json/LICENSE +0 -4
  101. package/src/@ipld/dag-json/README.md +0 -58
  102. package/src/@ipld/dag-json/dist/index.min.js +0 -3
  103. package/src/@ipld/dag-json/dist/src/index.d.ts +0 -12
  104. package/src/@ipld/dag-json/dist/src/index.d.ts.map +0 -1
  105. package/src/@ipld/dag-json/src/index.js +0 -291
  106. package/src/cborg/.github/dependabot.yml +0 -16
  107. package/src/cborg/.github/workflows/test-and-release.yml +0 -52
  108. package/src/cborg/CHANGELOG.md +0 -513
  109. package/src/cborg/LICENSE +0 -13
  110. package/src/cborg/README.md +0 -515
  111. package/src/cborg/bench/bench.js +0 -117
  112. package/src/cborg/bench/json.js +0 -124
  113. package/src/cborg/bench/package.json +0 -8
  114. package/src/cborg/cborg/bin.js +0 -189
  115. package/src/cborg/cborg/common.js +0 -28
  116. package/src/cborg/cborg/decode.js +0 -211
  117. package/src/cborg/cborg/diagnostic.js +0 -158
  118. package/src/cborg/cborg/diagnostic_test.js +0 -117
  119. package/src/cborg/cborg/encode.js +0 -466
  120. package/src/cborg/cborg/index.js +0 -33
  121. package/src/cborg/cborg/is.js +0 -106
  122. package/src/cborg/cborg/length.js +0 -62
  123. package/src/cborg/example-bytestrings.js +0 -180
  124. package/src/cborg/example-json.js +0 -6
  125. package/src/cborg/example.js +0 -5
  126. package/src/cborg/interface.ts +0 -59
  127. package/src/cborg/json/decode.js +0 -462
  128. package/src/cborg/json/encode.js +0 -302
  129. package/src/cborg/json/json.js +0 -4
  130. package/src/cborg/taglib.js +0 -75
  131. package/src/cborg/test/appendix_a.js +0 -647
  132. package/src/cborg/test/common.js +0 -18
  133. package/src/cborg/test/node-test-bin.js +0 -402
  134. package/src/cborg/test/noop-bin-test.js +0 -3
  135. package/src/cborg/test/test-0uint.js +0 -103
  136. package/src/cborg/test/test-1negint.js +0 -96
  137. package/src/cborg/test/test-2bytes.js +0 -198
  138. package/src/cborg/test/test-3string.js +0 -136
  139. package/src/cborg/test/test-4array.js +0 -93
  140. package/src/cborg/test/test-5map.js +0 -284
  141. package/src/cborg/test/test-6tag.js +0 -84
  142. package/src/cborg/test/test-7float.js +0 -131
  143. package/src/cborg/test/test-bl.js +0 -37
  144. package/src/cborg/test/test-cbor-vectors.js +0 -107
  145. package/src/cborg/test/test-decode-errors.js +0 -65
  146. package/src/cborg/test/test-fuzz.js +0 -42
  147. package/src/cborg/test/test-json.js +0 -219
  148. package/src/cborg/test/test-length.js +0 -65
  149. package/src/cborg/test/test-partial.js +0 -111
  150. package/src/cborg/tsconfig.json +0 -48
  151. package/src/cborg/types/cborg/decode.d.ts +0 -43
  152. package/src/cborg/types/cborg/decode.d.ts.map +0 -1
  153. package/src/cborg/types/cborg/encode.d.ts +0 -51
  154. package/src/cborg/types/cborg/encode.d.ts.map +0 -1
  155. package/src/cborg/types/cborg/index.d.ts +0 -26
  156. package/src/cborg/types/cborg/index.d.ts.map +0 -1
  157. package/src/cborg/types/cborg/is.d.ts +0 -6
  158. package/src/cborg/types/cborg/is.d.ts.map +0 -1
  159. package/src/cborg/types/example.d.ts +0 -2
  160. package/src/cborg/types/example.d.ts.map +0 -1
  161. package/src/cborg/types/interface.d.ts +0 -49
  162. package/src/cborg/types/interface.d.ts.map +0 -1
  163. package/src/cborg/types/json/decode.d.ts +0 -67
  164. package/src/cborg/types/json/decode.d.ts.map +0 -1
  165. package/src/cborg/types/json/encode.d.ts +0 -11
  166. package/src/cborg/types/json/encode.d.ts.map +0 -1
  167. package/src/cborg/types/json/json.d.ts +0 -6
  168. package/src/cborg/types/json/json.d.ts.map +0 -1
  169. package/src/cborg/types/taglib.d.ts +0 -18
  170. package/src/cborg/types/taglib.d.ts.map +0 -1
  171. package/src/cborg/types/tsconfig.tsbuildinfo +0 -1
  172. package/src/cborg/types/utils/0uint.d.ts +0 -102
  173. package/src/cborg/types/utils/0uint.d.ts.map +0 -1
  174. package/src/cborg/types/utils/1negint.d.ts +0 -59
  175. package/src/cborg/types/utils/1negint.d.ts.map +0 -1
  176. package/src/cborg/types/utils/2bytes.d.ts +0 -69
  177. package/src/cborg/types/utils/2bytes.d.ts.map +0 -1
  178. package/src/cborg/types/utils/3string.d.ts +0 -46
  179. package/src/cborg/types/utils/3string.d.ts.map +0 -1
  180. package/src/cborg/types/utils/4array.d.ts +0 -66
  181. package/src/cborg/types/utils/4array.d.ts.map +0 -1
  182. package/src/cborg/types/utils/5map.d.ts +0 -66
  183. package/src/cborg/types/utils/5map.d.ts.map +0 -1
  184. package/src/cborg/types/utils/6tag.d.ts +0 -62
  185. package/src/cborg/types/utils/6tag.d.ts.map +0 -1
  186. package/src/cborg/types/utils/7float.d.ts +0 -60
  187. package/src/cborg/types/utils/7float.d.ts.map +0 -1
  188. package/src/cborg/types/utils/bl.d.ts +0 -26
  189. package/src/cborg/types/utils/bl.d.ts.map +0 -1
  190. package/src/cborg/types/utils/byte-utils.d.ts +0 -53
  191. package/src/cborg/types/utils/byte-utils.d.ts.map +0 -1
  192. package/src/cborg/types/utils/common.d.ts +0 -8
  193. package/src/cborg/types/utils/common.d.ts.map +0 -1
  194. package/src/cborg/types/utils/index.d.ts +0 -13
  195. package/src/cborg/types/utils/index.d.ts.map +0 -1
  196. package/src/cborg/types/utils/jump.d.ts +0 -16
  197. package/src/cborg/types/utils/jump.d.ts.map +0 -1
  198. package/src/cborg/types/utils/token.d.ts +0 -59
  199. package/src/cborg/types/utils/token.d.ts.map +0 -1
  200. package/src/cborg/utils/0uint.js +0 -229
  201. package/src/cborg/utils/1negint.js +0 -111
  202. package/src/cborg/utils/2bytes.js +0 -135
  203. package/src/cborg/utils/3string.js +0 -90
  204. package/src/cborg/utils/4array.js +0 -114
  205. package/src/cborg/utils/5map.js +0 -113
  206. package/src/cborg/utils/6tag.js +0 -81
  207. package/src/cborg/utils/7float.js +0 -310
  208. package/src/cborg/utils/bl.js +0 -124
  209. package/src/cborg/utils/byte-utils.js +0 -417
  210. package/src/cborg/utils/common.js +0 -11
  211. package/src/cborg/utils/index.js +0 -12
  212. package/src/cborg/utils/jump.js +0 -222
  213. package/src/cborg/utils/token.js +0 -76
  214. package/src/ipfs-unixfs-exporter/LICENSE +0 -4
  215. package/src/ipfs-unixfs-exporter/README.md +0 -105
  216. package/src/ipfs-unixfs-exporter/dist/index.min.js +0 -3
  217. package/src/ipfs-unixfs-exporter/dist/src/errors.d.ts +0 -57
  218. package/src/ipfs-unixfs-exporter/dist/src/errors.d.ts.map +0 -1
  219. package/src/ipfs-unixfs-exporter/dist/src/errors.js +0 -73
  220. package/src/ipfs-unixfs-exporter/dist/src/errors.js.map +0 -1
  221. package/src/ipfs-unixfs-exporter/dist/src/index.d.ts +0 -355
  222. package/src/ipfs-unixfs-exporter/dist/src/index.d.ts.map +0 -1
  223. package/src/ipfs-unixfs-exporter/dist/src/index.js +0 -197
  224. package/src/ipfs-unixfs-exporter/dist/src/index.js.map +0 -1
  225. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.d.ts +0 -4
  226. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.d.ts.map +0 -1
  227. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.js +0 -9
  228. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.js.map +0 -1
  229. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.d.ts +0 -4
  230. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.d.ts.map +0 -1
  231. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.js +0 -9
  232. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.js.map +0 -1
  233. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.d.ts +0 -4
  234. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.d.ts.map +0 -1
  235. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.js +0 -38
  236. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.js.map +0 -1
  237. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.d.ts +0 -4
  238. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.d.ts.map +0 -1
  239. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.js +0 -30
  240. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.js.map +0 -1
  241. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.d.ts +0 -4
  242. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.d.ts.map +0 -1
  243. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.js +0 -9
  244. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.js.map +0 -1
  245. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.d.ts +0 -4
  246. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.d.ts.map +0 -1
  247. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.js +0 -37
  248. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.js.map +0 -1
  249. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.d.ts +0 -4
  250. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.d.ts.map +0 -1
  251. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.js +0 -29
  252. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.js.map +0 -1
  253. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.d.ts +0 -4
  254. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.d.ts.map +0 -1
  255. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.js +0 -153
  256. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.js.map +0 -1
  257. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.d.ts +0 -4
  258. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.d.ts.map +0 -1
  259. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.js +0 -59
  260. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.js.map +0 -1
  261. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.d.ts +0 -4
  262. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.d.ts.map +0 -1
  263. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.js +0 -25
  264. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.js.map +0 -1
  265. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.d.ts +0 -4
  266. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.d.ts.map +0 -1
  267. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.js +0 -104
  268. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.js.map +0 -1
  269. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.d.ts +0 -3
  270. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.d.ts.map +0 -1
  271. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.js +0 -20
  272. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.js.map +0 -1
  273. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.d.ts +0 -6
  274. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.d.ts.map +0 -1
  275. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.js +0 -116
  276. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.js.map +0 -1
  277. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.d.ts +0 -4
  278. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.d.ts.map +0 -1
  279. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.js +0 -57
  280. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.js.map +0 -1
  281. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.d.ts +0 -6
  282. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.d.ts.map +0 -1
  283. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.js +0 -30
  284. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.js.map +0 -1
  285. package/src/ipfs-unixfs-exporter/dist/typedoc-urls.json +0 -58
  286. package/src/ipfs-unixfs-exporter/src/errors.ts +0 -87
  287. package/src/ipfs-unixfs-exporter/src/index.ts +0 -498
  288. package/src/ipfs-unixfs-exporter/src/resolvers/dag-cbor.ts +0 -12
  289. package/src/ipfs-unixfs-exporter/src/resolvers/dag-json.ts +0 -12
  290. package/src/ipfs-unixfs-exporter/src/resolvers/identity.ts +0 -49
  291. package/src/ipfs-unixfs-exporter/src/resolvers/index.ts +0 -35
  292. package/src/ipfs-unixfs-exporter/src/resolvers/json.ts +0 -12
  293. package/src/ipfs-unixfs-exporter/src/resolvers/raw.ts +0 -49
  294. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/directory.ts +0 -39
  295. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/file.ts +0 -198
  296. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/hamt-sharded-directory.ts +0 -76
  297. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/raw.ts +0 -37
  298. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/index.ts +0 -121
  299. package/src/ipfs-unixfs-exporter/src/utils/extract-data-from-block.ts +0 -24
  300. package/src/ipfs-unixfs-exporter/src/utils/find-cid-in-shard.ts +0 -149
  301. package/src/ipfs-unixfs-exporter/src/utils/resolve-object-path.ts +0 -62
  302. 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