node-datachannel 0.1.8

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 (444) hide show
  1. package/.github/workflows/build-linux.yml +109 -0
  2. package/.github/workflows/build-mac.yml +40 -0
  3. package/.github/workflows/build-win.yml +77 -0
  4. package/.github/workflows/npm-publish-manual.yml +23 -0
  5. package/CMakeLists.txt +73 -0
  6. package/LICENSE +504 -0
  7. package/README.md +180 -0
  8. package/cmake/toolchain/arm64.cmake +17 -0
  9. package/cmake/toolchain/armv7.cmake +17 -0
  10. package/examples/README.md +21 -0
  11. package/examples/client-server/client-benchmark.js +216 -0
  12. package/examples/client-server/client-periodic.js +176 -0
  13. package/examples/client-server/client.js +113 -0
  14. package/examples/client-server/package-lock.json +126 -0
  15. package/examples/client-server/package.json +16 -0
  16. package/examples/client-server/signaling-server.js +31 -0
  17. package/lib/index.d.ts +123 -0
  18. package/lib/index.js +2 -0
  19. package/node_modules/ansi-regex/index.js +4 -0
  20. package/node_modules/ansi-regex/license +21 -0
  21. package/node_modules/ansi-regex/package.json +111 -0
  22. package/node_modules/ansi-regex/readme.md +39 -0
  23. package/node_modules/aproba/LICENSE +14 -0
  24. package/node_modules/aproba/README.md +94 -0
  25. package/node_modules/aproba/index.js +105 -0
  26. package/node_modules/aproba/package.json +65 -0
  27. package/node_modules/base64-js/LICENSE +21 -0
  28. package/node_modules/base64-js/README.md +34 -0
  29. package/node_modules/base64-js/base64js.min.js +1 -0
  30. package/node_modules/base64-js/index.d.ts +3 -0
  31. package/node_modules/base64-js/index.js +150 -0
  32. package/node_modules/base64-js/package.json +78 -0
  33. package/node_modules/buffer/AUTHORS.md +70 -0
  34. package/node_modules/buffer/LICENSE +21 -0
  35. package/node_modules/buffer/README.md +410 -0
  36. package/node_modules/buffer/index.d.ts +186 -0
  37. package/node_modules/buffer/index.js +1817 -0
  38. package/node_modules/buffer/package.json +130 -0
  39. package/node_modules/chownr/LICENSE +15 -0
  40. package/node_modules/chownr/README.md +3 -0
  41. package/node_modules/chownr/chownr.js +167 -0
  42. package/node_modules/chownr/package.json +66 -0
  43. package/node_modules/code-point-at/index.js +32 -0
  44. package/node_modules/code-point-at/license +21 -0
  45. package/node_modules/code-point-at/package.json +73 -0
  46. package/node_modules/code-point-at/readme.md +32 -0
  47. package/node_modules/console-control-strings/LICENSE +13 -0
  48. package/node_modules/console-control-strings/README.md +145 -0
  49. package/node_modules/console-control-strings/README.md~ +140 -0
  50. package/node_modules/console-control-strings/index.js +125 -0
  51. package/node_modules/console-control-strings/package.json +64 -0
  52. package/node_modules/core-util-is/LICENSE +19 -0
  53. package/node_modules/core-util-is/README.md +3 -0
  54. package/node_modules/core-util-is/float.patch +604 -0
  55. package/node_modules/core-util-is/lib/util.js +107 -0
  56. package/node_modules/core-util-is/package.json +70 -0
  57. package/node_modules/core-util-is/test.js +68 -0
  58. package/node_modules/decompress-response/index.d.ts +29 -0
  59. package/node_modules/decompress-response/index.js +40 -0
  60. package/node_modules/decompress-response/license +9 -0
  61. package/node_modules/decompress-response/package.json +85 -0
  62. package/node_modules/decompress-response/readme.md +52 -0
  63. package/node_modules/deep-extend/CHANGELOG.md +46 -0
  64. package/node_modules/deep-extend/LICENSE +20 -0
  65. package/node_modules/deep-extend/README.md +91 -0
  66. package/node_modules/deep-extend/index.js +1 -0
  67. package/node_modules/deep-extend/lib/deep-extend.js +150 -0
  68. package/node_modules/deep-extend/package.json +95 -0
  69. package/node_modules/delegates/.npmignore +1 -0
  70. package/node_modules/delegates/History.md +22 -0
  71. package/node_modules/delegates/License +20 -0
  72. package/node_modules/delegates/Makefile +8 -0
  73. package/node_modules/delegates/Readme.md +94 -0
  74. package/node_modules/delegates/index.js +121 -0
  75. package/node_modules/delegates/package.json +54 -0
  76. package/node_modules/delegates/test/index.js +94 -0
  77. package/node_modules/detect-libc/.npmignore +7 -0
  78. package/node_modules/detect-libc/LICENSE +201 -0
  79. package/node_modules/detect-libc/README.md +78 -0
  80. package/node_modules/detect-libc/bin/detect-libc.js +18 -0
  81. package/node_modules/detect-libc/lib/detect-libc.js +92 -0
  82. package/node_modules/detect-libc/package.json +74 -0
  83. package/node_modules/end-of-stream/LICENSE +21 -0
  84. package/node_modules/end-of-stream/README.md +54 -0
  85. package/node_modules/end-of-stream/index.js +94 -0
  86. package/node_modules/end-of-stream/package.json +69 -0
  87. package/node_modules/expand-template/.travis.yml +6 -0
  88. package/node_modules/expand-template/LICENSE +21 -0
  89. package/node_modules/expand-template/README.md +43 -0
  90. package/node_modules/expand-template/index.js +26 -0
  91. package/node_modules/expand-template/package.json +63 -0
  92. package/node_modules/expand-template/test.js +67 -0
  93. package/node_modules/fs-constants/LICENSE +21 -0
  94. package/node_modules/fs-constants/README.md +26 -0
  95. package/node_modules/fs-constants/browser.js +1 -0
  96. package/node_modules/fs-constants/index.js +1 -0
  97. package/node_modules/fs-constants/package.json +50 -0
  98. package/node_modules/github-from-package/.travis.yml +4 -0
  99. package/node_modules/github-from-package/LICENSE +18 -0
  100. package/node_modules/github-from-package/example/package.json +8 -0
  101. package/node_modules/github-from-package/example/url.js +3 -0
  102. package/node_modules/github-from-package/index.js +17 -0
  103. package/node_modules/github-from-package/package.json +62 -0
  104. package/node_modules/github-from-package/readme.markdown +53 -0
  105. package/node_modules/github-from-package/test/a.json +8 -0
  106. package/node_modules/github-from-package/test/b.json +5 -0
  107. package/node_modules/github-from-package/test/c.json +5 -0
  108. package/node_modules/github-from-package/test/d.json +7 -0
  109. package/node_modules/github-from-package/test/e.json +5 -0
  110. package/node_modules/github-from-package/test/url.js +19 -0
  111. package/node_modules/has-unicode/LICENSE +14 -0
  112. package/node_modules/has-unicode/README.md +43 -0
  113. package/node_modules/has-unicode/index.js +16 -0
  114. package/node_modules/has-unicode/package.json +63 -0
  115. package/node_modules/ieee754/LICENSE +11 -0
  116. package/node_modules/ieee754/README.md +51 -0
  117. package/node_modules/ieee754/index.d.ts +10 -0
  118. package/node_modules/ieee754/index.js +85 -0
  119. package/node_modules/ieee754/package.json +87 -0
  120. package/node_modules/inherits/LICENSE +16 -0
  121. package/node_modules/inherits/README.md +42 -0
  122. package/node_modules/inherits/inherits.js +9 -0
  123. package/node_modules/inherits/inherits_browser.js +27 -0
  124. package/node_modules/inherits/package.json +78 -0
  125. package/node_modules/ini/LICENSE +15 -0
  126. package/node_modules/ini/README.md +102 -0
  127. package/node_modules/ini/ini.js +194 -0
  128. package/node_modules/ini/package.json +66 -0
  129. package/node_modules/is-fullwidth-code-point/index.js +46 -0
  130. package/node_modules/is-fullwidth-code-point/license +21 -0
  131. package/node_modules/is-fullwidth-code-point/package.json +80 -0
  132. package/node_modules/is-fullwidth-code-point/readme.md +39 -0
  133. package/node_modules/isarray/.npmignore +1 -0
  134. package/node_modules/isarray/.travis.yml +4 -0
  135. package/node_modules/isarray/Makefile +6 -0
  136. package/node_modules/isarray/README.md +60 -0
  137. package/node_modules/isarray/component.json +19 -0
  138. package/node_modules/isarray/index.js +5 -0
  139. package/node_modules/isarray/package.json +77 -0
  140. package/node_modules/isarray/test.js +20 -0
  141. package/node_modules/mimic-response/index.d.ts +17 -0
  142. package/node_modules/mimic-response/index.js +38 -0
  143. package/node_modules/mimic-response/license +9 -0
  144. package/node_modules/mimic-response/package.json +77 -0
  145. package/node_modules/mimic-response/readme.md +57 -0
  146. package/node_modules/minimist/.travis.yml +8 -0
  147. package/node_modules/minimist/LICENSE +18 -0
  148. package/node_modules/minimist/example/parse.js +2 -0
  149. package/node_modules/minimist/index.js +245 -0
  150. package/node_modules/minimist/package.json +80 -0
  151. package/node_modules/minimist/readme.markdown +95 -0
  152. package/node_modules/minimist/test/all_bool.js +32 -0
  153. package/node_modules/minimist/test/bool.js +178 -0
  154. package/node_modules/minimist/test/dash.js +31 -0
  155. package/node_modules/minimist/test/default_bool.js +35 -0
  156. package/node_modules/minimist/test/dotted.js +22 -0
  157. package/node_modules/minimist/test/kv_short.js +16 -0
  158. package/node_modules/minimist/test/long.js +31 -0
  159. package/node_modules/minimist/test/num.js +36 -0
  160. package/node_modules/minimist/test/parse.js +197 -0
  161. package/node_modules/minimist/test/parse_modified.js +9 -0
  162. package/node_modules/minimist/test/proto.js +44 -0
  163. package/node_modules/minimist/test/short.js +67 -0
  164. package/node_modules/minimist/test/stop_early.js +15 -0
  165. package/node_modules/minimist/test/unknown.js +102 -0
  166. package/node_modules/minimist/test/whitespace.js +8 -0
  167. package/node_modules/mkdirp-classic/LICENSE +21 -0
  168. package/node_modules/mkdirp-classic/README.md +18 -0
  169. package/node_modules/mkdirp-classic/index.js +98 -0
  170. package/node_modules/mkdirp-classic/package.json +50 -0
  171. package/node_modules/napi-build-utils/LICENSE +21 -0
  172. package/node_modules/napi-build-utils/README.md +48 -0
  173. package/node_modules/napi-build-utils/index.js +213 -0
  174. package/node_modules/napi-build-utils/index.md +81 -0
  175. package/node_modules/napi-build-utils/package.json +72 -0
  176. package/node_modules/node-abi/.github/workflows/update-abi.yml +41 -0
  177. package/node_modules/node-abi/.travis.yml +19 -0
  178. package/node_modules/node-abi/CODE_OF_CONDUCT.md +73 -0
  179. package/node_modules/node-abi/CONTRIBUTING.md +53 -0
  180. package/node_modules/node-abi/LICENSE +21 -0
  181. package/node_modules/node-abi/README.md +50 -0
  182. package/node_modules/node-abi/abi_registry.json +99 -0
  183. package/node_modules/node-abi/index.js +170 -0
  184. package/node_modules/node-abi/package.json +69 -0
  185. package/node_modules/node-abi/scripts/update-abi-registry.js +113 -0
  186. package/node_modules/node-abi/test/index.js +174 -0
  187. package/node_modules/noop-logger/.npmignore +1 -0
  188. package/node_modules/noop-logger/History.md +16 -0
  189. package/node_modules/noop-logger/Makefile +8 -0
  190. package/node_modules/noop-logger/Readme.md +27 -0
  191. package/node_modules/noop-logger/circle.yml +9 -0
  192. package/node_modules/noop-logger/lib/index.js +25 -0
  193. package/node_modules/noop-logger/package.json +51 -0
  194. package/node_modules/noop-logger/test/index.js +18 -0
  195. package/node_modules/npmlog/CHANGELOG.md +49 -0
  196. package/node_modules/npmlog/LICENSE +15 -0
  197. package/node_modules/npmlog/README.md +216 -0
  198. package/node_modules/npmlog/log.js +309 -0
  199. package/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md +37 -0
  200. package/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE +5 -0
  201. package/node_modules/npmlog/node_modules/are-we-there-yet/README.md +195 -0
  202. package/node_modules/npmlog/node_modules/are-we-there-yet/index.js +4 -0
  203. package/node_modules/npmlog/node_modules/are-we-there-yet/package.json +66 -0
  204. package/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js +11 -0
  205. package/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js +107 -0
  206. package/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js +36 -0
  207. package/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js +30 -0
  208. package/node_modules/npmlog/node_modules/gauge/CHANGELOG.md +160 -0
  209. package/node_modules/npmlog/node_modules/gauge/LICENSE +13 -0
  210. package/node_modules/npmlog/node_modules/gauge/README.md +399 -0
  211. package/node_modules/npmlog/node_modules/gauge/base-theme.js +14 -0
  212. package/node_modules/npmlog/node_modules/gauge/error.js +24 -0
  213. package/node_modules/npmlog/node_modules/gauge/has-color.js +12 -0
  214. package/node_modules/npmlog/node_modules/gauge/index.js +233 -0
  215. package/node_modules/npmlog/node_modules/gauge/package.json +94 -0
  216. package/node_modules/npmlog/node_modules/gauge/plumbing.js +48 -0
  217. package/node_modules/npmlog/node_modules/gauge/process.js +3 -0
  218. package/node_modules/npmlog/node_modules/gauge/progress-bar.js +35 -0
  219. package/node_modules/npmlog/node_modules/gauge/render-template.js +181 -0
  220. package/node_modules/npmlog/node_modules/gauge/set-immediate.js +7 -0
  221. package/node_modules/npmlog/node_modules/gauge/set-interval.js +3 -0
  222. package/node_modules/npmlog/node_modules/gauge/spin.js +5 -0
  223. package/node_modules/npmlog/node_modules/gauge/template-item.js +73 -0
  224. package/node_modules/npmlog/node_modules/gauge/theme-set.js +115 -0
  225. package/node_modules/npmlog/node_modules/gauge/themes.js +54 -0
  226. package/node_modules/npmlog/node_modules/gauge/wide-truncate.js +25 -0
  227. package/node_modules/npmlog/package.json +78 -0
  228. package/node_modules/number-is-nan/index.js +4 -0
  229. package/node_modules/number-is-nan/license +21 -0
  230. package/node_modules/number-is-nan/package.json +70 -0
  231. package/node_modules/number-is-nan/readme.md +28 -0
  232. package/node_modules/object-assign/index.js +90 -0
  233. package/node_modules/object-assign/license +21 -0
  234. package/node_modules/object-assign/package.json +77 -0
  235. package/node_modules/object-assign/readme.md +61 -0
  236. package/node_modules/once/LICENSE +15 -0
  237. package/node_modules/once/README.md +79 -0
  238. package/node_modules/once/once.js +42 -0
  239. package/node_modules/once/package.json +74 -0
  240. package/node_modules/prebuild-install/.travis.yml +12 -0
  241. package/node_modules/prebuild-install/CHANGELOG.md +7 -0
  242. package/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  243. package/node_modules/prebuild-install/LICENSE +21 -0
  244. package/node_modules/prebuild-install/README.md +108 -0
  245. package/node_modules/prebuild-install/appveyor.yml +40 -0
  246. package/node_modules/prebuild-install/asset.js +48 -0
  247. package/node_modules/prebuild-install/bin.js +85 -0
  248. package/node_modules/prebuild-install/download.js +130 -0
  249. package/node_modules/prebuild-install/error.js +14 -0
  250. package/node_modules/prebuild-install/help.txt +14 -0
  251. package/node_modules/prebuild-install/index.js +1 -0
  252. package/node_modules/prebuild-install/log.js +13 -0
  253. package/node_modules/prebuild-install/package.json +131 -0
  254. package/node_modules/prebuild-install/proxy.js +38 -0
  255. package/node_modules/prebuild-install/rc.js +81 -0
  256. package/node_modules/prebuild-install/util.js +97 -0
  257. package/node_modules/process-nextick-args/index.js +45 -0
  258. package/node_modules/process-nextick-args/license.md +19 -0
  259. package/node_modules/process-nextick-args/package.json +53 -0
  260. package/node_modules/process-nextick-args/readme.md +18 -0
  261. package/node_modules/pump/.travis.yml +5 -0
  262. package/node_modules/pump/LICENSE +21 -0
  263. package/node_modules/pump/README.md +65 -0
  264. package/node_modules/pump/index.js +82 -0
  265. package/node_modules/pump/package.json +63 -0
  266. package/node_modules/pump/test-browser.js +66 -0
  267. package/node_modules/pump/test-node.js +53 -0
  268. package/node_modules/rc/LICENSE.APACHE2 +15 -0
  269. package/node_modules/rc/LICENSE.BSD +26 -0
  270. package/node_modules/rc/LICENSE.MIT +24 -0
  271. package/node_modules/rc/README.md +227 -0
  272. package/node_modules/rc/browser.js +7 -0
  273. package/node_modules/rc/cli.js +4 -0
  274. package/node_modules/rc/index.js +53 -0
  275. package/node_modules/rc/lib/utils.js +104 -0
  276. package/node_modules/rc/package.json +70 -0
  277. package/node_modules/rc/test/ini.js +16 -0
  278. package/node_modules/rc/test/nested-env-vars.js +50 -0
  279. package/node_modules/rc/test/test.js +59 -0
  280. package/node_modules/readable-stream/.travis.yml +34 -0
  281. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  282. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  283. package/node_modules/readable-stream/LICENSE +47 -0
  284. package/node_modules/readable-stream/README.md +58 -0
  285. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  286. package/node_modules/readable-stream/duplex-browser.js +1 -0
  287. package/node_modules/readable-stream/duplex.js +1 -0
  288. package/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  289. package/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  290. package/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  291. package/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  292. package/node_modules/readable-stream/lib/_stream_writable.js +687 -0
  293. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +79 -0
  294. package/node_modules/readable-stream/lib/internal/streams/destroy.js +74 -0
  295. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  296. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  297. package/node_modules/readable-stream/package.json +88 -0
  298. package/node_modules/readable-stream/passthrough.js +1 -0
  299. package/node_modules/readable-stream/readable-browser.js +7 -0
  300. package/node_modules/readable-stream/readable.js +19 -0
  301. package/node_modules/readable-stream/transform.js +1 -0
  302. package/node_modules/readable-stream/writable-browser.js +1 -0
  303. package/node_modules/readable-stream/writable.js +8 -0
  304. package/node_modules/safe-buffer/LICENSE +21 -0
  305. package/node_modules/safe-buffer/README.md +584 -0
  306. package/node_modules/safe-buffer/index.d.ts +187 -0
  307. package/node_modules/safe-buffer/index.js +62 -0
  308. package/node_modules/safe-buffer/package.json +71 -0
  309. package/node_modules/semver/CHANGELOG.md +39 -0
  310. package/node_modules/semver/LICENSE +15 -0
  311. package/node_modules/semver/README.md +412 -0
  312. package/node_modules/semver/bin/semver +160 -0
  313. package/node_modules/semver/package.json +67 -0
  314. package/node_modules/semver/range.bnf +16 -0
  315. package/node_modules/semver/semver.js +1483 -0
  316. package/node_modules/set-blocking/CHANGELOG.md +26 -0
  317. package/node_modules/set-blocking/LICENSE.txt +14 -0
  318. package/node_modules/set-blocking/README.md +31 -0
  319. package/node_modules/set-blocking/index.js +7 -0
  320. package/node_modules/set-blocking/package.json +73 -0
  321. package/node_modules/signal-exit/CHANGELOG.md +35 -0
  322. package/node_modules/signal-exit/LICENSE.txt +16 -0
  323. package/node_modules/signal-exit/README.md +39 -0
  324. package/node_modules/signal-exit/index.js +163 -0
  325. package/node_modules/signal-exit/package.json +71 -0
  326. package/node_modules/signal-exit/signals.js +53 -0
  327. package/node_modules/simple-concat/.travis.yml +3 -0
  328. package/node_modules/simple-concat/LICENSE +20 -0
  329. package/node_modules/simple-concat/README.md +44 -0
  330. package/node_modules/simple-concat/index.js +15 -0
  331. package/node_modules/simple-concat/package.json +75 -0
  332. package/node_modules/simple-concat/test/basic.js +41 -0
  333. package/node_modules/simple-get/LICENSE +20 -0
  334. package/node_modules/simple-get/README.md +319 -0
  335. package/node_modules/simple-get/index.js +99 -0
  336. package/node_modules/simple-get/package.json +81 -0
  337. package/node_modules/string-width/index.js +37 -0
  338. package/node_modules/string-width/license +21 -0
  339. package/node_modules/string-width/package.json +96 -0
  340. package/node_modules/string-width/readme.md +42 -0
  341. package/node_modules/string_decoder/.travis.yml +50 -0
  342. package/node_modules/string_decoder/LICENSE +48 -0
  343. package/node_modules/string_decoder/README.md +47 -0
  344. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  345. package/node_modules/string_decoder/package.json +64 -0
  346. package/node_modules/strip-ansi/index.js +6 -0
  347. package/node_modules/strip-ansi/license +21 -0
  348. package/node_modules/strip-ansi/package.json +107 -0
  349. package/node_modules/strip-ansi/readme.md +33 -0
  350. package/node_modules/strip-json-comments/index.js +70 -0
  351. package/node_modules/strip-json-comments/license +21 -0
  352. package/node_modules/strip-json-comments/package.json +77 -0
  353. package/node_modules/strip-json-comments/readme.md +64 -0
  354. package/node_modules/tar-fs/.travis.yml +6 -0
  355. package/node_modules/tar-fs/LICENSE +21 -0
  356. package/node_modules/tar-fs/README.md +165 -0
  357. package/node_modules/tar-fs/index.js +351 -0
  358. package/node_modules/tar-fs/package.json +71 -0
  359. package/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  360. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  361. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  362. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  363. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  364. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  365. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  366. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  367. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  368. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  369. package/node_modules/tar-fs/test/index.js +346 -0
  370. package/node_modules/tar-stream/LICENSE +21 -0
  371. package/node_modules/tar-stream/README.md +168 -0
  372. package/node_modules/tar-stream/extract.js +257 -0
  373. package/node_modules/tar-stream/headers.js +293 -0
  374. package/node_modules/tar-stream/index.js +2 -0
  375. package/node_modules/tar-stream/node_modules/bl/.travis.yml +16 -0
  376. package/node_modules/tar-stream/node_modules/bl/BufferList.js +396 -0
  377. package/node_modules/tar-stream/node_modules/bl/LICENSE.md +13 -0
  378. package/node_modules/tar-stream/node_modules/bl/README.md +247 -0
  379. package/node_modules/tar-stream/node_modules/bl/bl.js +84 -0
  380. package/node_modules/tar-stream/node_modules/bl/package.json +68 -0
  381. package/node_modules/tar-stream/node_modules/bl/test/convert.js +21 -0
  382. package/node_modules/tar-stream/node_modules/bl/test/indexOf.js +492 -0
  383. package/node_modules/tar-stream/node_modules/bl/test/isBufferList.js +32 -0
  384. package/node_modules/tar-stream/node_modules/bl/test/test.js +851 -0
  385. package/node_modules/tar-stream/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  386. package/node_modules/tar-stream/node_modules/readable-stream/GOVERNANCE.md +136 -0
  387. package/node_modules/tar-stream/node_modules/readable-stream/LICENSE +47 -0
  388. package/node_modules/tar-stream/node_modules/readable-stream/README.md +106 -0
  389. package/node_modules/tar-stream/node_modules/readable-stream/errors-browser.js +127 -0
  390. package/node_modules/tar-stream/node_modules/readable-stream/errors.js +116 -0
  391. package/node_modules/tar-stream/node_modules/readable-stream/experimentalWarning.js +17 -0
  392. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js +139 -0
  393. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js +39 -0
  394. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js +1124 -0
  395. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js +201 -0
  396. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js +697 -0
  397. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js +207 -0
  398. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +210 -0
  399. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +105 -0
  400. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +104 -0
  401. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  402. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js +64 -0
  403. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +97 -0
  404. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js +27 -0
  405. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  406. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  407. package/node_modules/tar-stream/node_modules/readable-stream/package.json +101 -0
  408. package/node_modules/tar-stream/node_modules/readable-stream/readable-browser.js +9 -0
  409. package/node_modules/tar-stream/node_modules/readable-stream/readable.js +16 -0
  410. package/node_modules/tar-stream/pack.js +255 -0
  411. package/node_modules/tar-stream/package.json +95 -0
  412. package/node_modules/tar-stream/sandbox.js +11 -0
  413. package/node_modules/tunnel-agent/LICENSE +55 -0
  414. package/node_modules/tunnel-agent/README.md +4 -0
  415. package/node_modules/tunnel-agent/index.js +244 -0
  416. package/node_modules/tunnel-agent/package.json +59 -0
  417. package/node_modules/util-deprecate/History.md +16 -0
  418. package/node_modules/util-deprecate/LICENSE +24 -0
  419. package/node_modules/util-deprecate/README.md +53 -0
  420. package/node_modules/util-deprecate/browser.js +67 -0
  421. package/node_modules/util-deprecate/node.js +6 -0
  422. package/node_modules/util-deprecate/package.json +62 -0
  423. package/node_modules/which-pm-runs/LICENSE +21 -0
  424. package/node_modules/which-pm-runs/README.md +29 -0
  425. package/node_modules/which-pm-runs/index.js +17 -0
  426. package/node_modules/which-pm-runs/package.json +64 -0
  427. package/node_modules/wide-align/LICENSE +14 -0
  428. package/node_modules/wide-align/README.md +47 -0
  429. package/node_modules/wide-align/align.js +65 -0
  430. package/node_modules/wide-align/package.json +69 -0
  431. package/node_modules/wrappy/LICENSE +15 -0
  432. package/node_modules/wrappy/README.md +36 -0
  433. package/node_modules/wrappy/package.json +62 -0
  434. package/node_modules/wrappy/wrappy.js +33 -0
  435. package/package.json +48 -0
  436. package/src/data-channel-wrapper.cpp +401 -0
  437. package/src/data-channel-wrapper.h +52 -0
  438. package/src/main.cpp +14 -0
  439. package/src/peer-connection-wrapper.cpp +720 -0
  440. package/src/peer-connection-wrapper.h +55 -0
  441. package/src/rtc-wrapper.cpp +110 -0
  442. package/src/rtc-wrapper.h +19 -0
  443. package/test/connectivity.js +100 -0
  444. package/test/test.js +149 -0
