fsevents 1.2.3 → 1.2.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.

Potentially problematic release.


This version of fsevents might be problematic. Click here for more details.

Files changed (186) hide show
  1. package/.travis.yml +1 -3
  2. package/fsevents.cc +6 -15
  3. package/node_modules/abbrev/package.json +13 -14
  4. package/node_modules/ansi-regex/package.json +13 -14
  5. package/node_modules/aproba/package.json +13 -14
  6. package/node_modules/are-we-there-yet/CHANGES.md +6 -0
  7. package/node_modules/are-we-there-yet/package.json +19 -20
  8. package/node_modules/are-we-there-yet/tracker-stream.js +1 -0
  9. package/node_modules/balanced-match/package.json +13 -14
  10. package/node_modules/brace-expansion/package.json +13 -14
  11. package/node_modules/chownr/chownr.js +74 -38
  12. package/node_modules/chownr/package.json +22 -20
  13. package/node_modules/code-point-at/package.json +13 -14
  14. package/node_modules/concat-map/package.json +8 -9
  15. package/node_modules/console-control-strings/package.json +14 -14
  16. package/node_modules/core-util-is/package.json +13 -14
  17. package/node_modules/debug/CHANGELOG.md +34 -1
  18. package/node_modules/debug/README.md +206 -63
  19. package/node_modules/debug/dist/debug.js +912 -0
  20. package/node_modules/debug/package.json +46 -33
  21. package/node_modules/debug/src/browser.js +185 -106
  22. package/node_modules/debug/src/common.js +266 -0
  23. package/node_modules/debug/src/index.js +4 -4
  24. package/node_modules/debug/src/node.js +174 -165
  25. package/node_modules/deep-extend/CHANGELOG.md +28 -3
  26. package/node_modules/deep-extend/LICENSE +1 -1
  27. package/node_modules/deep-extend/README.md +2 -1
  28. package/node_modules/deep-extend/lib/deep-extend.js +11 -5
  29. package/node_modules/deep-extend/package.json +26 -28
  30. package/node_modules/delegates/package.json +13 -14
  31. package/node_modules/detect-libc/package.json +13 -14
  32. package/node_modules/fs-minipass/package.json +13 -14
  33. package/node_modules/fs.realpath/package.json +13 -14
  34. package/node_modules/gauge/package.json +13 -14
  35. package/node_modules/glob/package.json +18 -19
  36. package/node_modules/has-unicode/package.json +13 -14
  37. package/node_modules/iconv-lite/Changelog.md +16 -0
  38. package/node_modules/iconv-lite/encodings/sbcs-codec.js +2 -2
  39. package/node_modules/iconv-lite/encodings/sbcs-data.js +5 -0
  40. package/node_modules/iconv-lite/lib/extend-node.js +1 -1
  41. package/node_modules/iconv-lite/lib/index.d.ts +2 -2
  42. package/node_modules/iconv-lite/package.json +19 -20
  43. package/node_modules/ignore-walk/package.json +13 -14
  44. package/node_modules/inflight/package.json +13 -14
  45. package/node_modules/inherits/package.json +14 -14
  46. package/node_modules/ini/package.json +13 -14
  47. package/node_modules/is-fullwidth-code-point/package.json +13 -14
  48. package/node_modules/isarray/package.json +13 -14
  49. package/node_modules/minimatch/package.json +14 -14
  50. package/node_modules/minimist/package.json +8 -9
  51. package/node_modules/minipass/LICENSE +15 -0
  52. package/node_modules/minipass/README.md +81 -3
  53. package/node_modules/minipass/index.js +77 -6
  54. package/node_modules/minipass/package.json +21 -20
  55. package/node_modules/minizlib/index.js +66 -95
  56. package/node_modules/minizlib/package.json +18 -19
  57. package/node_modules/mkdirp/package.json +14 -14
  58. package/node_modules/ms/index.js +28 -18
  59. package/node_modules/ms/package.json +22 -23
  60. package/node_modules/ms/readme.md +17 -8
  61. package/node_modules/needle/.npmignore +6 -0
  62. package/node_modules/needle/README.md +3 -3
  63. package/node_modules/needle/examples/multipart-stream.js +1 -1
  64. package/node_modules/needle/lib/auth.js +1 -1
  65. package/node_modules/needle/lib/cookies.js +12 -10
  66. package/node_modules/needle/lib/multipart.js +1 -1
  67. package/node_modules/needle/lib/needle.js +18 -6
  68. package/node_modules/needle/package-lock.json +395 -0
  69. package/node_modules/needle/package.json +26 -27
  70. package/node_modules/needle/test/basic_auth_spec.js +1 -1
  71. package/node_modules/needle/test/cookies_spec.js +2 -2
  72. package/node_modules/needle/test/errors_spec.js +4 -4
  73. package/node_modules/needle/test/keys/ssl.cert +21 -0
  74. package/node_modules/needle/test/keys/ssl.key +27 -0
  75. package/node_modules/needle/test/long_string_spec.js +1 -1
  76. package/node_modules/needle/test/output_spec.js +1 -1
  77. package/node_modules/needle/test/post_data_spec.js +20 -20
  78. package/node_modules/needle/test/proxy_spec.js +1 -1
  79. package/node_modules/needle/test/url_spec.js +11 -3
  80. package/node_modules/needle/test/utils/test.js +1 -1
  81. package/node_modules/node-pre-gyp/CHANGELOG.md +34 -3
  82. package/node_modules/node-pre-gyp/README.md +53 -21
  83. package/node_modules/node-pre-gyp/appveyor.yml +2 -9
  84. package/node_modules/node-pre-gyp/contributing.md +2 -2
  85. package/node_modules/node-pre-gyp/lib/build.js +1 -1
  86. package/node_modules/node-pre-gyp/lib/install.js +46 -12
  87. package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +1 -1
  88. package/node_modules/node-pre-gyp/lib/package.js +5 -2
  89. package/node_modules/node-pre-gyp/lib/pre-binding.js +5 -5
  90. package/node_modules/node-pre-gyp/lib/rebuild.js +1 -1
  91. package/node_modules/node-pre-gyp/lib/reinstall.js +1 -1
  92. package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +148 -0
  93. package/node_modules/node-pre-gyp/lib/util/handle_gyp_opts.js +5 -2
  94. package/node_modules/node-pre-gyp/lib/util/napi.js +70 -22
  95. package/node_modules/node-pre-gyp/lib/util/versioning.js +7 -6
  96. package/node_modules/node-pre-gyp/package.json +16 -19
  97. package/node_modules/nopt/package.json +13 -14
  98. package/node_modules/npm-bundled/LICENSE +15 -0
  99. package/node_modules/npm-bundled/README.md +2 -0
  100. package/node_modules/npm-bundled/index.js +16 -2
  101. package/node_modules/npm-bundled/package.json +18 -19
  102. package/node_modules/npm-packlist/index.js +43 -13
  103. package/node_modules/npm-packlist/package.json +18 -19
  104. package/node_modules/npmlog/package.json +13 -14
  105. package/node_modules/number-is-nan/package.json +13 -14
  106. package/node_modules/object-assign/package.json +13 -14
  107. package/node_modules/once/package.json +14 -14
  108. package/node_modules/os-homedir/package.json +13 -14
  109. package/node_modules/os-tmpdir/package.json +13 -14
  110. package/node_modules/osenv/package.json +13 -14
  111. package/node_modules/path-is-absolute/package.json +13 -14
  112. package/node_modules/process-nextick-args/package.json +13 -14
  113. package/node_modules/rc/node_modules/minimist/package.json +13 -14
  114. package/node_modules/rc/package.json +18 -19
  115. package/node_modules/readable-stream/package.json +13 -14
  116. package/node_modules/rimraf/package.json +22 -20
  117. package/node_modules/safe-buffer/index.d.ts +187 -0
  118. package/node_modules/safe-buffer/package.json +23 -21
  119. package/node_modules/safer-buffer/package.json +13 -14
  120. package/node_modules/sax/package.json +13 -14
  121. package/node_modules/semver/CHANGELOG.md +39 -0
  122. package/node_modules/semver/README.md +31 -8
  123. package/node_modules/semver/bin/semver +92 -75
  124. package/node_modules/semver/package.json +25 -20
  125. package/node_modules/semver/semver.js +922 -763
  126. package/node_modules/set-blocking/package.json +13 -14
  127. package/node_modules/signal-exit/package.json +13 -14
  128. package/node_modules/string-width/package.json +14 -14
  129. package/node_modules/string_decoder/package.json +13 -14
  130. package/node_modules/strip-ansi/package.json +14 -14
  131. package/node_modules/strip-json-comments/package.json +13 -14
  132. package/node_modules/tar/README.md +7 -2
  133. package/node_modules/tar/lib/header.js +20 -4
  134. package/node_modules/tar/lib/mode-fix.js +14 -0
  135. package/node_modules/tar/lib/pack.js +1 -0
  136. package/node_modules/tar/lib/parse.js +2 -1
  137. package/node_modules/tar/lib/unpack.js +67 -6
  138. package/node_modules/tar/lib/write-entry.js +25 -6
  139. package/node_modules/tar/package.json +25 -26
  140. package/node_modules/util-deprecate/package.json +13 -14
  141. package/node_modules/wide-align/package.json +19 -20
  142. package/node_modules/wrappy/package.json +14 -14
  143. package/node_modules/yallist/iterator.js +5 -5
  144. package/node_modules/yallist/package.json +19 -19
  145. package/node_modules/yallist/yallist.js +2 -2
  146. package/package.json +6 -9
  147. package/src/async.cc +2 -2
  148. package/src/thread.cc +5 -6
  149. package/.npmignore +0 -1
  150. package/build/.target.mk +0 -53
  151. package/build/Makefile +0 -352
  152. package/build/Release/.deps/Release/.node.d +0 -1
  153. package/build/Release/.deps/Release/fse.node.d +0 -1
  154. package/build/Release/.deps/Release/obj.target/action_after_build.stamp.d +0 -1
  155. package/build/Release/.deps/Release/obj.target/fse/fsevents.o.d +0 -65
  156. package/build/Release/.deps/Users/eshanker/Code/fsevents/lib/binding/Release/node-v48-darwin-x64/fse.node.d +0 -1
  157. package/build/Release/.node +0 -0
  158. package/build/Release/fse.node +0 -0
  159. package/build/Release/obj.target/action_after_build.stamp +0 -0
  160. package/build/Release/obj.target/fse/fsevents.o +0 -0
  161. package/build/action_after_build.target.mk +0 -32
  162. package/build/binding.Makefile +0 -6
  163. package/build/fse.target.mk +0 -179
  164. package/build/gyp-mac-tool +0 -611
  165. package/build/stage/v1.1.2/fse-v1.1.2-node-v48-darwin-x64.tar.gz +0 -0
  166. package/lib/binding/Release/node-v11-darwin-x64/fse.node +0 -0
  167. package/lib/binding/Release/node-v46-darwin-x64/fse.node +0 -0
  168. package/lib/binding/Release/node-v47-darwin-x64/fse.node +0 -0
  169. package/lib/binding/Release/node-v48-darwin-x64/fse.node +0 -0
  170. package/lib/binding/Release/node-v57-darwin-x64/fse.node +0 -0
  171. package/node_modules/are-we-there-yet/CHANGES.md~ +0 -27
  172. package/node_modules/debug/.coveralls.yml +0 -1
  173. package/node_modules/debug/.eslintrc +0 -11
  174. package/node_modules/debug/.npmignore +0 -9
  175. package/node_modules/debug/.travis.yml +0 -14
  176. package/node_modules/debug/Makefile +0 -50
  177. package/node_modules/debug/component.json +0 -19
  178. package/node_modules/debug/karma.conf.js +0 -70
  179. package/node_modules/debug/node.js +0 -1
  180. package/node_modules/debug/src/debug.js +0 -202
  181. package/node_modules/debug/src/inspector-log.js +0 -15
  182. package/node_modules/iconv-lite/.travis.yml +0 -23
  183. package/node_modules/rc/.npmignore +0 -3
  184. package/node_modules/safe-buffer/.travis.yml +0 -7
  185. package/node_modules/safe-buffer/test.js +0 -101
  186. package/src/locking.cc +0 -27
