Refactor/linting - tslint-xo (#178)
* refactor(deps): added tslint, cleanup, and activationEvents modified * refactor(lint): linting... * refactor(changelog): changelo method refactor (should be tested) * refactor(theme-icons): linting and small refactor * refactor(accents-setter): linting and small refactor * chore(travis): added travis file
This commit is contained in:
parent
780722c21a
commit
94189a72c3
33 changed files with 994 additions and 1302 deletions
|
@ -4,4 +4,4 @@ export const MESSAGE_BUMP_SUCCESS: string = ' Finished successfully\n';
|
|||
export const MESSAGE_ICON_ERROR: string = 'There is an error with JSON generated for icons';
|
||||
export const MESSAGE_ICON_ACCENTS_ERROR: string = 'Failed to create accents icon themes, please read the log file.';
|
||||
export const MESSAGE_GENERATED: string = 'Generated';
|
||||
export const MESSAGE_THEME_VARIANT_PARSE_ERROR: string = 'Error when parsing json for theme variants';
|
||||
export const MESSAGE_THEME_VARIANT_PARSE_ERROR: string = 'Error when parsing json for theme variants';
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import { IThemeIconsItem } from "./itheme-icons-item";
|
||||
import {IThemeIconsItem} from './itheme-icons-item';
|
||||
|
||||
export interface IThemeIconsAccents {
|
||||
iconDefinitions: {
|
||||
_folder_open: IThemeIconsItem;
|
||||
_folder_open_build: IThemeIconsItem;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
export interface IThemeIconsItem {
|
||||
iconPath: string;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
import { IThemeIconsItem } from "./itheme-icons-item";
|
||||
import {IThemeIconsItem} from './itheme-icons-item';
|
||||
|
||||
export interface IThemeIconsVariants {
|
||||
iconDefinitions: {
|
||||
"_folder_dark": IThemeIconsItem;
|
||||
"_folder_dark_build": IThemeIconsItem;
|
||||
"_folder_light": IThemeIconsItem;
|
||||
"_folder_light_build": IThemeIconsItem;
|
||||
"_folder_vscode": IThemeIconsItem;
|
||||
"_folder_gulp": IThemeIconsItem;
|
||||
"_folder_node": IThemeIconsItem;
|
||||
"_folder_images": IThemeIconsItem;
|
||||
"_folder_js": IThemeIconsItem;
|
||||
"_folder_src": IThemeIconsItem;
|
||||
"_folder_assets": IThemeIconsItem;
|
||||
}
|
||||
}
|
||||
_folder_dark: IThemeIconsItem;
|
||||
_folder_dark_build: IThemeIconsItem;
|
||||
_folder_light: IThemeIconsItem;
|
||||
_folder_light_build: IThemeIconsItem;
|
||||
_folder_vscode: IThemeIconsItem;
|
||||
_folder_gulp: IThemeIconsItem;
|
||||
_folder_node: IThemeIconsItem;
|
||||
_folder_images: IThemeIconsItem;
|
||||
_folder_js: IThemeIconsItem;
|
||||
_folder_src: IThemeIconsItem;
|
||||
_folder_assets: IThemeIconsItem;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
import * as gulp from "gulp";
|
||||
import * as fs from 'fs';
|
||||
import { CHARSET } from "../../extensions/consts/files";
|
||||
|
||||
import * as gulp from 'gulp';
|
||||
import {CHARSET} from './../../extensions/consts/files';
|
||||
|
||||
export default gulp.task('changelog-title', () => {
|
||||
fs.writeFileSync(
|
||||
'./CHANGELOG.md',
|
||||
fs.readFileSync('CHANGELOG.md', CHARSET).replace('# Change Log', '# Material Theme Changelog'),
|
||||
{ encoding: CHARSET });
|
||||
});
|
||||
{encoding: CHARSET});
|
||||
});
|
||||
|
|
|
@ -3,22 +3,19 @@ import * as gulp from 'gulp';
|
|||
import * as gutil from 'gulp-util';
|
||||
import * as path from 'path';
|
||||
|
||||
import { MESSAGE_GENERATED, MESSAGE_ICON_ACCENTS_ERROR } from "../consts/log";
|
||||
import {MESSAGE_GENERATED, MESSAGE_ICON_ACCENTS_ERROR} from './../consts/log';
|
||||
|
||||
import { CHARSET } from "../../extensions/consts/files";
|
||||
import { IDefaults } from "../../extensions/interfaces/idefaults";
|
||||
import { IThemeIconsAccents } from "../interfaces/itheme-icons-accents";
|
||||
import PATHS from '../../extensions/consts/paths'
|
||||
import { IThemeIconsItem } from '../interfaces/itheme-icons-item';
|
||||
import { getAccentableIcons } from '../../extensions/helpers/fs';
|
||||
import {CHARSET} from './../../extensions/consts/files';
|
||||
import {IThemeIconsAccents} from './../interfaces/itheme-icons-accents';
|
||||
import PATHS from './../../extensions/consts/paths';
|
||||
import {IThemeIconsItem} from './../interfaces/itheme-icons-item';
|
||||
import {getAccentableIcons, getDefaultValues} from './../../extensions/helpers/fs';
|
||||
|
||||
const BASE_ICON_THEME_PATH: string = path.join(process.cwd(), PATHS.THEMES, './Material-Theme-Icons.json');
|
||||
const DEFAULTS: IDefaults = require('../../extensions/defaults.json');
|
||||
const DEFAULTS = getDefaultValues();
|
||||
|
||||
/**
|
||||
* Normalizes icon path
|
||||
* @param {string} iconPath
|
||||
* @returns {string}
|
||||
*/
|
||||
function normalizeIconPath(iconPath: string): string {
|
||||
return path.join(process.cwd(), PATHS.ICONS, iconPath);
|
||||
|
@ -26,9 +23,6 @@ function normalizeIconPath(iconPath: string): string {
|
|||
|
||||
/**
|
||||
* Replaces a file name with the accented filename
|
||||
* @param {string} name
|
||||
* @param {string} accentName
|
||||
* @returns {string}
|
||||
*/
|
||||
function replaceNameWithAccent(name: string, accentName: string): string {
|
||||
return name.replace('.svg', `.accent.${ accentName }.svg`);
|
||||
|
@ -36,24 +30,17 @@ function replaceNameWithAccent(name: string, accentName: string): string {
|
|||
|
||||
/**
|
||||
* Replaces a SVG colour
|
||||
*
|
||||
* @param {string} filecontent
|
||||
* @param {string} colour
|
||||
* @returns {string}
|
||||
*/
|
||||
export function replaceSVGColour(filecontent: string, colour: string): string {
|
||||
return filecontent.replace(new RegExp('#(80CBC4)', 'i'), ($0, $1) => {
|
||||
|
||||
colour = colour.replace('#', '');
|
||||
console.log(`Replacing colour ${ $1 } with ${ colour }`)
|
||||
return $0.replace($1, colour);
|
||||
const newColour = colour.replace('#', '');
|
||||
console.log(`Replacing colour ${ $1 } with ${ newColour }`);
|
||||
return $0.replace($1, newColour);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces white spaces in accents' names
|
||||
* @param {string} input
|
||||
* @returns {string}
|
||||
*/
|
||||
function replaceWhiteSpaces(input: string): string {
|
||||
return input.replace(/\s+/g, '-');
|
||||
|
@ -61,18 +48,15 @@ function replaceWhiteSpaces(input: string): string {
|
|||
|
||||
/**
|
||||
* Writes a new svg file
|
||||
* @param {string} fromFile
|
||||
* @param {string} toFile
|
||||
* @param {string} accentColour
|
||||
*/
|
||||
function writeSVGIcon(fromFile: string, toFile: string, accent: string): void {
|
||||
let fileContent: string = fs.readFileSync(normalizeIconPath(fromFile), CHARSET);
|
||||
let content: string = replaceSVGColour(fileContent, DEFAULTS.accents[accent]);
|
||||
toFile = normalizeIconPath(toFile);
|
||||
const fileContent: string = fs.readFileSync(normalizeIconPath(fromFile), CHARSET);
|
||||
const content: string = replaceSVGColour(fileContent, DEFAULTS.accents[accent]);
|
||||
const pathToFile = normalizeIconPath(toFile);
|
||||
|
||||
gutil.log(gutil.colors.gray(`Accented icon ${toFile} created with colour ${ accent } (${ DEFAULTS.accents[accent] })`));
|
||||
gutil.log(gutil.colors.gray(`Accented icon ${pathToFile} created with colour ${ accent } (${ DEFAULTS.accents[accent] })`));
|
||||
|
||||
fs.writeFileSync(toFile, content);
|
||||
fs.writeFileSync(pathToFile, content);
|
||||
}
|
||||
|
||||
// Exports task to index.ts
|
||||
|
@ -83,21 +67,21 @@ export default gulp.task('build:icons.accents', cb => {
|
|||
basetheme = require(BASE_ICON_THEME_PATH);
|
||||
|
||||
Object.keys(DEFAULTS.accents).forEach(key => {
|
||||
let iconName = replaceWhiteSpaces(key);
|
||||
let themecopy: IThemeIconsAccents = JSON.parse(JSON.stringify(basetheme));
|
||||
let themePath: string = path.join(PATHS.THEMES, `./Material-Theme-Icons-${ key }.json`);
|
||||
const iconName = replaceWhiteSpaces(key);
|
||||
const themecopy: IThemeIconsAccents = JSON.parse(JSON.stringify(basetheme));
|
||||
const themePath: string = path.join(PATHS.THEMES, `./Material-Theme-Icons-${ key }.json`);
|
||||
|
||||
getAccentableIcons().forEach(accentableIconName => {
|
||||
gutil.log(gutil.colors.gray(`Preparing ${ accentableIconName } accented icon`));
|
||||
|
||||
let iconOriginDefinition: IThemeIconsItem = (basetheme.iconDefinitions as any)[accentableIconName];
|
||||
let iconCopyDefinition: IThemeIconsItem = (themecopy.iconDefinitions as any)[accentableIconName];
|
||||
const iconOriginDefinition: IThemeIconsItem = (basetheme.iconDefinitions as any)[accentableIconName];
|
||||
const iconCopyDefinition: IThemeIconsItem = (themecopy.iconDefinitions as any)[accentableIconName];
|
||||
|
||||
if (iconOriginDefinition !== undefined && typeof iconOriginDefinition.iconPath === 'string' && iconCopyDefinition !== undefined && typeof iconCopyDefinition.iconPath === 'string') {
|
||||
iconCopyDefinition.iconPath = replaceNameWithAccent(iconOriginDefinition.iconPath, iconName);
|
||||
writeSVGIcon(iconOriginDefinition.iconPath, iconCopyDefinition.iconPath, key);
|
||||
} else {
|
||||
gutil.log(gutil.colors.yellow(`Icon ${ accentableIconName } not found`))
|
||||
gutil.log(gutil.colors.yellow(`Icon ${ accentableIconName } not found`));
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -124,4 +108,4 @@ export default gulp.task('build:icons.accents', cb => {
|
|||
}
|
||||
|
||||
cb();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,44 +1,47 @@
|
|||
import {getVariantIcons} from '../../extensions/helpers/fs';
|
||||
import * as gulp from 'gulp';
|
||||
import * as path from 'path';
|
||||
import * as fs from 'fs';
|
||||
|
||||
import { CHARSET } from "../../extensions/consts/files";
|
||||
import { IPackageJSON } from "../../extensions/interfaces/ipackage.json";
|
||||
import { IThemeIconsVariants } from "../interfaces/itheme-icons-variants";
|
||||
import PATHS from '../../extensions/consts/paths'
|
||||
import { getDefaultValues } from "../../extensions/helpers/fs";
|
||||
import { IDefaultsThemeVariantColours } from "../../extensions/interfaces/idefaults";
|
||||
import { IThemeIconsItem } from '../interfaces/itheme-icons-item';
|
||||
import {IThemeIconsVariants} from '../interfaces/itheme-icons-variants';
|
||||
import {CHARSET} from './../../extensions/consts/files';
|
||||
import PATHS from './../../extensions/consts/paths';
|
||||
import {getDefaultValues, getVariantIcons, getPackageJSON} from './../../extensions/helpers/fs';
|
||||
import {IDefaultsThemeVariant} from './../../extensions/interfaces/idefaults';
|
||||
import {IThemeIconsItem} from './../interfaces/itheme-icons-item';
|
||||
|
||||
const PACKAGE_JSON: IPackageJSON = require(path.join(process.cwd(), './package.json'));
|
||||
const PACKAGE_JSON = getPackageJSON();
|
||||
|
||||
let variants: IDefaultsThemeVariantColours = getDefaultValues().themeVariantsColours;
|
||||
|
||||
function writeIconVariant(filepath: string, destpath: string, colour: string): void {
|
||||
let regexp = new RegExp('(#4a616c)', 'i')
|
||||
filepath = path.join(process.cwd(), PATHS.ICONS, filepath);
|
||||
destpath = path.join(process.cwd(), PATHS.ICONS, destpath);
|
||||
fs.writeFileSync(destpath, fs.readFileSync(filepath, CHARSET).replace(regexp, ($0, $1) => $0.replace($1, colour)), { encoding: CHARSET }) ;
|
||||
}
|
||||
const variants: IDefaultsThemeVariant = getDefaultValues().themeVariantsColours;
|
||||
|
||||
const writeIconVariant = (filepath: string, destpath: string, colour: string): void => {
|
||||
const regexp = new RegExp('(#4a616c)', 'i');
|
||||
const finalFilePath = path.join(process.cwd(), PATHS.ICONS, filepath);
|
||||
const finalDestpath = path.join(process.cwd(), PATHS.ICONS, destpath);
|
||||
fs.writeFileSync(
|
||||
finalDestpath,
|
||||
fs.readFileSync(finalFilePath, CHARSET)
|
||||
.replace(regexp, ($0, $1) => $0.replace($1, colour)), {encoding: CHARSET}
|
||||
);
|
||||
};
|
||||
|
||||
export default gulp.task('build:icons.variants', callback => {
|
||||
try {
|
||||
Object.keys(variants).forEach(variantName => {
|
||||
PACKAGE_JSON.contributes.iconThemes.forEach(contribute => {
|
||||
let regexpCheck: RegExp = new RegExp(Object.keys(variants).join('|'), 'i');
|
||||
const regexpCheck: RegExp = new RegExp(Object.keys(variants).join('|'), 'i');
|
||||
|
||||
if (regexpCheck.test(contribute.path) || regexpCheck.test(contribute.id)) return;
|
||||
if (regexpCheck.test(contribute.path) || regexpCheck.test(contribute.id)) {
|
||||
return;
|
||||
}
|
||||
|
||||
let basepath: string = path.join(process.cwd(), contribute.path);
|
||||
let basetheme: IThemeIconsVariants = require(basepath);
|
||||
let theme: IThemeIconsVariants = JSON.parse(JSON.stringify(basetheme));
|
||||
let variant = variants[variantName];
|
||||
const basepath: string = path.join(process.cwd(), contribute.path);
|
||||
const basetheme: IThemeIconsVariants = require(basepath);
|
||||
const theme: IThemeIconsVariants = JSON.parse(JSON.stringify(basetheme));
|
||||
const variant = variants[variantName];
|
||||
|
||||
getVariantIcons().forEach(_iconName => {
|
||||
let basethemeIcon: IThemeIconsItem = (basetheme.iconDefinitions as any)[_iconName];
|
||||
let themeIcon: IThemeIconsItem = (theme.iconDefinitions as any)[_iconName];
|
||||
getVariantIcons().forEach(iconName => {
|
||||
const basethemeIcon: IThemeIconsItem = (basetheme.iconDefinitions as any)[iconName];
|
||||
const themeIcon: IThemeIconsItem = (theme.iconDefinitions as any)[iconName];
|
||||
|
||||
if (themeIcon !== undefined) {
|
||||
themeIcon.iconPath = themeIcon.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
|
@ -57,4 +60,4 @@ export default gulp.task('build:icons.variants', callback => {
|
|||
}
|
||||
|
||||
callback();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -4,24 +4,22 @@ import * as gutil from 'gulp-util';
|
|||
import * as mustache from 'mustache';
|
||||
import * as path from 'path';
|
||||
|
||||
import { HR, MESSAGE_GENERATED, MESSAGE_ICON_ERROR } from './../consts/log';
|
||||
import {HR, MESSAGE_GENERATED, MESSAGE_ICON_ERROR} from './../consts/log';
|
||||
|
||||
import { CHARSET } from "../../extensions/consts/files";
|
||||
import { IGenericObject } from "../../extensions/interfaces/igeneric-object";
|
||||
import { IIcon } from './../interfaces/iicon';
|
||||
import paths from '../../extensions/consts/paths';
|
||||
import { ensureDir } from '../../extensions/helpers/fs';
|
||||
import {CHARSET} from './../../extensions/consts/files';
|
||||
import {IGenericObject} from './../../extensions/interfaces/igeneric-object';
|
||||
import {IIcon} from './../interfaces/iicon';
|
||||
import paths from './../../extensions/consts/paths';
|
||||
import {ensureDir} from './../../extensions/helpers/fs';
|
||||
|
||||
/**
|
||||
* Returns an object implementing the IIcon interface
|
||||
* @param {string} fileName
|
||||
* @returns {IIcon}
|
||||
*/
|
||||
function iconFactory(fileName: string): IIcon {
|
||||
gutil.log(gutil.colors.gray(`Processing icon ${ fileName }`))
|
||||
const iconFactory = (fileName: string): IIcon => {
|
||||
gutil.log(gutil.colors.gray(`Processing icon ${ fileName }`));
|
||||
let name: string = path.basename(fileName, path.extname(fileName));
|
||||
let filename: string = name;
|
||||
let last: boolean = false;
|
||||
const filename: string = name;
|
||||
const last: boolean = false;
|
||||
|
||||
// renaming icon for vscode
|
||||
// if the icon filename starts with a folder prefix,
|
||||
|
@ -35,8 +33,8 @@ function iconFactory(fileName: string): IIcon {
|
|||
|
||||
gutil.log(gutil.colors.gray(`VSCode icon name ${ name } with filename ${ filename }`));
|
||||
|
||||
return { filename, name, last } as IIcon;
|
||||
}
|
||||
return {filename, name, last} as IIcon;
|
||||
};
|
||||
|
||||
/**
|
||||
* > Build Icons
|
||||
|
@ -44,24 +42,26 @@ function iconFactory(fileName: string): IIcon {
|
|||
*/
|
||||
export default gulp.task('build:icons', cb => {
|
||||
let contents: string;
|
||||
let fileNames: string[] = fs.readdirSync(path.join(paths.SRC, `./icons/svgs`));
|
||||
let icons: IIcon[] = fileNames.map(fileName => iconFactory(fileName));
|
||||
let partials: string[] = fs.readdirSync(path.join(paths.SRC, `./icons/partials`));
|
||||
let partialsData: IGenericObject<any> = {};
|
||||
let pathTemp: string = './themes/.material-theme-icons.tmp';
|
||||
const fileNames: string[] = fs.readdirSync(path.join(paths.SRC, './icons/svgs'));
|
||||
const icons: IIcon[] = fileNames.map(fileName => iconFactory(fileName));
|
||||
const partials: string[] = fs.readdirSync(path.join(paths.SRC, './icons/partials'));
|
||||
const partialsData: IGenericObject<any> = {};
|
||||
const pathTemp: string = './themes/.material-theme-icons.tmp';
|
||||
|
||||
ensureDir(path.join(paths.THEMES));
|
||||
|
||||
icons[icons.length - 1].last = true;
|
||||
|
||||
partials.forEach(partial => {
|
||||
partialsData[path.basename(partial, path.extname(partial))] = fs.readFileSync(path.join(paths.SRC, `./icons/partials`, `./${partial}`), CHARSET);
|
||||
partialsData[path.basename(partial, path.extname(partial))] = fs.readFileSync(
|
||||
path.join(paths.SRC, './icons/partials', `./${partial}`
|
||||
), CHARSET);
|
||||
});
|
||||
|
||||
contents = mustache.render(
|
||||
fs.readFileSync(path.join(paths.SRC, `./icons/icons-theme.json`), CHARSET)
|
||||
, { icons }
|
||||
, partialsData
|
||||
fs.readFileSync(path.join(paths.SRC, './icons/icons-theme.json'), CHARSET),
|
||||
{icons},
|
||||
partialsData
|
||||
);
|
||||
|
||||
try {
|
||||
|
@ -72,7 +72,7 @@ export default gulp.task('build:icons', cb => {
|
|||
return;
|
||||
}
|
||||
|
||||
fs.writeFileSync(pathTemp, contents, { encoding: CHARSET });
|
||||
fs.writeFileSync(pathTemp, contents, {encoding: CHARSET});
|
||||
|
||||
gutil.log(gutil.colors.gray(HR));
|
||||
gutil.log(MESSAGE_GENERATED, gutil.colors.green(pathTemp));
|
||||
|
|
|
@ -4,25 +4,24 @@ import * as gulpUtil from 'gulp-util';
|
|||
import * as mustache from 'mustache';
|
||||
import * as path from 'path';
|
||||
|
||||
import { HR, MESSAGE_GENERATED, MESSAGE_THEME_VARIANT_PARSE_ERROR } from './../consts/log';
|
||||
import {HR, MESSAGE_GENERATED, MESSAGE_THEME_VARIANT_PARSE_ERROR} from './../consts/log';
|
||||
|
||||
import { CHARSET } from "../../extensions/consts/files";
|
||||
import { IDefaults } from "../../extensions/interfaces/idefaults";
|
||||
import { IThemeVariant } from './../interfaces/itheme-variant';
|
||||
import paths from '../../extensions/consts/paths';
|
||||
import { ensureDir } from '../../extensions/helpers/fs';
|
||||
import {CHARSET} from './../../extensions/consts/files';
|
||||
import {IThemeVariant} from './../interfaces/itheme-variant';
|
||||
import paths from './../../extensions/consts/paths';
|
||||
import {ensureDir, getDefaultValues} from './../../extensions/helpers/fs';
|
||||
|
||||
let commons: IDefaults = require('../../extensions/defaults.json');
|
||||
const commons = getDefaultValues();
|
||||
|
||||
let themeTemplateFileContent: string = fs.readFileSync(path.join(paths.SRC, `/themes/theme-template-color-theme.json`), CHARSET);
|
||||
let themeVariants: IThemeVariant[] = [];
|
||||
const themeTemplateFileContent: string = fs.readFileSync(path.join(paths.SRC, '/themes/theme-template-color-theme.json'), CHARSET);
|
||||
const themeVariants: IThemeVariant[] = [];
|
||||
|
||||
let fileNames: string[] = fs.readdirSync(path.join(paths.SRC, `./themes/settings/specific`));
|
||||
const fileNames: string[] = fs.readdirSync(path.join(paths.SRC, './themes/settings/specific'));
|
||||
|
||||
// build theme variants for later use in templating
|
||||
fileNames.forEach(fileName => {
|
||||
let filePath: string = path.join(paths.SRC, `./themes/settings/specific`, `./${fileName}`);
|
||||
let contents: string = fs.readFileSync(filePath, CHARSET);
|
||||
const filePath: string = path.join(paths.SRC, './themes/settings/specific', `./${fileName}`);
|
||||
const contents: string = fs.readFileSync(filePath, CHARSET);
|
||||
|
||||
try {
|
||||
themeVariants.push(JSON.parse(contents));
|
||||
|
@ -42,12 +41,12 @@ export default gulp.task('build:themes', cb => {
|
|||
|
||||
try {
|
||||
themeVariants.forEach(variant => {
|
||||
let filePath = path.join(paths.THEMES, `./${variant.name}.json`);
|
||||
let templateData = { commons, variant };
|
||||
let templateJSON: any = JSON.parse(mustache.render(themeTemplateFileContent, templateData));
|
||||
let templateJSONStringified: string = JSON.stringify(templateJSON, null, 2);
|
||||
const filePath = path.join(paths.THEMES, `./${variant.name}.json`);
|
||||
const templateData = {commons, variant};
|
||||
const templateJSON: any = JSON.parse(mustache.render(themeTemplateFileContent, templateData));
|
||||
const templateJSONStringified: string = JSON.stringify(templateJSON, null, 2);
|
||||
|
||||
fs.writeFileSync(filePath, templateJSONStringified, { encoding: CHARSET });
|
||||
fs.writeFileSync(filePath, templateJSONStringified, {encoding: CHARSET});
|
||||
|
||||
gulpUtil.log(MESSAGE_GENERATED, gulpUtil.colors.green(filePath));
|
||||
});
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import * as gulp from "gulp";
|
||||
import * as path from "path";
|
||||
import * as gulp from 'gulp';
|
||||
import * as path from 'path';
|
||||
|
||||
import Paths from "../../extensions/consts/paths";
|
||||
import Paths from './../../extensions/consts/paths';
|
||||
|
||||
/*
|
||||
* > Watcher
|
||||
|
@ -10,5 +10,5 @@ import Paths from "../../extensions/consts/paths";
|
|||
export default gulp.task('watch', () => {
|
||||
// Commented due
|
||||
// gulp.watch(path.join(Paths.SRC, `./themes/**/*.json`), ['build:themes']);
|
||||
gulp.watch(path.join(Paths.SRC, `./themes/**/*.json`));
|
||||
});
|
||||
gulp.watch(path.join(Paths.SRC, './themes/**/*.json'));
|
||||
});
|
||||
|
|
6
.travis.yml
Normal file
6
.travis.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
language: node_js
|
||||
node_js:
|
||||
- '8'
|
||||
|
||||
script:
|
||||
- yarn test
|
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"editor.tabSize": 2,
|
||||
"editor.insertSpaces": true,
|
||||
"files.insertFinalNewline": true,
|
||||
"files.exclude": {
|
||||
"**/.git": true,
|
||||
".git-crypt": true,
|
||||
|
|
|
@ -1,107 +1,102 @@
|
|||
import * as vscode from 'vscode';
|
||||
|
||||
import {IAccentCustomProperty} from '../../interfaces/iaccent-custom-property';
|
||||
import { IDefaults } from "../../interfaces/idefaults";
|
||||
import {IGenericObject} from '../../interfaces/igeneric-object';
|
||||
import { updateAccent, isMaterialTheme, isMaterialThemeIcons } from "../../helpers/settings";
|
||||
import { getCurrentThemeID, getCurrentThemeIconsID, reloadWindow } from "../../helpers/vscode";
|
||||
import { THEME_ICONS } from "../theme-icons/index";
|
||||
import {IAccentCustomProperty} from './../../interfaces/iaccent-custom-property';
|
||||
import {IGenericObject} from './../../interfaces/igeneric-object';
|
||||
import {
|
||||
updateAccent,
|
||||
isMaterialTheme,
|
||||
isMaterialThemeIcons
|
||||
} from './../../helpers/settings';
|
||||
import {
|
||||
getCurrentThemeID,
|
||||
getCurrentThemeIconsID,
|
||||
reloadWindow
|
||||
} from './../../helpers/vscode';
|
||||
import {getDefaultValues} from './../../helpers/fs';
|
||||
import {THEME_ICONS} from './../theme-icons/index';
|
||||
|
||||
const REGEXP_HEX: RegExp = /^#([0-9A-F]{6}|[0-9A-F]{8})$/i;
|
||||
|
||||
let themeConfigCommon: IDefaults = require('../../defaults.json');
|
||||
let accentsProperties: IGenericObject<IAccentCustomProperty> = {
|
||||
"activityBarBadge.background": {
|
||||
const accentsProperties: IGenericObject <IAccentCustomProperty> = {
|
||||
'activityBarBadge.background': {
|
||||
alpha: 100,
|
||||
value: undefined
|
||||
},
|
||||
"list.activeSelectionForeground": {
|
||||
'list.activeSelectionForeground': {
|
||||
alpha: 100,
|
||||
value: undefined
|
||||
},
|
||||
"list.inactiveSelectionForeground": {
|
||||
'list.inactiveSelectionForeground': {
|
||||
alpha: 100,
|
||||
value: undefined
|
||||
},
|
||||
"list.highlightForeground": {
|
||||
'list.highlightForeground': {
|
||||
alpha: 100,
|
||||
value: undefined
|
||||
},
|
||||
"scrollbarSlider.activeBackground": {
|
||||
'scrollbarSlider.activeBackground': {
|
||||
alpha: 50,
|
||||
value: undefined
|
||||
},
|
||||
"editorSuggestWidget.highlightForeground": {
|
||||
'editorSuggestWidget.highlightForeground': {
|
||||
alpha: 100,
|
||||
value: undefined
|
||||
},
|
||||
"textLink.foreground": {
|
||||
'textLink.foreground': {
|
||||
alpha: 100,
|
||||
value: undefined
|
||||
},
|
||||
"progressBar.background": {
|
||||
'progressBar.background': {
|
||||
alpha: 100,
|
||||
value: undefined
|
||||
},
|
||||
"pickerGroup.foreground": {
|
||||
'pickerGroup.foreground': {
|
||||
alpha: 100,
|
||||
value: undefined
|
||||
},
|
||||
"tab.activeBorder": {
|
||||
'tab.activeBorder': {
|
||||
alpha: 100,
|
||||
value: undefined
|
||||
},
|
||||
"notificationLink.foreground": {
|
||||
'notificationLink.foreground': {
|
||||
alpha: 100,
|
||||
value: undefined
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Assigns colours
|
||||
* @param {string} colour
|
||||
* @param {*} config
|
||||
*/
|
||||
function assignColorCustomizations(colour: string, config: any): void {
|
||||
if (!isValidColour(colour)) {
|
||||
colour = undefined;
|
||||
}
|
||||
const assignColorCustomizations = (colour: string, config: any): void => {
|
||||
const newColour = isValidColour(colour) ? colour : undefined;
|
||||
|
||||
Object.keys(accentsProperties).forEach(propertyName => {
|
||||
let accent: IAccentCustomProperty = accentsProperties[propertyName];
|
||||
let _colour = colour;
|
||||
const accent: IAccentCustomProperty = accentsProperties[propertyName];
|
||||
let colorProp = newColour;
|
||||
|
||||
if (colour && accent.alpha < 100) {
|
||||
_colour = `${ colour }${ accent.alpha > 10 ? accent.alpha : `0${ accent.alpha }` }`;
|
||||
colorProp = `${ colour }${ accent.alpha > 10 ? accent.alpha : `0${ accent.alpha }` }`;
|
||||
}
|
||||
|
||||
if (accent) {
|
||||
config[propertyName] = _colour;
|
||||
config[propertyName] = colorProp;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Determines if a string is a valid colour
|
||||
* @param {(string | null | undefined)} colour
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function isValidColour(colour: string | null | undefined): boolean {
|
||||
if (typeof colour === 'string' && REGEXP_HEX.test(colour)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
const isValidColour = (colour: string | null | undefined): boolean =>
|
||||
typeof colour === 'string' && REGEXP_HEX.test(colour);
|
||||
|
||||
/**
|
||||
* Sets workbench options
|
||||
* @param {string} accentSelected
|
||||
* @param {*} config
|
||||
*/
|
||||
function setWorkbenchOptions(accentSelected: string | undefined, config: any): void {
|
||||
const setWorkbenchOptions = (accentSelected: string | undefined, config: any): void => {
|
||||
vscode.workspace.getConfiguration().update('workbench.colorCustomizations', config, true).then(() => {
|
||||
let themeID = getCurrentThemeID()
|
||||
let themeIconsID = getCurrentThemeIconsID()
|
||||
const themeID = getCurrentThemeID();
|
||||
const themeIconsID = getCurrentThemeIconsID();
|
||||
|
||||
updateAccent(accentSelected).then(() => {
|
||||
if (isMaterialTheme(themeID) && isMaterialThemeIcons(themeIconsID)) {
|
||||
|
@ -111,32 +106,34 @@ function setWorkbenchOptions(accentSelected: string | undefined, config: any): v
|
|||
}, reason => {
|
||||
vscode.window.showErrorMessage(reason);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* VSCode command
|
||||
*/
|
||||
export const THEME_ACCENTS_SETTER = () => {
|
||||
const themeConfigCommon = getDefaultValues();
|
||||
// shows the quick pick dropdown
|
||||
let options: string[] = Object.keys(themeConfigCommon.accents);
|
||||
let purgeColourKey: string = 'Remove accents';
|
||||
const options: string[] = Object.keys(themeConfigCommon.accents);
|
||||
const purgeColourKey: string = 'Remove accents';
|
||||
|
||||
options.push(purgeColourKey);
|
||||
|
||||
vscode.window.showQuickPick(options).then(accentSelected => {
|
||||
if (accentSelected === null || accentSelected === undefined) return;
|
||||
if (accentSelected === null || accentSelected === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
let config: any = vscode.workspace.getConfiguration().get('workbench.colorCustomizations');
|
||||
const config: any = vscode.workspace.getConfiguration().get('workbench.colorCustomizations');
|
||||
|
||||
switch(accentSelected) {
|
||||
switch (accentSelected) {
|
||||
case purgeColourKey:
|
||||
assignColorCustomizations(undefined, config);
|
||||
setWorkbenchOptions(undefined, config);
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
assignColorCustomizations(themeConfigCommon.accents[accentSelected], config);
|
||||
setWorkbenchOptions(accentSelected, config);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,30 +1,35 @@
|
|||
import {getAccentableIcons} from '../../helpers/fs';
|
||||
import * as fs from 'fs';
|
||||
|
||||
import { getAbsolutePath, getDefaultValues, getThemeIconsByContributeID, getThemeIconsContribute, getVariantIcons } from "../../helpers/fs";
|
||||
import { getCurrentThemeIconsID, getCurrentThemeID } from "../../helpers/vscode";
|
||||
import { isAccent, isMaterialThemeIcons, getCustomSettings } from "../../helpers/settings";
|
||||
import {
|
||||
getAccentableIcons,
|
||||
getAbsolutePath,
|
||||
getDefaultValues,
|
||||
getThemeIconsByContributeID,
|
||||
getThemeIconsContribute,
|
||||
getVariantIcons
|
||||
} from './../../helpers/fs';
|
||||
import {
|
||||
isAccent,
|
||||
isMaterialThemeIcons,
|
||||
getCustomSettings
|
||||
} from './../../helpers/settings';
|
||||
import {getCurrentThemeIconsID, getCurrentThemeID} from './../../helpers/vscode';
|
||||
import {CHARSET} from './../../consts/files';
|
||||
import {IPackageJSONThemeIcons} from './../../interfaces/ipackage.json';
|
||||
import {IThemeIconsIconPath, IThemeIcons} from './../../interfaces/itheme-icons';
|
||||
|
||||
import { CHARSET } from "../../consts/files";
|
||||
import { IPackageJSONThemeIcons } from "../../interfaces/ipackage.json";
|
||||
import {IThemeIconsIconPath, IThemeIcons} from '../../interfaces/itheme-icons';
|
||||
|
||||
|
||||
function getIconDefinition(definitions: any, iconname: string): IThemeIconsIconPath {
|
||||
const getIconDefinition = (definitions: any, iconname: string): IThemeIconsIconPath => {
|
||||
return (definitions as any)[iconname];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Replaces icon path with the accented one.
|
||||
* @param {string} iconPath
|
||||
* @param {string} accentName
|
||||
* @returns {string}
|
||||
*/
|
||||
function replaceIconPathWithAccent(iconPath: string, accentName: string): string {
|
||||
const replaceIconPathWithAccent = (iconPath: string, accentName: string): string => {
|
||||
return iconPath.replace('.svg', `.accent.${ accentName }.svg`);
|
||||
}
|
||||
};
|
||||
|
||||
function getVariantFromColor(color: string): string {
|
||||
const getVariantFromColor = (color: string): string => {
|
||||
switch (color) {
|
||||
case undefined || 'Material Theme':
|
||||
return 'Default';
|
||||
|
@ -33,61 +38,61 @@ function getVariantFromColor(color: string): string {
|
|||
default:
|
||||
return color.replace(/Material Theme /gi, '');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const THEME_ICONS = () => {
|
||||
let deferred: any = {};
|
||||
let promise = new Promise((resolve, reject) => {
|
||||
const deferred: any = {};
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
deferred.resolve = resolve;
|
||||
deferred.reject = reject;
|
||||
});
|
||||
let themeIconsID: string = getCurrentThemeIconsID();
|
||||
const themeIconsID: string = getCurrentThemeIconsID();
|
||||
|
||||
if (isMaterialThemeIcons(themeIconsID)) {
|
||||
let themeID = getCurrentThemeID();
|
||||
let customSettings = getCustomSettings();
|
||||
let defaults = getDefaultValues();
|
||||
let accentName = customSettings.accent;
|
||||
let variantName: string = getVariantFromColor(themeID);
|
||||
const themeID = getCurrentThemeID();
|
||||
const customSettings = getCustomSettings();
|
||||
const defaults = getDefaultValues();
|
||||
const accentName = customSettings.accent;
|
||||
const variantName: string = getVariantFromColor(themeID);
|
||||
|
||||
let themeContribute: IPackageJSONThemeIcons = getThemeIconsContribute(themeIconsID);
|
||||
let theme: IThemeIcons = getThemeIconsByContributeID(themeIconsID);
|
||||
let themepath: string = getAbsolutePath(themeContribute.path);
|
||||
const themeContribute: IPackageJSONThemeIcons = getThemeIconsContribute(themeIconsID);
|
||||
const theme: IThemeIcons = getThemeIconsByContributeID(themeIconsID);
|
||||
const themepath: string = getAbsolutePath(themeContribute.path);
|
||||
|
||||
if (isAccent(accentName, defaults)) {
|
||||
let _accentName = accentName.replace(/\s+/, '-');
|
||||
|
||||
const realAccentName = accentName.replace(/\s+/, '-');
|
||||
getAccentableIcons().forEach(iconname => {
|
||||
let distIcon = getIconDefinition(theme.iconDefinitions, iconname);
|
||||
let outIcon = getIconDefinition(defaults.icons.theme.iconDefinitions, iconname);
|
||||
const distIcon = getIconDefinition(theme.iconDefinitions, iconname);
|
||||
const outIcon = getIconDefinition(defaults.icons.theme.iconDefinitions, iconname);
|
||||
|
||||
if (typeof distIcon === 'object' && typeof outIcon === 'object') {
|
||||
distIcon.iconPath = replaceIconPathWithAccent(outIcon.iconPath, _accentName)
|
||||
distIcon.iconPath = replaceIconPathWithAccent(outIcon.iconPath, realAccentName);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
} else {
|
||||
|
||||
getAccentableIcons().forEach(iconname => {
|
||||
let distIcon = getIconDefinition(theme.iconDefinitions, iconname);
|
||||
let outIcon = getIconDefinition(defaults.icons.theme.iconDefinitions, iconname);
|
||||
const distIcon = getIconDefinition(theme.iconDefinitions, iconname);
|
||||
const outIcon = getIconDefinition(defaults.icons.theme.iconDefinitions, iconname);
|
||||
|
||||
distIcon.iconPath = outIcon.iconPath;
|
||||
});
|
||||
}
|
||||
|
||||
getVariantIcons().forEach(iconname => {
|
||||
let distIcon = getIconDefinition(theme.iconDefinitions, iconname);
|
||||
let outIcon = getIconDefinition(defaults.icons.theme.iconDefinitions, iconname);
|
||||
const distIcon = getIconDefinition(theme.iconDefinitions, iconname);
|
||||
const outIcon = getIconDefinition(defaults.icons.theme.iconDefinitions, iconname);
|
||||
|
||||
if (!!distIcon && !!outIcon) {
|
||||
if (distIcon && outIcon) {
|
||||
distIcon.iconPath = outIcon.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
fs.writeFile(themepath, JSON.stringify(theme), { encoding: CHARSET }, (error) => {
|
||||
if (error) {
|
||||
deferred.reject(error);
|
||||
fs.writeFile(themepath, JSON.stringify(theme), {
|
||||
encoding: CHARSET
|
||||
}, err => {
|
||||
if (err) {
|
||||
deferred.reject(err);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -98,4 +103,4 @@ export const THEME_ICONS = () => {
|
|||
}
|
||||
|
||||
return promise;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/**
|
||||
* File charset
|
||||
* @type {string}
|
||||
*/
|
||||
export const CHARSET: string = 'utf-8';
|
||||
export const CHARSET: string = 'utf-8';
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import * as path from 'path';
|
||||
|
||||
import { IPaths } from '../interfaces/ipaths';
|
||||
import {IPaths} from '../interfaces/ipaths';
|
||||
|
||||
export const PATHS: IPaths = {
|
||||
DIST: './dist',
|
||||
|
|
|
@ -1,61 +1,61 @@
|
|||
import * as path from 'path';
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
import { getDefaultValues, getPackageJSON, writeFile } from "./fs";
|
||||
import { PATHS } from '../consts/paths';
|
||||
import {IDefaults} from './../interfaces/idefaults';
|
||||
|
||||
function previewFile(): void {
|
||||
let uri = vscode.Uri.file(path.join(PATHS.VSIX_DIR, './CHANGELOG.md'));
|
||||
import {getDefaultValues, getPackageJSON, writeFile} from './fs';
|
||||
import {PATHS} from './../consts/paths';
|
||||
|
||||
const previewFile = (): void => {
|
||||
const uri = vscode.Uri.file(path.join(PATHS.VSIX_DIR, './CHANGELOG.md'));
|
||||
vscode.commands.executeCommand('markdown.showPreview', uri);
|
||||
};
|
||||
|
||||
}
|
||||
const splitVersion = (input: string): {major: number; minor: number; patch: number} => {
|
||||
const [major, minor, patch] = input.split('.').map(i => parseInt(i, 10));
|
||||
return {major, minor, patch};
|
||||
};
|
||||
|
||||
function splitVersion(input: string): { major: number, minor: number, patch: number } {
|
||||
let [ major, minor, patch ] = input.split('.').map(i => parseInt(i));
|
||||
return { major, minor, patch };
|
||||
}
|
||||
const writeDefaults = (defaults: IDefaults) =>
|
||||
writeFile(path.join('./extensions/defaults.json'), JSON.stringify(defaults, null, 2));
|
||||
|
||||
export function showChangelog(): void {
|
||||
let extname: string = 'vscode.markdown';
|
||||
let md = vscode.extensions.getExtension<any>(extname);
|
||||
export const showChangelog = (): void => {
|
||||
const extname: string = 'vscode.markdown';
|
||||
const md = vscode.extensions.getExtension<any>(extname);
|
||||
|
||||
if (md === undefined) {
|
||||
console.warn(`Ext not found ${ extname }`)
|
||||
console.warn(`Ext not found ${ extname }`);
|
||||
return;
|
||||
}
|
||||
|
||||
if (md.isActive) {
|
||||
previewFile();
|
||||
} else {
|
||||
md.activate().then(() => {
|
||||
previewFile();
|
||||
}, reason => {
|
||||
console.warn(reason);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export function shouldShowChangelog(): boolean {
|
||||
let defaults = getDefaultValues();
|
||||
let out: boolean;
|
||||
let packageJSON = getPackageJSON();
|
||||
|
||||
if (defaults.changelog == undefined || (defaults.changelog !== undefined && typeof defaults.changelog.lastversion !== 'string')) {
|
||||
defaults.changelog = {
|
||||
lastversion: packageJSON.version
|
||||
}
|
||||
out = true;
|
||||
} else {
|
||||
let versionCurrent = splitVersion(packageJSON.version);
|
||||
let versionOld = splitVersion(defaults.changelog.lastversion);
|
||||
|
||||
out = versionCurrent.major > versionOld.major || versionCurrent.minor > versionOld.minor || versionCurrent.patch > versionOld.patch;
|
||||
|
||||
defaults.changelog.lastversion = packageJSON.version;
|
||||
return previewFile();
|
||||
}
|
||||
|
||||
writeFile(path.join('./extensions/defaults.json'), JSON.stringify(defaults, null, 2));
|
||||
md.activate()
|
||||
.then(() => previewFile(),
|
||||
reason => console.warn(reason)
|
||||
);
|
||||
};
|
||||
|
||||
export const shouldShowChangelog = (): boolean => {
|
||||
const defaults = getDefaultValues();
|
||||
const packageJSON = getPackageJSON();
|
||||
|
||||
const defaultsNotPresent = defaults.changelog === undefined ||
|
||||
(defaults.changelog !== undefined && typeof defaults.changelog.lastversion !== 'string');
|
||||
|
||||
const versionCurrent = splitVersion(packageJSON.version);
|
||||
const versionOld = defaultsNotPresent ? null : splitVersion(defaults.changelog.lastversion);
|
||||
|
||||
const out = !versionOld ||
|
||||
versionCurrent.major > versionOld.major ||
|
||||
versionCurrent.minor > versionOld.minor ||
|
||||
versionCurrent.patch > versionOld.patch;
|
||||
|
||||
const newChangelog = {...defaults.changelog, lastversion: packageJSON.version};
|
||||
const newDefaults = {...defaults, changelog: newChangelog};
|
||||
writeDefaults(newDefaults);
|
||||
|
||||
return out;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,30 +1,21 @@
|
|||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
|
||||
import { IPackageJSON, IPackageJSONThemeIcons } from "../interfaces/ipackage.json";
|
||||
import {IPackageJSON, IPackageJSONThemeIcons} from './../interfaces/ipackage.json';
|
||||
|
||||
import { CHARSET } from "../consts/files";
|
||||
import { IDefaults } from "../interfaces/idefaults";
|
||||
import { IThemeIcons } from "../interfaces/itheme-icons";
|
||||
import { PATHS } from "../consts/paths";
|
||||
import {CHARSET} from './../consts/files';
|
||||
import {IDefaults} from '../interfaces/idefaults';
|
||||
import {IThemeIcons} from '../interfaces/itheme-icons';
|
||||
import {PATHS} from '../consts/paths';
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @param {string} dirname
|
||||
*/
|
||||
export function ensureDir(dirname: string): void {
|
||||
if (!fs.existsSync(dirname)) {
|
||||
fs.mkdirSync(dirname);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets default value
|
||||
* @export
|
||||
* @returns {IDefaults}
|
||||
*/
|
||||
export function getDefaultValues(): IDefaults {
|
||||
let defaults: IDefaults = require(path.join(PATHS.VSIX_DIR, './extensions/defaults.json'));
|
||||
const defaults: IDefaults = require(path.join(PATHS.VSIX_DIR, './extensions/defaults.json'));
|
||||
|
||||
if (defaults === undefined || defaults === null) {
|
||||
throw new Error('Cannot find defaults params');
|
||||
|
@ -33,74 +24,45 @@ export function getDefaultValues(): IDefaults {
|
|||
return defaults;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an absolute path
|
||||
*
|
||||
* @export
|
||||
* @param {string} input
|
||||
* @returns {string}
|
||||
*/
|
||||
export function getAbsolutePath(input: string): string {
|
||||
return path.join(PATHS.VSIX_DIR, input);
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @returns {string[]}
|
||||
*/
|
||||
export function getAccentableIcons(): string[] {
|
||||
return getDefaultValues().accentableIcons;
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @returns {string[]}
|
||||
*/
|
||||
export function getVariantIcons(): string[] {
|
||||
return getDefaultValues().variantsIcons;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a theme content by a given contribute ID
|
||||
*
|
||||
* @export
|
||||
* @param {string} ID
|
||||
* @returns {IThemeIcons}
|
||||
*/
|
||||
export function getThemeIconsByContributeID(ID: string): IThemeIcons | null {
|
||||
let contribute: IPackageJSONThemeIcons = getThemeIconsContribute(ID)
|
||||
const contribute: IPackageJSONThemeIcons = getThemeIconsContribute(ID);
|
||||
return contribute !== null ? require(path.join(PATHS.VSIX_DIR, contribute.path)) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a theme by name
|
||||
* @export
|
||||
* @param {string} name
|
||||
* @returns {IThemeIcons}
|
||||
*/
|
||||
export function getThemeIconsContribute(ID: string): IPackageJSONThemeIcons {
|
||||
let contributes = getPackageJSON().contributes.iconThemes.filter(contribute => contribute.id === ID);
|
||||
const contributes = getPackageJSON().contributes.iconThemes.filter(contribute => contribute.id === ID);
|
||||
return contributes[0] !== undefined ? contributes[0] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets package JSON
|
||||
* @export
|
||||
* @returns {*}
|
||||
*/
|
||||
export function getPackageJSON(): IPackageJSON {
|
||||
let packageJSON: IPackageJSON = require(path.join(PATHS.VSIX_DIR, './package.json'));
|
||||
return packageJSON;
|
||||
return require(path.join(PATHS.VSIX_DIR, './package.json'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a file inside the vsix directory
|
||||
* @export
|
||||
* @param {string} filename
|
||||
* @param {string} filecontent
|
||||
*/
|
||||
export function writeFile(filename: string, filecontent: string): void {
|
||||
filename = path.join(PATHS.VSIX_DIR, filename);
|
||||
console.log(arguments)
|
||||
fs.writeFileSync(filename, filecontent, { encoding: CHARSET });
|
||||
}
|
||||
const filePath = path.join(PATHS.VSIX_DIR, filename);
|
||||
fs.writeFileSync(filePath, filecontent, {encoding: CHARSET});
|
||||
}
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
import * as vscode from 'vscode';
|
||||
|
||||
import { IDefaults } from "../interfaces/idefaults";
|
||||
import { IThemeCustomProperties } from "../interfaces/itheme-custom-properties";
|
||||
import {IDefaults} from './../interfaces/idefaults';
|
||||
import {IThemeCustomProperties} from './../interfaces/itheme-custom-properties';
|
||||
import {getPackageJSON} from './fs';
|
||||
|
||||
/**
|
||||
* Gets saved accent
|
||||
* @export
|
||||
* @returns {(string | null)}
|
||||
*/
|
||||
export function getAccent(): string | undefined {
|
||||
return getCustomSettings().accent;
|
||||
|
@ -15,8 +13,6 @@ export function getAccent(): string | undefined {
|
|||
|
||||
/**
|
||||
* Gets custom settings
|
||||
* @export
|
||||
* @returns {*}
|
||||
*/
|
||||
export function getCustomSettings(): IThemeCustomProperties {
|
||||
return vscode.workspace.getConfiguration().get<IThemeCustomProperties>('materialTheme', {});
|
||||
|
@ -24,10 +20,6 @@ export function getCustomSettings(): IThemeCustomProperties {
|
|||
|
||||
/**
|
||||
* Checks if a given string could be an accent
|
||||
*
|
||||
* @export
|
||||
* @param {string} accentName
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function isAccent(accentName: string, defaults: IDefaults): boolean {
|
||||
return Object.keys(defaults.accents).filter(name => name === accentName).length > 0;
|
||||
|
@ -35,31 +27,22 @@ export function isAccent(accentName: string, defaults: IDefaults): boolean {
|
|||
|
||||
/**
|
||||
* Determines if the passing theme label is a material theme
|
||||
* @export
|
||||
* @param {string} themeName
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function isMaterialTheme(themeName: string): boolean {
|
||||
let packageJSON = getPackageJSON();
|
||||
const packageJSON = getPackageJSON();
|
||||
return packageJSON.contributes.themes.filter(contrib => contrib.label === themeName).length > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the passing icons theme is a material theme
|
||||
* @export
|
||||
* @param {string} themeIconsName
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function isMaterialThemeIcons(themeIconsName: string): boolean {
|
||||
let packageJSON = getPackageJSON();
|
||||
const packageJSON = getPackageJSON();
|
||||
return packageJSON.contributes.iconThemes.filter(contribute => contribute.id === themeIconsName).length > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a custom property in custom settings
|
||||
* @export
|
||||
* @param {string} settingName
|
||||
* @param {*} value
|
||||
*/
|
||||
export function setCustomSetting(settingName: string, value: any): Thenable<void> {
|
||||
return vscode.workspace.getConfiguration().update(`materialTheme.${settingName}`, value, true);
|
||||
|
@ -67,11 +50,9 @@ export function setCustomSetting(settingName: string, value: any): Thenable<void
|
|||
|
||||
/**
|
||||
* Updates accent name
|
||||
* @export
|
||||
* @param {string} accentName
|
||||
*/
|
||||
export function updateAccent(accentName: string): Thenable<void> {
|
||||
const prevAccent = getAccent();
|
||||
return setCustomSetting('accentPrevious', prevAccent)
|
||||
.then(() => setCustomSetting('accent', accentName))
|
||||
}
|
||||
.then(() => setCustomSetting('accent', accentName));
|
||||
}
|
||||
|
|
|
@ -1,24 +1,22 @@
|
|||
import * as vscode from 'vscode'
|
||||
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
export function askForWindowReload(): Thenable<void> {
|
||||
const PROMPT_MESSAGE: string = 'Material Theme requires VS Code reload in order to display icons correctly.';
|
||||
const PROMPT_MESSAGE_CONFIRM: string = 'Ok, reload';
|
||||
const PROMPT_MESSAGE_CANCEL: string = 'I will do it later';
|
||||
|
||||
return vscode.window.showInformationMessage(PROMPT_MESSAGE, PROMPT_MESSAGE_CONFIRM, PROMPT_MESSAGE_CANCEL).then((response) => {
|
||||
if (response === PROMPT_MESSAGE_CONFIRM) {
|
||||
reloadWindow();
|
||||
}
|
||||
}, (error) => {
|
||||
console.log(error);
|
||||
});
|
||||
return vscode.window.showInformationMessage(PROMPT_MESSAGE, PROMPT_MESSAGE_CONFIRM, PROMPT_MESSAGE_CANCEL)
|
||||
.then(response => {
|
||||
if (response === PROMPT_MESSAGE_CONFIRM) {
|
||||
reloadWindow();
|
||||
}
|
||||
}, err => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets your current theme ID
|
||||
* @export
|
||||
* @returns {string}
|
||||
*/
|
||||
export function getCurrentThemeID(): string {
|
||||
return vscode.workspace.getConfiguration().get<string>('workbench.colorTheme');
|
||||
|
@ -26,8 +24,6 @@ export function getCurrentThemeID(): string {
|
|||
|
||||
/**
|
||||
* Gets your current icons theme ID
|
||||
* @export
|
||||
* @returns {string}
|
||||
*/
|
||||
export function getCurrentThemeIconsID(): string {
|
||||
return vscode.workspace.getConfiguration().get<string>('workbench.iconTheme');
|
||||
|
@ -35,8 +31,6 @@ export function getCurrentThemeIconsID(): string {
|
|||
|
||||
/**
|
||||
* Set a specific id for icons
|
||||
* @export
|
||||
* @returns {Thenable}
|
||||
*/
|
||||
export function setIconsID(id: string): Thenable<void> {
|
||||
return vscode.workspace.getConfiguration().update('workbench.iconTheme', id, true);
|
||||
|
@ -44,8 +38,7 @@ export function setIconsID(id: string): Thenable<void> {
|
|||
|
||||
/**
|
||||
* Reloads current vscode window.
|
||||
* @export
|
||||
*/
|
||||
export function reloadWindow(): void {
|
||||
vscode.commands.executeCommand('workbench.action.reloadWindow');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
export interface IAccentCustomProperty {
|
||||
alpha: number;
|
||||
value: any;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,9 +4,10 @@ export interface IDefaults {
|
|||
changelog: IChangelog;
|
||||
icons: IDefaultsThemeIcons;
|
||||
themeVariants: IDefaultsThemeVariant;
|
||||
themeVariantsColours: IDefaultsThemeVariantColours;
|
||||
themeVariantsUITheme: IDefaultsThemeVariantUITheme;
|
||||
themeVariantsColours: IDefaultsThemeVariant;
|
||||
themeVariantsUITheme: IDefaultsThemeVariant;
|
||||
variantsIcons: string[];
|
||||
[Symbol.iterator](): IterableIterator<IDefaults>;
|
||||
}
|
||||
|
||||
export interface IAccents {
|
||||
|
@ -16,6 +17,7 @@ export interface IAccents {
|
|||
|
||||
export interface IChangelog {
|
||||
lastversion: string;
|
||||
[Symbol.iterator](): IterableIterator<IChangelog>;
|
||||
}
|
||||
|
||||
export interface IDefaultsThemeIcons {
|
||||
|
@ -23,24 +25,24 @@ export interface IDefaultsThemeIcons {
|
|||
iconDefinitions: {
|
||||
_folder_open: {
|
||||
iconPath: string;
|
||||
}
|
||||
};
|
||||
_folder_open_build: {
|
||||
iconPath: string;
|
||||
}
|
||||
};
|
||||
_folder_dark: {
|
||||
iconPath: string;
|
||||
}
|
||||
};
|
||||
_folder_dark_build: {
|
||||
iconPath: string;
|
||||
}
|
||||
"_folder_light_build": {
|
||||
};
|
||||
_folder_light_build: {
|
||||
iconPath: string;
|
||||
}
|
||||
};
|
||||
_folder_light: {
|
||||
iconPath: string;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
export interface IDefaultsThemeVariant {
|
||||
|
@ -53,11 +55,3 @@ export interface IDefaultsThemeVariant {
|
|||
LightHighContrast: string;
|
||||
PalenightHighContrast: string;
|
||||
}
|
||||
|
||||
export interface IDefaultsThemeVariantColours extends IDefaultsThemeVariant {
|
||||
|
||||
}
|
||||
|
||||
export interface IDefaultsThemeVariantUITheme extends IDefaultsThemeVariant {
|
||||
|
||||
}
|
|
@ -1,3 +1,3 @@
|
|||
export interface IGenericObject<TValue> {
|
||||
[index: string]: TValue;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { IGenericObject } from '../../extensions/interfaces/igeneric-object';
|
||||
import {IGenericObject} from './../../extensions/interfaces/igeneric-object';
|
||||
|
||||
export interface IPackageJSONBadge {
|
||||
description: string;
|
||||
|
@ -14,9 +14,7 @@ export interface IPackageJSONContributes {
|
|||
}
|
||||
|
||||
export interface IPackageJSONConfiguration {
|
||||
properties: {
|
||||
|
||||
}
|
||||
properties: {};
|
||||
}
|
||||
|
||||
export interface IPackageJSONCommand {
|
||||
|
@ -38,24 +36,24 @@ export interface IPackageJSONThemeIcons {
|
|||
}
|
||||
|
||||
export interface IPackageJSON {
|
||||
"activationEvents": string[]
|
||||
"badges": IPackageJSONBadge[];
|
||||
"contributes": IPackageJSONContributes;
|
||||
"bugs": IGenericObject<string>;
|
||||
"categories": string[];
|
||||
"description": string;
|
||||
"displayName": string;
|
||||
"engines": IGenericObject<string>;
|
||||
"galleryBanner": IGenericObject<string>;
|
||||
"homepage": string;
|
||||
"icon": string;
|
||||
"license": string;
|
||||
"main": string;
|
||||
"name": string;
|
||||
"preview": boolean;
|
||||
"publisher": string;
|
||||
"repository": IGenericObject<string>;
|
||||
"scripts": IGenericObject<string>;
|
||||
"version": string;
|
||||
"devDependencies": IGenericObject<string>;
|
||||
}
|
||||
activationEvents: string[];
|
||||
badges: IPackageJSONBadge[];
|
||||
contributes: IPackageJSONContributes;
|
||||
bugs: IGenericObject<string>;
|
||||
categories: string[];
|
||||
description: string;
|
||||
displayName: string;
|
||||
engines: IGenericObject<string>;
|
||||
galleryBanner: IGenericObject<string>;
|
||||
homepage: string;
|
||||
icon: string;
|
||||
license: string;
|
||||
main: string;
|
||||
name: string;
|
||||
preview: boolean;
|
||||
publisher: string;
|
||||
repository: IGenericObject<string>;
|
||||
scripts: IGenericObject<string>;
|
||||
version: string;
|
||||
devDependencies: IGenericObject<string>;
|
||||
}
|
||||
|
|
|
@ -1,32 +1,22 @@
|
|||
export interface IPaths {
|
||||
/**
|
||||
* Dist dir
|
||||
* @type {string}
|
||||
* @memberof IPaths
|
||||
*/
|
||||
DIST: string;
|
||||
/**
|
||||
* Icons dir
|
||||
* @type {string}
|
||||
* @memberof IPaths
|
||||
*/
|
||||
ICONS: string;
|
||||
/**
|
||||
* Src dir
|
||||
* @type {string}
|
||||
* @memberof IPaths
|
||||
*/
|
||||
SRC: string;
|
||||
/**
|
||||
* Themes dir
|
||||
* @type {string}
|
||||
* @memberof IPaths
|
||||
*/
|
||||
THEMES: string;
|
||||
/**
|
||||
* Extension directory
|
||||
* @type {string}
|
||||
* @memberof IPaths
|
||||
*/
|
||||
VSIX_DIR: string;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
export interface IThemeCustomProperties {
|
||||
accent?: string;
|
||||
accentPrevious?: string;
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -3,10 +3,10 @@ import {
|
|||
commands as Commands
|
||||
} from 'vscode';
|
||||
|
||||
import { THEME_ACCENTS_SETTER } from "./commands/accents-setter/index";
|
||||
import { THEME_ICONS } from "./commands/theme-icons/index";
|
||||
import { shouldShowChangelog, showChangelog } from './helpers/changelog';
|
||||
import { reloadWindow, getCurrentThemeID, setIconsID } from "./helpers/vscode";
|
||||
import {THEME_ACCENTS_SETTER} from './commands/accents-setter/index';
|
||||
import {THEME_ICONS} from './commands/theme-icons/index';
|
||||
import {shouldShowChangelog, showChangelog} from './helpers/changelog';
|
||||
import {reloadWindow, getCurrentThemeID, setIconsID} from './helpers/vscode';
|
||||
|
||||
const isMaterialTheme = (currentTheme: string): boolean =>
|
||||
currentTheme.includes('Material Theme');
|
||||
|
@ -18,6 +18,7 @@ export function activate() {
|
|||
Workspace.onDidChangeConfiguration(event => {
|
||||
const isColorTheme = event.affectsConfiguration('workbench.colorTheme');
|
||||
const currentTheme = getCurrentThemeID();
|
||||
// tslint:disable-next-line:early-exit
|
||||
if (isColorTheme && isMaterialTheme(currentTheme)) {
|
||||
setIconsID('eq-material-theme-icons')
|
||||
.then(() => THEME_ICONS().catch(error => console.trace(error)))
|
||||
|
|
|
@ -6,4 +6,4 @@ import * as tasks from './.gulp';
|
|||
GulpStats(Gulp);
|
||||
|
||||
// set default task
|
||||
Gulp.task('default', tasks.default as any);
|
||||
Gulp.task('default', tasks.default as any);
|
||||
|
|
11
package.json
11
package.json
|
@ -38,6 +38,7 @@
|
|||
"build-icons-variants": "yarn gulp build:icons.variants",
|
||||
"build-themes": "yarn gulp build:themes",
|
||||
"build-ts": "tsc -p ./tsconfig.json",
|
||||
"test": "tslint **.ts",
|
||||
"release": "standard-version",
|
||||
"postinstall": "node ./node_modules/vscode/bin/install && opencollective postinstall && tsc -p tsconfig.json"
|
||||
},
|
||||
|
@ -46,9 +47,7 @@
|
|||
"Other"
|
||||
],
|
||||
"activationEvents": [
|
||||
"onCommand:materialTheme.setAccent",
|
||||
"onCommand:materialTheme.fixIcons",
|
||||
"onCommand:materialTheme.showChangelog"
|
||||
"*"
|
||||
],
|
||||
"main": "./extensions/material.theme.config.js",
|
||||
"contributes": {
|
||||
|
@ -164,8 +163,6 @@
|
|||
"babel-preset-es2015": "6.24.1",
|
||||
"babel-root-import": "4.1.8",
|
||||
"cpx": "1.5.0",
|
||||
"eslint": "4.17.0",
|
||||
"eslint-plugin-standard": "3.0.1",
|
||||
"gulp": "3.9.1",
|
||||
"gulp-bump": "3.1.0",
|
||||
"gulp-conventional-changelog": "1.1.11",
|
||||
|
@ -179,7 +176,9 @@
|
|||
"run-sequence": "2.2.1",
|
||||
"standard-version": "4.3.0",
|
||||
"svgo": "1.0.4",
|
||||
"typescript": "2.7.1",
|
||||
"tslint": "5.9.1",
|
||||
"tslint-xo": "0.7.2",
|
||||
"typescript": "2.8.3",
|
||||
"vscode": "1.1.10",
|
||||
"yamljs": "0.3.0",
|
||||
"yargs": "11.0.0"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"lib": [
|
||||
"es2015"
|
||||
"es6"
|
||||
],
|
||||
"module": "commonjs",
|
||||
"allowUnreachableCode": false,
|
||||
|
|
7
tslint.json
Normal file
7
tslint.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"extends": "tslint-xo",
|
||||
"rules": {
|
||||
"comment-format": false,
|
||||
"indent": [true, "spaces"]
|
||||
}
|
||||
}
|
479
yarn.lock
479
yarn.lock
|
@ -2,6 +2,22 @@
|
|||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@fimbul/bifrost@^0.6.0":
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@fimbul/bifrost/-/bifrost-0.6.0.tgz#5150302b63e1bd37ff95f561c3605949cb7e3770"
|
||||
dependencies:
|
||||
"@fimbul/ymir" "^0.6.0"
|
||||
get-caller-file "^1.0.2"
|
||||
tslib "^1.8.1"
|
||||
|
||||
"@fimbul/ymir@^0.6.0":
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@fimbul/ymir/-/ymir-0.6.0.tgz#537cb15d361b7c993fe953b48c898ecdf4f671b8"
|
||||
dependencies:
|
||||
inversify "^4.10.0"
|
||||
reflect-metadata "^0.1.12"
|
||||
tslib "^1.8.1"
|
||||
|
||||
"@types/chalk@2.2.0":
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/chalk/-/chalk-2.2.0.tgz#b7f6e446f4511029ee8e3f43075fb5b73fbaa0ba"
|
||||
|
@ -127,29 +143,11 @@ abbrev@1:
|
|||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
||||
|
||||
acorn-jsx@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
|
||||
dependencies:
|
||||
acorn "^3.0.4"
|
||||
|
||||
acorn@^3.0.4:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
|
||||
|
||||
acorn@^5.5.0:
|
||||
version "5.5.3"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9"
|
||||
|
||||
add-stream@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa"
|
||||
|
||||
ajv-keywords@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be"
|
||||
|
||||
ajv@^5.1.0, ajv@^5.3.0:
|
||||
ajv@^5.1.0:
|
||||
version "5.5.2"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
|
||||
dependencies:
|
||||
|
@ -158,15 +156,6 @@ ajv@^5.1.0, ajv@^5.3.0:
|
|||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.3.0"
|
||||
|
||||
ajv@^6.0.1:
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6"
|
||||
dependencies:
|
||||
fast-deep-equal "^1.0.0"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.3.0"
|
||||
uri-js "^3.0.2"
|
||||
|
||||
align-text@^0.1.1, align-text@^0.1.3:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
|
||||
|
@ -195,10 +184,6 @@ ansi-escapes@^1.1.0:
|
|||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
||||
|
||||
ansi-escapes@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
|
||||
|
||||
ansi-gray@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
|
||||
|
@ -912,7 +897,7 @@ buffer-from@^1.0.0:
|
|||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531"
|
||||
|
||||
builtin-modules@^1.0.0:
|
||||
builtin-modules@^1.0.0, builtin-modules@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
|
||||
|
||||
|
@ -937,16 +922,6 @@ cache-base@^1.0.1:
|
|||
union-value "^1.0.0"
|
||||
unset-value "^1.0.0"
|
||||
|
||||
caller-path@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
|
||||
dependencies:
|
||||
callsites "^0.2.0"
|
||||
|
||||
callsites@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
|
||||
|
||||
camelcase-keys@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
|
||||
|
@ -989,7 +964,7 @@ center-align@^0.1.1:
|
|||
align-text "^0.1.3"
|
||||
lazy-cache "^1.0.3"
|
||||
|
||||
chalk@*, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.2.0:
|
||||
chalk@*, chalk@^2.2.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.0.tgz#a060a297a6b57e15b61ca63ce84995daa0fe6e52"
|
||||
dependencies:
|
||||
|
@ -1017,6 +992,14 @@ chalk@^0.5.1:
|
|||
strip-ansi "^0.3.0"
|
||||
supports-color "^0.2.0"
|
||||
|
||||
chalk@^2.3.0:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
|
||||
dependencies:
|
||||
ansi-styles "^3.2.1"
|
||||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^5.3.0"
|
||||
|
||||
chardet@^0.4.0:
|
||||
version "0.4.2"
|
||||
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
|
||||
|
@ -1040,10 +1023,6 @@ chownr@^1.0.1:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
|
||||
|
||||
circular-json@^0.3.1:
|
||||
version "0.3.3"
|
||||
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
|
||||
|
||||
class-utils@^0.3.5:
|
||||
version "0.3.6"
|
||||
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
|
||||
|
@ -1168,7 +1147,7 @@ commander@2.11.0:
|
|||
version "2.11.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
|
||||
|
||||
commander@^2.9.0:
|
||||
commander@^2.12.1, commander@^2.9.0:
|
||||
version "2.15.1"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
|
||||
|
||||
|
@ -1187,7 +1166,7 @@ concat-map@0.0.1:
|
|||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
|
||||
concat-stream@^1.4.10, concat-stream@^1.5.0, concat-stream@^1.6.0:
|
||||
concat-stream@^1.4.10, concat-stream@^1.5.0:
|
||||
version "1.6.2"
|
||||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
|
||||
dependencies:
|
||||
|
@ -1372,7 +1351,7 @@ cpx@1.5.0:
|
|||
shell-quote "^1.6.1"
|
||||
subarg "^1.0.0"
|
||||
|
||||
cross-spawn@^5.0.1, cross-spawn@^5.1.0:
|
||||
cross-spawn@^5.0.1:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
|
||||
dependencies:
|
||||
|
@ -1466,7 +1445,7 @@ dateformat@^3.0.0:
|
|||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
|
||||
|
||||
debug@3.1.0, debug@^3.1.0:
|
||||
debug@3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||
dependencies:
|
||||
|
@ -1503,10 +1482,6 @@ deep-extend@~0.4.0:
|
|||
version "0.4.2"
|
||||
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
|
||||
|
||||
deep-is@~0.1.3:
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
|
||||
|
||||
defaults@^1.0.0:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
|
||||
|
@ -1539,18 +1514,6 @@ define-property@^2.0.2:
|
|||
is-descriptor "^1.0.2"
|
||||
isobject "^3.0.1"
|
||||
|
||||
del@^2.0.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
|
||||
dependencies:
|
||||
globby "^5.0.0"
|
||||
is-path-cwd "^1.0.0"
|
||||
is-path-in-cwd "^1.0.0"
|
||||
object-assign "^4.0.1"
|
||||
pify "^2.0.0"
|
||||
pinkie-promise "^2.0.0"
|
||||
rimraf "^2.2.8"
|
||||
|
||||
delayed-stream@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||
|
@ -1581,11 +1544,16 @@ diff@3.3.1:
|
|||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
|
||||
|
||||
doctrine@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
|
||||
diff@^3.2.0:
|
||||
version "3.5.0"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
|
||||
|
||||
doctrine@0.7.2:
|
||||
version "0.7.2"
|
||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523"
|
||||
dependencies:
|
||||
esutils "^2.0.2"
|
||||
esutils "^1.1.6"
|
||||
isarray "0.0.1"
|
||||
|
||||
dom-serializer@0:
|
||||
version "0.1.0"
|
||||
|
@ -1697,89 +1665,13 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.0, escape-string-regexp@^1
|
|||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
||||
|
||||
eslint-plugin-standard@3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2"
|
||||
|
||||
eslint-scope@^3.7.1:
|
||||
version "3.7.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
|
||||
dependencies:
|
||||
esrecurse "^4.1.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
eslint-visitor-keys@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
|
||||
|
||||
eslint@4.17.0:
|
||||
version "4.17.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.17.0.tgz#dc24bb51ede48df629be7031c71d9dc0ee4f3ddf"
|
||||
dependencies:
|
||||
ajv "^5.3.0"
|
||||
babel-code-frame "^6.22.0"
|
||||
chalk "^2.1.0"
|
||||
concat-stream "^1.6.0"
|
||||
cross-spawn "^5.1.0"
|
||||
debug "^3.1.0"
|
||||
doctrine "^2.1.0"
|
||||
eslint-scope "^3.7.1"
|
||||
eslint-visitor-keys "^1.0.0"
|
||||
espree "^3.5.2"
|
||||
esquery "^1.0.0"
|
||||
esutils "^2.0.2"
|
||||
file-entry-cache "^2.0.0"
|
||||
functional-red-black-tree "^1.0.1"
|
||||
glob "^7.1.2"
|
||||
globals "^11.0.1"
|
||||
ignore "^3.3.3"
|
||||
imurmurhash "^0.1.4"
|
||||
inquirer "^3.0.6"
|
||||
is-resolvable "^1.0.0"
|
||||
js-yaml "^3.9.1"
|
||||
json-stable-stringify-without-jsonify "^1.0.1"
|
||||
levn "^0.3.0"
|
||||
lodash "^4.17.4"
|
||||
minimatch "^3.0.2"
|
||||
mkdirp "^0.5.1"
|
||||
natural-compare "^1.4.0"
|
||||
optionator "^0.8.2"
|
||||
path-is-inside "^1.0.2"
|
||||
pluralize "^7.0.0"
|
||||
progress "^2.0.0"
|
||||
require-uncached "^1.0.3"
|
||||
semver "^5.3.0"
|
||||
strip-ansi "^4.0.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
table "^4.0.1"
|
||||
text-table "~0.2.0"
|
||||
|
||||
espree@^3.5.2:
|
||||
version "3.5.4"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
|
||||
dependencies:
|
||||
acorn "^5.5.0"
|
||||
acorn-jsx "^3.0.0"
|
||||
|
||||
esprima@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
|
||||
|
||||
esquery@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
|
||||
dependencies:
|
||||
estraverse "^4.0.0"
|
||||
|
||||
esrecurse@^4.1.0:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
|
||||
dependencies:
|
||||
estraverse "^4.1.0"
|
||||
|
||||
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
|
||||
esutils@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375"
|
||||
|
||||
esutils@^2.0.2:
|
||||
version "2.0.2"
|
||||
|
@ -1862,7 +1754,7 @@ extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
|
|||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
|
||||
|
||||
external-editor@^2.0.1, external-editor@^2.0.4:
|
||||
external-editor@^2.0.1:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
|
||||
dependencies:
|
||||
|
@ -1913,10 +1805,6 @@ fast-json-stable-stringify@^2.0.0:
|
|||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
|
||||
|
||||
fast-levenshtein@~2.0.4:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||
|
||||
fd-slicer@~1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
|
||||
|
@ -1936,13 +1824,6 @@ figures@^2.0.0:
|
|||
dependencies:
|
||||
escape-string-regexp "^1.0.5"
|
||||
|
||||
file-entry-cache@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
|
||||
dependencies:
|
||||
flat-cache "^1.2.1"
|
||||
object-assign "^4.0.1"
|
||||
|
||||
filename-regex@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
|
||||
|
@ -2010,15 +1891,6 @@ flagged-respawn@^1.0.0:
|
|||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7"
|
||||
|
||||
flat-cache@^1.2.1:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
|
||||
dependencies:
|
||||
circular-json "^0.3.1"
|
||||
del "^2.0.2"
|
||||
graceful-fs "^4.1.2"
|
||||
write "^0.2.1"
|
||||
|
||||
for-in@^1.0.1, for-in@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
|
||||
|
@ -2109,10 +1981,6 @@ function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1:
|
|||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||
|
||||
functional-red-black-tree@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
|
||||
|
||||
gauge@~2.7.3:
|
||||
version "2.7.4"
|
||||
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
|
||||
|
@ -2142,7 +2010,7 @@ generate-object-property@^1.1.0:
|
|||
dependencies:
|
||||
is-property "^1.0.0"
|
||||
|
||||
get-caller-file@^1.0.1:
|
||||
get-caller-file@^1.0.1, get-caller-file@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
|
||||
|
||||
|
@ -2260,7 +2128,7 @@ glob2base@^0.0.12:
|
|||
dependencies:
|
||||
find-index "^0.1.1"
|
||||
|
||||
glob@7.1.2, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2:
|
||||
glob@7.1.2, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
|
||||
version "7.1.2"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
|
||||
dependencies:
|
||||
|
@ -2316,25 +2184,10 @@ global-prefix@^1.0.1:
|
|||
is-windows "^1.0.1"
|
||||
which "^1.2.14"
|
||||
|
||||
globals@^11.0.1:
|
||||
version "11.4.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-11.4.0.tgz#b85c793349561c16076a3c13549238a27945f1bc"
|
||||
|
||||
globals@^9.18.0:
|
||||
version "9.18.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
|
||||
|
||||
globby@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
|
||||
dependencies:
|
||||
array-union "^1.0.1"
|
||||
arrify "^1.0.0"
|
||||
glob "^7.0.3"
|
||||
object-assign "^4.0.1"
|
||||
pify "^2.0.0"
|
||||
pinkie-promise "^2.0.0"
|
||||
|
||||
globule@~0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5"
|
||||
|
@ -2704,14 +2557,6 @@ ignore-walk@^3.0.1:
|
|||
dependencies:
|
||||
minimatch "^3.0.4"
|
||||
|
||||
ignore@^3.3.3:
|
||||
version "3.3.7"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021"
|
||||
|
||||
imurmurhash@^0.1.4:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
||||
|
||||
indent-string@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
|
||||
|
@ -2759,25 +2604,6 @@ inquirer@3.0.6:
|
|||
strip-ansi "^3.0.0"
|
||||
through "^2.3.6"
|
||||
|
||||
inquirer@^3.0.6:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
|
||||
dependencies:
|
||||
ansi-escapes "^3.0.0"
|
||||
chalk "^2.0.0"
|
||||
cli-cursor "^2.1.0"
|
||||
cli-width "^2.0.0"
|
||||
external-editor "^2.0.4"
|
||||
figures "^2.0.0"
|
||||
lodash "^4.3.0"
|
||||
mute-stream "0.0.7"
|
||||
run-async "^2.2.0"
|
||||
rx-lite "^4.0.8"
|
||||
rx-lite-aggregates "^4.0.8"
|
||||
string-width "^2.1.0"
|
||||
strip-ansi "^4.0.0"
|
||||
through "^2.3.6"
|
||||
|
||||
interpret@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
|
||||
|
@ -2788,6 +2614,10 @@ invariant@^2.2.2:
|
|||
dependencies:
|
||||
loose-envify "^1.0.0"
|
||||
|
||||
inversify@^4.10.0:
|
||||
version "4.13.0"
|
||||
resolved "https://registry.yarnpkg.com/inversify/-/inversify-4.13.0.tgz#0ab40570bfa4474b04d5b919bbab3a4f682a72f5"
|
||||
|
||||
invert-kv@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
|
||||
|
@ -2963,22 +2793,6 @@ is-odd@^2.0.0:
|
|||
dependencies:
|
||||
is-number "^4.0.0"
|
||||
|
||||
is-path-cwd@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
|
||||
|
||||
is-path-in-cwd@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
|
||||
dependencies:
|
||||
is-path-inside "^1.0.0"
|
||||
|
||||
is-path-inside@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
|
||||
dependencies:
|
||||
path-is-inside "^1.0.1"
|
||||
|
||||
is-plain-obj@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
|
||||
|
@ -3017,10 +2831,6 @@ is-relative@^1.0.0:
|
|||
dependencies:
|
||||
is-unc-path "^1.0.0"
|
||||
|
||||
is-resolvable@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
|
||||
|
||||
is-stream@^1.0.1, is-stream@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||
|
@ -3095,7 +2905,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2:
|
|||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
|
||||
|
||||
js-yaml@^3.9.1:
|
||||
js-yaml@^3.7.0:
|
||||
version "3.11.0"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
|
||||
dependencies:
|
||||
|
@ -3137,10 +2947,6 @@ json-schema@0.2.3:
|
|||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
||||
|
||||
json-stable-stringify-without-jsonify@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
|
||||
|
||||
json-stable-stringify@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
|
||||
|
@ -3216,13 +3022,6 @@ lcid@^1.0.0:
|
|||
dependencies:
|
||||
invert-kv "^1.0.0"
|
||||
|
||||
levn@^0.3.0, levn@~0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
|
||||
dependencies:
|
||||
prelude-ls "~1.1.2"
|
||||
type-check "~0.3.2"
|
||||
|
||||
liftoff@^2.1.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec"
|
||||
|
@ -3665,10 +3464,6 @@ natives@^1.1.0:
|
|||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.3.tgz#44a579be64507ea2d6ed1ca04a9415915cf75558"
|
||||
|
||||
natural-compare@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||
|
||||
needle@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.0.tgz#f14efc69cee1024b72c8b21c7bdf94a731dc12fa"
|
||||
|
@ -3885,17 +3680,6 @@ optimist@^0.6.1:
|
|||
minimist "~0.0.1"
|
||||
wordwrap "~0.0.2"
|
||||
|
||||
optionator@^0.8.2:
|
||||
version "0.8.2"
|
||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
|
||||
dependencies:
|
||||
deep-is "~0.1.3"
|
||||
fast-levenshtein "~2.0.4"
|
||||
levn "~0.3.0"
|
||||
prelude-ls "~1.1.2"
|
||||
type-check "~0.3.2"
|
||||
wordwrap "~1.0.0"
|
||||
|
||||
orchestrator@^0.3.0:
|
||||
version "0.3.8"
|
||||
resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e"
|
||||
|
@ -4018,10 +3802,6 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
|
||||
path-is-inside@^1.0.1, path-is-inside@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
|
||||
|
||||
path-key@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
||||
|
@ -4118,18 +3898,10 @@ plugin-log@^0.1.0:
|
|||
chalk "^1.1.1"
|
||||
dateformat "^1.0.11"
|
||||
|
||||
pluralize@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
|
||||
|
||||
posix-character-classes@^0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
|
||||
|
||||
prelude-ls@~1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
||||
|
||||
preserve@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
|
||||
|
@ -4146,10 +3918,6 @@ process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
|
|||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
|
||||
|
||||
progress@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
|
||||
|
||||
pseudomap@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
|
||||
|
@ -4158,10 +3926,6 @@ punycode@^1.4.1:
|
|||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
|
||||
|
||||
punycode@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d"
|
||||
|
||||
q@^1.1.2, q@^1.4.1, q@^1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
|
||||
|
@ -4314,6 +4078,10 @@ redent@^2.0.0:
|
|||
indent-string "^3.0.0"
|
||||
strip-indent "^2.0.0"
|
||||
|
||||
reflect-metadata@^0.1.12:
|
||||
version "0.1.12"
|
||||
resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2"
|
||||
|
||||
regenerate@^1.2.1:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
|
||||
|
@ -4451,13 +4219,6 @@ require-main-filename@^1.0.1:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
|
||||
|
||||
require-uncached@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
|
||||
dependencies:
|
||||
caller-path "^0.1.0"
|
||||
resolve-from "^1.0.0"
|
||||
|
||||
requires-port@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
|
||||
|
@ -4469,15 +4230,11 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1:
|
|||
expand-tilde "^2.0.0"
|
||||
global-modules "^1.0.0"
|
||||
|
||||
resolve-from@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
|
||||
|
||||
resolve-url@^0.2.1:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
|
||||
|
||||
resolve@^1.1.6, resolve@^1.1.7:
|
||||
resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2:
|
||||
version "1.7.1"
|
||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3"
|
||||
dependencies:
|
||||
|
@ -4500,7 +4257,7 @@ right-align@^0.1.1:
|
|||
dependencies:
|
||||
align-text "^0.1.1"
|
||||
|
||||
rimraf@2, rimraf@2.6.2, rimraf@^2.2.8, rimraf@^2.6.1:
|
||||
rimraf@2, rimraf@2.6.2, rimraf@^2.6.1:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
|
||||
dependencies:
|
||||
|
@ -4520,16 +4277,6 @@ run-sequence@2.2.1:
|
|||
fancy-log "^1.3.2"
|
||||
plugin-error "^0.1.2"
|
||||
|
||||
rx-lite-aggregates@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
|
||||
dependencies:
|
||||
rx-lite "*"
|
||||
|
||||
rx-lite@*, rx-lite@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
|
||||
|
||||
rx@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
|
||||
|
@ -4621,12 +4368,6 @@ slash@^1.0.0:
|
|||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
|
||||
|
||||
slice-ansi@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
|
||||
dependencies:
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
|
||||
snapdragon-node@^2.0.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
|
||||
|
@ -4834,7 +4575,7 @@ string-width@^1.0.1, string-width@^1.0.2:
|
|||
is-fullwidth-code-point "^1.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
|
||||
string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
|
||||
string-width@^2.0.0, string-width@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
|
||||
dependencies:
|
||||
|
@ -4960,17 +4701,6 @@ svgo@1.0.4:
|
|||
unquote "~1.1.1"
|
||||
util.promisify "~1.0.0"
|
||||
|
||||
table@^4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc"
|
||||
dependencies:
|
||||
ajv "^6.0.1"
|
||||
ajv-keywords "^3.0.0"
|
||||
chalk "^2.1.0"
|
||||
lodash "^4.17.4"
|
||||
slice-ansi "1.0.0"
|
||||
string-width "^2.1.1"
|
||||
|
||||
tar@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
|
||||
|
@ -5004,7 +4734,7 @@ text-extensions@^1.0.0:
|
|||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39"
|
||||
|
||||
text-table@^0.2.0, text-table@~0.2.0:
|
||||
text-table@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||
|
||||
|
@ -5103,6 +4833,69 @@ trim-right@^1.0.1:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
|
||||
|
||||
tslib@1.9.0, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1:
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
|
||||
|
||||
tslint-consistent-codestyle@^1.11.0:
|
||||
version "1.13.0"
|
||||
resolved "https://registry.yarnpkg.com/tslint-consistent-codestyle/-/tslint-consistent-codestyle-1.13.0.tgz#82abf230bf39e01159b4e9af721d489dd5ae0e6c"
|
||||
dependencies:
|
||||
"@fimbul/bifrost" "^0.6.0"
|
||||
tslib "^1.7.1"
|
||||
tsutils "^2.24.0"
|
||||
|
||||
tslint-eslint-rules@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.1.0.tgz#3232b318da55dbb5a83e3f5d657c1ddbb27b9ff2"
|
||||
dependencies:
|
||||
doctrine "0.7.2"
|
||||
tslib "1.9.0"
|
||||
tsutils "2.8.0"
|
||||
|
||||
tslint-microsoft-contrib@^5.0.2:
|
||||
version "5.0.3"
|
||||
resolved "https://registry.yarnpkg.com/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.0.3.tgz#6fc3e238179cd72045c2b422e4d655f4183a8d5c"
|
||||
dependencies:
|
||||
tsutils "^2.12.1"
|
||||
|
||||
tslint-xo@0.7.2:
|
||||
version "0.7.2"
|
||||
resolved "https://registry.yarnpkg.com/tslint-xo/-/tslint-xo-0.7.2.tgz#7523e9f2819e23c5ce66b501e4b76067c1e6f637"
|
||||
dependencies:
|
||||
tslint-consistent-codestyle "^1.11.0"
|
||||
tslint-eslint-rules "^5.1.0"
|
||||
tslint-microsoft-contrib "^5.0.2"
|
||||
|
||||
tslint@5.9.1:
|
||||
version "5.9.1"
|
||||
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae"
|
||||
dependencies:
|
||||
babel-code-frame "^6.22.0"
|
||||
builtin-modules "^1.1.1"
|
||||
chalk "^2.3.0"
|
||||
commander "^2.12.1"
|
||||
diff "^3.2.0"
|
||||
glob "^7.1.1"
|
||||
js-yaml "^3.7.0"
|
||||
minimatch "^3.0.4"
|
||||
resolve "^1.3.2"
|
||||
semver "^5.3.0"
|
||||
tslib "^1.8.0"
|
||||
tsutils "^2.12.1"
|
||||
|
||||
tsutils@2.8.0:
|
||||
version "2.8.0"
|
||||
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.8.0.tgz#0160173729b3bf138628dd14a1537e00851d814a"
|
||||
dependencies:
|
||||
tslib "^1.7.1"
|
||||
|
||||
tsutils@^2.12.1, tsutils@^2.24.0:
|
||||
version "2.26.2"
|
||||
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.26.2.tgz#a9f9f63434a456a5e0c95a45d9a59181cb32d3bf"
|
||||
dependencies:
|
||||
tslib "^1.8.1"
|
||||
|
||||
tunnel-agent@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
|
||||
|
@ -5117,19 +4910,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
|||
version "0.14.5"
|
||||
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
||||
|
||||
type-check@~0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
|
||||
dependencies:
|
||||
prelude-ls "~1.1.2"
|
||||
|
||||
typedarray@^0.0.6:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
|
||||
typescript@2.7.1:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.1.tgz#bb3682c2c791ac90e7c6210b26478a8da085c359"
|
||||
typescript@2.8.3:
|
||||
version "2.8.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.3.tgz#5d817f9b6f31bb871835f4edf0089f21abe6c170"
|
||||
|
||||
uglify-js@^2.6:
|
||||
version "2.8.29"
|
||||
|
@ -5179,12 +4966,6 @@ unset-value@^1.0.0:
|
|||
has-value "^0.3.1"
|
||||
isobject "^3.0.0"
|
||||
|
||||
uri-js@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa"
|
||||
dependencies:
|
||||
punycode "^2.1.0"
|
||||
|
||||
urix@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
|
||||
|
@ -5381,10 +5162,6 @@ wordwrap@~0.0.2:
|
|||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
|
||||
|
||||
wordwrap@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
||||
|
||||
wrap-ansi@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
|
||||
|
@ -5396,12 +5173,6 @@ wrappy@1:
|
|||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
|
||||
write@^0.2.1:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
|
||||
dependencies:
|
||||
mkdirp "^0.5.1"
|
||||
|
||||
"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||
|
|
Loading…
Reference in a new issue