@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,284 +0,0 @@
1
- /* eslint-env mocha */
2
-
3
- import * as chai from 'chai'
4
-
5
- import { decode, encode } from "@fireproof/vendor/cborg"
6
- import { fromHex, toHex } from "@fireproof/vendor/cborg/utils"
7
-
8
- const { assert } = chai
9
-
10
- // TODO: reject duplicate keys from encoded form
11
-
12
- const fixtures = [
13
- { data: 'a0', expected: {}, type: 'map empty' },
14
- { data: 'a0', expected: new Map(), type: 'map empty (useMaps)', useMaps: true },
15
- { data: 'a1616101', expected: { a: 1 }, type: 'map 1 pair' },
16
- { data: 'a161316161', expected: { 1: 'a' }, type: 'map 1 pair (rev)' },
17
- {
18
- data: 'a1016161',
19
- expected: toMap([[1, 'a']]),
20
- type: 'map 1 pair (int key as Map w/ useMaps)',
21
- useMaps: true
22
- },
23
- {
24
- data: 'a243010203633132334302030463323334',
25
- expected: toMap([[Uint8Array.from([1, 2, 3]), '123'], [Uint8Array.from([2, 3, 4]), '234']]),
26
- type: 'map 2 pair (bytes keys Map w/ useMaps)',
27
- useMaps: true
28
- },
29
- {
30
- data: 'a1666f626a656374a16477697468a26134666e6573746564676f626a65637473a161216121',
31
- expected: { object: { with: { 4: 'nested', objects: { '!': '!' } } } },
32
- type: 'map nested'
33
- },
34
- { // same as previous but as a Map and an int key
35
- data: 'a1666f626a656374a16477697468a204666e6573746564676f626a65637473a161216121',
36
- expected: toMap([['object', toMap([['with', toMap([[4, 'nested'], ['objects', toMap([['!', '!']])]])]])]]),
37
- type: 'map nested w/ useMaps',
38
- useMaps: true
39
- },
40
- {
41
- data: 'ae636f6e651b0016db6db6db6db763736978206374656e3b0016db6db6db6db76374776f1a0001000064666976650064666f757202646e696e653aa5f702b365656967687438ff65736576656e226574687265651901f466656c6576656e426131667477656c76656fc48c6175657320c39f76c49b74652168666f75727465656ea4616664666f7572616f016174026274680368746869727465656e840203046466697665',
42
- encode: {
43
- one: Number.MAX_SAFE_INTEGER / 1.4,
44
- two: 65536,
45
- three: 500,
46
- four: 2,
47
- five: 0,
48
- six: -1,
49
- seven: -3,
50
- eight: -256,
51
- nine: -2784428724,
52
- ten: Number.MIN_SAFE_INTEGER / 1.4 - 1,
53
- eleven: new TextEncoder().encode('a1'),
54
- twelve: 'Čaues ßvěte!',
55
- thirteen: [2, 3, 4, 'five'],
56
- fourteen: { o: 1, t: 2, th: 3, f: 'four' }
57
- },
58
- expected: {
59
- one: Number.MAX_SAFE_INTEGER / 1.4,
60
- six: -1,
61
- ten: Number.MIN_SAFE_INTEGER / 1.4 - 1,
62
- two: 65536,
63
- five: 0,
64
- four: 2,
65
- nine: -2784428724,
66
- eight: -256,
67
- seven: -3,
68
- three: 500,
69
- eleven: new TextEncoder().encode('a1'),
70
- twelve: 'Čaues ßvěte!',
71
- fourteen: { f: 'four', o: 1, t: 2, th: 3 },
72
- thirteen: [2, 3, 4, 'five']
73
- },
74
- type: 'map with complex entries',
75
- label: '{}'
76
- },
77
- {
78
- data: 'ad01636f6e65026374776f1901f46c666976652068756e647265641902586b7369782068756e647265641a00010000636269671b0016db6db6db6db76662696767657220696d696e7573206f6e6521696d696e75732074776f38ff781f6d696e75732074776f2068756e6472656420616e64206669667479207369783901f4781a6d696e757820666976652068756e6472656420616e64206f6e653901f5781a6d696e757820666976652068756e6472656420616e642074776f3aa5f702b367626967206e65673b0016db6db6db6db76a626967676572206e6567',
79
- encode: toMap([
80
- [2, 'two'],
81
- [1, 'one'],
82
- [-2, 'minus two'],
83
- [-1, 'minus one'],
84
- [600, 'six hundred'],
85
- [500, 'five hundred'],
86
- [-256, 'minus two hundred and fifty six'],
87
- [-502, 'minux five hundred and two'],
88
- [-501, 'minux five hundred and one'],
89
- [65536, 'big'],
90
- [-2784428724, 'big neg'],
91
- [6433713753386423, 'bigger'],
92
- [-6433713753386424, 'bigger neg']
93
- ]),
94
- expected: toMap([
95
- [1, 'one'],
96
- [2, 'two'],
97
- [500, 'five hundred'],
98
- [600, 'six hundred'],
99
- [65536, 'big'],
100
- [6433713753386423, 'bigger'],
101
- [-1, 'minus one'],
102
- [-2, 'minus two'],
103
- [-256, 'minus two hundred and fifty six'],
104
- [-501, 'minux five hundred and one'],
105
- [-502, 'minux five hundred and two'],
106
- [-2784428724, 'big neg'],
107
- [-6433713753386424, 'bigger neg']
108
- ]),
109
- type: 'map with ints and negints',
110
- useMaps: true
111
- },
112
- {
113
- data: 'a44104636f6e65430102026374776f430102036574687265654301020464666f7572',
114
- encode: toMap([
115
- [Uint8Array.from([1, 2, 3]), 'three'],
116
- [Uint8Array.from([4]), 'one'],
117
- [Uint8Array.from([1, 2, 4]), 'four'],
118
- [Uint8Array.from([1, 2, 2]), 'two']
119
- ]),
120
- expected: toMap([
121
- [Uint8Array.from([4]), 'one'],
122
- [Uint8Array.from([1, 2, 2]), 'two'],
123
- [Uint8Array.from([1, 2, 3]), 'three'],
124
- [Uint8Array.from([1, 2, 4]), 'four']
125
- ]),
126
- type: 'map with bytes keys',
127
- useMaps: true
128
- },
129
- // testing lengths encoded as too-large ints
130
- { data: 'b801616101', expected: { a: 1 }, type: 'map 1 pair, length8', strict: false },
131
- { data: 'b90001616101', expected: { a: 1 }, type: 'map 1 pair, length16', strict: false },
132
- { data: 'ba00000001616101', expected: { a: 1 }, type: 'map 1 pair, length32', strict: false },
133
- { data: 'bb0000000000000001616101', expected: { a: 1 }, type: 'map 1 pair, length64', strict: false }
134
- ]
135
-
136
- function toMap (arr) {
137
- const m = new Map()
138
- for (const [key, value] of arr) {
139
- m.set(key, value)
140
- }
141
- return m
142
- }
143
-
144
- function entries (map) {
145
- function nest (a) {
146
- for (const e of a) {
147
- e[0] = entries(e[0])
148
- e[1] = entries(e[1])
149
- }
150
- return a
151
- }
152
-
153
- if (Object.getPrototypeOf(map) === Map.prototype) {
154
- return nest([...map.entries()])
155
- }
156
- if (typeof map === 'object') {
157
- return nest([...Object.entries(map)])
158
- }
159
- return map
160
- }
161
-
162
- describe('map', () => {
163
- describe('decode', () => {
164
- for (const fixture of fixtures) {
165
- const data = fromHex(fixture.data)
166
- it(`should decode ${fixture.type}=${fixture.label || JSON.stringify(fixture.expected)}`, () => {
167
- let options = fixture.useMaps ? { useMaps: true } : undefined
168
- const decoded = decode(data, options)
169
-
170
- if (fixture.useMaps) {
171
- assert.strictEqual(Object.getPrototypeOf(decoded), Map.prototype, 'is Map')
172
- } else {
173
- assert.isObject(decoded, 'is object')
174
- }
175
-
176
- assert.deepStrictEqual(entries(decoded), entries(fixture.expected), `decode ${fixture.type}`)
177
-
178
- options = Object.assign({ strict: true }, options)
179
- if (fixture.strict === false) {
180
- assert.throws(() => decode(data, options), Error, 'CBOR decode error: integer encoded in more bytes than necessary (strict decode)')
181
- } else {
182
- assert.deepStrictEqual(
183
- entries(decode(data, options)),
184
- entries(fixture.expected),
185
- `decode ${fixture.type}`)
186
- }
187
- })
188
-
189
- it('should fail to decode very large length', () => {
190
- assert.throws(
191
- () => decode(fromHex('bba5f702b3a5f70201616101')),
192
- /CBOR decode error: 64-bit integer map lengths not supported/)
193
- })
194
- }
195
-
196
- it('errors', () => {
197
- assert.throws(() => decode(fromHex('a1016161')), /non-string keys not supported \(got number\)/)
198
- })
199
- })
200
-
201
- describe('encode', () => {
202
- for (const fixture of fixtures) {
203
- it(`should encode ${fixture.type}=${fixture.label || JSON.stringify(fixture.expected)}`, () => {
204
- const toEncode = fixture.encode || fixture.expected
205
- if (fixture.unsafe) {
206
- assert.throws(encode.bind(null, toEncode), Error, /^CBOR encode error: number too large to encode \(\d+\)$/)
207
- } else if (fixture.strict === false || fixture.roundtrip === false) {
208
- assert.notDeepEqual(toHex(encode(toEncode)), fixture.data, `encode ${fixture.type} !strict`)
209
- } else {
210
- assert.strictEqual(toHex(encode(toEncode)), fixture.data, `encode ${fixture.type}`)
211
- }
212
- })
213
- }
214
- })
215
-
216
- // mostly unnecessary, but feels good
217
- describe('roundtrip', () => {
218
- for (const fixture of fixtures) {
219
- if (!fixture.unsafe && fixture.strict !== false && fixture.roundtrip !== false) {
220
- it(`should roundtrip ${fixture.type}=${fixture.label || JSON.stringify(fixture.expected)}`, () => {
221
- const toEncode = fixture.encode || fixture.expected
222
- const options = fixture.useMaps ? { useMaps: true } : undefined
223
- const rt = decode(encode(toEncode), options)
224
-
225
- if (fixture.useMaps) {
226
- assert.strictEqual(Object.getPrototypeOf(rt), Map.prototype, 'is Map')
227
- } else {
228
- assert.isObject(rt, 'is object')
229
- }
230
-
231
- assert.deepStrictEqual(entries(rt), entries(fixture.expected), `roundtrip ${fixture.type}`)
232
- })
233
- }
234
- }
235
- })
236
-
237
- describe('specials', () => {
238
- it('can decode indefinite length items', () => {
239
- assert.deepStrictEqual(decode(fromHex('bf616f01617402ff')), { o: 1, t: 2 })
240
- })
241
-
242
- it('can switch off indefinite length support', () => {
243
- assert.throws(() => decode(fromHex('bf616f01617402ff'), { allowIndefinite: false }), /indefinite/)
244
- })
245
- })
246
-
247
- describe('sorting', () => {
248
- it('sorts int map keys', () => {
249
- assert.strictEqual(toHex(encode(new Map([[1, 1], [2, 2]]))), 'a201010202')
250
- assert.strictEqual(toHex(encode(new Map([[2, 1], [1, 2]]))), 'a201020201')
251
- })
252
-
253
- it('sorts negint map keys', () => {
254
- assert.strictEqual(toHex(encode(new Map([[-1, 1], [-2, 2]]))), 'a220012102')
255
- assert.strictEqual(toHex(encode(new Map([[-2, 1], [-1, 2]]))), 'a220022101')
256
- })
257
-
258
- it('sorts bytes map keys', () => {
259
- assert.strictEqual(toHex(encode(new Map([[Uint8Array.from([1, 2]), 1], [Uint8Array.from([2, 1]), 2]]))), 'a24201020142020102')
260
- assert.strictEqual(toHex(encode(new Map([[Uint8Array.from([2, 1]), 1], [Uint8Array.from([1, 2]), 2]]))), 'a24201020242020101')
261
- // shortest first
262
- assert.strictEqual(toHex(encode(new Map([[Uint8Array.from([1, 2]), 1], [Uint8Array.from([2, 1]), 2], [Uint8Array.from([200]), 3]]))), 'a341c8034201020142020102')
263
- })
264
-
265
- it('sorts bytes map keys', () => {
266
- assert.strictEqual(toHex(encode(new Map([[Uint8Array.from([1, 2]), 1], [Uint8Array.from([2, 1]), 2]]))), 'a24201020142020102')
267
- assert.strictEqual(toHex(encode(new Map([[Uint8Array.from([2, 1]), 1], [Uint8Array.from([1, 2]), 2]]))), 'a24201020242020101')
268
- // shortest first
269
- assert.strictEqual(toHex(encode(new Map([[Uint8Array.from([1, 2]), 1], [Uint8Array.from([2, 1]), 2], [Uint8Array.from([200]), 3]]))), 'a341c8034201020142020102')
270
- })
271
-
272
- it('sorts array map keys (length only)', () => {
273
- assert.strictEqual(toHex(encode(new Map([[[1], 1], [[1, 1], 2]]))), 'a281010182010102')
274
- assert.strictEqual(toHex(encode(new Map([[[1, 1], 1], [[1], 2]]))), 'a281010282010101')
275
- })
276
-
277
- it('sorts map map keys (length only)', () => {
278
- assert.strictEqual(toHex(encode(new Map([[{ a: 1 }, 1], [{ a: 1, b: 1 }, 2]]))), 'a2a161610101a261610161620102')
279
- assert.strictEqual(toHex(encode(new Map([[{ a: 1, b: 1 }, 1], [{ a: 1 }, 2]]))), 'a2a161610102a261610161620101')
280
- })
281
-
282
- // TODO: tag keys .. but why would you do this!?
283
- })
284
- })
@@ -1,84 +0,0 @@
1
- /* eslint-env mocha */
2
-
3
- import * as chai from 'chai'
4
-
5
- import { decode, encode } from "@fireproof/vendor/cborg"
6
- import { fromHex, toHex, Token, Type } from "@fireproof/vendor/cborg/utils"
7
- import { dateDecoder, dateEncoder } from './common.js'
8
-
9
- const { assert } = chai
10
-
11
- function Uint16ArrayDecoder (obj) {
12
- if (typeof obj !== 'string') {
13
- throw new Error('expected string for tag 23')
14
- }
15
- const u8a = fromHex(obj)
16
- return new Uint16Array(u8a.buffer, u8a.byteOffset, u8a.length / 2)
17
- }
18
-
19
- function Uint16ArrayEncoder (obj) {
20
- if (!(obj instanceof Uint16Array)) {
21
- throw new Error('expected Uint16Array for "Uint16Array" encoder')
22
- }
23
- return [
24
- new Token(Type.tag, 23),
25
- new Token(Type.string, toHex(obj))
26
- ]
27
- }
28
-
29
- describe('tag', () => {
30
- it('date', () => {
31
- assert.throws(() => encode({ d: new Date() }), /unsupported type: Date/)
32
-
33
- assert.equal(
34
- toHex(encode(new Date('2013-03-21T20:04:00Z'), { typeEncoders: { Date: dateEncoder } })),
35
- 'c074323031332d30332d32315432303a30343a30305a' // from appendix_a
36
- )
37
-
38
- const decodedDate = decode(fromHex('c074323031332d30332d32315432303a30343a30305a'), { tags: { 0: dateDecoder } })
39
- assert.instanceOf(decodedDate, Date)
40
- assert.equal(decodedDate.toISOString(), new Date('2013-03-21T20:04:00Z').toISOString())
41
- })
42
-
43
- it('Uint16Array as hex/23 (overide existing type)', () => {
44
- assert.equal(
45
- toHex(encode(Uint16Array.from([1, 2, 3]), { typeEncoders: { Uint16Array: Uint16ArrayEncoder } })),
46
- 'd76c303130303032303030333030' // tag(23) + string('010002000300')
47
- )
48
-
49
- const decoded = decode(fromHex('d76c303130303032303030333030'), { tags: { 23: Uint16ArrayDecoder } })
50
- assert.instanceOf(decoded, Uint16Array)
51
- assert.equal(toHex(decoded), toHex(Uint16Array.from([1, 2, 3])))
52
- })
53
-
54
- it('tag int too large', () => {
55
- const verify = (hex, strict) => {
56
- if (!strict) {
57
- assert.throws(
58
- () => decode(fromHex(hex), { tags: { 8: dateDecoder }, strict: true }),
59
- /integer encoded in more bytes than necessary/)
60
- }
61
- const decodedDate = decode(fromHex(hex), { tags: { 8: dateDecoder }, strict })
62
- assert.instanceOf(decodedDate, Date)
63
- assert.equal(decodedDate.toISOString(), new Date('2013-03-21T20:04:00Z').toISOString())
64
- }
65
- // compact
66
- verify('c874323031332d30332d32315432303a30343a30305a', true)
67
- // int8
68
- verify('d80874323031332d30332d32315432303a30343a30305a', false)
69
- // int16
70
- verify('d9000874323031332d30332d32315432303a30343a30305a', false)
71
- // int32
72
- verify('da0000000874323031332d30332d32315432303a30343a30305a', false)
73
- // int64
74
- verify('db000000000000000874323031332d30332d32315432303a30343a30305a', false)
75
- })
76
-
77
- /*
78
- describe('taglib', () => {
79
- it('bigint', () => {
80
- const v = BigInt(2) ** BigInt(80)
81
- })
82
- })
83
- */
84
- })
@@ -1,131 +0,0 @@
1
- /* eslint-env mocha */
2
-
3
- import * as chai from 'chai'
4
-
5
- import { decode, encode } from "@fireproof/vendor/cborg"
6
- import { fromHex, toHex } from "@fireproof/vendor/cborg/utils"
7
-
8
- const { assert } = chai
9
-
10
- const fixtures = [
11
- { data: '8601f5f4f6f720', expected: [1, true, false, null, undefined, -1], type: 'array of float specials' },
12
- { data: 'f93800', expected: 0.5, type: 'float16' },
13
- { data: 'f9b800', expected: -0.5, type: 'float16' },
14
- { data: 'fa33c00000', expected: 8.940696716308594e-08, type: 'float32' },
15
- { data: 'fab3c00000', expected: -8.940696716308594e-08, type: 'float32' },
16
- { data: 'fb3ff199999999999a', expected: 1.1, type: 'float64' },
17
- { data: 'fbbff199999999999a', expected: -1.1, type: 'float64' },
18
- { data: 'fb3ff1c71c71c71c72', expected: 1.11111111111111111111111111111, type: 'float64' }, // eslint-disable-line
19
- { data: 'fb0000000000000002', expected: 1e-323, type: 'float64' },
20
- { data: 'fb8000000000000002', expected: -1e-323, type: 'float64' },
21
- { data: 'fb3fefffffffffffff', expected: 0.9999999999999999, type: 'float64' },
22
- { data: 'fbbfefffffffffffff', expected: -0.9999999999999999, type: 'float64' },
23
- { data: 'f97c00', expected: Infinity, type: 'Infinity' }, // special CBOR token for -Infinity
24
- { data: 'fb7ff0000000000000', expected: Infinity, type: 'Infinity', strict: false }, // an IEEE 754 representation of Infinity
25
- { data: 'f9fc00', expected: -Infinity, type: '-Infinity' }, // special CBOR token for -Infinity
26
- { data: 'fbfff0000000000000', expected: -Infinity, type: '-Infinity', strict: false }, // an IEEE 754 representation of Infinity
27
- { data: 'f97e00', expected: NaN, type: 'NaN' }, // special CBOR token for NaN
28
- { data: 'f97ff8', expected: NaN, type: 'NaN', strict: false }, // one of the many IEEE 754 representations of NaN
29
- { data: 'fa7ff80000', expected: NaN, type: 'NaN', strict: false },
30
- { data: 'fb7ff8000000000000', expected: NaN, type: 'NaN', strict: false },
31
- { data: 'fb7ff8cafedeadbeef', expected: NaN, type: 'NaN', strict: false }, // yep, that's NaN too
32
- { data: 'fb40f4241a31a5a515', expected: 82497.63712086187, type: 'float64' }
33
- ]
34
-
35
- describe('float', () => {
36
- describe('decode', () => {
37
- for (const fixture of fixtures) {
38
- const data = fromHex(fixture.data)
39
- it(`should decode ${fixture.type}=${fixture.expected}`, () => {
40
- assert.deepStrictEqual(decode(data), fixture.expected, `decode ${fixture.type}`)
41
- assert.deepStrictEqual(decode(data, { strict: true }), fixture.expected, `decode ${fixture.type}`)
42
- })
43
- }
44
- })
45
-
46
- it('error', () => {
47
- // minor number 28, too high for uint
48
- assert.throws(() => decode(fromHex('f80000')), Error, 'simple values are not supported')
49
- assert.throws(() => decode(fromHex('f900')), Error, 'not enough data for float16')
50
- assert.throws(() => decode(fromHex('fa0000')), Error, 'not enough data for float32')
51
- assert.throws(() => decode(fromHex('fb00000000')), Error, 'not enough data for float64')
52
- })
53
-
54
- describe('encode', () => {
55
- for (const fixture of fixtures) {
56
- if (fixture.strict !== false) {
57
- it(`should encode ${fixture.type}=${fixture.expected}`, () => {
58
- assert.strictEqual(toHex(encode(fixture.expected)), fixture.data, `encode ${fixture.type}`)
59
- })
60
- }
61
- }
62
- })
63
-
64
- describe('encode float64', () => {
65
- for (const fixture of fixtures) {
66
- if (fixture.type.startsWith('float')) {
67
- it(`should encode ${fixture.type}=${fixture.expected}`, () => {
68
- const encoded = encode(fixture.expected, { float64: true })
69
- assert.strictEqual(encoded.length, 9) // always encode as 9 bytes, regardless of size
70
- assert.strictEqual(encoded[0], 0xfb)
71
- assert.strictEqual(decode(encoded), fixture.expected, `encode float64 ${fixture.type}`)
72
- })
73
- }
74
- }
75
- })
76
-
77
- describe('roundtrip', () => {
78
- for (const fixture of fixtures) {
79
- if (!fixture.unsafe && fixture.strict !== false) {
80
- it(`should roundtrip ${fixture.type}=${fixture.expected}`, () => {
81
- assert.deepStrictEqual(decode(encode(fixture.expected)), fixture.expected, `roundtrip ${fixture.type}`)
82
- })
83
- }
84
- }
85
- })
86
-
87
- describe('specials', () => {
88
- // This is a bit of a hack, the CBOR is invalid because it's a standard fixed-length array
89
- // followed by a BREAK, which should normally error ("too many terminals"), but we want to
90
- // exercise the allowIndefinite switch in the major-7 decode and it should error before it
91
- // even gets to looking at terminals and whether the tokens make sense.
92
- it('indefinite length switch fails on BREAK', () => {
93
- // sanity check, BREAK doesn't belong there
94
- assert.throws(() => decode(Uint8Array.from([131, 1, 2, 0xff])), /unexpected break to lengthed array/)
95
- // throw earlier because we're disallowing BREAK entirely
96
- assert.throws(() => decode(Uint8Array.from([131, 1, 2, 0xff]), { allowIndefinite: false }), /indefinite/)
97
- })
98
-
99
- it('can switch off undefined support', () => {
100
- assert.deepStrictEqual(decode(fromHex('f7')), undefined)
101
- assert.throws(() => decode(fromHex('f7'), { allowUndefined: false }), /undefined/)
102
- assert.deepStrictEqual(decode(fromHex('830102f7')), [1, 2, undefined])
103
- assert.throws(() => decode(fromHex('830102f7'), { allowUndefined: false }), /undefined/)
104
- })
105
-
106
- it('can coerce undefined to null', () => {
107
- assert.deepStrictEqual(decode(fromHex('f7'), { coerceUndefinedToNull: false }), undefined)
108
- assert.deepStrictEqual(decode(fromHex('f7'), { coerceUndefinedToNull: true }), null)
109
- assert.deepStrictEqual(decode(fromHex('830102f7'), { coerceUndefinedToNull: false }), [1, 2, undefined])
110
- assert.deepStrictEqual(decode(fromHex('830102f7'), { coerceUndefinedToNull: true }), [1, 2, null])
111
- })
112
-
113
- it('can switch off Infinity support', () => {
114
- assert.deepStrictEqual(decode(fromHex('830102f97c00')), [1, 2, Infinity])
115
- assert.deepStrictEqual(decode(fromHex('830102f9fc00')), [1, 2, -Infinity])
116
- assert.throws(() => decode(fromHex('830102f97c00'), { allowInfinity: false }), /Infinity/)
117
- assert.throws(() => decode(fromHex('830102f9fc00'), { allowInfinity: false }), /Infinity/)
118
- for (const fixture of fixtures.filter((f) => f.type.endsWith('Infinity'))) {
119
- assert.throws(() => decode(fromHex(fixture.data), { allowInfinity: false }), /Infinity/)
120
- }
121
- })
122
-
123
- it('can switch off NaN support', () => {
124
- assert.deepStrictEqual(decode(fromHex('830102f97e00')), [1, 2, NaN])
125
- assert.throws(() => decode(fromHex('830102f97e00'), { allowNaN: false }), /NaN/)
126
- for (const fixture of fixtures.filter((f) => f.type === 'NaN')) {
127
- assert.throws(() => decode(fromHex(fixture.data), { allowNaN: false }), /NaN/)
128
- }
129
- })
130
- })
131
- })
@@ -1,37 +0,0 @@
1
- /* eslint-env mocha */
2
-
3
- import * as chai from 'chai'
4
- import { Bl } from "@fireproof/vendor/cborg/utils"
5
-
6
- const { assert } = chai
7
-
8
- describe('Internal bytes list', () => {
9
- describe('push', () => {
10
- it('push bits', () => {
11
- const bl = new Bl(10)
12
- const expected = []
13
- for (let i = 0; i < 25; i++) {
14
- bl.push([i + 1])
15
- expected.push(i + 1)
16
- }
17
- assert.deepEqual([...bl.toBytes()], expected)
18
- })
19
-
20
- for (let i = 4; i < 21; i++) {
21
- it(`push Bl(${i})`, () => {
22
- const bl = new Bl(i)
23
- const expected = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 110, 120, 11, 12, 130, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
24
- for (let i = 0; i < 5; i++) {
25
- bl.push([i + 1])
26
- }
27
- bl.push(Uint8Array.from([6, 7, 8, 9, 10]))
28
- bl.push([100])
29
- bl.push(Uint8Array.from([110, 120]))
30
- bl.push(Uint8Array.from([11, 12]))
31
- bl.push([130])
32
- bl.push(Uint8Array.from([13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]))
33
- assert.deepEqual([...bl.toBytes()], expected)
34
- })
35
- }
36
- })
37
- })
@@ -1,107 +0,0 @@
1
- /* eslint-env mocha,es2020 */
2
-
3
- import * as chai from 'chai'
4
-
5
- import { decode, encode } from "@fireproof/vendor/cborg"
6
- import * as taglib from "@fireproof/vendor/cborg/taglib"
7
- import { fromHex, toHex } from "@fireproof/vendor/cborg/utils"
8
- // fixtures from https://github.com/cbor/test-vectors
9
- import { fixtures } from './appendix_a.js'
10
-
11
- const { assert } = chai
12
-
13
- const tags = []
14
- const typeEncoders = {}
15
-
16
- tags[0] = function (obj) {
17
- if (typeof obj !== 'string') {
18
- throw new Error('expected string for tag 1')
19
- }
20
- return `0("${new Date(obj).toISOString().replace(/\.000Z$/, 'Z')}")`;
21
- }
22
-
23
- tags[1] = function (obj) {
24
- if (typeof obj !== 'number') {
25
- throw new Error('expected number for tag 1')
26
- }
27
- return `1(${obj})`
28
- }
29
-
30
- tags[2] = taglib.bigIntDecoder
31
- typeEncoders.bigint = taglib.bigIntEncoder
32
- tags[3] = taglib.bigNegIntDecoder
33
-
34
- tags[23] = function (obj) {
35
- // expected conversion to base16
36
- if (!(obj instanceof Uint8Array)) {
37
- throw new Error('expected byte array for tag 23')
38
- }
39
- return `23(h'${toHex(obj)}')`
40
- }
41
-
42
- tags[24] = function (obj) { // embedded cbor, oh my
43
- return tags[23](obj).replace(/^23/, '24');
44
- }
45
-
46
- tags[32] = function (obj) { // url
47
- if (typeof obj !== 'string') {
48
- throw new Error('expected string for tag 32')
49
- }
50
- ;(() => new URL(obj))() // will throw if not a url
51
- return `32("${obj}")`
52
- }
53
-
54
- describe('cbor/test-vectors', () => {
55
- let i = 0
56
- for (const fixture of fixtures) {
57
- const u8a = fromHex(fixture.hex)
58
- let expected = fixture.decoded !== undefined ? fixture.decoded : fixture.diagnostic
59
-
60
- if (typeof expected === 'string' && expected.startsWith('h\'')) {
61
- expected = fromHex(expected.replace(/(^h)'|('$)/g, ''))
62
- }
63
-
64
- it(`test vector #${i}: ${inspect(expected).replace(/\n\s*/g, '')}`, () => {
65
- if (fixture.error) {
66
- assert.throws(() => decode(u8a, { tags }), fixture.error)
67
- } else {
68
- if (fixture.noTagDecodeError) {
69
- assert.throws(() => decode(u8a), fixture.noTagDecodeError)
70
- }
71
- let actual = decode(u8a, { tags })
72
- if (typeof actual === 'bigint') {
73
- actual = inspect(actual)
74
- }
75
- if (typeof expected === 'bigint') {
76
- expected = inspect(expected)
77
- }
78
- assert.deepEqual(actual, expected)
79
-
80
- if (fixture.roundtrip) {
81
- if (fixture.noTagEncodeError) {
82
- assert.throws(() => encode(decode(u8a, { tags })), fixture.noTagEncodeError)
83
- }
84
- const reencoded = encode(decode(u8a, { tags }), { typeEncoders })
85
- assert.equal(toHex(reencoded), fixture.hex)
86
- }
87
- }
88
- })
89
- i++
90
- }
91
-
92
- it.skip('encode w/ tags', () => {
93
- })
94
- })
95
-
96
- function inspect (o) {
97
- if (typeof o === 'string') {
98
- return `'${o}'`
99
- }
100
- if (o instanceof Uint8Array) {
101
- return `Uint8Array<${o.join(',')}>`
102
- }
103
- if (o == null || typeof o !== 'object') {
104
- return String(o)
105
- }
106
- return JSON.stringify(o)
107
- }