@fireproof/vendor 1.1.0 → 1.2.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 (302) hide show
  1. package/package.json +97 -4
  2. package/src/@ipld/car/LICENSE +4 -0
  3. package/src/@ipld/car/README.md +1132 -0
  4. package/src/@ipld/car/dist/index.min.js +5 -0
  5. package/src/@ipld/car/dist/src/api.d.ts +72 -0
  6. package/src/@ipld/car/dist/src/api.d.ts.map +1 -0
  7. package/src/@ipld/car/dist/src/buffer-decoder.d.ts +67 -0
  8. package/src/@ipld/car/dist/src/buffer-decoder.d.ts.map +1 -0
  9. package/src/@ipld/car/dist/src/buffer-reader-browser.d.ts +116 -0
  10. package/src/@ipld/car/dist/src/buffer-reader-browser.d.ts.map +1 -0
  11. package/src/@ipld/car/dist/src/buffer-reader.d.ts +31 -0
  12. package/src/@ipld/car/dist/src/buffer-reader.d.ts.map +1 -0
  13. package/src/@ipld/car/dist/src/buffer-writer.d.ts +86 -0
  14. package/src/@ipld/car/dist/src/buffer-writer.d.ts.map +1 -0
  15. package/src/@ipld/car/dist/src/coding.d.ts +49 -0
  16. package/src/@ipld/car/dist/src/coding.d.ts.map +1 -0
  17. package/src/@ipld/car/dist/src/decoder-common.d.ts +43 -0
  18. package/src/@ipld/car/dist/src/decoder-common.d.ts.map +1 -0
  19. package/src/@ipld/car/dist/src/decoder.d.ts +87 -0
  20. package/src/@ipld/car/dist/src/decoder.d.ts.map +1 -0
  21. package/src/@ipld/car/dist/src/encoder.d.ts +17 -0
  22. package/src/@ipld/car/dist/src/encoder.d.ts.map +1 -0
  23. package/src/@ipld/car/dist/src/header-validator.d.ts +5 -0
  24. package/src/@ipld/car/dist/src/header-validator.d.ts.map +1 -0
  25. package/src/@ipld/car/dist/src/index-browser.d.ts +10 -0
  26. package/src/@ipld/car/dist/src/index-browser.d.ts.map +1 -0
  27. package/src/@ipld/car/dist/src/index.d.ts +11 -0
  28. package/src/@ipld/car/dist/src/index.d.ts.map +1 -0
  29. package/src/@ipld/car/dist/src/indexed-reader-browser.d.ts +5 -0
  30. package/src/@ipld/car/dist/src/indexed-reader-browser.d.ts.map +1 -0
  31. package/src/@ipld/car/dist/src/indexed-reader.d.ts +152 -0
  32. package/src/@ipld/car/dist/src/indexed-reader.d.ts.map +1 -0
  33. package/src/@ipld/car/dist/src/indexer.d.ts +95 -0
  34. package/src/@ipld/car/dist/src/indexer.d.ts.map +1 -0
  35. package/src/@ipld/car/dist/src/iterator-channel.d.ts +7 -0
  36. package/src/@ipld/car/dist/src/iterator-channel.d.ts.map +1 -0
  37. package/src/@ipld/car/dist/src/iterator.d.ts +174 -0
  38. package/src/@ipld/car/dist/src/iterator.d.ts.map +1 -0
  39. package/src/@ipld/car/dist/src/promise-fs-opts.d.ts +28 -0
  40. package/src/@ipld/car/dist/src/promise-fs-opts.d.ts.map +1 -0
  41. package/src/@ipld/car/dist/src/reader-browser.d.ts +151 -0
  42. package/src/@ipld/car/dist/src/reader-browser.d.ts.map +1 -0
  43. package/src/@ipld/car/dist/src/reader.d.ts +40 -0
  44. package/src/@ipld/car/dist/src/reader.d.ts.map +1 -0
  45. package/src/@ipld/car/dist/src/writer-browser.d.ts +155 -0
  46. package/src/@ipld/car/dist/src/writer-browser.d.ts.map +1 -0
  47. package/src/@ipld/car/dist/src/writer.d.ts +45 -0
  48. package/src/@ipld/car/dist/src/writer.d.ts.map +1 -0
  49. package/src/@ipld/car/src/api.ts +90 -0
  50. package/src/@ipld/car/src/buffer-decoder.js +213 -0
  51. package/src/@ipld/car/src/buffer-reader-browser.js +144 -0
  52. package/src/@ipld/car/src/buffer-reader.js +51 -0
  53. package/src/@ipld/car/src/buffer-writer.js +286 -0
  54. package/src/@ipld/car/src/coding.ts +68 -0
  55. package/src/@ipld/car/src/decoder-common.js +82 -0
  56. package/src/@ipld/car/src/decoder.js +347 -0
  57. package/src/@ipld/car/src/encoder.js +76 -0
  58. package/src/@ipld/car/src/header-validator.js +214 -0
  59. package/src/@ipld/car/src/header.ipldsch +18 -0
  60. package/src/@ipld/car/src/index-browser.js +18 -0
  61. package/src/@ipld/car/src/index.js +21 -0
  62. package/src/@ipld/car/src/indexed-reader-browser.js +7 -0
  63. package/src/@ipld/car/src/indexed-reader.js +211 -0
  64. package/src/@ipld/car/src/indexer.js +130 -0
  65. package/src/@ipld/car/src/iterator-channel.js +91 -0
  66. package/src/@ipld/car/src/iterator.js +267 -0
  67. package/src/@ipld/car/src/promise-fs-opts.js +46 -0
  68. package/src/@ipld/car/src/reader-browser.js +194 -0
  69. package/src/@ipld/car/src/reader.js +54 -0
  70. package/src/@ipld/car/src/writer-browser.js +250 -0
  71. package/src/@ipld/car/src/writer.js +81 -0
  72. package/src/@ipld/dag-cbor/LICENSE +4 -0
  73. package/src/@ipld/dag-cbor/README.md +80 -0
  74. package/src/@ipld/dag-cbor/dist/index.min.js +3 -0
  75. package/src/@ipld/dag-cbor/dist/src/index.d.ts +67 -0
  76. package/src/@ipld/dag-cbor/dist/src/index.d.ts.map +1 -0
  77. package/src/@ipld/dag-cbor/src/index.js +147 -0
  78. package/src/@ipld/dag-json/LICENSE +4 -0
  79. package/src/@ipld/dag-json/README.md +58 -0
  80. package/src/@ipld/dag-json/dist/index.min.js +3 -0
  81. package/src/@ipld/dag-json/dist/src/index.d.ts +12 -0
  82. package/src/@ipld/dag-json/dist/src/index.d.ts.map +1 -0
  83. package/src/@ipld/dag-json/src/index.js +291 -0
  84. package/src/@web3-storage/pail/dist/src/batch/index.d.ts +53 -1
  85. package/src/@web3-storage/pail/dist/src/batch/index.d.ts.map +1 -1
  86. package/src/@web3-storage/pail/dist/src/batch/shard.d.ts +1 -1
  87. package/src/@web3-storage/pail/dist/src/batch/shard.d.ts.map +1 -1
  88. package/src/@web3-storage/pail/dist/src/block.d.ts +2 -2
  89. package/src/@web3-storage/pail/dist/src/block.d.ts.map +1 -1
  90. package/src/@web3-storage/pail/dist/src/clock/index.d.ts +2 -2
  91. package/src/@web3-storage/pail/dist/src/clock/index.d.ts.map +1 -1
  92. package/src/@web3-storage/pail/dist/src/crdt/batch/index.d.ts.map +1 -1
  93. package/src/@web3-storage/pail/dist/src/crdt/index.d.ts +2 -2
  94. package/src/@web3-storage/pail/dist/src/crdt/index.d.ts.map +1 -1
  95. package/src/@web3-storage/pail/dist/src/diff.d.ts +3 -3
  96. package/src/@web3-storage/pail/dist/src/diff.d.ts.map +1 -1
  97. package/src/@web3-storage/pail/dist/src/index.d.ts +1 -1
  98. package/src/@web3-storage/pail/dist/src/index.d.ts.map +1 -1
  99. package/src/@web3-storage/pail/dist/src/merge.d.ts.map +1 -1
  100. package/src/@web3-storage/pail/dist/src/shard.d.ts +4 -4
  101. package/src/@web3-storage/pail/dist/src/shard.d.ts.map +1 -1
  102. package/src/@web3-storage/pail/dist/tsconfig.tsbuildinfo +1 -1
  103. package/src/@web3-storage/pail/src/api.ts +1 -1
  104. package/src/@web3-storage/pail/src/clock/index.js +1 -1
  105. package/src/@web3-storage/pail/src/shard.js +1 -1
  106. package/src/cborg/.github/dependabot.yml +16 -0
  107. package/src/cborg/.github/workflows/test-and-release.yml +52 -0
  108. package/src/cborg/CHANGELOG.md +513 -0
  109. package/src/cborg/LICENSE +13 -0
  110. package/src/cborg/README.md +515 -0
  111. package/src/cborg/bench/bench.js +117 -0
  112. package/src/cborg/bench/json.js +124 -0
  113. package/src/cborg/bench/package.json +8 -0
  114. package/src/cborg/cborg/bin.js +189 -0
  115. package/src/cborg/cborg/common.js +28 -0
  116. package/src/cborg/cborg/decode.js +211 -0
  117. package/src/cborg/cborg/diagnostic.js +158 -0
  118. package/src/cborg/cborg/diagnostic_test.js +117 -0
  119. package/src/cborg/cborg/encode.js +466 -0
  120. package/src/cborg/cborg/index.js +33 -0
  121. package/src/cborg/cborg/is.js +106 -0
  122. package/src/cborg/cborg/length.js +62 -0
  123. package/src/cborg/example-bytestrings.js +180 -0
  124. package/src/cborg/example-json.js +6 -0
  125. package/src/cborg/example.js +5 -0
  126. package/src/cborg/interface.ts +59 -0
  127. package/src/cborg/json/decode.js +462 -0
  128. package/src/cborg/json/encode.js +302 -0
  129. package/src/cborg/json/json.js +4 -0
  130. package/src/cborg/taglib.js +75 -0
  131. package/src/cborg/test/appendix_a.js +647 -0
  132. package/src/cborg/test/common.js +18 -0
  133. package/src/cborg/test/node-test-bin.js +402 -0
  134. package/src/cborg/test/noop-bin-test.js +3 -0
  135. package/src/cborg/test/test-0uint.js +103 -0
  136. package/src/cborg/test/test-1negint.js +96 -0
  137. package/src/cborg/test/test-2bytes.js +198 -0
  138. package/src/cborg/test/test-3string.js +136 -0
  139. package/src/cborg/test/test-4array.js +93 -0
  140. package/src/cborg/test/test-5map.js +284 -0
  141. package/src/cborg/test/test-6tag.js +84 -0
  142. package/src/cborg/test/test-7float.js +131 -0
  143. package/src/cborg/test/test-bl.js +37 -0
  144. package/src/cborg/test/test-cbor-vectors.js +107 -0
  145. package/src/cborg/test/test-decode-errors.js +65 -0
  146. package/src/cborg/test/test-fuzz.js +42 -0
  147. package/src/cborg/test/test-json.js +219 -0
  148. package/src/cborg/test/test-length.js +65 -0
  149. package/src/cborg/test/test-partial.js +111 -0
  150. package/src/cborg/tsconfig.json +48 -0
  151. package/src/cborg/types/cborg/decode.d.ts +43 -0
  152. package/src/cborg/types/cborg/decode.d.ts.map +1 -0
  153. package/src/cborg/types/cborg/encode.d.ts +51 -0
  154. package/src/cborg/types/cborg/encode.d.ts.map +1 -0
  155. package/src/cborg/types/cborg/index.d.ts +26 -0
  156. package/src/cborg/types/cborg/index.d.ts.map +1 -0
  157. package/src/cborg/types/cborg/is.d.ts +6 -0
  158. package/src/cborg/types/cborg/is.d.ts.map +1 -0
  159. package/src/cborg/types/example.d.ts +2 -0
  160. package/src/cborg/types/example.d.ts.map +1 -0
  161. package/src/cborg/types/interface.d.ts +49 -0
  162. package/src/cborg/types/interface.d.ts.map +1 -0
  163. package/src/cborg/types/json/decode.d.ts +67 -0
  164. package/src/cborg/types/json/decode.d.ts.map +1 -0
  165. package/src/cborg/types/json/encode.d.ts +11 -0
  166. package/src/cborg/types/json/encode.d.ts.map +1 -0
  167. package/src/cborg/types/json/json.d.ts +6 -0
  168. package/src/cborg/types/json/json.d.ts.map +1 -0
  169. package/src/cborg/types/taglib.d.ts +18 -0
  170. package/src/cborg/types/taglib.d.ts.map +1 -0
  171. package/src/cborg/types/tsconfig.tsbuildinfo +1 -0
  172. package/src/cborg/types/utils/0uint.d.ts +102 -0
  173. package/src/cborg/types/utils/0uint.d.ts.map +1 -0
  174. package/src/cborg/types/utils/1negint.d.ts +59 -0
  175. package/src/cborg/types/utils/1negint.d.ts.map +1 -0
  176. package/src/cborg/types/utils/2bytes.d.ts +69 -0
  177. package/src/cborg/types/utils/2bytes.d.ts.map +1 -0
  178. package/src/cborg/types/utils/3string.d.ts +46 -0
  179. package/src/cborg/types/utils/3string.d.ts.map +1 -0
  180. package/src/cborg/types/utils/4array.d.ts +66 -0
  181. package/src/cborg/types/utils/4array.d.ts.map +1 -0
  182. package/src/cborg/types/utils/5map.d.ts +66 -0
  183. package/src/cborg/types/utils/5map.d.ts.map +1 -0
  184. package/src/cborg/types/utils/6tag.d.ts +62 -0
  185. package/src/cborg/types/utils/6tag.d.ts.map +1 -0
  186. package/src/cborg/types/utils/7float.d.ts +60 -0
  187. package/src/cborg/types/utils/7float.d.ts.map +1 -0
  188. package/src/cborg/types/utils/bl.d.ts +26 -0
  189. package/src/cborg/types/utils/bl.d.ts.map +1 -0
  190. package/src/cborg/types/utils/byte-utils.d.ts +53 -0
  191. package/src/cborg/types/utils/byte-utils.d.ts.map +1 -0
  192. package/src/cborg/types/utils/common.d.ts +8 -0
  193. package/src/cborg/types/utils/common.d.ts.map +1 -0
  194. package/src/cborg/types/utils/index.d.ts +13 -0
  195. package/src/cborg/types/utils/index.d.ts.map +1 -0
  196. package/src/cborg/types/utils/jump.d.ts +16 -0
  197. package/src/cborg/types/utils/jump.d.ts.map +1 -0
  198. package/src/cborg/types/utils/token.d.ts +59 -0
  199. package/src/cborg/types/utils/token.d.ts.map +1 -0
  200. package/src/cborg/utils/0uint.js +229 -0
  201. package/src/cborg/utils/1negint.js +111 -0
  202. package/src/cborg/utils/2bytes.js +135 -0
  203. package/src/cborg/utils/3string.js +90 -0
  204. package/src/cborg/utils/4array.js +114 -0
  205. package/src/cborg/utils/5map.js +113 -0
  206. package/src/cborg/utils/6tag.js +81 -0
  207. package/src/cborg/utils/7float.js +310 -0
  208. package/src/cborg/utils/bl.js +124 -0
  209. package/src/cborg/utils/byte-utils.js +417 -0
  210. package/src/cborg/utils/common.js +11 -0
  211. package/src/cborg/utils/index.js +12 -0
  212. package/src/cborg/utils/jump.js +222 -0
  213. package/src/cborg/utils/token.js +76 -0
  214. package/src/ipfs-unixfs-exporter/LICENSE +4 -0
  215. package/src/ipfs-unixfs-exporter/README.md +105 -0
  216. package/src/ipfs-unixfs-exporter/dist/index.min.js +3 -0
  217. package/src/ipfs-unixfs-exporter/dist/src/errors.d.ts +57 -0
  218. package/src/ipfs-unixfs-exporter/dist/src/errors.d.ts.map +1 -0
  219. package/src/ipfs-unixfs-exporter/dist/src/errors.js +73 -0
  220. package/src/ipfs-unixfs-exporter/dist/src/errors.js.map +1 -0
  221. package/src/ipfs-unixfs-exporter/dist/src/index.d.ts +355 -0
  222. package/src/ipfs-unixfs-exporter/dist/src/index.d.ts.map +1 -0
  223. package/src/ipfs-unixfs-exporter/dist/src/index.js +197 -0
  224. package/src/ipfs-unixfs-exporter/dist/src/index.js.map +1 -0
  225. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.d.ts +4 -0
  226. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.d.ts.map +1 -0
  227. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.js +9 -0
  228. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.js.map +1 -0
  229. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.d.ts +4 -0
  230. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.d.ts.map +1 -0
  231. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.js +9 -0
  232. package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.js.map +1 -0
  233. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.d.ts +4 -0
  234. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.d.ts.map +1 -0
  235. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.js +38 -0
  236. package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.js.map +1 -0
  237. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.d.ts +4 -0
  238. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.d.ts.map +1 -0
  239. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.js +30 -0
  240. package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.js.map +1 -0
  241. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.d.ts +4 -0
  242. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.d.ts.map +1 -0
  243. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.js +9 -0
  244. package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.js.map +1 -0
  245. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.d.ts +4 -0
  246. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.d.ts.map +1 -0
  247. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.js +37 -0
  248. package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.js.map +1 -0
  249. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.d.ts +4 -0
  250. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.d.ts.map +1 -0
  251. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.js +29 -0
  252. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.js.map +1 -0
  253. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.d.ts +4 -0
  254. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.d.ts.map +1 -0
  255. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.js +153 -0
  256. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.js.map +1 -0
  257. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.d.ts +4 -0
  258. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.d.ts.map +1 -0
  259. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.js +59 -0
  260. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.js.map +1 -0
  261. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.d.ts +4 -0
  262. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.d.ts.map +1 -0
  263. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.js +25 -0
  264. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.js.map +1 -0
  265. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.d.ts +4 -0
  266. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.d.ts.map +1 -0
  267. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.js +104 -0
  268. package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.js.map +1 -0
  269. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.d.ts +3 -0
  270. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.d.ts.map +1 -0
  271. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.js +20 -0
  272. package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.js.map +1 -0
  273. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.d.ts +6 -0
  274. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.d.ts.map +1 -0
  275. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.js +116 -0
  276. package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.js.map +1 -0
  277. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.d.ts +4 -0
  278. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.d.ts.map +1 -0
  279. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.js +57 -0
  280. package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.js.map +1 -0
  281. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.d.ts +6 -0
  282. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.d.ts.map +1 -0
  283. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.js +30 -0
  284. package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.js.map +1 -0
  285. package/src/ipfs-unixfs-exporter/dist/typedoc-urls.json +58 -0
  286. package/src/ipfs-unixfs-exporter/src/errors.ts +87 -0
  287. package/src/ipfs-unixfs-exporter/src/index.ts +498 -0
  288. package/src/ipfs-unixfs-exporter/src/resolvers/dag-cbor.ts +12 -0
  289. package/src/ipfs-unixfs-exporter/src/resolvers/dag-json.ts +12 -0
  290. package/src/ipfs-unixfs-exporter/src/resolvers/identity.ts +49 -0
  291. package/src/ipfs-unixfs-exporter/src/resolvers/index.ts +35 -0
  292. package/src/ipfs-unixfs-exporter/src/resolvers/json.ts +12 -0
  293. package/src/ipfs-unixfs-exporter/src/resolvers/raw.ts +49 -0
  294. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/directory.ts +39 -0
  295. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/file.ts +198 -0
  296. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/hamt-sharded-directory.ts +76 -0
  297. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/raw.ts +37 -0
  298. package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/index.ts +121 -0
  299. package/src/ipfs-unixfs-exporter/src/utils/extract-data-from-block.ts +24 -0
  300. package/src/ipfs-unixfs-exporter/src/utils/find-cid-in-shard.ts +149 -0
  301. package/src/ipfs-unixfs-exporter/src/utils/resolve-object-path.ts +62 -0
  302. package/src/ipfs-unixfs-exporter/src/utils/validate-offset-and-length.ts +38 -0
