diff --git a/dist/index.d.ts b/dist/index.d.ts index 5b5a37e..841dba8 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,8 +1,8 @@ import { KeyValueStore } from 'npmextra'; export declare class SmartUpdate { kvStore: KeyValueStore; - check(npmnameArg: string, compareVersion: string): Promise; + check(npmnameArg: string, compareVersion: string, changelogUrlArg?: string): Promise; private getNpmPackageFromRegistry(npmnameArg); - private checkIfUpgrade(npmPackage, versionArg); + private checkIfUpgrade(npmPackage, versionArg, changelogUrlArg?); } export declare let standardHandler: SmartUpdate; diff --git a/dist/index.js b/dist/index.js index 2d36f7a..3a15807 100644 --- a/dist/index.js +++ b/dist/index.js @@ -14,7 +14,7 @@ class SmartUpdate { constructor() { this.kvStore = new plugins.npmextra.KeyValueStore('custom', 'global:smartupdate'); } - check(npmnameArg, compareVersion) { + check(npmnameArg, compareVersion, changelogUrlArg) { return __awaiter(this, void 0, void 0, function* () { let result = yield this.kvStore.readKey(npmnameArg); let timeStamp = new smarttime_1.TimeStamp(); @@ -34,7 +34,7 @@ class SmartUpdate { } let npmPackage = yield this.getNpmPackageFromRegistry(npmnameArg); newData.latestVersion = npmPackage.version; - let upgradeBool = yield this.checkIfUpgrade(npmPackage, compareVersion); + let upgradeBool = yield this.checkIfUpgrade(npmPackage, compareVersion, changelogUrlArg); if (upgradeBool) { } this.kvStore.writeKey(npmnameArg, newData); @@ -48,7 +48,7 @@ class SmartUpdate { return npmPackage; }); } - checkIfUpgrade(npmPackage, versionArg) { + checkIfUpgrade(npmPackage, versionArg, changelogUrlArg) { return __awaiter(this, void 0, void 0, function* () { if (npmPackage.version === versionArg) { plugins.beautylog.ok(`smartupdate: You are running the latest version of ${plugins.beautycolor.coloredString(npmPackage.name, 'pink')}`); @@ -56,8 +56,11 @@ class SmartUpdate { } else { plugins.beautylog.warn(`There is a newer version of ${npmPackage.name} available on npm.`); - plugins.beautylog.info(`Your version: ${versionArg} | version on npm: ${npmPackage.version}`); - plugins.beautylog.warn(`!!! You should upgrade!!!`); + plugins.beautylog.warn(`Your version: ${versionArg} | version on npm: ${npmPackage.version}`); + if (!process.env.CI && changelogUrlArg) { + plugins.beautylog.log('trying to open changelog...'); + plugins.smartopen.openUrl(changelogUrlArg); + } return true; } }); @@ -65,4 +68,4 @@ class SmartUpdate { } exports.SmartUpdate = SmartUpdate; exports.standardHandler = new SmartUpdate(); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsaURBQWdEO0FBRWhELHlDQUFxQztBQVVyQztJQUFBO1FBQ0UsWUFBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUE7SUErQzlFLENBQUM7SUE3Q08sS0FBSyxDQUFFLFVBQWtCLEVBQUUsY0FBc0I7O1lBQ3JELElBQUksTUFBTSxHQUFpQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ2pFLElBQUksU0FBUyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFBO1lBRS9CLHVCQUF1QjtZQUN2QixJQUFJLE9BQU8sR0FBRztnQkFDWixTQUFTLEVBQUUsU0FBUyxDQUFDLFlBQVk7Z0JBQ2pDLGFBQWEsRUFBRSxPQUFPO2dCQUN0QixnQkFBZ0IsRUFBRSxLQUFLO2FBQ3hCLENBQUE7WUFDRCxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNYLElBQUksa0JBQWtCLEdBQUcscUJBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ3JFLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtnQkFDekUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDNUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMscUNBQXFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEdBQUcsVUFBVSxzQ0FBc0MsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7b0JBQzVKLE1BQU0sQ0FBQTtnQkFDUixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ2pFLE9BQU8sQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQTtZQUMxQyxJQUFJLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFBO1lBQ3ZFLEVBQUUsQ0FBQSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFFakIsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUM1QyxDQUFDO0tBQUE7SUFFYSx5QkFBeUIsQ0FBRSxVQUFVOztZQUNqRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw4Q0FBOEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUMvSCxJQUFJLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDcEQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdEYsTUFBTSxDQUFDLFVBQVUsQ0FBQTtRQUNuQixDQUFDO0tBQUE7SUFFYSxjQUFjLENBQUUsVUFBdUMsRUFBRSxVQUFrQjs7WUFDdkYsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxzREFBc0QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQ3hJLE1BQU0sQ0FBQyxLQUFLLENBQUE7WUFDZCxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsK0JBQStCLFVBQVUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLENBQUE7Z0JBQzFGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixVQUFVLHNCQUFzQixVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtnQkFDN0YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtnQkFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQTtZQUNiLENBQUM7UUFDSCxDQUFDO0tBQUE7Q0FDRjtBQWhERCxrQ0FnREM7QUFDVSxRQUFBLGVBQWUsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFBIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsaURBQWdEO0FBRWhELHlDQUFxQztBQVVyQztJQUFBO1FBQ0UsWUFBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUE7SUFzRDlFLENBQUM7SUFwRE8sS0FBSyxDQUFFLFVBQWtCLEVBQUUsY0FBc0IsRUFBRSxlQUF3Qjs7WUFDL0UsSUFBSSxNQUFNLEdBQWlCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDakUsSUFBSSxTQUFTLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUE7WUFFL0IsdUJBQXVCO1lBQ3ZCLElBQUksT0FBTyxHQUFHO2dCQUNaLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWTtnQkFDakMsYUFBYSxFQUFFLE9BQU87Z0JBQ3RCLGdCQUFnQixFQUFFLEtBQUs7YUFDeEIsQ0FBQTtZQUNELEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsSUFBSSxrQkFBa0IsR0FBRyxxQkFBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDckUsSUFBSSxXQUFXLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUN6RSxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1RCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxVQUFVLHNDQUFzQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtvQkFDNUosTUFBTSxDQUFBO2dCQUNSLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDakUsT0FBTyxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFBO1lBQzFDLElBQUksV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxDQUFBO1lBQ3hGLEVBQUUsQ0FBQSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFFakIsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUM1QyxDQUFDO0tBQUE7SUFFYSx5QkFBeUIsQ0FBRSxVQUFVOztZQUNqRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw4Q0FBOEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUMvSCxJQUFJLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDcEQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdEYsTUFBTSxDQUFDLFVBQVUsQ0FBQTtRQUNuQixDQUFDO0tBQUE7SUFFYSxjQUFjLENBQzFCLFVBQXVDLEVBQ3ZDLFVBQWtCLEVBQ2xCLGVBQXdCOztZQUV4QixFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLHNEQUFzRCxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtnQkFDeEksTUFBTSxDQUFDLEtBQUssQ0FBQTtZQUNkLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQywrQkFBK0IsVUFBVSxDQUFDLElBQUksb0JBQW9CLENBQUMsQ0FBQTtnQkFDMUYsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLFVBQVUsc0JBQXNCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO2dCQUM3RixFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUE7b0JBQ3BELE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO2dCQUM1QyxDQUFDO2dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQUE7WUFDYixDQUFDO1FBQ0gsQ0FBQztLQUFBO0NBQ0Y7QUF2REQsa0NBdURDO0FBQ1UsUUFBQSxlQUFlLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQSJ9 \ No newline at end of file diff --git a/dist/smartupdate.plugins.d.ts b/dist/smartupdate.plugins.d.ts index 8140e78..1c22742 100644 --- a/dist/smartupdate.plugins.d.ts +++ b/dist/smartupdate.plugins.d.ts @@ -3,5 +3,6 @@ import * as beautylog from 'beautylog'; import * as beautycolor from 'beautycolor'; import * as npmextra from 'npmextra'; import * as smartnpm from 'smartnpm'; +import * as smartopen from 'smartopen'; import * as smarttime from 'smarttime'; -export { beautylog, beautycolor, npmextra, smartnpm, smarttime }; +export { beautylog, beautycolor, npmextra, smartnpm, smartopen, smarttime }; diff --git a/dist/smartupdate.plugins.js b/dist/smartupdate.plugins.js index 18c4592..dee8347 100644 --- a/dist/smartupdate.plugins.js +++ b/dist/smartupdate.plugins.js @@ -9,6 +9,8 @@ const npmextra = require("npmextra"); exports.npmextra = npmextra; const smartnpm = require("smartnpm"); exports.smartnpm = smartnpm; +const smartopen = require("smartopen"); +exports.smartopen = smartopen; const smarttime = require("smarttime"); exports.smarttime = smarttime; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR1cGRhdGUucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0dXBkYXRlLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFFdkIsdUNBQXNDO0FBT3BDLDhCQUFTO0FBTlgsMkNBQTBDO0FBT3hDLGtDQUFXO0FBTmIscUNBQW9DO0FBT2xDLDRCQUFRO0FBTlYscUNBQW9DO0FBT2xDLDRCQUFRO0FBTlYsdUNBQXNDO0FBT3BDLDhCQUFTIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR1cGRhdGUucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0dXBkYXRlLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFFdkIsdUNBQXNDO0FBUXBDLDhCQUFTO0FBUFgsMkNBQTBDO0FBUXhDLGtDQUFXO0FBUGIscUNBQW9DO0FBUWxDLDRCQUFRO0FBUFYscUNBQW9DO0FBUWxDLDRCQUFRO0FBUFYsdUNBQXNDO0FBUXBDLDhCQUFTO0FBUFgsdUNBQXNDO0FBUXBDLDhCQUFTIn0= \ No newline at end of file diff --git a/package.json b/package.json index a7c726a..5ad408f 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "beautylog": "^6.1.10", "npmextra": "^2.0.9", "smartnpm": "^1.0.4", + "smartopen": "^1.0.3", "smarttime": "^1.0.6", "typings-global": "^1.0.20" } diff --git a/test/test.ts b/test/test.ts index dfdb537..83f3658 100644 --- a/test/test.ts +++ b/test/test.ts @@ -2,7 +2,7 @@ import { expect, tap } from 'tapbundle' import * as smartupdate from '../ts/index' tap.test('should check for a npm module', async () => { - await smartupdate.standardHandler.check('npmts', '8.0.5') + await smartupdate.standardHandler.check('npmts', '8.0.5', 'http://gitzone.gitlab.io/npmts/changelog.html') }) tap.start() diff --git a/ts/index.ts b/ts/index.ts index d5270c9..7b8dbce 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -13,7 +13,7 @@ import { KeyValueStore } from 'npmextra' export class SmartUpdate { kvStore = new plugins.npmextra.KeyValueStore('custom', 'global:smartupdate') - async check (npmnameArg: string, compareVersion: string) { + async check (npmnameArg: string, compareVersion: string, changelogUrlArg?: string) { let result: ICacheStatus = await this.kvStore.readKey(npmnameArg) let timeStamp = new TimeStamp() @@ -33,7 +33,7 @@ export class SmartUpdate { } let npmPackage = await this.getNpmPackageFromRegistry(npmnameArg) newData.latestVersion = npmPackage.version - let upgradeBool = await this.checkIfUpgrade(npmPackage, compareVersion) + let upgradeBool = await this.checkIfUpgrade(npmPackage, compareVersion, changelogUrlArg) if(upgradeBool) { } @@ -47,14 +47,21 @@ export class SmartUpdate { return npmPackage } - private async checkIfUpgrade (npmPackage: plugins.smartnpm.NpmPackage, versionArg: string) { + private async checkIfUpgrade ( + npmPackage: plugins.smartnpm.NpmPackage, + versionArg: string, + changelogUrlArg?: string + ) { if (npmPackage.version === versionArg) { plugins.beautylog.ok(`smartupdate: You are running the latest version of ${plugins.beautycolor.coloredString(npmPackage.name, 'pink')}`) return false } else { plugins.beautylog.warn(`There is a newer version of ${npmPackage.name} available on npm.`) - plugins.beautylog.info(`Your version: ${versionArg} | version on npm: ${npmPackage.version}`) - plugins.beautylog.warn(`!!! You should upgrade!!!`) + plugins.beautylog.warn(`Your version: ${versionArg} | version on npm: ${npmPackage.version}`) + if (!process.env.CI && changelogUrlArg) { + plugins.beautylog.log('trying to open changelog...') + plugins.smartopen.openUrl(changelogUrlArg) + } return true } } diff --git a/ts/smartupdate.plugins.ts b/ts/smartupdate.plugins.ts index c350d26..8102055 100644 --- a/ts/smartupdate.plugins.ts +++ b/ts/smartupdate.plugins.ts @@ -4,6 +4,7 @@ import * as beautylog from 'beautylog' import * as beautycolor from 'beautycolor' import * as npmextra from 'npmextra' import * as smartnpm from 'smartnpm' +import * as smartopen from 'smartopen' import * as smarttime from 'smarttime' export { @@ -11,5 +12,6 @@ export { beautycolor, npmextra, smartnpm, + smartopen, smarttime } diff --git a/yarn.lock b/yarn.lock index 186f13b..c3f9d61 100644 --- a/yarn.lock +++ b/yarn.lock @@ -56,6 +56,10 @@ version "8.0.22" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.22.tgz#9c6bfee1f45f5e9952ff6b487e657ecca48c7777" +"@types/open@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/open/-/open-0.0.29.tgz#3de910012674909db14d608d1fde44ffa7a9ecea" + "@types/promises-a-plus@*": version "0.0.27" resolved "https://registry.yarnpkg.com/@types/promises-a-plus/-/promises-a-plus-0.0.27.tgz#c64651134614c84b8f5d7114ce8901d36a609780" @@ -495,6 +499,10 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +open@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" + ora@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/ora/-/ora-1.3.0.tgz#80078dd2b92a934af66a3ad72a5b910694ede51a" @@ -660,6 +668,14 @@ smartnpm@^1.0.4: smartrequest "^1.0.6" typings-global "^1.0.16" +smartopen@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/smartopen/-/smartopen-1.0.3.tgz#11a5835b50103e09fc9702ec9a884605ad7e584d" + dependencies: + "@types/open" "^0.0.29" + open "^0.0.5" + typings-global "^1.0.20" + smartpath@^3.2.8: version "3.2.8" resolved "https://registry.yarnpkg.com/smartpath/-/smartpath-3.2.8.tgz#4834bd3a8bae2295baacadba23c87a501952f940"