node-datachannel 0.5.0-dev → 0.5.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 (333) hide show
  1. package/CMakeLists.txt +1 -1
  2. package/examples/electron-demo/package-lock.json +164 -419
  3. package/examples/electron-demo/package.json +2 -2
  4. package/lib/index.d.ts +5 -0
  5. package/lib/index.js +33 -2
  6. package/package.json +1 -5
  7. package/polyfill/RTCDtlsTransport.js +30 -12
  8. package/polyfill/RTCIceCandidate.js +1 -1
  9. package/polyfill/RTCIceTransport.js +48 -21
  10. package/polyfill/RTCPeerConnection.js +46 -23
  11. package/polyfill/RTCSctpTransport.js +33 -14
  12. package/src/peer-connection-wrapper.cpp +50 -0
  13. package/src/peer-connection-wrapper.h +2 -0
  14. package/test/connectivity.js +1 -1
  15. package/test/polyfill-connectivity.js +2 -1
  16. package/test/test.js +2 -2
  17. package/examples/build/Dockerfile +0 -30
  18. package/examples/build/README.md +0 -24
  19. package/node_modules/base64-js/LICENSE +0 -21
  20. package/node_modules/base64-js/README.md +0 -34
  21. package/node_modules/base64-js/base64js.min.js +0 -1
  22. package/node_modules/base64-js/index.d.ts +0 -3
  23. package/node_modules/base64-js/index.js +0 -150
  24. package/node_modules/base64-js/package.json +0 -47
  25. package/node_modules/buffer/AUTHORS.md +0 -70
  26. package/node_modules/buffer/LICENSE +0 -21
  27. package/node_modules/buffer/README.md +0 -410
  28. package/node_modules/buffer/index.d.ts +0 -186
  29. package/node_modules/buffer/index.js +0 -1817
  30. package/node_modules/buffer/package.json +0 -96
  31. package/node_modules/chownr/LICENSE +0 -15
  32. package/node_modules/chownr/README.md +0 -3
  33. package/node_modules/chownr/chownr.js +0 -167
  34. package/node_modules/chownr/package.json +0 -29
  35. package/node_modules/decompress-response/index.d.ts +0 -22
  36. package/node_modules/decompress-response/index.js +0 -58
  37. package/node_modules/decompress-response/license +0 -9
  38. package/node_modules/decompress-response/package.json +0 -56
  39. package/node_modules/decompress-response/readme.md +0 -48
  40. package/node_modules/deep-extend/CHANGELOG.md +0 -46
  41. package/node_modules/deep-extend/LICENSE +0 -20
  42. package/node_modules/deep-extend/README.md +0 -91
  43. package/node_modules/deep-extend/index.js +0 -1
  44. package/node_modules/deep-extend/lib/deep-extend.js +0 -150
  45. package/node_modules/deep-extend/package.json +0 -62
  46. package/node_modules/detect-libc/LICENSE +0 -201
  47. package/node_modules/detect-libc/README.md +0 -163
  48. package/node_modules/detect-libc/index.d.ts +0 -14
  49. package/node_modules/detect-libc/lib/detect-libc.js +0 -279
  50. package/node_modules/detect-libc/lib/filesystem.js +0 -41
  51. package/node_modules/detect-libc/lib/process.js +0 -19
  52. package/node_modules/detect-libc/package.json +0 -40
  53. package/node_modules/end-of-stream/LICENSE +0 -21
  54. package/node_modules/end-of-stream/README.md +0 -54
  55. package/node_modules/end-of-stream/index.js +0 -94
  56. package/node_modules/end-of-stream/package.json +0 -37
  57. package/node_modules/expand-template/.travis.yml +0 -6
  58. package/node_modules/expand-template/LICENSE +0 -21
  59. package/node_modules/expand-template/README.md +0 -43
  60. package/node_modules/expand-template/index.js +0 -26
  61. package/node_modules/expand-template/package.json +0 -29
  62. package/node_modules/expand-template/test.js +0 -67
  63. package/node_modules/fs-constants/LICENSE +0 -21
  64. package/node_modules/fs-constants/README.md +0 -26
  65. package/node_modules/fs-constants/browser.js +0 -1
  66. package/node_modules/fs-constants/index.js +0 -1
  67. package/node_modules/fs-constants/package.json +0 -19
  68. package/node_modules/github-from-package/.travis.yml +0 -4
  69. package/node_modules/github-from-package/LICENSE +0 -18
  70. package/node_modules/github-from-package/example/package.json +0 -8
  71. package/node_modules/github-from-package/example/url.js +0 -3
  72. package/node_modules/github-from-package/index.js +0 -17
  73. package/node_modules/github-from-package/package.json +0 -30
  74. package/node_modules/github-from-package/readme.markdown +0 -53
  75. package/node_modules/github-from-package/test/a.json +0 -8
  76. package/node_modules/github-from-package/test/b.json +0 -5
  77. package/node_modules/github-from-package/test/c.json +0 -5
  78. package/node_modules/github-from-package/test/d.json +0 -7
  79. package/node_modules/github-from-package/test/e.json +0 -5
  80. package/node_modules/github-from-package/test/url.js +0 -19
  81. package/node_modules/ieee754/LICENSE +0 -11
  82. package/node_modules/ieee754/README.md +0 -51
  83. package/node_modules/ieee754/index.d.ts +0 -10
  84. package/node_modules/ieee754/index.js +0 -85
  85. package/node_modules/ieee754/package.json +0 -52
  86. package/node_modules/inherits/LICENSE +0 -16
  87. package/node_modules/inherits/README.md +0 -42
  88. package/node_modules/inherits/inherits.js +0 -9
  89. package/node_modules/inherits/inherits_browser.js +0 -27
  90. package/node_modules/inherits/package.json +0 -29
  91. package/node_modules/ini/LICENSE +0 -15
  92. package/node_modules/ini/README.md +0 -102
  93. package/node_modules/ini/ini.js +0 -206
  94. package/node_modules/ini/package.json +0 -33
  95. package/node_modules/mimic-response/index.d.ts +0 -17
  96. package/node_modules/mimic-response/index.js +0 -77
  97. package/node_modules/mimic-response/license +0 -9
  98. package/node_modules/mimic-response/package.json +0 -42
  99. package/node_modules/mimic-response/readme.md +0 -78
  100. package/node_modules/minimist/.eslintrc +0 -29
  101. package/node_modules/minimist/.github/FUNDING.yml +0 -12
  102. package/node_modules/minimist/.nycrc +0 -14
  103. package/node_modules/minimist/CHANGELOG.md +0 -298
  104. package/node_modules/minimist/LICENSE +0 -18
  105. package/node_modules/minimist/README.md +0 -121
  106. package/node_modules/minimist/example/parse.js +0 -4
  107. package/node_modules/minimist/index.js +0 -263
  108. package/node_modules/minimist/package.json +0 -75
  109. package/node_modules/minimist/test/all_bool.js +0 -34
  110. package/node_modules/minimist/test/bool.js +0 -177
  111. package/node_modules/minimist/test/dash.js +0 -43
  112. package/node_modules/minimist/test/default_bool.js +0 -37
  113. package/node_modules/minimist/test/dotted.js +0 -24
  114. package/node_modules/minimist/test/kv_short.js +0 -32
  115. package/node_modules/minimist/test/long.js +0 -33
  116. package/node_modules/minimist/test/num.js +0 -38
  117. package/node_modules/minimist/test/parse.js +0 -209
  118. package/node_modules/minimist/test/parse_modified.js +0 -11
  119. package/node_modules/minimist/test/proto.js +0 -64
  120. package/node_modules/minimist/test/short.js +0 -69
  121. package/node_modules/minimist/test/stop_early.js +0 -17
  122. package/node_modules/minimist/test/unknown.js +0 -104
  123. package/node_modules/minimist/test/whitespace.js +0 -10
  124. package/node_modules/mkdirp-classic/LICENSE +0 -21
  125. package/node_modules/mkdirp-classic/README.md +0 -18
  126. package/node_modules/mkdirp-classic/index.js +0 -98
  127. package/node_modules/mkdirp-classic/package.json +0 -18
  128. package/node_modules/napi-build-utils/LICENSE +0 -21
  129. package/node_modules/napi-build-utils/README.md +0 -48
  130. package/node_modules/napi-build-utils/index.js +0 -213
  131. package/node_modules/napi-build-utils/index.md +0 -81
  132. package/node_modules/napi-build-utils/package.json +0 -41
  133. package/node_modules/node-abi/LICENSE +0 -21
  134. package/node_modules/node-abi/README.md +0 -52
  135. package/node_modules/node-abi/abi_registry.json +0 -276
  136. package/node_modules/node-abi/index.js +0 -179
  137. package/node_modules/node-abi/package.json +0 -41
  138. package/node_modules/once/LICENSE +0 -15
  139. package/node_modules/once/README.md +0 -79
  140. package/node_modules/once/once.js +0 -42
  141. package/node_modules/once/package.json +0 -33
  142. package/node_modules/prebuild-install/CHANGELOG.md +0 -116
  143. package/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  144. package/node_modules/prebuild-install/LICENSE +0 -21
  145. package/node_modules/prebuild-install/README.md +0 -163
  146. package/node_modules/prebuild-install/asset.js +0 -44
  147. package/node_modules/prebuild-install/bin.js +0 -78
  148. package/node_modules/prebuild-install/download.js +0 -142
  149. package/node_modules/prebuild-install/error.js +0 -14
  150. package/node_modules/prebuild-install/help.txt +0 -16
  151. package/node_modules/prebuild-install/index.js +0 -1
  152. package/node_modules/prebuild-install/log.js +0 -33
  153. package/node_modules/prebuild-install/package.json +0 -67
  154. package/node_modules/prebuild-install/proxy.js +0 -35
  155. package/node_modules/prebuild-install/rc.js +0 -64
  156. package/node_modules/prebuild-install/util.js +0 -143
  157. package/node_modules/pump/.travis.yml +0 -5
  158. package/node_modules/pump/LICENSE +0 -21
  159. package/node_modules/pump/README.md +0 -65
  160. package/node_modules/pump/index.js +0 -82
  161. package/node_modules/pump/package.json +0 -24
  162. package/node_modules/pump/test-browser.js +0 -66
  163. package/node_modules/pump/test-node.js +0 -53
  164. package/node_modules/rc/LICENSE.APACHE2 +0 -15
  165. package/node_modules/rc/LICENSE.BSD +0 -26
  166. package/node_modules/rc/LICENSE.MIT +0 -24
  167. package/node_modules/rc/README.md +0 -227
  168. package/node_modules/rc/browser.js +0 -7
  169. package/node_modules/rc/cli.js +0 -4
  170. package/node_modules/rc/index.js +0 -53
  171. package/node_modules/rc/lib/utils.js +0 -104
  172. package/node_modules/rc/node_modules/strip-json-comments/index.js +0 -70
  173. package/node_modules/rc/node_modules/strip-json-comments/license +0 -21
  174. package/node_modules/rc/node_modules/strip-json-comments/package.json +0 -42
  175. package/node_modules/rc/node_modules/strip-json-comments/readme.md +0 -64
  176. package/node_modules/rc/package.json +0 -29
  177. package/node_modules/rc/test/ini.js +0 -16
  178. package/node_modules/rc/test/nested-env-vars.js +0 -50
  179. package/node_modules/rc/test/test.js +0 -59
  180. package/node_modules/safe-buffer/LICENSE +0 -21
  181. package/node_modules/safe-buffer/README.md +0 -584
  182. package/node_modules/safe-buffer/index.d.ts +0 -187
  183. package/node_modules/safe-buffer/index.js +0 -65
  184. package/node_modules/safe-buffer/package.json +0 -51
  185. package/node_modules/semver/LICENSE +0 -15
  186. package/node_modules/semver/README.md +0 -637
  187. package/node_modules/semver/bin/semver.js +0 -197
  188. package/node_modules/semver/classes/comparator.js +0 -141
  189. package/node_modules/semver/classes/index.js +0 -5
  190. package/node_modules/semver/classes/range.js +0 -539
  191. package/node_modules/semver/classes/semver.js +0 -302
  192. package/node_modules/semver/functions/clean.js +0 -6
  193. package/node_modules/semver/functions/cmp.js +0 -52
  194. package/node_modules/semver/functions/coerce.js +0 -52
  195. package/node_modules/semver/functions/compare-build.js +0 -7
  196. package/node_modules/semver/functions/compare-loose.js +0 -3
  197. package/node_modules/semver/functions/compare.js +0 -5
  198. package/node_modules/semver/functions/diff.js +0 -65
  199. package/node_modules/semver/functions/eq.js +0 -3
  200. package/node_modules/semver/functions/gt.js +0 -3
  201. package/node_modules/semver/functions/gte.js +0 -3
  202. package/node_modules/semver/functions/inc.js +0 -19
  203. package/node_modules/semver/functions/lt.js +0 -3
  204. package/node_modules/semver/functions/lte.js +0 -3
  205. package/node_modules/semver/functions/major.js +0 -3
  206. package/node_modules/semver/functions/minor.js +0 -3
  207. package/node_modules/semver/functions/neq.js +0 -3
  208. package/node_modules/semver/functions/parse.js +0 -16
  209. package/node_modules/semver/functions/patch.js +0 -3
  210. package/node_modules/semver/functions/prerelease.js +0 -6
  211. package/node_modules/semver/functions/rcompare.js +0 -3
  212. package/node_modules/semver/functions/rsort.js +0 -3
  213. package/node_modules/semver/functions/satisfies.js +0 -10
  214. package/node_modules/semver/functions/sort.js +0 -3
  215. package/node_modules/semver/functions/valid.js +0 -6
  216. package/node_modules/semver/index.js +0 -89
  217. package/node_modules/semver/internal/constants.js +0 -35
  218. package/node_modules/semver/internal/debug.js +0 -9
  219. package/node_modules/semver/internal/identifiers.js +0 -23
  220. package/node_modules/semver/internal/parse-options.js +0 -15
  221. package/node_modules/semver/internal/re.js +0 -212
  222. package/node_modules/semver/node_modules/lru-cache/LICENSE +0 -15
  223. package/node_modules/semver/node_modules/lru-cache/README.md +0 -166
  224. package/node_modules/semver/node_modules/lru-cache/index.js +0 -334
  225. package/node_modules/semver/node_modules/lru-cache/package.json +0 -34
  226. package/node_modules/semver/node_modules/yallist/LICENSE +0 -15
  227. package/node_modules/semver/node_modules/yallist/README.md +0 -204
  228. package/node_modules/semver/node_modules/yallist/iterator.js +0 -8
  229. package/node_modules/semver/node_modules/yallist/package.json +0 -29
  230. package/node_modules/semver/node_modules/yallist/yallist.js +0 -426
  231. package/node_modules/semver/package.json +0 -87
  232. package/node_modules/semver/preload.js +0 -2
  233. package/node_modules/semver/range.bnf +0 -16
  234. package/node_modules/semver/ranges/gtr.js +0 -4
  235. package/node_modules/semver/ranges/intersects.js +0 -7
  236. package/node_modules/semver/ranges/ltr.js +0 -4
  237. package/node_modules/semver/ranges/max-satisfying.js +0 -25
  238. package/node_modules/semver/ranges/min-satisfying.js +0 -24
  239. package/node_modules/semver/ranges/min-version.js +0 -61
  240. package/node_modules/semver/ranges/outside.js +0 -80
  241. package/node_modules/semver/ranges/simplify.js +0 -47
  242. package/node_modules/semver/ranges/subset.js +0 -247
  243. package/node_modules/semver/ranges/to-comparators.js +0 -8
  244. package/node_modules/semver/ranges/valid.js +0 -11
  245. package/node_modules/simple-concat/.travis.yml +0 -3
  246. package/node_modules/simple-concat/LICENSE +0 -20
  247. package/node_modules/simple-concat/README.md +0 -44
  248. package/node_modules/simple-concat/index.js +0 -15
  249. package/node_modules/simple-concat/package.json +0 -47
  250. package/node_modules/simple-concat/test/basic.js +0 -41
  251. package/node_modules/simple-get/.github/dependabot.yml +0 -15
  252. package/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  253. package/node_modules/simple-get/LICENSE +0 -20
  254. package/node_modules/simple-get/README.md +0 -333
  255. package/node_modules/simple-get/index.js +0 -108
  256. package/node_modules/simple-get/package.json +0 -67
  257. package/node_modules/tar-fs/.travis.yml +0 -6
  258. package/node_modules/tar-fs/LICENSE +0 -21
  259. package/node_modules/tar-fs/README.md +0 -165
  260. package/node_modules/tar-fs/index.js +0 -351
  261. package/node_modules/tar-fs/node_modules/bl/.travis.yml +0 -17
  262. package/node_modules/tar-fs/node_modules/bl/BufferList.js +0 -396
  263. package/node_modules/tar-fs/node_modules/bl/LICENSE.md +0 -13
  264. package/node_modules/tar-fs/node_modules/bl/README.md +0 -247
  265. package/node_modules/tar-fs/node_modules/bl/bl.js +0 -84
  266. package/node_modules/tar-fs/node_modules/bl/package.json +0 -37
  267. package/node_modules/tar-fs/node_modules/bl/test/convert.js +0 -21
  268. package/node_modules/tar-fs/node_modules/bl/test/indexOf.js +0 -492
  269. package/node_modules/tar-fs/node_modules/bl/test/isBufferList.js +0 -32
  270. package/node_modules/tar-fs/node_modules/bl/test/test.js +0 -869
  271. package/node_modules/tar-fs/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  272. package/node_modules/tar-fs/node_modules/readable-stream/GOVERNANCE.md +0 -136
  273. package/node_modules/tar-fs/node_modules/readable-stream/LICENSE +0 -47
  274. package/node_modules/tar-fs/node_modules/readable-stream/README.md +0 -106
  275. package/node_modules/tar-fs/node_modules/readable-stream/errors-browser.js +0 -127
  276. package/node_modules/tar-fs/node_modules/readable-stream/errors.js +0 -116
  277. package/node_modules/tar-fs/node_modules/readable-stream/experimentalWarning.js +0 -17
  278. package/node_modules/tar-fs/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  279. package/node_modules/tar-fs/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  280. package/node_modules/tar-fs/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  281. package/node_modules/tar-fs/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  282. package/node_modules/tar-fs/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  283. package/node_modules/tar-fs/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  284. package/node_modules/tar-fs/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  285. package/node_modules/tar-fs/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  286. package/node_modules/tar-fs/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  287. package/node_modules/tar-fs/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  288. package/node_modules/tar-fs/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  289. package/node_modules/tar-fs/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  290. package/node_modules/tar-fs/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  291. package/node_modules/tar-fs/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  292. package/node_modules/tar-fs/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  293. package/node_modules/tar-fs/node_modules/readable-stream/package.json +0 -68
  294. package/node_modules/tar-fs/node_modules/readable-stream/readable-browser.js +0 -9
  295. package/node_modules/tar-fs/node_modules/readable-stream/readable.js +0 -16
  296. package/node_modules/tar-fs/node_modules/string_decoder/LICENSE +0 -48
  297. package/node_modules/tar-fs/node_modules/string_decoder/README.md +0 -47
  298. package/node_modules/tar-fs/node_modules/string_decoder/lib/string_decoder.js +0 -296
  299. package/node_modules/tar-fs/node_modules/string_decoder/package.json +0 -34
  300. package/node_modules/tar-fs/node_modules/tar-stream/LICENSE +0 -21
  301. package/node_modules/tar-fs/node_modules/tar-stream/README.md +0 -168
  302. package/node_modules/tar-fs/node_modules/tar-stream/extract.js +0 -257
  303. package/node_modules/tar-fs/node_modules/tar-stream/headers.js +0 -295
  304. package/node_modules/tar-fs/node_modules/tar-stream/index.js +0 -2
  305. package/node_modules/tar-fs/node_modules/tar-stream/pack.js +0 -255
  306. package/node_modules/tar-fs/node_modules/tar-stream/package.json +0 -58
  307. package/node_modules/tar-fs/node_modules/tar-stream/sandbox.js +0 -11
  308. package/node_modules/tar-fs/package.json +0 -41
  309. package/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  310. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  311. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  312. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  313. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  314. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  315. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  316. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  317. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  318. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  319. package/node_modules/tar-fs/test/index.js +0 -346
  320. package/node_modules/tunnel-agent/LICENSE +0 -55
  321. package/node_modules/tunnel-agent/README.md +0 -4
  322. package/node_modules/tunnel-agent/index.js +0 -244
  323. package/node_modules/tunnel-agent/package.json +0 -22
  324. package/node_modules/util-deprecate/History.md +0 -16
  325. package/node_modules/util-deprecate/LICENSE +0 -24
  326. package/node_modules/util-deprecate/README.md +0 -53
  327. package/node_modules/util-deprecate/browser.js +0 -67
  328. package/node_modules/util-deprecate/node.js +0 -6
  329. package/node_modules/util-deprecate/package.json +0 -27
  330. package/node_modules/wrappy/LICENSE +0 -15
  331. package/node_modules/wrappy/README.md +0 -36
  332. package/node_modules/wrappy/package.json +0 -29
  333. package/node_modules/wrappy/wrappy.js +0 -33
