zjinh %!s(int64=7) %!d(string=hai) anos
pai
achega
c556a62aac
Modificáronse 88 ficheiros con 4674 adicións e 1868 borrados
  1. 56 20
      resources/app/node_modules/argparse/package.json
  2. 44 9
      resources/app/node_modules/bluebird-lst/package.json
  3. 65 41
      resources/app/node_modules/bluebird/package.json
  4. 43 9
      resources/app/node_modules/buffer-from/package.json
  5. 47 14
      resources/app/node_modules/builder-util-runtime/package.json
  6. 45 12
      resources/app/node_modules/core-util-is/package.json
  7. 0 1
      resources/app/node_modules/debug/.coveralls.yml
  8. 0 11
      resources/app/node_modules/debug/.eslintrc
  9. 0 9
      resources/app/node_modules/debug/.npmignore
  10. 0 14
      resources/app/node_modules/debug/.travis.yml
  11. 34 1
      resources/app/node_modules/debug/CHANGELOG.md
  12. 0 50
      resources/app/node_modules/debug/Makefile
  13. 188 63
      resources/app/node_modules/debug/README.md
  14. 0 70
      resources/app/node_modules/debug/karma.conf.js
  15. 71 30
      resources/app/node_modules/debug/package.json
  16. 77 82
      resources/app/node_modules/debug/src/browser.js
  17. 0 202
      resources/app/node_modules/debug/src/debug.js
  18. 5 3
      resources/app/node_modules/debug/src/index.js
  19. 72 146
      resources/app/node_modules/debug/src/node.js
  20. 41 9
      resources/app/node_modules/electron-is-dev/package.json
  21. 50 18
      resources/app/node_modules/electron-updater/package.json
  22. 79 54
      resources/app/node_modules/esprima/package.json
  23. 40 7
      resources/app/node_modules/fs-extra-p/package.json
  24. 31 0
      resources/app/node_modules/fs-extra/CHANGELOG.md
  25. 25 8
      resources/app/node_modules/fs-extra/README.md
  26. 4 4
      resources/app/node_modules/fs-extra/docs/copy-sync.md
  27. 17 4
      resources/app/node_modules/fs-extra/docs/copy.md
  28. 14 1
      resources/app/node_modules/fs-extra/docs/emptyDir.md
  29. 14 0
      resources/app/node_modules/fs-extra/docs/ensureDir.md
  30. 14 0
      resources/app/node_modules/fs-extra/docs/ensureFile.md
  31. 14 0
      resources/app/node_modules/fs-extra/docs/ensureLink.md
  32. 14 0
      resources/app/node_modules/fs-extra/docs/ensureSymlink.md
  33. 4 4
      resources/app/node_modules/fs-extra/docs/fs-read-write.md
  34. 19 2
      resources/app/node_modules/fs-extra/docs/move.md
  35. 17 0
      resources/app/node_modules/fs-extra/docs/outputFile.md
  36. 17 0
      resources/app/node_modules/fs-extra/docs/outputJson.md
  37. 15 4
      resources/app/node_modules/fs-extra/docs/pathExists.md
  38. 26 2
      resources/app/node_modules/fs-extra/docs/readJson.md
  39. 14 1
      resources/app/node_modules/fs-extra/docs/remove.md
  40. 14 1
      resources/app/node_modules/fs-extra/docs/writeJson.md
  41. 203 46
      resources/app/node_modules/fs-extra/lib/copy-sync/copy-sync.js
  42. 2 0
      resources/app/node_modules/fs-extra/lib/copy-sync/index.js
  43. 255 33
      resources/app/node_modules/fs-extra/lib/copy/copy.js
  44. 2 0
      resources/app/node_modules/fs-extra/lib/copy/index.js
  45. 2 2
      resources/app/node_modules/fs-extra/lib/ensure/link.js
  46. 2 2
      resources/app/node_modules/fs-extra/lib/ensure/symlink-paths.js
  47. 1 4
      resources/app/node_modules/fs-extra/lib/ensure/symlink.js
  48. 11 15
      resources/app/node_modules/fs-extra/lib/fs/index.js
  49. 25 19
      resources/app/node_modules/fs-extra/lib/index.js
  50. 2 2
      resources/app/node_modules/fs-extra/lib/mkdirs/index.js
  51. 14 19
      resources/app/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js
  52. 2 3
      resources/app/node_modules/fs-extra/lib/move-sync/index.js
  53. 50 138
      resources/app/node_modules/fs-extra/lib/move/index.js
  54. 3 3
      resources/app/node_modules/fs-extra/lib/output/index.js
  55. 6 6
      resources/app/node_modules/fs-extra/lib/remove/rimraf.js
  56. 1 0
      resources/app/node_modules/fs-extra/lib/util/buffer.js
  57. 8 1
      resources/app/node_modules/fs-extra/lib/util/utimes.js
  58. 61 29
      resources/app/node_modules/fs-extra/package.json
  59. 37 12
      resources/app/node_modules/fs/package.json
  60. 56 21
      resources/app/node_modules/graceful-fs/package.json
  61. 44 17
      resources/app/node_modules/if-async/package.json
  62. 48 12
      resources/app/node_modules/inherits/package.json
  63. 50 17
      resources/app/node_modules/isarray/package.json
  64. 70 24
      resources/app/node_modules/js-yaml/package.json
  65. 50 16
      resources/app/node_modules/jsonfile/package.json
  66. 51 18
      resources/app/node_modules/lazy-val/package.json
  67. 58 10
      resources/app/node_modules/lodash.isequal/package.json
  68. 28 18
      resources/app/node_modules/ms/index.js
  69. 51 19
      resources/app/node_modules/ms/package.json
  70. 17 8
      resources/app/node_modules/ms/readme.md
  71. 50 17
      resources/app/node_modules/readable-stream/package.json
  72. 12 15
      resources/app/node_modules/regedit/node_modules/debug/package.json
  73. 52 25
      resources/app/node_modules/regedit/package.json
  74. 52 16
      resources/app/node_modules/sax/package.json
  75. 16 5
      resources/app/node_modules/semver/README.md
  76. 14 4
      resources/app/node_modules/semver/bin/semver
  77. 46 12
      resources/app/node_modules/semver/package.json
  78. 132 104
      resources/app/node_modules/semver/semver.js
  79. 39 13
      resources/app/node_modules/source-map-support/package.json
  80. 193 54
      resources/app/node_modules/source-map/package.json
  81. 51 19
      resources/app/node_modules/sprintf-js/package.json
  82. 43 9
      resources/app/node_modules/stream-slicer/package.json
  83. 41 12
      resources/app/node_modules/string_decoder/package.json
  84. 52 19
      resources/app/node_modules/through2/package.json
  85. 48 18
      resources/app/node_modules/universalify/package.json
  86. 56 25
      resources/app/node_modules/xtend/package.json
  87. 1332 79
      resources/app/package-lock.json
  88. 5 2
      resources/app/package.json

+ 56 - 20
resources/app/node_modules/argparse/package.json

@@ -1,7 +1,55 @@
 {
-  "name": "argparse",
+  "_from": "argparse@^1.0.7",
+  "_id": "argparse@1.0.10",
+  "_inBundle": false,
+  "_integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+  "_location": "/argparse",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "argparse@^1.0.7",
+    "name": "argparse",
+    "escapedName": "argparse",
+    "rawSpec": "^1.0.7",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.7"
+  },
+  "_requiredBy": [
+    "/js-yaml"
+  ],
+  "_resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+  "_shasum": "bcd6791ea5ae09725e17e5ad988134cd40b3d911",
+  "_spec": "argparse@^1.0.7",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\js-yaml",
+  "bugs": {
+    "url": "https://github.com/nodeca/argparse/issues"
+  },
+  "bundleDependencies": false,
+  "contributors": [
+    {
+      "name": "Eugene Shkuropat"
+    },
+    {
+      "name": "Paul Jacobson"
+    }
+  ],
+  "dependencies": {
+    "sprintf-js": "~1.0.2"
+  },
+  "deprecated": false,
   "description": "Very powerful CLI arguments parser. Native port of argparse - python's options parsing library",
-  "version": "1.0.10",
+  "devDependencies": {
+    "eslint": "^2.13.1",
+    "istanbul": "^0.4.5",
+    "mocha": "^3.1.0",
+    "ndoc": "^5.0.1"
+  },
+  "files": [
+    "index.js",
+    "lib/"
+  ],
+  "homepage": "https://github.com/nodeca/argparse#readme",
   "keywords": [
     "cli",
     "parser",
@@ -9,26 +57,14 @@
     "option",
     "args"
   ],
-  "contributors": [
-    "Eugene Shkuropat",
-    "Paul Jacobson"
-  ],
-  "files": [
-    "index.js",
-    "lib/"
-  ],
   "license": "MIT",
-  "repository": "nodeca/argparse",
+  "name": "argparse",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/nodeca/argparse.git"
+  },
   "scripts": {
     "test": "make test"
   },
-  "dependencies": {
-    "sprintf-js": "~1.0.2"
-  },
-  "devDependencies": {
-    "eslint": "^2.13.1",
-    "istanbul": "^0.4.5",
-    "mocha": "^3.1.0",
-    "ndoc": "^5.0.1"
-  }
+  "version": "1.0.10"
 }

+ 44 - 9
resources/app/node_modules/bluebird-lst/package.json

@@ -1,16 +1,51 @@
 {
-  "name": "bluebird-lst",
-  "version": "1.0.5",
+  "_from": "bluebird-lst@^1.0.5",
+  "_id": "bluebird-lst@1.0.5",
+  "_inBundle": false,
+  "_integrity": "sha512-Ey0bDNys5qpYPhZ/oQ9vOEvD0TYQDTILMXWP2iGfvMg7rSDde+oV4aQQgqRH+CvBFNz2BSDQnPGMUl6LKBUUQA==",
+  "_location": "/bluebird-lst",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "bluebird-lst@^1.0.5",
+    "name": "bluebird-lst",
+    "escapedName": "bluebird-lst",
+    "rawSpec": "^1.0.5",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.5"
+  },
+  "_requiredBy": [
+    "/builder-util-runtime",
+    "/electron-updater",
+    "/fs-extra-p"
+  ],
+  "_resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.5.tgz",
+  "_shasum": "bebc83026b7e92a72871a3dc599e219cbfb002a9",
+  "_spec": "bluebird-lst@^1.0.5",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\electron-updater",
+  "author": {
+    "name": "Vladimir Krivosheev"
+  },
+  "bugs": {
+    "url": "https://github.com/develar/fs-extra-p/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "bluebird": "^3.5.1"
+  },
+  "deprecated": false,
   "description": "Bluebird — longStackTraces: true, cancellation: true",
-  "author": "Vladimir Krivosheev",
-  "license": "MIT",
-  "repository": "develar/fs-extra-p",
-  "homepage": "https://github.com/develar/fs-extra-p",
   "files": [
     "index.*"
   ],
-  "dependencies": {
-    "bluebird": "^3.5.1"
+  "homepage": "https://github.com/develar/fs-extra-p",
+  "license": "MIT",
+  "name": "bluebird-lst",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/develar/fs-extra-p.git"
   },
-  "typings": "./index.d.ts"
+  "typings": "./index.d.ts",
+  "version": "1.0.5"
 }

+ 65 - 41
resources/app/node_modules/bluebird/package.json

@@ -1,44 +1,39 @@
 {
-  "name": "bluebird",
-  "description": "Full featured Promises/A+ implementation with exceptionally good performance",
-  "version": "3.5.2",
-  "keywords": [
-    "promise",
-    "performance",
-    "promises",
-    "promises-a",
-    "promises-aplus",
-    "async",
-    "await",
-    "deferred",
-    "deferreds",
-    "future",
-    "flow control",
-    "dsl",
-    "fluent interface"
-  ],
-  "scripts": {
-    "lint": "node scripts/jshint.js",
-    "test": "node --expose-gc tools/test.js",
-    "istanbul": "istanbul",
-    "prepublish": "npm run generate-browser-core && npm run generate-browser-full",
-    "generate-browser-full": "node tools/build.js --no-clean --no-debug --release --browser --minify",
-    "generate-browser-core": "node tools/build.js --features=core --no-debug --release --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js"
-  },
-  "homepage": "https://github.com/petkaantonov/bluebird",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/petkaantonov/bluebird.git"
+  "_from": "bluebird@^3.5.1",
+  "_id": "bluebird@3.5.2",
+  "_inBundle": false,
+  "_integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==",
+  "_location": "/bluebird",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "bluebird@^3.5.1",
+    "name": "bluebird",
+    "escapedName": "bluebird",
+    "rawSpec": "^3.5.1",
+    "saveSpec": null,
+    "fetchSpec": "^3.5.1"
   },
-  "bugs": {
-    "url": "http://github.com/petkaantonov/bluebird/issues"
-  },
-  "license": "MIT",
+  "_requiredBy": [
+    "/bluebird-lst"
+  ],
+  "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz",
+  "_shasum": "1be0908e054a751754549c270489c1505d4ab15a",
+  "_spec": "bluebird@^3.5.1",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\bluebird-lst",
   "author": {
     "name": "Petka Antonov",
     "email": "petka_antonov@hotmail.com",
     "url": "http://github.com/petkaantonov/"
   },
+  "browser": "./js/browser/bluebird.js",
+  "bugs": {
+    "url": "http://github.com/petkaantonov/bluebird/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Full featured Promises/A+ implementation with exceptionally good performance",
   "devDependencies": {
     "acorn": "~0.6.0",
     "baconjs": "^0.7.43",
@@ -54,6 +49,7 @@
     "istanbul": "^0.3.5",
     "jshint": "^2.6.0",
     "jshint-stylish": "~0.2.0",
+    "kefir": "^2.4.1",
     "mkdirp": "~0.5.0",
     "mocha": "~2.1",
     "open": "~0.0.5",
@@ -62,16 +58,44 @@
     "rx": "^2.3.25",
     "serve-static": "^1.7.1",
     "sinon": "~1.7.3",
-    "uglify-js": "~2.4.16",
-    "kefir": "^2.4.1"
+    "uglify-js": "~2.4.16"
   },
-  "readmeFilename": "README.md",
-  "main": "./js/release/bluebird.js",
-  "webpack": "./js/release/bluebird.js",
-  "browser": "./js/browser/bluebird.js",
   "files": [
     "js/browser",
     "js/release",
     "LICENSE"
-  ]
+  ],
+  "homepage": "https://github.com/petkaantonov/bluebird",
+  "keywords": [
+    "promise",
+    "performance",
+    "promises",
+    "promises-a",
+    "promises-aplus",
+    "async",
+    "await",
+    "deferred",
+    "deferreds",
+    "future",
+    "flow control",
+    "dsl",
+    "fluent interface"
+  ],
+  "license": "MIT",
+  "main": "./js/release/bluebird.js",
+  "name": "bluebird",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/petkaantonov/bluebird.git"
+  },
+  "scripts": {
+    "generate-browser-core": "node tools/build.js --features=core --no-debug --release --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js",
+    "generate-browser-full": "node tools/build.js --no-clean --no-debug --release --browser --minify",
+    "istanbul": "istanbul",
+    "lint": "node scripts/jshint.js",
+    "prepublish": "npm run generate-browser-core && npm run generate-browser-full",
+    "test": "node --expose-gc tools/test.js"
+  },
+  "version": "3.5.2",
+  "webpack": "./js/release/bluebird.js"
 }

+ 43 - 9
resources/app/node_modules/buffer-from/package.json

@@ -1,19 +1,53 @@
 {
-  "name": "buffer-from",
-  "version": "1.1.1",
-  "license": "MIT",
-  "repository": "LinusU/buffer-from",
-  "files": [
-    "index.js"
+  "_from": "buffer-from@^1.0.0",
+  "_id": "buffer-from@1.1.1",
+  "_inBundle": false,
+  "_integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+  "_location": "/buffer-from",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "buffer-from@^1.0.0",
+    "name": "buffer-from",
+    "escapedName": "buffer-from",
+    "rawSpec": "^1.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.0"
+  },
+  "_requiredBy": [
+    "/concat-stream",
+    "/source-map-support"
   ],
-  "scripts": {
-    "test": "standard && node test"
+  "_resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+  "_shasum": "32713bc028f75c02fdb710d7c7bcec1f2c6070ef",
+  "_spec": "buffer-from@^1.0.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\source-map-support",
+  "bugs": {
+    "url": "https://github.com/LinusU/buffer-from/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "A [ponyfill](https://ponyfill.com) for `Buffer.from`, uses native implementation if available.",
   "devDependencies": {
     "standard": "^7.1.2"
   },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/LinusU/buffer-from#readme",
   "keywords": [
     "buffer",
     "buffer from"
-  ]
+  ],
+  "license": "MIT",
+  "name": "buffer-from",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/LinusU/buffer-from.git"
+  },
+  "scripts": {
+    "test": "standard && node test"
+  },
+  "version": "1.1.1"
 }

+ 47 - 14
resources/app/node_modules/builder-util-runtime/package.json

@@ -1,23 +1,56 @@
 {
-  "name": "builder-util-runtime",
-  "version": "4.4.1",
-  "main": "out/index.js",
-  "author": "Vladimir Krivosheev",
-  "license": "MIT",
-  "repository": "electron-userland/electron-builder",
-  "bugs": "https://github.com/electron-userland/electron-builder/issues",
-  "homepage": "https://github.com/electron-userland/electron-builder",
-  "files": [
-    "out"
+  "_from": "builder-util-runtime@~4.4.1",
+  "_id": "builder-util-runtime@4.4.1",
+  "_inBundle": false,
+  "_integrity": "sha512-8L2pbL6D3VdI1f8OMknlZJpw0c7KK15BRz3cY77AOUElc4XlCv2UhVV01jJM7+6Lx7henaQh80ALULp64eFYAQ==",
+  "_location": "/builder-util-runtime",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "builder-util-runtime@~4.4.1",
+    "name": "builder-util-runtime",
+    "escapedName": "builder-util-runtime",
+    "rawSpec": "~4.4.1",
+    "saveSpec": null,
+    "fetchSpec": "~4.4.1"
+  },
+  "_requiredBy": [
+    "/electron-updater"
   ],
-  "engines": {
-    "node": ">=6.0.0"
+  "_resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-4.4.1.tgz",
+  "_shasum": "2770d03241e51fde46acacc7ed3ed8a9f45f02cb",
+  "_spec": "builder-util-runtime@~4.4.1",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\electron-updater",
+  "author": {
+    "name": "Vladimir Krivosheev"
   },
+  "bugs": {
+    "url": "https://github.com/electron-userland/electron-builder/issues"
+  },
+  "bundleDependencies": false,
   "dependencies": {
+    "bluebird-lst": "^1.0.5",
     "debug": "^3.1.0",
     "fs-extra-p": "^4.6.1",
-    "bluebird-lst": "^1.0.5",
     "sax": "^1.2.4"
   },
-  "types": "./out/index.d.ts"
+  "deprecated": false,
+  "description": "HTTP utilities. Used by [electron-builder](https://github.com/electron-userland/electron-builder).",
+  "engines": {
+    "node": ">=6.0.0"
+  },
+  "files": [
+    "out"
+  ],
+  "homepage": "https://github.com/electron-userland/electron-builder",
+  "license": "MIT",
+  "main": "out/index.js",
+  "name": "builder-util-runtime",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/electron-userland/electron-builder.git"
+  },
+  "types": "./out/index.d.ts",
+  "version": "4.4.1"
 }

+ 45 - 12
resources/app/node_modules/core-util-is/package.json

@@ -1,12 +1,45 @@
 {
-  "name": "core-util-is",
-  "version": "1.0.2",
+  "_from": "core-util-is@~1.0.0",
+  "_id": "core-util-is@1.0.2",
+  "_inBundle": false,
+  "_integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+  "_location": "/core-util-is",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "core-util-is@~1.0.0",
+    "name": "core-util-is",
+    "escapedName": "core-util-is",
+    "rawSpec": "~1.0.0",
+    "saveSpec": null,
+    "fetchSpec": "~1.0.0"
+  },
+  "_requiredBy": [
+    "/concat-stream/readable-stream",
+    "/progress-stream/readable-stream",
+    "/readable-stream",
+    "/verror"
+  ],
+  "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+  "_shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7",
+  "_spec": "core-util-is@~1.0.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\readable-stream",
+  "author": {
+    "name": "Isaac Z. Schlueter",
+    "email": "i@izs.me",
+    "url": "http://blog.izs.me/"
+  },
+  "bugs": {
+    "url": "https://github.com/isaacs/core-util-is/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "The `util.is*` functions introduced in Node v0.12.",
-  "main": "lib/util.js",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/core-util-is"
+  "devDependencies": {
+    "tap": "^2.3.0"
   },
+  "homepage": "https://github.com/isaacs/core-util-is#readme",
   "keywords": [
     "util",
     "isBuffer",
@@ -18,15 +51,15 @@
     "isThat",
     "polyfill"
   ],
-  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
   "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/isaacs/core-util-is/issues"
+  "main": "lib/util.js",
+  "name": "core-util-is",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/isaacs/core-util-is.git"
   },
   "scripts": {
     "test": "tap test.js"
   },
-  "devDependencies": {
-    "tap": "^2.3.0"
-  }
+  "version": "1.0.2"
 }

+ 0 - 1
resources/app/node_modules/debug/.coveralls.yml

@@ -1 +0,0 @@
-repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve

+ 0 - 11
resources/app/node_modules/debug/.eslintrc

@@ -1,11 +0,0 @@
-{
-  "env": {
-    "browser": true,
-    "node": true
-  },
-  "rules": {
-    "no-console": 0,
-    "no-empty": [1, { "allowEmptyCatch": true }]
-  },
-  "extends": "eslint:recommended"
-}

+ 0 - 9
resources/app/node_modules/debug/.npmignore

@@ -1,9 +0,0 @@
-support
-test
-examples
-example
-*.sock
-dist
-yarn.lock
-coverage
-bower.json

+ 0 - 14
resources/app/node_modules/debug/.travis.yml

@@ -1,14 +0,0 @@
-
-language: node_js
-node_js:
-  - "6"
-  - "5"
-  - "4"
-
-install:
-  - make node_modules
-
-script:
-  - make lint
-  - make test
-  - make coveralls

+ 34 - 1
resources/app/node_modules/debug/CHANGELOG.md

@@ -1,4 +1,37 @@
 
