mirror of
https://github.com/artegoser/pimi-launcher-core.git
synced 2024-11-22 20:26:22 +03:00
OS path friendly, should address #8.
Also refactored code! Thanks Melon!
This commit is contained in:
parent
e207529dac
commit
fd534159c8
3 changed files with 89 additions and 98 deletions
|
@ -13,6 +13,7 @@ function downloadAsync (url, directory, name) {
|
||||||
const _request = request(url, {timeout: 10000});
|
const _request = request(url, {timeout: 10000});
|
||||||
|
|
||||||
_request.on('error', function(error) {
|
_request.on('error', function(error) {
|
||||||
|
shelljs.rm(path.join(directory, name)); // Prevents duplicates.
|
||||||
resolve({
|
resolve({
|
||||||
failed: true,
|
failed: true,
|
||||||
asset: {
|
asset: {
|
||||||
|
@ -87,7 +88,7 @@ module.exports.getAssets = function (directory, version) {
|
||||||
|
|
||||||
const index = require(path.join(directory, 'assets', 'indexes',`${version.assetIndex.id}.json`));
|
const index = require(path.join(directory, 'assets', 'indexes',`${version.assetIndex.id}.json`));
|
||||||
|
|
||||||
const mainAssetsDownload = Object.keys(index.objects).map(async asset => {
|
await Promise.all(Object.keys(index.objects).map(async asset => {
|
||||||
const hash = index.objects[asset].hash;
|
const hash = index.objects[asset].hash;
|
||||||
const subhash = hash.substring(0,2);
|
const subhash = hash.substring(0,2);
|
||||||
const assetDirectory = path.join(directory, 'assets', 'objects', subhash);
|
const assetDirectory = path.join(directory, 'assets', 'objects', subhash);
|
||||||
|
@ -97,9 +98,7 @@ module.exports.getAssets = function (directory, version) {
|
||||||
|
|
||||||
if(download.failed) failed.push(download.asset);
|
if(download.failed) failed.push(download.asset);
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
|
|
||||||
await Promise.all(mainAssetsDownload);
|
|
||||||
|
|
||||||
// why do we have this? B/c sometimes Minecraft's resource site times out!
|
// why do we have this? B/c sometimes Minecraft's resource site times out!
|
||||||
if(failed) {
|
if(failed) {
|
||||||
|
@ -108,7 +107,7 @@ module.exports.getAssets = function (directory, version) {
|
||||||
|
|
||||||
// Copy assets to legacy if it's an older Minecarft version.
|
// Copy assets to legacy if it's an older Minecarft version.
|
||||||
if(version.assets === "legacy" || version.assets === "pre-1.6") {
|
if(version.assets === "legacy" || version.assets === "pre-1.6") {
|
||||||
const legacyCopy = Object.keys(index.objects).map(async asset => {
|
await Promise.all(Object.keys(index.objects).map(async asset => {
|
||||||
const hash = index.objects[asset].hash;
|
const hash = index.objects[asset].hash;
|
||||||
const subhash = hash.substring(0,2);
|
const subhash = hash.substring(0,2);
|
||||||
const assetDirectory = path.join(directory, 'assets', 'objects', subhash);
|
const assetDirectory = path.join(directory, 'assets', 'objects', subhash);
|
||||||
|
@ -123,9 +122,7 @@ module.exports.getAssets = function (directory, version) {
|
||||||
if (!fs.existsSync(path.join(directory, 'assets', 'legacy', asset))) {
|
if (!fs.existsSync(path.join(directory, 'assets', 'legacy', asset))) {
|
||||||
fs.copyFileSync(path.join(assetDirectory, hash), path.join(directory, 'assets', 'legacy', asset))
|
fs.copyFileSync(path.join(assetDirectory, hash), path.join(directory, 'assets', 'legacy', asset))
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
|
|
||||||
await Promise.all(legacyCopy);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve();
|
resolve();
|
||||||
|
@ -143,7 +140,7 @@ module.exports.getNatives = function (root, version, os) {
|
||||||
|
|
||||||
shelljs.mkdir('-p', nativeDirectory);
|
shelljs.mkdir('-p', nativeDirectory);
|
||||||
|
|
||||||
const download = version.libraries.map(async function (lib) {
|
await Promise.all(version.libraries.map(async function (lib) {
|
||||||
if (!lib.downloads.classifiers) return;
|
if (!lib.downloads.classifiers) return;
|
||||||
const type = `natives-${os}`;
|
const type = `natives-${os}`;
|
||||||
const native = lib.downloads.classifiers[type];
|
const native = lib.downloads.classifiers[type];
|
||||||
|
@ -159,9 +156,7 @@ module.exports.getNatives = function (root, version, os) {
|
||||||
}
|
}
|
||||||
shelljs.rm(path.join(nativeDirectory, name));
|
shelljs.rm(path.join(nativeDirectory, name));
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
|
|
||||||
await Promise.all(download);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve(nativeDirectory);
|
resolve(nativeDirectory);
|
||||||
|
@ -175,12 +170,11 @@ module.exports.getForgeDependencies = async function(root, version, forgeJarPath
|
||||||
await new zip(forgeJarPath).extractEntryTo('version.json', path.join(root, 'forge', `${version.id}`), false, true);
|
await new zip(forgeJarPath).extractEntryTo('version.json', path.join(root, 'forge', `${version.id}`), false, true);
|
||||||
|
|
||||||
const forge = require(path.join(root, 'forge', `${version.id}`, 'version.json'));
|
const forge = require(path.join(root, 'forge', `${version.id}`, 'version.json'));
|
||||||
const forgeLibs = forge.libraries;
|
|
||||||
const mavenUrl = 'http://files.minecraftforge.net/maven/';
|
const mavenUrl = 'http://files.minecraftforge.net/maven/';
|
||||||
const defaultRepo = 'https://libraries.minecraft.net/';
|
const defaultRepo = 'https://libraries.minecraft.net/';
|
||||||
const paths = [];
|
const paths = [];
|
||||||
|
|
||||||
const download = forgeLibs.map(async library => {
|
await Promise.all(forge.libraries.map(async library => {
|
||||||
const lib = library.name.split(':');
|
const lib = library.name.split(':');
|
||||||
|
|
||||||
if(lib[0] === 'net.minecraftforge' && lib[1].includes('forge')) return;
|
if(lib[0] === 'net.minecraftforge' && lib[1].includes('forge')) return;
|
||||||
|
@ -200,17 +194,15 @@ module.exports.getForgeDependencies = async function(root, version, forgeJarPath
|
||||||
const downloadLink = `${url}${lib[0].replace(/\./g, '/')}/${lib[1]}/${lib[2]}/${lib[1]}-${lib[2]}.jar`;
|
const downloadLink = `${url}${lib[0].replace(/\./g, '/')}/${lib[1]}/${lib[2]}/${lib[1]}-${lib[2]}.jar`;
|
||||||
|
|
||||||
if(fs.existsSync(path.join(jarPath, name))) {
|
if(fs.existsSync(path.join(jarPath, name))) {
|
||||||
paths.push(`${jarPath}\\${name}`);
|
paths.push(`${jarPath}${path.sep}${name}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!fs.existsSync(jarPath)) shelljs.mkdir('-p', jarPath);
|
if(!fs.existsSync(jarPath)) shelljs.mkdir('-p', jarPath);
|
||||||
|
|
||||||
await downloadAsync(downloadLink, jarPath, name);
|
await downloadAsync(downloadLink, jarPath, name);
|
||||||
|
|
||||||
paths.push(`${jarPath}\\${name}`);
|
paths.push(`${jarPath}${path.sep}${name}`);
|
||||||
});
|
}));
|
||||||
|
|
||||||
await Promise.all(download);
|
|
||||||
|
|
||||||
return {paths, forge};
|
return {paths, forge};
|
||||||
};
|
};
|
||||||
|
@ -227,11 +219,11 @@ module.exports.getClasses = function (options, version) {
|
||||||
const jarPath = path.join(options.root, 'libraries', `${lib[0].replace(/\./g, '/')}/${lib[1]}/${lib[2]}`);
|
const jarPath = path.join(options.root, 'libraries', `${lib[0].replace(/\./g, '/')}/${lib[1]}/${lib[2]}`);
|
||||||
const name = `${lib[1]}-${lib[2]}.jar`;
|
const name = `${lib[1]}-${lib[2]}.jar`;
|
||||||
|
|
||||||
libs.push(`${jarPath}\\${name}`);
|
libs.push(`${jarPath}/${name}`);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const libraries = version.libraries.map(async (_lib) => {
|
await Promise.all(version.libraries.map(async (_lib) => {
|
||||||
if(!_lib.downloads.artifact) return;
|
if(!_lib.downloads.artifact) return;
|
||||||
|
|
||||||
const libraryPath = _lib.downloads.artifact.path;
|
const libraryPath = _lib.downloads.artifact.path;
|
||||||
|
@ -239,17 +231,15 @@ module.exports.getClasses = function (options, version) {
|
||||||
const libraryDirectory = path.join(options.root, 'libraries', libraryPath);
|
const libraryDirectory = path.join(options.root, 'libraries', libraryPath);
|
||||||
|
|
||||||
if(!fs.existsSync(libraryDirectory)) {
|
if(!fs.existsSync(libraryDirectory)) {
|
||||||
let directory = libraryDirectory.split('\\');
|
let directory = libraryDirectory.split(path.sep);
|
||||||
const name = directory.pop();
|
const name = directory.pop();
|
||||||
directory = directory.join('\\');
|
directory = directory.join(path.sep);
|
||||||
|
|
||||||
await downloadAsync(libraryUrl, directory, name);
|
await downloadAsync(libraryUrl, directory, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
libs.push(libraryDirectory);
|
libs.push(libraryDirectory);
|
||||||
});
|
}));
|
||||||
|
|
||||||
await Promise.all(libraries);
|
|
||||||
|
|
||||||
resolve(libs)
|
resolve(libs)
|
||||||
});
|
});
|
||||||
|
|
|
@ -6,6 +6,7 @@ const fs = require('fs');
|
||||||
|
|
||||||
|
|
||||||
module.exports = async function (options) {
|
module.exports = async function (options) {
|
||||||
|
options.root = path.normalize(options.root);
|
||||||
if(!fs.existsSync(options.root)) fs.mkdirSync(options.root);
|
if(!fs.existsSync(options.root)) fs.mkdirSync(options.root);
|
||||||
|
|
||||||
if(options.clientPackage) {
|
if(options.clientPackage) {
|
||||||
|
|
144
package-lock.json
generated
144
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "mcclauncher",
|
"name": "minecraft-launcher-core",
|
||||||
"version": "0.0.1",
|
"version": "2.5.6",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -14,10 +14,10 @@
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
|
||||||
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
|
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"co": "4.6.0",
|
"co": "^4.6.0",
|
||||||
"fast-deep-equal": "1.1.0",
|
"fast-deep-equal": "^1.0.0",
|
||||||
"fast-json-stable-stringify": "2.0.0",
|
"fast-json-stable-stringify": "^2.0.0",
|
||||||
"json-schema-traverse": "0.3.1"
|
"json-schema-traverse": "^0.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"asn1": {
|
"asn1": {
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||||
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
|
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"safer-buffer": "2.1.2"
|
"safer-buffer": "~2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"assert-plus": {
|
"assert-plus": {
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"tweetnacl": "0.14.5"
|
"tweetnacl": "^0.14.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
||||||
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"delayed-stream": "1.0.0"
|
"delayed-stream": "~1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
|
@ -104,7 +104,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||||
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "1.0.0"
|
"assert-plus": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"delayed-stream": {
|
"delayed-stream": {
|
||||||
|
@ -118,8 +118,8 @@
|
||||||
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
|
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"jsbn": "0.1.1",
|
"jsbn": "~0.1.0",
|
||||||
"safer-buffer": "2.1.2"
|
"safer-buffer": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"extend": {
|
"extend": {
|
||||||
|
@ -152,9 +152,9 @@
|
||||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
||||||
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"asynckit": "0.4.0",
|
"asynckit": "^0.4.0",
|
||||||
"combined-stream": "1.0.6",
|
"combined-stream": "1.0.6",
|
||||||
"mime-types": "2.1.20"
|
"mime-types": "^2.1.12"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"combined-stream": {
|
"combined-stream": {
|
||||||
|
@ -162,7 +162,7 @@
|
||||||
"resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
"resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
||||||
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"delayed-stream": "1.0.0"
|
"delayed-stream": "~1.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -177,7 +177,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||||
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "1.0.0"
|
"assert-plus": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"glob": {
|
"glob": {
|
||||||
|
@ -185,12 +185,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
|
||||||
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
|
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"fs.realpath": "1.0.0",
|
"fs.realpath": "^1.0.0",
|
||||||
"inflight": "1.0.6",
|
"inflight": "^1.0.4",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2",
|
||||||
"minimatch": "3.0.4",
|
"minimatch": "^3.0.4",
|
||||||
"once": "1.4.0",
|
"once": "^1.3.0",
|
||||||
"path-is-absolute": "1.0.1"
|
"path-is-absolute": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"har-schema": {
|
"har-schema": {
|
||||||
|
@ -203,8 +203,8 @@
|
||||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
|
||||||
"integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
|
"integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ajv": "5.5.2",
|
"ajv": "^5.3.0",
|
||||||
"har-schema": "2.0.0"
|
"har-schema": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"http-signature": {
|
"http-signature": {
|
||||||
|
@ -212,9 +212,9 @@
|
||||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "1.0.0",
|
"assert-plus": "^1.0.0",
|
||||||
"jsprim": "1.4.1",
|
"jsprim": "^1.2.2",
|
||||||
"sshpk": "1.14.2"
|
"sshpk": "^1.7.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"inflight": {
|
"inflight": {
|
||||||
|
@ -222,8 +222,8 @@
|
||||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"once": "1.4.0",
|
"once": "^1.3.0",
|
||||||
"wrappy": "1.0.2"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"inherits": {
|
"inherits": {
|
||||||
|
@ -288,7 +288,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
|
||||||
"integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
|
"integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"mime-db": "1.36.0"
|
"mime-db": "~1.36.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimatch": {
|
"minimatch": {
|
||||||
|
@ -296,7 +296,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "1.1.11"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node-fetch": {
|
"node-fetch": {
|
||||||
|
@ -314,7 +314,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1.0.2"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"path-is-absolute": {
|
"path-is-absolute": {
|
||||||
|
@ -352,7 +352,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
|
||||||
"integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
|
"integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"resolve": "1.8.1"
|
"resolve": "^1.1.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"request": {
|
"request": {
|
||||||
|
@ -360,26 +360,26 @@
|
||||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
||||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"aws-sign2": "0.7.0",
|
"aws-sign2": "~0.7.0",
|
||||||
"aws4": "1.8.0",
|
"aws4": "^1.8.0",
|
||||||
"caseless": "0.12.0",
|
"caseless": "~0.12.0",
|
||||||
"combined-stream": "1.0.7",
|
"combined-stream": "~1.0.6",
|
||||||
"extend": "3.0.2",
|
"extend": "~3.0.2",
|
||||||
"forever-agent": "0.6.1",
|
"forever-agent": "~0.6.1",
|
||||||
"form-data": "2.3.2",
|
"form-data": "~2.3.2",
|
||||||
"har-validator": "5.1.0",
|
"har-validator": "~5.1.0",
|
||||||
"http-signature": "1.2.0",
|
"http-signature": "~1.2.0",
|
||||||
"is-typedarray": "1.0.0",
|
"is-typedarray": "~1.0.0",
|
||||||
"isstream": "0.1.2",
|
"isstream": "~0.1.2",
|
||||||
"json-stringify-safe": "5.0.1",
|
"json-stringify-safe": "~5.0.1",
|
||||||
"mime-types": "2.1.20",
|
"mime-types": "~2.1.19",
|
||||||
"oauth-sign": "0.9.0",
|
"oauth-sign": "~0.9.0",
|
||||||
"performance-now": "2.1.0",
|
"performance-now": "^2.1.0",
|
||||||
"qs": "6.5.2",
|
"qs": "~6.5.2",
|
||||||
"safe-buffer": "5.1.2",
|
"safe-buffer": "^5.1.2",
|
||||||
"tough-cookie": "2.4.3",
|
"tough-cookie": "~2.4.3",
|
||||||
"tunnel-agent": "0.6.0",
|
"tunnel-agent": "^0.6.0",
|
||||||
"uuid": "3.3.2"
|
"uuid": "^3.3.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"resolve": {
|
"resolve": {
|
||||||
|
@ -387,7 +387,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
|
||||||
"integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
|
"integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"path-parse": "1.0.6"
|
"path-parse": "^1.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
|
@ -405,9 +405,9 @@
|
||||||
"resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz",
|
"resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz",
|
||||||
"integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==",
|
"integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "7.1.3",
|
"glob": "^7.0.0",
|
||||||
"interpret": "1.1.0",
|
"interpret": "^1.0.0",
|
||||||
"rechoir": "0.6.2"
|
"rechoir": "^0.6.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sshpk": {
|
"sshpk": {
|
||||||
|
@ -415,15 +415,15 @@
|
||||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
|
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
|
||||||
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
|
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"asn1": "0.2.4",
|
"asn1": "~0.2.3",
|
||||||
"assert-plus": "1.0.0",
|
"assert-plus": "^1.0.0",
|
||||||
"bcrypt-pbkdf": "1.0.2",
|
"bcrypt-pbkdf": "^1.0.0",
|
||||||
"dashdash": "1.14.1",
|
"dashdash": "^1.12.0",
|
||||||
"ecc-jsbn": "0.1.2",
|
"ecc-jsbn": "~0.1.1",
|
||||||
"getpass": "0.1.7",
|
"getpass": "^0.1.1",
|
||||||
"jsbn": "0.1.1",
|
"jsbn": "~0.1.0",
|
||||||
"safer-buffer": "2.1.2",
|
"safer-buffer": "^2.0.2",
|
||||||
"tweetnacl": "0.14.5"
|
"tweetnacl": "~0.14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tough-cookie": {
|
"tough-cookie": {
|
||||||
|
@ -431,8 +431,8 @@
|
||||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
||||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"psl": "1.1.29",
|
"psl": "^1.1.24",
|
||||||
"punycode": "1.4.1"
|
"punycode": "^1.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tunnel-agent": {
|
"tunnel-agent": {
|
||||||
|
@ -440,7 +440,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "5.1.2"
|
"safe-buffer": "^5.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tweetnacl": {
|
"tweetnacl": {
|
||||||
|
@ -459,9 +459,9 @@
|
||||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
||||||
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "1.0.0",
|
"assert-plus": "^1.0.0",
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"extsprintf": "1.3.0"
|
"extsprintf": "^1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wrappy": {
|
"wrappy": {
|
||||||
|
|
Loading…
Add table
Reference in a new issue