@@ -1,168 +0,0 @@
1
- # tar-stream
2
-
3
- tar-stream is a streaming tar parser and generator and nothing else. It is streams2 and operates purely using streams which means you can easily extract/parse tarballs without ever hitting the file system.
4
-
5
- Note that you still need to gunzip your data if you have a `.tar.gz`. We recommend using [gunzip-maybe](https://github.com/mafintosh/gunzip-maybe) in conjunction with this.
6
-
7
- ```
8
- npm install tar-stream
9
- ```
10
-
11
- [![build status](https://secure.travis-ci.org/mafintosh/tar-stream.png)](http://travis-ci.org/mafintosh/tar-stream)
12
- [![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT)
13
-
14
- ## Usage
15
-
16
- tar-stream exposes two streams, [pack](https://github.com/mafintosh/tar-stream#packing) which creates tarballs and [extract](https://github.com/mafintosh/tar-stream#extracting) which extracts tarballs. To [modify an existing tarball](https://github.com/mafintosh/tar-stream#modifying-existing-tarballs) use both.
17
-
18
-
19
- It implementes USTAR with additional support for pax extended headers. It should be compatible with all popular tar distributions out there (gnutar, bsdtar etc)
20
-
21
- ## Related
22
-
23
- If you want to pack/unpack directories on the file system check out [tar-fs](https://github.com/mafintosh/tar-fs) which provides file system bindings to this module.
24
-
25
- ## Packing
26
-
27
- To create a pack stream use `tar.pack()` and call `pack.entry(header, [callback])` to add tar entries.
28
-
29
- ``` js
30
- var tar = require('tar-stream')
31
- var pack = tar.pack() // pack is a streams2 stream
32
-
33
- // add a file called my-test.txt with the content "Hello World!"
34
- pack.entry({ name: 'my-test.txt' }, 'Hello World!')
35
-
36
- // add a file called my-stream-test.txt from a stream
37
- var entry = pack.entry({ name: 'my-stream-test.txt', size: 11 }, function(err) {
38
- // the stream was added
39
- // no more entries
40
- pack.finalize()
41
- })
42
-
43
- entry.write('hello')
44
- entry.write(' ')
45
- entry.write('world')
46
- entry.end()
47
-
48
- // pipe the pack stream somewhere
49
- pack.pipe(process.stdout)
50
- ```
51
-
52
- ## Extracting
53
-
54
- To extract a stream use `tar.extract()` and listen for `extract.on('entry', (header, stream, next) )`
55
-
56
- ``` js
57
- var extract = tar.extract()
58
-
59
- extract.on('entry', function(header, stream, next) {
60
- // header is the tar header
61
- // stream is the content body (might be an empty stream)
62
- // call next when you are done with this entry
63
-
64
- stream.on('end', function() {
65
- next() // ready for next entry
66
- })
67
-
68
- stream.resume() // just auto drain the stream
69
- })
70
-
71
- extract.on('finish', function() {
72
- // all entries read
73
- })
74
-
75
- pack.pipe(extract)
76
- ```
77
-
78
- The tar archive is streamed sequentially, meaning you **must** drain each entry's stream as you get them or else the main extract stream will receive backpressure and stop reading.
79
-
80
- ## Headers
81
-
82
- The header object using in `entry` should contain the following properties.
83
- Most of these values can be found by stat'ing a file.
84
-
85
- ``` js
86
- {
87
- name: 'path/to/this/entry.txt',
88
- size: 1314, // entry size. defaults to 0
89
- mode: 0o644, // entry mode. defaults to to 0o755 for dirs and 0o644 otherwise
90
- mtime: new Date(), // last modified date for entry. defaults to now.
91
- type: 'file', // type of entry. defaults to file. can be:
92
- // file | link | symlink | directory | block-device
93
- // character-device | fifo | contiguous-file
94
- linkname: 'path', // linked file name
95
- uid: 0, // uid of entry owner. defaults to 0
96
- gid: 0, // gid of entry owner. defaults to 0
97
- uname: 'maf', // uname of entry owner. defaults to null
98
- gname: 'staff', // gname of entry owner. defaults to null
99
- devmajor: 0, // device major version. defaults to 0
100
- devminor: 0 // device minor version. defaults to 0
101
- }
102
- ```
103
-
104
- ## Modifying existing tarballs
105
-
106
- Using tar-stream it is easy to rewrite paths / change modes etc in an existing tarball.
107
-
108
- ``` js
109
- var extract = tar.extract()
110
- var pack = tar.pack()
111
- var path = require('path')
112
-
113
- extract.on('entry', function(header, stream, callback) {
114
- // let's prefix all names with 'tmp'
115
- header.name = path.join('tmp', header.name)
116
- // write the new entry to the pack stream
117
- stream.pipe(pack.entry(header, callback))
118
- })
119
-
120
- extract.on('finish', function() {
121
- // all entries done - lets finalize it
122
- pack.finalize()
123
- })
124
-
125
- // pipe the old tarball to the extractor
126
- oldTarballStream.pipe(extract)
127
-
128
- // pipe the new tarball the another stream
129
- pack.pipe(newTarballStream)
130
- ```
131
-
132
- ## Saving tarball to fs
133
-
134
-
135
- ``` js
136
- var fs = require('fs')
137
- var tar = require('tar-stream')
138
-
139
- var pack = tar.pack() // pack is a streams2 stream
140
- var path = 'YourTarBall.tar'
141
- var yourTarball = fs.createWriteStream(path)
142
-
143
- // add a file called YourFile.txt with the content "Hello World!"
144
- pack.entry({name: 'YourFile.txt'}, 'Hello World!', function (err) {
145
- if (err) throw err
146
- pack.finalize()
147
- })
148
-
149
- // pipe the pack stream to your file
150
- pack.pipe(yourTarball)
151
-
152
- yourTarball.on('close', function () {
153
- console.log(path + ' has been written')
154
- fs.stat(path, function(err, stats) {
155
- if (err) throw err
156
- console.log(stats)
157
- console.log('Got file info successfully!')
158
- })
159
- })
160
- ```
161
-
162
- ## Performance
163
-
164
- [See tar-fs for a performance comparison with node-tar](https://github.com/mafintosh/tar-fs/blob/master/README.md#performance)
165
-
166
- # License
167
-
168
- MIT
@@ -1,257 +0,0 @@
1
- var util = require('util')
2
- var bl = require('bl')
3
- var headers = require('./headers')
4
-
5
- var Writable = require('readable-stream').Writable
6
- var PassThrough = require('readable-stream').PassThrough
7
-
8
- var noop = function () {}
9
-
10
- var overflow = function (size) {
11
- size &= 511
12
- return size && 512 - size
13
- }
14
-
15
- var emptyStream = function (self, offset) {
16
- var s = new Source(self, offset)
17
- s.end()
18
- return s
19
- }
20
-
21
- var mixinPax = function (header, pax) {
22
- if (pax.path) header.name = pax.path
23
- if (pax.linkpath) header.linkname = pax.linkpath
24
- if (pax.size) header.size = parseInt(pax.size, 10)
25
- header.pax = pax
26
- return header
27
- }
28
-
29
- var Source = function (self, offset) {
30
- this._parent = self
31
- this.offset = offset
32
- PassThrough.call(this, { autoDestroy: false })
33
- }
34
-
35
- util.inherits(Source, PassThrough)
36
-
37
- Source.prototype.destroy = function (err) {
38
- this._parent.destroy(err)
39
- }
40
-
41
- var Extract = function (opts) {
42
- if (!(this instanceof Extract)) return new Extract(opts)
43
- Writable.call(this, opts)
44
-
45
- opts = opts || {}
46
-
47
- this._offset = 0
48
- this._buffer = bl()
49
- this._missing = 0
50
- this._partial = false
51
- this._onparse = noop
52
- this._header = null
53
- this._stream = null
54
- this._overflow = null
55
- this._cb = null
56
- this._locked = false
57
- this._destroyed = false
58
- this._pax = null
59
- this._paxGlobal = null
60
- this._gnuLongPath = null
61
- this._gnuLongLinkPath = null
62
-
63
- var self = this
64
- var b = self._buffer
65
-
66
- var oncontinue = function () {
67
- self._continue()
68
- }
69
-
70
- var onunlock = function (err) {
71
- self._locked = false
72
- if (err) return self.destroy(err)
73
- if (!self._stream) oncontinue()
74
- }
75
-
76
- var onstreamend = function () {
77
- self._stream = null
78
- var drain = overflow(self._header.size)
79
- if (drain) self._parse(drain, ondrain)
80
- else self._parse(512, onheader)
81
- if (!self._locked) oncontinue()
82
- }
83
-
84
- var ondrain = function () {
85
- self._buffer.consume(overflow(self._header.size))
86
- self._parse(512, onheader)
87
- oncontinue()
88
- }
89
-
90
- var onpaxglobalheader = function () {
91
- var size = self._header.size
92
- self._paxGlobal = headers.decodePax(b.slice(0, size))
93
- b.consume(size)
94
- onstreamend()
95
- }
96
-
97
- var onpaxheader = function () {
98
- var size = self._header.size
99
- self._pax = headers.decodePax(b.slice(0, size))
100
- if (self._paxGlobal) self._pax = Object.assign({}, self._paxGlobal, self._pax)
101
- b.consume(size)
102
- onstreamend()
103
- }
104
-
105
- var ongnulongpath = function () {
106
- var size = self._header.size
107
- this._gnuLongPath = headers.decodeLongPath(b.slice(0, size), opts.filenameEncoding)
108
- b.consume(size)
109
- onstreamend()
110
- }
111
-
112
- var ongnulonglinkpath = function () {
113
- var size = self._header.size
114
- this._gnuLongLinkPath = headers.decodeLongPath(b.slice(0, size), opts.filenameEncoding)
115
- b.consume(size)
116
- onstreamend()
117
- }
118
-
119
- var onheader = function () {
120
- var offset = self._offset
121
- var header
122
- try {
123
- header = self._header = headers.decode(b.slice(0, 512), opts.filenameEncoding, opts.allowUnknownFormat)
124
- } catch (err) {
125
- self.emit('error', err)
126
- }
127
- b.consume(512)
128
-
129
- if (!header) {
130
- self._parse(512, onheader)
131
- oncontinue()
132
- return
133
- }
134
- if (header.type === 'gnu-long-path') {
135
- self._parse(header.size, ongnulongpath)
136
- oncontinue()
137
- return
138
- }
139
- if (header.type === 'gnu-long-link-path') {
140
- self._parse(header.size, ongnulonglinkpath)
141
- oncontinue()
142
- return
143
- }
144
- if (header.type === 'pax-global-header') {
145
- self._parse(header.size, onpaxglobalheader)
146
- oncontinue()
147
- return
148
- }
149
- if (header.type === 'pax-header') {
150
- self._parse(header.size, onpaxheader)
151
- oncontinue()
152
- return
153
- }
154
-
155
- if (self._gnuLongPath) {
156
- header.name = self._gnuLongPath
157
- self._gnuLongPath = null
158
- }
159
-
160
- if (self._gnuLongLinkPath) {
161
- header.linkname = self._gnuLongLinkPath
162
- self._gnuLongLinkPath = null
163
- }
164
-
165
- if (self._pax) {
166
- self._header = header = mixinPax(header, self._pax)
167
- self._pax = null
168
- }
169
-
170
- self._locked = true
171
-
172
- if (!header.size || header.type === 'directory') {
173
- self._parse(512, onheader)
174
- self.emit('entry', header, emptyStream(self, offset), onunlock)
175
- return
176
- }
177
-
178
- self._stream = new Source(self, offset)
179
-
180
- self.emit('entry', header, self._stream, onunlock)
181
- self._parse(header.size, onstreamend)
182
- oncontinue()
183
- }
184
-
185
- this._onheader = onheader
186
- this._parse(512, onheader)
187
- }
188
-
189
- util.inherits(Extract, Writable)
190
-
191
- Extract.prototype.destroy = function (err) {
192
- if (this._destroyed) return
193
- this._destroyed = true
194
-
195
- if (err) this.emit('error', err)
196
- this.emit('close')
197
- if (this._stream) this._stream.emit('close')
198
- }
199
-
200
- Extract.prototype._parse = function (size, onparse) {
201
- if (this._destroyed) return
202
- this._offset += size
203
- this._missing = size
204
- if (onparse === this._onheader) this._partial = false
205
- this._onparse = onparse
206
- }
207
-
208
- Extract.prototype._continue = function () {
209
- if (this._destroyed) return
210
- var cb = this._cb
211
- this._cb = noop
212
- if (this._overflow) this._write(this._overflow, undefined, cb)
213
- else cb()
214
- }
215
-
216
- Extract.prototype._write = function (data, enc, cb) {
217
- if (this._destroyed) return
218
-
219
- var s = this._stream
220
- var b = this._buffer
221
- var missing = this._missing
222
- if (data.length) this._partial = true
223
-
224
- // we do not reach end-of-chunk now. just forward it
225
-
226
- if (data.length < missing) {
227
- this._missing -= data.length
228
- this._overflow = null
229
- if (s) return s.write(data, cb)
230
- b.append(data)
231
- return cb()
232
- }
233
-
234
- // end-of-chunk. the parser should call cb.
235
-
236
- this._cb = cb
237
- this._missing = 0
238
-
239
- var overflow = null
240
- if (data.length > missing) {
241
- overflow = data.slice(missing)
242
- data = data.slice(0, missing)
243
- }
244
-
245
- if (s) s.end(data)
246
- else b.append(data)
247
-
248
- this._overflow = overflow
249
- this._onparse()
250
- }
251
-
252
- Extract.prototype._final = function (cb) {
253
- if (this._partial) return this.destroy(new Error('Unexpected end of data'))
254
- cb()
255
- }
256
-
257
- module.exports = Extract
@@ -1,295 +0,0 @@
1
- var alloc = Buffer.alloc
2
-
3
- var ZEROS = '0000000000000000000'
4
- var SEVENS = '7777777777777777777'
5
- var ZERO_OFFSET = '0'.charCodeAt(0)
6
- var USTAR_MAGIC = Buffer.from('ustar\x00', 'binary')
7
- var USTAR_VER = Buffer.from('00', 'binary')
8
- var GNU_MAGIC = Buffer.from('ustar\x20', 'binary')
9
- var GNU_VER = Buffer.from('\x20\x00', 'binary')
10
- var MASK = parseInt('7777', 8)
11
- var MAGIC_OFFSET = 257
12
- var VERSION_OFFSET = 263
13
-
14
- var clamp = function (index, len, defaultValue) {
15
- if (typeof index !== 'number') return defaultValue
16
- index = ~~index // Coerce to integer.
17
- if (index >= len) return len
18
- if (index >= 0) return index
19
- index += len
20
- if (index >= 0) return index
21
- return 0
22
- }
23
-
24
- var toType = function (flag) {
25
- switch (flag) {
26
- case 0:
27
- return 'file'
28
- case 1:
29
- return 'link'
30
- case 2:
31
- return 'symlink'
32
- case 3:
33
- return 'character-device'
34
- case 4:
35
- return 'block-device'
36
- case 5:
37
- return 'directory'
38
- case 6:
39
- return 'fifo'
40
- case 7:
41
- return 'contiguous-file'
42
- case 72:
43
- return 'pax-header'
44
- case 55:
45
- return 'pax-global-header'
46
- case 27:
47
- return 'gnu-long-link-path'
48
- case 28:
49
- case 30:
50
- return 'gnu-long-path'
51
- }
52
-
53
- return null
54
- }
55
-
56
- var toTypeflag = function (flag) {
57
- switch (flag) {
58
- case 'file':
59
- return 0
60
- case 'link':
61
- return 1
62
- case 'symlink':
63
- return 2
64
- case 'character-device':
65
- return 3
66
- case 'block-device':
67
- return 4
68
- case 'directory':
69
- return 5
70
- case 'fifo':
71
- return 6
72
- case 'contiguous-file':
73
- return 7
74
- case 'pax-header':
75
- return 72
76
- }
77
-
78
- return 0
79
- }
80
-
81
- var indexOf = function (block, num, offset, end) {
82
- for (; offset < end; offset++) {
83
- if (block[offset] === num) return offset
84
- }
85
- return end
86
- }
87
-
88
- var cksum = function (block) {
89
- var sum = 8 * 32
90
- for (var i = 0; i < 148; i++) sum += block[i]
91
- for (var j = 156; j < 512; j++) sum += block[j]
92
- return sum
93
- }
94
-
95
- var encodeOct = function (val, n) {
96
- val = val.toString(8)
97
- if (val.length > n) return SEVENS.slice(0, n) + ' '
98
- else return ZEROS.slice(0, n - val.length) + val + ' '
99
- }
100
-
101
- /* Copied from the node-tar repo and modified to meet
102
- * tar-stream coding standard.
103
- *
104
- * Source: https://github.com/npm/node-tar/blob/51b6627a1f357d2eb433e7378e5f05e83b7aa6cd/lib/header.js#L349
105
- */
106
- function parse256 (buf) {
107
- // first byte MUST be either 80 or FF
108
- // 80 for positive, FF for 2's comp
109
- var positive
110
- if (buf[0] === 0x80) positive = true
111
- else if (buf[0] === 0xFF) positive = false
112
- else return null
113
-
114
- // build up a base-256 tuple from the least sig to the highest
115
- var tuple = []
116
- for (var i = buf.length - 1; i > 0; i--) {
117
- var byte = buf[i]
118
- if (positive) tuple.push(byte)
119
- else tuple.push(0xFF - byte)
120
- }
121
-
122
- var sum = 0
123
- var l = tuple.length
124
- for (i = 0; i < l; i++) {
125
- sum += tuple[i] * Math.pow(256, i)
126
- }
127
-
128
- return positive ? sum : -1 * sum
129
- }
130
-
131
- var decodeOct = function (val, offset, length) {
132
- val = val.slice(offset, offset + length)
133
- offset = 0
134
-
135
- // If prefixed with 0x80 then parse as a base-256 integer
136
- if (val[offset] & 0x80) {
137
- return parse256(val)
138
- } else {
139
- // Older versions of tar can prefix with spaces
140
- while (offset < val.length && val[offset] === 32) offset++
141
- var end = clamp(indexOf(val, 32, offset, val.length), val.length, val.length)
142
- while (offset < end && val[offset] === 0) offset++
143
- if (end === offset) return 0
144
- return parseInt(val.slice(offset, end).toString(), 8)
145
- }
146
- }
147
-
148
- var decodeStr = function (val, offset, length, encoding) {
149
- return val.slice(offset, indexOf(val, 0, offset, offset + length)).toString(encoding)
150
- }
151
-
152
- var addLength = function (str) {
153
- var len = Buffer.byteLength(str)
154
- var digits = Math.floor(Math.log(len) / Math.log(10)) + 1
155
- if (len + digits >= Math.pow(10, digits)) digits++
156
-
157
- return (len + digits) + str
158
- }
159
-
160
- exports.decodeLongPath = function (buf, encoding) {
161
- return decodeStr(buf, 0, buf.length, encoding)
162
- }
163
-
164
- exports.encodePax = function (opts) { // TODO: encode more stuff in pax
165
- var result = ''
166
- if (opts.name) result += addLength(' path=' + opts.name + '\n')
167
- if (opts.linkname) result += addLength(' linkpath=' + opts.linkname + '\n')
168
- var pax = opts.pax
169
- if (pax) {
170
- for (var key in pax) {
171
- result += addLength(' ' + key + '=' + pax[key] + '\n')
172
- }
173
- }
174
- return Buffer.from(result)
175
- }
176
-
177
- exports.decodePax = function (buf) {
178
- var result = {}
179
-
180
- while (buf.length) {
181
- var i = 0
182
- while (i < buf.length && buf[i] !== 32) i++
183
- var len = parseInt(buf.slice(0, i).toString(), 10)
184
- if (!len) return result
185
-
186
- var b = buf.slice(i + 1, len - 1).toString()
187
- var keyIndex = b.indexOf('=')
188
- if (keyIndex === -1) return result
189
- result[b.slice(0, keyIndex)] = b.slice(keyIndex + 1)
190
-
191
- buf = buf.slice(len)
192
- }
193
-
194
- return result
195
- }
196
-
197
- exports.encode = function (opts) {
198
- var buf = alloc(512)
199
- var name = opts.name
200
- var prefix = ''
201
-
202
- if (opts.typeflag === 5 && name[name.length - 1] !== '/') name += '/'
203
- if (Buffer.byteLength(name) !== name.length) return null // utf-8
204
-
205
- while (Buffer.byteLength(name) > 100) {
206
- var i = name.indexOf('/')
207
- if (i === -1) return null
208
- prefix += prefix ? '/' + name.slice(0, i) : name.slice(0, i)
209
- name = name.slice(i + 1)
210
- }
211
-
212
- if (Buffer.byteLength(name) > 100 || Buffer.byteLength(prefix) > 155) return null
213
- if (opts.linkname && Buffer.byteLength(opts.linkname) > 100) return null
214
-
215
- buf.write(name)
216
- buf.write(encodeOct(opts.mode & MASK, 6), 100)
217
- buf.write(encodeOct(opts.uid, 6), 108)
218
- buf.write(encodeOct(opts.gid, 6), 116)
219
- buf.write(encodeOct(opts.size, 11), 124)
220
- buf.write(encodeOct((opts.mtime.getTime() / 1000) | 0, 11), 136)
221
-
222
- buf[156] = ZERO_OFFSET + toTypeflag(opts.type)
223
-
224
- if (opts.linkname) buf.write(opts.linkname, 157)
225
-
226
- USTAR_MAGIC.copy(buf, MAGIC_OFFSET)
227
- USTAR_VER.copy(buf, VERSION_OFFSET)
228
- if (opts.uname) buf.write(opts.uname, 265)
229
- if (opts.gname) buf.write(opts.gname, 297)
230
- buf.write(encodeOct(opts.devmajor || 0, 6), 329)
231
- buf.write(encodeOct(opts.devminor || 0, 6), 337)
232
-
233
- if (prefix) buf.write(prefix, 345)
234
-
235
- buf.write(encodeOct(cksum(buf), 6), 148)
236
-
237
- return buf
238
- }
239
-
240
- exports.decode = function (buf, filenameEncoding, allowUnknownFormat) {
241
- var typeflag = buf[156] === 0 ? 0 : buf[156] - ZERO_OFFSET
242
-
243
- var name = decodeStr(buf, 0, 100, filenameEncoding)
244
- var mode = decodeOct(buf, 100, 8)
245
- var uid = decodeOct(buf, 108, 8)
246
- var gid = decodeOct(buf, 116, 8)
247
- var size = decodeOct(buf, 124, 12)
248
- var mtime = decodeOct(buf, 136, 12)
249
- var type = toType(typeflag)
250
- var linkname = buf[157] === 0 ? null : decodeStr(buf, 157, 100, filenameEncoding)
251
- var uname = decodeStr(buf, 265, 32)
252
- var gname = decodeStr(buf, 297, 32)
253
- var devmajor = decodeOct(buf, 329, 8)
254
- var devminor = decodeOct(buf, 337, 8)
255
-
256
- var c = cksum(buf)
257
-
258
- // checksum is still initial value if header was null.
259
- if (c === 8 * 32) return null
260
-
261
- // valid checksum
262
- if (c !== decodeOct(buf, 148, 8)) throw new Error('Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?')
263
-
264
- if (USTAR_MAGIC.compare(buf, MAGIC_OFFSET, MAGIC_OFFSET + 6) === 0) {
265
- // ustar (posix) format.
266
- // prepend prefix, if present.
267
- if (buf[345]) name = decodeStr(buf, 345, 155, filenameEncoding) + '/' + name
268
- } else if (GNU_MAGIC.compare(buf, MAGIC_OFFSET, MAGIC_OFFSET + 6) === 0 &&
269
- GNU_VER.compare(buf, VERSION_OFFSET, VERSION_OFFSET + 2) === 0) {
270
- // 'gnu'/'oldgnu' format. Similar to ustar, but has support for incremental and
271
- // multi-volume tarballs.
272
- } else {
273
- if (!allowUnknownFormat) {
274
- throw new Error('Invalid tar header: unknown format.')
275
- }
276
- }
277
-
278
- // to support old tar versions that use trailing / to indicate dirs
279
- if (typeflag === 0 && name && name[name.length - 1] === '/') typeflag = 5
280
-
281
- return {
282
- name,
283
- mode,
284
- uid,
285
- gid,
286
- size,
287
- mtime: new Date(1000 * mtime),
288
- type,
289
- linkname,
290
- uname,
291
- gname,
292
- devmajor,
293
- devminor
294
- }
295
- }