initial working version
This commit is contained in:
		
							
								
								
									
										10
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +1,8 @@ | ||||
| export declare let check: (npmname: string) => void; | ||||
| export declare let standardExport: string; | ||||
| import { KeyValueStore } from 'npmextra'; | ||||
| export declare class SmartUpdate { | ||||
|     kvStore: KeyValueStore; | ||||
|     check(npmnameArg: string, compareVersion: string): Promise<void>; | ||||
|     private getNpmPackageFromRegistry(npmnameArg); | ||||
|     private checkIfUpgrade(npmPackage, versionArg); | ||||
| } | ||||
| export declare let standardHandler: SmartUpdate; | ||||
|   | ||||
							
								
								
									
										64
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,14 +1,68 @@ | ||||
| "use strict"; | ||||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||||
|     return new (P || (P = Promise))(function (resolve, reject) { | ||||
|         function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||||
|         function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||||
|         function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | ||||
|         step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||||
|     }); | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const plugins = require("./smartupdate.plugins"); | ||||
| const smarttime_1 = require("smarttime"); | ||||
| class SmartUpdate { | ||||
|     constructor() { | ||||
|         this.kvStore = new plugins.npmextra.KeyValueStore('custom', 'global:smartupdate'); | ||||
|     } | ||||
|     check(npmname) { | ||||
|     check(npmnameArg, compareVersion) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             let result = yield this.kvStore.readKey(npmnameArg); | ||||
|             let timeStamp = new smarttime_1.TimeStamp(); | ||||
|             // the newData to write | ||||
|             let newData = { | ||||
|                 lastCheck: timeStamp.milliSeconds, | ||||
|                 latestVersion: 'x.x.x', | ||||
|                 performedUpgrade: false | ||||
|             }; | ||||
|             if (result) { | ||||
|                 let lastCheckTimeStamp = smarttime_1.TimeStamp.fromMilliSeconds(result.lastCheck); | ||||
|                 let compareTime = plugins.smarttime.getMilliSecondsFromUnits({ days: 1 }); | ||||
|                 if (!lastCheckTimeStamp.isOlderThan(timeStamp, compareTime)) { | ||||
|                     plugins.beautylog.log('not checking for new version since this has been done already for today'); | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
| let standardInstance = new SmartUpdate(); | ||||
| exports.check = standardInstance.check; | ||||
| exports.standardExport = 'Hi there! :) This is a exported string'; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlEQUFnRDtBQUVoRDtJQUFBO1FBQ0UsWUFBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUE7SUFJOUUsQ0FBQztJQUhDLEtBQUssQ0FBRSxPQUFlO0lBRXRCLENBQUM7Q0FDRjtBQUNELElBQUksZ0JBQWdCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtBQUU3QixRQUFBLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUE7QUFHOUIsUUFBQSxjQUFjLEdBQUcsd0NBQXdDLENBQUEifQ== | ||||
|             let npmPackage = yield this.getNpmPackageFromRegistry(npmnameArg); | ||||
|             newData.latestVersion = npmPackage.version; | ||||
|             let upgradeBool = yield this.checkIfUpgrade(npmPackage, compareVersion); | ||||
|             if (upgradeBool) { | ||||
|             } | ||||
|             this.kvStore.writeKey(npmnameArg, newData); | ||||
|         }); | ||||
|     } | ||||
|     getNpmPackageFromRegistry(npmnameArg) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             plugins.beautylog.log(`checking for newer version of ${npmnameArg}...`); | ||||
|             let npmRegistry = new plugins.smartnpm.NpmRegistry(); | ||||
|             let npmPackage = (yield npmRegistry.search({ name: npmnameArg, boostExact: true }))[0]; | ||||
|             return npmPackage; | ||||
|         }); | ||||
|     } | ||||
|     checkIfUpgrade(npmPackage, versionArg) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             if (npmPackage.version === versionArg) { | ||||
|                 plugins.beautylog.ok(`You are running the latest version of ${npmPackage.name}`); | ||||
|                 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!!!`); | ||||
|                 return true; | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| } | ||||
| exports.SmartUpdate = SmartUpdate; | ||||
| exports.standardHandler = new SmartUpdate(); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsaURBQWdEO0FBRWhELHlDQUFxQztBQVVyQztJQUFBO1FBQ0UsWUFBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUE7SUErQzlFLENBQUM7SUE3Q08sS0FBSyxDQUFFLFVBQWtCLEVBQUUsY0FBc0I7O1lBQ3JELElBQUksTUFBTSxHQUFpQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ2pFLElBQUksU0FBUyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFBO1lBRS9CLHVCQUF1QjtZQUN2QixJQUFJLE9BQU8sR0FBRztnQkFDWixTQUFTLEVBQUUsU0FBUyxDQUFDLFlBQVk7Z0JBQ2pDLGFBQWEsRUFBRSxPQUFPO2dCQUN0QixnQkFBZ0IsRUFBRSxLQUFLO2FBQ3hCLENBQUE7WUFDRCxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNYLElBQUksa0JBQWtCLEdBQUcscUJBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ3JFLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtnQkFDekUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDNUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMseUVBQXlFLENBQUMsQ0FBQTtvQkFDaEcsTUFBTSxDQUFBO2dCQUNSLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDakUsT0FBTyxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFBO1lBQzFDLElBQUksV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUE7WUFDdkUsRUFBRSxDQUFBLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUVqQixDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzVDLENBQUM7S0FBQTtJQUVhLHlCQUF5QixDQUFFLFVBQVU7O1lBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxVQUFVLEtBQUssQ0FBQyxDQUFBO1lBQ3ZFLElBQUksV0FBVyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUNwRCxJQUFJLFVBQVUsR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN0RixNQUFNLENBQUMsVUFBVSxDQUFBO1FBQ25CLENBQUM7S0FBQTtJQUVhLGNBQWMsQ0FBRSxVQUF1QyxFQUFFLFVBQWtCOztZQUN2RixFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLHlDQUF5QyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDaEYsTUFBTSxDQUFDLEtBQUssQ0FBQTtZQUNkLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQywrQkFBK0IsVUFBVSxDQUFDLElBQUksb0JBQW9CLENBQUMsQ0FBQTtnQkFDMUYsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLFVBQVUsc0JBQXNCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO2dCQUM3RixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO2dCQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFBO1lBQ2IsQ0FBQztRQUNILENBQUM7S0FBQTtDQUNGO0FBaERELGtDQWdEQztBQUNVLFFBQUEsZUFBZSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUEifQ== | ||||
							
								
								
									
										4
									
								
								dist/smartupdate.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/smartupdate.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,6 @@ | ||||
| import 'typings-global'; | ||||
| import * as beautylog from 'beautylog'; | ||||
| import * as npmextra from 'npmextra'; | ||||
| import * as smartnpm from 'smartnpm'; | ||||
| export { npmextra, smartnpm }; | ||||
| import * as smarttime from 'smarttime'; | ||||
| export { beautylog, npmextra, smartnpm, smarttime }; | ||||
|   | ||||
							
								
								
									
										6
									
								
								dist/smartupdate.plugins.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								dist/smartupdate.plugins.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +1,12 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| require("typings-global"); | ||||
| const beautylog = require("beautylog"); | ||||
| exports.beautylog = beautylog; | ||||
| const npmextra = require("npmextra"); | ||||
| exports.npmextra = npmextra; | ||||
| const smartnpm = require("smartnpm"); | ||||
| exports.smartnpm = smartnpm; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR1cGRhdGUucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0dXBkYXRlLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFFdkIscUNBQW9DO0FBSWxDLDRCQUFRO0FBSFYscUNBQW9DO0FBSWxDLDRCQUFRIn0= | ||||
| const smarttime = require("smarttime"); | ||||
| exports.smarttime = smarttime; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR1cGRhdGUucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0dXBkYXRlLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFFdkIsdUNBQXNDO0FBTXBDLDhCQUFTO0FBTFgscUNBQW9DO0FBTWxDLDRCQUFRO0FBTFYscUNBQW9DO0FBTWxDLDRCQUFRO0FBTFYsdUNBQXNDO0FBTXBDLDhCQUFTIn0= | ||||
| @@ -3,5 +3,8 @@ | ||||
|     "globalNpmTools": [ | ||||
|       "npmts" | ||||
|     ] | ||||
|   }, | ||||
|   "npmts": { | ||||
|     "coverageTreshold": 50 | ||||
|   } | ||||
| } | ||||
							
								
								
									
										10
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								package.json
									
									
									
									
									
								
							| @@ -10,11 +10,13 @@ | ||||
|     "test": "(npmts)" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "tapbundle": "^1.0.13" | ||||
|     "tapbundle": "^1.1.1" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "npmextra": "^2.0.8", | ||||
|     "smartnpm": "^1.0.3", | ||||
|     "typings-global": "^1.0.16" | ||||
|     "beautylog": "^6.1.10", | ||||
|     "npmextra": "^2.0.9", | ||||
|     "smartnpm": "^1.0.4", | ||||
|     "smarttime": "^1.0.6", | ||||
|     "typings-global": "^1.0.20" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| import { expect, tap } from 'tapbundle' | ||||
| import * as smartupdate from '../ts/index' | ||||
|  | ||||
| tap.test('first test', async () => { | ||||
|   console.log(smartupdate.standardExport) | ||||
| tap.test('should check for a npm module', async () => { | ||||
|   await smartupdate.standardHandler.check('npmts', '8.0.5') | ||||
| }) | ||||
|  | ||||
| tap.start() | ||||
|   | ||||
							
								
								
									
										61
									
								
								ts/index.ts
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								ts/index.ts
									
									
									
									
									
								
							| @@ -1,25 +1,62 @@ | ||||
| import * as plugins from './smartupdate.plugins' | ||||
|  | ||||
| import { TimeStamp } from 'smarttime' | ||||
|  | ||||
| interface ICacheStatus { | ||||
|   lastCheck | ||||
|   lastCheck: number | ||||
|   latestVersion: string | ||||
|   performedUpgrade: boolean | ||||
| } | ||||
|  | ||||
| class SmartUpdate { | ||||
| import { KeyValueStore } from 'npmextra' | ||||
|  | ||||
| export class SmartUpdate { | ||||
|   kvStore = new plugins.npmextra.KeyValueStore('custom', 'global:smartupdate') | ||||
|  | ||||
|   async checkCacheStatus () { | ||||
|     let result: ICacheStatus = await this.kvStore.read(npmname) | ||||
|     if(result && result) { | ||||
|   async check (npmnameArg: string, compareVersion: string) { | ||||
|     let result: ICacheStatus = await this.kvStore.readKey(npmnameArg) | ||||
|     let timeStamp = new TimeStamp() | ||||
|  | ||||
|     // the newData to write | ||||
|     let newData = { | ||||
|       lastCheck: timeStamp.milliSeconds, | ||||
|       latestVersion: 'x.x.x', | ||||
|       performedUpgrade: false | ||||
|     } | ||||
|     if (result) { | ||||
|       let lastCheckTimeStamp = TimeStamp.fromMilliSeconds(result.lastCheck) | ||||
|       let compareTime = plugins.smarttime.getMilliSecondsFromUnits({ days: 1 }) | ||||
|       if (!lastCheckTimeStamp.isOlderThan(timeStamp, compareTime)) { | ||||
|         plugins.beautylog.log('not checking for new version since this has been done already for today') | ||||
|         return | ||||
|       } | ||||
|     } | ||||
|     let npmPackage = await this.getNpmPackageFromRegistry(npmnameArg) | ||||
|     newData.latestVersion = npmPackage.version | ||||
|     let upgradeBool = await this.checkIfUpgrade(npmPackage, compareVersion) | ||||
|     if(upgradeBool) { | ||||
|  | ||||
|   async check (npmname: string) { | ||||
|     } | ||||
|     this.kvStore.writeKey(npmnameArg, newData) | ||||
|   } | ||||
|  | ||||
|   private async getNpmPackageFromRegistry (npmnameArg) { | ||||
|     plugins.beautylog.log(`checking for newer version of ${npmnameArg}...`) | ||||
|     let npmRegistry = new plugins.smartnpm.NpmRegistry() | ||||
|     let npmPackage = (await npmRegistry.search({ name: npmnameArg, boostExact: true }))[0] | ||||
|     return npmPackage | ||||
|   } | ||||
|  | ||||
|   private async checkIfUpgrade (npmPackage: plugins.smartnpm.NpmPackage, versionArg: string) { | ||||
|     if (npmPackage.version === versionArg) { | ||||
|       plugins.beautylog.ok(`You are running the latest version of ${npmPackage.name}`) | ||||
|       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!!!`) | ||||
|       return true | ||||
|     } | ||||
|   } | ||||
| let standardInstance = new SmartUpdate() | ||||
|  | ||||
| export let check = standardInstance.check | ||||
|  | ||||
|  | ||||
| export let standardExport = 'Hi there! :) This is a exported string' | ||||
| } | ||||
| export let standardHandler = new SmartUpdate() | ||||
|   | ||||
| @@ -1,9 +1,13 @@ | ||||
| import 'typings-global' | ||||
|  | ||||
| import * as beautylog from 'beautylog' | ||||
| import * as npmextra from 'npmextra' | ||||
| import * as smartnpm from 'smartnpm' | ||||
| import * as smarttime from 'smarttime' | ||||
|  | ||||
| export { | ||||
|   beautylog, | ||||
|   npmextra, | ||||
|   smartnpm | ||||
|   smartnpm, | ||||
|   smarttime | ||||
| } | ||||
|   | ||||
							
								
								
									
										46
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								yarn.lock
									
									
									
									
									
								
							| @@ -34,15 +34,15 @@ | ||||