@@ -1,30 +1,27 @@
1
1
  {
2
- "_args": [
3
- [
4
- "set-blocking@2.0.0",
5
- "/Users/eshanker/Code/fsevents"
6
- ]
7
- ],
8
- "_from": "set-blocking@2.0.0",
2
+ "_from": "set-blocking@~2.0.0",
9
3
  "_id": "set-blocking@2.0.0",
10
4
  "_inBundle": false,
11
5
  "_integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
12
6
  "_location": "/set-blocking",
13
7
  "_phantomChildren": {},
14
8
  "_requested": {
15
- "type": "version",
9
+ "type": "range",
16
10
  "registry": true,
17
- "raw": "set-blocking@2.0.0",
11
+ "raw": "set-blocking@~2.0.0",
18
12
  "name": "set-blocking",
19
13
  "escapedName": "set-blocking",
20
- "rawSpec": "2.0.0",
14
+ "rawSpec": "~2.0.0",
21
15
  "saveSpec": null,
22
- "fetchSpec": "2.0.0"
16
+ "fetchSpec": "~2.0.0"
23
17
  },
24
- "_requiredBy": [],
18
+ "_requiredBy": [
19
+ "/npmlog"
20
+ ],
25
21
  "_resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
26
- "_spec": "2.0.0",
27
- "_where": "/Users/eshanker/Code/fsevents",
22
+ "_shasum": "045f9782d011ae9a6803ddd382b24392b3d890f7",
23
+ "_spec": "set-blocking@~2.0.0",
24
+ "_where": "/Users/pipobscure/fsevents/node_modules/npmlog",
28
25
  "author": {
29
26
  "name": "Ben Coe",
30
27
  "email": "ben@npmjs.com"
@@ -32,6 +29,8 @@
32
29
  "bugs": {
33
30
  "url": "https://github.com/yargs/set-blocking/issues"
34
31
  },
32
+ "bundleDependencies": false,
33
+ "deprecated": false,
35
34
  "description": "set blocking stdio and stderr ensuring that terminal output does not truncate",
36
35
  "devDependencies": {
37
36
  "chai": "^3.5.0",
@@ -1,30 +1,27 @@
1
1
  {
2
- "_args": [
3
- [
4
- "signal-exit@3.0.2",
5
- "/Users/eshanker/Code/fsevents"
6
- ]
7
- ],
8
- "_from": "signal-exit@3.0.2",
2
+ "_from": "signal-exit@^3.0.0",
9
3
  "_id": "signal-exit@3.0.2",
10
4
  "_inBundle": false,
11
5
  "_integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
12
6
  "_location": "/signal-exit",
13
7
  "_phantomChildren": {},
14
8
  "_requested": {
15
- "type": "version",
9
+ "type": "range",
16
10
  "registry": true,
17
- "raw": "signal-exit@3.0.2",
11
+ "raw": "signal-exit@^3.0.0",
18
12
  "name": "signal-exit",
19
13
  "escapedName": "signal-exit",
20
- "rawSpec": "3.0.2",
14
+ "rawSpec": "^3.0.0",
21
15
  "saveSpec": null,
22
- "fetchSpec": "3.0.2"
16
+ "fetchSpec": "^3.0.0"
23
17
  },
24
- "_requiredBy": [],
18
+ "_requiredBy": [
19
+ "/gauge"
20
+ ],
25
21
  "_resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
26
- "_spec": "3.0.2",
27
- "_where": "/Users/eshanker/Code/fsevents",
22
+ "_shasum": "b5fdc08f1287ea1178628e415e25132b73646c6d",
23
+ "_spec": "signal-exit@^3.0.0",
24
+ "_where": "/Users/pipobscure/fsevents/node_modules/gauge",
28
25
  "author": {
29
26
  "name": "Ben Coe",
30
27
  "email": "ben@npmjs.com"
@@ -32,6 +29,8 @@
32
29
  "bugs": {
33
30
  "url": "https://github.com/tapjs/signal-exit/issues"
34
31
  },
32
+ "bundleDependencies": false,
33
+ "deprecated": false,
35
34
  "description": "when you want to fire an event no matter how a process exits.",
36
35
  "devDependencies": {
37
36
  "chai": "^3.5.0",
@@ -1,30 +1,28 @@
1
1
  {
2
- "_args": [
3
- [
4
- "string-width@1.0.2",
5
- "/Users/eshanker/Code/fsevents"
6
- ]
7
- ],
8
- "_from": "string-width@1.0.2",
2
+ "_from": "string-width@^1.0.1",
9
3
  "_id": "string-width@1.0.2",
10
4
  "_inBundle": false,
11
5
  "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
12
6
  "_location": "/string-width",
13
7
  "_phantomChildren": {},
14
8
  "_requested": {
15
- "type": "version",
9
+ "type": "range",
16
10
  "registry": true,
17
- "raw": "string-width@1.0.2",
11
+ "raw": "string-width@^1.0.1",
18
12
  "name": "string-width",
19
13
  "escapedName": "string-width",
20
- "rawSpec": "1.0.2",
14
+ "rawSpec": "^1.0.1",
21
15
  "saveSpec": null,
22
- "fetchSpec": "1.0.2"
16
+ "fetchSpec": "^1.0.1"
23
17
  },
24
- "_requiredBy": [],
18
+ "_requiredBy": [
19
+ "/gauge",
20
+ "/wide-align"
21
+ ],
25
22
  "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
26
- "_spec": "1.0.2",
27
- "_where": "/Users/eshanker/Code/fsevents",
23
+ "_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
24
+ "_spec": "string-width@^1.0.1",
25
+ "_where": "/Users/pipobscure/fsevents/node_modules/gauge",
28
26
  "author": {
29
27
  "name": "Sindre Sorhus",
30
28
  "email": "sindresorhus@gmail.com",
@@ -33,11 +31,13 @@
33
31
  "bugs": {
34
32
  "url": "https://github.com/sindresorhus/string-width/issues"
35
33
  },
34
+ "bundleDependencies": false,
36
35
  "dependencies": {
37
36
  "code-point-at": "^1.0.0",
38
37
  "is-fullwidth-code-point": "^1.0.0",
39
38
  "strip-ansi": "^3.0.0"
40
39
  },
40
+ "deprecated": false,
41
41
  "description": "Get the visual width of a string - the number of columns required to display it",
42
42
  "devDependencies": {
43
43
  "ava": "*",
@@ -1,36 +1,35 @@
1
1
  {
2
- "_args": [
3
- [
4
- "string_decoder@1.1.1",
5
- "/Users/eshanker/Code/fsevents"
6
- ]
7
- ],
8
- "_from": "string_decoder@1.1.1",
2
+ "_from": "string_decoder@~1.1.1",
9
3
  "_id": "string_decoder@1.1.1",
10
4
  "_inBundle": false,
11
5
  "_integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
12
6
  "_location": "/string_decoder",
13
7
  "_phantomChildren": {},
14
8
  "_requested": {
15
- "type": "version",
9
+ "type": "range",
16
10
  "registry": true,
17
- "raw": "string_decoder@1.1.1",
11
+ "raw": "string_decoder@~1.1.1",
18
12
  "name": "string_decoder",
19
13
  "escapedName": "string_decoder",
20
- "rawSpec": "1.1.1",
14
+ "rawSpec": "~1.1.1",
21
15
  "saveSpec": null,
22
- "fetchSpec": "1.1.1"
16
+ "fetchSpec": "~1.1.1"
23
17
  },
24
- "_requiredBy": [],
18
+ "_requiredBy": [
19
+ "/readable-stream"
20
+ ],
25
21
  "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
26
- "_spec": "1.1.1",
27
- "_where": "/Users/eshanker/Code/fsevents",
22
+ "_shasum": "9cf1611ba62685d7030ae9e4ba34149c3af03fc8",
23
+ "_spec": "string_decoder@~1.1.1",
24
+ "_where": "/Users/pipobscure/fsevents/node_modules/readable-stream",
28
25
  "bugs": {
29
26
  "url": "https://github.com/nodejs/string_decoder/issues"
30
27
  },
28
+ "bundleDependencies": false,
31
29
  "dependencies": {
32
30
  "safe-buffer": "~5.1.0"
33
31
  },
32
+ "deprecated": false,
34
33
  "description": "The string_decoder module from Node core",
35
34
  "devDependencies": {
36
35
  "babel-polyfill": "^6.23.0",
@@ -1,30 +1,28 @@
1
1
  {
2
- "_args": [
3
- [
4
- "strip-ansi@3.0.1",
5
- "/Users/eshanker/Code/fsevents"
6
- ]
7
- ],
8
- "_from": "strip-ansi@3.0.1",
2
+ "_from": "strip-ansi@^3.0.1",
9
3
  "_id": "strip-ansi@3.0.1",
10
4
  "_inBundle": false,
11
5
  "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
12
6
  "_location": "/strip-ansi",
13
7
  "_phantomChildren": {},
14
8
  "_requested": {
15
- "type": "version",
9
+ "type": "range",
16
10
  "registry": true,
17
- "raw": "strip-ansi@3.0.1",
11
+ "raw": "strip-ansi@^3.0.1",
18
12
  "name": "strip-ansi",
19
13
  "escapedName": "strip-ansi",
20
- "rawSpec": "3.0.1",
14
+ "rawSpec": "^3.0.1",
21
15
  "saveSpec": null,
22
- "fetchSpec": "3.0.1"
16
+ "fetchSpec": "^3.0.1"
23
17
  },
24
- "_requiredBy": [],
18
+ "_requiredBy": [
19
+ "/gauge",
20
+ "/string-width"
21
+ ],
25
22
  "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
26
- "_spec": "3.0.1",
27
- "_where": "/Users/eshanker/Code/fsevents",
23
+ "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
24
+ "_spec": "strip-ansi@^3.0.1",
25
+ "_where": "/Users/pipobscure/fsevents/node_modules/gauge",
28
26
  "author": {
29
27
  "name": "Sindre Sorhus",
30
28
  "email": "sindresorhus@gmail.com",
@@ -33,9 +31,11 @@
33
31
  "bugs": {
34
32
  "url": "https://github.com/chalk/strip-ansi/issues"
35
33
  },
34
+ "bundleDependencies": false,
36
35
  "dependencies": {
37
36
  "ansi-regex": "^2.0.0"
38
37
  },
38
+ "deprecated": false,
39
39
  "description": "Strip ANSI escape codes",
40
40
  "devDependencies": {
41
41
  "ava": "*",
@@ -1,30 +1,27 @@
1
1
  {
2
- "_args": [
3
- [
4
- "strip-json-comments@2.0.1",
5
- "/Users/eshanker/Code/fsevents"
6
- ]
7
- ],
8
- "_from": "strip-json-comments@2.0.1",
2
+ "_from": "strip-json-comments@~2.0.1",
9
3
  "_id": "strip-json-comments@2.0.1",
10
4
  "_inBundle": false,
11
5
  "_integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
12
6
  "_location": "/strip-json-comments",
13
7
  "_phantomChildren": {},
14
8
  "_requested": {
15
- "type": "version",
9
+ "type": "range",
16
10
  "registry": true,
17
- "raw": "strip-json-comments@2.0.1",
11
+ "raw": "strip-json-comments@~2.0.1",
18
12
  "name": "strip-json-comments",
19
13
  "escapedName": "strip-json-comments",
20
- "rawSpec": "2.0.1",
14
+ "rawSpec": "~2.0.1",
21
15
  "saveSpec": null,
22
- "fetchSpec": "2.0.1"
16
+ "fetchSpec": "~2.0.1"
23
17
  },
24
- "_requiredBy": [],
18
+ "_requiredBy": [
19
+ "/rc"
20
+ ],
25
21
  "_resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
26
- "_spec": "2.0.1",
27
- "_where": "/Users/eshanker/Code/fsevents",
22
+ "_shasum": "3c531942e908c2697c0ec344858c286c7ca0a60a",
23
+ "_spec": "strip-json-comments@~2.0.1",
24
+ "_where": "/Users/pipobscure/fsevents/node_modules/rc",
28
25
  "author": {
29
26
  "name": "Sindre Sorhus",
30
27
  "email": "sindresorhus@gmail.com",
@@ -33,6 +30,8 @@
33
30
  "bugs": {
34
31
  "url": "https://github.com/sindresorhus/strip-json-comments/issues"
35
32
  },
33
+ "bundleDependencies": false,
34
+ "deprecated": false,
36
35
  "description": "Strip comments from JSON. Lets you use comments in your JSON files!",
37
36
  "devDependencies": {
38
37
  "ava": "*",
@@ -108,7 +108,7 @@ tar.c( // or tar.create
108
108
  gzip: <true|gzip options>
109
109
  },
110
110
  ['some', 'files', 'and', 'folders']
111
- ).pipe(fs.createWriteStream('my-tarball.tgz')
111
+ ).pipe(fs.createWriteStream('my-tarball.tgz'))
112
112
  ```
113
113
 
114
114
  To replicate `tar xf my-tarball.tgz` you'd do:
@@ -230,6 +230,9 @@ The following options are supported:
230
230
  Note that this prevents using other mtime-based features like
231
231
  `tar.update` or the `keepNewer` option with the resulting tar archive.
232
232
  [Alias: `m`, `no-mtime`]
233
+ - `mtime` Set to a `Date` object to force a specific `mtime` for
234
+ everything added to the archive. Overridden by `noMtime`.
235
+
233
236
 
234
237
  The following options are mostly internal, but can be modified in some
235
238
  advanced use cases, such as re-using caches between runs.
@@ -534,7 +537,6 @@ The following options are supported:
534
537
  - `mtime` Set to a `Date` object to force a specific `mtime` for
535
538
  everything added to the archive. Overridden by `noMtime`.
536
539
 
537
-
538
540
  #### add(path)
539
541
 
540
542
  Adds an entry to the archive. Returns the Pack stream.
@@ -784,6 +786,9 @@ The following options are supported:
784
786
  - `noMtime` Set to true to omit writing `mtime` values for entries.
785
787
  Note that this prevents using other mtime-based features like
786
788
  `tar.update` or the `keepNewer` option with the resulting tar archive.
789
+ - `umask` Set to restrict the modes on the entries in the archive,
790
+ somewhat like how umask works on file creation. Defaults to
791
+ `process.umask()` on unix systems, or `0o22` on Windows.
787
792
 
788
793
  #### warn(message, data)
789
794
 
@@ -6,13 +6,14 @@
6
6
 
7
7
  const Buffer = require('./buffer.js')
8
8
  const types = require('./types.js')
9
- const pathModule = require('path')
9
+ const pathModule = require('path').posix
10
10
  const large = require('./large-numbers.js')
11
11
 
12
+ const SLURP = Symbol('slurp')
12
13
  const TYPE = Symbol('type')
13
14
 
14
15
  class Header {
15
- constructor (data, off) {
16
+ constructor (data, off, ex, gex) {
16
17
  this.cksumValid = false
17
18
  this.needPax = false
18
19
  this.nullBlock = false
@@ -35,12 +36,12 @@ class Header {
35
36
  this.ctime = null
36
37
 
37
38
  if (Buffer.isBuffer(data))
38
- this.decode(data, off || 0)
39
+ this.decode(data, off || 0, ex, gex)
39
40
  else if (data)
40
41
  this.set(data)
41
42
  }
42
43
 
43
- decode (buf, off) {
44
+ decode (buf, off, ex, gex) {
44
45
  if (!off)
45
46
  off = 0
46
47
 
@@ -55,6 +56,11 @@ class Header {
55
56
  this.mtime = decDate(buf, off + 136, 12)
56
57
  this.cksum = decNumber(buf, off + 148, 12)
57
58
 
59
+ // if we have extended or global extended headers, apply them now
60
+ // See https://github.com/npm/node-tar/pull/187
61
+ this[SLURP](ex)
62
+ this[SLURP](gex, true)
63
+
58
64
  // old tar versions marked dirs as a file with a trailing /
59
65
  this[TYPE] = decString(buf, off + 156, 1)
60
66
  if (this[TYPE] === '')
@@ -101,6 +107,16 @@ class Header {
101
107
  this.nullBlock = true
102
108
  }
103
109
 
110
+ [SLURP] (ex, global) {
111
+ for (let k in ex) {
112
+ // we slurp in everything except for the path attribute in
113
+ // a global extended header, because that's weird.
114
+ if (ex[k] !== null && ex[k] !== undefined &&
115
+ !(global && k === 'path'))
116
+ this[k] = ex[k]
117
+ }
118
+ }
119
+
104
120
  encode (buf, off) {
105
121
  if (!buf) {
106
122
  buf = this.block = Buffer.alloc(512)
@@ -0,0 +1,14 @@
1
+ 'use strict'
2
+ module.exports = (mode, isDir) => {
3
+ mode &= 0o7777
4
+ // if dirs are readable, then they should be listable
5
+ if (isDir) {
6
+ if (mode & 0o400)
7
+ mode |= 0o100
8
+ if (mode & 0o40)
9
+ mode |= 0o10
10
+ if (mode & 0o4)
11
+ mode |= 0o1
12
+ }
13
+ return mode
14
+ }
@@ -71,6 +71,7 @@ const Pack = warner(class Pack extends MiniPass {
71
71
  this.linkCache = opt.linkCache || new Map()
72
72
  this.statCache = opt.statCache || new Map()
73
73
  this.readdirCache = opt.readdirCache || new Map()
74
+
74
75
  this[WRITEENTRYCLASS] = WriteEntry
75
76
  if (typeof opt.onwarn === 'function')
76
77
  this.on('warn', opt.onwarn)
@@ -29,6 +29,7 @@ const maxMetaEntrySize = 1024 * 1024
29
29
  const Entry = require('./read-entry.js')
30
30
  const Pax = require('./pax.js')
31
31
  const zlib = require('minizlib')
32
+ const Buffer = require('./buffer.js')
32
33
 
33
34
  const gzipHeader = Buffer.from([0x1f, 0x8b])
34
35
  const STATE = Symbol('state')
@@ -101,7 +102,7 @@ module.exports = warner(class Parser extends EE {
101
102
  }
102
103
 
103
104
  [CONSUMEHEADER] (chunk, position) {
104
- const header = new Header(chunk, position)
105
+ const header = new Header(chunk, position, this[EX], this[GEX])
105
106
 
106
107
  if (header.nullBlock)
107
108
  this[EMIT]('nullBlock')
@@ -12,6 +12,7 @@ const wc = require('./winchars.js')
12
12
 
13
13
  const ONENTRY = Symbol('onEntry')
14
14
  const CHECKFS = Symbol('checkFs')
15
+ const ISREUSABLE = Symbol('isReusable')
15
16
  const MAKEFS = Symbol('makeFs')
16
17
  const FILE = Symbol('file')
17
18
  const DIRECTORY = Symbol('directory')
@@ -32,6 +33,45 @@ const SKIP = Symbol('skip')
32
33
  const DOCHOWN = Symbol('doChown')
33
34
  const UID = Symbol('uid')
34
35
  const GID = Symbol('gid')
36
+ const crypto = require('crypto')
37
+
38
+ // Unlinks on Windows are not atomic.
39
+ //
40
+ // This means that if you have a file entry, followed by another
41
+ // file entry with an identical name, and you cannot re-use the file
42
+ // (because it's a hardlink, or because unlink:true is set, or it's
43
+ // Windows, which does not have useful nlink values), then the unlink
44
+ // will be committed to the disk AFTER the new file has been written
45
+ // over the old one, deleting the new file.
46
+ //
47
+ // To work around this, on Windows systems, we rename the file and then
48
+ // delete the renamed file. It's a sloppy kludge, but frankly, I do not
49
+ // know of a better way to do this, given windows' non-atomic unlink
50
+ // semantics.
51
+ //
52
+ // See: https://github.com/npm/node-tar/issues/183
53
+ /* istanbul ignore next */
54
+ const unlinkFile = (path, cb) => {
55
+ if (process.platform !== 'win32')
56
+ return fs.unlink(path, cb)
57
+
58
+ const name = path + '.DELETE.' + crypto.randomBytes(16).toString('hex')
59
+ fs.rename(path, name, er => {
60
+ if (er)
61
+ return cb(er)
62
+ fs.unlink(name, cb)
63
+ })
64
+ }
65
+
66
+ /* istanbul ignore next */
67
+ const unlinkFileSync = path => {
68
+ if (process.platform !== 'win32')
69
+ return fs.unlinkSync(path)
70
+
71
+ const name = path + '.DELETE.' + crypto.randomBytes(16).toString('hex')
72
+ fs.renameSync(path, name)
73
+ fs.unlinkSync(name)
74
+ }
35
75
 
36
76
  // this.gid, entry.gid, this.processUid
37
77
  const uint32 = (a, b, c) =>
@@ -138,6 +178,12 @@ class Unpack extends Parser {
138
178
  if (parts.length < this.strip)
139
179
  return false
140
180
  entry.path = parts.slice(this.strip).join('/')
181
+
182
+ if (entry.type === 'Link') {
183
+ const linkparts = entry.linkpath.split(/\/|\\/)
184
+ if (linkparts.length >= this.strip)
185
+ entry.linkpath = linkparts.slice(this.strip).join('/')
186
+ }
141
187
  }
142
188
 
143
189
  if (!this.preservePaths) {
@@ -291,8 +337,10 @@ class Unpack extends Parser {
291
337
  })
292
338
 
293
339
  const tx = this.transform ? this.transform(entry) || entry : entry
294
- if (tx !== entry)
340
+ if (tx !== entry) {
341
+ tx.on('error', er => this[ONERROR](er, entry))
295
342
  entry.pipe(tx)
343
+ }
296
344
  tx.pipe(stream)
297
345
  }
298
346
 
@@ -351,6 +399,17 @@ class Unpack extends Parser {
351
399
  entry.resume()
352
400
  }
353
401
 
402
+ // Check if we can reuse an existing filesystem entry safely and
403
+ // overwrite it, rather than unlinking and recreating
404
+ // Windows doesn't report a useful nlink, so we just never reuse entries
405
+ [ISREUSABLE] (entry, st) {
406
+ return entry.type === 'File' &&
407
+ !this.unlink &&
408
+ st.isFile() &&
409
+ st.nlink <= 1 &&
410
+ process.platform !== 'win32'
411
+ }
412
+
354
413
  // check if a thing is there, and if so, try to clobber it
355
414
  [CHECKFS] (entry) {
356
415
  this[PEND]()
@@ -360,7 +419,7 @@ class Unpack extends Parser {
360
419
  fs.lstat(entry.absolute, (er, st) => {
361
420
  if (st && (this.keep || this.newer && st.mtime > entry.mtime))
362
421
  this[SKIP](entry)
363
- else if (er || (entry.type === 'File' && !this.unlink && st.isFile()))
422
+ else if (er || this[ISREUSABLE](entry, st))
364
423
  this[MAKEFS](null, entry)
365
424
  else if (st.isDirectory()) {
366
425
  if (entry.type === 'Directory') {
@@ -371,7 +430,7 @@ class Unpack extends Parser {
371
430
  } else
372
431
  fs.rmdir(entry.absolute, er => this[MAKEFS](er, entry))
373
432
  } else
374
- fs.unlink(entry.absolute, er => this[MAKEFS](er, entry))
433
+ unlinkFile(entry.absolute, er => this[MAKEFS](er, entry))
375
434
  })
376
435
  })
377
436
  }
@@ -422,7 +481,7 @@ class UnpackSync extends Unpack {
422
481
  const st = fs.lstatSync(entry.absolute)
423
482
  if (this.keep || this.newer && st.mtime > entry.mtime)
424
483
  return this[SKIP](entry)
425
- else if (entry.type === 'File' && !this.unlink && st.isFile())
484
+ else if (this[ISREUSABLE](entry, st))
426
485
  return this[MAKEFS](null, entry)
427
486
  else {
428
487
  try {
@@ -433,7 +492,7 @@ class UnpackSync extends Unpack {
433
492
  } else
434
493
  fs.rmdirSync(entry.absolute)
435
494
  } else
436
- fs.unlinkSync(entry.absolute)
495
+ unlinkFileSync(entry.absolute)
437
496
  return this[MAKEFS](null, entry)
438
497
  } catch (er) {
439
498
  return this[ONERROR](er, entry)
@@ -461,8 +520,10 @@ class UnpackSync extends Unpack {
461
520
  return oner(er)
462
521
  }
463
522
  const tx = this.transform ? this.transform(entry) || entry : entry
464
- if (tx !== entry)
523
+ if (tx !== entry) {
524
+ tx.on('error', er => this[ONERROR](er, entry))
465
525
  entry.pipe(tx)
526
+ }
466
527
 
467
528
  tx.on('data', chunk => {
468
529
  try {
@@ -23,9 +23,12 @@ const ONREADLINK = Symbol('onreadlink')
23
23
  const OPENFILE = Symbol('openfile')
24
24
  const ONOPENFILE = Symbol('onopenfile')
25
25
  const CLOSE = Symbol('close')
26
+ const MODE = Symbol('mode')
26
27
  const warner = require('./warn-mixin.js')
27
28
  const winchars = require('./winchars.js')
28
29
 
30
+ const modeFix = require('./mode-fix.js')
31
+
29
32
  const WriteEntry = warner(class WriteEntry extends MiniPass {
30
33
  constructor (p, opt) {
31
34
  opt = opt || {}
@@ -104,6 +107,10 @@ const WriteEntry = warner(class WriteEntry extends MiniPass {
104
107
  }
105
108
  }
106
109
 
110
+ [MODE] (mode) {
111
+ return modeFix(mode, this.type === 'Directory')
112
+ }
113
+
107
114
  [HEADER] () {
108
115
  if (this.type === 'Directory' && this.portable)
109
116
  this.noMtime = true
@@ -113,7 +120,7 @@ const WriteEntry = warner(class WriteEntry extends MiniPass {
113
120
  linkpath: this.linkpath,
114
121
  // only the permissions and setuid/setgid/sticky bitflags
115
122
  // not the higher-order bits that specify file type
116
- mode: this.stat.mode & 0o7777,
123
+ mode: this[MODE](this.stat.mode),
117
124
  uid: this.portable ? null : this.stat.uid,
118
125
  gid: this.portable ? null : this.stat.gid,
119
126
  size: this.stat.size,
@@ -220,11 +227,21 @@ const WriteEntry = warner(class WriteEntry extends MiniPass {
220
227
 
221
228
  [ONREAD] (fd, buf, offset, length, pos, remain, blockRemain, bytesRead) {
222
229
  if (bytesRead <= 0 && remain > 0) {
223
- const er = new Error('unexpected EOF')
230
+ const er = new Error('encountered unexpected EOF')
231
+ er.path = this.absolute
232
+ er.syscall = 'read'
233
+ er.code = 'EOF'
234
+ this[CLOSE](fd)
235
+ return this.emit('error', er)
236
+ }
237
+
238
+ if (bytesRead > remain) {
239
+ const er = new Error('did not encounter expected EOF')
224
240
  er.path = this.absolute
225
241
  er.syscall = 'read'
226
242
  er.code = 'EOF'
227
- this.emit('error', er)
243
+ this[CLOSE](fd)
244
+ return this.emit('error', er)
228
245
  }
229
246
 
230
247
  // null out the rest of the buffer, if we could fit the block padding
@@ -312,9 +329,7 @@ const WriteEntryTar = warner(class WriteEntryTar extends MiniPass {
312
329
  this.noMtime = true
313
330
 
314
331
  this.path = readEntry.path
315
- this.mode = readEntry.mode
316
- if (this.mode)
317
- this.mode = this.mode & 0o7777
332
+ this.mode = this[MODE](readEntry.mode)
318
333
  this.uid = this.portable ? null : readEntry.uid
319
334
  this.gid = this.portable ? null : readEntry.gid
320
335
  this.uname = this.portable ? null : readEntry.uname
@@ -376,6 +391,10 @@ const WriteEntryTar = warner(class WriteEntryTar extends MiniPass {
376
391
  readEntry.pipe(this)
377
392
  }
378
393
 
394
+ [MODE] (mode) {
395
+ return modeFix(mode, this.type === 'Directory')
396
+ }
397
+
379
398
  write (data) {
380
399
  const writeLen = data.length
381
400
  if (writeLen > this.blockRemain)