diff --git a/package-lock.json b/package-lock.json index bc75d608a..5e169b6ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,12 +21,12 @@ } }, "@atom/fuzzy-native": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@atom/fuzzy-native/-/fuzzy-native-0.7.0.tgz", - "integrity": "sha512-FupfyfBTN12/WL6zJ/GXWWMCpFAItFPkK85vEF/96YY1utSvpk3eaLTIvrwO9afbR2nJnmPpjW6YsMcat4PqOw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@atom/fuzzy-native/-/fuzzy-native-1.0.1.tgz", + "integrity": "sha512-qqpUL9NpR7Ee04CNoHK8eOXx3ON4e2AbxMFA4v1Ch6lCb7//K9YsJKTmTNT9W49dF9snV+hdgF4TNYD1gY7Qpg==", "requires": { "nan": "^2.0.0", - "node-pre-gyp": "^0.6.30", + "node-pre-gyp": "^0.10.0", "semver": "^5.0.0" }, "dependencies": { @@ -34,14 +34,6 @@ "version": "1.1.1", "bundled": true }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, "ansi-regex": { "version": "2.1.1", "bundled": true @@ -58,54 +50,10 @@ "readable-stream": "^2.0.6" } }, - "asn1": { - "version": "0.2.4", - "bundled": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true - }, - "aws4": { - "version": "1.8.0", - "bundled": true - }, "balanced-match": { "version": "1.0.0", "bundled": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "bundled": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "requires": { - "hoek": "2.x.x" - } - }, "brace-expansion": { "version": "1.1.11", "bundled": true, @@ -114,25 +62,14 @@ "concat-map": "0.0.1" } }, - "caseless": { - "version": "0.12.0", - "bundled": true - }, - "co": { - "version": "4.6.0", + "chownr": { + "version": "1.1.1", "bundled": true }, "code-point-at": { "version": "1.1.0", "bundled": true }, - "combined-stream": { - "version": "1.0.7", - "bundled": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, "concat-map": { "version": "0.0.1", "bundled": true @@ -145,26 +82,6 @@ "version": "1.0.2", "bundled": true }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "requires": { - "boom": "2.x.x" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, "debug": { "version": "2.6.9", "bundled": true, @@ -176,10 +93,6 @@ "version": "0.6.0", "bundled": true }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true - }, "delegates": { "version": "1.0.0", "bundled": true @@ -188,58 +101,17 @@ "version": "1.0.3", "bundled": true }, - "ecc-jsbn": { - "version": "0.1.2", + "fs-minipass": { + "version": "1.2.5", "bundled": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "extend": { - "version": "3.0.2", - "bundled": true - }, - "extsprintf": { - "version": "1.3.0", - "bundled": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" + "minipass": "^2.2.1" } }, "fs.realpath": { "version": "1.0.0", "bundled": true }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "requires": { - "fstream": "^1.0.0", - "inherits": "2", - "minimatch": "^3.0.0" - } - }, "gauge": { "version": "2.7.4", "bundled": true, @@ -254,19 +126,6 @@ "wide-align": "^1.1.0" } }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, "glob": { "version": "7.1.3", "bundled": true, @@ -279,47 +138,22 @@ "path-is-absolute": "^1.0.0" } }, - "graceful-fs": { - "version": "4.1.15", - "bundled": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - } - }, "has-unicode": { "version": "2.0.1", "bundled": true }, - "hawk": { - "version": "3.1.3", + "iconv-lite": { + "version": "0.4.23", "bundled": true, "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" + "safer-buffer": ">= 2.1.2 < 3" } }, - "hoek": { - "version": "2.16.3", - "bundled": true - }, - "http-signature": { - "version": "1.1.1", + "ignore-walk": { + "version": "3.0.1", "bundled": true, "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "minimatch": "^3.0.4" } }, "inflight": { @@ -345,68 +179,10 @@ "number-is-nan": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true - }, "isarray": { "version": "1.0.0", "bundled": true }, - "isstream": { - "version": "0.1.2", - "bundled": true - }, - "jsbn": { - "version": "0.1.1", - "bundled": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true - }, - "jsprim": { - "version": "1.4.1", - "bundled": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "mime-db": { - "version": "1.38.0", - "bundled": true - }, - "mime-types": { - "version": "2.1.22", - "bundled": true, - "requires": { - "mime-db": "~1.38.0" - } - }, "minimatch": { "version": "3.0.4", "bundled": true, @@ -418,6 +194,24 @@ "version": "0.0.8", "bundled": true }, + "minipass": { + "version": "2.3.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, "mkdirp": { "version": "0.5.1", "bundled": true, @@ -429,21 +223,29 @@ "version": "2.0.0", "bundled": true }, + "needle": { + "version": "2.2.1", + "bundled": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, "node-pre-gyp": { - "version": "0.6.39", + "version": "0.10.3", "bundled": true, "requires": { "detect-libc": "^1.0.2", - "hawk": "3.1.3", "mkdirp": "^0.5.1", + "needle": "^2.2.1", "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", - "rc": "^1.1.7", - "request": "2.81.0", + "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^2.2.1", - "tar-pack": "^3.4.0" + "tar": "^4" } }, "nopt": { @@ -454,6 +256,18 @@ "osenv": "^0.1.4" } }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, "npmlog": { "version": "4.1.2", "bundled": true, @@ -468,10 +282,6 @@ "version": "1.0.1", "bundled": true }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true - }, "object-assign": { "version": "4.1.1", "bundled": true @@ -503,22 +313,10 @@ "version": "1.0.1", "bundled": true }, - "performance-now": { - "version": "0.2.0", - "bundled": true - }, "process-nextick-args": { "version": "2.0.0", "bundled": true }, - "punycode": { - "version": "1.4.1", - "bundled": true - }, - "qs": { - "version": "6.4.0", - "bundled": true - }, "rc": { "version": "1.2.8", "bundled": true, @@ -548,34 +346,6 @@ "util-deprecate": "~1.0.1" } }, - "request": { - "version": "2.81.0", - "bundled": true, - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - } - }, "rimraf": { "version": "2.6.3", "bundled": true, @@ -591,6 +361,10 @@ "version": "2.1.2", "bundled": true }, + "sax": { + "version": "1.2.4", + "bundled": true + }, "semver": { "version": "5.7.0", "bundled": true @@ -603,34 +377,6 @@ "version": "3.0.2", "bundled": true }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "requires": { - "hoek": "2.x.x" - } - }, - "sshpk": { - "version": "1.16.1", - "bundled": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, "string-width": { "version": "1.0.2", "bundled": true, @@ -647,10 +393,6 @@ "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.6", - "bundled": true - }, "strip-ansi": { "version": "3.0.1", "bundled": true, @@ -663,73 +405,39 @@ "bundled": true }, "tar": { - "version": "2.2.1", + "version": "4.4.8", "bundled": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "dependencies": { + "minipass": { + "version": "2.3.5", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "requires": { + "minipass": "^2.2.1" + } + } } }, - "tar-pack": { - "version": "3.4.1", - "bundled": true, - "requires": { - "debug": "^2.2.0", - "fstream": "^1.0.10", - "fstream-ignore": "^1.0.5", - "once": "^1.3.3", - "readable-stream": "^2.1.4", - "rimraf": "^2.5.1", - "tar": "^2.2.1", - "uid-number": "^0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.4", - "bundled": true, - "requires": { - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true - }, "util-deprecate": { "version": "1.0.2", "bundled": true }, - "uuid": { - "version": "3.3.2", - "bundled": true - }, - "verror": { - "version": "1.10.0", - "bundled": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, "wide-align": { "version": "1.1.3", "bundled": true, @@ -740,19 +448,19 @@ "wrappy": { "version": "1.0.2", "bundled": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true } } }, "@atom/nsfw": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/@atom/nsfw/-/nsfw-1.0.18.tgz", - "integrity": "sha512-YceKV9a3X62mh4Q78Nyi8aTRaoVGdpeJBHogL8gxU17iBhEpYvxGgMfTe02j1hH2taFT4barkZ5RdZkGKIsJ/w==", + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/@atom/nsfw/-/nsfw-1.0.22.tgz", + "integrity": "sha512-D1yp+X31Jed/2xkGXTurC9CGZO4d2WzEr5Rxi1elzv7bipqtIcM7HmxV0gK+WceeEj2+V1lrIINhU6mbXsJ69w==", "requires": { - "fs-extra": "^0.26.5", - "lodash.isinteger": "^4.0.4", - "lodash.isundefined": "^3.0.1", - "nan": "^2.0.0", - "promisify-node": "^0.3.0" + "nan": "^2.10.0" } }, "@atom/source-map-support": { @@ -2382,8 +2090,8 @@ } }, "bracket-matcher": { - "version": "https://www.atom.io/api/packages/bracket-matcher/versions/0.90.4/tarball", - "integrity": "sha512-vOeFxfxQGwBoNkuK7srzVUN65q7jL8UKN/IuReilfqp7eg46z39NSchQvw87dpgEOAQEkV3N99h/vBcMmIDTuw==", + "version": "https://www.atom.io/api/packages/bracket-matcher/versions/0.91.0/tarball", + "integrity": "sha512-bgAsyS23bu3Y9LqRul4/IjOIqUZxpnIZGBEaxBHGcC5vW/ZHCr3SYsPsN2hLXwTHvXArwgcBt1Uylc0tz25FSQ==", "requires": { "first-mate": "^7.0.1", "underscore-plus": "1.x" @@ -3758,28 +3466,6 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha1-a+Dem+mYzhavivwkSXue6bfM2a0=" }, - "fs-extra": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", - "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "jsonfile": { - "version": "2.4.0", - "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, "fs-minipass": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", @@ -3789,9 +3475,9 @@ } }, "fs-plus": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-3.0.2.tgz", - "integrity": "sha1-a19Sp3EolMTd6f2PgfqMYN8EHz0=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-3.1.1.tgz", + "integrity": "sha512-Se2PJdOWXqos1qVTkvqqjb0CSnfBnwwD+pq+z4ksT+e97mEShod/hrNg0TRCCsXPbJzcIq+NuzQhigunMWMJUA==", "requires": { "async": "^1.5.2", "mkdirp": "^0.5.1", @@ -3850,10 +3536,10 @@ "integrity": "sha1-gy9kifvodnaUWVmckUpnDsIpR+4=" }, "fuzzy-finder": { - "version": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.13.1/tarball", - "integrity": "sha512-1Obli1y5y59dpC8sADff9oWxT+Yx8nNOlYtEgyalS+O6BYeCMECSNwQMs0hATC5KP6R2I3Eo7t0yZueKO2KCjQ==", + "version": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.13.2/tarball", + "integrity": "sha512-L93zrlzaTpibScRPy8v9h/4i0f9heTuBs2gqB+tEr9PTjihlaxPwBmjFVzrHQ8rPs+aD7Fxi5O1LhcBOMo2xdA==", "requires": { - "@atom/fuzzy-native": "^0.7.0", + "@atom/fuzzy-native": "^1.0.1", "async": "0.2.6", "atom-select-list": "^0.7.0", "fs-plus": "^3.0.0", @@ -4686,14 +4372,6 @@ "is-buffer": "^1.1.5" } }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "requires": { - "graceful-fs": "^4.1.9" - } - }, "language-c": { "version": "https://www.atom.io/api/packages/language-c/versions/0.60.15/tarball", "integrity": "sha512-dCNjAEwyA69lnWYiiSOGEbEFuswaHCYdkeaat4TJw48oNTDgnXnUnPeyEimbL5MIx4iLJx1dWg8r3kTmYBTvYQ==", @@ -5133,16 +4811,6 @@ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isundefined": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", - "integrity": "sha1-I+89lTVWUgOmbO/VuDD4SJEa+0g=" - }, "lodash.keys": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", @@ -5708,14 +5376,6 @@ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" }, - "nodegit-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nodegit-promise/-/nodegit-promise-4.0.0.tgz", - "integrity": "sha1-VyKxhPLfcycWEGSnkdLoQskWezQ=", - "requires": { - "asap": "~2.0.3" - } - }, "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", @@ -5942,9 +5602,9 @@ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" }, "pathwatcher": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/pathwatcher/-/pathwatcher-8.0.1.tgz", - "integrity": "sha1-UaLOKgHbbDLYZ/ZYXvKEvmvQo64=", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/pathwatcher/-/pathwatcher-8.0.2.tgz", + "integrity": "sha512-zuP+fLmB2IB6z89ikcehA+vG/ITx3Cmhaj3DJrBgnbdss6dwPolSq7cDBjgZ78Vl+SXmG7CHGIOM5mqdT9h7BQ==", "requires": { "async": "~0.2.10", "emissary": "^1.3.2", @@ -5952,7 +5612,7 @@ "fs-plus": "^3.0.0", "grim": "^2.0.1", "iconv-lite": "~0.4.4", - "nan": "2.x", + "nan": "^2.10.0", "underscore-plus": "~1.x" }, "dependencies": { @@ -5964,7 +5624,7 @@ "grim": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/grim/-/grim-2.0.2.tgz", - "integrity": "sha1-52CinKe4NDsMH/r2ziDyGkbuiu0=", + "integrity": "sha512-Qj7hTJRfd87E/gUgfvM0YIH/g2UA2SV6niv6BYXk1o6w4mhgv+QyYM1EjOJQljvzgEj4SqSsRWldXIeKHz3e3Q==", "requires": { "event-kit": "^2.0.0" } @@ -6101,14 +5761,6 @@ "asap": "~2.0.3" } }, - "promisify-node": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promisify-node/-/promisify-node-0.3.0.tgz", - "integrity": "sha1-tLVaz5D6p9K4uQyjlomQhsAwYM8=", - "requires": { - "nodegit-promise": "~4.0.0" - } - }, "prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", @@ -7153,9 +6805,9 @@ } }, "superstring": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/superstring/-/superstring-2.3.4.tgz", - "integrity": "sha512-DcNkTCdB9F3FMZRdURSALsHi+7DWqFCI0cH+Eg8mwBg+kxQs6GeB3LrGUvCI5bEB6Dtlu2ox8UYN0onPN4JeZQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/superstring/-/superstring-2.3.6.tgz", + "integrity": "sha512-kDTXCXArhHL1lRk2zBW7ByRJByqVwoLK3E3jlf8+LcwQLZgSMs9dwrDHDpBdoOm89kstSBSrGcW8OJqNkxjWrQ==", "requires": { "nan": "^2.10.0" } @@ -7320,21 +6972,21 @@ } }, "text-buffer": { - "version": "13.15.1", - "resolved": "https://registry.npmjs.org/text-buffer/-/text-buffer-13.15.1.tgz", - "integrity": "sha512-LZx7EKhVwjo50Y9ZF6WDP2S4zLUcHAagHZhn6HzHjr0SxyWtm95HG7ApSzgLGvIzCZEoTzMYt62scUdesfzYuw==", + "version": "13.15.3", + "resolved": "https://registry.npmjs.org/text-buffer/-/text-buffer-13.15.3.tgz", + "integrity": "sha512-H2fz/N15g0fBP7R33FUFLnIyND+Lji/xmuvHg9rKgmfCh7NAVxiFIvnZTabuBhL9InqPrtV5t4hkUy+r3dNXMg==", "requires": { "delegato": "^1.0.0", "diff": "^2.2.1", "emissary": "^1.0.0", "event-kit": "^2.4.0", - "fs-admin": "^0.1.4", + "fs-admin": "^0.1.7", "fs-plus": "^3.0.0", "grim": "^2.0.2", "mkdirp": "^0.5.1", - "pathwatcher": "8.0.1", + "pathwatcher": "8.0.2", "serializable": "^1.0.3", - "superstring": "2.3.4", + "superstring": "2.3.6", "underscore-plus": "^1.0.0" }, "dependencies": { @@ -7402,41 +7054,18 @@ "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==" }, "tree-sitter": { - "version": "0.13.23", - "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.13.23.tgz", - "integrity": "sha512-75AiPbMEstv+YK8h4FkAHnmAJ6nNIUj/NFzRvKCHovmwSEKMi8Wc/E/crB4lJnHBOfV/f/DMQjN+e1Y36kagug==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.15.0.tgz", + "integrity": "sha512-3CDZ7X4hSJgMXOo8WWhYIwS06hFDmI3x6/3rX+i+LP4ykL3UWVt5TgNKYjAkgBxbpFEHGkaSBe5LRQu5LHOQ3A==", "requires": { - "nan": "^2.10.0", + "nan": "^2.13.2", "prebuild-install": "^5.0.0" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "prebuild-install": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.2.1.tgz", - "integrity": "sha512-9DAccsInWHB48TBQi2eJkLPE049JuAI6FjIH0oIrij4bpDVEbX6JvlWRAcAAlUqBHhjgq0jNqA3m3bBXWm9v6w==", - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^1.0.2", - "github-from-package": "0.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.2.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "os-homedir": "^1.0.1", - "pump": "^2.0.1", - "rc": "^1.2.7", - "simple-get": "^2.7.0", - "tar-fs": "^1.13.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - } + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" } } }, diff --git a/package.json b/package.json index 9a4ed7451..ec79a09fa 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "license": "MIT", "electronVersion": "2.0.18", "dependencies": { - "@atom/nsfw": "1.0.18", + "@atom/nsfw": "1.0.22", "@atom/source-map-support": "^0.3.4", "@atom/watcher": "1.3.1", "about": "file:packages/about", @@ -38,7 +38,7 @@ "base16-tomorrow-dark-theme": "file:packages/base16-tomorrow-dark-theme", "base16-tomorrow-light-theme": "file:packages/base16-tomorrow-light-theme", "bookmarks": "https://www.atom.io/api/packages/bookmarks/versions/0.46.0/tarball", - "bracket-matcher": "https://www.atom.io/api/packages/bracket-matcher/versions/0.90.4/tarball", + "bracket-matcher": "https://www.atom.io/api/packages/bracket-matcher/versions/0.91.0/tarball", "cached-run-in-this-context": "0.5.0", "chai": "3.5.0", "chart.js": "^2.3.0", @@ -60,10 +60,10 @@ "first-mate": "7.3.0", "focus-trap": "2.4.5", "fs-admin": "^0.1.7", - "fs-plus": "^3.0.1", + "fs-plus": "^3.1.1", "fstream": "0.1.24", "fuzzaldrin": "^2.1", - "fuzzy-finder": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.13.1/tarball", + "fuzzy-finder": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.13.2/tarball", "git-diff": "file:packages/git-diff", "git-utils": "5.5.0", "github": "https://www.atom.io/api/packages/github/versions/0.28.0/tarball", @@ -133,7 +133,7 @@ "one-light-ui": "file:packages/one-light-ui", "open-on-github": "https://www.atom.io/api/packages/open-on-github/versions/1.3.1/tarball", "package-generator": "https://www.atom.io/api/packages/package-generator/versions/1.3.0/tarball", - "pathwatcher": "8.0.1", + "pathwatcher": "8.0.2", "postcss": "5.2.4", "postcss-selector-parser": "2.2.1", "property-accessors": "^1.1.3", @@ -156,9 +156,9 @@ "symbols-view": "https://www.atom.io/api/packages/symbols-view/versions/0.118.2/tarball", "tabs": "https://www.atom.io/api/packages/tabs/versions/0.110.0/tarball", "temp": "^0.9.0", - "text-buffer": "13.15.1", + "text-buffer": "13.15.3", "timecop": "https://www.atom.io/api/packages/timecop/versions/0.36.2/tarball", - "tree-sitter": "0.13.23", + "tree-sitter": "0.15.0", "tree-sitter-css": "^0.13.7", "tree-view": "https://www.atom.io/api/packages/tree-view/versions/0.227.0/tarball", "typescript-simple": "1.0.0", @@ -193,7 +193,7 @@ "autosave": "0.24.6", "background-tips": "0.28.0", "bookmarks": "0.46.0", - "bracket-matcher": "0.90.4", + "bracket-matcher": "0.91.0", "command-palette": "0.43.5", "dalek": "file:./packages/dalek", "deprecation-cop": "file:./packages/deprecation-cop", @@ -201,7 +201,7 @@ "encoding-selector": "0.23.9", "exception-reporting": "file:./packages/exception-reporting", "find-and-replace": "0.218.9", - "fuzzy-finder": "1.13.1", + "fuzzy-finder": "1.13.2", "github": "0.28.0", "git-diff": "file:./packages/git-diff", "go-to-line": "file:./packages/go-to-line", diff --git a/spec/fixtures/babel/invalid.js b/spec/fixtures/babel/invalid.js index 585a4365b..513264538 100644 --- a/spec/fixtures/babel/invalid.js +++ b/spec/fixtures/babel/invalid.js @@ -1,3 +1,3 @@ 'use 6to6'; -module.exports = async function* hello() {} +export default 42; diff --git a/spec/jasmine-list-reporter.js b/spec/jasmine-list-reporter.js index ffe8b0858..ab1688dfd 100644 --- a/spec/jasmine-list-reporter.js +++ b/spec/jasmine-list-reporter.js @@ -2,7 +2,7 @@ const { TerminalReporter } = require('jasmine-tagged') class JasmineListReporter extends TerminalReporter { fullDescription (spec) { - let fullDescription = spec.description + let fullDescription = 'it ' + spec.description let currentSuite = spec.suite while (currentSuite) { fullDescription = currentSuite.description + ' > ' + fullDescription diff --git a/spec/main-process/atom-application.test.js b/spec/main-process/atom-application.test.js index 3134ea5fa..46d470d4e 100644 --- a/spec/main-process/atom-application.test.js +++ b/spec/main-process/atom-application.test.js @@ -598,7 +598,7 @@ describe('AtomApplication', function () { assert.notStrictEqual(uw, w0) assert.strictEqual( uw.loadSettings.windowInitializationScript, - path.resolve(__dirname, '../../src/initialize-application-window.coffee') + path.resolve(__dirname, '../../src/initialize-application-window.js') ) uw.emit('window:loaded') diff --git a/spec/main-process/file-recovery-service.test.js b/spec/main-process/file-recovery-service.test.js index c47ffb944..400f8722c 100644 --- a/spec/main-process/file-recovery-service.test.js +++ b/spec/main-process/file-recovery-service.test.js @@ -8,9 +8,11 @@ const sinon = require('sinon') const { escapeRegExp } = require('underscore-plus') const temp = require('temp').track() -describe('FileRecoveryService', () => { +describe('FileRecoveryService', function () { let recoveryService, recoveryDirectory, spies + this.timeout(10 * 1000) + beforeEach(() => { recoveryDirectory = temp.mkdirSync('atom-spec-file-recovery') recoveryService = new FileRecoveryService(recoveryDirectory) diff --git a/spec/spec-helper.coffee b/spec/spec-helper.coffee index f4f1f3568..f56f5c8dc 100644 --- a/spec/spec-helper.coffee +++ b/spec/spec-helper.coffee @@ -12,6 +12,7 @@ FindParentDir = require 'find-parent-dir' TextEditor = require '../src/text-editor' TextEditorElement = require '../src/text-editor-element' TextMateLanguageMode = require '../src/text-mate-language-mode' +TreeSitterLanguageMode = require '../src/tree-sitter-language-mode' {clipboard} = require 'electron' jasmineStyle = document.createElement('style') @@ -101,6 +102,7 @@ beforeEach -> # make tokenization synchronous TextMateLanguageMode.prototype.chunkSize = Infinity + TreeSitterLanguageMode.prototype.syncTimeoutMicros = Infinity spyOn(TextMateLanguageMode.prototype, "tokenizeInBackground").andCallFake -> @tokenizeNextChunk() # Without this spy, TextEditor.onDidTokenize callbacks would not be called diff --git a/spec/style-manager-spec.js b/spec/style-manager-spec.js index 95ec0dacf..b27ea97ad 100644 --- a/spec/style-manager-spec.js +++ b/spec/style-manager-spec.js @@ -57,7 +57,6 @@ describe('StyleManager', () => { atom-text-editor::shadow .class-1, atom-text-editor::shadow .class-2 { color: red } atom-text-editor::shadow > .class-3 { color: yellow } atom-text-editor .class-4 { color: blue } - another-element::shadow .class-5 { color: white } atom-text-editor[data-grammar*=\"js\"]::shadow .class-6 { color: green; } atom-text-editor[mini].is-focused::shadow .class-7 { color: green; } `) @@ -69,7 +68,6 @@ describe('StyleManager', () => { 'atom-text-editor.editor .class-1, atom-text-editor.editor .class-2', 'atom-text-editor.editor > .class-3', 'atom-text-editor .class-4', - 'another-element::shadow .class-5', 'atom-text-editor[data-grammar*="js"].editor .class-6', 'atom-text-editor[mini].is-focused.editor .class-7' ]) @@ -136,13 +134,6 @@ describe('StyleManager', () => { ).toEqual(['atom-text-editor .class-1, atom-text-editor .class-2']) }) - it('does not transform CSS rules with invalid syntax', () => { - styleManager.addStyleSheet("atom-text-editor::shadow .class-1 { font-family: inval'id }") - expect(Array.from(styleManager.getStyleElements()[0].sheet.cssRules).map((r) => r.selectorText)).toEqual([ - 'atom-text-editor::shadow .class-1' - ]) - }) - it('does not throw exceptions on rules with no selectors', () => { styleManager.addStyleSheet('@media screen {font-size: 10px}', { context: 'atom-text-editor' diff --git a/spec/tree-sitter-language-mode-spec.js b/spec/tree-sitter-language-mode-spec.js index 7cc210c40..643a0d0c7 100644 --- a/spec/tree-sitter-language-mode-spec.js +++ b/spec/tree-sitter-language-mode-spec.js @@ -143,7 +143,7 @@ describe('TreeSitterLanguageMode', () => { languageMode.tree.rootNode .descendantForPosition(Point(1, 2), Point(1, 6)) .toString() - ).toBe('(declaration (primitive_type) (identifier) (MISSING))') + ).toBe('(declaration (primitive_type) (identifier) (MISSING ";"))') expectTokensToEqual(editor, [ [ @@ -414,7 +414,7 @@ describe('TreeSitterLanguageMode', () => { const languageMode = new TreeSitterLanguageMode({ buffer, grammar, - syncOperationLimit: 0 + syncTimeoutMicros: 0 }) buffer.setLanguageMode(languageMode) await nextHighlightingUpdate(languageMode) @@ -797,7 +797,7 @@ describe('TreeSitterLanguageMode', () => { buffer, grammar: htmlGrammar, grammars: atom.grammars, - syncOperationLimit: 0 + syncTimeoutMicros: 0 }) buffer.setLanguageMode(languageMode) @@ -827,7 +827,7 @@ describe('TreeSitterLanguageMode', () => { ) atom.grammars.loadGrammarSync(jsGrammarPath) atom.grammars.assignLanguageMode(buffer, 'source.js') - buffer.getLanguageMode().syncOperationLimit = 0 + buffer.getLanguageMode().syncTimeoutMicros = 0 const initialSeed = Date.now() for (let i = 0, trialCount = 10; i < trialCount; i++) { diff --git a/spec/workspace-spec.js b/spec/workspace-spec.js index 50dd57682..cee7f0b3e 100644 --- a/spec/workspace-spec.js +++ b/spec/workspace-spec.js @@ -887,6 +887,20 @@ describe('Workspace', () => { ).toEqual([2, 11]) ) }) + + it('unfolds the fold containing the line', async () => { + let editor + + await workspace.open('../sample-with-many-folds.js') + editor = workspace.getActiveTextEditor() + editor.foldBufferRow(2) + expect(editor.isFoldedAtBufferRow(2)).toBe(true) + expect(editor.isFoldedAtBufferRow(3)).toBe(true) + + await workspace.open('../sample-with-many-folds.js', { initialLine: 2 }) + expect(editor.isFoldedAtBufferRow(2)).toBe(false) + expect(editor.isFoldedAtBufferRow(3)).toBe(false) + }) }) describe('when the file size is over the limit defined in `core.warnOnLargeFileLimit`', () => { @@ -2511,7 +2525,7 @@ describe('Workspace', () => { }) runs(() => { - fs.rename( + fs.renameSync( path.join(projectPath, 'git.git'), path.join(projectPath, '.git') ) diff --git a/src/compile-cache.js b/src/compile-cache.js index ea387a631..f1f596e86 100644 --- a/src/compile-cache.js +++ b/src/compile-cache.js @@ -177,7 +177,7 @@ exports.install = function (resourcesPath, nodeRequire) { var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1) try { - var sourceMap = JSON.parse(new Buffer(rawData, 'base64')) + var sourceMap = JSON.parse(Buffer.from(rawData, 'base64')) } catch (error) { console.warn('Error parsing source map', error.stack) return null diff --git a/src/file-system-blob-store.js b/src/file-system-blob-store.js index 67a959735..81e4a6f39 100644 --- a/src/file-system-blob-store.js +++ b/src/file-system-blob-store.js @@ -20,7 +20,7 @@ class FileSystemBlobStore { reset () { this.inMemoryBlobs = new Map() - this.storedBlob = new Buffer(0) + this.storedBlob = Buffer.alloc(0) this.storedBlobMap = {} this.usedKeys = new Set() } diff --git a/src/initialize-application-window.coffee b/src/initialize-application-window.js similarity index 54% rename from src/initialize-application-window.coffee rename to src/initialize-application-window.js index c141e67c3..d34c0a8e6 100644 --- a/src/initialize-application-window.coffee +++ b/src/initialize-application-window.js @@ -1,14 +1,15 @@ -AtomEnvironment = require './atom-environment' -ApplicationDelegate = require './application-delegate' -Clipboard = require './clipboard' -TextEditor = require './text-editor' -TextEditorComponent = require './text-editor-component' -FileSystemBlobStore = require './file-system-blob-store' -NativeCompileCache = require './native-compile-cache' -CompileCache = require './compile-cache' -ModuleCache = require './module-cache' +const AtomEnvironment = require('./atom-environment') +const ApplicationDelegate = require('./application-delegate') +const Clipboard = require('./clipboard') +const TextEditor = require('./text-editor') -if global.isGeneratingSnapshot +require('./text-editor-component') +require('./file-system-blob-store') +require('./native-compile-cache') +require('./compile-cache') +require('./module-cache') + +if (global.isGeneratingSnapshot) { require('about') require('archive-view') require('autocomplete-atom-api') @@ -61,50 +62,57 @@ if global.isGeneratingSnapshot require('welcome') require('whitespace') require('wrap-guide') +} -clipboard = new Clipboard +const clipboard = new Clipboard() TextEditor.setClipboard(clipboard) -TextEditor.viewForItem = (item) -> atom.views.getView(item) +TextEditor.viewForItem = item => atom.views.getView(item) global.atom = new AtomEnvironment({ clipboard, - applicationDelegate: new ApplicationDelegate, + applicationDelegate: new ApplicationDelegate(), enablePersistence: true }) TextEditor.setScheduler(global.atom.views) global.atom.preloadPackages() -# Like sands through the hourglass, so are the days of our lives. -module.exports = ({blobStore}) -> - {updateProcessEnv} = require('./update-process-env') - path = require 'path' - require './window' - getWindowLoadSettings = require './get-window-load-settings' - {ipcRenderer} = require 'electron' - {resourcePath, devMode, env} = getWindowLoadSettings() - require './electron-shims' +// Like sands through the hourglass, so are the days of our lives. +module.exports = function ({ blobStore }) { + const { updateProcessEnv } = require('./update-process-env') + const path = require('path') + require('./window') + const getWindowLoadSettings = require('./get-window-load-settings') + const { ipcRenderer } = require('electron') + const { resourcePath, devMode } = getWindowLoadSettings() + require('./electron-shims') - # Add application-specific exports to module search path. - exportsPath = path.join(resourcePath, 'exports') + // Add application-specific exports to module search path. + const exportsPath = path.join(resourcePath, 'exports') require('module').globalPaths.push(exportsPath) process.env.NODE_PATH = exportsPath - # Make React faster - process.env.NODE_ENV ?= 'production' unless devMode + // Make React faster + if (!devMode && process.env.NODE_ENV == null) { + process.env.NODE_ENV = 'production' + } global.atom.initialize({ - window, document, blobStore, + window, + document, + blobStore, configDirPath: process.env.ATOM_HOME, env: process.env }) - global.atom.startEditorWindow().then -> - # Workaround for focus getting cleared upon window creation - windowFocused = -> + return global.atom.startEditorWindow().then(function () { + // Workaround for focus getting cleared upon window creation + const windowFocused = function () { window.removeEventListener('focus', windowFocused) - setTimeout (-> document.querySelector('atom-workspace').focus()), 0 + setTimeout(() => document.querySelector('atom-workspace').focus(), 0) + } window.addEventListener('focus', windowFocused) - ipcRenderer.on('environment', (event, env) -> - updateProcessEnv(env) - ) + + ipcRenderer.on('environment', (event, env) => updateProcessEnv(env)) + }) +} diff --git a/src/task.coffee b/src/task.coffee index fa09c69f1..4f41cd02e 100644 --- a/src/task.coffee +++ b/src/task.coffee @@ -84,17 +84,23 @@ class Task # Routes messages from the child to the appropriate event. handleEvents: -> - @childProcess.removeAllListeners() + # TodoElectronIssue: removeAllListeners() without arguments does not work on electron v3. + # Remove the argument when migrating to electron v4. + @childProcess.removeAllListeners('message') @childProcess.on 'message', ({event, args}) => @emitter.emit(event, args) if @childProcess? # Catch the errors that happened before task-bootstrap. if @childProcess.stdout? - @childProcess.stdout.removeAllListeners() + # TodoElectronIssue: removeAllListeners() without arguments does not work on electron v3. + # Remove the argument when migrating to electron v4. + @childProcess.stdout.removeAllListeners('data') @childProcess.stdout.on 'data', (data) -> console.log data.toString() if @childProcess.stderr? - @childProcess.stderr.removeAllListeners() + # TodoElectronIssue: removeAllListeners() without arguments does not work on electron v3. + # Remove the argument when migrating to electron v4. + @childProcess.stderr.removeAllListeners('data') @childProcess.stderr.on 'data', (data) -> console.error data.toString() # Public: Starts the task. @@ -147,9 +153,11 @@ class Task terminate: -> return false unless @childProcess? - @childProcess.removeAllListeners() - @childProcess.stdout?.removeAllListeners() - @childProcess.stderr?.removeAllListeners() + # TodoElectronIssue: removeAllListeners() without arguments does not work on electron v3. + # Remove the argument when migrating to electron v4. + @childProcess.removeAllListeners('message') + @childProcess.stdout?.removeAllListeners('data') + @childProcess.stderr?.removeAllListeners('data') @childProcess.kill() @childProcess = null diff --git a/src/tree-sitter-language-mode.js b/src/tree-sitter-language-mode.js index 2aaaafa19..65f7f966a 100644 --- a/src/tree-sitter-language-mode.js +++ b/src/tree-sitter-language-mode.js @@ -24,7 +24,7 @@ class TreeSitterLanguageMode { } } - constructor ({buffer, grammar, config, grammars, syncOperationLimit}) { + constructor ({buffer, grammar, config, grammars, syncTimeoutMicros}) { TreeSitterLanguageMode._patchSyntaxNode() this.id = nextId++ this.buffer = buffer @@ -35,8 +35,8 @@ class TreeSitterLanguageMode { this.rootLanguageLayer = new LanguageLayer(this, grammar) this.injectionsMarkerLayer = buffer.addMarkerLayer() - if (syncOperationLimit != null) { - this.syncOperationLimit = syncOperationLimit + if (syncTimeoutMicros != null) { + this.syncTimeoutMicros = syncTimeoutMicros } this.rootScopeDescriptor = new ScopeDescriptor({scopes: [this.grammar.scopeName]}) @@ -111,7 +111,7 @@ class TreeSitterLanguageMode { const parser = PARSER_POOL.pop() || new Parser() parser.setLanguage(language) const result = parser.parseTextBuffer(this.buffer.buffer, oldTree, { - syncOperationLimit: this.syncOperationLimit, + syncTimeoutMicros: this.syncTimeoutMicros, includedRanges: ranges }) @@ -1245,6 +1245,6 @@ function hasMatchingFoldSpec (specs, node) { }) TreeSitterLanguageMode.LanguageLayer = LanguageLayer -TreeSitterLanguageMode.prototype.syncOperationLimit = 1000 +TreeSitterLanguageMode.prototype.syncTimeoutMicros = 1000 module.exports = TreeSitterLanguageMode diff --git a/src/workspace.js b/src/workspace.js index 0b3b4a3e8..8f356e38e 100644 --- a/src/workspace.js +++ b/src/workspace.js @@ -1065,6 +1065,12 @@ module.exports = class Workspace extends Model { if (typeof item.setCursorBufferPosition === 'function') { item.setCursorBufferPosition([initialLine, initialColumn]) } + if (typeof item.unfoldBufferRow === 'function') { + item.unfoldBufferRow(initialLine) + } + if (typeof item.scrollToBufferPosition === 'function') { + item.scrollToBufferPosition([initialLine, initialColumn], { center: true }) + } } const index = pane.getActiveItemIndex()