|     "@types/node" "*" | ||||
|  | ||||
| "@types/glob@*": | ||||
|   version "5.0.30" | ||||
|   resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.30.tgz#1026409c5625a8689074602808d082b2867b8a51" | ||||
|   version "5.0.31" | ||||
|   resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.31.tgz#6cb8500bd170750c1948f785cc5828e9cff0c36a" | ||||
|   dependencies: | ||||
|     "@types/minimatch" "*" | ||||
|     "@types/node" "*" | ||||
|  | ||||
| "@types/lodash@4.x.x", "@types/lodash@^4.14.55", "@types/lodash@^4.14.67", "@types/lodash@^4.14.68": | ||||
|   version "4.14.72" | ||||
|   resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.72.tgz#f090cf6eb1fee1647a0efa1ebe18b0b78ed551c6" | ||||
|   version "4.14.73" | ||||
|   resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.73.tgz#9837e47db8643ba5bcef2c7921f37d90f9c24213" | ||||
|  | ||||
| "@types/minimatch@*": | ||||
|   version "3.0.0" | ||||
| @@ -107,11 +107,12 @@ balanced-match@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" | ||||
|  | ||||
| beautycolor@^1.0.7: | ||||
|   version "1.0.7" | ||||
|   resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.7.tgz#a4715738ac4c8221371e9cbeb5a6cc6d11ecbf7c" | ||||
| beautycolor@^1.0.7, beautycolor@^1.0.9: | ||||
|   version "1.0.10" | ||||
|   resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.10.tgz#4b50758e59115839b3bb2bfe8aaaec9e29c747dd" | ||||
|   dependencies: | ||||
|     ansi-256-colors "^1.1.0" | ||||
|     tapbundle "^1.1.1" | ||||
|     typings-global "^1.0.14" | ||||
|  | ||||
| beautylog@^6.1.10: | ||||
| @@ -459,17 +460,17 @@ nan@^2.3.2: | ||||
|   version "2.6.2" | ||||
|   resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" | ||||
|  | ||||
| npmextra@^2.0.8: | ||||
|   version "2.0.8" | ||||
|   resolved "https://registry.yarnpkg.com/npmextra/-/npmextra-2.0.8.tgz#9fd3c451edee5a65da0e61df331be6f2313f4676" | ||||
| npmextra@^2.0.9: | ||||
|   version "2.0.9" | ||||
|   resolved "https://registry.yarnpkg.com/npmextra/-/npmextra-2.0.9.tgz#bd32b91590a8b3e2eabdfed26c324a1952758c2c" | ||||
|   dependencies: | ||||
|     beautylog "^6.1.10" | ||||
|     smartfile "^4.2.17" | ||||
|     smartfile "^4.2.20" | ||||
|     smartlodash "^1.0.1" | ||||
|     smartpath "^3.2.8" | ||||
|     smartq "^1.1.6" | ||||
|     taskbuffer "^1.0.22" | ||||
|     typings-global "^1.0.19" | ||||
|     typings-global "^1.0.20" | ||||
|  | ||||
| object-keys@^1.0.8: | ||||
|   version "1.0.11" | ||||
| @@ -550,8 +551,8 @@ rechoir@^0.6.2: | ||||
|     resolve "^1.1.6" | ||||
|  | ||||
| remove-trailing-separator@^1.0.1: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511" | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" | ||||
|  | ||||
| replace-ext@^1.0.0: | ||||
|   version "1.0.0" | ||||
| @@ -626,7 +627,7 @@ smartenv@^2.0.0: | ||||
|     smartq "^1.1.1" | ||||
|     typings-global "^1.0.14" | ||||
|  | ||||
| smartfile@^4.2.17: | ||||
| smartfile@^4.2.20: | ||||
|   version "4.2.20" | ||||
|   resolved "https://registry.yarnpkg.com/smartfile/-/smartfile-4.2.20.tgz#abc37c04fb7b3afea68fa295dfb80083361a8028" | ||||
|   dependencies: | ||||
| @@ -650,10 +651,11 @@ smartlodash@^1.0.1: | ||||
|     "@types/node" "^8.0.10" | ||||
|     lodash "^4.17.4" | ||||
|  | ||||
| smartnpm@^1.0.3: | ||||
|   version "1.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/smartnpm/-/smartnpm-1.0.3.tgz#62efa486d92f21d1299209ced5557e0796beccbd" | ||||
| smartnpm@^1.0.4: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/smartnpm/-/smartnpm-1.0.4.tgz#026ce3b3f3b46ec546de51908a0d408848466c0d" | ||||
|   dependencies: | ||||
|     beautycolor "^1.0.9" | ||||
|     beautylog "^6.1.10" | ||||
|     smartrequest "^1.0.6" | ||||
|     typings-global "^1.0.16" | ||||
| @@ -690,6 +692,12 @@ smartshell@^1.0.6: | ||||
|     typings-global "^1.0.19" | ||||
|     which "^1.2.14" | ||||
|  | ||||
| smarttime@^1.0.6: | ||||
|   version "1.0.6" | ||||
|   resolved "https://registry.yarnpkg.com/smarttime/-/smarttime-1.0.6.tgz#0412a021cff88e8e41b766103a2d9e42fe816ddc" | ||||
|   dependencies: | ||||
|     typings-global "^1.0.16" | ||||
|  | ||||
| sprintf-js@~1.0.2: | ||||
|   version "1.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" | ||||
| @@ -733,7 +741,7 @@ symbol-observable@^1.0.1: | ||||
|   version "1.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" | ||||
|  | ||||
| tapbundle@^1.0.13: | ||||
| tapbundle@^1.1.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.1.1.tgz#ec4172c0e82a77b1f6133fef2606311ede28a62d" | ||||
|   dependencies: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user