diff --git a/apm/package-lock.json b/apm/package-lock.json index e9b15786d..614b07fa1 100644 --- a/apm/package-lock.json +++ b/apm/package-lock.json @@ -21,6 +21,7 @@ "node-gyp": "3.4.0", "npm": "6.2.0", "open": "0.0.5", + "plist": "git+https://github.com/nathansobo/node-plist.git#bd3a93387f1d4b2cff819b200870d35465796e77", "q": "~0.9.7", "read": "~1.0.5", "request": "^2.87.0", @@ -3973,7 +3974,7 @@ }, "plist": { "version": "git+https://github.com/nathansobo/node-plist.git#bd3a93387f1d4b2cff819b200870d35465796e77", - "from": "git+https://github.com/nathansobo/node-plist.git#bd3a93387f1d4b2cff819b200870d35465796e77", + "from": "git+https://github.com/nathansobo/node-plist.git", "requires": { "xmlbuilder": "0.4.x", "xmldom": "0.1.x" diff --git a/package-lock.json b/package-lock.json index b1560214b..5c6c31a71 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,15 +5,15 @@ "requires": true, "dependencies": { "@atom/nsfw": { - "version": "1.0.21", - "resolved": "https://registry.npmjs.org/@atom/nsfw/-/nsfw-1.0.21.tgz", - "integrity": "sha512-ERz76RZstjDvZPM4FHwgO+9dzGkki0mJsn2r+Mu4yn29MzUuAtSmtyJDPmupVUvmz2PF7KvRbC/W2A8A6BHQhA==", + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/@atom/nsfw/-/nsfw-1.0.18.tgz", + "integrity": "sha512-YceKV9a3X62mh4Q78Nyi8aTRaoVGdpeJBHogL8gxU17iBhEpYvxGgMfTe02j1hH2taFT4barkZ5RdZkGKIsJ/w==", "requires": { - "fs-extra": "^7.0.0", + "fs-extra": "^0.26.5", "lodash.isinteger": "^4.0.4", "lodash.isundefined": "^3.0.1", - "nan": "^2.10.0", - "promisify-node": "^0.5.0" + "nan": "^2.0.0", + "promisify-node": "^0.3.0" } }, "@atom/source-map-support": { @@ -1164,6 +1164,14 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "cached-run-in-this-context": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cached-run-in-this-context/-/cached-run-in-this-context-0.5.0.tgz", + "integrity": "sha512-FdtDP0u8WjetQ95nLz9vI06efJTFrmtmk5ZT6FECpyTKi9aakNLMHyMH21WRbGYyWlbmB/QlRoB/g1lcEpyjMw==", + "requires": { + "nan": "^2.10.0" + } + }, "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -1303,6 +1311,11 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, + "circular-json": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.7.tgz", + "integrity": "sha512-/pXoV1JA847qRKPrHbBK6YIBGFF8GOP4wzSgUOA7q0ew0vAv0iJswP+2/nZQ9uzA3Azi7eTrg9L2yzXc/7ZMIA==" + }, "classnames": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", @@ -1630,9 +1643,9 @@ } }, "date-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.0.0.tgz", - "integrity": "sha512-M6UqVvZVgFYqZL1SfHsRGIQSz3ZL+qgbsV5Lp1Vj61LZVYuEwcMXYay7DRDtYs2HQQBK5hQtQ0fD9aEJ89V0LA==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz", + "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=" }, "debug": { "version": "2.6.9", @@ -2266,11 +2279,6 @@ } } }, - "flatted": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", - "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==" - }, "flatten": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", @@ -2385,13 +2393,25 @@ "integrity": "sha1-a+Dem+mYzhavivwkSXue6bfM2a0=" }, "fs-extra": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", - "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", + "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": "^4.0.0", - "universalify": "^0.1.0" + "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": { @@ -2403,9 +2423,9 @@ } }, "fs-plus": { - "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==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-3.0.2.tgz", + "integrity": "sha1-a19Sp3EolMTd6f2PgfqMYN8EHz0=", "requires": { "async": "^1.5.2", "mkdirp": "^0.5.1", @@ -2415,7 +2435,7 @@ "dependencies": { "async": { "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" } } @@ -3217,6 +3237,14 @@ "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.14/tarball", "integrity": "sha512-jGFMc9vNutvBflFdoUXWJqxBFdMFG7n13PxS8z+SB8H0taZStq55JixDaQ0i/qu7ay4K5BCJ7y/PHdL13vjouQ==", @@ -3661,21 +3689,21 @@ "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" }, "log4js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.0.0.tgz", - "integrity": "sha512-XlxZfcFAvQjnjCJBIV/EpsPmrVC12n+TxNUKgrmQh6eeA+9X+6UqvaRNV8t6dpMtXszl1LAQimB4pqyp2Gsgfw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.5.tgz", + "integrity": "sha512-IX5c3G/7fuTtdr0JjOT2OIR12aTESVhsH6cEsijloYwKgcPRlO6DgOU72v0UFhWcoV1HN6+M3dwT89qVPLXm0w==", "requires": { - "date-format": "^2.0.0", + "circular-json": "^0.5.5", + "date-format": "^1.2.0", "debug": "^3.1.0", - "flatted": "^2.0.0", "rfdc": "^1.1.2", - "streamroller": "^1.0.1" + "streamroller": "0.7.0" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { "ms": "^2.1.1" } @@ -4262,9 +4290,9 @@ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" }, "pathwatcher": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/pathwatcher/-/pathwatcher-8.0.2.tgz", - "integrity": "sha512-zuP+fLmB2IB6z89ikcehA+vG/ITx3Cmhaj3DJrBgnbdss6dwPolSq7cDBjgZ78Vl+SXmG7CHGIOM5mqdT9h7BQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/pathwatcher/-/pathwatcher-8.0.1.tgz", + "integrity": "sha1-UaLOKgHbbDLYZ/ZYXvKEvmvQo64=", "requires": { "async": "~0.2.10", "emissary": "^1.3.2", @@ -4272,19 +4300,19 @@ "fs-plus": "^3.0.0", "grim": "^2.0.1", "iconv-lite": "~0.4.4", - "nan": "^2.10.0", + "nan": "2.x", "underscore-plus": "~1.x" }, "dependencies": { "async": { "version": "0.2.10", - "resolved": "http://registry.npmjs.org/async/-/async-0.2.10.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" }, "grim": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/grim/-/grim-2.0.2.tgz", - "integrity": "sha512-Qj7hTJRfd87E/gUgfvM0YIH/g2UA2SV6niv6BYXk1o6w4mhgv+QyYM1EjOJQljvzgEj4SqSsRWldXIeKHz3e3Q==", + "integrity": "sha1-52CinKe4NDsMH/r2ziDyGkbuiu0=", "requires": { "event-kit": "^2.0.0" } @@ -4422,12 +4450,11 @@ } }, "promisify-node": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/promisify-node/-/promisify-node-0.5.0.tgz", - "integrity": "sha512-GR2E4qgCoKFTprhULqP2OP3bl8kHo16XtnqtkHH6be7tPW1yL6rXd15nl3oV2sLTFv1+j6tqoF69VVpFtJ/j+A==", + "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", - "object-assign": "^4.1.1" + "nodegit-promise": "~4.0.0" } }, "prop-types": { @@ -5161,22 +5188,22 @@ "integrity": "sha1-enzShHDMbToc/m1miG9rxDDTrIc=" }, "spell-check": { - "version": "https://www.atom.io/api/packages/spell-check/versions/0.74.3/tarball", - "integrity": "sha512-QYy0xpSKp8OSZjlvq7fOjrf/NdG4BncHvn9AmO/vcuJvWAoiwEWhqqB+BSA6uSrxOxJeJhbDJSxOrvm4YXs1xQ==", + "version": "https://www.atom.io/api/packages/spell-check/versions/0.74.2/tarball", + "integrity": "sha512-WhwhDF4nznhQuwnRemZbXODI6aqax2HlHudfLEjbhzkRGjEbfssRK82lRRvCK9LmQh3fAqCqbmELU40NEODJ8Q==", "requires": { "atom-pathspec": "^0.0.0", "atom-select-list": "^0.7.0", "multi-integer-range": "^2.0.0", "natural": "^0.4.0", - "spellchecker": "^3.5.1", + "spellchecker": "^3.4.4", "spelling-manager": "^1.1.0", "underscore-plus": "^1" } }, "spellchecker": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/spellchecker/-/spellchecker-3.5.1.tgz", - "integrity": "sha512-R1qUBsDZzio+7MFZN6/AtPUe5NGvnc0wywckuXAlp9akASaYSFqKuI5O8p3rSiA+yKP31qC7Iijjoygmzkh6xw==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/spellchecker/-/spellchecker-3.5.0.tgz", + "integrity": "sha512-Xa7XnRulYhh5N/XENeL2O8/875XhLBjos7Bemv0rfcgV6ojNYMSrXscUZUGJwniX2t67eY+lNUJeptD1bMauHQ==", "requires": { "any-promise": "^1.3.0", "nan": "^2.10.0" @@ -5275,38 +5302,24 @@ } }, "streamroller": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.1.tgz", - "integrity": "sha512-FKL2mEB0A+XTIWSOlBHm2DvdsER5cGraqrUufO0lFMfsVY+Gpb3TC29Z+6/l0Urbb7vtm6m9zJOQBVl6fEkZBA==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz", + "integrity": "sha1-odG3z4PTmvsNYwSaWsv5NJO99ks=", "requires": { - "async": "^2.6.1", - "date-format": "^2.0.0", + "date-format": "^1.2.0", "debug": "^3.1.0", - "fs-extra": "^7.0.0", - "lodash": "^4.17.10" + "mkdirp": "^0.5.1", + "readable-stream": "^2.3.0" }, "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "requires": { - "lodash": "^4.17.10" - } - }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { "ms": "^2.1.1" } }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -5378,9 +5391,9 @@ } }, "superstring": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/superstring/-/superstring-2.3.6.tgz", - "integrity": "sha512-kDTXCXArhHL1lRk2zBW7ByRJByqVwoLK3E3jlf8+LcwQLZgSMs9dwrDHDpBdoOm89kstSBSrGcW8OJqNkxjWrQ==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/superstring/-/superstring-2.3.4.tgz", + "integrity": "sha512-DcNkTCdB9F3FMZRdURSALsHi+7DWqFCI0cH+Eg8mwBg+kxQs6GeB3LrGUvCI5bEB6Dtlu2ox8UYN0onPN4JeZQ==", "requires": { "nan": "^2.10.0" } @@ -5500,21 +5513,21 @@ } }, "text-buffer": { - "version": "13.15.3", - "resolved": "https://registry.npmjs.org/text-buffer/-/text-buffer-13.15.3.tgz", - "integrity": "sha512-H2fz/N15g0fBP7R33FUFLnIyND+Lji/xmuvHg9rKgmfCh7NAVxiFIvnZTabuBhL9InqPrtV5t4hkUy+r3dNXMg==", + "version": "13.15.1", + "resolved": "https://registry.npmjs.org/text-buffer/-/text-buffer-13.15.1.tgz", + "integrity": "sha512-LZx7EKhVwjo50Y9ZF6WDP2S4zLUcHAagHZhn6HzHjr0SxyWtm95HG7ApSzgLGvIzCZEoTzMYt62scUdesfzYuw==", "requires": { "delegato": "^1.0.0", "diff": "^2.2.1", "emissary": "^1.0.0", "event-kit": "^2.4.0", - "fs-admin": "^0.1.7", + "fs-admin": "^0.1.4", "fs-plus": "^3.0.0", "grim": "^2.0.2", "mkdirp": "^0.5.1", - "pathwatcher": "8.0.2", + "pathwatcher": "8.0.1", "serializable": "^1.0.3", - "superstring": "2.3.6", + "superstring": "2.3.4", "underscore-plus": "^1.0.0" }, "dependencies": { diff --git a/package.json b/package.json index 3ca3b9c61..ba795cd3b 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,9 @@ "url": "https://github.com/atom/atom/issues" }, "license": "MIT", - "electronVersion": "3.1.3", + "electronVersion": "2.0.16", "dependencies": { - "@atom/nsfw": "1.0.21", + "@atom/nsfw": "1.0.18", "@atom/source-map-support": "^0.3.4", "@atom/watcher": "1.3.1", "about": "file:packages/about", @@ -39,6 +39,7 @@ "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", + "cached-run-in-this-context": "0.5.0", "chai": "3.5.0", "chart.js": "^2.3.0", "clear-cut": "^2.0.2", @@ -59,7 +60,7 @@ "first-mate": "7.1.3", "focus-trap": "2.4.5", "fs-admin": "^0.1.7", - "fs-plus": "^3.1.1", + "fs-plus": "^3.0.1", "fstream": "0.1.24", "fuzzaldrin": "^2.1", "fuzzy-finder": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.9.1/tarball", @@ -132,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.2", + "pathwatcher": "8.0.1", "postcss": "5.2.4", "postcss-selector-parser": "2.2.1", "property-accessors": "^1.1.3", @@ -149,13 +150,13 @@ "snippets": "https://www.atom.io/api/packages/snippets/versions/1.4.0/tarball", "solarized-dark-syntax": "file:packages/solarized-dark-syntax", "solarized-light-syntax": "file:packages/solarized-light-syntax", - "spell-check": "https://www.atom.io/api/packages/spell-check/versions/0.74.3/tarball", + "spell-check": "https://www.atom.io/api/packages/spell-check/versions/0.74.2/tarball", "status-bar": "https://www.atom.io/api/packages/status-bar/versions/1.8.17/tarball", "styleguide": "https://www.atom.io/api/packages/styleguide/versions/0.49.12/tarball", "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.8.3", - "text-buffer": "13.15.3", + "text-buffer": "13.15.1", "timecop": "https://www.atom.io/api/packages/timecop/versions/0.36.2/tarball", "tree-sitter": "0.13.23", "tree-sitter-css": "^0.13.7", @@ -218,7 +219,7 @@ "package-generator": "1.3.0", "settings-view": "0.259.0", "snippets": "1.4.0", - "spell-check": "0.74.3", + "spell-check": "0.74.2", "status-bar": "1.8.17", "styleguide": "0.49.12", "symbols-view": "0.118.2", diff --git a/script/lib/check-chromedriver-version.js b/script/lib/check-chromedriver-version.js index f5cada045..1659f093c 100644 --- a/script/lib/check-chromedriver-version.js +++ b/script/lib/check-chromedriver-version.js @@ -5,17 +5,17 @@ const CONFIG = require('../config') const semver = require('semver') module.exports = function () { - // Chromedriver should be specified as ^n.x where n matches the Electron major version + // Chromedriver should be specified as ~x.y where x and y match Electron major/minor const chromedriverVer = buildMetadata.dependencies['electron-chromedriver'] const mksnapshotVer = buildMetadata.dependencies['electron-mksnapshot'] - // Always use caret on electron-chromedriver so that it can pick up the best minor/patch versions - if (!chromedriverVer.startsWith('^')) { - throw new Error(`electron-chromedriver version in script/package.json should start with a caret to match latest patch version.`) + // Always use tilde on electron-chromedriver so that it can pick up the best patch version + if (!chromedriverVer.startsWith('~')) { + throw new Error(`electron-chromedriver version in script/package.json should start with a tilde to match latest patch version.`) } - if (!mksnapshotVer.startsWith('^')) { - throw new Error(`electron-mksnapshot version in script/package.json should start with a caret to match latest patch version.`) + if (!mksnapshotVer.startsWith('~')) { + throw new Error(`electron-mksnapshot version in script/package.json should start with a tilde to match latest patch version.`) } const electronVer = CONFIG.appMetadata.electronVersion diff --git a/script/lib/generate-startup-snapshot.js b/script/lib/generate-startup-snapshot.js index f6921d77a..553df33a4 100644 --- a/script/lib/generate-startup-snapshot.js +++ b/script/lib/generate-startup-snapshot.js @@ -42,6 +42,7 @@ module.exports = function (packagedAppPath) { requiredModuleRelativePath === path.join('..', 'src', 'electron-shims.js') || requiredModuleRelativePath === path.join('..', 'node_modules', 'atom-keymap', 'lib', 'command-event.js') || requiredModuleRelativePath === path.join('..', 'node_modules', 'babel-core', 'index.js') || + requiredModuleRelativePath === path.join('..', 'node_modules', 'cached-run-in-this-context', 'lib', 'main.js') || requiredModuleRelativePath === path.join('..', 'node_modules', 'debug', 'node.js') || requiredModuleRelativePath === path.join('..', 'node_modules', 'git-utils', 'src', 'git.js') || requiredModuleRelativePath === path.join('..', 'node_modules', 'glob', 'glob.js') || @@ -96,36 +97,22 @@ module.exports = function (packagedAppPath) { {env: Object.assign({}, process.env, {ELECTRON_RUN_AS_NODE: 1})} ) - console.log('Generating startup blob with mksnapshot') - childProcess.spawnSync( - process.execPath, [ - path.join(CONFIG.repositoryRootPath, 'script', 'node_modules', 'electron-mksnapshot', 'mksnapshot.js'), - snapshotScriptPath, - '--output_dir', - CONFIG.buildOutputPath - ] + const generatedStartupBlobPath = path.join(CONFIG.buildOutputPath, 'snapshot_blob.bin') + console.log(`Generating startup blob at "${generatedStartupBlobPath}"`) + childProcess.execFileSync( + path.join(CONFIG.repositoryRootPath, 'script', 'node_modules', 'electron-mksnapshot', 'bin', 'mksnapshot'), + ['--no-use_ic', snapshotScriptPath, '--startup_blob', generatedStartupBlobPath] ) let startupBlobDestinationPath if (process.platform === 'darwin') { - startupBlobDestinationPath = `${packagedAppPath}/Contents/Frameworks/Electron Framework.framework/Resources` + startupBlobDestinationPath = `${packagedAppPath}/Contents/Frameworks/Electron Framework.framework/Resources/snapshot_blob.bin` } else { - startupBlobDestinationPath = packagedAppPath + startupBlobDestinationPath = path.join(packagedAppPath, 'snapshot_blob.bin') } - const snapshotBinaries = ['v8_context_snapshot.bin', 'snapshot_blob.bin'] - for (let snapshotBinary of snapshotBinaries) { - const destinationPath = path.join(startupBlobDestinationPath, snapshotBinary) - console.log(`Moving generated startup blob into "${destinationPath}"`) - try { - fs.unlinkSync(destinationPath) - } catch (err) { - // Doesn't matter if the file doesn't exist already - if (!err.code || err.code !== 'ENOENT') { - throw err - } - } - fs.renameSync(path.join(CONFIG.buildOutputPath, snapshotBinary), destinationPath) - } + console.log(`Moving generated startup blob into "${startupBlobDestinationPath}"`) + fs.unlinkSync(startupBlobDestinationPath) + fs.renameSync(generatedStartupBlobPath, startupBlobDestinationPath) }) } diff --git a/script/package-lock.json b/script/package-lock.json index 8e960730c..6bda42fdf 100644 --- a/script/package-lock.json +++ b/script/package-lock.json @@ -1692,72 +1692,50 @@ } }, "electron-chromedriver": { - "version": "3.0.0-beta.1", - "resolved": "https://registry.npmjs.org/electron-chromedriver/-/electron-chromedriver-3.0.0-beta.1.tgz", - "integrity": "sha512-S8KuOWqTISSfeVccrh1XjqR5tARdkAbF93azz8TvuNJTKoIw7V54mLKoyhi2Hj5UvKuPLcrHmfa4B9Uh45A5lA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/electron-chromedriver/-/electron-chromedriver-2.0.0.tgz", + "integrity": "sha512-kERk/Wzhc9RzW9jUKXA5kJc4m8BlL6c9p5QH+CrIlst0saeqZL1Up7vzD4ZOnuBDpAVBBYJ4jhkAKIssf8ZlXg==", "requires": { "electron-download": "^4.1.0", "extract-zip": "^1.6.5" } }, "electron-download": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.1.tgz", - "integrity": "sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.0.tgz", + "integrity": "sha1-v5MsdG8vh//MCdHdRy8v9rkYeEU=", "requires": { - "debug": "^3.0.0", + "debug": "^2.2.0", "env-paths": "^1.0.0", - "fs-extra": "^4.0.1", + "fs-extra": "^2.0.0", "minimist": "^1.2.0", - "nugget": "^2.0.1", + "nugget": "^2.0.0", "path-exists": "^3.0.0", - "rc": "^1.2.1", - "semver": "^5.4.1", - "sumchecker": "^2.0.2" + "rc": "^1.1.2", + "semver": "^5.3.0", + "sumchecker": "^2.0.1" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", "requires": { "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" + "jsonfile": "^2.1.0" } }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" } } }, "electron-link": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/electron-link/-/electron-link-0.3.3.tgz", - "integrity": "sha512-dxFY3o3E9kBkOyfaY66PWabK1AL5Re8qmy2Abz2/VhVkp2KtvUn6BZODTm9XpC0REgWxlQfRyHlNTlXRBPrWCQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/electron-link/-/electron-link-0.3.2.tgz", + "integrity": "sha512-V7QmtujzWgvrW5BI2CKmIRF+q+pkrFO5Lecd8TpibbBz+FfW5WQ4kCN0sZjNaUOMtGGroCib721OqIDEynjwgA==", "requires": { "ast-util": "^0.6.0", "encoding-down": "~5.0.0", @@ -1775,9 +1753,9 @@ "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ==" }, "core-js": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.3.tgz", - "integrity": "sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ==" + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", + "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" }, "esprima": { "version": "4.0.1", @@ -1811,13 +1789,12 @@ } }, "electron-mksnapshot": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/electron-mksnapshot/-/electron-mksnapshot-3.0.10.tgz", - "integrity": "sha512-Toy6sAC3t9tgvq1kUYsx+4TRNPDj7Bzoo+1gx5FD8Q0YCS+tq+ter62Ot6dBXCKG9SwoaGBz84b++MgO0VobYw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/electron-mksnapshot/-/electron-mksnapshot-2.0.0.tgz", + "integrity": "sha512-OoZwZJNKgHP+DwhCGVTJEuDSeb478hOzAbHeg7dKGCHDbKKmUWmjGc+pEjxGutpqQ3Mn8hCdLzdx2c/lAJcTLA==", "requires": { "electron-download": "^4.1.0", - "extract-zip": "^1.6.5", - "temp": "^0.8.3" + "extract-zip": "^1.6.5" } }, "electron-osx-sign": { @@ -4598,9 +4575,9 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" }, "node-abi": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.7.0.tgz", - "integrity": "sha512-egTtvNoZLMjwxkL/5iiJKYKZgn2im0zP+G+PncMxICYGiD3aZtXUvEsDmu0pF8gpASvLZyD8v53qi1/ELaRZpg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.7.1.tgz", + "integrity": "sha512-OV8Bq1OrPh6z+Y4dqwo05HqrRL9YNF7QVMRfq1/pguwKLG+q9UB/Lk0x5qXjO23JjJg+/jqCHSTaG1P3tfKfuw==", "requires": { "semver": "^5.4.1" }, @@ -10085,11 +10062,6 @@ "unist-util-is": "^2.1.1" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", diff --git a/script/package.json b/script/package.json index 9d270e589..0cb86bc51 100644 --- a/script/package.json +++ b/script/package.json @@ -9,9 +9,9 @@ "coffeelint": "1.15.7", "colors": "1.1.2", "donna": "1.0.16", - "electron-chromedriver": "^3.0.0-beta.1", - "electron-link": "0.3.3", - "electron-mksnapshot": "^3.0.10", + "electron-chromedriver": "~2.0", + "electron-link": "0.3.2", + "electron-mksnapshot": "~2.0", "electron-packager": "7.3.0", "electron-winstaller": "2.6.4", "fs-admin": "^0.1.5", diff --git a/script/vsts/release-branch-build.yml b/script/vsts/release-branch-build.yml index 05bfd2d76..de9d4e72f 100644 --- a/script/vsts/release-branch-build.yml +++ b/script/vsts/release-branch-build.yml @@ -1,6 +1,7 @@ trigger: - master - 1.* # VSTS only supports wildcards at the end +- electron-* resources: containers: diff --git a/spec/decoration-manager-spec.coffee b/spec/decoration-manager-spec.coffee index 02073a3a2..b53458cd3 100644 --- a/spec/decoration-manager-spec.coffee +++ b/spec/decoration-manager-spec.coffee @@ -1,7 +1,6 @@ DecorationManager = require '../src/decoration-manager' TextEditor = require '../src/text-editor' -# Tests crash the renderer process on Electron 3.0, disabling for now. describe "DecorationManager", -> [decorationManager, buffer, editor, markerLayer1, markerLayer2] = [] diff --git a/spec/fixtures/babel/invalid.js b/spec/fixtures/babel/invalid.js index 513264538..585a4365b 100644 --- a/spec/fixtures/babel/invalid.js +++ b/spec/fixtures/babel/invalid.js @@ -1,3 +1,3 @@ 'use 6to6'; -export default 42; +module.exports = async function* hello() {} diff --git a/spec/selection-spec.js b/spec/selection-spec.js index 216c3936c..e9cf1c617 100644 --- a/spec/selection-spec.js +++ b/spec/selection-spec.js @@ -1,6 +1,5 @@ const TextEditor = require('../src/text-editor') -// Tests crash the renderer process on Electron 3.0, disabling for now. describe('Selection', () => { let buffer, editor, selection diff --git a/spec/style-manager-spec.js b/spec/style-manager-spec.js index fba73c808..641c93709 100644 --- a/spec/style-manager-spec.js +++ b/spec/style-manager-spec.js @@ -47,6 +47,7 @@ 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; } `) @@ -54,6 +55,7 @@ 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' ]) @@ -100,6 +102,13 @@ describe('StyleManager', () => { ]) }) + 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/text-mate-language-mode-spec.js b/spec/text-mate-language-mode-spec.js index 226a828e7..47b79af2d 100644 --- a/spec/text-mate-language-mode-spec.js +++ b/spec/text-mate-language-mode-spec.js @@ -6,7 +6,6 @@ const _ = require('underscore-plus') const dedent = require('dedent') const {it, fit, ffit, fffit, beforeEach, afterEach} = require('./async-spec-helpers') -// Tests crash the renderer process on Electron 3.0, disabling for now. describe('TextMateLanguageMode', () => { let languageMode, buffer, config diff --git a/spec/theme-manager-spec.js b/spec/theme-manager-spec.js index 48bc17ebe..9d1d3a3cc 100644 --- a/spec/theme-manager-spec.js +++ b/spec/theme-manager-spec.js @@ -251,9 +251,9 @@ h2 { it('returns a disposable allowing styles applied by the given path to be removed', function () { const cssPath = require.resolve('./fixtures/css.css') - expect(getComputedStyle(document.body).fontWeight).not.toBe('700') + expect(getComputedStyle(document.body).fontWeight).not.toBe('bold') const disposable = atom.themes.requireStylesheet(cssPath) - expect(getComputedStyle(document.body).fontWeight).toBe('700') + expect(getComputedStyle(document.body).fontWeight).toBe('bold') let styleElementRemovedHandler atom.styles.onDidRemoveStyleElement(styleElementRemovedHandler = jasmine.createSpy('styleElementRemovedHandler')) diff --git a/spec/workspace-spec.js b/spec/workspace-spec.js index 7bfbe5408..091588a70 100644 --- a/spec/workspace-spec.js +++ b/spec/workspace-spec.js @@ -2086,7 +2086,7 @@ describe('Workspace', () => { }) runs(() => { - fs.renameSync(path.join(projectPath, 'git.git'), path.join(projectPath, '.git')) + fs.rename(path.join(projectPath, 'git.git'), path.join(projectPath, '.git')) ignoredPath = path.join(projectPath, 'ignored.txt') fs.writeFileSync(ignoredPath, 'this match should not be included') }) diff --git a/src/compile-cache.js b/src/compile-cache.js index f1f596e86..ea387a631 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(Buffer.from(rawData, 'base64')) + var sourceMap = JSON.parse(new Buffer(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 81e4a6f39..67a959735 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 = Buffer.alloc(0) + this.storedBlob = new Buffer(0) this.storedBlobMap = {} this.usedKeys = new Set() } diff --git a/src/native-compile-cache.js b/src/native-compile-cache.js index d8211b9f4..cc947e84b 100644 --- a/src/native-compile-cache.js +++ b/src/native-compile-cache.js @@ -1,7 +1,7 @@ const Module = require('module') const path = require('path') +const cachedVm = require('cached-run-in-this-context') const crypto = require('crypto') -const vm = require('vm') function computeHash (contents) { return crypto.createHash('sha1').update(contents, 'utf8').digest('hex') @@ -34,24 +34,6 @@ class NativeCompileCache { this.previousModuleCompile = Module.prototype._compile } - runInThisContext (code, filename) { - // produceCachedData is deprecated after Node 10.6, will need to update - // this for Electron 4.0 to use script.createCachedData() - const script = new vm.Script(code, {filename, produceCachedData: true}) - return { - result: script.runInThisContext(), - cacheBuffer: script.cachedData - } - } - - runInThisContextCached (code, filename, cachedData) { - const script = new vm.Script(code, {filename, cachedData}) - return { - result: script.runInThisContext(), - wasRejected: script.cachedDataRejected - } - } - overrideModuleCompile () { let self = this // Here we override Node's module.js @@ -82,7 +64,7 @@ class NativeCompileCache { let compiledWrapper = null if (self.cacheStore.has(cacheKey)) { let buffer = self.cacheStore.get(cacheKey) - let compilationResult = self.runInThisContextCached(wrapper, filename, buffer) + let compilationResult = cachedVm.runInThisContextCached(wrapper, filename, buffer) compiledWrapper = compilationResult.result if (compilationResult.wasRejected) { self.cacheStore.delete(cacheKey) @@ -90,12 +72,12 @@ class NativeCompileCache { } else { let compilationResult try { - compilationResult = self.runInThisContext(wrapper, filename) + compilationResult = cachedVm.runInThisContext(wrapper, filename) } catch (err) { console.error(`Error running script ${filename}`) throw err } - if (compilationResult.cacheBuffer !== null) { + if (compilationResult.cacheBuffer) { self.cacheStore.set(cacheKey, compilationResult.cacheBuffer) } compiledWrapper = compilationResult.result diff --git a/src/task.coffee b/src/task.coffee index 05d61f5a7..fa09c69f1 100644 --- a/src/task.coffee +++ b/src/task.coffee @@ -84,17 +84,17 @@ class Task # Routes messages from the child to the appropriate event. handleEvents: -> - @childProcess.removeAllListeners('message') + @childProcess.removeAllListeners() @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('data') + @childProcess.stdout.removeAllListeners() @childProcess.stdout.on 'data', (data) -> console.log data.toString() if @childProcess.stderr? - @childProcess.stderr.removeAllListeners('data') + @childProcess.stderr.removeAllListeners() @childProcess.stderr.on 'data', (data) -> console.error data.toString() # Public: Starts the task. @@ -147,9 +147,9 @@ class Task terminate: -> return false unless @childProcess? - @childProcess.removeAllListeners('message') - @childProcess.stdout?.removeAllListeners('data') - @childProcess.stderr?.removeAllListeners('data') + @childProcess.removeAllListeners() + @childProcess.stdout?.removeAllListeners() + @childProcess.stderr?.removeAllListeners() @childProcess.kill() @childProcess = null diff --git a/src/text-editor-component.js b/src/text-editor-component.js index 9da3db137..2f24c0df5 100644 --- a/src/text-editor-component.js +++ b/src/text-editor-component.js @@ -4446,7 +4446,7 @@ class NodePool { if (element) { element.className = className || '' - element.attributeStyleMap.forEach((value, key) => { + element.styleMap.forEach((value, key) => { if (!style || style[key] == null) element.style[key] = '' }) if (style) Object.assign(element.style, style) diff --git a/static/index.js b/static/index.js index 40840f304..7a7513683 100644 --- a/static/index.js +++ b/static/index.js @@ -1,4 +1,8 @@ (function () { + // Eagerly require cached-run-in-this-context to prevent a circular require + // when using `NativeCompileCache` for the first time. + require('cached-run-in-this-context') + const electron = require('electron') const path = require('path') const Module = require('module')