@@ -0,0 +1,104 @@
1
+ // Ported from https://github.com/mafintosh/end-of-stream with
2
+ // permission from the author, Mathias Buus (@mafintosh).
3
+ 'use strict';
4
+
5
+ var ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;
6
+
7
+ function once(callback) {
8
+ var called = false;
9
+ return function () {
10
+ if (called) return;
11
+ called = true;
12
+
13
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
14
+ args[_key] = arguments[_key];
15
+ }
16
+
17
+ callback.apply(this, args);
18
+ };
19
+ }
20
+
21
+ function noop() {}
22
+
23
+ function isRequest(stream) {
24
+ return stream.setHeader && typeof stream.abort === 'function';
25
+ }
26
+
27
+ function eos(stream, opts, callback) {
28
+ if (typeof opts === 'function') return eos(stream, null, opts);
29
+ if (!opts) opts = {};
30
+ callback = once(callback || noop);
31
+ var readable = opts.readable || opts.readable !== false && stream.readable;
32
+ var writable = opts.writable || opts.writable !== false && stream.writable;
33
+
34
+ var onlegacyfinish = function onlegacyfinish() {
35
+ if (!stream.writable) onfinish();
36
+ };
37
+
38
+ var writableEnded = stream._writableState && stream._writableState.finished;
39
+
40
+ var onfinish = function onfinish() {
41
+ writable = false;
42
+ writableEnded = true;
43
+ if (!readable) callback.call(stream);
44
+ };
45
+
46
+ var readableEnded = stream._readableState && stream._readableState.endEmitted;
47
+
48
+ var onend = function onend() {
49
+ readable = false;
50
+ readableEnded = true;
51
+ if (!writable) callback.call(stream);
52
+ };
53
+
54
+ var onerror = function onerror(err) {
55
+ callback.call(stream, err);
56
+ };
57
+
58
+ var onclose = function onclose() {
59
+ var err;
60
+
61
+ if (readable && !readableEnded) {
62
+ if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();
63
+ return callback.call(stream, err);
64
+ }
65
+
66
+ if (writable && !writableEnded) {
67
+ if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();
68
+ return callback.call(stream, err);
69
+ }
70
+ };
71
+
72
+ var onrequest = function onrequest() {
73
+ stream.req.on('finish', onfinish);
74
+ };
75
+
76
+ if (isRequest(stream)) {
77
+ stream.on('complete', onfinish);
78
+ stream.on('abort', onclose);
79
+ if (stream.req) onrequest();else stream.on('request', onrequest);
80
+ } else if (writable && !stream._writableState) {
81
+ // legacy streams
82
+ stream.on('end', onlegacyfinish);
83
+ stream.on('close', onlegacyfinish);
84
+ }
85
+
86
+ stream.on('end', onend);
87
+ stream.on('finish', onfinish);
88
+ if (opts.error !== false) stream.on('error', onerror);
89
+ stream.on('close', onclose);
90
+ return function () {
91
+ stream.removeListener('complete', onfinish);
92
+ stream.removeListener('abort', onclose);
93
+ stream.removeListener('request', onrequest);
94
+ if (stream.req) stream.req.removeListener('finish', onfinish);
95
+ stream.removeListener('end', onlegacyfinish);
96
+ stream.removeListener('close', onlegacyfinish);
97
+ stream.removeListener('finish', onfinish);
98
+ stream.removeListener('end', onend);
99
+ stream.removeListener('error', onerror);
100
+ stream.removeListener('close', onclose);
101
+ };
102
+ }
103
+
104
+ module.exports = eos;
@@ -0,0 +1,3 @@
1
+ module.exports = function () {
2
+ throw new Error('Readable.from is not available in the browser')
3
+ };
@@ -0,0 +1,64 @@
1
+ 'use strict';
2
+
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+
5
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
6
+
7
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
8
+
9
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
10
+
11
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+
13
+ var ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;
14
+
15
+ function from(Readable, iterable, opts) {
16
+ var iterator;
17
+
18
+ if (iterable && typeof iterable.next === 'function') {
19
+ iterator = iterable;
20
+ } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);
21
+
22
+ var readable = new Readable(_objectSpread({
23
+ objectMode: true
24
+ }, opts)); // Reading boolean to protect against _read
25
+ // being called before last iteration completion.
26
+
27
+ var reading = false;
28
+
29
+ readable._read = function () {
30
+ if (!reading) {
31
+ reading = true;
32
+ next();
33
+ }
34
+ };
35
+
36
+ function next() {
37
+ return _next2.apply(this, arguments);
38
+ }
39
+
40
+ function _next2() {
41
+ _next2 = _asyncToGenerator(function* () {
42
+ try {
43
+ var _ref = yield iterator.next(),
44
+ value = _ref.value,
45
+ done = _ref.done;
46
+
47
+ if (done) {
48
+ readable.push(null);
49
+ } else if (readable.push((yield value))) {
50
+ next();
51
+ } else {
52
+ reading = false;
53
+ }
54
+ } catch (err) {
55
+ readable.destroy(err);
56
+ }
57
+ });
58
+ return _next2.apply(this, arguments);
59
+ }
60
+
61
+ return readable;
62
+ }
63
+
64
+ module.exports = from;
@@ -0,0 +1,97 @@
1
+ // Ported from https://github.com/mafintosh/pump with
2
+ // permission from the author, Mathias Buus (@mafintosh).
3
+ 'use strict';
4
+
5
+ var eos;
6
+
7
+ function once(callback) {
8
+ var called = false;
9
+ return function () {
10
+ if (called) return;
11
+ called = true;
12
+ callback.apply(void 0, arguments);
13
+ };
14
+ }
15
+
16
+ var _require$codes = require('../../../errors').codes,
17
+ ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,
18
+ ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
19
+
20
+ function noop(err) {
21
+ // Rethrow the error if it exists to avoid swallowing it
22
+ if (err) throw err;
23
+ }
24
+
25
+ function isRequest(stream) {
26
+ return stream.setHeader && typeof stream.abort === 'function';
27
+ }
28
+
29
+ function destroyer(stream, reading, writing, callback) {
30
+ callback = once(callback);
31
+ var closed = false;
32
+ stream.on('close', function () {
33
+ closed = true;
34
+ });
35
+ if (eos === undefined) eos = require('./end-of-stream');
36
+ eos(stream, {
37
+ readable: reading,
38
+ writable: writing
39
+ }, function (err) {
40
+ if (err) return callback(err);
41
+ closed = true;
42
+ callback();
43
+ });
44
+ var destroyed = false;
45
+ return function (err) {
46
+ if (closed) return;
47
+ if (destroyed) return;
48
+ destroyed = true; // request.destroy just do .end - .abort is what we want
49
+
50
+ if (isRequest(stream)) return stream.abort();
51
+ if (typeof stream.destroy === 'function') return stream.destroy();
52
+ callback(err || new ERR_STREAM_DESTROYED('pipe'));
53
+ };
54
+ }
55
+
56
+ function call(fn) {
57
+ fn();
58
+ }
59
+
60
+ function pipe(from, to) {
61
+ return from.pipe(to);
62
+ }
63
+
64
+ function popCallback(streams) {
65
+ if (!streams.length) return noop;
66
+ if (typeof streams[streams.length - 1] !== 'function') return noop;
67
+ return streams.pop();
68
+ }
69
+
70
+ function pipeline() {
71
+ for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {
72
+ streams[_key] = arguments[_key];
73
+ }
74
+
75
+ var callback = popCallback(streams);
76
+ if (Array.isArray(streams[0])) streams = streams[0];
77
+
78
+ if (streams.length < 2) {
79
+ throw new ERR_MISSING_ARGS('streams');
80
+ }
81
+
82
+ var error;
83
+ var destroys = streams.map(function (stream, i) {
84
+ var reading = i < streams.length - 1;
85
+ var writing = i > 0;
86
+ return destroyer(stream, reading, writing, function (err) {
87
+ if (!error) error = err;
88
+ if (err) destroys.forEach(call);
89
+ if (reading) return;
90
+ destroys.forEach(call);
91
+ callback(error);
92
+ });
93
+ });
94
+ return streams.reduce(pipe);
95
+ }
96
+
97
+ module.exports = pipeline;
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;
4
+
5
+ function highWaterMarkFrom(options, isDuplex, duplexKey) {
6
+ return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;
7
+ }
8
+
9
+ function getHighWaterMark(state, options, duplexKey, isDuplex) {
10
+ var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);
11
+
12
+ if (hwm != null) {
13
+ if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {
14
+ var name = isDuplex ? duplexKey : 'highWaterMark';
15
+ throw new ERR_INVALID_OPT_VALUE(name, hwm);
16
+ }
17
+
18
+ return Math.floor(hwm);
19
+ } // Default value
20
+
21
+
22
+ return state.objectMode ? 16 : 16 * 1024;
23
+ }
24
+
25
+ module.exports = {
26
+ getHighWaterMark: getHighWaterMark
27
+ };
@@ -0,0 +1 @@
1
+ module.exports = require('events').EventEmitter;
@@ -0,0 +1 @@
1
+ module.exports = require('stream');
@@ -0,0 +1,101 @@
1
+ {
2
+ "_args": [
3
+ [
4
+ "readable-stream@3.6.0",
5
+ "/home/runner/work/node-datachannel/node-datachannel"
6
+ ]
7
+ ],
8
+ "_from": "readable-stream@3.6.0",
9
+ "_id": "readable-stream@3.6.0",
10
+ "_inBundle": false,
11
+ "_integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
12
+ "_location": "/tar-stream/readable-stream",
13
+ "_phantomChildren": {},
14
+ "_requested": {
15
+ "type": "version",
16
+ "registry": true,
17
+ "raw": "readable-stream@3.6.0",
18
+ "name": "readable-stream",
19
+ "escapedName": "readable-stream",
20
+ "rawSpec": "3.6.0",
21
+ "saveSpec": null,
22
+ "fetchSpec": "3.6.0"
23
+ },
24
+ "_requiredBy": [
25
+ "/tar-stream",
26
+ "/tar-stream/bl"
27
+ ],
28
+ "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
29
+ "_spec": "3.6.0",
30
+ "_where": "/home/runner/work/node-datachannel/node-datachannel",
31
+ "browser": {
32
+ "util": false,
33
+ "worker_threads": false,
34
+ "./errors": "./errors-browser.js",
35
+ "./readable.js": "./readable-browser.js",
36
+ "./lib/internal/streams/from.js": "./lib/internal/streams/from-browser.js",
37
+ "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js"
38
+ },
39
+ "bugs": {
40
+ "url": "https://github.com/nodejs/readable-stream/issues"
41
+ },
42
+ "dependencies": {
43
+ "inherits": "^2.0.3",
44
+ "string_decoder": "^1.1.1",
45
+ "util-deprecate": "^1.0.1"
46
+ },
47
+ "description": "Streams3, a user-land copy of the stream library from Node.js",
48
+ "devDependencies": {
49
+ "@babel/cli": "^7.2.0",
50
+ "@babel/core": "^7.2.0",
51
+ "@babel/polyfill": "^7.0.0",
52
+ "@babel/preset-env": "^7.2.0",
53
+ "airtap": "0.0.9",
54
+ "assert": "^1.4.0",
55
+ "bl": "^2.0.0",
56
+ "deep-strict-equal": "^0.2.0",
57
+ "events.once": "^2.0.2",
58
+ "glob": "^7.1.2",
59
+ "gunzip-maybe": "^1.4.1",
60
+ "hyperquest": "^2.1.3",
61
+ "lolex": "^2.6.0",
62
+ "nyc": "^11.0.0",
63
+ "pump": "^3.0.0",
64
+ "rimraf": "^2.6.2",
65
+ "tap": "^12.0.0",
66
+ "tape": "^4.9.0",
67
+ "tar-fs": "^1.16.2",
68
+ "util-promisify": "^2.1.0"
69
+ },
70
+ "engines": {
71
+ "node": ">= 6"
72
+ },
73
+ "homepage": "https://github.com/nodejs/readable-stream#readme",
74
+ "keywords": [
75
+ "readable",
76
+ "stream",
77
+ "pipe"
78
+ ],
79
+ "license": "MIT",
80
+ "main": "readable.js",
81
+ "name": "readable-stream",
82
+ "nyc": {
83
+ "include": [
84
+ "lib/**.js"
85
+ ]
86
+ },
87
+ "repository": {
88
+ "type": "git",
89
+ "url": "git://github.com/nodejs/readable-stream.git"
90
+ },
91
+ "scripts": {
92
+ "ci": "TAP=1 tap --no-esm test/parallel/*.js test/ours/*.js | tee test.tap",
93
+ "cover": "nyc npm test",
94
+ "report": "nyc report --reporter=lcov",
95
+ "test": "tap -J --no-esm test/parallel/*.js test/ours/*.js",
96
+ "test-browser-local": "airtap --open --local -- test/browser.js",
97
+ "test-browsers": "airtap --sauce-connect --loopback airtap.local -- test/browser.js",
98
+ "update-browser-errors": "babel -o errors-browser.js errors.js"
99
+ },
100
+ "version": "3.6.0"
101
+ }
@@ -0,0 +1,9 @@
1
+ exports = module.exports = require('./lib/_stream_readable.js');
2
+ exports.Stream = exports;
3
+ exports.Readable = exports;
4
+ exports.Writable = require('./lib/_stream_writable.js');
5
+ exports.Duplex = require('./lib/_stream_duplex.js');
6
+ exports.Transform = require('./lib/_stream_transform.js');
7
+ exports.PassThrough = require('./lib/_stream_passthrough.js');
8
+ exports.finished = require('./lib/internal/streams/end-of-stream.js');
9
+ exports.pipeline = require('./lib/internal/streams/pipeline.js');
@@ -0,0 +1,16 @@
1
+ var Stream = require('stream');
2
+ if (process.env.READABLE_STREAM === 'disable' && Stream) {
3
+ module.exports = Stream.Readable;
4
+ Object.assign(module.exports, Stream);
5
+ module.exports.Stream = Stream;
6
+ } else {
7
+ exports = module.exports = require('./lib/_stream_readable.js');
8
+ exports.Stream = Stream || exports;
9
+ exports.Readable = exports;
10
+ exports.Writable = require('./lib/_stream_writable.js');
11
+ exports.Duplex = require('./lib/_stream_duplex.js');
12
+ exports.Transform = require('./lib/_stream_transform.js');
13
+ exports.PassThrough = require('./lib/_stream_passthrough.js');
14
+ exports.finished = require('./lib/internal/streams/end-of-stream.js');
15
+ exports.pipeline = require('./lib/internal/streams/pipeline.js');
16
+ }
@@ -0,0 +1,255 @@
1
+ var constants = require('fs-constants')
2
+ var eos = require('end-of-stream')
3
+ var inherits = require('inherits')
4
+ var alloc = Buffer.alloc
5
+
6
+ var Readable = require('readable-stream').Readable
7
+ var Writable = require('readable-stream').Writable
8
+ var StringDecoder = require('string_decoder').StringDecoder
9
+
10
+ var headers = require('./headers')
11
+
12
+ var DMODE = parseInt('755', 8)
13
+ var FMODE = parseInt('644', 8)
14
+
15
+ var END_OF_TAR = alloc(1024)
16
+
17
+ var noop = function () {}
18
+
19
+ var overflow = function (self, size) {
20
+ size &= 511
21
+ if (size) self.push(END_OF_TAR.slice(0, 512 - size))
22
+ }
23
+
24
+ function modeToType (mode) {
25
+ switch (mode & constants.S_IFMT) {
26
+ case constants.S_IFBLK: return 'block-device'
27
+ case constants.S_IFCHR: return 'character-device'
28
+ case constants.S_IFDIR: return 'directory'
29
+ case constants.S_IFIFO: return 'fifo'
30
+ case constants.S_IFLNK: return 'symlink'
31
+ }
32
+
33
+ return 'file'
34
+ }
35
+
36
+ var Sink = function (to) {
37
+ Writable.call(this)
38
+ this.written = 0
39
+ this._to = to
40
+ this._destroyed = false
41
+ }
42
+
43
+ inherits(Sink, Writable)
44
+
45
+ Sink.prototype._write = function (data, enc, cb) {
46
+ this.written += data.length
47
+ if (this._to.push(data)) return cb()
48
+ this._to._drain = cb
49
+ }
50
+
51
+ Sink.prototype.destroy = function () {
52
+ if (this._destroyed) return
53
+ this._destroyed = true
54
+ this.emit('close')
55
+ }
56
+
57
+ var LinkSink = function () {
58
+ Writable.call(this)
59
+ this.linkname = ''
60
+ this._decoder = new StringDecoder('utf-8')
61
+ this._destroyed = false
62
+ }
63
+
64
+ inherits(LinkSink, Writable)
65
+
66
+ LinkSink.prototype._write = function (data, enc, cb) {
67
+ this.linkname += this._decoder.write(data)
68
+ cb()
69
+ }
70
+
71
+ LinkSink.prototype.destroy = function () {
72
+ if (this._destroyed) return
73
+ this._destroyed = true
74
+ this.emit('close')
75
+ }
76
+
77
+ var Void = function () {
78
+ Writable.call(this)
79
+ this._destroyed = false
80
+ }
81
+
82
+ inherits(Void, Writable)
83
+
84
+ Void.prototype._write = function (data, enc, cb) {
85
+ cb(new Error('No body allowed for this entry'))
86
+ }
87
+
88
+ Void.prototype.destroy = function () {
89
+ if (this._destroyed) return
90
+ this._destroyed = true
91
+ this.emit('close')
92
+ }
93
+
94
+ var Pack = function (opts) {
95
+ if (!(this instanceof Pack)) return new Pack(opts)
96
+ Readable.call(this, opts)
97
+
98
+ this._drain = noop
99
+ this._finalized = false
100
+ this._finalizing = false
101
+ this._destroyed = false
102
+ this._stream = null
103
+ }
104
+
105
+ inherits(Pack, Readable)
106
+
107
+ Pack.prototype.entry = function (header, buffer, callback) {
108
+ if (this._stream) throw new Error('already piping an entry')
109
+ if (this._finalized || this._destroyed) return
110
+
111
+ if (typeof buffer === 'function') {
112
+ callback = buffer
113
+ buffer = null
114
+ }
115
+
116
+ if (!callback) callback = noop
117
+
118
+ var self = this
119
+
120
+ if (!header.size || header.type === 'symlink') header.size = 0
121
+ if (!header.type) header.type = modeToType(header.mode)
122
+ if (!header.mode) header.mode = header.type === 'directory' ? DMODE : FMODE
123
+ if (!header.uid) header.uid = 0
124
+ if (!header.gid) header.gid = 0
125
+ if (!header.mtime) header.mtime = new Date()
126
+
127
+ if (typeof buffer === 'string') buffer = Buffer.from(buffer)
128
+ if (Buffer.isBuffer(buffer)) {
129
+ header.size = buffer.length
130
+ this._encode(header)
131
+ var ok = this.push(buffer)
132
+ overflow(self, header.size)
133
+ if (ok) process.nextTick(callback)
134
+ else this._drain = callback
135
+ return new Void()
136
+ }
137
+
138
+ if (header.type === 'symlink' && !header.linkname) {
139
+ var linkSink = new LinkSink()
140
+ eos(linkSink, function (err) {
141
+ if (err) { // stream was closed
142
+ self.destroy()
143
+ return callback(err)
144
+ }
145
+
146
+ header.linkname = linkSink.linkname
147
+ self._encode(header)
148
+ callback()
149
+ })
150
+
151
+ return linkSink
152
+ }
153
+
154
+ this._encode(header)
155
+
156
+ if (header.type !== 'file' && header.type !== 'contiguous-file') {
157
+ process.nextTick(callback)
158
+ return new Void()
159
+ }
160
+
161
+ var sink = new Sink(this)
162
+
163
+ this._stream = sink
164
+
165
+ eos(sink, function (err) {
166
+ self._stream = null
167
+
168
+ if (err) { // stream was closed
169
+ self.destroy()
170
+ return callback(err)
171
+ }
172
+
173
+ if (sink.written !== header.size) { // corrupting tar
174
+ self.destroy()
175
+ return callback(new Error('size mismatch'))
176
+ }
177
+
178
+ overflow(self, header.size)
179
+ if (self._finalizing) self.finalize()
180
+ callback()
181
+ })
182
+
183
+ return sink
184
+ }
185
+
186
+ Pack.prototype.finalize = function () {
187
+ if (this._stream) {
188
+ this._finalizing = true
189
+ return
190
+ }
191
+
192
+ if (this._finalized) return
193
+ this._finalized = true
194
+ this.push(END_OF_TAR)
195
+ this.push(null)
196
+ }
197
+
198
+ Pack.prototype.destroy = function (err) {
199
+ if (this._destroyed) return
200
+ this._destroyed = true
201
+
202
+ if (err) this.emit('error', err)
203
+ this.emit('close')
204
+ if (this._stream && this._stream.destroy) this._stream.destroy()
205
+ }
206
+
207
+ Pack.prototype._encode = function (header) {
208
+ if (!header.pax) {
209
+ var buf = headers.encode(header)
210
+ if (buf) {
211
+ this.push(buf)
212
+ return
213
+ }
214
+ }
215
+ this._encodePax(header)
216
+ }
217
+
218
+ Pack.prototype._encodePax = function (header) {
219
+ var paxHeader = headers.encodePax({
220
+ name: header.name,
221
+ linkname: header.linkname,
222
+ pax: header.pax
223
+ })
224
+
225
+ var newHeader = {
226
+ name: 'PaxHeader',
227
+ mode: header.mode,
228
+ uid: header.uid,
229
+ gid: header.gid,
230
+ size: paxHeader.length,
231
+ mtime: header.mtime,
232
+ type: 'pax-header',
233
+ linkname: header.linkname && 'PaxHeader',
234
+ uname: header.uname,
235
+ gname: header.gname,
236
+ devmajor: header.devmajor,
237
+ devminor: header.devminor
238
+ }
239
+
240
+ this.push(headers.encode(newHeader))
241
+ this.push(paxHeader)
242
+ overflow(this, paxHeader.length)
243
+
244
+ newHeader.size = header.size
245
+ newHeader.type = header.type
246
+ this.push(headers.encode(newHeader))
247
+ }
248
+
249
+ Pack.prototype._read = function (n) {
250
+ var drain = this._drain
251
+ this._drain = noop
252
+ drain()
253
+ }
254
+
255
+ module.exports = Pack