+3.1.0 / 2017-09-26
+==================
+
+  * Add `DEBUG_HIDE_DATE` env var (#486)
+  * Remove ReDoS regexp in %o formatter (#504)
+  * Remove "component" from package.json
+  * Remove `component.json`
+  * Ignore package-lock.json
+  * Examples: fix colors printout
+  * Fix: browser detection
+  * Fix: spelling mistake (#496, @EdwardBetts)
+
+3.0.1 / 2017-08-24
+==================
+
+  * Fix: Disable colors in Edge and Internet Explorer (#489)
+
+3.0.0 / 2017-08-08
+==================
+
+  * Breaking: Remove DEBUG_FD (#406)
+  * Breaking: Use `Date#toISOString()` instead to `Date#toUTCString()` when output is not a TTY (#418)
+  * Breaking: Make millisecond timer namespace specific and allow 'always enabled' output (#408)
+  * Addition: document `enabled` flag (#465)
+  * Addition: add 256 colors mode (#481)
+  * Addition: `enabled()` updates existing debug instances, add `destroy()` function (#440)
+  * Update: component: update "ms" to v2.0.0
+  * Update: separate the Node and Browser tests in Travis-CI
+  * Update: refactor Readme, fixed documentation, added "Namespace Colors" section, redid screenshots
+  * Update: separate Node.js and web browser examples for organization
+  * Update: update "browserify" to v14.4.0
+  * Fix: fix Readme typo (#473)
+
 2.6.9 / 2017-09-22
 ==================
 
@@ -27,7 +60,7 @@
 2.6.4 / 2017-04-20
 ==================
 
-  * Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo)
+  * Fix: bug that would occur if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo)
   * Chore: ignore bower.json in npm installations. (#437, @joaovieira)
   * Misc: update "ms" to v0.7.3 (@tootallnate)
 

+ 0 - 50
resources/app/node_modules/debug/Makefile

@@ -1,50 +0,0 @@
-# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
-THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
-
-# BIN directory
-BIN := $(THIS_DIR)/node_modules/.bin
-
-# Path
-PATH := node_modules/.bin:$(PATH)
-SHELL := /bin/bash
-
-# applications
-NODE ?= $(shell which node)
-YARN ?= $(shell which yarn)
-PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
-BROWSERIFY ?= $(NODE) $(BIN)/browserify
-
-.FORCE:
-
-install: node_modules
-
-node_modules: package.json
-	@NODE_ENV= $(PKG) install
-	@touch node_modules
-
-lint: .FORCE
-	eslint browser.js debug.js index.js node.js
-
-test-node: .FORCE
-	istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
-
-test-browser: .FORCE
-	mkdir -p dist
-
-	@$(BROWSERIFY) \
-		--standalone debug \
-		. > dist/debug.js
-
-	karma start --single-run
-	rimraf dist
-
-test: .FORCE
-	concurrently \
-		"make test-node" \
-		"make test-browser"
-
-coveralls:
-	cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
-
-.PHONY: all install clean distclean

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 188 - 63
resources/app/node_modules/debug/README.md


+ 0 - 70
resources/app/node_modules/debug/karma.conf.js

@@ -1,70 +0,0 @@
-// Karma configuration
-// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC)
-
-module.exports = function(config) {
-  config.set({
-
-    // base path that will be used to resolve all patterns (eg. files, exclude)
-    basePath: '',
-
-
-    // frameworks to use
-    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
-    frameworks: ['mocha', 'chai', 'sinon'],
-
-
-    // list of files / patterns to load in the browser
-    files: [
-      'dist/debug.js',
-      'test/*spec.js'
-    ],
-
-
-    // list of files to exclude
-    exclude: [
-      'src/node.js'
-    ],
-
-
-    // preprocess matching files before serving them to the browser
-    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
-    preprocessors: {
-    },
-
-    // test results reporter to use
-    // possible values: 'dots', 'progress'
-    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
-    reporters: ['progress'],
-
-
-    // web server port
-    port: 9876,
-
-
-    // enable / disable colors in the output (reporters and logs)
-    colors: true,
-
-
-    // level of logging
-    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
-    logLevel: config.LOG_INFO,
-
-
-    // enable / disable watching file and executing tests whenever any file changes
-    autoWatch: true,
-
-
-    // start these browsers
-    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
-    browsers: ['PhantomJS'],
-
-
-    // Continuous Integration mode
-    // if true, Karma captures browsers, runs the tests and exits
-    singleRun: false,
-
-    // Concurrency level
-    // how many browser should be started simultaneous
-    concurrency: Infinity
-  })
-}

+ 71 - 30
resources/app/node_modules/debug/package.json

@@ -1,49 +1,90 @@
 {
-  "name": "debug",
-  "version": "2.6.9",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/visionmedia/debug.git"
+  "_from": "debug@^3.1.0",
+  "_id": "debug@3.2.6",
+  "_inBundle": false,
+  "_integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+  "_location": "/debug",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "debug@^3.1.0",
+    "name": "debug",
+    "escapedName": "debug",
+    "rawSpec": "^3.1.0",
+    "saveSpec": null,
+    "fetchSpec": "^3.1.0"
   },
-  "description": "small debugging utility",
-  "keywords": [
-    "debug",
-    "log",
-    "debugger"
+  "_requiredBy": [
+    "/builder-util-runtime"
   ],
-  "author": "TJ Holowaychuk <tj@vision-media.ca>",
+  "_resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+  "_shasum": "e83d17de16d8a7efb7717edbe5fb10135eee629b",
+  "_spec": "debug@^3.1.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\builder-util-runtime",
+  "author": {
+    "name": "TJ Holowaychuk",
+    "email": "tj@vision-media.ca"
+  },
+  "browser": "./src/browser.js",
+  "bugs": {
+    "url": "https://github.com/visionmedia/debug/issues"
+  },
+  "bundleDependencies": false,
   "contributors": [
-    "Nathan Rajlich <nathan@tootallnate.net> (http://n8.io)",
-    "Andrew Rhyne <rhyneandrew@gmail.com>"
+    {
+      "name": "Nathan Rajlich",
+      "email": "nathan@tootallnate.net",
+      "url": "http://n8.io"
+    },
+    {
+      "name": "Andrew Rhyne",
+      "email": "rhyneandrew@gmail.com"
+    }
   ],
-  "license": "MIT",
   "dependencies": {
-    "ms": "2.0.0"
+    "ms": "^2.1.1"
   },
+  "deprecated": false,
+  "description": "small debugging utility",
   "devDependencies": {
-    "browserify": "9.0.3",
+    "@babel/cli": "^7.0.0",
+    "@babel/core": "^7.0.0",
+    "@babel/preset-env": "^7.0.0",
+    "browserify": "14.4.0",
     "chai": "^3.5.0",
     "concurrently": "^3.1.0",
-    "coveralls": "^2.11.15",
-    "eslint": "^3.12.1",
+    "coveralls": "^3.0.2",
     "istanbul": "^0.4.5",
-    "karma": "^1.3.0",
+    "karma": "^3.0.0",
     "karma-chai": "^0.1.0",
     "karma-mocha": "^1.3.0",
     "karma-phantomjs-launcher": "^1.0.2",
-    "karma-sinon": "^1.0.5",
-    "mocha": "^3.2.0",
+    "mocha": "^5.2.0",
     "mocha-lcov-reporter": "^1.2.0",
     "rimraf": "^2.5.4",
-    "sinon": "^1.17.6",
-    "sinon-chai": "^2.8.0"
+    "xo": "^0.23.0"
   },
+  "files": [
+    "src",
+    "node.js",
+    "dist/debug.js",
+    "LICENSE",
+    "README.md"
+  ],
+  "homepage": "https://github.com/visionmedia/debug#readme",
+  "keywords": [
+    "debug",
+    "log",
+    "debugger"
+  ],
+  "license": "MIT",
   "main": "./src/index.js",
-  "browser": "./src/browser.js",
-  "component": {
-    "scripts": {
-      "debug/index.js": "browser.js",
-      "debug/debug.js": "debug.js"
-    }
-  }
+  "name": "debug",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/visionmedia/debug.git"
+  },
+  "unpkg": "./dist/debug.js",
+  "version": "3.2.6"
 }

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 77 - 82
resources/app/node_modules/debug/src/browser.js


+ 0 - 202
resources/app/node_modules/debug/src/debug.js

@@ -1,202 +0,0 @@
-
-/**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
-exports.coerce = coerce;
-exports.disable = disable;
-exports.enable = enable;
-exports.enabled = enabled;
-exports.humanize = require('ms');
-
-/**
- * The currently active debug mode names, and names to skip.
- */
-
-exports.names = [];
-exports.skips = [];
-
-/**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
- */
-
-exports.formatters = {};
-
-/**
- * Previous log timestamp.
- */
-
-var prevTime;
-
-/**
- * Select a color.
- * @param {String} namespace
- * @return {Number}
- * @api private
- */
-
-function selectColor(namespace) {
-  var hash = 0, i;
-
-  for (i in namespace) {
-    hash  = ((hash << 5) - hash) + namespace.charCodeAt(i);
-    hash |= 0; // Convert to 32bit integer
-  }
-
-  return exports.colors[Math.abs(hash) % exports.colors.length];
-}
-
-/**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
-
-function createDebug(namespace) {
-
-  function debug() {
-    // disabled?
-    if (!debug.enabled) return;
-
-    var self = debug;
-
-    // set `diff` timestamp
-    var curr = +new Date();
-    var ms = curr - (prevTime || curr);
-    self.diff = ms;
-    self.prev = prevTime;
-    self.curr = curr;
-    prevTime = curr;
-
-    // turn the `arguments` into a proper Array
-    var args = new Array(arguments.length);
-    for (var i = 0; i < args.length; i++) {
-      args[i] = arguments[i];
-    }
-
-    args[0] = exports.coerce(args[0]);
-
-    if ('string' !== typeof args[0]) {
-      // anything else let's inspect with %O
-      args.unshift('%O');
-    }
-
-    // apply any `formatters` transformations
-    var index = 0;
-    args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
-      // if we encounter an escaped % then don't increase the array index
-      if (match === '%%') return match;
-      index++;
-      var formatter = exports.formatters[format];
-      if ('function' === typeof formatter) {
-        var val = args[index];
-        match = formatter.call(self, val);
-
-        // now we need to remove `args[index]` since it's inlined in the `format`
-        args.splice(index, 1);
-        index--;
-      }
-      return match;
-    });
-
-    // apply env-specific formatting (colors, etc.)
-    exports.formatArgs.call(self, args);
-
-    var logFn = debug.log || exports.log || console.log.bind(console);
-    logFn.apply(self, args);
-  }
-
-  debug.namespace = namespace;
-  debug.enabled = exports.enabled(namespace);
-  debug.useColors = exports.useColors();
-  debug.color = selectColor(namespace);
-
-  // env-specific initialization logic for debug instances
-  if ('function' === typeof exports.init) {
-    exports.init(debug);
-  }
-
-  return debug;
-}
-
-/**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
-
-function enable(namespaces) {
-  exports.save(namespaces);
-
-  exports.names = [];
-  exports.skips = [];
-
-  var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
-  var len = split.length;
-
-  for (var i = 0; i < len; i++) {
-    if (!split[i]) continue; // ignore empty strings
-    namespaces = split[i].replace(/\*/g, '.*?');
-    if (namespaces[0] === '-') {
-      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
-    } else {
-      exports.names.push(new RegExp('^' + namespaces + '$'));
-    }
-  }
-}
-
-/**
- * Disable debug output.
- *
- * @api public
- */
-
-function disable() {
-  exports.enable('');
-}
-
-/**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
-
-function enabled(name) {
-  var i, len;
-  for (i = 0, len = exports.skips.length; i < len; i++) {
-    if (exports.skips[i].test(name)) {
-      return false;
-    }
-  }
-  for (i = 0, len = exports.names.length; i < len; i++) {
-    if (exports.names[i].test(name)) {
-      return true;
-    }
-  }
-  return false;
-}
-
-/**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function coerce(val) {
-  if (val instanceof Error) return val.stack || val.message;
-  return val;
-}

+ 5 - 3
resources/app/node_modules/debug/src/index.js

@@ -1,10 +1,12 @@
+"use strict";
+
 /**
- * Detect Electron renderer process, which is node, but we should
+ * Detect Electron renderer / nwjs process, which is node, but we should
  * treat as a browser.
  */
-
-if (typeof process !== 'undefined' && process.type === 'renderer') {
+if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {
   module.exports = require('./browser.js');
 } else {
   module.exports = require('./node.js');
 }
+

+ 72 - 146
resources/app/node_modules/debug/src/node.js

@@ -1,134 +1,112 @@
+"use strict";
+
 /**
  * Module dependencies.
  */
-
 var tty = require('tty');
-var util = require('util');
 
+var util = require('util');
 /**
  * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
  */
 
-exports = module.exports = require('./debug');
+
 exports.init = init;
 exports.log = log;
 exports.formatArgs = formatArgs;
 exports.save = save;
 exports.load = load;
 exports.useColors = useColors;
-
 /**
  * Colors.
  */
 
 exports.colors = [6, 2, 3, 4, 5, 1];
 
+try {
+  // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)
+  // eslint-disable-next-line import/no-extraneous-dependencies
+  var supportsColor = require('supports-color');
+
+  if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
+    exports.colors = [20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221];
+  }
+} catch (error) {} // Swallow - we only care if `supports-color` is available; it doesn't have to be.
+
 /**
  * Build up the default `inspectOpts` object from the environment variables.
  *
  *   $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
  */
 
+
 exports.inspectOpts = Object.keys(process.env).filter(function (key) {
   return /^debug_/i.test(key);
 }).reduce(function (obj, key) {
-  // camel-case
-  var prop = key
-    .substring(6)
-    .toLowerCase()
-    .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
+  // Camel-case
+  var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function (_, k) {
+    return k.toUpperCase();
+  }); // Coerce string value into JS value
 
-  // coerce string value into JS value
   var val = process.env[key];
-  if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
-  else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
-  else if (val === 'null') val = null;
-  else val = Number(val);
+
+  if (/^(yes|on|true|enabled)$/i.test(val)) {
+    val = true;
+  } else if (/^(no|off|false|disabled)$/i.test(val)) {
+    val = false;
+  } else if (val === 'null') {
+    val = null;
+  } else {
+    val = Number(val);
+  }
 
   obj[prop] = val;
   return obj;
 }, {});
-
-/**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- *   $ DEBUG_FD=3 node script.js 3>debug.log
- */
-
-var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
-
-if (1 !== fd && 2 !== fd) {
-  util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()
-}
-
-var stream = 1 === fd ? process.stdout :
-             2 === fd ? process.stderr :
-             createWritableStdioStream(fd);
-
 /**
  * Is stdout a TTY? Colored output is enabled when `true`.
  */
 
 function useColors() {
-  return 'colors' in exports.inspectOpts
-    ? Boolean(exports.inspectOpts.colors)
-    : tty.isatty(fd);
+  return 'colors' in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd);
 }
-
-/**
- * Map %o to `util.inspect()`, all on a single line.
- */
-
-exports.formatters.o = function(v) {
-  this.inspectOpts.colors = this.useColors;
-  return util.inspect(v, this.inspectOpts)
-    .split('\n').map(function(str) {
-      return str.trim()
-    }).join(' ');
-};
-
-/**
- * Map %o to `util.inspect()`, allowing multiple lines if needed.
- */
-
-exports.formatters.O = function(v) {
-  this.inspectOpts.colors = this.useColors;
-  return util.inspect(v, this.inspectOpts);
-};
-
 /**
  * Adds ANSI color escape codes if enabled.
  *
  * @api public
  */
 
+
 function formatArgs(args) {
-  var name = this.namespace;
-  var useColors = this.useColors;
+  var name = this.namespace,
+      useColors = this.useColors;
 
   if (useColors) {
     var c = this.color;
-    var prefix = '  \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
-
+    var colorCode = "\x1B[3" + (c < 8 ? c : '8;5;' + c);
+    var prefix = "  ".concat(colorCode, ";1m").concat(name, " \x1B[0m");
     args[0] = prefix + args[0].split('\n').join('\n' + prefix);
-    args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
+    args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + "\x1B[0m");
   } else {
-    args[0] = new Date().toUTCString()
-      + ' ' + name + ' ' + args[0];
+    args[0] = getDate() + name + ' ' + args[0];
   }
 }
 
+function getDate() {
+  if (exports.inspectOpts.hideDate) {
+    return '';
+  }
+
+  return new Date().toISOString() + ' ';
+}
 /**
- * Invokes `util.format()` with the specified arguments and writes to `stream`.
+ * Invokes `util.format()` with the specified arguments and writes to stderr.
  */
 
+
 function log() {
-  return stream.write(util.format.apply(util, arguments) + '\n');
+  return process.stderr.write(util.format.apply(util, arguments) + '\n');
 }
-
 /**
  * Save `namespaces`.
  *
@@ -136,16 +114,16 @@ function log() {
  * @api private
  */
 
+
 function save(namespaces) {
-  if (null == namespaces) {
+  if (namespaces) {
+    process.env.DEBUG = namespaces;
+  } else {
     // If you set a process.env field to null or undefined, it gets cast to the
     // string 'null' or 'undefined'. Just delete instead.
     delete process.env.DEBUG;
-  } else {
-    process.env.DEBUG = namespaces;
   }
 }
-
 /**
  * Load `namespaces`.
  *
@@ -153,78 +131,10 @@ function save(namespaces) {
  * @api private
  */
 
+
 function load() {
   return process.env.DEBUG;
 }
-
-/**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
-
-function createWritableStdioStream (fd) {
-  var stream;
-  var tty_wrap = process.binding('tty_wrap');
-
-  // Note stream._type is used for test-module-load-list.js
-
-  switch (tty_wrap.guessHandleType(fd)) {
-    case 'TTY':
-      stream = new tty.WriteStream(fd);
-      stream._type = 'tty';
-
-      // Hack to have stream not keep the event loop alive.
-      // See https://github.com/joyent/node/issues/1726
-      if (stream._handle && stream._handle.unref) {
-        stream._handle.unref();
-      }
-      break;
-
-    case 'FILE':
-      var fs = require('fs');
-      stream = new fs.SyncWriteStream(fd, { autoClose: false });
-      stream._type = 'fs';
-      break;
-
-    case 'PIPE':
-    case 'TCP':
-      var net = require('net');
-      stream = new net.Socket({
-        fd: fd,
-        readable: false,
-        writable: true
-      });
-
-      // FIXME Should probably have an option in net.Socket to create a
-      // stream from an existing fd which is writable only. But for now
-      // we'll just add this hack and set the `readable` member to false.
-      // Test: ./node test/fixtures/echo.js < /etc/passwd
-      stream.readable = false;
-      stream.read = null;
-      stream._type = 'pipe';
-
-      // FIXME Hack to have stream not keep the event loop alive.
-      // See https://github.com/joyent/node/issues/1726
-      if (stream._handle && stream._handle.unref) {
-        stream._handle.unref();
-      }
-      break;
-
-    default:
-      // Probably an error on in uv_guess_handle()
-      throw new Error('Implement me. Unknown stream file type!');
-  }
-
-  // For supporting legacy API we put the FD here.
-  stream.fd = fd;
-
-  stream._isStdio = true;
-
-  return stream;
-}
-
 /**
  * Init logic for `debug` instances.
  *
@@ -232,17 +142,33 @@ function createWritableStdioStream (fd) {
  * differently for a particular `debug` instance.
  */
 
-function init (debug) {
-  debug.inspectOpts = {};
 
+function init(debug) {
+  debug.inspectOpts = {};
   var keys = Object.keys(exports.inspectOpts);
+
   for (var i = 0; i < keys.length; i++) {
     debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
   }
 }
 
+module.exports = require('./common')(exports);
+var formatters = module.exports.formatters;
 /**
- * Enable namespaces listed in `process.env.DEBUG` initially.
+ * Map %o to `util.inspect()`, all on a single line.
  */
 
-exports.enable(load());
+formatters.o = function (v) {
+  this.inspectOpts.colors = this.useColors;
+  return util.inspect(v, this.inspectOpts).replace(/\s*\n\s*/g, ' ');
+};
+/**
+ * Map %O to `util.inspect()`, allowing multiple lines if needed.
+ */
+
+
+formatters.O = function (v) {
+  this.inspectOpts.colors = this.useColors;
+  return util.inspect(v, this.inspectOpts);
+};
+

+ 41 - 9
resources/app/node_modules/electron-is-dev/package.json

@@ -1,20 +1,45 @@
 {
-  "name": "electron-is-dev",
-  "version": "0.3.0",
-  "description": "Check if Electron is running in development",
-  "license": "MIT",
-  "repository": "sindresorhus/electron-is-dev",
+  "_from": "electron-is-dev@^0.3.0",
+  "_id": "electron-is-dev@0.3.0",
+  "_inBundle": false,
+  "_integrity": "sha1-FOb9pcaOnk7L7/nM8DfL18BcWv4=",
+  "_location": "/electron-is-dev",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "electron-is-dev@^0.3.0",
+    "name": "electron-is-dev",
+    "escapedName": "electron-is-dev",
+    "rawSpec": "^0.3.0",
+    "saveSpec": null,
+    "fetchSpec": "^0.3.0"
+  },
+  "_requiredBy": [
+    "/electron-updater"
+  ],
+  "_resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz",
+  "_shasum": "14e6fda5c68e9e4ecbeff9ccf037cbd7c05c5afe",
+  "_spec": "electron-is-dev@^0.3.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\electron-updater",
   "author": {
     "name": "Sindre Sorhus",
     "email": "sindresorhus@gmail.com",
     "url": "sindresorhus.com"
   },
-  "scripts": {
-    "test": "xo"
+  "bugs": {
+    "url": "https://github.com/sindresorhus/electron-is-dev/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Check if Electron is running in development",
+  "devDependencies": {
+    "xo": "*"
   },
   "files": [
     "index.js"
   ],
+  "homepage": "https://github.com/sindresorhus/electron-is-dev#readme",
   "keywords": [
     "electron",
     "dev",
@@ -27,9 +52,16 @@
     "debug",
     "app"
   ],
-  "devDependencies": {
-    "xo": "*"
+  "license": "MIT",
+  "name": "electron-is-dev",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/sindresorhus/electron-is-dev.git"
   },
+  "scripts": {
+    "test": "xo"
+  },
+  "version": "0.3.0",
   "xo": {
     "esnext": true,
     "envs": [

+ 50 - 18
resources/app/node_modules/electron-updater/package.json

@@ -1,29 +1,61 @@
 {
-  "name": "electron-updater",
-  "version": "3.1.2",
-  "description": "Cross platform updater for electron applications",
-  "main": "out/main.js",
-  "author": "Vladimir Krivosheev",
-  "license": "MIT",
-  "repository": "electron-userland/electron-builder",
-  "bugs": "https://github.com/electron-userland/electron-builder/issues",
-  "homepage": "https://github.com/electron-userland/electron-builder",
-  "files": [
-    "out"
+  "_from": "electron-updater@^3.1.2",
+  "_id": "electron-updater@3.1.2",
+  "_inBundle": false,
+  "_integrity": "sha512-y3n37O01pdynMJHhJbOd2UVhVrmDW6zLvR2SOZ+gk3S6r16872+0nNbC48GXWwc26lTeus/Zja/XUpiqrvdw4A==",
+  "_location": "/electron-updater",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "electron-updater@^3.1.2",
+    "name": "electron-updater",
+    "escapedName": "electron-updater",
+    "rawSpec": "^3.1.2",
+    "saveSpec": null,
+    "fetchSpec": "^3.1.2"
+  },
+  "_requiredBy": [
+    "/"
   ],
+  "_resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-3.1.2.tgz",
+  "_shasum": "30d9790d5b16048e4afc74a31748790348b153bf",
+  "_spec": "electron-updater@^3.1.2",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app",
+  "author": {
+    "name": "Vladimir Krivosheev"
+  },
+  "bugs": {
+    "url": "https://github.com/electron-userland/electron-builder/issues"
+  },
+  "bundleDependencies": false,
   "dependencies": {
-    "lazy-val": "^1.0.3",
     "bluebird-lst": "^1.0.5",
+    "builder-util-runtime": "~4.4.1",
+    "electron-is-dev": "^0.3.0",
     "fs-extra-p": "^4.6.1",
     "js-yaml": "^3.12.0",
+    "lazy-val": "^1.0.3",
+    "lodash.isequal": "^4.5.0",
     "semver": "^5.5.1",
-    "source-map-support": "^0.5.9",
-    "builder-util-runtime": "~4.4.1",
-    "electron-is-dev": "^0.3.0",
-    "lodash.isequal": "^4.5.0"
+    "source-map-support": "^0.5.9"
   },
-  "typings": "./out/main.d.ts",
+  "deprecated": false,
+  "description": "Cross platform updater for electron applications",
+  "files": [
+    "out"
+  ],
+  "homepage": "https://github.com/electron-userland/electron-builder",
+  "license": "MIT",
+  "main": "out/main.js",
+  "name": "electron-updater",
   "publishConfig": {
     "tag": "next"
-  }
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/electron-userland/electron-builder.git"
+  },
+  "typings": "./out/main.d.ts",
+  "version": "3.1.2"
 }

+ 79 - 54
resources/app/node_modules/esprima/package.json

@@ -1,39 +1,41 @@
 {
-  "name": "esprima",
-  "description": "ECMAScript parsing infrastructure for multipurpose analysis",
-  "homepage": "http://esprima.org",
-  "main": "dist/esprima.js",
-  "bin": {
-    "esparse": "./bin/esparse.js",
-    "esvalidate": "./bin/esvalidate.js"
+  "_from": "esprima@^4.0.0",
+  "_id": "esprima@4.0.1",
+  "_inBundle": false,
+  "_integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+  "_location": "/esprima",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "esprima@^4.0.0",
+    "name": "esprima",
+    "escapedName": "esprima",
+    "rawSpec": "^4.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^4.0.0"
   },
-  "version": "4.0.1",
-  "files": [
-    "bin",
-    "dist/esprima.js"
+  "_requiredBy": [
+    "/js-yaml"
   ],
-  "engines": {
-    "node": ">=4"
-  },
+  "_resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+  "_shasum": "13b04cdb3e6c5d19df91ab6987a8695619b0aa71",
+  "_spec": "esprima@^4.0.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\js-yaml",
   "author": {
     "name": "Ariya Hidayat",
     "email": "ariya.hidayat@gmail.com"
   },
-  "maintainers": [
-    {
-      "name": "Ariya Hidayat",
-      "email": "ariya.hidayat@gmail.com",
-      "web": "http://ariya.ofilabs.com"
-    }
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jquery/esprima.git"
+  "bin": {
+    "esparse": "./bin/esparse.js",
+    "esvalidate": "./bin/esvalidate.js"
   },
   "bugs": {
     "url": "https://github.com/jquery/esprima/issues"
   },
-  "license": "BSD-2-Clause",
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "ECMAScript parsing infrastructure for multipurpose analysis",
   "devDependencies": {
     "codecov.io": "~0.1.6",
     "escomplex-js": "1.2.0",
@@ -62,6 +64,14 @@
     "unicode-8.0.0": "~0.7.0",
     "webpack": "~1.14.0"
   },
+  "engines": {
+    "node": ">=4"
+  },
+  "files": [
+    "bin",
+    "dist/esprima.js"
+  ],
+  "homepage": "http://esprima.org",
   "keywords": [
     "ast",
     "ecmascript",
@@ -70,43 +80,58 @@
     "parser",
     "syntax"
   ],
+  "license": "BSD-2-Clause",
+  "main": "dist/esprima.js",
+  "maintainers": [
+    {
+      "name": "Ariya Hidayat",
+      "email": "ariya.hidayat@gmail.com",
+      "url": "http://ariya.ofilabs.com"
+    }
+  ],
+  "name": "esprima",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/jquery/esprima.git"
+  },
   "scripts": {
+    "all-tests": "npm run verify-line-ending && npm run generate-fixtures && npm run unit-tests && npm run api-tests && npm run grammar-tests && npm run regression-tests && npm run hostile-env-tests",
+    "analyze-coverage": "istanbul cover test/unit-tests.js",
+    "api-tests": "mocha -R dot test/api-tests.js",
+    "appveyor": "npm run compile && npm run all-tests && npm run browser-tests",
+    "benchmark": "npm run benchmark-parser && npm run benchmark-tokenizer",
+    "benchmark-parser": "node -expose_gc test/benchmark-parser.js",
+    "benchmark-tokenizer": "node --expose_gc test/benchmark-tokenizer.js",
+    "browser-tests": "npm run compile && npm run generate-fixtures && cd test && karma start --single-run",
+    "check-coverage": "istanbul check-coverage --statement 100 --branch 100 --function 100",
     "check-version": "node test/check-version.js",
-    "tslint": "tslint src/*.ts",
+    "circleci": "npm test && npm run codecov && npm run downstream",
     "code-style": "tsfmt --verify src/*.ts && tsfmt --verify test/*.js",
-    "format-code": "tsfmt -r src/*.ts && tsfmt -r test/*.js",
+    "codecov": "istanbul report cobertura && codecov < ./coverage/cobertura-coverage.xml",
+    "compile": "tsc -p src/ && webpack && node tools/fixupbundle.js",
     "complexity": "node test/check-complexity.js",
-    "static-analysis": "npm run check-version && npm run tslint && npm run code-style && npm run complexity",
-    "hostile-env-tests": "node test/hostile-environment-tests.js",
-    "unit-tests": "node test/unit-tests.js",
-    "api-tests": "mocha -R dot test/api-tests.js",
+    "downstream": "node test/downstream.js",
+    "droneio": "npm run compile && npm run all-tests && npm run saucelabs",
+    "dynamic-analysis": "npm run analyze-coverage && npm run check-coverage",
+    "format-code": "tsfmt -r src/*.ts && tsfmt -r test/*.js",
+    "generate-fixtures": "node tools/generate-fixtures.js",
+    "generate-regex": "node tools/generate-identifier-regex.js",
+    "generate-xhtml-entities": "node tools/generate-xhtml-entities.js",
     "grammar-tests": "node test/grammar-tests.js",
+    "hostile-env-tests": "node test/hostile-environment-tests.js",
+    "prepublish": "npm run compile",
+    "profile": "node --prof test/profile.js && mv isolate*.log v8.log && node-tick-processor",
     "regression-tests": "node test/regression-tests.js",
-    "all-tests": "npm run verify-line-ending && npm run generate-fixtures && npm run unit-tests && npm run api-tests && npm run grammar-tests && npm run regression-tests && npm run hostile-env-tests",
-    "verify-line-ending": "node test/verify-line-ending.js",
-    "generate-fixtures": "node tools/generate-fixtures.js",
-    "browser-tests": "npm run compile && npm run generate-fixtures && cd test && karma start --single-run",
+    "saucelabs": "npm run saucelabs-evergreen && npm run saucelabs-ie && npm run saucelabs-safari",
     "saucelabs-evergreen": "cd test && karma start saucelabs-evergreen.conf.js",
-    "saucelabs-safari": "cd test && karma start saucelabs-safari.conf.js",
     "saucelabs-ie": "cd test && karma start saucelabs-ie.conf.js",
-    "saucelabs": "npm run saucelabs-evergreen && npm run saucelabs-ie && npm run saucelabs-safari",
-    "analyze-coverage": "istanbul cover test/unit-tests.js",
-    "check-coverage": "istanbul check-coverage --statement 100 --branch 100 --function 100",
-    "dynamic-analysis": "npm run analyze-coverage && npm run check-coverage",
-    "compile": "tsc -p src/ && webpack && node tools/fixupbundle.js",
+    "saucelabs-safari": "cd test && karma start saucelabs-safari.conf.js",
+    "static-analysis": "npm run check-version && npm run tslint && npm run code-style && npm run complexity",
     "test": "npm run compile && npm run all-tests && npm run static-analysis && npm run dynamic-analysis",
-    "prepublish": "npm run compile",
-    "profile": "node --prof test/profile.js && mv isolate*.log v8.log && node-tick-processor",
-    "benchmark-parser": "node -expose_gc test/benchmark-parser.js",
-    "benchmark-tokenizer": "node --expose_gc test/benchmark-tokenizer.js",
-    "benchmark": "npm run benchmark-parser && npm run benchmark-tokenizer",
-    "codecov": "istanbul report cobertura && codecov < ./coverage/cobertura-coverage.xml",
-    "downstream": "node test/downstream.js",
     "travis": "npm test",
-    "circleci": "npm test && npm run codecov && npm run downstream",
-    "appveyor": "npm run compile && npm run all-tests && npm run browser-tests",
-    "droneio": "npm run compile && npm run all-tests && npm run saucelabs",
-    "generate-regex": "node tools/generate-identifier-regex.js",
-    "generate-xhtml-entities": "node tools/generate-xhtml-entities.js"
-  }
+    "tslint": "tslint src/*.ts",
+    "unit-tests": "node test/unit-tests.js",
+    "verify-line-ending": "node test/verify-line-ending.js"
+  },
+  "version": "4.0.1"
 }

+ 40 - 7
resources/app/node_modules/fs-extra-p/package.json

@@ -1,20 +1,45 @@
 {
-  "name": "fs-extra-p",
-  "version": "4.6.1",
-  "description": "fs-extra module promisified with bluebird",
-  "main": "index.js",
-  "license": "MIT",
+  "_from": "fs-extra-p@^4.6.1",
+  "_id": "fs-extra-p@4.6.1",
+  "_inBundle": false,
+  "_integrity": "sha512-IsTMbUS0svZKZTvqF4vDS9c/L7Mw9n8nZQWWeSzAGacOSe+8CzowhUN0tdZEZFIJNP5HC7L9j3MMikz/G4hDeQ==",
+  "_location": "/fs-extra-p",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "fs-extra-p@^4.6.1",
+    "name": "fs-extra-p",
+    "escapedName": "fs-extra-p",
+    "rawSpec": "^4.6.1",
+    "saveSpec": null,
+    "fetchSpec": "^4.6.1"
+  },
+  "_requiredBy": [
+    "/builder-util-runtime",
+    "/electron-updater"
+  ],
+  "_resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.6.1.tgz",
+  "_shasum": "6156e0cc98097f415fcd17029578fc41c78b5092",
+  "_spec": "fs-extra-p@^4.6.1",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\electron-updater",
+  "bugs": {
+    "url": "https://github.com/develar/fs-extra-p/issues"
+  },
+  "bundleDependencies": false,
   "dependencies": {
     "bluebird-lst": "^1.0.5",
     "fs-extra": "^6.0.1"
   },
+  "deprecated": false,
+  "description": "fs-extra module promisified with bluebird",
   "engines": {
     "node": ">=6.0.0"
   },
   "files": [
     "index.*"
   ],
-  "repository": "develar/fs-extra-p",
+  "homepage": "https://github.com/develar/fs-extra-p#readme",
   "keywords": [
     "fs",
     "file",
@@ -39,5 +64,13 @@
     "move",
     "promise",
     "bluebird"
-  ]
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "fs-extra-p",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/develar/fs-extra-p.git"
+  },
+  "version": "4.6.1"
 }

+ 31 - 0
resources/app/node_modules/fs-extra/CHANGELOG.md

@@ -1,3 +1,34 @@
+6.0.1 / 2018-05-09
+------------------
+
+- Fix `fs.promises` `ExperimentalWarning` on Node v10.1.0 ([#578](https://github.com/jprichardson/node-fs-extra/pull/578))
+
+6.0.0 / 2018-05-01
+------------------
+
+- Drop support for Node.js versions 4, 5, & 7 ([#564](https://github.com/jprichardson/node-fs-extra/pull/564))
+- Rewrite `move` to use `fs.rename` where possible ([#549](https://github.com/jprichardson/node-fs-extra/pull/549))
+- Don't convert relative paths to absolute paths for `filter` ([#554](https://github.com/jprichardson/node-fs-extra/pull/554))
+- `copy*`'s behavior when `preserveTimestamps` is `false` has been OS-dependent since 5.0.0, but that's now explicitly noted in the docs ([#563](https://github.com/jprichardson/node-fs-extra/pull/563))
+- Fix subdirectory detection for `copy*` & `move*` ([#541](https://github.com/jprichardson/node-fs-extra/pull/541))
+- Handle case-insensitive paths correctly in `copy*` ([#568](https://github.com/jprichardson/node-fs-extra/pull/568))
+
+5.0.0 / 2017-12-11
+------------------
+
+Significant refactor of `copy()` & `copySync()`, including breaking changes. No changes to other functions in this release.
+
+Huge thanks to **[@manidlou](https://github.com/manidlou)** for doing most of the work on this release.
+
+- The `filter` option can no longer be a RegExp (must be a function). This was deprecated since fs-extra v1.0.0. [#512](https://github.com/jprichardson/node-fs-extra/pull/512)
+- `copy()`'s `filter` option can now be a function that returns a Promise. [#518](https://github.com/jprichardson/node-fs-extra/pull/518)
+- `copy()` & `copySync()` now use `fs.copyFile()`/`fs.copyFileSync()` in environments that support it (currently Node 8.5.0+). Older Node versions still get the old implementation. [#505](https://github.com/jprichardson/node-fs-extra/pull/505)
+- Don't allow copying a directory into itself. [#83](https://github.com/jprichardson/node-fs-extra/issues/83)
+- Handle copying between identical files. [#198](https://github.com/jprichardson/node-fs-extra/issues/198)
+- Error out when copying an empty folder to a path that already exists. [#464](https://github.com/jprichardson/node-fs-extra/issues/464)
+- Don't create `dest`'s parent if the `filter` function aborts the `copy()` operation. [#517](https://github.com/jprichardson/node-fs-extra/pull/517)
+- Fix `writeStream` not being closed if there was an error in `copy()`. [#516](https://github.com/jprichardson/node-fs-extra/pull/516)
+
 4.0.3 / 2017-12-05
 ------------------
 

+ 25 - 8
resources/app/node_modules/fs-extra/README.md

@@ -1,16 +1,15 @@
 Node.js: fs-extra
 =================
 
-`fs-extra` adds file system methods that aren't included in the native `fs` module and adds promise support to the `fs` methods. It should be a drop in replacement for `fs`.
+`fs-extra` adds file system methods that aren't included in the native `fs` module and adds promise support to the `fs` methods. It also uses [`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to prevent `EMFILE` errors. It should be a drop in replacement for `fs`.
 
-[![npm Package](https://img.shields.io/npm/v/fs-extra.svg?style=flat-square)](https://www.npmjs.org/package/fs-extra)
-[![build status](https://api.travis-ci.org/jprichardson/node-fs-extra.svg)](http://travis-ci.org/jprichardson/node-fs-extra)
+[![npm Package](https://img.shields.io/npm/v/fs-extra.svg)](https://www.npmjs.org/package/fs-extra)
+[![License](https://img.shields.io/npm/l/express.svg)](https://github.com/jprichardson/node-fs-extra/blob/master/LICENSE)
+[![build status](https://img.shields.io/travis/jprichardson/node-fs-extra/master.svg)](http://travis-ci.org/jprichardson/node-fs-extra)
 [![windows Build status](https://img.shields.io/appveyor/ci/jprichardson/node-fs-extra/master.svg?label=windows%20build)](https://ci.appveyor.com/project/jprichardson/node-fs-extra/branch/master)
 [![downloads per month](http://img.shields.io/npm/dm/fs-extra.svg)](https://www.npmjs.org/package/fs-extra)
-[![Coverage Status](https://img.shields.io/coveralls/jprichardson/node-fs-extra.svg)](https://coveralls.io/r/jprichardson/node-fs-extra)
-
-<a href="https://github.com/feross/standard"><img src="https://cdn.rawgit.com/feross/standard/master/sticker.svg" alt="Standard JavaScript" width="100"></a>
-
+[![Coverage Status](https://img.shields.io/coveralls/github/jprichardson/node-fs-extra/master.svg)](https://coveralls.io/github/jprichardson/node-fs-extra)
+[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
 
 Why?
 ----
@@ -58,12 +57,14 @@ const fs = require('fs')
 const fse = require('fs-extra')
 ```
 
-Sync vs Async
+Sync vs Async vs Async/Await
 -------------
 Most methods are async by default. All async methods will return a promise if the callback isn't passed.
 
 Sync methods on the other hand will throw if an error occurs.
 
+Also Async/Await will throw an error if one occurs.
+
 Example:
 
 ```js
@@ -87,6 +88,18 @@ try {
 } catch (err) {
   console.error(err)
 }
+
+// Async/Await:
+async function copyFiles () {
+  try {
+    await fs.copy('/tmp/myfile', '/tmp/mynewfile')
+    console.log('success!')
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+copyFiles()
 ```
 
 
@@ -148,9 +161,13 @@ If you like TypeScript, you can use `fs-extra` with it: https://github.com/Defin
 
 If you want to watch for changes to files or directories, then you should use [chokidar](https://github.com/paulmillr/chokidar).
 
+### Obtain Filesystem (Devices, Partitions) Information
+
+[fs-filesystem](https://github.com/arthurintelligence/node-fs-filesystem) allows you to read the state of the filesystem of the host on which it is run. It returns information about both the devices and the partitions (volumes) of the system.
 
 ### Misc.
 
+- [fs-extra-debug](https://github.com/jdxcode/fs-extra-debug) - Send your fs-extra calls to [debug](https://npmjs.org/package/debug).
 - [mfs](https://github.com/cadorn/mfs) - Monitor your fs-extra calls.
 
 

+ 4 - 4
resources/app/node_modules/fs-extra/docs/copy-sync.md

@@ -2,14 +2,14 @@
 
 Copy a file or directory. The directory can have contents. Like `cp -r`.
 
-- `src` `<String>`
-- `dest` `<String>`
+- `src` `<String>` Note that if `src` is a directory it will copy everything inside of this directory, not the entire directory itself (see [issue #537](https://github.com/jprichardson/node-fs-extra/issues/537)).
+- `dest` `<String>` Note that if `src` is a file, `dest` cannot be a directory (see [issue #323](https://github.com/jprichardson/node-fs-extra/issues/323)).
 - `options` `<Object>`
   - `overwrite` `<boolean>`: overwrite existing file or directory, default is `true`. _Note that the copy operation will silently fail if you set this to `false` and the destination exists._ Use the `errorOnExist` option to change this behavior.
   - `errorOnExist` `<boolean>`: when `overwrite` is `false` and the destination exists, throw an error. Default is `false`.
   - `dereference` `<boolean>`: dereference symlinks, default is `false`.
-  - `preserveTimestamps` `<boolean>`: will set last modification and access times to the ones of the original source files, default is `false`.
-  - `filter` `<Function>`: Function to filter copied files. Return `true` to include, `false` to exclude. This can also be a RegExp, however this is deprecated (See [issue #239](https://github.com/jprichardson/node-fs-extra/issues/239) for background).
+  - `preserveTimestamps` `<boolean>`: When true, will set last modification and access times to the ones of the original source files. When false, timestamp behavior is OS-dependent. Default is `false`.
+  - `filter` `<Function>`: Function to filter copied files. Return `true` to include, `false` to exclude.
 
 ## Example:
 

+ 17 - 4
resources/app/node_modules/fs-extra/docs/copy.md

@@ -2,14 +2,14 @@
 
 Copy a file or directory. The directory can have contents. Like `cp -r`.
 
-- `src` `<String>`
+- `src` `<String>` Note that if `src` is a directory it will copy everything inside of this directory, not the entire directory itself (see [issue #537](https://github.com/jprichardson/node-fs-extra/issues/537)).
 - `dest` `<String>` Note that if `src` is a file, `dest` cannot be a directory (see [issue #323](https://github.com/jprichardson/node-fs-extra/issues/323)).
 - `options` `<Object>`
   - `overwrite` `<boolean>`: overwrite existing file or directory, default is `true`. _Note that the copy operation will silently fail if you set this to `false` and the destination exists._ Use the `errorOnExist` option to change this behavior.
   - `errorOnExist` `<boolean>`: when `overwrite` is `false` and the destination exists, throw an error. Default is `false`.
   - `dereference` `<boolean>`: dereference symlinks, default is `false`.
-  - `preserveTimestamps` `<boolean>`: will set last modification and access times to the ones of the original source files, default is `false`.
-  - `filter` `<Function>`: Function to filter copied files. Return `true` to include, `false` to exclude. This can also be a RegExp, however this is deprecated (See [issue #239](https://github.com/jprichardson/node-fs-extra/issues/239) for background).
+  - `preserveTimestamps` `<boolean>`: When true, will set last modification and access times to the ones of the original source files. When false, timestamp behavior is OS-dependent. Default is `false`.
+  - `filter` `<Function>`: Function to filter copied files. Return `true` to include, `false` to exclude. Can also return a `Promise` that resolves to `true` or `false` (or pass in an `async` function).
 - `callback` `<Function>`
 
 ## Example:
@@ -17,6 +17,7 @@ Copy a file or directory. The directory can have contents. Like `cp -r`.
 ```js
 const fs = require('fs-extra')
 
+// With a callback:
 fs.copy('/tmp/myfile', '/tmp/mynewfile', err => {
   if (err) return console.error(err)
 
@@ -29,7 +30,7 @@ fs.copy('/tmp/mydir', '/tmp/mynewdir', err => {
   console.log('success!')
 }) // copies directory, even if it has subdirectories or files
 
-// Promise usage:
+// With Promises:
 fs.copy('/tmp/myfile', '/tmp/mynewfile')
 .then(() => {
   console.log('success!')
@@ -37,6 +38,18 @@ fs.copy('/tmp/myfile', '/tmp/mynewfile')
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example () {
+  try {
+    await fs.copy('/tmp/myfile', '/tmp/mynewfile')
+    console.log('success!')
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example()
 ```
 
 **Using filter function**

+ 14 - 1
resources/app/node_modules/fs-extra/docs/emptyDir.md

@@ -13,13 +13,14 @@ Ensures that a directory is empty. Deletes directory contents if the directory i
 const fs = require('fs-extra')
 
 // assume this directory has a lot of files and folders
+// With a callback:
 fs.emptyDir('/tmp/some/dir', err => {
   if (err) return console.error(err)
 
   console.log('success!')
 })
 
-// With promises
+// With Promises:
 fs.emptyDir('/tmp/some/dir')
 .then(() => {
   console.log('success!')
@@ -27,4 +28,16 @@ fs.emptyDir('/tmp/some/dir')
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example () {
+  try {
+    await fs.emptyDir('/tmp/some/dir')
+    console.log('success!')
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example()
 ```

+ 14 - 0
resources/app/node_modules/fs-extra/docs/ensureDir.md

@@ -13,6 +13,8 @@ Ensures that the directory exists. If the directory structure does not exist, it
 const fs = require('fs-extra')
 
 const dir = '/tmp/this/path/does/not/exist'
+
+// With a callback:
 fs.ensureDir(dir, err => {
   console.log(err) // => null
   // dir has now been created, including the directory it is to be placed in
@@ -26,4 +28,16 @@ fs.ensureDir(dir)
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example (directory) {
+  try {
+    await fs.ensureDir(directory)
+    console.log('success!')
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example(dir)
 ```

+ 14 - 0
resources/app/node_modules/fs-extra/docs/ensureFile.md

@@ -13,6 +13,8 @@ Ensures that the file exists. If the file that is requested to be created is in
 const fs = require('fs-extra')
 
 const file = '/tmp/this/path/does/not/exist/file.txt'
+
+// With a callback:
 fs.ensureFile(file, err => {
   console.log(err) // => null
   // file has now been created, including the directory it is to be placed in
@@ -26,4 +28,16 @@ fs.ensureFile(file)
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example (f) {
+  try {
+    await fs.ensureFile(f)
+    console.log('success!')
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example(file)
 ```

+ 14 - 0
resources/app/node_modules/fs-extra/docs/ensureLink.md

@@ -13,6 +13,8 @@ const fs = require('fs-extra')
 
 const srcpath = '/tmp/file.txt'
 const dstpath = '/tmp/this/path/does/not/exist/file.txt'
+
+// With a callback:
 fs.ensureLink(srcpath, dstpath, err => {
   console.log(err) // => null
   // link has now been created, including the directory it is to be placed in
@@ -26,4 +28,16 @@ fs.ensureLink(srcpath, dstpath)
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example (src, dest) {
+  try {
+    await fs.ensureLink(src, dest)
+    console.log('success!')
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example(srcpath, dstpath)
 ```

+ 14 - 0
resources/app/node_modules/fs-extra/docs/ensureSymlink.md

@@ -14,6 +14,8 @@ const fs = require('fs-extra')
 
 const srcpath = '/tmp/file.txt'
 const dstpath = '/tmp/this/path/does/not/exist/file.txt'
+
+// With a callback:
 fs.ensureSymlink(srcpath, dstpath, err => {
   console.log(err) // => null
   // symlink has now been created, including the directory it is to be placed in
@@ -27,4 +29,16 @@ fs.ensureSymlink(srcpath, dstpath)
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example (src, dest) {
+  try {
+    await fs.ensureSymlink(src, dest)
+    console.log('success!')
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example(srcpath, dstpath)
 ```

+ 4 - 4
resources/app/node_modules/fs-extra/docs/fs-read-write.md

@@ -9,14 +9,14 @@ Here's the example promise usage:
 ## `fs.read()`
 
 ```js
-// Basic promises
+// With Promises:
 fs.read(fd, buffer, offset, length, position)
   .then(results => {
     console.log(results)
     // { bytesRead: 20, buffer: <Buffer 0f 34 5d ...> }
   })
 
-// Async/await usage:
+// With async/await:
 async function example () {
   const { bytesRead, buffer } = await fs.read(fd, Buffer.alloc(length), offset, length, position)
 }
@@ -25,14 +25,14 @@ async function example () {
 ## `fs.write()`
 
 ```js
-// Basic promises
+// With Promises:
 fs.write(fd, buffer, offset, length, position)
   .then(results => {
     console.log(results)
     // { bytesWritten: 20, buffer: <Buffer 0f 34 5d ...> }
   })
 
-// Async/await usage:
+// With async/await:
 async function example () {
   const { bytesWritten, buffer } = await fs.write(fd, Buffer.alloc(length), offset, length, position)
 }

+ 19 - 2
resources/app/node_modules/fs-extra/docs/move.md

@@ -13,19 +13,36 @@ Moves a file or directory, even across devices.
 ```js
 const fs = require('fs-extra')
 
-fs.move('/tmp/somefile', '/tmp/does/not/exist/yet/somefile', err => {
+const srcpath = '/tmp/file.txt'
+const dstpath = '/tmp/this/path/does/not/exist/file.txt'
+
+// With a callback:
+fs.move(srcpath, dstpath, err => {
   if (err) return console.error(err)
 
   console.log('success!')
 })
 
-fs.move('/tmp/somefile', '/tmp/does/not/exist/yet/somefile')
+// With Promises:
+fs.move(srcpath, dstpath)
 .then(() => {
   console.log('success!')
 })
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example (src, dest) {
+  try {
+    await fs.move(srcpath, dstpath)
+    console.log('success!')
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example(srcpath, dstpath)
 ```
 
 **Using `overwrite` option**

+ 17 - 0
resources/app/node_modules/fs-extra/docs/outputFile.md

@@ -13,6 +13,8 @@ Almost the same as `writeFile` (i.e. it [overwrites](http://pages.citebite.com/v
 const fs = require('fs-extra')
 
 const file = '/tmp/this/path/does/not/exist/file.txt'
+
+// With a callback:
 fs.outputFile(file, 'hello!', err => {
   console.log(err) // => null
 
@@ -31,4 +33,19 @@ fs.outputFile(file, 'hello!')
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example (f) {
+  try {
+    await fs.outputFile(f, 'hello!')
+
+    const data = await fs.readFile(f, 'utf8')
+
+    console.log(data) // => hello!
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example(file)
 ```

+ 17 - 0
resources/app/node_modules/fs-extra/docs/outputJson.md

@@ -19,6 +19,8 @@ Almost the same as [`writeJson`](writeJson.md), except that if the directory doe
 const fs = require('fs-extra')
 
 const file = '/tmp/this/path/does/not/exist/file.json'
+
+// With a callback:
 fs.outputJson(file, {name: 'JP'}, err => {
   console.log(err) // => null
 
@@ -37,4 +39,19 @@ fs.outputJson(file, {name: 'JP'})
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example (f) {
+  try {
+    await fs.outputJson(f, {name: 'JP'})
+
+    const data = await fs.readJson(f)
+
+    console.log(data.name) // => JP
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example(file)
 ```

+ 15 - 4
resources/app/node_modules/fs-extra/docs/pathExists.md

@@ -11,12 +11,23 @@ Test whether or not the given path exists by checking with the file system. Like
 const fs = require('fs-extra')
 
 const file = '/tmp/this/path/does/not/exist/file.txt'
-// Promise usage:
-fs.pathExists(file)
-  .then(exists => console.log(exists)) // => false
-// Callback usage:
+
+// With a callback:
 fs.pathExists(file, (err, exists) => {
   console.log(err) // => null
   console.log(exists) // => false
 })
+
+// Promise usage:
+fs.pathExists(file)
+  .then(exists => console.log(exists)) // => false
+
+// With async/await:
+async function example (f) {
+  const exists = await fs.pathExists(f)
+
+  console.log(exists) // => false
+}
+
+example(file)
 ```

+ 26 - 2
resources/app/node_modules/fs-extra/docs/readJson.md

@@ -14,13 +14,14 @@ that you'd pass to [`jsonFile.readFile`](https://github.com/jprichardson/node-js
 ```js
 const fs = require('fs-extra')
 
+// With a callback:
 fs.readJson('./package.json', (err, packageObj) => {
   if (err) console.error(err)
 
   console.log(packageObj.version) // => 0.1.3
 })
 
-// Promise Usage
+// With Promises:
 fs.readJson('./package.json')
 .then(packageObj => {
   console.log(packageObj.version) // => 0.1.3
@@ -28,6 +29,19 @@ fs.readJson('./package.json')
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example () {
+  try {
+    const packageObj = await fs.readJson('./package.json')
+
+    console.log(packageObj.version) // => 0.1.3
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example()
 ```
 
 ---
@@ -41,13 +55,14 @@ const file = '/tmp/some-invalid.json'
 const data = '{not valid JSON'
 fs.writeFileSync(file, data)
 
+// With a callback:
 fs.readJson(file, { throws: false }, (err, obj) => {
   if (err) console.error(err)
 
   console.log(obj) // => null
 })
 
-// Promise Usage
+// Wtih Promises:
 fs.readJson(file, { throws: false })
 .then(obj => {
   console.log(obj) // => null
@@ -55,4 +70,13 @@ fs.readJson(file, { throws: false })
 .catch(err => {
   console.error(err) // Not called
 })
+
+// With async/await:
+async function example (f) {
+  const obj = await fs.readJson(f, { throws: false })
+
+  console.log(obj) // => null
+}
+
+example(file)
 ```

+ 14 - 1
resources/app/node_modules/fs-extra/docs/remove.md

@@ -11,6 +11,7 @@ Removes a file or directory. The directory can have contents. Like `rm -rf`.
 const fs = require('fs-extra')
 
 // remove file
+// With a callback:
 fs.remove('/tmp/myfile', err => {
   if (err) return console.error(err)
 
@@ -23,7 +24,7 @@ fs.remove('/home/jprichardson', err => {
   console.log('success!') // I just deleted my entire HOME directory.
 })
 
-// Promise Usage
+// With Promises:
 fs.remove('/tmp/myfile')
 .then(() => {
   console.log('success!')
@@ -31,4 +32,16 @@ fs.remove('/tmp/myfile')
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example (src, dest) {
+  try {
+    await fs.remove('/tmp/myfile')
+    console.log('success!')
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example()
 ```

+ 14 - 1
resources/app/node_modules/fs-extra/docs/writeJson.md

@@ -18,13 +18,14 @@ Writes an object to a JSON file.
 ```js
 const fs = require('fs-extra')
 
+// With a callback:
 fs.writeJson('./package.json', {name: 'fs-extra'}, err => {
   if (err) return console.error(err)
 
   console.log('success!')
 })
 
-// With Promises
+// With Promises:
 fs.writeJson('./package.json', {name: 'fs-extra'})
 .then(() => {
   console.log('success!')
@@ -32,6 +33,18 @@ fs.writeJson('./package.json', {name: 'fs-extra'})
 .catch(err => {
   console.error(err)
 })
+
+// With async/await:
+async function example () {
+  try {
+    await fs.writeJson('./package.json', {name: 'fs-extra'})
+    console.log('success!')
+  } catch (err) {
+    console.error(err)
+  }
+}
+
+example()
 ```
 
 ---

+ 203 - 46
resources/app/node_modules/fs-extra/lib/copy-sync/copy-sync.js

@@ -2,60 +2,217 @@
 
 const fs = require('graceful-fs')
 const path = require('path')
-const copyFileSync = require('./copy-file-sync')
-const mkdir = require('../mkdirs')
+const mkdirpSync = require('../mkdirs').mkdirsSync
+const utimesSync = require('../util/utimes.js').utimesMillisSync
 
-function copySync (src, dest, options) {
-  if (typeof options === 'function' || options instanceof RegExp) {
-    options = {filter: options}
-  }
-
-  options = options || {}
-  options.recursive = !!options.recursive
+const notExist = Symbol('notExist')
+const existsReg = Symbol('existsReg')
 
-  // default to true for now
-  options.clobber = 'clobber' in options ? !!options.clobber : true
-  // overwrite falls back to clobber
-  options.overwrite = 'overwrite' in options ? !!options.overwrite : options.clobber
-  options.dereference = 'dereference' in options ? !!options.dereference : false
-  options.preserveTimestamps = 'preserveTimestamps' in options ? !!options.preserveTimestamps : false
+function copySync (src, dest, opts) {
+  if (typeof opts === 'function') {
+    opts = {filter: opts}
+  }
 
-  options.filter = options.filter || function () { return true }
+  opts = opts || {}
+  opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now
+  opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber
 
-  // Warn about using preserveTimestamps on 32-bit node:
-  if (options.preserveTimestamps && process.arch === 'ia32') {
+  // Warn about using preserveTimestamps on 32-bit node
+  if (opts.preserveTimestamps && process.arch === 'ia32') {
     console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n
     see https://github.com/jprichardson/node-fs-extra/issues/269`)
   }
 
-  const stats = (options.recursive && !options.dereference) ? fs.lstatSync(src) : fs.statSync(src)
-  const destFolder = path.dirname(dest)
-  const destFolderExists = fs.existsSync(destFolder)
-  let performCopy = false
-
-  if (options.filter instanceof RegExp) {
-    console.warn('Warning: fs-extra: Passing a RegExp filter is deprecated, use a function')
-    performCopy = options.filter.test(src)
-  } else if (typeof options.filter === 'function') performCopy = options.filter(src, dest)
-
-  if (stats.isFile() && performCopy) {
-    if (!destFolderExists) mkdir.mkdirsSync(destFolder)
-    copyFileSync(src, dest, {
-      overwrite: options.overwrite,
-      errorOnExist: options.errorOnExist,
-      preserveTimestamps: options.preserveTimestamps
-    })
-  } else if (stats.isDirectory() && performCopy) {
-    if (!fs.existsSync(dest)) mkdir.mkdirsSync(dest)
-    const contents = fs.readdirSync(src)
-    contents.forEach(content => {
-      const opts = options
-      opts.recursive = true
-      copySync(path.join(src, content), path.join(dest, content), opts)
-    })
-  } else if (options.recursive && stats.isSymbolicLink() && performCopy) {
-    const srcPath = fs.readlinkSync(src)
-    fs.symlinkSync(srcPath, dest)
+  const resolvedDest = checkPaths(src, dest)
+
+  if (opts.filter && !opts.filter(src, dest)) return
+
+  const destParent = path.dirname(dest)
+  if (!fs.existsSync(destParent)) mkdirpSync(destParent)
+  return startCopy(resolvedDest, src, dest, opts)
+}
+
+function startCopy (resolvedDest, src, dest, opts) {
+  if (opts.filter && !opts.filter(src, dest)) return
+  return getStats(resolvedDest, src, dest, opts)
+}
+
+function getStats (resolvedDest, src, dest, opts) {
+  const statSync = opts.dereference ? fs.statSync : fs.lstatSync
+  const st = statSync(src)
+
+  if (st.isDirectory()) return onDir(st, resolvedDest, src, dest, opts)
+  else if (st.isFile() ||
+           st.isCharacterDevice() ||
+           st.isBlockDevice()) return onFile(st, resolvedDest, src, dest, opts)
+  else if (st.isSymbolicLink()) return onLink(resolvedDest, src, dest, opts)
+}
+
+function onFile (srcStat, resolvedDest, src, dest, opts) {
+  if (resolvedDest === notExist) return copyFile(srcStat, src, dest, opts)
+  else if (resolvedDest === existsReg) return mayCopyFile(srcStat, src, dest, opts)
+  return mayCopyFile(srcStat, src, dest, opts)
+}
+
+function mayCopyFile (srcStat, src, dest, opts) {
+  if (opts.overwrite) {
+    fs.unlinkSync(dest)
+    return copyFile(srcStat, src, dest, opts)
+  } else if (opts.errorOnExist) {
+    throw new Error(`'${dest}' already exists`)
+  }
+}
+
+function copyFile (srcStat, src, dest, opts) {
+  if (typeof fs.copyFileSync === 'function') {
+    fs.copyFileSync(src, dest)
+    fs.chmodSync(dest, srcStat.mode)
+    if (opts.preserveTimestamps) {
+      return utimesSync(dest, srcStat.atime, srcStat.mtime)
+    }
+    return
+  }
+  return copyFileFallback(srcStat, src, dest, opts)
+}
+
+function copyFileFallback (srcStat, src, dest, opts) {
+  const BUF_LENGTH = 64 * 1024
+  const _buff = require('../util/buffer')(BUF_LENGTH)
+
+  const fdr = fs.openSync(src, 'r')
+  const fdw = fs.openSync(dest, 'w', srcStat.mode)
+  let pos = 0
+
+  while (pos < srcStat.size) {
+    const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)
+    fs.writeSync(fdw, _buff, 0, bytesRead)
+    pos += bytesRead
+  }
+
+  if (opts.preserveTimestamps) fs.futimesSync(fdw, srcStat.atime, srcStat.mtime)
+
+  fs.closeSync(fdr)
+  fs.closeSync(fdw)
+}
+
+function onDir (srcStat, resolvedDest, src, dest, opts) {
+  if (resolvedDest === notExist) {
+    if (isSrcSubdir(src, dest)) {
+      throw new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`)
+    }
+    return mkDirAndCopy(srcStat, src, dest, opts)
+  } else if (resolvedDest === existsReg) {
+    if (isSrcSubdir(src, dest)) {
+      throw new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`)
+    }
+    return mayCopyDir(src, dest, opts)
+  }
+  return copyDir(src, dest, opts)
+}
+
+function mayCopyDir (src, dest, opts) {
+  if (!fs.statSync(dest).isDirectory()) {
+    throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)
+  }
+  return copyDir(src, dest, opts)
+}
+
+function mkDirAndCopy (srcStat, src, dest, opts) {
+  fs.mkdirSync(dest, srcStat.mode)
+  fs.chmodSync(dest, srcStat.mode)
+  return copyDir(src, dest, opts)
+}
+
+function copyDir (src, dest, opts) {
+  fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts))
+}
+
+function copyDirItem (item, src, dest, opts) {
+  const srcItem = path.join(src, item)
+  const destItem = path.join(dest, item)
+  const resolvedDest = checkPaths(srcItem, destItem)
+  return startCopy(resolvedDest, srcItem, destItem, opts)
+}
+
+function onLink (resolvedDest, src, dest, opts) {
+  let resolvedSrc = fs.readlinkSync(src)
+
+  if (opts.dereference) {
+    resolvedSrc = path.resolve(process.cwd(), resolvedSrc)
+  }
+
+  if (resolvedDest === notExist || resolvedDest === existsReg) {
+    // if dest already exists, fs throws error anyway,
+    // so no need to guard against it here.
+    return fs.symlinkSync(resolvedSrc, dest)
+  } else {
+    if (opts.dereference) {
+      resolvedDest = path.resolve(process.cwd(), resolvedDest)
+    }
+    if (pathsAreIdentical(resolvedSrc, resolvedDest)) return
+
+    // prevent copy if src is a subdir of dest since unlinking
+    // dest in this case would result in removing src contents
+    // and therefore a broken symlink would be created.
+    if (fs.statSync(dest).isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {
+      throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
+    }
+    return copyLink(resolvedSrc, dest)
+  }
+}
+
+function copyLink (resolvedSrc, dest) {
+  fs.unlinkSync(dest)
+  return fs.symlinkSync(resolvedSrc, dest)
+}
+
+// return true if dest is a subdir of src, otherwise false.
+// extract dest base dir and check if that is the same as src basename.
+function isSrcSubdir (src, dest) {
+  const srcArray = path.resolve(src).split(path.sep)
+  const destArray = path.resolve(dest).split(path.sep)
+
+  return srcArray.reduce((acc, current, i) => {
+    return acc && destArray[i] === current
+  }, true)
+}
+
+// check if dest exists and is a symlink.
+function checkDest (dest) {
+  let resolvedPath
+  try {
+    resolvedPath = fs.readlinkSync(dest)
+  } catch (err) {
+    if (err.code === 'ENOENT') return notExist
+
+    // dest exists and is a regular file or directory, Windows may throw UNKNOWN error.
+    if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return existsReg
+
+    throw err
+  }
+  return resolvedPath // dest exists and is a symlink
+}
+
+function pathsAreIdentical (src, dest) {
+  const os = process.platform
+  const resolvedSrc = path.resolve(src)
+  const resolvedDest = path.resolve(dest)
+  // case-insensitive paths
+  if (os === 'darwin' || os === 'win32') {
+    return resolvedSrc.toLowerCase() === resolvedDest.toLowerCase()
+  }
+  return resolvedSrc === resolvedDest
+}
+
+function checkPaths (src, dest) {
+  const resolvedDest = checkDest(dest)
+  if (resolvedDest === notExist || resolvedDest === existsReg) {
+    if (pathsAreIdentical(src, dest)) throw new Error('Source and destination must not be the same.')
+    return resolvedDest
+  } else {
+    // check resolved dest path if dest is a symlink
+    if (pathsAreIdentical(src, resolvedDest)) throw new Error('Source and destination must not be the same.')
+    return resolvedDest
   }
 }
 

+ 2 - 0
resources/app/node_modules/fs-extra/lib/copy-sync/index.js

@@ -1,3 +1,5 @@
+'use strict'
+
 module.exports = {
   copySync: require('./copy-sync')
 }

+ 255 - 33
resources/app/node_modules/fs-extra/lib/copy/copy.js

@@ -2,52 +2,274 @@
 
 const fs = require('graceful-fs')
 const path = require('path')
-const ncp = require('./ncp')
-const mkdir = require('../mkdirs')
+const mkdirp = require('../mkdirs').mkdirs
 const pathExists = require('../path-exists').pathExists
+const utimes = require('../util/utimes').utimesMillis
 
-function copy (src, dest, options, callback) {
-  if (typeof options === 'function' && !callback) {
-    callback = options
-    options = {}
-  } else if (typeof options === 'function' || options instanceof RegExp) {
-    options = {filter: options}
+const notExist = Symbol('notExist')
+const existsReg = Symbol('existsReg')
+
+function copy (src, dest, opts, cb) {
+  if (typeof opts === 'function' && !cb) {
+    cb = opts
+    opts = {}
+  } else if (typeof opts === 'function') {
+    opts = {filter: opts}
   }
-  callback = callback || function () {}
-  options = options || {}
 
-  // Warn about using preserveTimestamps on 32-bit node:
-  if (options.preserveTimestamps && process.arch === 'ia32') {
+  cb = cb || function () {}
+  opts = opts || {}
+
+  opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now
+  opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber
+
+  // Warn about using preserveTimestamps on 32-bit node
+  if (opts.preserveTimestamps && process.arch === 'ia32') {
     console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n
     see https://github.com/jprichardson/node-fs-extra/issues/269`)
   }
 
-  // don't allow src and dest to be the same
-  const basePath = process.cwd()
-  const currentPath = path.resolve(basePath, src)
-  const targetPath = path.resolve(basePath, dest)
-  if (currentPath === targetPath) return callback(new Error('Source and destination must not be the same.'))
+  checkPaths(src, dest, (err, resolvedDest) => {
+    if (err) return cb(err)
+    if (opts.filter) return handleFilter(checkParentDir, resolvedDest, src, dest, opts, cb)
+    return checkParentDir(resolvedDest, src, dest, opts, cb)
+  })
+}
 
-  fs.lstat(src, (err, stats) => {
-    if (err) return callback(err)
+function checkParentDir (resolvedDest, src, dest, opts, cb) {
+  const destParent = path.dirname(dest)
+  pathExists(destParent, (err, dirExists) => {
+    if (err) return cb(err)
+    if (dirExists) return startCopy(resolvedDest, src, dest, opts, cb)
+    mkdirp(destParent, err => {
+      if (err) return cb(err)
+      return startCopy(resolvedDest, src, dest, opts, cb)
+    })
+  })
+}
 
-    let dir = null
-    if (stats.isDirectory()) {
-      const parts = dest.split(path.sep)
-      parts.pop()
-      dir = parts.join(path.sep)
-    } else {
-      dir = path.dirname(dest)
+function startCopy (resolvedDest, src, dest, opts, cb) {
+  if (opts.filter) return handleFilter(getStats, resolvedDest, src, dest, opts, cb)
+  return getStats(resolvedDest, src, dest, opts, cb)
+}
+
+function handleFilter (onInclude, resolvedDest, src, dest, opts, cb) {
+  Promise.resolve(opts.filter(src, dest)).then(include => {
+    if (include) {
+      if (resolvedDest) return onInclude(resolvedDest, src, dest, opts, cb)
+      return onInclude(src, dest, opts, cb)
     }
+    return cb()
+  }, error => cb(error))
+}
 
-    pathExists(dir, (err, dirExists) => {
-      if (err) return callback(err)
-      if (dirExists) return ncp(src, dest, options, callback)
-      mkdir.mkdirs(dir, err => {
-        if (err) return callback(err)
-        ncp(src, dest, options, callback)
-      })
+function getStats (resolvedDest, src, dest, opts, cb) {
+  const stat = opts.dereference ? fs.stat : fs.lstat
+  stat(src, (err, st) => {
+    if (err) return cb(err)
+
+    if (st.isDirectory()) return onDir(st, resolvedDest, src, dest, opts, cb)
+    else if (st.isFile() ||
+             st.isCharacterDevice() ||
+             st.isBlockDevice()) return onFile(st, resolvedDest, src, dest, opts, cb)
+    else if (st.isSymbolicLink()) return onLink(resolvedDest, src, dest, opts, cb)
+  })
+}
+
+function onFile (srcStat, resolvedDest, src, dest, opts, cb) {
+  if (resolvedDest === notExist) return copyFile(srcStat, src, dest, opts, cb)
+  else if (resolvedDest === existsReg) return mayCopyFile(srcStat, src, dest, opts, cb)
+  return mayCopyFile(srcStat, src, dest, opts, cb)
+}
+
+function mayCopyFile (srcStat, src, dest, opts, cb) {
+  if (opts.overwrite) {
+    fs.unlink(dest, err => {
+      if (err) return cb(err)
+      return copyFile(srcStat, src, dest, opts, cb)
     })
+  } else if (opts.errorOnExist) {
+    return cb(new Error(`'${dest}' already exists`))
+  } else return cb()
+}
+
+function copyFile (srcStat, src, dest, opts, cb) {
+  if (typeof fs.copyFile === 'function') {
+    return fs.copyFile(src, dest, err => {
+      if (err) return cb(err)
+      return setDestModeAndTimestamps(srcStat, dest, opts, cb)
+    })
+  }
+  return copyFileFallback(srcStat, src, dest, opts, cb)
+}
+
+function copyFileFallback (srcStat, src, dest, opts, cb) {
+  const rs = fs.createReadStream(src)
+  rs.on('error', err => cb(err)).once('open', () => {
+    const ws = fs.createWriteStream(dest, { mode: srcStat.mode })
+    ws.on('error', err => cb(err))
+      .on('open', () => rs.pipe(ws))
+      .once('close', () => setDestModeAndTimestamps(srcStat, dest, opts, cb))
+  })
+}
+
+function setDestModeAndTimestamps (srcStat, dest, opts, cb) {
+  fs.chmod(dest, srcStat.mode, err => {
+    if (err) return cb(err)
+    if (opts.preserveTimestamps) {
+      return utimes(dest, srcStat.atime, srcStat.mtime, cb)
+    }
+    return cb()
+  })
+}
+
+function onDir (srcStat, resolvedDest, src, dest, opts, cb) {
+  if (resolvedDest === notExist) {
+    if (isSrcSubdir(src, dest)) {
+      return cb(new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`))
+    }
+    return mkDirAndCopy(srcStat, src, dest, opts, cb)
+  } else if (resolvedDest === existsReg) {
+    if (isSrcSubdir(src, dest)) {
+      return cb(new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`))
+    }
+    return mayCopyDir(src, dest, opts, cb)
+  }
+  return copyDir(src, dest, opts, cb)
+}
+
+function mayCopyDir (src, dest, opts, cb) {
+  fs.stat(dest, (err, st) => {
+    if (err) return cb(err)
+    if (!st.isDirectory()) {
+      return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))
+    }
+    return copyDir(src, dest, opts, cb)
+  })
+}
+
+function mkDirAndCopy (srcStat, src, dest, opts, cb) {
+  fs.mkdir(dest, srcStat.mode, err => {
+    if (err) return cb(err)
+    fs.chmod(dest, srcStat.mode, err => {
+      if (err) return cb(err)
+      return copyDir(src, dest, opts, cb)
+    })
+  })
+}
+
+function copyDir (src, dest, opts, cb) {
+  fs.readdir(src, (err, items) => {
+    if (err) return cb(err)
+    return copyDirItems(items, src, dest, opts, cb)
+  })
+}
+
+function copyDirItems (items, src, dest, opts, cb) {
+  const item = items.pop()
+  if (!item) return cb()
+  return copyDirItem(items, item, src, dest, opts, cb)
+}
+
+function copyDirItem (items, item, src, dest, opts, cb) {
+  const srcItem = path.join(src, item)
+  const destItem = path.join(dest, item)
+  checkPaths(srcItem, destItem, (err, resolvedDest) => {
+    if (err) return cb(err)
+    startCopy(resolvedDest, srcItem, destItem, opts, err => {
+      if (err) return cb(err)
+      return copyDirItems(items, src, dest, opts, cb)
+    })
+  })
+}
+
+function onLink (resolvedDest, src, dest, opts, cb) {
+  fs.readlink(src, (err, resolvedSrc) => {
+    if (err) return cb(err)
+
+    if (opts.dereference) {
+      resolvedSrc = path.resolve(process.cwd(), resolvedSrc)
+    }
+
+    if (resolvedDest === notExist || resolvedDest === existsReg) {
+      // if dest already exists, fs throws error anyway,
+      // so no need to guard against it here.
+      return fs.symlink(resolvedSrc, dest, cb)
+    } else {
+      if (opts.dereference) {
+        resolvedDest = path.resolve(process.cwd(), resolvedDest)
+      }
+      if (pathsAreIdentical(resolvedSrc, resolvedDest)) return cb()
+
+      // prevent copy if src is a subdir of dest since unlinking
+      // dest in this case would result in removing src contents
+      // and therefore a broken symlink would be created.
+      fs.stat(dest, (err, st) => {
+        if (err) return cb(err)
+        if (st.isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {
+          return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))
+        }
+        return copyLink(resolvedSrc, dest, cb)
+      })
+    }
+  })
+}
+
+function copyLink (resolvedSrc, dest, cb) {
+  fs.unlink(dest, err => {
+    if (err) return cb(err)
+    return fs.symlink(resolvedSrc, dest, cb)
+  })
+}
+
+// return true if dest is a subdir of src, otherwise false.
+// extract dest base dir and check if that is the same as src basename.
+function isSrcSubdir (src, dest) {
+  const srcArray = path.resolve(src).split(path.sep)
+  const destArray = path.resolve(dest).split(path.sep)
+
+  return srcArray.reduce((acc, current, i) => {
+    return acc && destArray[i] === current
+  }, true)
+}
+
+// check if dest exists and is a symlink.
+function checkDest (dest, cb) {
+  fs.readlink(dest, (err, resolvedPath) => {
+    if (err) {
+      if (err.code === 'ENOENT') return cb(null, notExist)
+
+      // dest exists and is a regular file or directory, Windows may throw UNKNOWN error.
+      if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return cb(null, existsReg)
+
+      return cb(err)
+    }
+    return cb(null, resolvedPath) // dest exists and is a symlink
+  })
+}
+
+function pathsAreIdentical (src, dest) {
+  const os = process.platform
+  const resolvedSrc = path.resolve(src)
+  const resolvedDest = path.resolve(dest)
+  // case-insensitive paths
+  if (os === 'darwin' || os === 'win32') {
+    return resolvedSrc.toLowerCase() === resolvedDest.toLowerCase()
+  }
+  return resolvedSrc === resolvedDest
+}
+
+function checkPaths (src, dest, cb) {
+  checkDest(dest, (err, resolvedDest) => {
+    if (err) return cb(err)
+    if (resolvedDest === notExist || resolvedDest === existsReg) {
+      if (pathsAreIdentical(src, dest)) return cb(new Error('Source and destination must not be the same.'))
+      return cb(null, resolvedDest)
+    } else {
+      // check resolved dest path if dest is a symlink
+      if (pathsAreIdentical(src, resolvedDest)) return cb(new Error('Source and destination must not be the same.'))
+      return cb(null, resolvedDest)
+    }
   })
 }
 

+ 2 - 0
resources/app/node_modules/fs-extra/lib/copy/index.js

@@ -1,3 +1,5 @@
+'use strict'
+
 const u = require('universalify').fromCallback
 module.exports = {
   copy: u(require('./copy'))

+ 2 - 2
resources/app/node_modules/fs-extra/lib/ensure/link.js

@@ -17,7 +17,7 @@ function createLink (srcpath, dstpath, callback) {
   pathExists(dstpath, (err, destinationExists) => {
     if (err) return callback(err)
     if (destinationExists) return callback(null)
-    fs.lstat(srcpath, (err, stat) => {
+    fs.lstat(srcpath, (err) => {
       if (err) {
         err.message = err.message.replace('lstat', 'ensureLink')
         return callback(err)
@@ -36,7 +36,7 @@ function createLink (srcpath, dstpath, callback) {
   })
 }
 
-function createLinkSync (srcpath, dstpath, callback) {
+function createLinkSync (srcpath, dstpath) {
   const destinationExists = fs.existsSync(dstpath)
   if (destinationExists) return undefined
 

+ 2 - 2
resources/app/node_modules/fs-extra/lib/ensure/symlink-paths.js

@@ -28,7 +28,7 @@ const pathExists = require('../path-exists').pathExists
 
 function symlinkPaths (srcpath, dstpath, callback) {
   if (path.isAbsolute(srcpath)) {
-    return fs.lstat(srcpath, (err, stat) => {
+    return fs.lstat(srcpath, (err) => {
       if (err) {
         err.message = err.message.replace('lstat', 'ensureSymlink')
         return callback(err)
@@ -49,7 +49,7 @@ function symlinkPaths (srcpath, dstpath, callback) {
           'toDst': srcpath
         })
       } else {
-        return fs.lstat(srcpath, (err, stat) => {
+        return fs.lstat(srcpath, (err) => {
           if (err) {
             err.message = err.message.replace('lstat', 'ensureSymlink')
             return callback(err)

+ 1 - 4
resources/app/node_modules/fs-extra/lib/ensure/symlink.js

@@ -43,10 +43,7 @@ function createSymlink (srcpath, dstpath, type, callback) {
   })
 }
 
-function createSymlinkSync (srcpath, dstpath, type, callback) {
-  callback = (typeof type === 'function') ? type : callback
-  type = (typeof type === 'function') ? false : type
-
+function createSymlinkSync (srcpath, dstpath, type) {
   const destinationExists = fs.existsSync(dstpath)
   if (destinationExists) return undefined
 

+ 11 - 15
resources/app/node_modules/fs-extra/lib/fs/index.js

@@ -1,3 +1,4 @@
+'use strict'
 // This is adapted from https://github.com/normalize/mz
 // Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors
 const u = require('universalify').fromCallback
@@ -45,6 +46,11 @@ const api = [
 
 // Export all keys:
 Object.keys(fs).forEach(key => {
+  if (key === 'promises') {
+    // fs.promises is a getter property that triggers ExperimentalWarning
+    // Don't re-export it here, the getter is defined in "lib/index.js"
+    return
+  }
   exports[key] = fs[key]
 })
 
@@ -82,24 +88,14 @@ exports.read = function (fd, buffer, offset, length, position, callback) {
 // fs.write(fd, buffer[, offset[, length[, position]]], callback)
 // OR
 // fs.write(fd, string[, position[, encoding]], callback)
-// so we need to handle both cases
-exports.write = function (fd, buffer, a, b, c, callback) {
-  if (typeof arguments[arguments.length - 1] === 'function') {
-    return fs.write(fd, buffer, a, b, c, callback)
-  }
-
-  // Check for old, depricated fs.write(fd, string[, position[, encoding]], callback)
-  if (typeof buffer === 'string') {
-    return new Promise((resolve, reject) => {
-      fs.write(fd, buffer, a, b, (err, bytesWritten, buffer) => {
-        if (err) return reject(err)
-        resolve({ bytesWritten, buffer })
-      })
-    })
+// We need to handle both cases, so we use ...args
+exports.write = function (fd, buffer, ...args) {
+  if (typeof args[args.length - 1] === 'function') {
+    return fs.write(fd, buffer, ...args)
   }
 
   return new Promise((resolve, reject) => {
-    fs.write(fd, buffer, a, b, c, (err, bytesWritten, buffer) => {
+    fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => {
       if (err) return reject(err)
       resolve({ bytesWritten, buffer })
     })

+ 25 - 19
resources/app/node_modules/fs-extra/lib/index.js

@@ -1,22 +1,28 @@
 'use strict'
 
-const assign = require('./util/assign')
+module.exports = Object.assign(
+  {},
+  // Export promiseified graceful-fs:
+  require('./fs'),
+  // Export extra methods:
+  require('./copy-sync'),
+  require('./copy'),
+  require('./empty'),
+  require('./ensure'),
+  require('./json'),
+  require('./mkdirs'),
+  require('./move-sync'),
+  require('./move'),
+  require('./output'),
+  require('./path-exists'),
+  require('./remove')
+)
 
-const fs = {}
-
-// Export graceful-fs:
-assign(fs, require('./fs'))
-// Export extra methods:
-assign(fs, require('./copy'))
-assign(fs, require('./copy-sync'))
-assign(fs, require('./mkdirs'))
-assign(fs, require('./remove'))
-assign(fs, require('./json'))
-assign(fs, require('./move'))
-assign(fs, require('./move-sync'))
-assign(fs, require('./empty'))
-assign(fs, require('./ensure'))
-assign(fs, require('./output'))
-assign(fs, require('./path-exists'))
-
-module.exports = fs
+// Export fs.promises as a getter property so that we don't trigger
+// ExperimentalWarning before fs.promises is actually accessed.
+const fs = require('fs')
+if (Object.getOwnPropertyDescriptor(fs, 'promises')) {
+  Object.defineProperty(module.exports, 'promises', {
+    get () { return fs.promises }
+  })
+}

+ 2 - 2
resources/app/node_modules/fs-extra/lib/mkdirs/index.js

@@ -4,8 +4,8 @@ const mkdirs = u(require('./mkdirs'))
 const mkdirsSync = require('./mkdirs-sync')
 
 module.exports = {
-  mkdirs: mkdirs,
-  mkdirsSync: mkdirsSync,
+  mkdirs,
+  mkdirsSync,
   // alias
   mkdirp: mkdirs,
   mkdirpSync: mkdirsSync,

+ 14 - 19
resources/app/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js

@@ -31,25 +31,20 @@ function mkdirsSync (p, opts, made) {
     xfs.mkdirSync(p, mode)
     made = made || p
   } catch (err0) {
-    switch (err0.code) {
-      case 'ENOENT':
-        if (path.dirname(p) === p) throw err0
-        made = mkdirsSync(path.dirname(p), opts, made)
-        mkdirsSync(p, opts, made)
-        break
-
-      // In the case of any other error, just see if there's a dir
-      // there already.  If so, then hooray!  If not, then something
-      // is borked.
-      default:
-        let stat
-        try {
-          stat = xfs.statSync(p)
-        } catch (err1) {
-          throw err0
-        }
-        if (!stat.isDirectory()) throw err0
-        break
+    if (err0.code === 'ENOENT') {
+      if (path.dirname(p) === p) throw err0
+      made = mkdirsSync(path.dirname(p), opts, made)
+      mkdirsSync(p, opts, made)
+    } else {
+      // In the case of any other error, just see if there's a dir there
+      // already. If so, then hooray!  If not, then something is borked.
+      let stat
+      try {
+        stat = xfs.statSync(p)
+      } catch (err1) {
+        throw err0
+      }
+      if (!stat.isDirectory()) throw err0
     }
   }
 

+ 2 - 3
resources/app/node_modules/fs-extra/lib/move-sync/index.js

@@ -68,11 +68,10 @@ function moveFileSyncAcrossDevice (src, dest, overwrite) {
   const fdr = fs.openSync(src, 'r')
   const stat = fs.fstatSync(fdr)
   const fdw = fs.openSync(dest, flags, stat.mode)
-  let bytesRead = 1
   let pos = 0
 
-  while (bytesRead > 0) {
-    bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)
+  while (pos < stat.size) {
+    const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)
     fs.writeSync(fdw, _buff, 0, bytesRead)
     pos += bytesRead
   }

+ 50 - 138
resources/app/node_modules/fs-extra/lib/move/index.js

@@ -1,170 +1,82 @@
 'use strict'
 
-// most of this code was written by Andrew Kelley
-// licensed under the BSD license: see
-// https://github.com/andrewrk/node-mv/blob/master/package.json
-
-// this needs a cleanup
-
 const u = require('universalify').fromCallback
 const fs = require('graceful-fs')
-const ncp = require('../copy/ncp')
 const path = require('path')
+const copy = require('../copy').copy
 const remove = require('../remove').remove
-const mkdirp = require('../mkdirs').mkdirs
+const mkdirp = require('../mkdirs').mkdirp
+const pathExists = require('../path-exists').pathExists
 
-function move (src, dest, options, callback) {
-  if (typeof options === 'function') {
-    callback = options
-    options = {}
+function move (src, dest, opts, cb) {
+  if (typeof opts === 'function') {
+    cb = opts
+    opts = {}
   }
 
-  const overwrite = options.overwrite || options.clobber || false
-
-  isSrcSubdir(src, dest, (err, itIs) => {
-    if (err) return callback(err)
-    if (itIs) return callback(new Error(`Cannot move '${src}' to a subdirectory of itself, '${dest}'.`))
-    mkdirp(path.dirname(dest), err => {
-      if (err) return callback(err)
-      doRename()
-    })
-  })
-
-  function doRename () {
-    if (path.resolve(src) === path.resolve(dest)) {
-      fs.access(src, callback)
-    } else if (overwrite) {
-      fs.rename(src, dest, err => {
-        if (!err) return callback()
+  const overwrite = opts.overwrite || opts.clobber || false
 
-        if (err.code === 'ENOTEMPTY' || err.code === 'EEXIST') {
-          remove(dest, err => {
-            if (err) return callback(err)
-            options.overwrite = false // just overwriteed it, no need to do it again
-            move(src, dest, options, callback)
-          })
-          return
-        }
+  src = path.resolve(src)
+  dest = path.resolve(dest)
 
-        // weird Windows shit
-        if (err.code === 'EPERM') {
-          setTimeout(() => {
-            remove(dest, err => {
-              if (err) return callback(err)
-              options.overwrite = false
-              move(src, dest, options, callback)
-            })
-          }, 200)
-          return
-        }
+  if (src === dest) return fs.access(src, cb)
 
-        if (err.code !== 'EXDEV') return callback(err)
-        moveAcrossDevice(src, dest, overwrite, callback)
-      })
-    } else {
-      fs.link(src, dest, err => {
-        if (err) {
-          if (err.code === 'EXDEV' || err.code === 'EISDIR' || err.code === 'EPERM' || err.code === 'ENOTSUP') {
-            return moveAcrossDevice(src, dest, overwrite, callback)
-          }
-          return callback(err)
-        }
-        return fs.unlink(src, callback)
-      })
-    }
-  }
-}
-
-function moveAcrossDevice (src, dest, overwrite, callback) {
-  fs.stat(src, (err, stat) => {
-    if (err) return callback(err)
+  fs.stat(src, (err, st) => {
+    if (err) return cb(err)
 
-    if (stat.isDirectory()) {
-      moveDirAcrossDevice(src, dest, overwrite, callback)
-    } else {
-      moveFileAcrossDevice(src, dest, overwrite, callback)
+    if (st.isDirectory() && isSrcSubdir(src, dest)) {
+      return cb(new Error(`Cannot move '${src}' to a subdirectory of itself, '${dest}'.`))
     }
+    mkdirp(path.dirname(dest), err => {
+      if (err) return cb(err)
+      return doRename(src, dest, overwrite, cb)
+    })
   })
 }
 
-function moveFileAcrossDevice (src, dest, overwrite, callback) {
-  const flags = overwrite ? 'w' : 'wx'
-  const ins = fs.createReadStream(src)
-  const outs = fs.createWriteStream(dest, { flags })
-
-  ins.on('error', err => {
-    ins.destroy()
-    outs.destroy()
-    outs.removeListener('close', onClose)
-
-    // may want to create a directory but `out` line above
-    // creates an empty file for us: See #108
-    // don't care about error here
-    fs.unlink(dest, () => {
-      // note: `err` here is from the input stream errror
-      if (err.code === 'EISDIR' || err.code === 'EPERM') {
-        moveDirAcrossDevice(src, dest, overwrite, callback)
-      } else {
-        callback(err)
-      }
+function doRename (src, dest, overwrite, cb) {
+  if (overwrite) {
+    return remove(dest, err => {
+      if (err) return cb(err)
+      return rename(src, dest, overwrite, cb)
     })
+  }
+  pathExists(dest, (err, destExists) => {
+    if (err) return cb(err)
+    if (destExists) return cb(new Error('dest already exists.'))
+    return rename(src, dest, overwrite, cb)
   })
+}
 
-  outs.on('error', err => {
-    ins.destroy()
-    outs.destroy()
-    outs.removeListener('close', onClose)
-    callback(err)
+function rename (src, dest, overwrite, cb) {
+  fs.rename(src, dest, err => {
+    if (!err) return cb()
+    if (err.code !== 'EXDEV') return cb(err)
+    return moveAcrossDevice(src, dest, overwrite, cb)
   })
-
-  outs.once('close', onClose)
-  ins.pipe(outs)
-
-  function onClose () {
-    fs.unlink(src, callback)
-  }
 }
 
-function moveDirAcrossDevice (src, dest, overwrite, callback) {
-  const options = {
-    overwrite: false
-  }
-
-  if (overwrite) {
-    remove(dest, err => {
-      if (err) return callback(err)
-      startNcp()
-    })
-  } else {
-    startNcp()
-  }
-
-  function startNcp () {
-    ncp(src, dest, options, err => {
-      if (err) return callback(err)
-      remove(src, callback)
-    })
+function moveAcrossDevice (src, dest, overwrite, cb) {
+  const opts = {
+    overwrite,
+    errorOnExist: true
   }
-}
 
-// return true if dest is a subdir of src, otherwise false.
-// extract dest base dir and check if that is the same as src basename
-function isSrcSubdir (src, dest, cb) {
-  fs.stat(src, (err, st) => {
+  copy(src, dest, opts, err => {
     if (err) return cb(err)
-    if (st.isDirectory()) {
-      const baseDir = dest.split(path.dirname(src) + path.sep)[1]
-      if (baseDir) {
-        const destBasename = baseDir.split(path.sep)[0]
-        if (destBasename) return cb(null, src !== dest && dest.indexOf(src) > -1 && destBasename === path.basename(src))
-        return cb(null, false)
-      }
-      return cb(null, false)
-    }
-    return cb(null, false)
+    return remove(src, cb)
   })
 }
 
+function isSrcSubdir (src, dest) {
+  const srcArray = src.split(path.sep)
+  const destArray = dest.split(path.sep)
+
+  return srcArray.reduce((acc, current, i) => {
+    return acc && destArray[i] === current
+  }, true)
+}
+
 module.exports = {
   move: u(move)
 }

+ 3 - 3
resources/app/node_modules/fs-extra/lib/output/index.js

@@ -25,13 +25,13 @@ function outputFile (file, data, encoding, callback) {
   })
 }
 
-function outputFileSync (file, data, encoding) {
+function outputFileSync (file, ...args) {
   const dir = path.dirname(file)
   if (fs.existsSync(dir)) {
-    return fs.writeFileSync.apply(fs, arguments)
+    return fs.writeFileSync(file, ...args)
   }
   mkdir.mkdirsSync(dir)
-  fs.writeFileSync.apply(fs, arguments)
+  fs.writeFileSync(file, ...args)
 }
 
 module.exports = {

+ 6 - 6
resources/app/node_modules/fs-extra/lib/remove/rimraf.js

@@ -33,10 +33,10 @@ function rimraf (p, options, cb) {
   }
 
   assert(p, 'rimraf: missing path')
-  assert.equal(typeof p, 'string', 'rimraf: path should be a string')
-  assert.equal(typeof cb, 'function', 'rimraf: callback function required')
+  assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
+  assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required')
   assert(options, 'rimraf: invalid options argument provided')
-  assert.equal(typeof options, 'object', 'rimraf: options should be object')
+  assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')
 
   defaults(options)
 
@@ -45,7 +45,7 @@ function rimraf (p, options, cb) {
       if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') &&
           busyTries < options.maxBusyTries) {
         busyTries++
-        let time = busyTries * 100
+        const time = busyTries * 100
         // try again, with the same exact callback as this one.
         return setTimeout(() => rimraf_(p, options, CB), time)
       }
@@ -229,9 +229,9 @@ function rimrafSync (p, options) {
   defaults(options)
 
   assert(p, 'rimraf: missing path')
-  assert.equal(typeof p, 'string', 'rimraf: path should be a string')
+  assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
   assert(options, 'rimraf: missing options')
-  assert.equal(typeof options, 'object', 'rimraf: options should be object')
+  assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')
 
   try {
     st = options.lstatSync(p)

+ 1 - 0
resources/app/node_modules/fs-extra/lib/util/buffer.js

@@ -1,3 +1,4 @@
+'use strict'
 /* eslint-disable node/no-deprecated-api */
 module.exports = function (size) {
   if (typeof Buffer.allocUnsafe === 'function') {

+ 8 - 1
resources/app/node_modules/fs-extra/lib/util/utimes.js

@@ -64,9 +64,16 @@ function utimesMillis (path, atime, mtime, callback) {
   })
 }
 
+function utimesMillisSync (path, atime, mtime) {
+  const fd = fs.openSync(path, 'r+')
+  fs.futimesSync(fd, atime, mtime)
+  return fs.closeSync(fd)
+}
+
 module.exports = {
   hasMillisRes,
   hasMillisResSync,
   timeRemoveMillis,
-  utimesMillis
+  utimesMillis,
+  utimesMillisSync
 }

+ 61 - 29
resources/app/node_modules/fs-extra/package.json

@@ -1,12 +1,58 @@
 {
-  "name": "fs-extra",
-  "version": "4.0.3",
+  "_from": "fs-extra@^6.0.1",
+  "_id": "fs-extra@6.0.1",
+  "_inBundle": false,
+  "_integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
+  "_location": "/fs-extra",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "fs-extra@^6.0.1",
+    "name": "fs-extra",
+    "escapedName": "fs-extra",
+    "rawSpec": "^6.0.1",
+    "saveSpec": null,
+    "fetchSpec": "^6.0.1"
+  },
+  "_requiredBy": [
+    "/fs-extra-p"
+  ],
+  "_resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
+  "_shasum": "8abc128f7946e310135ddc93b98bddb410e7a34b",
+  "_spec": "fs-extra@^6.0.1",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\fs-extra-p",
+  "author": {
+    "name": "JP Richardson",
+    "email": "jprichardson@gmail.com"
+  },
+  "bugs": {
+    "url": "https://github.com/jprichardson/node-fs-extra/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "graceful-fs": "^4.1.2",
+    "jsonfile": "^4.0.0",
+    "universalify": "^0.1.0"
+  },
+  "deprecated": false,
   "description": "fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as mkdir -p, cp -r, and rm -rf.",
-  "homepage": "https://github.com/jprichardson/node-fs-extra",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jprichardson/node-fs-extra"
+  "devDependencies": {
+    "coveralls": "^3.0.0",
+    "istanbul": "^0.4.5",
+    "klaw": "^2.1.1",
+    "klaw-sync": "^3.0.2",
+    "minimist": "^1.1.1",
+    "mocha": "^5.0.5",
+    "proxyquire": "^2.0.1",
+    "read-dir-files": "^0.1.1",
+    "rimraf": "^2.2.8",
+    "secure-random": "^1.1.1",
+    "semver": "^5.3.0",
+    "standard": "^11.0.1",
+    "standard-markdown": "^4.0.1"
   },
+  "homepage": "https://github.com/jprichardson/node-fs-extra",
   "keywords": [
     "fs",
     "file",
@@ -30,35 +76,21 @@
     "output",
     "move"
   ],
-  "author": "JP Richardson <jprichardson@gmail.com>",
   "license": "MIT",
-  "dependencies": {
-    "graceful-fs": "^4.1.2",
-    "jsonfile": "^4.0.0",
-    "universalify": "^0.1.0"
-  },
-  "devDependencies": {
-    "coveralls": "^2.11.2",
-    "istanbul": "^0.4.5",
-    "klaw": "^1.0.0",
-    "klaw-sync": "^1.1.2",
-    "minimist": "^1.1.1",
-    "mocha": "^3.1.2",
-    "proxyquire": "^1.7.10",
-    "read-dir-files": "^0.1.1",
-    "rimraf": "^2.2.8",
-    "secure-random": "^1.1.1",
-    "semver": "^5.3.0",
-    "standard": "^10.0.2",
-    "standard-markdown": "^4.0.1"
-  },
   "main": "./lib/index.js",
+  "name": "fs-extra",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/jprichardson/node-fs-extra.git"
+  },
   "scripts": {
     "coverage": "istanbul cover -i 'lib/**' -x '**/__tests__/**' test.js",
     "coveralls": "coveralls < coverage/lcov.info",
+    "full-ci": "npm run lint && npm run coverage",
     "lint": "standard && standard-markdown",
-    "test-find": "find ./lib/**/__tests__ -name *.test.js | xargs mocha",
     "test": "npm run lint && npm run unit",
+    "test-find": "find ./lib/**/__tests__ -name *.test.js | xargs mocha",
     "unit": "node test.js"
-  }
+  },
+  "version": "6.0.1"
 }

+ 37 - 12
resources/app/node_modules/fs/package.json

@@ -1,20 +1,45 @@
 {
-  "name": "fs",
-  "version": "0.0.1-security",
-  "description": "",
-  "main": "index.js",
-  "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1"
+  "_from": "fs@0.0.1-security",
+  "_id": "fs@0.0.1-security",
+  "_inBundle": false,
+  "_integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=",
+  "_location": "/fs",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "version",
+    "registry": true,
+    "raw": "fs@0.0.1-security",
+    "name": "fs",
+    "escapedName": "fs",
+    "rawSpec": "0.0.1-security",
+    "saveSpec": null,
+    "fetchSpec": "0.0.1-security"
+  },
+  "_requiredBy": [
+    "/"
+  ],
+  "_resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
+  "_shasum": "8a7bd37186b6dddf3813f23858b57ecaaf5e41d4",
+  "_spec": "fs@0.0.1-security",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app",
+  "author": "",
+  "bugs": {
+    "url": "https://github.com/npm/security-holder/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "This package name is not currently in use, but was formerly occupied by another package. To avoid malicious use, npm is hanging on to the package name, but loosely, and we'll probably give it to you if you want it.",
+  "homepage": "https://github.com/npm/security-holder#readme",
+  "keywords": [],
+  "license": "ISC",
+  "main": "index.js",
+  "name": "fs",
   "repository": {
     "type": "git",
     "url": "git+https://github.com/npm/security-holder.git"
   },
-  "keywords": [],
-  "author": "",
-  "license": "ISC",
-  "bugs": {
-    "url": "https://github.com/npm/security-holder/issues"
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
   },
-  "homepage": "https://github.com/npm/security-holder#readme"
+  "version": "0.0.1-security"
 }

+ 56 - 21
resources/app/node_modules/graceful-fs/package.json

@@ -1,21 +1,57 @@
 {
-  "name": "graceful-fs",
-  "description": "A drop-in replacement for fs, making various improvements.",
-  "version": "4.1.11",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/isaacs/node-graceful-fs"
+  "_from": "graceful-fs@^4.1.2",
+  "_id": "graceful-fs@4.1.11",
+  "_inBundle": false,
+  "_integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+  "_location": "/graceful-fs",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "graceful-fs@^4.1.2",
+    "name": "graceful-fs",
+    "escapedName": "graceful-fs",
+    "rawSpec": "^4.1.2",
+    "saveSpec": null,
+    "fetchSpec": "^4.1.2"
   },
-  "main": "graceful-fs.js",
-  "engines": {
-    "node": ">=0.4.0"
+  "_requiredBy": [
+    "/electron-download/fs-extra",
+    "/electron-download/jsonfile",
+    "/fs-extra",
+    "/jsonfile",
+    "/klaw",
+    "/load-json-file",
+    "/path-type"
+  ],
+  "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+  "_shasum": "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658",
+  "_spec": "graceful-fs@^4.1.2",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\fs-extra",
+  "bugs": {
+    "url": "https://github.com/isaacs/node-graceful-fs/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "A drop-in replacement for fs, making various improvements.",
+  "devDependencies": {
+    "mkdirp": "^0.5.0",
+    "rimraf": "^2.2.8",
+    "tap": "^5.4.2"
   },
   "directories": {
     "test": "test"
   },
-  "scripts": {
-    "test": "node test.js | tap -"
+  "engines": {
+    "node": ">=0.4.0"
   },
+  "files": [
+    "fs.js",
+    "graceful-fs.js",
+    "legacy-streams.js",
+    "polyfills.js"
+  ],
+  "homepage": "https://github.com/isaacs/node-graceful-fs#readme",
   "keywords": [
     "fs",
     "module",
@@ -33,15 +69,14 @@
     "EACCESS"
   ],
   "license": "ISC",
-  "devDependencies": {
-    "mkdirp": "^0.5.0",
-    "rimraf": "^2.2.8",
-    "tap": "^5.4.2"
+  "main": "graceful-fs.js",
+  "name": "graceful-fs",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/isaacs/node-graceful-fs.git"
   },
-  "files": [
-    "fs.js",
-    "graceful-fs.js",
-    "legacy-streams.js",
-    "polyfills.js"
-  ]
+  "scripts": {
+    "test": "node test.js | tap -"
+  },
+  "version": "4.1.11"
 }

+ 44 - 17
resources/app/node_modules/if-async/package.json

@@ -1,27 +1,54 @@
 {
-  "name": "if-async",
-  "description": "",
-  "version": "3.7.4",
-  "keywords": [
-    "async"
+  "_from": "if-async@^3.7.4",
+  "_id": "if-async@3.7.4",
+  "_inBundle": false,
+  "_integrity": "sha1-VYaN6wCT08Z79xZudFNT+5vLIaI=",
+  "_location": "/if-async",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "if-async@^3.7.4",
+    "name": "if-async",
+    "escapedName": "if-async",
+    "rawSpec": "^3.7.4",
+    "saveSpec": null,
+    "fetchSpec": "^3.7.4"
+  },
+  "_requiredBy": [
+    "/regedit"
   ],
-  "main": "index.js",
-  "scripts": {
-    "test": "mocha -R spec"
+  "_resolved": "https://registry.npmjs.org/if-async/-/if-async-3.7.4.tgz",
+  "_shasum": "55868deb0093d3c67bf7166e745353fb9bcb21a2",
+  "_spec": "if-async@^3.7.4",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\regedit",
+  "author": {
+    "name": "Yaniv Kessler"
   },
-  "dependencies": {},
-  "author": "Yaniv Kessler",
   "bugs": {
     "url": "https://github.com/kessler/if-async/issues"
   },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/kessler/if-async"
-  },
-  "homepage": "https://github.com/kessler/if-async",
-  "license": "MIT",
+  "bundleDependencies": false,
+  "dependencies": {},
+  "deprecated": false,
+  "description": "async conditional execution for async.js or standalone usage",
   "devDependencies": {
     "mocha": "^2.1.0",
     "should": "^4.6.1"
-  }
+  },
+  "homepage": "https://github.com/kessler/if-async",
+  "keywords": [
+    "async"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "if-async",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/kessler/if-async.git"
+  },
+  "scripts": {
+    "test": "mocha -R spec"
+  },
+  "version": "3.7.4"
 }

+ 48 - 12
resources/app/node_modules/inherits/package.json

@@ -1,7 +1,46 @@
 {
-  "name": "inherits",
+  "_from": "inherits@~2.0.1",
+  "_id": "inherits@2.0.3",
+  "_inBundle": false,
+  "_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+  "_location": "/inherits",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "inherits@~2.0.1",
+    "name": "inherits",
+    "escapedName": "inherits",
+    "rawSpec": "~2.0.1",
+    "saveSpec": null,
+    "fetchSpec": "~2.0.1"
+  },
+  "_requiredBy": [
+    "/concat-stream",
+    "/concat-stream/readable-stream",
+    "/glob",
+    "/progress-stream/readable-stream",
+    "/readable-stream"
+  ],
+  "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+  "_shasum": "633c2c83e3da42a502f52466022480f4208261de",
+  "_spec": "inherits@~2.0.1",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\readable-stream",
+  "browser": "./inherits_browser.js",
+  "bugs": {
+    "url": "https://github.com/isaacs/inherits/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
-  "version": "2.0.3",
+  "devDependencies": {
+    "tap": "^7.1.0"
+  },
+  "files": [
+    "inherits.js",
+    "inherits_browser.js"
+  ],
+  "homepage": "https://github.com/isaacs/inherits#readme",
   "keywords": [
     "inheritance",
     "class",
@@ -12,18 +51,15 @@
     "browser",
     "browserify"
   ],
-  "main": "./inherits.js",
-  "browser": "./inherits_browser.js",
-  "repository": "git://github.com/isaacs/inherits",
   "license": "ISC",
+  "main": "./inherits.js",
+  "name": "inherits",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/isaacs/inherits.git"
+  },
   "scripts": {
     "test": "node test"
   },
-  "devDependencies": {
-    "tap": "^7.1.0"
-  },
-  "files": [
-    "inherits.js",
-    "inherits_browser.js"
-  ]
+  "version": "2.0.3"
 }

+ 50 - 17
resources/app/node_modules/isarray/package.json

@@ -1,25 +1,58 @@
 {
-  "name" : "isarray",
-  "description" : "Array#isArray for older browsers",
-  "version" : "0.0.1",
-  "repository" : {
-    "type" : "git",
-    "url" : "git://github.com/juliangruber/isarray.git"
+  "_from": "isarray@0.0.1",
+  "_id": "isarray@0.0.1",
+  "_inBundle": false,
+  "_integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+  "_location": "/isarray",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "version",
+    "registry": true,
+    "raw": "isarray@0.0.1",
+    "name": "isarray",
+    "escapedName": "isarray",
+    "rawSpec": "0.0.1",
+    "saveSpec": null,
+    "fetchSpec": "0.0.1"
   },
-  "homepage": "https://github.com/juliangruber/isarray",
-  "main" : "index.js",
-  "scripts" : {
-    "test" : "tap test/*.js"
-  },
-  "dependencies" : {},
-  "devDependencies" : {
-    "tap" : "*"
-  },
-  "keywords": ["browser","isarray","array"],
+  "_requiredBy": [
+    "/progress-stream/readable-stream",
+    "/readable-stream"
+  ],
+  "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+  "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf",
+  "_spec": "isarray@0.0.1",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\readable-stream",
   "author": {
     "name": "Julian Gruber",
     "email": "mail@juliangruber.com",
     "url": "http://juliangruber.com"
   },
-  "license": "MIT"
+  "bugs": {
+    "url": "https://github.com/juliangruber/isarray/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {},
+  "deprecated": false,
+  "description": "Array#isArray for older browsers",
+  "devDependencies": {
+    "tap": "*"
+  },
+  "homepage": "https://github.com/juliangruber/isarray",
+  "keywords": [
+    "browser",
+    "isarray",
+    "array"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "isarray",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/juliangruber/isarray.git"
+  },
+  "scripts": {
+    "test": "tap test/*.js"
+  },
+  "version": "0.0.1"
 }

+ 70 - 24
resources/app/node_modules/js-yaml/package.json

@@ -1,35 +1,61 @@
 {
-  "name": "js-yaml",
-  "version": "3.12.0",
-  "description": "YAML 1.2 parser and serializer",
-  "keywords": [
-    "yaml",
-    "parser",
-    "serializer",
-    "pyyaml"
-  ],
-  "homepage": "https://github.com/nodeca/js-yaml",
-  "author": "Vladimir Zapparov <dervus.grim@gmail.com>",
-  "contributors": [
-    "Aleksey V Zapparov <ixti@member.fsf.org> (http://www.ixti.net/)",
-    "Vitaly Puzrin <vitaly@rcdesign.ru> (https://github.com/puzrin)",
-    "Martin Grenfell <martin.grenfell@gmail.com> (http://got-ravings.blogspot.com)"
-  ],
-  "license": "MIT",
-  "repository": "nodeca/js-yaml",
-  "files": [
-    "index.js",
-    "lib/",
-    "bin/",
-    "dist/"
+  "_from": "js-yaml@^3.12.0",
+  "_id": "js-yaml@3.12.0",
+  "_inBundle": false,
+  "_integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
+  "_location": "/js-yaml",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "js-yaml@^3.12.0",
+    "name": "js-yaml",
+    "escapedName": "js-yaml",
+    "rawSpec": "^3.12.0",
+    "saveSpec": null,
+    "fetchSpec": "^3.12.0"
+  },
+  "_requiredBy": [
+    "/electron-updater"
   ],
+  "_resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
+  "_shasum": "eaed656ec8344f10f527c6bfa1b6e2244de167d1",
+  "_spec": "js-yaml@^3.12.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\electron-updater",
+  "author": {
+    "name": "Vladimir Zapparov",
+    "email": "dervus.grim@gmail.com"
+  },
   "bin": {
     "js-yaml": "bin/js-yaml.js"
   },
+  "bugs": {
+    "url": "https://github.com/nodeca/js-yaml/issues"
+  },
+  "bundleDependencies": false,
+  "contributors": [
+    {
+      "name": "Aleksey V Zapparov",
+      "email": "ixti@member.fsf.org",
+      "url": "http://www.ixti.net/"
+    },
+    {
+      "name": "Vitaly Puzrin",
+      "email": "vitaly@rcdesign.ru",
+      "url": "https://github.com/puzrin"
+    },
+    {
+      "name": "Martin Grenfell",
+      "email": "martin.grenfell@gmail.com",
+      "url": "http://got-ravings.blogspot.com"
+    }
+  ],
   "dependencies": {
     "argparse": "^1.0.7",
     "esprima": "^4.0.0"
   },
+  "deprecated": false,
+  "description": "YAML 1.2 parser and serializer",
   "devDependencies": {
     "ansi": "^0.3.1",
     "benchmark": "^2.1.4",
@@ -41,7 +67,27 @@
     "mocha": "^5.2.0",
     "uglify-js": "^3.0.1"
   },
+  "files": [
+    "index.js",
+    "lib/",
+    "bin/",
+    "dist/"
+  ],
+  "homepage": "https://github.com/nodeca/js-yaml",
+  "keywords": [
+    "yaml",
+    "parser",
+    "serializer",
+    "pyyaml"
+  ],
+  "license": "MIT",
+  "name": "js-yaml",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/nodeca/js-yaml.git"
+  },
   "scripts": {
     "test": "make test"
-  }
+  },
+  "version": "3.12.0"
 }

+ 50 - 16
resources/app/node_modules/jsonfile/package.json

@@ -1,11 +1,49 @@
 {
-  "name": "jsonfile",
-  "version": "4.0.0",
+  "_from": "jsonfile@^4.0.0",
+  "_id": "jsonfile@4.0.0",
+  "_inBundle": false,
+  "_integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+  "_location": "/jsonfile",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "jsonfile@^4.0.0",
+    "name": "jsonfile",
+    "escapedName": "jsonfile",
+    "rawSpec": "^4.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^4.0.0"
+  },
+  "_requiredBy": [
+    "/fs-extra"
+  ],
+  "_resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+  "_shasum": "8771aae0799b64076b76640fca058f9c10e33ecb",
+  "_spec": "jsonfile@^4.0.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\fs-extra",
+  "author": {
+    "name": "JP Richardson",
+    "email": "jprichardson@gmail.com"
+  },
+  "bugs": {
+    "url": "https://github.com/jprichardson/node-jsonfile/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "graceful-fs": "^4.1.6"
+  },
+  "deprecated": false,
   "description": "Easily read/write JSON files.",
-  "repository": {
-    "type": "git",
-    "url": "git@github.com:jprichardson/node-jsonfile.git"
+  "devDependencies": {
+    "mocha": "2.x",
+    "rimraf": "^2.4.0",
+    "standard": "^10.0.3"
   },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/jprichardson/node-jsonfile#readme",
   "keywords": [
     "read",
     "write",
@@ -14,24 +52,20 @@
     "fs",
     "fs-extra"
   ],
-  "author": "JP Richardson <jprichardson@gmail.com>",
   "license": "MIT",
-  "dependencies": {},
+  "main": "index.js",
+  "name": "jsonfile",
   "optionalDependencies": {
     "graceful-fs": "^4.1.6"
   },
-  "devDependencies": {
-    "mocha": "2.x",
-    "rimraf": "^2.4.0",
-    "standard": "^10.0.3"
+  "repository": {
+    "type": "git",
+    "url": "git+ssh://git@github.com/jprichardson/node-jsonfile.git"
   },
-  "main": "index.js",
-  "files": [
-    "index.js"
-  ],
   "scripts": {
     "lint": "standard",
     "test": "npm run lint && npm run unit",
     "unit": "mocha"
-  }
+  },
+  "version": "4.0.0"
 }

+ 51 - 18
resources/app/node_modules/lazy-val/package.json

@@ -1,28 +1,61 @@
 {
-  "name": "lazy-val",
-  "version": "1.0.3",
-  "main": "out/main.js",
-  "author": "Vladimir Krivosheev",
-  "license": "MIT",
-  "repository": "develar/read-config-file",
-  "bugs": "https://github.com/develar/read-config-file/issues",
-  "homepage": "https://github.com/develar/read-config-file",
-  "files": [
-    "out"
+  "_from": "lazy-val@^1.0.3",
+  "_id": "lazy-val@1.0.3",
+  "_inBundle": false,
+  "_integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==",
+  "_location": "/lazy-val",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "lazy-val@^1.0.3",
+    "name": "lazy-val",
+    "escapedName": "lazy-val",
+    "rawSpec": "^1.0.3",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.3"
+  },
+  "_requiredBy": [
+    "/electron-updater"
   ],
-  "scripts": {
-    "compile": "ts-babel",
-    "release": "yarn compile && npm publish"
+  "_resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz",
+  "_shasum": "bb97b200ef00801d94c317e29dc6ed39e31c5edc",
+  "_spec": "lazy-val@^1.0.3",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\electron-updater",
+  "author": {
+    "name": "Vladimir Krivosheev"
+  },
+  "babel": {
+    "presets": [
+      "babel-preset-ts-node6-bluebird"
+    ]
+  },
+  "bugs": {
+    "url": "https://github.com/develar/read-config-file/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Lazy value.",
   "devDependencies": {
     "babel-preset-ts-node6-bluebird": "^1.0.1",
     "ts-babel": "^4.1.8",
     "typescript": "^2.6.2"
   },
-  "babel": {
-    "presets": [
-      "babel-preset-ts-node6-bluebird"
-    ]
+  "files": [
+    "out"
+  ],
+  "homepage": "https://github.com/develar/read-config-file",
+  "license": "MIT",
+  "main": "out/main.js",
+  "name": "lazy-val",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/develar/read-config-file.git"
+  },
+  "scripts": {
+    "compile": "ts-babel",
+    "release": "yarn compile && npm publish"
   },
-  "typings": "./out/main.d.ts"
+  "typings": "./out/main.d.ts",
+  "version": "1.0.3"
 }

+ 58 - 10
resources/app/node_modules/lodash.isequal/package.json

@@ -1,16 +1,64 @@
 {
-  "name": "lodash.isequal",
-  "version": "4.5.0",
+  "_from": "lodash.isequal@^4.5.0",
+  "_id": "lodash.isequal@4.5.0",
+  "_inBundle": false,
+  "_integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
+  "_location": "/lodash.isequal",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "lodash.isequal@^4.5.0",
+    "name": "lodash.isequal",
+    "escapedName": "lodash.isequal",
+    "rawSpec": "^4.5.0",
+    "saveSpec": null,
+    "fetchSpec": "^4.5.0"
+  },
+  "_requiredBy": [
+    "/electron-updater"
+  ],
+  "_resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+  "_shasum": "415c4478f2bcc30120c22ce10ed3226f7d3e18e0",
+  "_spec": "lodash.isequal@^4.5.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\electron-updater",
+  "author": {
+    "name": "John-David Dalton",
+    "email": "john.david.dalton@gmail.com",
+    "url": "http://allyoucanleet.com/"
+  },
+  "bugs": {
+    "url": "https://github.com/lodash/lodash/issues"
+  },
+  "bundleDependencies": false,
+  "contributors": [
+    {
+      "name": "John-David Dalton",
+      "email": "john.david.dalton@gmail.com",
+      "url": "http://allyoucanleet.com/"
+    },
+    {
+      "name": "Mathias Bynens",
+      "email": "mathias@qiwi.be",
+      "url": "https://mathiasbynens.be/"
+    }
+  ],
+  "deprecated": false,
   "description": "The Lodash method `_.isEqual` exported as a module.",
   "homepage": "https://lodash.com/",
   "icon": "https://lodash.com/icon.svg",
-  "license": "MIT",
-  "keywords": "lodash-modularized, isequal",
-  "author": "John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)",
-  "contributors": [
-    "John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)",
-    "Mathias Bynens <mathias@qiwi.be> (https://mathiasbynens.be/)"
+  "keywords": [
+    "lodash-modularized",
+    "isequal"
   ],
-  "repository": "lodash/lodash",
-  "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }
+  "license": "MIT",
+  "name": "lodash.isequal",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/lodash/lodash.git"
+  },
+  "scripts": {
+    "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+  },
+  "version": "4.5.0"
 }

+ 28 - 18
resources/app/node_modules/ms/index.js

@@ -6,6 +6,7 @@ var s = 1000;
 var m = s * 60;
 var h = m * 60;
 var d = h * 24;
+var w = d * 7;
 var y = d * 365.25;
 
 /**
@@ -49,7 +50,7 @@ function parse(str) {
   if (str.length > 100) {
     return;
   }
-  var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
+  var match = /^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
     str
   );
   if (!match) {
@@ -64,6 +65,10 @@ function parse(str) {
     case 'yr':
     case 'y':
       return n * y;
+    case 'weeks':
+    case 'week':
+    case 'w':
+      return n * w;
     case 'days':
     case 'day':
     case 'd':
@@ -106,16 +111,17 @@ function parse(str) {
  */
 
 function fmtShort(ms) {
-  if (ms >= d) {
+  var msAbs = Math.abs(ms);
+  if (msAbs >= d) {
     return Math.round(ms / d) + 'd';
   }
-  if (ms >= h) {
+  if (msAbs >= h) {
     return Math.round(ms / h) + 'h';
   }
-  if (ms >= m) {
+  if (msAbs >= m) {
     return Math.round(ms / m) + 'm';
   }
-  if (ms >= s) {
+  if (msAbs >= s) {
     return Math.round(ms / s) + 's';
   }
   return ms + 'ms';
@@ -130,23 +136,27 @@ function fmtShort(ms) {
  */
 
 function fmtLong(ms) {
-  return plural(ms, d, 'day') ||
-    plural(ms, h, 'hour') ||
-    plural(ms, m, 'minute') ||
-    plural(ms, s, 'second') ||
-    ms + ' ms';
+  var msAbs = Math.abs(ms);
+  if (msAbs >= d) {
+    return plural(ms, msAbs, d, 'day');
+  }
+  if (msAbs >= h) {
+    return plural(ms, msAbs, h, 'hour');
+  }
+  if (msAbs >= m) {
+    return plural(ms, msAbs, m, 'minute');
+  }
+  if (msAbs >= s) {
+    return plural(ms, msAbs, s, 'second');
+  }
+  return ms + ' ms';
 }
 
 /**
  * Pluralization helper.
  */
 
-function plural(ms, n, name) {
-  if (ms < n) {
-    return;
-  }
-  if (ms < n * 1.5) {
-    return Math.floor(ms / n) + ' ' + name;
-  }
-  return Math.ceil(ms / n) + ' ' + name + 's';
+function plural(ms, msAbs, n, name) {
+  var isPlural = msAbs >= n * 1.5;
+  return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
 }

+ 51 - 19
resources/app/node_modules/ms/package.json

@@ -1,16 +1,39 @@
 {
-  "name": "ms",
-  "version": "2.0.0",
-  "description": "Tiny milisecond conversion utility",
-  "repository": "zeit/ms",
-  "main": "./index",
-  "files": [
-    "index.js"
+  "_from": "ms@^2.1.1",
+  "_id": "ms@2.1.1",
+  "_inBundle": false,
+  "_integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+  "_location": "/ms",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "ms@^2.1.1",
+    "name": "ms",
+    "escapedName": "ms",
+    "rawSpec": "^2.1.1",
+    "saveSpec": null,
+    "fetchSpec": "^2.1.1"
+  },
+  "_requiredBy": [
+    "/debug"
   ],
-  "scripts": {
-    "precommit": "lint-staged",
-    "lint": "eslint lib/* bin/*",
-    "test": "mocha tests.js"
+  "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+  "_shasum": "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a",
+  "_spec": "ms@^2.1.1",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\debug",
+  "bugs": {
+    "url": "https://github.com/zeit/ms/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Tiny millisecond conversion utility",
+  "devDependencies": {
+    "eslint": "4.12.1",
+    "expect.js": "0.3.1",
+    "husky": "0.14.3",
+    "lint-staged": "5.0.0",
+    "mocha": "4.0.1"
   },
   "eslintConfig": {
     "extends": "eslint:recommended",
@@ -19,6 +42,11 @@
       "es6": true
     }
   },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/zeit/ms#readme",
+  "license": "MIT",
   "lint-staged": {
     "*.js": [
       "npm run lint",
@@ -26,12 +54,16 @@
       "git add"
     ]
   },
-  "license": "MIT",
-  "devDependencies": {
-    "eslint": "3.19.0",
-    "expect.js": "0.3.1",
-    "husky": "0.13.3",
-    "lint-staged": "3.4.1",
-    "mocha": "3.4.1"
-  }
+  "main": "./index",
+  "name": "ms",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/zeit/ms.git"
+  },
+  "scripts": {
+    "lint": "eslint lib/* bin/*",
+    "precommit": "lint-staged",
+    "test": "mocha tests.js"
+  },
+  "version": "2.1.1"
 }

+ 17 - 8
resources/app/node_modules/ms/readme.md

@@ -17,35 +17,44 @@ ms('1m')      // 60000
 ms('5s')      // 5000
 ms('1y')      // 31557600000
 ms('100')     // 100
+ms('-3 days') // -259200000
+ms('-1h')     // -3600000
+ms('-200')    // -200
 ```
 
-### Convert from milliseconds
+### Convert from Milliseconds
 
 ```js
 ms(60000)             // "1m"
 ms(2 * 60000)         // "2m"
+ms(-3 * 60000)        // "-3m"
 ms(ms('10 hours'))    // "10h"
 ```
 
-### Time format written-out
+### Time Format Written-Out
 
 ```js
 ms(60000, { long: true })             // "1 minute"
 ms(2 * 60000, { long: true })         // "2 minutes"
+ms(-3 * 60000, { long: true })        // "-3 minutes"
 ms(ms('10 hours'), { long: true })    // "10 hours"
 ```
 
 ## Features
 
-- Works both in [node](https://nodejs.org) and in the browser.
-- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
+- Works both in [Node.js](https://nodejs.org) and in the browser
+- If a number is supplied to `ms`, a string with a unit is returned
+- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`)
+- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned
 
-## Caught a bug?
+## Related Packages
+
+- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time.
+
+## Caught a Bug?
 
 1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
 2. Link the package to the global module directory: `npm link`
-3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
+3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms!
 
 As always, you can run the tests using: `npm test`

+ 50 - 17
resources/app/node_modules/readable-stream/package.json

@@ -1,32 +1,65 @@
 {
-  "name": "readable-stream",
-  "version": "1.0.34",
-  "description": "Streams2, a user-land copy of the stream library from Node.js v0.10.x",
-  "main": "readable.js",
+  "_from": "readable-stream@>=1.0.33-1 <1.1.0-0",
+  "_id": "readable-stream@1.0.34",
+  "_inBundle": false,
+  "_integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+  "_location": "/readable-stream",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "readable-stream@>=1.0.33-1 <1.1.0-0",
+    "name": "readable-stream",
+    "escapedName": "readable-stream",
+    "rawSpec": ">=1.0.33-1 <1.1.0-0",
+    "saveSpec": null,
+    "fetchSpec": ">=1.0.33-1 <1.1.0-0"
+  },
+  "_requiredBy": [
+    "/through2"
+  ],
+  "_resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+  "_shasum": "125820e34bc842d2f2aaafafe4c2916ee32c157c",
+  "_spec": "readable-stream@>=1.0.33-1 <1.1.0-0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\through2",
+  "author": {
+    "name": "Isaac Z. Schlueter",
+    "email": "i@izs.me",
+    "url": "http://blog.izs.me/"
+  },
+  "browser": {
+    "util": false
+  },
+  "bugs": {
+    "url": "https://github.com/isaacs/readable-stream/issues"
+  },
+  "bundleDependencies": false,
   "dependencies": {
     "core-util-is": "~1.0.0",
+    "inherits": "~2.0.1",
     "isarray": "0.0.1",
-    "string_decoder": "~0.10.x",
-    "inherits": "~2.0.1"
+    "string_decoder": "~0.10.x"
   },
+  "deprecated": false,
+  "description": "Streams2, a user-land copy of the stream library from Node.js v0.10.x",
   "devDependencies": {
     "tap": "~0.2.6"
   },
-  "scripts": {
-    "test": "tap test/simple/*.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/readable-stream"
-  },
+  "homepage": "https://github.com/isaacs/readable-stream#readme",
   "keywords": [
     "readable",
     "stream",
     "pipe"
   ],
-  "browser": {
-    "util": false
+  "license": "MIT",
+  "main": "readable.js",
+  "name": "readable-stream",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/isaacs/readable-stream.git"
+  },
+  "scripts": {
+    "test": "tap test/simple/*.js"
   },
-  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
-  "license": "MIT"
+  "version": "1.0.34"
 }

+ 12 - 15
resources/app/node_modules/regedit/node_modules/debug/package.json

@@ -1,32 +1,27 @@
 {
-  "_args": [
-    [
-      "debug@2.6.9",
-      "E:\\Client-Project\\UseStudio.CampusInfo\\resources\\app"
-    ]
-  ],
-  "_from": "debug@2.6.9",
+  "_from": "debug@^2.1.1",
   "_id": "debug@2.6.9",
   "_inBundle": false,
-  "_integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+  "_integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
   "_location": "/regedit/debug",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "debug@2.6.9",
+    "raw": "debug@^2.1.1",
     "name": "debug",
     "escapedName": "debug",
-    "rawSpec": "2.6.9",
+    "rawSpec": "^2.1.1",
     "saveSpec": null,
-    "fetchSpec": "2.6.9"
+    "fetchSpec": "^2.1.1"
   },
   "_requiredBy": [
     "/regedit"
   ],
-  "_resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
-  "_spec": "2.6.9",
-  "_where": "E:\\Client-Project\\UseStudio.CampusInfo\\resources\\app",
+  "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+  "_shasum": "5d128515df134ff327e90a4c93f4e077a536341f",
+  "_spec": "debug@^2.1.1",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\regedit",
   "author": {
     "name": "TJ Holowaychuk",
     "email": "tj@vision-media.ca"
@@ -35,6 +30,7 @@
   "bugs": {
     "url": "https://github.com/visionmedia/debug/issues"
   },
+  "bundleDependencies": false,
   "component": {
     "scripts": {
       "debug/index.js": "browser.js",
@@ -55,6 +51,7 @@
   "dependencies": {
     "ms": "2.0.0"
   },
+  "deprecated": false,
   "description": "small debugging utility",
   "devDependencies": {
     "browserify": "9.0.3",

+ 52 - 25
resources/app/node_modules/regedit/package.json

@@ -1,42 +1,69 @@
 {
-  "name": "regedit",
-  "version": "3.0.0",
-  "description": "Read, Write, List and do all sorts of funky stuff to the windows registry using node.js and windows script host",
-  "keywords": [
-    "windows",
-    "registry"
+  "_from": "regedit@^3.0.0",
+  "_id": "regedit@3.0.0",
+  "_inBundle": false,
+  "_integrity": "sha512-LzVCSTtl1PiR8meC1EJAt72XNI2BNPHHluQvpKsosP8xqm1kEGurSHpbdkEsAWFAJlSaou0+q2M6pTaAb2TkeQ==",
+  "_location": "/regedit",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "regedit@^3.0.0",
+    "name": "regedit",
+    "escapedName": "regedit",
+    "rawSpec": "^3.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^3.0.0"
+  },
+  "_requiredBy": [
+    "/"
   ],
-  "main": "index.js",
-  "scripts": {
-    "lint": "eslint . --fix",
-    "lint:src": "eslint . --fix --ignore-pattern test/",
-    "lint:test": "eslint test --fix",
-    "test": "mocha -R spec",
-    "prepush": "npm run lint"
+  "_resolved": "https://registry.npmjs.org/regedit/-/regedit-3.0.0.tgz",
+  "_shasum": "4bb4fe413d701b3c49ba3e40f70d4c8a8011555f",
+  "_spec": "regedit@^3.0.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app",
+  "author": {
+    "name": "Yaniv Kessler"
   },
+  "bugs": {
+    "url": "https://github.com/ironSource/node-regedit/issues"
+  },
+  "bundleDependencies": false,
   "dependencies": {
     "debug": "^2.1.1",
     "if-async": "^3.7.4",
     "stream-slicer": "0.0.6",
     "through2": "^0.6.3"
   },
-  "author": "Yaniv Kessler",
-  "bugs": {
-    "url": "https://github.com/ironSource/node-regedit/issues"
+  "deprecated": false,
+  "description": "Read, Write, List and do all sorts of funky stuff to the windows registry using node.js and windows script host",
+  "devDependencies": {
+    "eslint": "^3.19.0",
+    "husky": "^0.13.4",
+    "mocha": "^2.3.4",
+    "should": "^4.4.2"
   },
+  "homepage": "https://github.com/ironSource/node-regedit",
+  "keywords": [
+    "windows",
+    "registry"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "regedit",
   "os": [
     "win32"
   ],
   "repository": {
     "type": "git",
-    "url": "https://github.com/ironSource/node-regedit"
+    "url": "git+https://github.com/ironSource/node-regedit.git"
   },
-  "homepage": "https://github.com/ironSource/node-regedit",
-  "license": "MIT",
-  "devDependencies": {
-    "eslint": "^3.19.0",
-    "husky": "^0.13.4",
-    "mocha": "^2.3.4",
-    "should": "^4.4.2"
-  }
+  "scripts": {
+    "lint": "eslint . --fix",
+    "lint:src": "eslint . --fix --ignore-pattern test/",
+    "lint:test": "eslint test --fix",
+    "prepush": "npm run lint",
+    "test": "mocha -R spec"
+  },
+  "version": "3.0.0"
 }

+ 52 - 16
resources/app/node_modules/sax/package.json

@@ -1,25 +1,61 @@
 {
-  "name": "sax",
+  "_from": "sax@^1.2.4",
+  "_id": "sax@1.2.4",
+  "_inBundle": false,
+  "_integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+  "_location": "/sax",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "sax@^1.2.4",
+    "name": "sax",
+    "escapedName": "sax",
+    "rawSpec": "^1.2.4",
+    "saveSpec": null,
+    "fetchSpec": "^1.2.4"
+  },
+  "_requiredBy": [
+    "/builder-util-runtime"
+  ],
+  "_resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+  "_shasum": "2816234e2378bddc4e5354fab5caa895df7100d9",
+  "_spec": "sax@^1.2.4",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\builder-util-runtime",
+  "author": {
+    "name": "Isaac Z. Schlueter",
+    "email": "i@izs.me",
+    "url": "http://blog.izs.me/"
+  },
+  "bugs": {
+    "url": "https://github.com/isaacs/sax-js/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "An evented streaming XML parser in JavaScript",
-  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
-  "version": "1.2.4",
-  "main": "lib/sax.js",
-  "license": "ISC",
-  "scripts": {
-    "test": "tap test/*.js --cov -j4",
-    "posttest": "standard -F test/*.js lib/*.js",
-    "preversion": "npm test",
-    "postversion": "npm publish",
-    "postpublish": "git push origin --all; git push origin --tags"
+  "devDependencies": {
+    "standard": "^8.6.0",
+    "tap": "^10.5.1"
   },
-  "repository": "git://github.com/isaacs/sax-js.git",
   "files": [
     "lib/sax.js",
     "LICENSE",
     "README.md"
   ],
-  "devDependencies": {
-    "standard": "^8.6.0",
-    "tap": "^10.5.1"
-  }
+  "homepage": "https://github.com/isaacs/sax-js#readme",
+  "license": "ISC",
+  "main": "lib/sax.js",
+  "name": "sax",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/isaacs/sax-js.git"
+  },
+  "scripts": {
+    "postpublish": "git push origin --all; git push origin --tags",
+    "posttest": "standard -F test/*.js lib/*.js",
+    "postversion": "npm publish",
+    "preversion": "npm test",
+    "test": "tap test/*.js --cov -j4"
+  },
+  "version": "1.2.4"
 }

+ 16 - 5
resources/app/node_modules/semver/README.md

@@ -29,8 +29,6 @@ As a command-line utility:
 ```
 $ semver -h
 
-SemVer 5.3.0
-
 A JavaScript implementation of the http://semver.org/ specification
 Copyright Isaac Z. Schlueter
 
@@ -54,6 +52,9 @@ Options:
 -l --loose
         Interpret versions and ranges loosely
 
+-p --include-prerelease
+        Always include prerelease versions in range matching
+
 -c --coerce
         Coerce a string into SemVer if possible
         (does not imply --loose)
@@ -289,9 +290,19 @@ part       ::= nr | [-0-9A-Za-z]+
 
 ## Functions
 
-All methods and classes take a final `loose` boolean argument that, if
-true, will be more forgiving about not-quite-valid semver strings.
-The resulting output will always be 100% strict, of course.
+All methods and classes take a final `options` object argument.  All
+options in this object are `false` by default.  The options supported
+are:
+
+- `loose`  Be more forgiving about not-quite-valid semver strings.
+  (Any resulting output will always be 100% strict compliant, of
+  course.)  For backwards compatibility reasons, if the `options`
+  argument is a boolean value instead of an object, it is interpreted
+  to be the `loose` param.
+- `includePrerelease`  Set to suppress the [default
+  behavior](https://github.com/npm/node-semver#prerelease-tags) of
+  excluding prerelease tagged versions from ranges unless they are
+  explicitly opted into.
 
 Strict-mode Comparators and Ranges will be strict about the SemVer
 strings that they parse.

+ 14 - 4
resources/app/node_modules/semver/bin/semver

@@ -12,10 +12,12 @@ var argv = process.argv.slice(2)
   , inc = null
   , version = require("../package.json").version
   , loose = false
+  , includePrerelease = false
   , coerce = false
   , identifier = undefined
   , semver = require("../semver")
   , reverse = false
+  , options = {}
 
 main()
 
@@ -35,6 +37,9 @@ function main () {
       case "-l": case "--loose":
         loose = true
         break
+      case "-p": case "--include-prerelease":
+        includePrerelease = true
+        break
       case "-v": case "--version":
         versions.push(argv.shift())
         break
@@ -66,6 +71,8 @@ function main () {
     }
   }
 
+  var options = { loose: loose, includePrerelease: includePrerelease }
+
   versions = versions.map(function (v) {
     return coerce ? (semver.coerce(v) || {version: v}).version : v
   }).filter(function (v) {
@@ -77,7 +84,7 @@ function main () {
 
   for (var i = 0, l = range.length; i < l ; i ++) {
     versions = versions.filter(function (v) {
-      return semver.satisfies(v, range[i], loose)
+      return semver.satisfies(v, range[i], options)
     })
     if (!versions.length) return fail()
   }
@@ -94,11 +101,11 @@ function fail () { process.exit(1) }
 function success () {
   var compare = reverse ? "rcompare" : "compare"
   versions.sort(function (a, b) {
-    return semver[compare](a, b, loose)
+    return semver[compare](a, b, options)
   }).map(function (v) {
-    return semver.clean(v, loose)
+    return semver.clean(v, options)
   }).map(function (v) {
-    return inc ? semver.inc(v, inc, loose, identifier) : v
+    return inc ? semver.inc(v, inc, options, identifier) : v
   }).forEach(function (v,i,_) { console.log(v) })
 }
 
@@ -128,6 +135,9 @@ function help () {
               ,"-l --loose"
               ,"        Interpret versions and ranges loosely"
               ,""
+              ,"-p --include-prerelease"
+              ,"        Always include prerelease versions in range matching"
+              ,""
               ,"-c --coerce"
               ,"        Coerce a string into SemVer if possible"
               ,"        (does not imply --loose)"

+ 46 - 12
resources/app/node_modules/semver/package.json

@@ -1,22 +1,56 @@
 {
-  "name": "semver",
-  "version": "5.5.1",
-  "description": "The semantic version parser used by npm.",
-  "main": "semver.js",
-  "scripts": {
-    "test": "tap test/*.js --cov -J"
+  "_from": "semver@^5.5.1",
+  "_id": "semver@5.6.0",
+  "_inBundle": false,
+  "_integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+  "_location": "/semver",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "semver@^5.5.1",
+    "name": "semver",
+    "escapedName": "semver",
+    "rawSpec": "^5.5.1",
+    "saveSpec": null,
+    "fetchSpec": "^5.5.1"
   },
-  "devDependencies": {
-    "tap": "^12.0.1"
-  },
-  "license": "ISC",
-  "repository": "https://github.com/npm/node-semver",
+  "_requiredBy": [
+    "/electron-download",
+    "/electron-updater",
+    "/normalize-package-data"
+  ],
+  "_resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
+  "_shasum": "7e74256fbaa49c75aa7c7a205cc22799cac80004",
+  "_spec": "semver@^5.5.1",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\electron-updater",
   "bin": {
     "semver": "./bin/semver"
   },
+  "bugs": {
+    "url": "https://github.com/npm/node-semver/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "The semantic version parser used by npm.",
+  "devDependencies": {
+    "tap": "^12.0.1"
+  },
   "files": [
     "bin",
     "range.bnf",
     "semver.js"
-  ]
+  ],
+  "homepage": "https://github.com/npm/node-semver#readme",
+  "license": "ISC",
+  "main": "semver.js",
+  "name": "semver",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/npm/node-semver.git"
+  },
+  "scripts": {
+    "test": "tap test/*.js --cov -J"
+  },
+  "version": "5.6.0"
 }

+ 132 - 104
resources/app/node_modules/semver/semver.js

@@ -245,7 +245,10 @@ for (var i = 0; i < R; i++) {
 }
 
 exports.parse = parse;
-function parse(version, loose) {
+function parse(version, options) {
+  if (!options || typeof options !== 'object')
+    options = { loose: !!options, includePrerelease: false }
+
   if (version instanceof SemVer)
     return version;
 
@@ -255,35 +258,37 @@ function parse(version, loose) {
   if (version.length > MAX_LENGTH)
     return null;
 
-  var r = loose ? re[LOOSE] : re[FULL];
+  var r = options.loose ? re[LOOSE] : re[FULL];
   if (!r.test(version))
     return null;
 
   try {
-    return new SemVer(version, loose);
+    return new SemVer(version, options);
   } catch (er) {
     return null;
   }
 }
 
 exports.valid = valid;
-function valid(version, loose) {
-  var v = parse(version, loose);
+function valid(version, options) {
+  var v = parse(version, options);
   return v ? v.version : null;
 }
 
 
 exports.clean = clean;
-function clean(version, loose) {
-  var s = parse(version.trim().replace(/^[=v]+/, ''), loose);
+function clean(version, options) {
+  var s = parse(version.trim().replace(/^[=v]+/, ''), options);
   return s ? s.version : null;
 }
 
 exports.SemVer = SemVer;
 
-function SemVer(version, loose) {
+function SemVer(version, options) {
+  if (!options || typeof options !== 'object')
+    options = { loose: !!options, includePrerelease: false }
   if (version instanceof SemVer) {
-    if (version.loose === loose)
+    if (version.loose === options.loose)
       return version;
     else
       version = version.version;
@@ -295,11 +300,13 @@ function SemVer(version, loose) {
     throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
 
   if (!(this instanceof SemVer))
-    return new SemVer(version, loose);
+    return new SemVer(version, options);
+
+  debug('SemVer', version, options);
+  this.options = options;
+  this.loose = !!options.loose;
 
-  debug('SemVer', version, loose);
-  this.loose = loose;
-  var m = version.trim().match(loose ? re[LOOSE] : re[FULL]);
+  var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL]);
 
   if (!m)
     throw new TypeError('Invalid Version: ' + version);
@@ -349,16 +356,16 @@ SemVer.prototype.toString = function() {
 };
 
 SemVer.prototype.compare = function(other) {
-  debug('SemVer.compare', this.version, this.loose, other);
+  debug('SemVer.compare', this.version, this.options, other);
   if (!(other instanceof SemVer))
-    other = new SemVer(other, this.loose);
+    other = new SemVer(other, this.options);
 
   return this.compareMain(other) || this.comparePre(other);
 };
 
 SemVer.prototype.compareMain = function(other) {
   if (!(other instanceof SemVer))
-    other = new SemVer(other, this.loose);
+    other = new SemVer(other, this.options);
 
   return compareIdentifiers(this.major, other.major) ||
          compareIdentifiers(this.minor, other.minor) ||
@@ -367,7 +374,7 @@ SemVer.prototype.compareMain = function(other) {
 
 SemVer.prototype.comparePre = function(other) {
   if (!(other instanceof SemVer))
-    other = new SemVer(other, this.loose);
+    other = new SemVer(other, this.options);
 
   // NOT having a prerelease is > having one
   if (this.prerelease.length && !other.prerelease.length)
@@ -658,19 +665,23 @@ function cmp(a, op, b, loose) {
 }
 
 exports.Comparator = Comparator;
-function Comparator(comp, loose) {
+function Comparator(comp, options) {
+  if (!options || typeof options !== 'object')
+    options = { loose: !!options, includePrerelease: false }
+
   if (comp instanceof Comparator) {
-    if (comp.loose === loose)
+    if (comp.loose === !!options.loose)
       return comp;
     else
       comp = comp.value;
   }
 
   if (!(this instanceof Comparator))
-    return new Comparator(comp, loose);
+    return new Comparator(comp, options);
 
-  debug('comparator', comp, loose);
-  this.loose = loose;
+  debug('comparator', comp, options);
+  this.options = options;
+  this.loose = !!options.loose;
   this.parse(comp);
 
   if (this.semver === ANY)
@@ -683,7 +694,7 @@ function Comparator(comp, loose) {
 
 var ANY = {};
 Comparator.prototype.parse = function(comp) {
-  var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
+  var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
   var m = comp.match(r);
 
   if (!m)
@@ -697,7 +708,7 @@ Comparator.prototype.parse = function(comp) {
   if (!m[2])
     this.semver = ANY;
   else
-    this.semver = new SemVer(m[2], this.loose);
+    this.semver = new SemVer(m[2], this.options.loose);
 };
 
 Comparator.prototype.toString = function() {
@@ -705,30 +716,33 @@ Comparator.prototype.toString = function() {
 };
 
 Comparator.prototype.test = function(version) {
-  debug('Comparator.test', version, this.loose);
+  debug('Comparator.test', version, this.options.loose);
 
   if (this.semver === ANY)
     return true;
 
   if (typeof version === 'string')
-    version = new SemVer(version, this.loose);
+    version = new SemVer(version, this.options);
 
-  return cmp(version, this.operator, this.semver, this.loose);
+  return cmp(version, this.operator, this.semver, this.options);
 };
 
-Comparator.prototype.intersects = function(comp, loose) {
+Comparator.prototype.intersects = function(comp, options) {
   if (!(comp instanceof Comparator)) {
     throw new TypeError('a Comparator is required');
   }
 
+  if (!options || typeof options !== 'object')
+    options = { loose: !!options, includePrerelease: false }
+
   var rangeTmp;
 
   if (this.operator === '') {
-    rangeTmp = new Range(comp.value, loose);
-    return satisfies(this.value, rangeTmp, loose);
+    rangeTmp = new Range(comp.value, options);
+    return satisfies(this.value, rangeTmp, options);
   } else if (comp.operator === '') {
-    rangeTmp = new Range(this.value, loose);
-    return satisfies(comp.semver, rangeTmp, loose);
+    rangeTmp = new Range(this.value, options);
+    return satisfies(comp.semver, rangeTmp, options);
   }
 
   var sameDirectionIncreasing =
@@ -742,11 +756,11 @@ Comparator.prototype.intersects = function(comp, loose) {
     (this.operator === '>=' || this.operator === '<=') &&
     (comp.operator === '>=' || comp.operator === '<=');
   var oppositeDirectionsLessThan =
-    cmp(this.semver, '<', comp.semver, loose) &&
+    cmp(this.semver, '<', comp.semver, options) &&
     ((this.operator === '>=' || this.operator === '>') &&
     (comp.operator === '<=' || comp.operator === '<'));
   var oppositeDirectionsGreaterThan =
-    cmp(this.semver, '>', comp.semver, loose) &&
+    cmp(this.semver, '>', comp.semver, options) &&
     ((this.operator === '<=' || this.operator === '<') &&
     (comp.operator === '>=' || comp.operator === '>'));
 
@@ -757,23 +771,29 @@ Comparator.prototype.intersects = function(comp, loose) {
 
 
 exports.Range = Range;
-function Range(range, loose) {
+function Range(range, options) {
+  if (!options || typeof options !== 'object')
+    options = { loose: !!options, includePrerelease: false }
+
   if (range instanceof Range) {
-    if (range.loose === loose) {
+    if (range.loose === !!options.loose &&
+        range.includePrerelease === !!options.includePrerelease) {
       return range;
     } else {
-      return new Range(range.raw, loose);
+      return new Range(range.raw, options);
     }
   }
 
   if (range instanceof Comparator) {
-    return new Range(range.value, loose);
+    return new Range(range.value, options);
   }
 
   if (!(this instanceof Range))
-    return new Range(range, loose);
+    return new Range(range, options);
 
-  this.loose = loose;
+  this.options = options;
+  this.loose = !!options.loose;
+  this.includePrerelease = !!options.includePrerelease
 
   // First, split based on boolean or ||
   this.raw = range;
@@ -803,9 +823,8 @@ Range.prototype.toString = function() {
 };
 
 Range.prototype.parseRange = function(range) {
-  var loose = this.loose;
+  var loose = this.options.loose;
   range = range.trim();
-  debug('range', range, loose);
   // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
   var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE];
   range = range.replace(hr, hyphenReplace);
@@ -828,22 +847,22 @@ Range.prototype.parseRange = function(range) {
 
   var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
   var set = range.split(' ').map(function(comp) {
-    return parseComparator(comp, loose);
-  }).join(' ').split(/\s+/);
-  if (this.loose) {
+    return parseComparator(comp, this.options);
+  }, this).join(' ').split(/\s+/);
+  if (this.options.loose) {
     // in loose mode, throw out any that are not valid comparators
     set = set.filter(function(comp) {
       return !!comp.match(compRe);
     });
   }
   set = set.map(function(comp) {
-    return new Comparator(comp, loose);
-  });
+    return new Comparator(comp, this.options);
+  }, this);
 
   return set;
 };
 
-Range.prototype.intersects = function(range, loose) {
+Range.prototype.intersects = function(range, options) {
   if (!(range instanceof Range)) {
     throw new TypeError('a Range is required');
   }
@@ -852,7 +871,7 @@ Range.prototype.intersects = function(range, loose) {
     return thisComparators.every(function(thisComparator) {
       return range.set.some(function(rangeComparators) {
         return rangeComparators.every(function(rangeComparator) {
-          return thisComparator.intersects(rangeComparator, loose);
+          return thisComparator.intersects(rangeComparator, options);
         });
       });
     });
@@ -861,8 +880,8 @@ Range.prototype.intersects = function(range, loose) {
 
 // Mostly just for testing and legacy API reasons
 exports.toComparators = toComparators;
-function toComparators(range, loose) {
-  return new Range(range, loose).set.map(function(comp) {
+function toComparators(range, options) {
+  return new Range(range, options).set.map(function(comp) {
     return comp.map(function(c) {
       return c.value;
     }).join(' ').trim().split(' ');
@@ -872,15 +891,15 @@ function toComparators(range, loose) {
 // comprised of xranges, tildes, stars, and gtlt's at this point.
 // already replaced the hyphen ranges
 // turn into a set of JUST comparators.
-function parseComparator(comp, loose) {
-  debug('comp', comp);
-  comp = replaceCarets(comp, loose);
+function parseComparator(comp, options) {
+  debug('comp', comp, options);
+  comp = replaceCarets(comp, options);
   debug('caret', comp);
-  comp = replaceTildes(comp, loose);
+  comp = replaceTildes(comp, options);
   debug('tildes', comp);
-  comp = replaceXRanges(comp, loose);
+  comp = replaceXRanges(comp, options);
   debug('xrange', comp);
-  comp = replaceStars(comp, loose);
+  comp = replaceStars(comp, options);
   debug('stars', comp);
   return comp;
 }
@@ -895,14 +914,16 @@ function isX(id) {
 // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
 // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
 // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
-function replaceTildes(comp, loose) {
+function replaceTildes(comp, options) {
   return comp.trim().split(/\s+/).map(function(comp) {
-    return replaceTilde(comp, loose);
+    return replaceTilde(comp, options);
   }).join(' ');
 }
 
-function replaceTilde(comp, loose) {
-  var r = loose ? re[TILDELOOSE] : re[TILDE];
+function replaceTilde(comp, options) {
+  if (!options || typeof options !== 'object')
+    options = { loose: !!options, includePrerelease: false }
+  var r = options.loose ? re[TILDELOOSE] : re[TILDE];
   return comp.replace(r, function(_, M, m, p, pr) {
     debug('tilde', comp, _, M, m, p, pr);
     var ret;
@@ -936,15 +957,17 @@ function replaceTilde(comp, loose) {
 // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
 // ^1.2.3 --> >=1.2.3 <2.0.0
 // ^1.2.0 --> >=1.2.0 <2.0.0
-function replaceCarets(comp, loose) {
+function replaceCarets(comp, options) {
   return comp.trim().split(/\s+/).map(function(comp) {
-    return replaceCaret(comp, loose);
+    return replaceCaret(comp, options);
   }).join(' ');
 }
 
-function replaceCaret(comp, loose) {
-  debug('caret', comp, loose);
-  var r = loose ? re[CARETLOOSE] : re[CARET];
+function replaceCaret(comp, options) {
+  debug('caret', comp, options);
+  if (!options || typeof options !== 'object')
+    options = { loose: !!options, includePrerelease: false }
+  var r = options.loose ? re[CARETLOOSE] : re[CARET];
   return comp.replace(r, function(_, M, m, p, pr) {
     debug('caret', comp, _, M, m, p, pr);
     var ret;
@@ -991,16 +1014,18 @@ function replaceCaret(comp, loose) {
   });
 }
 
-function replaceXRanges(comp, loose) {
-  debug('replaceXRanges', comp, loose);
+function replaceXRanges(comp, options) {
+  debug('replaceXRanges', comp, options);
   return comp.split(/\s+/).map(function(comp) {
-    return replaceXRange(comp, loose);
+    return replaceXRange(comp, options);
   }).join(' ');
 }
 
-function replaceXRange(comp, loose) {
+function replaceXRange(comp, options) {
   comp = comp.trim();
-  var r = loose ? re[XRANGELOOSE] : re[XRANGE];
+  if (!options || typeof options !== 'object')
+    options = { loose: !!options, includePrerelease: false }
+  var r = options.loose ? re[XRANGELOOSE] : re[XRANGE];
   return comp.replace(r, function(ret, gtlt, M, m, p, pr) {
     debug('xRange', comp, ret, gtlt, M, m, p, pr);
     var xM = isX(M);
@@ -1064,8 +1089,8 @@ function replaceXRange(comp, loose) {
 
 // Because * is AND-ed with everything else in the comparator,
 // and '' means "any version", just remove the *s entirely.
-function replaceStars(comp, loose) {
-  debug('replaceStars', comp, loose);
+function replaceStars(comp, options) {
+  debug('replaceStars', comp, options);
   // Looseness is ignored here.  star is always as loose as it gets!
   return comp.trim().replace(re[STAR], '');
 }
@@ -1109,22 +1134,25 @@ Range.prototype.test = function(version) {
     return false;
 
   if (typeof version === 'string')
-    version = new SemVer(version, this.loose);
+    version = new SemVer(version, this.options);
 
   for (var i = 0; i < this.set.length; i++) {
-    if (testSet(this.set[i], version))
+    if (testSet(this.set[i], version, this.options))
       return true;
   }
   return false;
 };
 
-function testSet(set, version) {
+function testSet(set, version, options) {
   for (var i = 0; i < set.length; i++) {
     if (!set[i].test(version))
       return false;
   }
 
-  if (version.prerelease.length) {
+  if (!options)
+    options = {}
+
+  if (version.prerelease.length && !options.includePrerelease) {
     // Find the set of versions that are allowed to have prereleases
     // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
     // That should allow `1.2.3-pr.2` to pass.
@@ -1152,9 +1180,9 @@ function testSet(set, version) {
 }
 
 exports.satisfies = satisfies;
-function satisfies(version, range, loose) {
+function satisfies(version, range, options) {
   try {
-    range = new Range(range, loose);
+    range = new Range(range, options);
   } catch (er) {
     return false;
   }
@@ -1162,19 +1190,19 @@ function satisfies(version, range, loose) {
 }
 
 exports.maxSatisfying = maxSatisfying;
-function maxSatisfying(versions, range, loose) {
+function maxSatisfying(versions, range, options) {
   var max = null;
   var maxSV = null;
   try {
-    var rangeObj = new Range(range, loose);
+    var rangeObj = new Range(range, options);
   } catch (er) {
     return null;
   }
   versions.forEach(function (v) {
-    if (rangeObj.test(v)) { // satisfies(v, range, loose)
+    if (rangeObj.test(v)) { // satisfies(v, range, options)
       if (!max || maxSV.compare(v) === -1) { // compare(max, v, true)
         max = v;
-        maxSV = new SemVer(max, loose);
+        maxSV = new SemVer(max, options);
       }
     }
   })
@@ -1182,19 +1210,19 @@ function maxSatisfying(versions, range, loose) {
 }
 
 exports.minSatisfying = minSatisfying;
-function minSatisfying(versions, range, loose) {
+function minSatisfying(versions, range, options) {
   var min = null;
   var minSV = null;
   try {
-    var rangeObj = new Range(range, loose);
+    var rangeObj = new Range(range, options);
   } catch (er) {
     return null;
   }
   versions.forEach(function (v) {
-    if (rangeObj.test(v)) { // satisfies(v, range, loose)
+    if (rangeObj.test(v)) { // satisfies(v, range, options)
       if (!min || minSV.compare(v) === 1) { // compare(min, v, true)
         min = v;
-        minSV = new SemVer(min, loose);
+        minSV = new SemVer(min, options);
       }
     }
   })
@@ -1202,11 +1230,11 @@ function minSatisfying(versions, range, loose) {
 }
 
 exports.validRange = validRange;
-function validRange(range, loose) {
+function validRange(range, options) {
   try {
     // Return '*' instead of '' so that truthiness works.
     // This will throw if it's invalid anyway
-    return new Range(range, loose).range || '*';
+    return new Range(range, options).range || '*';
   } catch (er) {
     return null;
   }
@@ -1214,20 +1242,20 @@ function validRange(range, loose) {
 
 // Determine if version is less than all the versions possible in the range
 exports.ltr = ltr;
-function ltr(version, range, loose) {
-  return outside(version, range, '<', loose);
+function ltr(version, range, options) {
+  return outside(version, range, '<', options);
 }
 
 // Determine if version is greater than all the versions possible in the range.
 exports.gtr = gtr;
-function gtr(version, range, loose) {
-  return outside(version, range, '>', loose);
+function gtr(version, range, options) {
+  return outside(version, range, '>', options);
 }
 
 exports.outside = outside;
-function outside(version, range, hilo, loose) {
-  version = new SemVer(version, loose);
-  range = new Range(range, loose);
+function outside(version, range, hilo, options) {
+  version = new SemVer(version, options);
+  range = new Range(range, options);
 
   var gtfn, ltefn, ltfn, comp, ecomp;
   switch (hilo) {
@@ -1250,7 +1278,7 @@ function outside(version, range, hilo, loose) {
   }
 
   // If it satisifes the range it is not outside
-  if (satisfies(version, range, loose)) {
+  if (satisfies(version, range, options)) {
     return false;
   }
 
@@ -1269,9 +1297,9 @@ function outside(version, range, hilo, loose) {
       }
       high = high || comparator;
       low = low || comparator;
-      if (gtfn(comparator.semver, high.semver, loose)) {
+      if (gtfn(comparator.semver, high.semver, options)) {
         high = comparator;
-      } else if (ltfn(comparator.semver, low.semver, loose)) {
+      } else if (ltfn(comparator.semver, low.semver, options)) {
         low = comparator;
       }
     });
@@ -1295,15 +1323,15 @@ function outside(version, range, hilo, loose) {
 }
 
 exports.prerelease = prerelease;
-function prerelease(version, loose) {
-  var parsed = parse(version, loose);
+function prerelease(version, options) {
+  var parsed = parse(version, options);
   return (parsed && parsed.prerelease.length) ? parsed.prerelease : null;
 }
 
 exports.intersects = intersects;
-function intersects(r1, r2, loose) {
-  r1 = new Range(r1, loose)
-  r2 = new Range(r2, loose)
+function intersects(r1, r2, options) {
+  r1 = new Range(r1, options)
+  r2 = new Range(r2, options)
   return r1.intersects(r2)
 }
 

+ 39 - 13
resources/app/node_modules/source-map-support/package.json

@@ -1,18 +1,37 @@
 {
-  "name": "source-map-support",
-  "description": "Fixes stack traces for files with source maps",
-  "version": "0.5.9",
-  "main": "./source-map-support.js",
-  "scripts": {
-    "build": "node build.js",
-    "serve-tests": "http-server -p 1336",
-    "prepublish": "npm run build",
-    "test": "mocha"
+  "_from": "source-map-support@^0.5.9",
+  "_id": "source-map-support@0.5.9",
+  "_inBundle": false,
+  "_integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
+  "_location": "/source-map-support",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "source-map-support@^0.5.9",
+    "name": "source-map-support",
+    "escapedName": "source-map-support",
+    "rawSpec": "^0.5.9",
+    "saveSpec": null,
+    "fetchSpec": "^0.5.9"
+  },
+  "_requiredBy": [
+    "/electron-updater"
+  ],
+  "_resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
+  "_shasum": "41bc953b2534267ea2d605bccfa7bfa3111ced5f",
+  "_spec": "source-map-support@^0.5.9",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\electron-updater",
+  "bugs": {
+    "url": "https://github.com/evanw/node-source-map-support/issues"
   },
+  "bundleDependencies": false,
   "dependencies": {
     "buffer-from": "^1.0.0",
     "source-map": "^0.6.0"
   },
+  "deprecated": false,
+  "description": "Fixes stack traces for files with source maps",
   "devDependencies": {
     "browserify": "3.44.2",
     "coffee-script": "1.7.1",
@@ -20,12 +39,19 @@
     "mocha": "1.18.2",
     "webpack": "^1.13.3"
   },
+  "homepage": "https://github.com/evanw/node-source-map-support#readme",
+  "license": "MIT",
+  "main": "./source-map-support.js",
+  "name": "source-map-support",
   "repository": {
     "type": "git",
-    "url": "https://github.com/evanw/node-source-map-support"
+    "url": "git+https://github.com/evanw/node-source-map-support.git"
   },
-  "bugs": {
-    "url": "https://github.com/evanw/node-source-map-support/issues"
+  "scripts": {
+    "build": "node build.js",
+    "prepublish": "npm run build",
+    "serve-tests": "http-server -p 1336",
+    "test": "mocha"
   },
-  "license": "MIT"
+  "version": "0.5.9"
 }

+ 193 - 54
resources/app/node_modules/source-map/package.json

@@ -1,52 +1,190 @@
 {
-  "name": "source-map",
-  "description": "Generates and consumes source maps",
-  "version": "0.6.1",
-  "homepage": "https://github.com/mozilla/source-map",
-  "author": "Nick Fitzgerald <nfitzgerald@mozilla.com>",
+  "_from": "source-map@^0.6.0",
+  "_id": "source-map@0.6.1",
+  "_inBundle": false,
+  "_integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+  "_location": "/source-map",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "source-map@^0.6.0",
+    "name": "source-map",
+    "escapedName": "source-map",
+    "rawSpec": "^0.6.0",
+    "saveSpec": null,
+    "fetchSpec": "^0.6.0"
+  },
+  "_requiredBy": [
+    "/source-map-support"
+  ],
+  "_resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+  "_shasum": "74722af32e9614e9c287a8d0bbde48b5e2f1a263",
+  "_spec": "source-map@^0.6.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\source-map-support",
+  "author": {
+    "name": "Nick Fitzgerald",
+    "email": "nfitzgerald@mozilla.com"
+  },
+  "bugs": {
+    "url": "https://github.com/mozilla/source-map/issues"
+  },
+  "bundleDependencies": false,
   "contributors": [
-    "Tobias Koppers <tobias.koppers@googlemail.com>",
-    "Duncan Beevers <duncan@dweebd.com>",
-    "Stephen Crane <scrane@mozilla.com>",
-    "Ryan Seddon <seddon.ryan@gmail.com>",
-    "Miles Elam <miles.elam@deem.com>",
-    "Mihai Bazon <mihai.bazon@gmail.com>",
-    "Michael Ficarra <github.public.email@michael.ficarra.me>",
-    "Todd Wolfson <todd@twolfson.com>",
-    "Alexander Solovyov <alexander@solovyov.net>",
-    "Felix Gnass <fgnass@gmail.com>",
-    "Conrad Irwin <conrad.irwin@gmail.com>",
-    "usrbincc <usrbincc@yahoo.com>",
-    "David Glasser <glasser@davidglasser.net>",
-    "Chase Douglas <chase@newrelic.com>",
-    "Evan Wallace <evan.exe@gmail.com>",
-    "Heather Arthur <fayearthur@gmail.com>",
-    "Hugh Kennedy <hughskennedy@gmail.com>",
-    "David Glasser <glasser@davidglasser.net>",
-    "Simon Lydell <simon.lydell@gmail.com>",
-    "Jmeas Smith <jellyes2@gmail.com>",
-    "Michael Z Goddard <mzgoddard@gmail.com>",
-    "azu <azu@users.noreply.github.com>",
-    "John Gozde <john@gozde.ca>",
-    "Adam Kirkton <akirkton@truefitinnovation.com>",
-    "Chris Montgomery <christopher.montgomery@dowjones.com>",
-    "J. Ryan Stinnett <jryans@gmail.com>",
-    "Jack Herrington <jherrington@walmartlabs.com>",
-    "Chris Truter <jeffpalentine@gmail.com>",
-    "Daniel Espeset <daniel@danielespeset.com>",
-    "Jamie Wong <jamie.lf.wong@gmail.com>",
-    "Eddy Bruël <ejpbruel@mozilla.com>",
-    "Hawken Rives <hawkrives@gmail.com>",
-    "Gilad Peleg <giladp007@gmail.com>",
-    "djchie <djchie.dev@gmail.com>",
-    "Gary Ye <garysye@gmail.com>",
-    "Nicolas Lalevée <nicolas.lalevee@hibnet.org>"
+    {
+      "name": "Tobias Koppers",
+      "email": "tobias.koppers@googlemail.com"
+    },
+    {
+      "name": "Duncan Beevers",
+      "email": "duncan@dweebd.com"
+    },
+    {
+      "name": "Stephen Crane",
+      "email": "scrane@mozilla.com"
+    },
+    {
+      "name": "Ryan Seddon",
+      "email": "seddon.ryan@gmail.com"
+    },
+    {
+      "name": "Miles Elam",
+      "email": "miles.elam@deem.com"
+    },
+    {
+      "name": "Mihai Bazon",
+      "email": "mihai.bazon@gmail.com"
+    },
+    {
+      "name": "Michael Ficarra",
+      "email": "github.public.email@michael.ficarra.me"
+    },
+    {
+      "name": "Todd Wolfson",
+      "email": "todd@twolfson.com"
+    },
+    {
+      "name": "Alexander Solovyov",
+      "email": "alexander@solovyov.net"
+    },
+    {
+      "name": "Felix Gnass",
+      "email": "fgnass@gmail.com"
+    },
+    {
+      "name": "Conrad Irwin",
+      "email": "conrad.irwin@gmail.com"
+    },
+    {
+      "name": "usrbincc",
+      "email": "usrbincc@yahoo.com"
+    },
+    {
+      "name": "David Glasser",
+      "email": "glasser@davidglasser.net"
+    },
+    {
+      "name": "Chase Douglas",
+      "email": "chase@newrelic.com"
+    },
+    {
+      "name": "Evan Wallace",
+      "email": "evan.exe@gmail.com"
+    },
+    {
+      "name": "Heather Arthur",
+      "email": "fayearthur@gmail.com"
+    },
+    {
+      "name": "Hugh Kennedy",
+      "email": "hughskennedy@gmail.com"
+    },
+    {
+      "name": "David Glasser",
+      "email": "glasser@davidglasser.net"
+    },
+    {
+      "name": "Simon Lydell",
+      "email": "simon.lydell@gmail.com"
+    },
+    {
+      "name": "Jmeas Smith",
+      "email": "jellyes2@gmail.com"
+    },
+    {
+      "name": "Michael Z Goddard",
+      "email": "mzgoddard@gmail.com"
+    },
+    {
+      "name": "azu",
+      "email": "azu@users.noreply.github.com"
+    },
+    {
+      "name": "John Gozde",
+      "email": "john@gozde.ca"
+    },
+    {
+      "name": "Adam Kirkton",
+      "email": "akirkton@truefitinnovation.com"
+    },
+    {
+      "name": "Chris Montgomery",
+      "email": "christopher.montgomery@dowjones.com"
+    },
+    {
+      "name": "J. Ryan Stinnett",
+      "email": "jryans@gmail.com"
+    },
+    {
+      "name": "Jack Herrington",
+      "email": "jherrington@walmartlabs.com"
+    },
+    {
+      "name": "Chris Truter",
+      "email": "jeffpalentine@gmail.com"
+    },
+    {
+      "name": "Daniel Espeset",
+      "email": "daniel@danielespeset.com"
+    },
+    {
+      "name": "Jamie Wong",
+      "email": "jamie.lf.wong@gmail.com"
+    },
+    {
+      "name": "Eddy Bruël",
+      "email": "ejpbruel@mozilla.com"
+    },
+    {
+      "name": "Hawken Rives",
+      "email": "hawkrives@gmail.com"
+    },
+    {
+      "name": "Gilad Peleg",
+      "email": "giladp007@gmail.com"
+    },
+    {
+      "name": "djchie",
+      "email": "djchie.dev@gmail.com"
+    },
+    {
+      "name": "Gary Ye",
+      "email": "garysye@gmail.com"
+    },
+    {
+      "name": "Nicolas Lalevée",
+      "email": "nicolas.lalevee@hibnet.org"
+    }
   ],
-  "repository": {
-    "type": "git",
-    "url": "http://github.com/mozilla/source-map.git"
+  "deprecated": false,
+  "description": "Generates and consumes source maps",
+  "devDependencies": {
+    "doctoc": "^0.15.0",
+    "webpack": "^1.12.0"
+  },
+  "engines": {
+    "node": ">=0.10.0"
   },
-  "main": "./source-map.js",
   "files": [
     "source-map.js",
     "source-map.d.ts",
@@ -56,18 +194,19 @@
     "dist/source-map.min.js",
     "dist/source-map.min.js.map"
   ],
-  "engines": {
-    "node": ">=0.10.0"
-  },
+  "homepage": "https://github.com/mozilla/source-map",
   "license": "BSD-3-Clause",
+  "main": "./source-map.js",
+  "name": "source-map",
+  "repository": {
+    "type": "git",
+    "url": "git+ssh://git@github.com/mozilla/source-map.git"
+  },
   "scripts": {
-    "test": "npm run build && node test/run-tests.js",
     "build": "webpack --color",
+    "test": "npm run build && node test/run-tests.js",
     "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md"
   },
-  "devDependencies": {
-    "doctoc": "^0.15.0",
-    "webpack": "^1.12.0"
-  },
-  "typings": "source-map"
+  "typings": "source-map",
+  "version": "0.6.1"
 }

+ 51 - 19
resources/app/node_modules/sprintf-js/package.json

@@ -1,22 +1,54 @@
 {
+  "_from": "sprintf-js@~1.0.2",
+  "_id": "sprintf-js@1.0.3",
+  "_inBundle": false,
+  "_integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+  "_location": "/sprintf-js",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "sprintf-js@~1.0.2",
     "name": "sprintf-js",
-    "version": "1.0.3",
-    "description": "JavaScript sprintf implementation",
-    "author": "Alexandru Marasteanu <hello@alexei.ro> (http://alexei.ro/)",
-    "main": "src/sprintf.js",
-    "scripts": {
-        "test": "mocha test/test.js"
-    },
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/alexei/sprintf.js.git"
-    },
-    "license": "BSD-3-Clause",
-    "readmeFilename": "README.md",
-    "devDependencies": {
-        "mocha": "*",
-        "grunt": "*",
-        "grunt-contrib-watch": "*",
-        "grunt-contrib-uglify": "*"
-    }
+    "escapedName": "sprintf-js",
+    "rawSpec": "~1.0.2",
+    "saveSpec": null,
+    "fetchSpec": "~1.0.2"
+  },
+  "_requiredBy": [
+    "/argparse"
+  ],
+  "_resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+  "_shasum": "04e6926f662895354f3dd015203633b857297e2c",
+  "_spec": "sprintf-js@~1.0.2",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\argparse",
+  "author": {
+    "name": "Alexandru Marasteanu",
+    "email": "hello@alexei.ro",
+    "url": "http://alexei.ro/"
+  },
+  "bugs": {
+    "url": "https://github.com/alexei/sprintf.js/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "JavaScript sprintf implementation",
+  "devDependencies": {
+    "grunt": "*",
+    "grunt-contrib-uglify": "*",
+    "grunt-contrib-watch": "*",
+    "mocha": "*"
+  },
+  "homepage": "https://github.com/alexei/sprintf.js#readme",
+  "license": "BSD-3-Clause",
+  "main": "src/sprintf.js",
+  "name": "sprintf-js",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/alexei/sprintf.js.git"
+  },
+  "scripts": {
+    "test": "mocha test/test.js"
+  },
+  "version": "1.0.3"
 }

+ 43 - 9
resources/app/node_modules/stream-slicer/package.json

@@ -1,16 +1,50 @@
 {
-  "name": "stream-slicer",
-  "version": "0.0.6",
-  "description": "Slice another stream via a transform stream",
-  "main": "index.js",
-  "scripts": {
-    "test": "mocha"
+  "_from": "stream-slicer@0.0.6",
+  "_id": "stream-slicer@0.0.6",
+  "_inBundle": false,
+  "_integrity": "sha1-+GsqxcJEC3oKh7cfM2ZcB4gEYTg=",
+  "_location": "/stream-slicer",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "version",
+    "registry": true,
+    "raw": "stream-slicer@0.0.6",
+    "name": "stream-slicer",
+    "escapedName": "stream-slicer",
+    "rawSpec": "0.0.6",
+    "saveSpec": null,
+    "fetchSpec": "0.0.6"
+  },
+  "_requiredBy": [
+    "/regedit"
+  ],
+  "_resolved": "https://registry.npmjs.org/stream-slicer/-/stream-slicer-0.0.6.tgz",
+  "_shasum": "f86b2ac5c2440b7a0a87b71f33665c0788046138",
+  "_spec": "stream-slicer@0.0.6",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\regedit",
+  "author": {
+    "name": "Yaniv Kessler"
+  },
+  "bugs": {
+    "url": "https://github.com/kessler/stream-slicer/issues"
   },
-  "repository": "https://github.com/kessler/stream-slicer",
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Slice another stream via a transform stream",
+  "homepage": "https://github.com/kessler/stream-slicer#readme",
   "keywords": [
     "transform",
     "stream"
   ],
-  "author": "Yaniv Kessler",
-  "license": "MIT"
+  "license": "MIT",
+  "main": "index.js",
+  "name": "stream-slicer",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/kessler/stream-slicer.git"
+  },
+  "scripts": {
+    "test": "mocha"
+  },
+  "version": "0.0.6"
 }

+ 41 - 12
resources/app/node_modules/string_decoder/package.json

@@ -1,19 +1,38 @@
 {
-  "name": "string_decoder",
-  "version": "0.10.31",
-  "description": "The string_decoder module from Node core",
-  "main": "index.js",
+  "_from": "string_decoder@~0.10.x",
+  "_id": "string_decoder@0.10.31",
+  "_inBundle": false,
+  "_integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+  "_location": "/string_decoder",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "string_decoder@~0.10.x",
+    "name": "string_decoder",
+    "escapedName": "string_decoder",
+    "rawSpec": "~0.10.x",
+    "saveSpec": null,
+    "fetchSpec": "~0.10.x"
+  },
+  "_requiredBy": [
+    "/progress-stream/readable-stream",
+    "/readable-stream"
+  ],
+  "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+  "_shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94",
+  "_spec": "string_decoder@~0.10.x",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\readable-stream",
+  "bugs": {
+    "url": "https://github.com/rvagg/string_decoder/issues"
+  },
+  "bundleDependencies": false,
   "dependencies": {},
+  "deprecated": false,
+  "description": "The string_decoder module from Node core",
   "devDependencies": {
     "tap": "~0.4.8"
   },
-  "scripts": {
-    "test": "tap test/simple/*.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/rvagg/string_decoder.git"
-  },
   "homepage": "https://github.com/rvagg/string_decoder",
   "keywords": [
     "string",
@@ -21,5 +40,15 @@
     "browser",
     "browserify"
   ],
-  "license": "MIT"
+  "license": "MIT",
+  "main": "index.js",
+  "name": "string_decoder",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/rvagg/string_decoder.git"
+  },
+  "scripts": {
+    "test": "tap test/simple/*.js"
+  },
+  "version": "0.10.31"
 }

+ 52 - 19
resources/app/node_modules/through2/package.json

@@ -1,31 +1,64 @@
 {
-  "name": "through2",
-  "version": "0.6.5",
-  "description": "A tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise",
-  "main": "through2.js",
-  "scripts": {
-    "test": "node test/test.js",
-    "test-local": "brtapsauce-local test/basic-test.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/rvagg/through2.git"
+  "_from": "through2@^0.6.3",
+  "_id": "through2@0.6.5",
+  "_inBundle": false,
+  "_integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+  "_location": "/through2",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "through2@^0.6.3",
+    "name": "through2",
+    "escapedName": "through2",
+    "rawSpec": "^0.6.3",
+    "saveSpec": null,
+    "fetchSpec": "^0.6.3"
   },
-  "keywords": [
-    "stream",
-    "streams2",
-    "through",
-    "transform"
+  "_requiredBy": [
+    "/regedit"
   ],
-  "author": "Rod Vagg <r@va.gg> (https://github.com/rvagg)",
-  "license": "MIT",
+  "_resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+  "_shasum": "41ab9c67b29d57209071410e1d7a7a968cd3ad48",
+  "_spec": "through2@^0.6.3",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\regedit",
+  "author": {
+    "name": "Rod Vagg",
+    "email": "r@va.gg",
+    "url": "https://github.com/rvagg"
+  },
+  "bugs": {
+    "url": "https://github.com/rvagg/through2/issues"
+  },
+  "bundleDependencies": false,
   "dependencies": {
     "readable-stream": ">=1.0.33-1 <1.1.0-0",
     "xtend": ">=4.0.0 <4.1.0-0"
   },
+  "deprecated": false,
+  "description": "A tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise",
   "devDependencies": {
     "bl": ">=0.9.0 <0.10.0-0",
     "stream-spigot": ">=3.0.4 <3.1.0-0",
     "tape": ">=2.14.0 <2.15.0-0"
-  }
+  },
+  "homepage": "https://github.com/rvagg/through2#readme",
+  "keywords": [
+    "stream",
+    "streams2",
+    "through",
+    "transform"
+  ],
+  "license": "MIT",
+  "main": "through2.js",
+  "name": "through2",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/rvagg/through2.git"
+  },
+  "scripts": {
+    "test": "node test/test.js",
+    "test-local": "brtapsauce-local test/basic-test.js"
+  },
+  "version": "0.6.5"
 }

+ 48 - 18
resources/app/node_modules/universalify/package.json

@@ -1,19 +1,58 @@
 {
-  "name": "universalify",
-  "version": "0.1.2",
+  "_from": "universalify@^0.1.0",
+  "_id": "universalify@0.1.2",
+  "_inBundle": false,
+  "_integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+  "_location": "/universalify",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "universalify@^0.1.0",
+    "name": "universalify",
+    "escapedName": "universalify",
+    "rawSpec": "^0.1.0",
+    "saveSpec": null,
+    "fetchSpec": "^0.1.0"
+  },
+  "_requiredBy": [
+    "/fs-extra"
+  ],
+  "_resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+  "_shasum": "b646f69be3942dabcecc9d6639c80dc105efaa66",
+  "_spec": "universalify@^0.1.0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\fs-extra",
+  "author": {
+    "name": "Ryan Zimmerman",
+    "email": "opensrc@ryanzim.com"
+  },
+  "bugs": {
+    "url": "https://github.com/RyanZim/universalify/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Make a callback- or promise-based function support both promises and callbacks.",
+  "devDependencies": {
+    "colortape": "^0.1.2",
+    "coveralls": "^3.0.1",
+    "nyc": "^10.2.0",
+    "standard": "^10.0.1",
+    "tape": "^4.6.3"
+  },
+  "engines": {
+    "node": ">= 4.0.0"
+  },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/RyanZim/universalify#readme",
   "keywords": [
     "callback",
     "native",
     "promise"
   ],
-  "homepage": "https://github.com/RyanZim/universalify#readme",
-  "bugs": "https://github.com/RyanZim/universalify/issues",
   "license": "MIT",
-  "author": "Ryan Zimmerman <opensrc@ryanzim.com>",
-  "files": [
-    "index.js"
-  ],
+  "name": "universalify",
   "repository": {
     "type": "git",
     "url": "git+https://github.com/RyanZim/universalify.git"
@@ -21,14 +60,5 @@
   "scripts": {
     "test": "standard && nyc tape test/*.js | colortape"
   },
-  "devDependencies": {
-    "colortape": "^0.1.2",
-    "coveralls": "^3.0.1",
-    "nyc": "^10.2.0",
-    "standard": "^10.0.1",
-    "tape": "^4.6.3"
-  },
-  "engines": {
-    "node": ">= 4.0.0"
-  }
+  "version": "0.1.2"
 }

+ 56 - 25
resources/app/node_modules/xtend/package.json

@@ -1,26 +1,36 @@
 {
-  "name": "xtend",
-  "version": "4.0.1",
-  "description": "extend like a boss",
-  "keywords": [
-    "extend",
-    "merge",
-    "options",
-    "opts",
-    "object",
-    "array"
+  "_from": "xtend@>=4.0.0 <4.1.0-0",
+  "_id": "xtend@4.0.1",
+  "_inBundle": false,
+  "_integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+  "_location": "/xtend",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "xtend@>=4.0.0 <4.1.0-0",
+    "name": "xtend",
+    "escapedName": "xtend",
+    "rawSpec": ">=4.0.0 <4.1.0-0",
+    "saveSpec": null,
+    "fetchSpec": ">=4.0.0 <4.1.0-0"
+  },
+  "_requiredBy": [
+    "/through2"
   ],
-  "author": "Raynos <raynos2@gmail.com>",
-  "repository": "git://github.com/Raynos/xtend.git",
-  "main": "immutable",
-  "scripts": {
-    "test": "node test"
+  "_resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+  "_shasum": "a5c6d532be656e23db820efb943a1f04998d63af",
+  "_spec": "xtend@>=4.0.0 <4.1.0-0",
+  "_where": "E:\\ClientProject\\UseStudio.Browers\\resources\\app\\node_modules\\through2",
+  "author": {
+    "name": "Raynos",
+    "email": "raynos2@gmail.com"
   },
-  "dependencies": {},
-  "devDependencies": {
-    "tape": "~1.1.0"
+  "bugs": {
+    "url": "https://github.com/Raynos/xtend/issues",
+    "email": "raynos2@gmail.com"
   },
-  "homepage": "https://github.com/Raynos/xtend",
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Jake Verbaten"
@@ -29,11 +39,34 @@
       "name": "Matt Esch"
     }
   ],
-  "bugs": {
-    "url": "https://github.com/Raynos/xtend/issues",
-    "email": "raynos2@gmail.com"
+  "dependencies": {},
+  "deprecated": false,
+  "description": "extend like a boss",
+  "devDependencies": {
+    "tape": "~1.1.0"
+  },
+  "engines": {
+    "node": ">=0.4"
   },
+  "homepage": "https://github.com/Raynos/xtend",
+  "keywords": [
+    "extend",
+    "merge",
+    "options",
+    "opts",
+    "object",
+    "array"
+  ],
   "license": "MIT",
+  "main": "immutable",
+  "name": "xtend",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/Raynos/xtend.git"
+  },
+  "scripts": {
+    "test": "node test"
+  },
   "testling": {
     "files": "test.js",
     "browsers": [
@@ -49,7 +82,5 @@
       "iphone/6.0..latest"
     ]
   },
-  "engines": {
-    "node": ">=0.4"
-  }
+  "version": "4.0.1"
 }

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1332 - 79
resources/app/package-lock.json


+ 5 - 2
resources/app/package.json

@@ -3,7 +3,7 @@
   "main": "main.js",
   "private": true,
   "productName": "Usestudio-Browser",
-  "version": "2.2.4",
+  "version": "2.3.0",
   "author": "ZJINH",
   "email": "211775259@qq.com",
   "dependencies": {
@@ -12,6 +12,9 @@
     "regedit": "^3.0.0",
     "winreg": "^1.2.4"
   },
+  "devDependencies": {
+    "electron": "^2.0.3"
+  },
   "build": {
     "publish": [
       {
@@ -25,7 +28,7 @@
     },
     "win": {
       "icon": "public\\img\\tray\\app.ico",
-      "artifactName": "${productName}_setup_${version}.${ext}",
+      "artifactName": "${productName}_setup.${ext}",
       "target": [
         "nsis"
       ]