@vibedeckx/darwin-arm64 0.1.22 → 0.1.23

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 (354) hide show
  1. package/dist/bin.js +1 -0
  2. package/dist/ui/404/index.html +1 -1
  3. package/dist/ui/404.html +1 -1
  4. package/dist/ui/__next.__PAGE__.txt +2 -2
  5. package/dist/ui/__next._full.txt +2 -2
  6. package/dist/ui/__next._head.txt +1 -1
  7. package/dist/ui/__next._index.txt +1 -1
  8. package/dist/ui/__next._tree.txt +1 -1
  9. package/dist/ui/_next/static/chunks/{adfe7f92bed81cd8.js → 9393cbbff01bb58d.js} +1 -1
  10. package/dist/ui/_not-found/__next._full.txt +1 -1
  11. package/dist/ui/_not-found/__next._head.txt +1 -1
  12. package/dist/ui/_not-found/__next._index.txt +1 -1
  13. package/dist/ui/_not-found/__next._not-found.__PAGE__.txt +1 -1
  14. package/dist/ui/_not-found/__next._not-found.txt +1 -1
  15. package/dist/ui/_not-found/__next._tree.txt +1 -1
  16. package/dist/ui/_not-found/index.html +1 -1
  17. package/dist/ui/_not-found/index.txt +1 -1
  18. package/dist/ui/index.html +1 -1
  19. package/dist/ui/index.txt +2 -2
  20. package/node_modules/better-sqlite3/package.json +0 -4
  21. package/node_modules/node-pty/package.json +0 -3
  22. package/package.json +3 -2
  23. package/dist/bin.js.map +0 -7
  24. package/node_modules/base64-js/LICENSE +0 -21
  25. package/node_modules/base64-js/README.md +0 -34
  26. package/node_modules/base64-js/base64js.min.js +0 -1
  27. package/node_modules/base64-js/index.d.ts +0 -3
  28. package/node_modules/base64-js/index.js +0 -150
  29. package/node_modules/base64-js/package.json +0 -47
  30. package/node_modules/bindings/LICENSE.md +0 -22
  31. package/node_modules/bindings/README.md +0 -98
  32. package/node_modules/bindings/bindings.js +0 -221
  33. package/node_modules/bindings/package.json +0 -28
  34. package/node_modules/bl/BufferList.js +0 -396
  35. package/node_modules/bl/LICENSE.md +0 -13
  36. package/node_modules/bl/README.md +0 -247
  37. package/node_modules/bl/bl.js +0 -84
  38. package/node_modules/bl/package.json +0 -37
  39. package/node_modules/bl/test/convert.js +0 -21
  40. package/node_modules/bl/test/indexOf.js +0 -492
  41. package/node_modules/bl/test/isBufferList.js +0 -32
  42. package/node_modules/bl/test/test.js +0 -869
  43. package/node_modules/buffer/AUTHORS.md +0 -70
  44. package/node_modules/buffer/LICENSE +0 -21
  45. package/node_modules/buffer/README.md +0 -410
  46. package/node_modules/buffer/index.d.ts +0 -186
  47. package/node_modules/buffer/index.js +0 -1817
  48. package/node_modules/buffer/package.json +0 -96
  49. package/node_modules/chownr/LICENSE +0 -15
  50. package/node_modules/chownr/README.md +0 -3
  51. package/node_modules/chownr/chownr.js +0 -167
  52. package/node_modules/chownr/package.json +0 -29
  53. package/node_modules/decompress-response/index.d.ts +0 -22
  54. package/node_modules/decompress-response/index.js +0 -58
  55. package/node_modules/decompress-response/license +0 -9
  56. package/node_modules/decompress-response/package.json +0 -56
  57. package/node_modules/decompress-response/readme.md +0 -48
  58. package/node_modules/deep-extend/LICENSE +0 -20
  59. package/node_modules/deep-extend/README.md +0 -91
  60. package/node_modules/deep-extend/index.js +0 -1
  61. package/node_modules/deep-extend/lib/deep-extend.js +0 -150
  62. package/node_modules/deep-extend/package.json +0 -62
  63. package/node_modules/detect-libc/LICENSE +0 -201
  64. package/node_modules/detect-libc/README.md +0 -163
  65. package/node_modules/detect-libc/index.d.ts +0 -14
  66. package/node_modules/detect-libc/lib/detect-libc.js +0 -313
  67. package/node_modules/detect-libc/lib/elf.js +0 -39
  68. package/node_modules/detect-libc/lib/filesystem.js +0 -51
  69. package/node_modules/detect-libc/lib/process.js +0 -24
  70. package/node_modules/detect-libc/package.json +0 -44
  71. package/node_modules/end-of-stream/LICENSE +0 -21
  72. package/node_modules/end-of-stream/README.md +0 -54
  73. package/node_modules/end-of-stream/index.js +0 -96
  74. package/node_modules/end-of-stream/package.json +0 -37
  75. package/node_modules/expand-template/LICENSE +0 -21
  76. package/node_modules/expand-template/README.md +0 -43
  77. package/node_modules/expand-template/index.js +0 -26
  78. package/node_modules/expand-template/package.json +0 -29
  79. package/node_modules/expand-template/test.js +0 -67
  80. package/node_modules/file-uri-to-path/History.md +0 -21
  81. package/node_modules/file-uri-to-path/LICENSE +0 -20
  82. package/node_modules/file-uri-to-path/README.md +0 -74
  83. package/node_modules/file-uri-to-path/index.d.ts +0 -2
  84. package/node_modules/file-uri-to-path/index.js +0 -66
  85. package/node_modules/file-uri-to-path/package.json +0 -32
  86. package/node_modules/file-uri-to-path/test/test.js +0 -24
  87. package/node_modules/file-uri-to-path/test/tests.json +0 -13
  88. package/node_modules/fs-constants/LICENSE +0 -21
  89. package/node_modules/fs-constants/README.md +0 -26
  90. package/node_modules/fs-constants/browser.js +0 -1
  91. package/node_modules/fs-constants/index.js +0 -1
  92. package/node_modules/fs-constants/package.json +0 -19
  93. package/node_modules/github-from-package/LICENSE +0 -18
  94. package/node_modules/github-from-package/example/package.json +0 -8
  95. package/node_modules/github-from-package/example/url.js +0 -3
  96. package/node_modules/github-from-package/index.js +0 -17
  97. package/node_modules/github-from-package/package.json +0 -30
  98. package/node_modules/github-from-package/readme.markdown +0 -53
  99. package/node_modules/github-from-package/test/a.json +0 -8
  100. package/node_modules/github-from-package/test/b.json +0 -5
  101. package/node_modules/github-from-package/test/c.json +0 -5
  102. package/node_modules/github-from-package/test/d.json +0 -7
  103. package/node_modules/github-from-package/test/e.json +0 -5
  104. package/node_modules/github-from-package/test/url.js +0 -19
  105. package/node_modules/ieee754/LICENSE +0 -11
  106. package/node_modules/ieee754/README.md +0 -51
  107. package/node_modules/ieee754/index.d.ts +0 -10
  108. package/node_modules/ieee754/index.js +0 -85
  109. package/node_modules/ieee754/package.json +0 -52
  110. package/node_modules/inherits/LICENSE +0 -16
  111. package/node_modules/inherits/README.md +0 -42
  112. package/node_modules/inherits/inherits.js +0 -9
  113. package/node_modules/inherits/inherits_browser.js +0 -27
  114. package/node_modules/inherits/package.json +0 -29
  115. package/node_modules/ini/LICENSE +0 -15
  116. package/node_modules/ini/README.md +0 -102
  117. package/node_modules/ini/ini.js +0 -206
  118. package/node_modules/ini/package.json +0 -33
  119. package/node_modules/mimic-response/index.d.ts +0 -17
  120. package/node_modules/mimic-response/index.js +0 -77
  121. package/node_modules/mimic-response/license +0 -9
  122. package/node_modules/mimic-response/package.json +0 -42
  123. package/node_modules/mimic-response/readme.md +0 -78
  124. package/node_modules/minimist/CHANGELOG.md +0 -298
  125. package/node_modules/minimist/LICENSE +0 -18
  126. package/node_modules/minimist/README.md +0 -121
  127. package/node_modules/minimist/example/parse.js +0 -4
  128. package/node_modules/minimist/index.js +0 -263
  129. package/node_modules/minimist/package.json +0 -75
  130. package/node_modules/minimist/test/all_bool.js +0 -34
  131. package/node_modules/minimist/test/bool.js +0 -177
  132. package/node_modules/minimist/test/dash.js +0 -43
  133. package/node_modules/minimist/test/default_bool.js +0 -37
  134. package/node_modules/minimist/test/dotted.js +0 -24
  135. package/node_modules/minimist/test/kv_short.js +0 -32
  136. package/node_modules/minimist/test/long.js +0 -33
  137. package/node_modules/minimist/test/num.js +0 -38
  138. package/node_modules/minimist/test/parse.js +0 -209
  139. package/node_modules/minimist/test/parse_modified.js +0 -11
  140. package/node_modules/minimist/test/proto.js +0 -64
  141. package/node_modules/minimist/test/short.js +0 -69
  142. package/node_modules/minimist/test/stop_early.js +0 -17
  143. package/node_modules/minimist/test/unknown.js +0 -104
  144. package/node_modules/minimist/test/whitespace.js +0 -10
  145. package/node_modules/mkdirp-classic/LICENSE +0 -21
  146. package/node_modules/mkdirp-classic/README.md +0 -18
  147. package/node_modules/mkdirp-classic/index.js +0 -98
  148. package/node_modules/mkdirp-classic/package.json +0 -18
  149. package/node_modules/napi-build-utils/LICENSE +0 -21
  150. package/node_modules/napi-build-utils/README.md +0 -52
  151. package/node_modules/napi-build-utils/index.js +0 -214
  152. package/node_modules/napi-build-utils/index.md +0 -0
  153. package/node_modules/napi-build-utils/package.json +0 -42
  154. package/node_modules/node-abi/LICENSE +0 -21
  155. package/node_modules/node-abi/README.md +0 -54
  156. package/node_modules/node-abi/abi_registry.json +0 -439
  157. package/node_modules/node-abi/index.js +0 -179
  158. package/node_modules/node-abi/package.json +0 -45
  159. package/node_modules/node-addon-api/LICENSE.md +0 -9
  160. package/node_modules/node-addon-api/README.md +0 -319
  161. package/node_modules/node-addon-api/common.gypi +0 -20
  162. package/node_modules/node-addon-api/except.gypi +0 -25
  163. package/node_modules/node-addon-api/index.js +0 -12
  164. package/node_modules/node-addon-api/napi-inl.deprecated.h +0 -186
  165. package/node_modules/node-addon-api/napi-inl.h +0 -6607
  166. package/node_modules/node-addon-api/napi.h +0 -3201
  167. package/node_modules/node-addon-api/node_addon_api.gyp +0 -32
  168. package/node_modules/node-addon-api/node_api.gyp +0 -9
  169. package/node_modules/node-addon-api/noexcept.gypi +0 -26
  170. package/node_modules/node-addon-api/nothing.c +0 -0
  171. package/node_modules/node-addon-api/package-support.json +0 -21
  172. package/node_modules/node-addon-api/package.json +0 -480
  173. package/node_modules/node-addon-api/tools/README.md +0 -73
  174. package/node_modules/node-addon-api/tools/check-napi.js +0 -99
  175. package/node_modules/node-addon-api/tools/clang-format.js +0 -71
  176. package/node_modules/node-addon-api/tools/conversion.js +0 -301
  177. package/node_modules/node-addon-api/tools/eslint-format.js +0 -79
  178. package/node_modules/once/LICENSE +0 -15
  179. package/node_modules/once/README.md +0 -79
  180. package/node_modules/once/once.js +0 -42
  181. package/node_modules/once/package.json +0 -33
  182. package/node_modules/prebuild-install/CHANGELOG.md +0 -131
  183. package/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  184. package/node_modules/prebuild-install/LICENSE +0 -21
  185. package/node_modules/prebuild-install/README.md +0 -163
  186. package/node_modules/prebuild-install/asset.js +0 -44
  187. package/node_modules/prebuild-install/bin.js +0 -78
  188. package/node_modules/prebuild-install/download.js +0 -142
  189. package/node_modules/prebuild-install/error.js +0 -14
  190. package/node_modules/prebuild-install/help.txt +0 -16
  191. package/node_modules/prebuild-install/index.js +0 -1
  192. package/node_modules/prebuild-install/log.js +0 -33
  193. package/node_modules/prebuild-install/package.json +0 -67
  194. package/node_modules/prebuild-install/proxy.js +0 -35
  195. package/node_modules/prebuild-install/rc.js +0 -64
  196. package/node_modules/prebuild-install/util.js +0 -143
  197. package/node_modules/pump/LICENSE +0 -21
  198. package/node_modules/pump/README.md +0 -74
  199. package/node_modules/pump/SECURITY.md +0 -5
  200. package/node_modules/pump/empty.js +0 -1
  201. package/node_modules/pump/index.js +0 -86
  202. package/node_modules/pump/package.json +0 -30
  203. package/node_modules/pump/test-browser.js +0 -66
  204. package/node_modules/pump/test-node.js +0 -53
  205. package/node_modules/rc/LICENSE.APACHE2 +0 -15
  206. package/node_modules/rc/LICENSE.BSD +0 -26
  207. package/node_modules/rc/LICENSE.MIT +0 -24
  208. package/node_modules/rc/README.md +0 -227
  209. package/node_modules/rc/browser.js +0 -7
  210. package/node_modules/rc/cli.js +0 -4
  211. package/node_modules/rc/index.js +0 -53
  212. package/node_modules/rc/lib/utils.js +0 -104
  213. package/node_modules/rc/package.json +0 -29
  214. package/node_modules/rc/test/ini.js +0 -16
  215. package/node_modules/rc/test/nested-env-vars.js +0 -50
  216. package/node_modules/rc/test/test.js +0 -59
  217. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  218. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  219. package/node_modules/readable-stream/LICENSE +0 -47
  220. package/node_modules/readable-stream/README.md +0 -106
  221. package/node_modules/readable-stream/errors-browser.js +0 -127
  222. package/node_modules/readable-stream/errors.js +0 -116
  223. package/node_modules/readable-stream/experimentalWarning.js +0 -17
  224. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  225. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  226. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  227. package/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  228. package/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  229. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  230. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  231. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  232. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  233. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  234. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  235. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  236. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  237. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  238. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  239. package/node_modules/readable-stream/package.json +0 -68
  240. package/node_modules/readable-stream/readable-browser.js +0 -9
  241. package/node_modules/readable-stream/readable.js +0 -16
  242. package/node_modules/safe-buffer/LICENSE +0 -21
  243. package/node_modules/safe-buffer/README.md +0 -584
  244. package/node_modules/safe-buffer/index.d.ts +0 -187
  245. package/node_modules/safe-buffer/index.js +0 -65
  246. package/node_modules/safe-buffer/package.json +0 -51
  247. package/node_modules/semver/LICENSE +0 -15
  248. package/node_modules/semver/README.md +0 -665
  249. package/node_modules/semver/bin/semver.js +0 -191
  250. package/node_modules/semver/classes/comparator.js +0 -143
  251. package/node_modules/semver/classes/index.js +0 -7
  252. package/node_modules/semver/classes/range.js +0 -557
  253. package/node_modules/semver/classes/semver.js +0 -333
  254. package/node_modules/semver/functions/clean.js +0 -8
  255. package/node_modules/semver/functions/cmp.js +0 -54
  256. package/node_modules/semver/functions/coerce.js +0 -62
  257. package/node_modules/semver/functions/compare-build.js +0 -9
  258. package/node_modules/semver/functions/compare-loose.js +0 -5
  259. package/node_modules/semver/functions/compare.js +0 -7
  260. package/node_modules/semver/functions/diff.js +0 -60
  261. package/node_modules/semver/functions/eq.js +0 -5
  262. package/node_modules/semver/functions/gt.js +0 -5
  263. package/node_modules/semver/functions/gte.js +0 -5
  264. package/node_modules/semver/functions/inc.js +0 -21
  265. package/node_modules/semver/functions/lt.js +0 -5
  266. package/node_modules/semver/functions/lte.js +0 -5
  267. package/node_modules/semver/functions/major.js +0 -5
  268. package/node_modules/semver/functions/minor.js +0 -5
  269. package/node_modules/semver/functions/neq.js +0 -5
  270. package/node_modules/semver/functions/parse.js +0 -18
  271. package/node_modules/semver/functions/patch.js +0 -5
  272. package/node_modules/semver/functions/prerelease.js +0 -8
  273. package/node_modules/semver/functions/rcompare.js +0 -5
  274. package/node_modules/semver/functions/rsort.js +0 -5
  275. package/node_modules/semver/functions/satisfies.js +0 -12
  276. package/node_modules/semver/functions/sort.js +0 -5
  277. package/node_modules/semver/functions/valid.js +0 -8
  278. package/node_modules/semver/index.js +0 -91
  279. package/node_modules/semver/internal/constants.js +0 -37
  280. package/node_modules/semver/internal/debug.js +0 -11
  281. package/node_modules/semver/internal/identifiers.js +0 -29
  282. package/node_modules/semver/internal/lrucache.js +0 -42
  283. package/node_modules/semver/internal/parse-options.js +0 -17
  284. package/node_modules/semver/internal/re.js +0 -223
  285. package/node_modules/semver/package.json +0 -78
  286. package/node_modules/semver/preload.js +0 -4
  287. package/node_modules/semver/range.bnf +0 -16
  288. package/node_modules/semver/ranges/gtr.js +0 -6
  289. package/node_modules/semver/ranges/intersects.js +0 -9
  290. package/node_modules/semver/ranges/ltr.js +0 -6
  291. package/node_modules/semver/ranges/max-satisfying.js +0 -27
  292. package/node_modules/semver/ranges/min-satisfying.js +0 -26
  293. package/node_modules/semver/ranges/min-version.js +0 -63
  294. package/node_modules/semver/ranges/outside.js +0 -82
  295. package/node_modules/semver/ranges/simplify.js +0 -49
  296. package/node_modules/semver/ranges/subset.js +0 -249
  297. package/node_modules/semver/ranges/to-comparators.js +0 -10
  298. package/node_modules/semver/ranges/valid.js +0 -13
  299. package/node_modules/simple-concat/LICENSE +0 -20
  300. package/node_modules/simple-concat/README.md +0 -44
  301. package/node_modules/simple-concat/index.js +0 -15
  302. package/node_modules/simple-concat/package.json +0 -47
  303. package/node_modules/simple-concat/test/basic.js +0 -41
  304. package/node_modules/simple-get/LICENSE +0 -20
  305. package/node_modules/simple-get/README.md +0 -333
  306. package/node_modules/simple-get/index.js +0 -108
  307. package/node_modules/simple-get/package.json +0 -67
  308. package/node_modules/string_decoder/LICENSE +0 -48
  309. package/node_modules/string_decoder/README.md +0 -47
  310. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  311. package/node_modules/string_decoder/package.json +0 -34
  312. package/node_modules/strip-json-comments/index.js +0 -70
  313. package/node_modules/strip-json-comments/license +0 -21
  314. package/node_modules/strip-json-comments/package.json +0 -42
  315. package/node_modules/strip-json-comments/readme.md +0 -64
  316. package/node_modules/tar-fs/LICENSE +0 -21
  317. package/node_modules/tar-fs/README.md +0 -165
  318. package/node_modules/tar-fs/index.js +0 -363
  319. package/node_modules/tar-fs/package.json +0 -41
  320. package/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  321. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  322. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  323. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  324. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  325. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  326. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  327. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  328. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  329. package/node_modules/tar-fs/test/index.js +0 -346
  330. package/node_modules/tar-stream/LICENSE +0 -21
  331. package/node_modules/tar-stream/README.md +0 -168
  332. package/node_modules/tar-stream/extract.js +0 -257
  333. package/node_modules/tar-stream/headers.js +0 -295
  334. package/node_modules/tar-stream/index.js +0 -2
  335. package/node_modules/tar-stream/pack.js +0 -255
  336. package/node_modules/tar-stream/package.json +0 -58
  337. package/node_modules/tar-stream/sandbox.js +0 -11
  338. package/node_modules/tunnel-agent/LICENSE +0 -55
  339. package/node_modules/tunnel-agent/README.md +0 -4
  340. package/node_modules/tunnel-agent/index.js +0 -244
  341. package/node_modules/tunnel-agent/package.json +0 -22
  342. package/node_modules/util-deprecate/History.md +0 -16
  343. package/node_modules/util-deprecate/LICENSE +0 -24
  344. package/node_modules/util-deprecate/README.md +0 -53
  345. package/node_modules/util-deprecate/browser.js +0 -67
  346. package/node_modules/util-deprecate/node.js +0 -6
  347. package/node_modules/util-deprecate/package.json +0 -27
  348. package/node_modules/wrappy/LICENSE +0 -15
  349. package/node_modules/wrappy/README.md +0 -36
  350. package/node_modules/wrappy/package.json +0 -29
  351. package/node_modules/wrappy/wrappy.js +0 -33
  352. /package/dist/ui/_next/static/{RRGcvhHfSg9Hi88CSZtgd → _oIkVA-8sboc_20lcPBrb}/_buildManifest.js +0 -0
  353. /package/dist/ui/_next/static/{RRGcvhHfSg9Hi88CSZtgd → _oIkVA-8sboc_20lcPBrb}/_clientMiddlewareManifest.json +0 -0
  354. /package/dist/ui/_next/static/{RRGcvhHfSg9Hi88CSZtgd → _oIkVA-8sboc_20lcPBrb}/_ssgManifest.js +0 -0
