Compare commits

4 Commits

Author SHA1 Message Date
ac53d801a6 1.0.25 2019-09-05 17:40:41 +02:00
a75bb09d3f fix(core): update 2019-09-05 17:40:41 +02:00
01f70cf1a4 1.0.24 2019-09-04 16:38:06 +02:00
f9fccd2dff fix(core): update 2019-09-04 16:38:06 +02:00
3 changed files with 40 additions and 41 deletions

48
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/smartupdate", "name": "@pushrocks/smartupdate",
"version": "1.0.23", "version": "1.0.25",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -290,11 +290,11 @@
} }
}, },
"@pushrocks/smartopen": { "@pushrocks/smartopen": {
"version": "1.0.21", "version": "1.0.22",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartopen/-/smartopen-1.0.21.tgz", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartopen/-/smartopen-1.0.22.tgz",
"integrity": "sha512-41mMoW+ueIzKbz//bkjFodq7Wv94UT9gZhQ1NzeFfNf0SgZiFjzg/HtA3KAMqkNP6uXw3Qwq7P4r1qsIuFgbIw==", "integrity": "sha512-1D/i1erdcLGMMHG7KLfF0iVAZlxf664il+/XTaThQFmVSO+9LCKMdm8YZ30sIMvs9MX1Sn1IBOVhX5ApNw3BHw==",
"requires": { "requires": {
"opn": "^6.0.0" "open": "^6.4.0"
} }
}, },
"@pushrocks/smartparam": { "@pushrocks/smartparam": {
@ -520,7 +520,7 @@
}, },
"@types/which": { "@types/which": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://verdaccio.lossless.one/@types%2fwhich/-/which-1.3.1.tgz", "resolved": "https://registry.npmjs.org/@types/which/-/which-1.3.1.tgz",
"integrity": "sha512-ZrJDWpvg75LTGX4XwuneY9s6bF3OeZcGTpoGh3zDV9ytzcHMFsRrMIaLBRJZQMBoGyKs6unBQfVdrLZiYfb1zQ==", "integrity": "sha512-ZrJDWpvg75LTGX4XwuneY9s6bF3OeZcGTpoGh3zDV9ytzcHMFsRrMIaLBRJZQMBoGyKs6unBQfVdrLZiYfb1zQ==",
"dev": true "dev": true
}, },
@ -591,13 +591,13 @@
}, },
"buffer-from": { "buffer-from": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://verdaccio.lossless.one/buffer-from/-/buffer-from-1.1.1.tgz", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
"dev": true "dev": true
}, },
"builtin-modules": { "builtin-modules": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://verdaccio.lossless.one/builtin-modules/-/builtin-modules-1.1.1.tgz", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
"dev": true "dev": true
}, },
@ -712,7 +712,7 @@
}, },
"color-convert": { "color-convert": {
"version": "1.9.3", "version": "1.9.3",
"resolved": "https://verdaccio.lossless.one/color-convert/-/color-convert-1.9.3.tgz", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true, "dev": true,
"requires": { "requires": {
@ -721,7 +721,7 @@
}, },
"color-name": { "color-name": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://verdaccio.lossless.one/color-name/-/color-name-1.1.3.tgz", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true "dev": true
}, },
@ -824,7 +824,7 @@
}, },
"escape-string-regexp": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://verdaccio.lossless.one/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true "dev": true
}, },
@ -947,7 +947,7 @@
}, },
"has-flag": { "has-flag": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://verdaccio.lossless.one/has-flag/-/has-flag-3.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true "dev": true
}, },
@ -996,7 +996,7 @@
}, },
"is-wsl": { "is-wsl": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "resolved": "https://verdaccio.lossless.one/is-wsl/-/is-wsl-1.1.0.tgz",
"integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
}, },
"isarray": { "isarray": {
@ -1006,7 +1006,7 @@
}, },
"isexe": { "isexe": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://verdaccio.lossless.one/isexe/-/isexe-2.0.0.tgz", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true "dev": true
}, },
@ -1069,7 +1069,7 @@
}, },
"make-error": { "make-error": {
"version": "1.3.5", "version": "1.3.5",
"resolved": "https://verdaccio.lossless.one/make-error/-/make-error-1.3.5.tgz", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
"integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
"dev": true "dev": true
}, },
@ -1128,7 +1128,7 @@
}, },
"mkdirp": { "mkdirp": {
"version": "0.5.1", "version": "0.5.1",
"resolved": "https://verdaccio.lossless.one/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -1194,10 +1194,10 @@
} }
} }
}, },
"opn": { "open": {
"version": "6.0.0", "version": "6.4.0",
"resolved": "https://verdaccio.lossless.one/opn/-/opn-6.0.0.tgz", "resolved": "https://verdaccio.lossless.one/open/-/open-6.4.0.tgz",
"integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
"requires": { "requires": {
"is-wsl": "^1.1.0" "is-wsl": "^1.1.0"
} }
@ -1305,7 +1305,7 @@
}, },
"path-parse": { "path-parse": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://verdaccio.lossless.one/path-parse/-/path-parse-1.0.6.tgz", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true "dev": true
}, },
@ -1451,7 +1451,7 @@
}, },
"source-map": { "source-map": {
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://verdaccio.lossless.one/source-map/-/source-map-0.6.1.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true "dev": true
}, },
@ -1597,7 +1597,7 @@
}, },
"tsutils": { "tsutils": {
"version": "2.29.0", "version": "2.29.0",
"resolved": "https://verdaccio.lossless.one/tsutils/-/tsutils-2.29.0.tgz", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
"integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
"dev": true, "dev": true,
"requires": { "requires": {
@ -1662,7 +1662,7 @@
}, },
"which": { "which": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://verdaccio.lossless.one/which/-/which-1.3.1.tgz", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true, "dev": true,
"requires": { "requires": {

View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/smartupdate", "name": "@pushrocks/smartupdate",
"version": "1.0.23", "version": "1.0.25",
"private": false, "private": false,
"description": "update your tools in a smart way", "description": "update your tools in a smart way",
"main": "dist/index.js", "main": "dist/index.js",
@ -25,7 +25,7 @@
"@pushrocks/npmextra": "^3.0.5", "@pushrocks/npmextra": "^3.0.5",
"@pushrocks/smartlog": "^2.0.19", "@pushrocks/smartlog": "^2.0.19",
"@pushrocks/smartnpm": "^1.0.10", "@pushrocks/smartnpm": "^1.0.10",
"@pushrocks/smartopen": "^1.0.21", "@pushrocks/smartopen": "^1.0.22",
"@pushrocks/smarttime": "^3.0.12", "@pushrocks/smarttime": "^3.0.12",
"@pushrocks/smartversion": "^2.0.0" "@pushrocks/smartversion": "^2.0.0"
}, },

View File

@ -11,26 +11,26 @@ interface ICacheStatus {
import { KeyValueStore } from '@pushrocks/npmextra'; import { KeyValueStore } from '@pushrocks/npmextra';
export class SmartUpdate { export class SmartUpdate {
kvStore = new plugins.npmextra.KeyValueStore('custom', 'global_smartupdate'); public kvStore = new plugins.npmextra.KeyValueStore('custom', 'global_smartupdate');
async check(npmnameArg: string, compareVersion: string, changelogUrlArg?: string) { public async check(npmnameArg: string, compareVersion: string, changelogUrlArg?: string) {
// the newData to write // the newData to write
let timeStamp = new TimeStamp(); const timeStamp = new TimeStamp();
let newData = { const newData = {
lastCheck: timeStamp.milliSeconds, lastCheck: timeStamp.milliSeconds,
latestVersion: 'x.x.x', latestVersion: 'x.x.x',
performedUpgrade: false performedUpgrade: false
}; };
// the comparison data from the keyValue store // the comparison data from the keyValue store
let result: ICacheStatus = await this.kvStore.readKey(npmnameArg); const result: ICacheStatus = await this.kvStore.readKey(npmnameArg);
if (result) { if (result) {
let lastCheckTimeStamp = TimeStamp.fromMilliSeconds(result.lastCheck); const lastCheckTimeStamp = TimeStamp.fromMilliSeconds(result.lastCheck);
let tresholdTime = plugins.smarttime.getMilliSecondsFromUnits({ hours: 1 }); const tresholdTime = plugins.smarttime.getMilliSecondsFromUnits({ hours: 1 });
if (!lastCheckTimeStamp.isOlderThan(timeStamp, tresholdTime)) { if (!lastCheckTimeStamp.isOlderThan(timeStamp, tresholdTime)) {
newData.lastCheck = lastCheckTimeStamp.milliSeconds; newData.lastCheck = lastCheckTimeStamp.milliSeconds;
let nextCheckInMinutes = const nextCheckInMinutes =
(tresholdTime - (timeStamp.milliSeconds - lastCheckTimeStamp.milliSeconds)) / 60000; (tresholdTime - (timeStamp.milliSeconds - lastCheckTimeStamp.milliSeconds)) / 60000;
console.log( console.log(
`next update check in less than ${Math.floor(nextCheckInMinutes) + 1} minute(s): ` + `next update check in less than ${Math.floor(nextCheckInMinutes) + 1} minute(s): ` +
@ -42,14 +42,14 @@ export class SmartUpdate {
return; return;
} }
} }
let npmPackage = await this.getNpmPackageFromRegistry(npmnameArg); const npmPackage = await this.getNpmPackageFromRegistry(npmnameArg);
if (!npmPackage) { if (!npmPackage) {
plugins.smartlog.defaultLogger.log('warn', 'failed to retrieve package information...'); plugins.smartlog.defaultLogger.log('warn', 'failed to retrieve package information...');
plugins.smartlog.defaultLogger.log('info', 'npms.io might be down'); plugins.smartlog.defaultLogger.log('info', 'npms.io might be down');
return; return;
} }
newData.latestVersion = npmPackage.version; newData.latestVersion = npmPackage.version;
let upgradeBool = await this.checkIfUpgrade(npmPackage, compareVersion, changelogUrlArg); const upgradeBool = await this.checkIfUpgrade(npmPackage, compareVersion, changelogUrlArg);
if (upgradeBool) { if (upgradeBool) {
// TODO: // TODO:
} }
@ -63,9 +63,8 @@ export class SmartUpdate {
'pink' 'pink'
)}...` )}...`
); );
let npmRegistry = new plugins.smartnpm.NpmRegistry(); const npmRegistry = new plugins.smartnpm.NpmRegistry();
let npmPackage: plugins.smartnpm.NpmPackage; const npmPackage = (await npmRegistry.search({ name: npmnameArg, boostExact: true }))[0];
npmPackage = (await npmRegistry.search({ name: npmnameArg, boostExact: true }))[0];
return npmPackage; return npmPackage;
} }
@ -75,8 +74,8 @@ export class SmartUpdate {
changelogUrlArg?: string changelogUrlArg?: string
) { ) {
// create Version objects // create Version objects
let versionNpm = new plugins.smartversion.SmartVersion(npmPackage.version); const versionNpm = new plugins.smartversion.SmartVersion(npmPackage.version);
let versionLocal = new plugins.smartversion.SmartVersion(localVersionStringArg); const versionLocal = new plugins.smartversion.SmartVersion(localVersionStringArg);
if (!versionNpm.greaterThan(versionLocal)) { if (!versionNpm.greaterThan(versionLocal)) {
console.log( console.log(
`smartupdate: You are running the latest version of ${plugins.consolecolor.coloredString( `smartupdate: You are running the latest version of ${plugins.consolecolor.coloredString(