@@ -0,0 +1,302 @@
1
+ // never reference the file directly to ensure the
2
+ // indepency of the json module
3
+ import { encodeCustom } from "@fireproof/vendor/cborg"
4
+ import { Type, asU8A, fromString } from "@fireproof/vendor/cborg/utils"
5
+
6
+ /**
7
+ * @typedef {import('../interface').EncodeOptions} EncodeOptions
8
+ * @typedef {import('../interface').TokenTypeEncoder} TokenTypeEncoder
9
+ * @typedef {import('cborg/utils').Token} Token
10
+ * @typedef {import('cborg/utils').Bl} Bl
11
+ */
12
+
13
+ /**
14
+ * @param {(buf: Bl, token: Token, opt: EncodeOptions) => void} action
15
+ * @returns {TokenTypeEncoder}
16
+ */
17
+ function wrapCompareTokens (action) {
18
+ const wrapped = (/** @type {Bl} */ buf, /** @type {Token} */token, /** @type {EncodeOptions} */opt) => action(buf, token, opt)
19
+ /**
20
+ * @param {Token} tok1
21
+ * @param {Token} tok2
22
+ * @returns {number}
23
+ */
24
+ wrapped.compareTokens = function compareTokens (tok1, tok2) {
25
+ return tok1.value < tok2.value ? -1 : tok1.value > tok2.value ? 1 : 0
26
+ }
27
+ return wrapped
28
+ }
29
+
30
+ /**
31
+ * @returns {TokenTypeEncoder[]}
32
+ */
33
+ function makeJSONEncoders () {
34
+ /** @type {TokenTypeEncoder[]} */
35
+ const encoders = []
36
+ /** @type {{type:Type,elements:number}[]} */
37
+ const inRecursive = []
38
+
39
+ /**
40
+ * @param {Bl} buf
41
+ */
42
+ function prefix (buf) {
43
+ const recurs = inRecursive[inRecursive.length - 1]
44
+ if (recurs) {
45
+ if (recurs.type.equals(Type.array)) {
46
+ recurs.elements++
47
+ if (recurs.elements !== 1) { // >first
48
+ buf.push([44]) // ','
49
+ }
50
+ }
51
+ if (recurs.type.equals(Type.map)) {
52
+ recurs.elements++
53
+ if (recurs.elements !== 1) { // >first
54
+ if (recurs.elements % 2 === 1) { // key
55
+ buf.push([44]) // ','
56
+ } else {
57
+ buf.push([58]) // ':'
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+
64
+ encoders[Type.uint.major] = wrapCompareTokens((buf, token) => {
65
+ prefix(buf)
66
+ const is = String(token.value)
67
+ const isa = []
68
+ for (let i = 0; i < is.length; i++) {
69
+ isa[i] = is.charCodeAt(i)
70
+ }
71
+ buf.push(isa)
72
+ })
73
+
74
+ encoders[Type.negint.major] = wrapCompareTokens((buf, token, opt) => {
75
+ encoders[Type.uint.major](buf, token, opt)
76
+ })
77
+
78
+ encoders[Type.bytes.major] = wrapCompareTokens((_buf, _token, { encodeErrPrefix }) => {
79
+ throw new Error(`${encodeErrPrefix} unsupported type: Uint8Array`)
80
+ })
81
+
82
+ encoders[Type.string.major] = wrapCompareTokens((buf, token) => {
83
+ prefix(buf)
84
+ const byts = fromString(JSON.stringify(token.value))
85
+ buf.push(byts.length > 32 ? asU8A(byts) : byts)
86
+ })
87
+
88
+ encoders[Type.array.major] = wrapCompareTokens((buf, _token) => {
89
+ prefix(buf)
90
+ inRecursive.push({ type: Type.array, elements: 0 })
91
+ buf.push([91]) // '['
92
+ })
93
+
94
+ encoders[Type.map.major] = wrapCompareTokens((buf, _token) => {
95
+ prefix(buf)
96
+ inRecursive.push({ type: Type.map, elements: 0 })
97
+ buf.push([123]) // '{'
98
+ })
99
+
100
+ encoders[Type.tag.major] = wrapCompareTokens((_buf, _token) => {
101
+ })
102
+
103
+ encoders[Type.float.major] = wrapCompareTokens((buf, token, { encodeErrPrefix }) => {
104
+ if (token.type.equals(Type.break)) {
105
+ const recurs = inRecursive.pop()
106
+ if (recurs) {
107
+ if (recurs.type.equals(Type.array)) {
108
+ buf.push([93]) // ']'
109
+ } else if (recurs.type.equals(Type.map)) {
110
+ buf.push([125]) // '}'
111
+ /* c8 ignore next 3 */
112
+ } else {
113
+ throw new Error('Unexpected recursive type; this should not happen!')
114
+ }
115
+ return
116
+ }
117
+ /* c8 ignore next 2 */
118
+ throw new Error('Unexpected break; this should not happen!')
119
+ }
120
+ if (token.value === undefined) {
121
+ throw new Error(`${encodeErrPrefix} unsupported type: undefined`)
122
+ }
123
+
124
+ prefix(buf)
125
+ if (token.type.equals(Type.true)) {
126
+ buf.push([116, 114, 117, 101]) // 'true'
127
+ return
128
+ } else if (token.type.equals(Type.false)) {
129
+ buf.push([102, 97, 108, 115, 101]) // 'false'
130
+ return
131
+ } else if (token.type.equals(Type.null)) {
132
+ buf.push([110, 117, 108, 108]) // 'null'
133
+ return
134
+ }
135
+
136
+ // number
137
+ const is = String(token.value)
138
+ const isa = []
139
+ let dp = false
140
+ for (let i = 0; i < is.length; i++) {
141
+ isa[i] = is.charCodeAt(i)
142
+ if (!dp && (isa[i] === 46 || isa[i] === 101 || isa[i] === 69)) { // '[.eE]'
143
+ dp = true
144
+ }
145
+ }
146
+ if (!dp) { // need a decimal point for floats
147
+ isa.push(46) // '.'
148
+ isa.push(48) // '0'
149
+ }
150
+ buf.push(isa)
151
+ })
152
+ return encoders
153
+ }
154
+
155
+ // The below code is mostly taken and modified from https://github.com/feross/buffer
156
+ // Licensed MIT. Copyright (c) Feross Aboukhadijeh
157
+ // function encodeUtf8 (string, byts) {
158
+ // let codePoint
159
+ // const length = string.length
160
+ // let leadSurrogate = null
161
+
162
+ // for (let i = 0; i < length; ++i) {
163
+ // codePoint = string.charCodeAt(i)
164
+
165
+ // // is surrogate component
166
+ // if (codePoint > 0xd7ff && codePoint < 0xe000) {
167
+ // // last char was a lead
168
+ // if (!leadSurrogate) {
169
+ // // no lead yet
170
+ // /* c8 ignore next 9 */
171
+ // if (codePoint > 0xdbff) {
172
+ // // unexpected trail
173
+ // byts.push(0xef, 0xbf, 0xbd)
174
+ // continue
175
+ // } else if (i + 1 === length) {
176
+ // // unpaired lead
177
+ // byts.push(0xef, 0xbf, 0xbd)
178
+ // continue
179
+ // }
180
+
181
+ // // valid lead
182
+ // leadSurrogate = codePoint
183
+
184
+ // continue
185
+ // }
186
+
187
+ // // 2 leads in a row
188
+ // /* c8 ignore next 5 */
189
+ // if (codePoint < 0xdc00) {
190
+ // byts.push(0xef, 0xbf, 0xbd)
191
+ // leadSurrogate = codePoint
192
+ // continue
193
+ // }
194
+
195
+ // // valid surrogate pair
196
+ // codePoint = (leadSurrogate - 0xd800 << 10 | codePoint - 0xdc00) + 0x10000
197
+ // /* c8 ignore next 4 */
198
+ // } else if (leadSurrogate) {
199
+ // // valid bmp char, but last char was a lead
200
+ // byts.push(0xef, 0xbf, 0xbd)
201
+ // }
202
+
203
+ // leadSurrogate = null
204
+
205
+ // // encode utf8
206
+ // if (codePoint < 0x80) {
207
+ // // special JSON escapes
208
+ // switch (codePoint) {
209
+ // case 8: // '\b'
210
+ // byts.push(92, 98) // '\\b'
211
+ // continue
212
+ // case 9: // '\t'
213
+ // byts.push(92, 116) // '\\t'
214
+ // continue
215
+ // case 10: // '\n'
216
+ // byts.push(92, 110) // '\\n'
217
+ // continue
218
+ // case 12: // '\f'
219
+ // byts.push(92, 102) // '\\f'
220
+ // continue
221
+ // case 13: // '\r'
222
+ // byts.push(92, 114) // '\\r'
223
+ // continue
224
+ // case 34: // '"'
225
+ // byts.push(92, 34) // '\\"'
226
+ // continue
227
+ // case 92: // '\\'
228
+ // byts.push(92, 92) // '\\\\'
229
+ // continue
230
+ // }
231
+
232
+ // byts.push(codePoint)
233
+ // } else if (codePoint < 0x800) {
234
+ // /* c8 ignore next 1 */
235
+ // byts.push(
236
+ // codePoint >> 0x6 | 0xc0,
237
+ // codePoint & 0x3f | 0x80
238
+ // )
239
+ // } else if (codePoint < 0x10000) {
240
+ // /* c8 ignore next 1 */
241
+ // byts.push(
242
+ // codePoint >> 0xc | 0xe0,
243
+ // codePoint >> 0x6 & 0x3f | 0x80,
244
+ // codePoint & 0x3f | 0x80
245
+ // )
246
+ // /* c8 ignore next 9 */
247
+ // } else if (codePoint < 0x110000) {
248
+ // byts.push(
249
+ // codePoint >> 0x12 | 0xf0,
250
+ // codePoint >> 0xc & 0x3f | 0x80,
251
+ // codePoint >> 0x6 & 0x3f | 0x80,
252
+ // codePoint & 0x3f | 0x80
253
+ // )
254
+ // } else {
255
+ // /* c8 ignore next 2 */
256
+ // throw new Error('Invalid code point')
257
+ // }
258
+ // }
259
+ // }
260
+
261
+ const encodeErrPrefix = 'JSON encode error:'
262
+ /**
263
+ * @param {(Token|Token[])[]} e1
264
+ * @param {(Token|Token[])[]} e2
265
+ * @returns {number}
266
+ */
267
+ function mapSorter (e1, e2) {
268
+ if (Array.isArray(e1[0]) || Array.isArray(e2[0])) {
269
+ throw new Error(`${encodeErrPrefix} complex map keys are not supported`)
270
+ }
271
+ const keyToken1 = e1[0]
272
+ const keyToken2 = e2[0]
273
+ if (!keyToken1.type.equals(Type.string) || !keyToken2.type.equals(Type.string)) {
274
+ throw new Error(`${encodeErrPrefix} non-string map keys are not supported`)
275
+ }
276
+ if (keyToken1 < keyToken2) {
277
+ return -1
278
+ }
279
+ if (keyToken1 > keyToken2) {
280
+ return 1
281
+ }
282
+ /* c8 ignore next 1 */
283
+ throw new Error(`${encodeErrPrefix} unexpected duplicate map keys, this is not supported`)
284
+ }
285
+
286
+ const defaultEncodeOptions = {
287
+ addBreakTokens: true,
288
+ encodeErrPrefix,
289
+ mapSorter
290
+ }
291
+
292
+ /**
293
+ * @param {any} data
294
+ * @param {EncodeOptions} [options]
295
+ * @returns {Uint8Array}
296
+ */
297
+ function encode (data, options) {
298
+ options = Object.assign({}, defaultEncodeOptions, options)
299
+ return encodeCustom(data, makeJSONEncoders(), options)
300
+ }
301
+
302
+ export { encode }
@@ -0,0 +1,4 @@
1
+ import { encode } from './encode.js'
2
+ import { decode, decodeFirst, Tokenizer } from './decode.js'
3
+
4
+ export { encode, decode, decodeFirst, Tokenizer }
@@ -0,0 +1,75 @@
1
+ // never reference the file directly to ensure the
2
+ // indepency of the json module
3
+ import { Token, Type } from "@fireproof/vendor/cborg/utils"
4
+
5
+ /*
6
+ A collection of some standard CBOR tags.
7
+
8
+ There are no tags included by default in the cborg encoder or decoder, you have
9
+ to include them by passing options. `typeEncoders` for encode() and `tags` for
10
+ decode().
11
+
12
+ The encoders here can be included with these options (see the tests for how this
13
+ can be done), or as examples for writing additional tags. Additional standard
14
+ (and reasonable) tags may be added here by pull request.
15
+ */
16
+
17
+ /* TAG(2) Bignums https://tools.ietf.org/html/rfc8949#section-3.4.3 */
18
+ const neg1b = BigInt(-1)
19
+ const pos1b = BigInt(1)
20
+ const zerob = BigInt(0)
21
+ // const twob = BigInt(2)
22
+ const eightb = BigInt(8)
23
+
24
+ /**
25
+ * @param {Uint8Array} bytes
26
+ * @returns {bigint}
27
+ */
28
+ export function bigIntDecoder (bytes) {
29
+ // TODO: assert that `bytes` is a `Uint8Array`
30
+ let bi = zerob
31
+ for (let ii = 0; ii < bytes.length; ii++) {
32
+ bi = (bi << eightb) + BigInt(bytes[ii])
33
+ }
34
+ return bi
35
+ }
36
+
37
+ /**
38
+ * @param {bigint} bi
39
+ * @returns {Uint8Array}
40
+ */
41
+ function fromBigInt (bi) {
42
+ const buf = []
43
+ while (bi > 0) {
44
+ buf.unshift(Number(bi) & 0xff)
45
+ bi >>= eightb
46
+ }
47
+ return Uint8Array.from(buf)
48
+ }
49
+
50
+ // assuming that we're receiving a BigInt here, it should be registered for
51
+ // type 'bigint' for this to work.
52
+ const maxSafeBigInt = BigInt('18446744073709551615') // (twob ** BigInt(64)) - pos1b
53
+ const minSafeBigInt = BigInt('-18446744073709551616') // neg1b * (twob ** BigInt(64))
54
+ /**
55
+ * @param {bigint} obj
56
+ * @returns {Token[]|null}
57
+ */
58
+ export function bigIntEncoder (obj) {
59
+ if (obj >= minSafeBigInt && obj <= maxSafeBigInt) {
60
+ return null // null = do it the standard way
61
+ }
62
+ return [
63
+ new Token(Type.tag, obj >= zerob ? 2 : 3),
64
+ new Token(Type.bytes, fromBigInt(obj >= zerob ? obj : obj * neg1b - pos1b))
65
+ ]
66
+ }
67
+
68
+ /**
69
+ * TAG(3) Negative Bignums https://tools.ietf.org/html/rfc8949#section-3.4.3
70
+ * @param {Uint8Array} bytes
71
+ * @returns {bigint}
72
+ */
73
+ export function bigNegIntDecoder (bytes) {
74
+ return neg1b - bigIntDecoder(bytes)
75
+ }