@@ -1,869 +0,0 @@
1
- 'use strict'
2
-
3
- const tape = require('tape')
4
- const crypto = require('crypto')
5
- const fs = require('fs')
6
- const path = require('path')
7
- const BufferList = require('../')
8
- const { Buffer } = require('buffer')
9
-
10
- const encodings =
11
- ('hex utf8 utf-8 ascii binary base64' +
12
- (process.browser ? '' : ' ucs2 ucs-2 utf16le utf-16le')).split(' ')
13
-
14
- require('./indexOf')
15
- require('./isBufferList')
16
- require('./convert')
17
-
18
- tape('single bytes from single buffer', function (t) {
19
- const bl = new BufferList()
20
-
21
- bl.append(Buffer.from('abcd'))
22
-
23
- t.equal(bl.length, 4)
24
- t.equal(bl.get(-1), undefined)
25
- t.equal(bl.get(0), 97)
26
- t.equal(bl.get(1), 98)
27
- t.equal(bl.get(2), 99)
28
- t.equal(bl.get(3), 100)
29
- t.equal(bl.get(4), undefined)
30
-
31
- t.end()
32
- })
33
-
34
- tape('single bytes from multiple buffers', function (t) {
35
- const bl = new BufferList()
36
-
37
- bl.append(Buffer.from('abcd'))
38
- bl.append(Buffer.from('efg'))
39
- bl.append(Buffer.from('hi'))
40
- bl.append(Buffer.from('j'))
41
-
42
- t.equal(bl.length, 10)
43
-
44
- t.equal(bl.get(0), 97)
45
- t.equal(bl.get(1), 98)
46
- t.equal(bl.get(2), 99)
47
- t.equal(bl.get(3), 100)
48
- t.equal(bl.get(4), 101)
49
- t.equal(bl.get(5), 102)
50
- t.equal(bl.get(6), 103)
51
- t.equal(bl.get(7), 104)
52
- t.equal(bl.get(8), 105)
53
- t.equal(bl.get(9), 106)
54
-
55
- t.end()
56
- })
57
-
58
- tape('multi bytes from single buffer', function (t) {
59
- const bl = new BufferList()
60
-
61
- bl.append(Buffer.from('abcd'))
62
-
63
- t.equal(bl.length, 4)
64
-
65
- t.equal(bl.slice(0, 4).toString('ascii'), 'abcd')
66
- t.equal(bl.slice(0, 3).toString('ascii'), 'abc')
67
- t.equal(bl.slice(1, 4).toString('ascii'), 'bcd')
68
- t.equal(bl.slice(-4, -1).toString('ascii'), 'abc')
69
-
70
- t.end()
71
- })
72
-
73
- tape('multi bytes from single buffer (negative indexes)', function (t) {
74
- const bl = new BufferList()
75
-
76
- bl.append(Buffer.from('buffer'))
77
-
78
- t.equal(bl.length, 6)
79
-
80
- t.equal(bl.slice(-6, -1).toString('ascii'), 'buffe')
81
- t.equal(bl.slice(-6, -2).toString('ascii'), 'buff')
82
- t.equal(bl.slice(-5, -2).toString('ascii'), 'uff')
83
-
84
- t.end()
85
- })
86
-
87
- tape('multiple bytes from multiple buffers', function (t) {
88
- const bl = new BufferList()
89
-
90
- bl.append(Buffer.from('abcd'))
91
- bl.append(Buffer.from('efg'))
92
- bl.append(Buffer.from('hi'))
93
- bl.append(Buffer.from('j'))
94
-
95
- t.equal(bl.length, 10)
96
-
97
- t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij')
98
- t.equal(bl.slice(3, 10).toString('ascii'), 'defghij')
99
- t.equal(bl.slice(3, 6).toString('ascii'), 'def')
100
- t.equal(bl.slice(3, 8).toString('ascii'), 'defgh')
101
- t.equal(bl.slice(5, 10).toString('ascii'), 'fghij')
102
- t.equal(bl.slice(-7, -4).toString('ascii'), 'def')
103
-
104
- t.end()
105
- })
106
-
107
- tape('multiple bytes from multiple buffer lists', function (t) {
108
- const bl = new BufferList()
109
-
110
- bl.append(new BufferList([Buffer.from('abcd'), Buffer.from('efg')]))
111
- bl.append(new BufferList([Buffer.from('hi'), Buffer.from('j')]))
112
-
113
- t.equal(bl.length, 10)
114
-
115
- t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij')
116
-
117
- t.equal(bl.slice(3, 10).toString('ascii'), 'defghij')
118
- t.equal(bl.slice(3, 6).toString('ascii'), 'def')
119
- t.equal(bl.slice(3, 8).toString('ascii'), 'defgh')
120
- t.equal(bl.slice(5, 10).toString('ascii'), 'fghij')
121
-
122
- t.end()
123
- })
124
-
125
- // same data as previous test, just using nested constructors
126
- tape('multiple bytes from crazy nested buffer lists', function (t) {
127
- const bl = new BufferList()
128
-
129
- bl.append(new BufferList([
130
- new BufferList([
131
- new BufferList(Buffer.from('abc')),
132
- Buffer.from('d'),
133
- new BufferList(Buffer.from('efg'))
134
- ]),
135
- new BufferList([Buffer.from('hi')]),
136
- new BufferList(Buffer.from('j'))
137
- ]))
138
-
139
- t.equal(bl.length, 10)
140
-
141
- t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij')
142
-
143
- t.equal(bl.slice(3, 10).toString('ascii'), 'defghij')
144
- t.equal(bl.slice(3, 6).toString('ascii'), 'def')
145
- t.equal(bl.slice(3, 8).toString('ascii'), 'defgh')
146
- t.equal(bl.slice(5, 10).toString('ascii'), 'fghij')
147
-
148
- t.end()
149
- })
150
-
151
- tape('append accepts arrays of Buffers', function (t) {
152
- const bl = new BufferList()
153
-
154
- bl.append(Buffer.from('abc'))
155
- bl.append([Buffer.from('def')])
156
- bl.append([Buffer.from('ghi'), Buffer.from('jkl')])
157
- bl.append([Buffer.from('mnop'), Buffer.from('qrstu'), Buffer.from('vwxyz')])
158
- t.equal(bl.length, 26)
159
- t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz')
160
-
161
- t.end()
162
- })
163
-
164
- tape('append accepts arrays of Uint8Arrays', function (t) {
165
- const bl = new BufferList()
166
-
167
- bl.append(new Uint8Array([97, 98, 99]))
168
- bl.append([Uint8Array.from([100, 101, 102])])
169
- bl.append([new Uint8Array([103, 104, 105]), new Uint8Array([106, 107, 108])])
170
- bl.append([new Uint8Array([109, 110, 111, 112]), new Uint8Array([113, 114, 115, 116, 117]), new Uint8Array([118, 119, 120, 121, 122])])
171
- t.equal(bl.length, 26)
172
- t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz')
173
-
174
- t.end()
175
- })
176
-
177
- tape('append accepts arrays of BufferLists', function (t) {
178
- const bl = new BufferList()
179
-
180
- bl.append(Buffer.from('abc'))
181
- bl.append([new BufferList('def')])
182
- bl.append(new BufferList([Buffer.from('ghi'), new BufferList('jkl')]))
183
- bl.append([Buffer.from('mnop'), new BufferList([Buffer.from('qrstu'), Buffer.from('vwxyz')])])
184
- t.equal(bl.length, 26)
185
- t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz')
186
-
187
- t.end()
188
- })
189
-
190
- tape('append chainable', function (t) {
191
- const bl = new BufferList()
192
-
193
- t.ok(bl.append(Buffer.from('abcd')) === bl)
194
- t.ok(bl.append([Buffer.from('abcd')]) === bl)
195
- t.ok(bl.append(new BufferList(Buffer.from('abcd'))) === bl)
196
- t.ok(bl.append([new BufferList(Buffer.from('abcd'))]) === bl)
197
-
198
- t.end()
199
- })
200
-
201
- tape('append chainable (test results)', function (t) {
202
- const bl = new BufferList('abc')
203
- .append([new BufferList('def')])
204
- .append(new BufferList([Buffer.from('ghi'), new BufferList('jkl')]))
205
- .append([Buffer.from('mnop'), new BufferList([Buffer.from('qrstu'), Buffer.from('vwxyz')])])
206
-
207
- t.equal(bl.length, 26)
208
- t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz')
209
-
210
- t.end()
211
- })
212
-
213
- tape('consuming from multiple buffers', function (t) {
214
- const bl = new BufferList()
215
-
216
- bl.append(Buffer.from('abcd'))
217
- bl.append(Buffer.from('efg'))
218
- bl.append(Buffer.from('hi'))
219
- bl.append(Buffer.from('j'))
220
-
221
- t.equal(bl.length, 10)
222
-
223
- t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij')
224
-
225
- bl.consume(3)
226
- t.equal(bl.length, 7)
227
- t.equal(bl.slice(0, 7).toString('ascii'), 'defghij')
228
-
229
- bl.consume(2)
230
- t.equal(bl.length, 5)
231
- t.equal(bl.slice(0, 5).toString('ascii'), 'fghij')
232
-
233
- bl.consume(1)
234
- t.equal(bl.length, 4)
235
- t.equal(bl.slice(0, 4).toString('ascii'), 'ghij')
236
-
237
- bl.consume(1)
238
- t.equal(bl.length, 3)
239
- t.equal(bl.slice(0, 3).toString('ascii'), 'hij')
240
-
241
- bl.consume(2)
242
- t.equal(bl.length, 1)
243
- t.equal(bl.slice(0, 1).toString('ascii'), 'j')
244
-
245
- t.end()
246
- })
247
-
248
- tape('complete consumption', function (t) {
249
- const bl = new BufferList()
250
-
251
- bl.append(Buffer.from('a'))
252
- bl.append(Buffer.from('b'))
253
-
254
- bl.consume(2)
255
-
256
- t.equal(bl.length, 0)
257
- t.equal(bl._bufs.length, 0)
258
-
259
- t.end()
260
- })
261
-
262
- tape('test readUInt8 / readInt8', function (t) {
263
- const buf1 = Buffer.alloc(1)
264
- const buf2 = Buffer.alloc(3)
265
- const buf3 = Buffer.alloc(3)
266
- const bl = new BufferList()
267
-
268
- buf1[0] = 0x1
269
- buf2[1] = 0x3
270
- buf2[2] = 0x4
271
- buf3[0] = 0x23
272
- buf3[1] = 0x42
273
-
274
- bl.append(buf1)
275
- bl.append(buf2)
276
- bl.append(buf3)
277
-
278
- t.equal(bl.readUInt8(), 0x1)
279
- t.equal(bl.readUInt8(2), 0x3)
280
- t.equal(bl.readInt8(2), 0x3)
281
- t.equal(bl.readUInt8(3), 0x4)
282
- t.equal(bl.readInt8(3), 0x4)
283
- t.equal(bl.readUInt8(4), 0x23)
284
- t.equal(bl.readInt8(4), 0x23)
285
- t.equal(bl.readUInt8(5), 0x42)
286
- t.equal(bl.readInt8(5), 0x42)
287
-
288
- t.end()
289
- })
290
-
291
- tape('test readUInt16LE / readUInt16BE / readInt16LE / readInt16BE', function (t) {
292
- const buf1 = Buffer.alloc(1)
293
- const buf2 = Buffer.alloc(3)
294
- const buf3 = Buffer.alloc(3)
295
- const bl = new BufferList()
296
-
297
- buf1[0] = 0x1
298
- buf2[1] = 0x3
299
- buf2[2] = 0x4
300
- buf3[0] = 0x23
301
- buf3[1] = 0x42
302
-
303
- bl.append(buf1)
304
- bl.append(buf2)
305
- bl.append(buf3)
306
-
307
- t.equal(bl.readUInt16BE(), 0x0100)
308
- t.equal(bl.readUInt16LE(), 0x0001)
309
- t.equal(bl.readUInt16BE(2), 0x0304)
310
- t.equal(bl.readUInt16LE(2), 0x0403)
311
- t.equal(bl.readInt16BE(2), 0x0304)
312
- t.equal(bl.readInt16LE(2), 0x0403)
313
- t.equal(bl.readUInt16BE(3), 0x0423)
314
- t.equal(bl.readUInt16LE(3), 0x2304)
315
- t.equal(bl.readInt16BE(3), 0x0423)
316
- t.equal(bl.readInt16LE(3), 0x2304)
317
- t.equal(bl.readUInt16BE(4), 0x2342)
318
- t.equal(bl.readUInt16LE(4), 0x4223)
319
- t.equal(bl.readInt16BE(4), 0x2342)
320
- t.equal(bl.readInt16LE(4), 0x4223)
321
-
322
- t.end()
323
- })
324
-
325
- tape('test readUInt32LE / readUInt32BE / readInt32LE / readInt32BE', function (t) {
326
- const buf1 = Buffer.alloc(1)
327
- const buf2 = Buffer.alloc(3)
328
- const buf3 = Buffer.alloc(3)
329
- const bl = new BufferList()
330
-
331
- buf1[0] = 0x1
332
- buf2[1] = 0x3
333
- buf2[2] = 0x4
334
- buf3[0] = 0x23
335
- buf3[1] = 0x42
336
-
337
- bl.append(buf1)
338
- bl.append(buf2)
339
- bl.append(buf3)
340
-
341
- t.equal(bl.readUInt32BE(), 0x01000304)
342
- t.equal(bl.readUInt32LE(), 0x04030001)
343
- t.equal(bl.readUInt32BE(2), 0x03042342)
344
- t.equal(bl.readUInt32LE(2), 0x42230403)
345
- t.equal(bl.readInt32BE(2), 0x03042342)
346
- t.equal(bl.readInt32LE(2), 0x42230403)
347
-
348
- t.end()
349
- })
350
-
351
- tape('test readUIntLE / readUIntBE / readIntLE / readIntBE', function (t) {
352
- const buf1 = Buffer.alloc(1)
353
- const buf2 = Buffer.alloc(3)
354
- const buf3 = Buffer.alloc(3)
355
- const bl = new BufferList()
356
-
357
- buf2[0] = 0x2
358
- buf2[1] = 0x3
359
- buf2[2] = 0x4
360
- buf3[0] = 0x23
361
- buf3[1] = 0x42
362
- buf3[2] = 0x61
363
-
364
- bl.append(buf1)
365
- bl.append(buf2)
366
- bl.append(buf3)
367
-
368
- t.equal(bl.readUIntBE(1, 1), 0x02)
369
- t.equal(bl.readUIntBE(1, 2), 0x0203)
370
- t.equal(bl.readUIntBE(1, 3), 0x020304)
371
- t.equal(bl.readUIntBE(1, 4), 0x02030423)
372
- t.equal(bl.readUIntBE(1, 5), 0x0203042342)
373
- t.equal(bl.readUIntBE(1, 6), 0x020304234261)
374
- t.equal(bl.readUIntLE(1, 1), 0x02)
375
- t.equal(bl.readUIntLE(1, 2), 0x0302)
376
- t.equal(bl.readUIntLE(1, 3), 0x040302)
377
- t.equal(bl.readUIntLE(1, 4), 0x23040302)
378
- t.equal(bl.readUIntLE(1, 5), 0x4223040302)
379
- t.equal(bl.readUIntLE(1, 6), 0x614223040302)
380
- t.equal(bl.readIntBE(1, 1), 0x02)
381
- t.equal(bl.readIntBE(1, 2), 0x0203)
382
- t.equal(bl.readIntBE(1, 3), 0x020304)
383
- t.equal(bl.readIntBE(1, 4), 0x02030423)
384
- t.equal(bl.readIntBE(1, 5), 0x0203042342)
385
- t.equal(bl.readIntBE(1, 6), 0x020304234261)
386
- t.equal(bl.readIntLE(1, 1), 0x02)
387
- t.equal(bl.readIntLE(1, 2), 0x0302)
388
- t.equal(bl.readIntLE(1, 3), 0x040302)
389
- t.equal(bl.readIntLE(1, 4), 0x23040302)
390
- t.equal(bl.readIntLE(1, 5), 0x4223040302)
391
- t.equal(bl.readIntLE(1, 6), 0x614223040302)
392
-
393
- t.end()
394
- })
395
-
396
- tape('test readFloatLE / readFloatBE', function (t) {
397
- const buf1 = Buffer.alloc(1)
398
- const buf2 = Buffer.alloc(3)
399
- const buf3 = Buffer.alloc(3)
400
- const bl = new BufferList()
401
-
402
- buf1[0] = 0x01
403
- buf2[1] = 0x00
404
- buf2[2] = 0x00
405
- buf3[0] = 0x80
406
- buf3[1] = 0x3f
407
-
408
- bl.append(buf1)
409
- bl.append(buf2)
410
- bl.append(buf3)
411
-
412
- const canonical = Buffer.concat([buf1, buf2, buf3])
413
- t.equal(bl.readFloatLE(), canonical.readFloatLE())
414
- t.equal(bl.readFloatBE(), canonical.readFloatBE())
415
- t.equal(bl.readFloatLE(2), canonical.readFloatLE(2))
416
- t.equal(bl.readFloatBE(2), canonical.readFloatBE(2))
417
-
418
- t.end()
419
- })
420
-
421
- tape('test readDoubleLE / readDoubleBE', function (t) {
422
- const buf1 = Buffer.alloc(1)
423
- const buf2 = Buffer.alloc(3)
424
- const buf3 = Buffer.alloc(10)
425
- const bl = new BufferList()
426
-
427
- buf1[0] = 0x01
428
- buf2[1] = 0x55
429
- buf2[2] = 0x55
430
- buf3[0] = 0x55
431
- buf3[1] = 0x55
432
- buf3[2] = 0x55
433
- buf3[3] = 0x55
434
- buf3[4] = 0xd5
435
- buf3[5] = 0x3f
436
-
437
- bl.append(buf1)
438
- bl.append(buf2)
439
- bl.append(buf3)
440
-
441
- const canonical = Buffer.concat([buf1, buf2, buf3])
442
- t.equal(bl.readDoubleBE(), canonical.readDoubleBE())
443
- t.equal(bl.readDoubleLE(), canonical.readDoubleLE())
444
- t.equal(bl.readDoubleBE(2), canonical.readDoubleBE(2))
445
- t.equal(bl.readDoubleLE(2), canonical.readDoubleLE(2))
446
-
447
- t.end()
448
- })
449
-
450
- tape('test toString', function (t) {
451
- const bl = new BufferList()
452
-
453
- bl.append(Buffer.from('abcd'))
454
- bl.append(Buffer.from('efg'))
455
- bl.append(Buffer.from('hi'))
456
- bl.append(Buffer.from('j'))
457
-
458
- t.equal(bl.toString('ascii', 0, 10), 'abcdefghij')
459
- t.equal(bl.toString('ascii', 3, 10), 'defghij')
460
- t.equal(bl.toString('ascii', 3, 6), 'def')
461
- t.equal(bl.toString('ascii', 3, 8), 'defgh')
462
- t.equal(bl.toString('ascii', 5, 10), 'fghij')
463
-
464
- t.end()
465
- })
466
-
467
- tape('test toString encoding', function (t) {
468
- const bl = new BufferList()
469
- const b = Buffer.from('abcdefghij\xff\x00')
470
-
471
- bl.append(Buffer.from('abcd'))
472
- bl.append(Buffer.from('efg'))
473
- bl.append(Buffer.from('hi'))
474
- bl.append(Buffer.from('j'))
475
- bl.append(Buffer.from('\xff\x00'))
476
-
477
- encodings.forEach(function (enc) {
478
- t.equal(bl.toString(enc), b.toString(enc), enc)
479
- })
480
-
481
- t.end()
482
- })
483
-
484
- tape('uninitialized memory', function (t) {
485
- const secret = crypto.randomBytes(256)
486
- for (let i = 0; i < 1e6; i++) {
487
- const clone = Buffer.from(secret)
488
- const bl = new BufferList()
489
- bl.append(Buffer.from('a'))
490
- bl.consume(-1024)
491
- const buf = bl.slice(1)
492
- if (buf.indexOf(clone) !== -1) {
493
- t.fail(`Match (at ${i})`)
494
- break
495
- }
496
- }
497
- t.end()
498
- })
499
-
500
- !process.browser && tape('test stream', function (t) {
501
- const random = crypto.randomBytes(65534)
502
-
503
- const bl = new BufferList((err, buf) => {
504
- t.ok(Buffer.isBuffer(buf))
505
- t.ok(err === null)
506
- t.ok(random.equals(bl.slice()))
507
- t.ok(random.equals(buf.slice()))
508
-
509
- bl.pipe(fs.createWriteStream('/tmp/bl_test_rnd_out.dat'))
510
- .on('close', function () {
511
- const rndhash = crypto.createHash('md5').update(random).digest('hex')
512
- const md5sum = crypto.createHash('md5')
513
- const s = fs.createReadStream('/tmp/bl_test_rnd_out.dat')
514
-
515
- s.on('data', md5sum.update.bind(md5sum))
516
- s.on('end', function () {
517
- t.equal(rndhash, md5sum.digest('hex'), 'woohoo! correct hash!')
518
- t.end()
519
- })
520
- })
521
- })
522
-
523
- fs.writeFileSync('/tmp/bl_test_rnd.dat', random)
524
- fs.createReadStream('/tmp/bl_test_rnd.dat').pipe(bl)
525
- })
526
-
527
- tape('instantiation with Buffer', function (t) {
528
- const buf = crypto.randomBytes(1024)
529
- const buf2 = crypto.randomBytes(1024)
530
- let b = BufferList(buf)
531
-
532
- t.equal(buf.toString('hex'), b.slice().toString('hex'), 'same buffer')
533
- b = BufferList([buf, buf2])
534
- t.equal(b.slice().toString('hex'), Buffer.concat([buf, buf2]).toString('hex'), 'same buffer')
535
-
536
- t.end()
537
- })
538
-
539
- tape('test String appendage', function (t) {
540
- const bl = new BufferList()
541
- const b = Buffer.from('abcdefghij\xff\x00')
542
-
543
- bl.append('abcd')
544
- bl.append('efg')
545
- bl.append('hi')
546
- bl.append('j')
547
- bl.append('\xff\x00')
548
-
549
- encodings.forEach(function (enc) {
550
- t.equal(bl.toString(enc), b.toString(enc))
551
- })
552
-
553
- t.end()
554
- })
555
-
556
- tape('test Number appendage', function (t) {
557
- const bl = new BufferList()
558
- const b = Buffer.from('1234567890')
559
-
560
- bl.append(1234)
561
- bl.append(567)
562
- bl.append(89)
563
- bl.append(0)
564
-
565
- encodings.forEach(function (enc) {
566
- t.equal(bl.toString(enc), b.toString(enc))
567
- })
568
-
569
- t.end()
570
- })
571
-
572
- tape('write nothing, should get empty buffer', function (t) {
573
- t.plan(3)
574
- BufferList(function (err, data) {
575
- t.notOk(err, 'no error')
576
- t.ok(Buffer.isBuffer(data), 'got a buffer')
577
- t.equal(0, data.length, 'got a zero-length buffer')
578
- t.end()
579
- }).end()
580
- })
581
-
582
- tape('unicode string', function (t) {
583
- t.plan(2)
584
-
585
- const inp1 = '\u2600'
586
- const inp2 = '\u2603'
587
- const exp = inp1 + ' and ' + inp2
588
- const bl = BufferList()
589
-
590
- bl.write(inp1)
591
- bl.write(' and ')
592
- bl.write(inp2)
593
- t.equal(exp, bl.toString())
594
- t.equal(Buffer.from(exp).toString('hex'), bl.toString('hex'))
595
- })
596
-
597
- tape('should emit finish', function (t) {
598
- const source = BufferList()
599
- const dest = BufferList()
600
-
601
- source.write('hello')
602
- source.pipe(dest)
603
-
604
- dest.on('finish', function () {
605
- t.equal(dest.toString('utf8'), 'hello')
606
- t.end()
607
- })
608
- })
609
-
610
- tape('basic copy', function (t) {
611
- const buf = crypto.randomBytes(1024)
612
- const buf2 = Buffer.alloc(1024)
613
- const b = BufferList(buf)
614
-
615
- b.copy(buf2)
616
- t.equal(b.slice().toString('hex'), buf2.toString('hex'), 'same buffer')
617
-
618
- t.end()
619
- })
620
-
621
- tape('copy after many appends', function (t) {
622
- const buf = crypto.randomBytes(512)
623
- const buf2 = Buffer.alloc(1024)
624
- const b = BufferList(buf)
625
-
626
- b.append(buf)
627
- b.copy(buf2)
628
- t.equal(b.slice().toString('hex'), buf2.toString('hex'), 'same buffer')
629
-
630
- t.end()
631
- })
632
-
633
- tape('copy at a precise position', function (t) {
634
- const buf = crypto.randomBytes(1004)
635
- const buf2 = Buffer.alloc(1024)
636
- const b = BufferList(buf)
637
-
638
- b.copy(buf2, 20)
639
- t.equal(b.slice().toString('hex'), buf2.slice(20).toString('hex'), 'same buffer')
640
-
641
- t.end()
642
- })
643
-
644
- tape('copy starting from a precise location', function (t) {
645
- const buf = crypto.randomBytes(10)
646
- const buf2 = Buffer.alloc(5)
647
- const b = BufferList(buf)
648
-
649
- b.copy(buf2, 0, 5)
650
- t.equal(b.slice(5).toString('hex'), buf2.toString('hex'), 'same buffer')
651
-
652
- t.end()
653
- })
654
-
655
- tape('copy in an interval', function (t) {
656
- const rnd = crypto.randomBytes(10)
657
- const b = BufferList(rnd) // put the random bytes there
658
- const actual = Buffer.alloc(3)
659
- const expected = Buffer.alloc(3)
660
-
661
- rnd.copy(expected, 0, 5, 8)
662
- b.copy(actual, 0, 5, 8)
663
-
664
- t.equal(actual.toString('hex'), expected.toString('hex'), 'same buffer')
665
-
666
- t.end()
667
- })
668
-
669
- tape('copy an interval between two buffers', function (t) {
670
- const buf = crypto.randomBytes(10)
671
- const buf2 = Buffer.alloc(10)
672
- const b = BufferList(buf)
673
-
674
- b.append(buf)
675
- b.copy(buf2, 0, 5, 15)
676
-
677
- t.equal(b.slice(5, 15).toString('hex'), buf2.toString('hex'), 'same buffer')
678
-
679
- t.end()
680
- })
681
-
682
- tape('shallow slice across buffer boundaries', function (t) {
683
- const bl = new BufferList(['First', 'Second', 'Third'])
684
-
685
- t.equal(bl.shallowSlice(3, 13).toString(), 'stSecondTh')
686
-
687
- t.end()
688
- })
689
-
690
- tape('shallow slice within single buffer', function (t) {
691
- t.plan(2)
692
-
693
- const bl = new BufferList(['First', 'Second', 'Third'])
694
-
695
- t.equal(bl.shallowSlice(5, 10).toString(), 'Secon')
696
- t.equal(bl.shallowSlice(7, 10).toString(), 'con')
697
-
698
- t.end()
699
- })
700
-
701
- tape('shallow slice single buffer', function (t) {
702
- t.plan(3)
703
-
704
- const bl = new BufferList(['First', 'Second', 'Third'])
705
-
706
- t.equal(bl.shallowSlice(0, 5).toString(), 'First')
707
- t.equal(bl.shallowSlice(5, 11).toString(), 'Second')
708
- t.equal(bl.shallowSlice(11, 16).toString(), 'Third')
709
- })
710
-
711
- tape('shallow slice with negative or omitted indices', function (t) {
712
- t.plan(4)
713
-
714
- const bl = new BufferList(['First', 'Second', 'Third'])
715
-
716
- t.equal(bl.shallowSlice().toString(), 'FirstSecondThird')
717
- t.equal(bl.shallowSlice(5).toString(), 'SecondThird')
718
- t.equal(bl.shallowSlice(5, -3).toString(), 'SecondTh')
719
- t.equal(bl.shallowSlice(-8).toString(), 'ondThird')
720
- })
721
-
722
- tape('shallow slice does not make a copy', function (t) {
723
- t.plan(1)
724
-
725
- const buffers = [Buffer.from('First'), Buffer.from('Second'), Buffer.from('Third')]
726
- const bl = (new BufferList(buffers)).shallowSlice(5, -3)
727
-
728
- buffers[1].fill('h')
729
- buffers[2].fill('h')
730
-
731
- t.equal(bl.toString(), 'hhhhhhhh')
732
- })
733
-
734
- tape('shallow slice with 0 length', function (t) {
735
- t.plan(1)
736
-
737
- const buffers = [Buffer.from('First'), Buffer.from('Second'), Buffer.from('Third')]
738
- const bl = (new BufferList(buffers)).shallowSlice(0, 0)
739
-
740
- t.equal(bl.length, 0)
741
- })
742
-
743
- tape('shallow slice with 0 length from middle', function (t) {
744
- t.plan(1)
745
-
746
- const buffers = [Buffer.from('First'), Buffer.from('Second'), Buffer.from('Third')]
747
- const bl = (new BufferList(buffers)).shallowSlice(10, 10)
748
-
749
- t.equal(bl.length, 0)
750
- })
751
-
752
- tape('duplicate', function (t) {
753
- t.plan(2)
754
-
755
- const bl = new BufferList('abcdefghij\xff\x00')
756
- const dup = bl.duplicate()
757
-
758
- t.equal(bl.prototype, dup.prototype)
759
- t.equal(bl.toString('hex'), dup.toString('hex'))
760
- })
761
-
762
- tape('destroy no pipe', function (t) {
763
- t.plan(2)
764
-
765
- const bl = new BufferList('alsdkfja;lsdkfja;lsdk')
766
-
767
- bl.destroy()
768
-
769
- t.equal(bl._bufs.length, 0)
770
- t.equal(bl.length, 0)
771
- })
772
-
773
- tape('destroy with error', function (t) {
774
- t.plan(3)
775
-
776
- const bl = new BufferList('alsdkfja;lsdkfja;lsdk')
777
- const err = new Error('kaboom')
778
-
779
- bl.destroy(err)
780
- bl.on('error', function (_err) {
781
- t.equal(_err, err)
782
- })
783
-
784
- t.equal(bl._bufs.length, 0)
785
- t.equal(bl.length, 0)
786
- })
787
-
788
- !process.browser && tape('destroy with pipe before read end', function (t) {
789
- t.plan(2)
790
-
791
- const bl = new BufferList()
792
- fs.createReadStream(path.join(__dirname, '/test.js'))
793
- .pipe(bl)
794
-
795
- bl.destroy()
796
-
797
- t.equal(bl._bufs.length, 0)
798
- t.equal(bl.length, 0)
799
- })
800
-
801
- !process.browser && tape('destroy with pipe before read end with race', function (t) {
802
- t.plan(2)
803
-
804
- const bl = new BufferList()
805
-
806
- fs.createReadStream(path.join(__dirname, '/test.js'))
807
- .pipe(bl)
808
-
809
- setTimeout(function () {
810
- bl.destroy()
811
- setTimeout(function () {
812
- t.equal(bl._bufs.length, 0)
813
- t.equal(bl.length, 0)
814
- }, 500)
815
- }, 500)
816
- })
817
-
818
- !process.browser && tape('destroy with pipe after read end', function (t) {
819
- t.plan(2)
820
-
821
- const bl = new BufferList()
822
-
823
- fs.createReadStream(path.join(__dirname, '/test.js'))
824
- .on('end', onEnd)
825
- .pipe(bl)
826
-
827
- function onEnd () {
828
- bl.destroy()
829
-
830
- t.equal(bl._bufs.length, 0)
831
- t.equal(bl.length, 0)
832
- }
833
- })
834
-
835
- !process.browser && tape('destroy with pipe while writing to a destination', function (t) {
836
- t.plan(4)
837
-
838
- const bl = new BufferList()
839
- const ds = new BufferList()
840
-
841
- fs.createReadStream(path.join(__dirname, '/test.js'))
842
- .on('end', onEnd)
843
- .pipe(bl)
844
-
845
- function onEnd () {
846
- bl.pipe(ds)
847
-
848
- setTimeout(function () {
849
- bl.destroy()
850
-
851
- t.equals(bl._bufs.length, 0)
852
- t.equals(bl.length, 0)
853
-
854
- ds.destroy()
855
-
856
- t.equals(bl._bufs.length, 0)
857
- t.equals(bl.length, 0)
858
- }, 100)
859
- }
860
- })
861
-
862
- !process.browser && tape('handle error', function (t) {
863
- t.plan(2)
864
-
865
- fs.createReadStream('/does/not/exist').pipe(BufferList(function (err, data) {
866
- t.ok(err instanceof Error, 'has error')
867
- t.notOk(data, 'no data')
868
- }))
869
- })