Browse Source

Updates eslint & fixes lint issues

main
Eric Amodio 5 years ago
parent
commit
cc561722bb
57 changed files with 351 additions and 312 deletions
  1. +17
    -4
      .eslintrc.json
  2. +2
    -1
      .vscodeignore
  3. +6
    -6
      package.json
  4. +1
    -1
      src/annotations/annotationProvider.ts
  5. +1
    -1
      src/annotations/annotations.ts
  6. +2
    -2
      src/annotations/fileAnnotationController.ts
  7. +2
    -2
      src/annotations/gutterBlameAnnotationProvider.ts
  8. +1
    -1
      src/annotations/heatmapBlameAnnotationProvider.ts
  9. +3
    -3
      src/commands/diffWith.ts
  10. +1
    -1
      src/commands/git/checkout.ts
  11. +3
    -3
      src/commands/git/stash.ts
  12. +2
    -1
      src/commands/gitCommands.ts
  13. +2
    -2
      src/commands/openFileRevision.ts
  14. +2
    -1
      src/commands/openInRemote.ts
  15. +1
    -1
      src/commands/openWorkingFile.ts
  16. +2
    -2
      src/commands/showQuickCommitDetails.ts
  17. +2
    -2
      src/commands/showQuickCommitFileDetails.ts
  18. +16
    -16
      src/configuration.ts
  19. +1
    -1
      src/extension.ts
  20. +2
    -2
      src/git/formatters/formatter.ts
  21. +2
    -2
      src/git/fsProvider.ts
  22. +6
    -6
      src/git/gitService.ts
  23. +3
    -3
      src/git/gitUri.ts
  24. +3
    -1
      src/git/models/branch.ts
  25. +2
    -2
      src/git/models/repository.ts
  26. +1
    -1
      src/git/models/status.ts
  27. +2
    -2
      src/git/parsers/blameParser.ts
  28. +1
    -1
      src/git/parsers/diffParser.ts
  29. +1
    -1
      src/git/parsers/logParser.ts
  30. +2
    -2
      src/git/parsers/statusParser.ts
  31. +9
    -4
      src/git/shell.ts
  32. +1
    -1
      src/messages.ts
  33. +5
    -10
      src/quickpicks/commonQuickPicks.ts
  34. +2
    -2
      src/quickpicks/fileHistoryQuickPick.ts
  35. +1
    -1
      src/system/array.ts
  36. +1
    -1
      src/system/function.ts
  37. +1
    -1
      src/trackers/documentTracker.ts
  38. +1
    -1
      src/trackers/gitLineTracker.ts
  39. +1
    -1
      src/views/nodes/branchesNode.ts
  40. +2
    -2
      src/views/nodes/commitNode.ts
  41. +3
    -3
      src/views/nodes/fileHistoryTrackerNode.ts
  42. +3
    -3
      src/views/nodes/lineHistoryTrackerNode.ts
  43. +1
    -1
      src/views/nodes/remoteNode.ts
  44. +1
    -1
      src/views/nodes/resultsFilesNode.ts
  45. +3
    -3
      src/views/nodes/stashNode.ts
  46. +1
    -1
      src/views/nodes/statusFilesNode.ts
  47. +1
    -1
      src/views/nodes/tagsNode.ts
  48. +1
    -1
      src/views/searchView.ts
  49. +1
    -1
      src/views/viewCommands.ts
  50. +4
    -4
      src/webviews/apps/shared/events.ts
  51. +1
    -1
      src/webviews/protocol.ts
  52. +7
    -3
      src/webviews/webviewBase.ts
  53. +8
    -0
      tsconfig.eslint.json
  54. +10
    -0
      tsconfig.webviews.json
  55. +2
    -2
      webpack.config.js
  56. +0
    -20
      webviews.tsconfig.json
  57. +188
    -169
      yarn.lock

+ 17
- 4
.eslintrc.json View File

@ -6,6 +6,8 @@
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript",
@ -18,13 +20,15 @@
"sourceType": "module",
"ecmaFeatures": {
"impliedStrict": true
}
},
"project": "tsconfig.eslint.json"
},
"plugins": ["import", "prettiest", "@typescript-eslint"],
"rules": {
"arrow-parens": ["off"],
"brace-style": ["off", "stroustrup"],
"consistent-return": "error",
"curly": ["error", "multi-line", "consistent"],
"eol-last": "error",
"linebreak-style": ["error", "unix"],
"new-parens": "error",
@ -36,7 +40,6 @@
"no-duplicate-imports": "error",
"no-else-return": "warn",
"no-empty": ["warn", { "allowEmptyCatch": true }],
"no-empty-function": ["warn", { "allow": ["constructors"] }],
"no-eval": "error",
"no-ex-assign": "warn",
"no-extend-native": "error",
@ -80,7 +83,6 @@
"quotes": ["error", "single", { "avoidEscape": true }],
// Turn off until fix for: https://github.com/eslint/eslint/issues/11899
"require-atomic-updates": "off",
"require-await": "error",
"semi": ["error", "always"],
"semi-style": ["error", "last"],
"sort-imports": [
@ -112,14 +114,25 @@
}
],
"prettiest/no-block-after-closing": "error",
"@typescript-eslint/consistent-type-assertions": [
"error",
{
"assertionStyle": "as",
"objectLiteralTypeAssertions": "allow-as-parameter"
}
],
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/explicit-member-accessibility": "off",
"@typescript-eslint/no-empty-function": ["warn", { "allow": ["constructors"] }],
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-inferrable-types": ["warn", { "ignoreParameters": true, "ignoreProperties": true }],
"@typescript-eslint/no-misused-promises": ["error", { "checksVoidReturn": false }],
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-parameter-properties": "off",
"@typescript-eslint/no-unused-vars": ["warn", { "args": "none" }],
"@typescript-eslint/no-use-before-define": "off"
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/unbound-method": "off" // Too many bugs right now: https://github.com/typescript-eslint/typescript-eslint/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+unbound-method
}
}

+ 2
- 1
.vscodeignore View File

@ -18,6 +18,7 @@ CONTRIBUTING.md
generateEmojiShortcodeMap.js
package-lock.json
tsconfig.json
tsconfig.eslint.json
tsconfig.webviews.json
webpack.config.js
webviews.tsconfig.json
yarn.lock

+ 6
- 6
package.json View File

@ -5423,11 +5423,11 @@
"@types/lodash-es": "4.17.3",
"@types/node": "10.11.7",
"@types/vscode": "1.36.0",
"@typescript-eslint/eslint-plugin": "1.13.0",
"@typescript-eslint/parser": "1.13.0",
"circular-dependency-plugin": "5.0.2",
"@typescript-eslint/eslint-plugin": "2.0.0",
"@typescript-eslint/parser": "2.0.0",
"circular-dependency-plugin": "5.2.0",
"clean-webpack-plugin": "3.0.0",
"css-loader": "3.1.0",
"css-loader": "3.2.0",
"eslint": "6.1.0",
"eslint-cli": "1.1.1",
"eslint-config-prettier": "6.0.0",
@ -5442,12 +5442,12 @@
"node-sass": "4.12.0",
"prettier": "1.18.2",
"prettier-eslint": "9.0.0",
"sass-loader": "7.1.0",
"sass-loader": "7.2.0",
"terser-webpack-plugin": "1.4.1",
"ts-loader": "6.0.4",
"typescript": "3.5.3",
"vsce": "1.66.0",
"webpack": "4.39.1",
"webpack": "4.39.2",
"webpack-bundle-analyzer": "3.4.1",
"webpack-cli": "3.3.6"
}

+ 1
- 1
src/annotations/annotationProvider.ts View File

@ -116,7 +116,7 @@ export abstract class AnnotationProviderBase implements Disposable {
highlightDecoration: TextEditorDecorationType | undefined;
}) {
if (this._resetDebounced === undefined) {
this._resetDebounced = Functions.debounce(this.onReset, 250);
this._resetDebounced = Functions.debounce(this.onReset.bind(this), 250);
}
this._resetDebounced(changes);

+ 1
- 1
src/annotations/annotations.ts View File

@ -170,7 +170,7 @@ export class Annotations {
message = `[\`Changes\`](${DiffWithCommand.getMarkdownCommandArgs(commit, editorLine)} "Open Changes")`;
previous = `[\`${commit.previousShortSha}\`](${ShowQuickCommitDetailsCommand.getMarkdownCommandArgs(
commit.previousSha!
commit.previousSha
)} "Show Commit Details")`;
current = `[\`${commit.shortSha}\`](${ShowQuickCommitDetailsCommand.getMarkdownCommandArgs(

+ 2
- 2
src/annotations/fileAnnotationController.ts View File

@ -408,7 +408,7 @@ export class FileAnnotationController implements Disposable {
}
const provider = this.getProvider(editor);
if (provider === undefined) return this.show(editor!, type, shaOrLine);
if (provider === undefined) return this.show(editor, type, shaOrLine);
const reopen = provider.annotationType !== type;
if (on === true && !reopen) return true;
@ -496,7 +496,7 @@ export class FileAnnotationController implements Disposable {
break;
}
progress!.report({
progress.report({
message: `Computing ${annotationsLabel} for ${paths.basename(editor.document.fileName)}`
});
}

+ 2
- 2
src/annotations/gutterBlameAnnotationProvider.ts View File

@ -85,7 +85,7 @@ export class GutterBlameAnnotationProvider extends BlameAnnotationProviderBase {
};
if (separateLines) {
gutter.renderOptions!.before!.textDecoration = 'none';
gutter.renderOptions.before!.textDecoration = 'none';
}
compacted = true;
@ -146,7 +146,7 @@ export class GutterBlameAnnotationProvider extends BlameAnnotationProviderBase {
if (this.decorations.length) {
start = process.hrtime();
this.editor.setDecorations(this.decoration!, this.decorations);
this.editor.setDecorations(this.decoration, this.decorations);
if (avatars) {
this.additionalDecorations = [];

+ 1
- 1
src/annotations/heatmapBlameAnnotationProvider.ts View File

@ -61,7 +61,7 @@ export class HeatmapBlameAnnotationProvider extends BlameAnnotationProviderBase
if (this.decorations.length) {
start = process.hrtime();
this.editor.setDecorations(this.decoration!, this.decorations);
this.editor.setDecorations(this.decoration, this.decorations);
Logger.log(cc, `${Strings.getDurationMilliseconds(start)} ms to apply recent changes annotations`);
}

+ 3
- 3
src/commands/diffWith.ts View File

@ -51,7 +51,7 @@ export class DiffWithCommand extends ActiveEditorCommand {
repoPath: commit.repoPath,
lhs: {
sha: commit.previousSha !== undefined ? commit.previousSha : GitService.deletedOrMissingSha,
uri: commit.previousUri!
uri: commit.previousUri
},
rhs: {
sha: commit.sha,
@ -77,8 +77,8 @@ export class DiffWithCommand extends ActiveEditorCommand {
args = {
...args,
lhs: { ...(args.lhs as DiffWithCommandArgsRevision) },
rhs: { ...(args.rhs as DiffWithCommandArgsRevision) },
lhs: { ...args.lhs },
rhs: { ...args.rhs },
showOptions: args.showOptions === undefined ? undefined : { ...args.showOptions }
};

+ 1
- 1
src/commands/git/checkout.ts View File

@ -213,7 +213,7 @@ export class CheckoutGitCommand extends QuickCommandBase {
value = value.trim();
if (value.length === 0) return [false, 'Please enter a valid branch name'];
const valid = Boolean(await Container.git.validateBranchName(value!));
const valid = Boolean(await Container.git.validateBranchName(value));
return [valid, valid ? undefined : `'${value}' isn't a valid branch name`];
}
});

+ 3
- 3
src/commands/git/stash.ts View File

@ -408,7 +408,7 @@ export class StashGitCommand extends QuickCommandBase {
{
label: `${this.title} ${state.subcommand}`,
description: `${state.stash.stashName}${Strings.pad(GlyphChars.Dash, 2, 2)}${message}`,
detail: `Will delete ${state.stash!.stashName}`
detail: `Will delete ${state.stash.stashName}`
}
],
{ placeholder: `Confirm ${this.title} ${state.subcommand}` }
@ -420,13 +420,13 @@ export class StashGitCommand extends QuickCommandBase {
}
}
void Container.git.stashDelete(state.repo.path, state.stash!.stashName);
void Container.git.stashDelete(state.repo.path, state.stash.stashName);
throw new BreakQuickCommand();
}
}
// eslint-disable-next-line require-await
// eslint-disable-next-line @typescript-eslint/require-await
private async *push(state: StashStepState<PushState>): AsyncIterableIterator<QuickPickStep | QuickInputStep> {
while (true) {
if (state.message === undefined || state.counter < 3) {

+ 2
- 1
src/commands/gitCommands.ts View File

@ -261,8 +261,9 @@ export class GitCommandsCommand extends Command {
if (value.length === 0) return;
const step = commandsStep.command && commandsStep.command.value;
if (step === undefined || !isQuickPickStep(step) || step.onDidAccept === undefined)
if (step === undefined || !isQuickPickStep(step) || step.onDidAccept === undefined) {
return;
}
quickpick.busy = true;

+ 2
- 2
src/commands/openFileRevision.ts View File

@ -181,10 +181,10 @@ export class OpenFileRevisionCommand extends ActiveEditorCommand {
args.showOptions.selection = new Range(args.line, 0, args.line, 0);
}
const e = await openEditor(args.uri!, { ...args.showOptions, rethrow: true });
const e = await openEditor(args.uri, { ...args.showOptions, rethrow: true });
if (args.annotationType === undefined) return e;
return Container.fileAnnotations.show(e!, args.annotationType, args.line);
return Container.fileAnnotations.show(e, args.annotationType, args.line);
}
catch (ex) {
Logger.error(ex, 'OpenFileRevisionCommand');

+ 2
- 1
src/commands/openInRemote.ts View File

@ -114,8 +114,9 @@ export class OpenInRemoteCommand extends ActiveEditorCommand {
args.remotes === undefined ||
args.resource === undefined ||
args.resource.type !== RemoteResourceType.Branch
)
) {
return;
}
// Check to see if the remote is in the branch
const [remotePart, branchPart] = Strings.splitSingle(args.resource.branch, '/');

+ 1
- 1
src/commands/openWorkingFile.ts View File

@ -57,7 +57,7 @@ export class OpenWorkingFileCommand extends ActiveEditorCommand {
const e = await openEditor(args.uri, { ...args.showOptions, rethrow: true });
if (args.annotationType === undefined) return e;
return Container.fileAnnotations.show(e!, args.annotationType, args.line);
return Container.fileAnnotations.show(e, args.annotationType, args.line);
}
catch (ex) {
Logger.error(ex, 'OpenWorkingFileCommand');

+ 2
- 2
src/commands/showQuickCommitDetails.ts View File

@ -99,7 +99,7 @@ export class ShowQuickCommitDetailsCommand extends ActiveEditorCachedCommand {
try {
if (args.commit === undefined || args.commit.isFile) {
if (args.repoLog !== undefined) {
args.commit = args.repoLog.commits.get(args.sha!);
args.commit = args.repoLog.commits.get(args.sha);
// If we can't find the commit, kill the repoLog
if (args.commit === undefined) {
args.repoLog = undefined;
@ -112,7 +112,7 @@ export class ShowQuickCommitDetailsCommand extends ActiveEditorCachedCommand {
return Messages.showCommitNotFoundWarningMessage('Unable to show commit details');
}
args.commit = log.commits.get(args.sha!);
args.commit = log.commits.get(args.sha);
}
}

+ 2
- 2
src/commands/showQuickCommitFileDetails.ts View File

@ -104,7 +104,7 @@ export class ShowQuickCommitFileDetailsCommand extends ActiveEditorCachedCommand
try {
if (args.commit === undefined || !args.commit.isFile) {
if (args.fileLog !== undefined) {
args.commit = args.fileLog.commits.get(args.sha!);
args.commit = args.fileLog.commits.get(args.sha);
// If we can't find the commit, kill the fileLog
if (args.commit === undefined) {
args.fileLog = undefined;
@ -124,7 +124,7 @@ export class ShowQuickCommitFileDetailsCommand extends ActiveEditorCachedCommand
return Messages.showCommitNotFoundWarningMessage('Unable to show commit file details');
}
const shortSha = GitService.shortenSha(args.sha!);
const shortSha = GitService.shortenSha(args.sha);
if (args.goBackCommand === undefined) {
const commandArgs: ShowQuickCommitDetailsCommandArgs = {

+ 16
- 16
src/configuration.ts View File

@ -14,7 +14,6 @@ import { Config } from './config';
import { extensionId } from './constants';
import { Functions } from './system';
// eslint-disable-next-line @typescript-eslint/no-object-literal-type-assertion
const emptyConfig: Config = new Proxy<Config>({} as Config, {
get: function() {
return emptyConfig;
@ -74,20 +73,21 @@ export class Configuration {
get<T>(section?: string, resource?: Uri | null, defaultValue?: T): T {
return defaultValue === undefined
? workspace
.getConfiguration(section === undefined ? undefined : extensionId, resource!)
.getConfiguration(section === undefined ? undefined : extensionId, resource)
.get<T>(section === undefined ? extensionId : section)!
: workspace
.getConfiguration(section === undefined ? undefined : extensionId, resource!)
.getConfiguration(section === undefined ? undefined : extensionId, resource)
.get<T>(section === undefined ? extensionId : section, defaultValue)!;
}
getAny<T>(section: string, resource?: Uri | null, defaultValue?: T) {
return defaultValue === undefined
? workspace.getConfiguration(undefined, resource!).get<T>(section)!
: workspace.getConfiguration(undefined, resource!).get<T>(section, defaultValue)!;
? workspace.getConfiguration(undefined, resource).get<T>(section)!
: workspace.getConfiguration(undefined, resource).get<T>(section, defaultValue)!;
}
changed(e: ConfigurationChangeEvent, section: string, resource?: Uri | null) {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
return e.affectsConfiguration(`${extensionId}.${section}`, resource!);
}
@ -97,12 +97,12 @@ export class Configuration {
inspect(section?: string, resource?: Uri | null) {
return workspace
.getConfiguration(section === undefined ? undefined : extensionId, resource!)
.getConfiguration(section === undefined ? undefined : extensionId, resource)
.inspect(section === undefined ? extensionId : section);
}
inspectAny(section: string, resource?: Uri | null) {
return workspace.getConfiguration(undefined, resource!).inspect(section);
return workspace.getConfiguration(undefined, resource).inspect(section);
}
async migrate<TFrom, TTo>(
@ -238,7 +238,7 @@ export class Configuration {
}
name<K extends keyof Config>(name: K) {
return Functions.propOf(emptyConfig as Config, name);
return Functions.propOf(emptyConfig, name);
}
update(section: string, value: any, target: ConfigurationTarget, resource?: Uri | null) {
@ -253,25 +253,25 @@ export class Configuration {
.update(section, value, target);
}
async updateEffective(section: string, value: any, resource: Uri | null = null) {
const inspect = await configuration.inspect(section, resource)!;
updateEffective(section: string, value: any, resource: Uri | null = null): Thenable<void> {
const inspect = configuration.inspect(section, resource)!;
if (inspect.workspaceFolderValue !== undefined) {
if (value === inspect.workspaceFolderValue) return undefined;
if (value === inspect.workspaceFolderValue) return Promise.resolve(undefined);
return void configuration.update(section, value, ConfigurationTarget.WorkspaceFolder, resource);
return configuration.update(section, value, ConfigurationTarget.WorkspaceFolder, resource);
}
if (inspect.workspaceValue !== undefined) {
if (value === inspect.workspaceValue) return undefined;
if (value === inspect.workspaceValue) return Promise.resolve(undefined);
return void configuration.update(section, value, ConfigurationTarget.Workspace);
return configuration.update(section, value, ConfigurationTarget.Workspace);
}
if (inspect.globalValue === value || (inspect.globalValue === undefined && value === inspect.defaultValue)) {
return undefined;
return Promise.resolve(undefined);
}
return void configuration.update(
return configuration.update(
section,
value === inspect.defaultValue ? undefined : value,
ConfigurationTarget.Global

+ 1
- 1
src/extension.ts View File

@ -34,7 +34,7 @@ export async function activate(context: ExtensionContext) {
const gitlens = extensions.getExtension(extensionQualifiedId)!;
const gitlensVersion = gitlens.packageJSON.version;
const enabled = workspace.getConfiguration('git', null!).get<boolean>('enabled', true);
const enabled = workspace.getConfiguration('git', null).get<boolean>('enabled', true);
if (!enabled) {
Logger.log(`GitLens (v${gitlensVersion}) was NOT activated -- "git.enabled": false`);
setCommandContext(CommandContext.Enabled, false);

+ 2
- 2
src/git/formatters/formatter.ts View File

@ -28,7 +28,7 @@ export abstract class Formatter
if (options === undefined && this._options !== undefined) return;
if (options === undefined) {
// eslint-disable-next-line @typescript-eslint/no-object-literal-type-assertion
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
options = {} as TOptions;
}
@ -114,7 +114,7 @@ export abstract class Formatter
let options: TOptions | undefined = undefined;
if (dateFormatOrOptions == null || typeof dateFormatOrOptions === 'string') {
// eslint-disable-next-line @typescript-eslint/no-object-literal-type-assertion
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
options = {
dateFormat: dateFormatOrOptions
} as TOptions;

+ 2
- 2
src/git/fsProvider.ts View File

@ -150,7 +150,7 @@ export class GitFileSystemProvider implements FileSystemProvider, Disposable {
}
private async createSearchTree(ref: string, repoPath: string) {
const searchTree = TernarySearchTree.forPaths() as TernarySearchTree<GitTree>;
const searchTree = TernarySearchTree.forPaths<GitTree>();
const trees = await Container.git.getTreeForRevision(repoPath, ref);
// Add a fake root folder so that searches will work
@ -175,7 +175,7 @@ export class GitFileSystemProvider implements FileSystemProvider, Disposable {
private async getTree(path: string, ref: string, repoPath: string) {
const searchTree = await this.getOrCreateSearchTree(ref, repoPath);
// Add the fake root folder to the path
return searchTree!.findSuperstr(`/~/${path}`, true);
return searchTree.findSuperstr(`/~/${path}`, true);
}
}

+ 6
- 6
src/git/gitService.ts View File

@ -484,7 +484,7 @@ export class GitService implements Disposable {
patch = await Git.diff(uri.repoPath, uri.fsPath, ref1, ref2, {
similarityThreshold: Container.config.advanced.similarityThreshold
});
void (await Git.apply(uri.repoPath!, patch));
void (await Git.apply(uri.repoPath, patch));
}
catch (ex) {
if (patch && /patch does not apply/i.test(ex.message)) {
@ -498,7 +498,7 @@ export class GitService implements Disposable {
if (result.title === 'Yes') {
try {
void (await Git.apply(uri.repoPath!, patch, { allowConflicts: true }));
void (await Git.apply(uri.repoPath, patch, { allowConflicts: true }));
return;
}
catch (e) {
@ -1119,7 +1119,7 @@ export class GitService implements Disposable {
const branchesAndTagsBySha = Arrays.groupByFilterMap(
(branches as { name: string; sha: string }[]).concat(tags as { name: string; sha: string }[]),
bt => bt.sha!,
bt => bt.sha,
bt => (bt.name === currentName ? undefined : bt.name)
);
@ -1974,11 +1974,11 @@ export class GitService implements Disposable {
}
// First, check if we have a diff in the working tree
let hunkLine = await this.getDiffForLine(gitUri!, editorLine, undefined);
let hunkLine = await this.getDiffForLine(gitUri, editorLine, undefined);
if (hunkLine === undefined) {
// Next, check if we have a diff in the index (staged)
hunkLine = await this.getDiffForLine(
gitUri!,
gitUri,
editorLine,
undefined,
GitService.uncommittedStagedSha
@ -2339,7 +2339,7 @@ export class GitService implements Disposable {
if (repo === undefined && isVslsScheme !== false && Container.vsls.isMaybeGuest) {
if (!vslsUriPrefixRegex.test(path)) {
path = Strings.normalizePath(path);
const vslsPath = `/~0${path[0] === slash ? path : `/${path}`}`;
const vslsPath = `/~0${path.startsWith(slash) ? path : `/${path}`}`;
repo = repositoryTree.findSubstr(vslsPath);
}
}

+ 3
- 3
src/git/gitUri.ts View File

@ -106,7 +106,7 @@ export class GitUri extends ((Uri as any) as UriEx) {
if (!fsPath) {
path = slash;
}
else if (fsPath[0] !== slash) {
else if (!fsPath.startsWith(slash)) {
path = `/${fsPath}`;
}
else {
@ -202,7 +202,7 @@ export class GitUri extends ((Uri as any) as UriEx) {
private static ensureValidUNCPath(authority: string, fsPath: string): [string, string] {
// Taken from https://github.com/Microsoft/vscode/blob/e444eaa768a1e8bd8315f2cee265d725e96a8162/src/vs/base/common/uri.ts#L300-L325
// check for authority as used in UNC shares or use the path as given
if (fsPath[0] === slash && fsPath[1] === slash) {
if (fsPath.startsWith(slash) && fsPath[1] === slash) {
const index = fsPath.indexOf(slash, 2);
if (index === -1) {
authority = fsPath.substring(2);
@ -427,7 +427,7 @@ export class GitUri extends ((Uri as any) as UriEx) {
const uri = Uri.parse(
// Replace / in the authority with a similar unicode characters otherwise parsing will be wrong
`${DocumentSchemes.GitLens}://${encodeURIComponent(shortSha!.replace(/\//g, '\u200A\u2215\u200A'))}${
`${DocumentSchemes.GitLens}://${encodeURIComponent(shortSha.replace(/\//g, '\u200A\u2215\u200A'))}${
// Change encoded / back to / otherwise uri parsing won't work properly
filePath === slash ? emptyStr : encodeURIComponent(filePath).replace(/%2F/g, slash)
}?${encodeURIComponent(JSON.stringify(data))}`

+ 3
- 1
src/git/models/branch.ts View File

@ -5,6 +5,8 @@ import { Git, GitRemote } from '../git';
import { GitStatus } from './status';
import { memoize } from '../../system';
const whitespaceRegex = /\s/;
export interface GitTrackingState {
ahead: number;
behind: number;
@ -141,6 +143,6 @@ export class GitBranch {
static isDetached(name: string): boolean {
// If there is whitespace in the name assume this is not a valid branch name
// Deals with detached HEAD states
return name.match(/\s/) !== null || name.match(/\(detached\)/) !== null;
return whitespaceRegex.test(name) || name.includes('(detached)');
}
}

+ 2
- 2
src/git/models/repository.ts View File

@ -511,7 +511,7 @@ export class Repository implements Disposable {
private fireChange(...reasons: RepositoryChange[]) {
if (this._fireChangeDebounced === undefined) {
this._fireChangeDebounced = Functions.debounce(this.fireChangeCore, 250);
this._fireChangeDebounced = Functions.debounce(this.fireChangeCore.bind(this), 250);
}
if (this._pendingChanges.repo === undefined) {
@ -539,7 +539,7 @@ export class Repository implements Disposable {
private fireFileSystemChange(uri: Uri) {
if (this._fireFileSystemChangeDebounced === undefined) {
this._fireFileSystemChangeDebounced = Functions.debounce(this.fireFileSystemChangeCore, 2500);
this._fireFileSystemChangeDebounced = Functions.debounce(this.fireFileSystemChangeCore.bind(this), 2500);
}
if (this._pendingChanges.fs === undefined) {

+ 1
- 1
src/git/models/status.ts View File

@ -149,7 +149,7 @@ export class GitStatusFile implements GitFile {
) {}
get status(): GitFileStatus {
return (this.indexStatus || this.workingTreeStatus || '?') as GitFileStatus;
return this.indexStatus || this.workingTreeStatus || '?';
}
get staged() {

+ 2
- 2
src/git/parsers/blameParser.ts View File

@ -138,14 +138,14 @@ export class GitBlameParser {
// Try to get the repoPath from the most recent commit
repoPath = Strings.normalizePath(
fileName.replace(
fileName.startsWith(slash) ? `/${entry.fileName}` : entry.fileName!,
fileName.startsWith(slash) ? `/${entry.fileName}` : entry.fileName,
emptyStr
)
);
relativeFileName = Strings.normalizePath(paths.relative(repoPath, fileName));
}
else {
relativeFileName = entry.fileName!;
relativeFileName = entry.fileName;
}
first = false;

+ 1
- 1
src/git/parsers/diffParser.ts View File

@ -137,7 +137,7 @@ export class GitDiffParser {
files.push({
repoPath: repoPath,
status: (status[0] !== '.' ? status[0].trim() : '?') as GitFileStatus,
status: (!status.startsWith('.') ? status[0].trim() : '?') as GitFileStatus,
indexStatus: undefined,
workingTreeStatus: undefined,
// Stops excessive memory usage -- https://bugs.chromium.org/p/v8/issues/detail?id=2869

+ 1
- 1
src/git/parsers/logParser.ts View File

@ -437,7 +437,7 @@ export class GitLogParser {
type === GitCommitType.Log ? entry.parentShas![0] : undefined,
undefined,
entry.fileStats,
entry.parentShas!,
entry.parentShas,
entry.line
);

+ 2
- 2
src/git/parsers/statusParser.ts View File

@ -50,7 +50,7 @@ export class GitStatusParser {
else {
const rawStatus = line.substring(0, 2);
const fileName = line.substring(3);
if (rawStatus[0] === 'R') {
if (rawStatus.startsWith('R')) {
const [file1, file2] = fileName.replace(/"/g, emptyStr).split('->');
files.push(this.parseStatusFile(repoPath, rawStatus, file2.trim(), file1.trim()));
}
@ -137,7 +137,7 @@ export class GitStatusParser {
fileName: string,
originalFileName?: string
): GitStatusFile {
let indexStatus = rawStatus[0] !== '.' ? rawStatus[0].trim() : undefined;
let indexStatus = !rawStatus.startsWith('.') ? rawStatus[0].trim() : undefined;
if (indexStatus == null || indexStatus.length === 0) {
indexStatus = undefined;
}

+ 9
- 4
src/git/shell.ts View File

@ -7,6 +7,11 @@ import { Logger } from '../logger';
const isWindows = process.platform === 'win32';
const slashesRegex = /[\\/]/;
const ps1Regex = /\.ps1$/i;
const batOrCmdRegex = /\.(bat|cmd)$/i;
const jsRegex = /\.(js)$/i;
/**
* Search PATH to see if a file exists in any of the path folders.
*
@ -21,7 +26,7 @@ function runDownPath(exe: string): string {
// Posix does
// Files with any directory path don't get this applied
if (exe.match(/[\\/]/)) return exe;
if (slashesRegex.test(exe)) return exe;
const target = paths.join('.', exe);
try {
@ -81,7 +86,7 @@ export function findExecutable(exe: string, args: string[]): { cmd: string; args
}
}
if (exe.match(/\.ps1$/i)) {
if (ps1Regex.test(exe)) {
const cmd = paths.join(
process.env.SYSTEMROOT || 'C:\\WINDOWS',
'System32',
@ -94,14 +99,14 @@ export function findExecutable(exe: string, args: string[]): { cmd: string; args
return { cmd: cmd, args: psargs.concat(args) };
}
if (exe.match(/\.(bat|cmd)$/i)) {
if (batOrCmdRegex.test(exe)) {
const cmd = paths.join(process.env.SYSTEMROOT || 'C:\\WINDOWS', 'System32', 'cmd.exe');
const cmdArgs = ['/C', exe, ...args];
return { cmd: cmd, args: cmdArgs };
}
if (exe.match(/\.(js)$/i)) {
if (jsRegex.test(exe)) {
const cmd = process.execPath;
const nodeArgs = [exe];

+ 1
- 1
src/messages.ts View File

@ -128,7 +128,7 @@ export class Messages {
if (uri !== undefined) {
await setCommandContext(CommandContext.ViewsHideSupportGitLens, true);
await this.suppressedMessage(SuppressedMessages.SupportGitLensNotification!);
await this.suppressedMessage(SuppressedMessages.SupportGitLensNotification);
await env.openExternal(uri);
}
}

+ 5
- 10
src/quickpicks/commonQuickPicks.ts View File

@ -133,16 +133,11 @@ export class ShowCommitSearchResultsInViewQuickPickItem extends CommandQuickPick
super(item, undefined, undefined);
}
async execute(): Promise<{} | undefined> {
return void (await Container.searchView.showSearchResults(
this.results.repoPath,
this.search,
this.searchBy,
this.results,
{
label: this.resultsLabel
}
));
execute(): Promise<{} | undefined> {
Container.searchView.showSearchResults(this.results.repoPath, this.search, this.searchBy, this.results, {
label: this.resultsLabel
});
return Promise.resolve(undefined);
}
}

+ 2
- 2
src/quickpicks/fileHistoryQuickPick.ts View File

@ -111,7 +111,7 @@ export class FileHistoryQuickPick {
}
if (!options.pickerOnly) {
const branch = await Container.git.getBranch(uri.repoPath!);
const branch = await Container.git.getBranch(uri.repoPath);
if (branch !== undefined) {
const commandArgs: ShowQuickFileHistoryCommandArgs = {
@ -150,7 +150,7 @@ export class FileHistoryQuickPick {
);
}
const remotes = await Container.git.getRemotes(uri.repoPath!, { sort: true });
const remotes = await Container.git.getRemotes(uri.repoPath, { sort: true });
if (remotes.length) {
const resource: RemoteResource =
uri.sha !== undefined

+ 1
- 1
src/system/array.ts View File

@ -112,7 +112,7 @@ export namespace Arrays {
folder.children = new Map();
}
let f = folder.children!.get(folderName);
let f = folder.children.get(folderName);
if (f === undefined) {
f = {
name: folderName,

+ 1
- 1
src/system/function.ts View File

@ -105,7 +105,7 @@ export namespace Functions {
fnBody = fnBody.slice(open, close);
fnBody = `(${fnBody})`;
const match = fnBody.match(fnBodyRegex);
const match = fnBodyRegex.exec(fnBody);
return match != null
? match[1].split(comma).map(param => param.trim().replace(fnBodyStripParamDefaultValueRegex, emptyStr))
: [];

+ 1
- 1
src/trackers/documentTracker.ts View File

@ -266,7 +266,7 @@ export class DocumentTracker implements Disposable {
document = documentOrId;
}
const doc = await this.addCore(document);
const doc = this.addCore(document);
await doc.ensureInitialized();
return doc;

+ 1
- 1
src/trackers/gitLineTracker.ts View File

@ -133,7 +133,7 @@ export class GitLineTracker extends LineTracker {
for (const line of lines) {
const commitLine = blame.lines[line];
this.setState(line, new GitLineState(blame.commits.get(commitLine.sha)!));
this.setState(line, new GitLineState(blame.commits.get(commitLine.sha)));
}
}

+ 1
- 1
src/views/nodes/branchesNode.ts View File

@ -49,7 +49,7 @@ export class BranchesNode extends ViewNode {
hierarchy,
'branches'
);
this._children = await root.getChildren();
this._children = root.getChildren();
}
return this._children;
}

+ 2
- 2
src/views/nodes/commitNode.ts View File

@ -27,7 +27,7 @@ export class CommitNode extends ViewRefNode {
return this.commit.sha;
}
async getChildren(): Promise<ViewNode[]> {
getChildren(): ViewNode[] {
const commit = this.commit;
let children: FileNode[] = [
...Iterables.map(commit.files, s => new CommitFileNode(this.view, this, s, commit.toFileCommit(s)))
@ -42,7 +42,7 @@ export class CommitNode extends ViewRefNode {
);
const root = new FolderNode(this.view, this, this.repoPath, '', hierarchy);
children = (await root.getChildren()) as FileNode[];
children = root.getChildren() as FileNode[];
}
else {
children.sort((a, b) =>

+ 3
- 3
src/views/nodes/fileHistoryTrackerNode.ts View File

@ -68,7 +68,7 @@ export class FileHistoryTrackerNode extends SubscribeableViewNode
@gate()
@log()
async changeBase() {
const pick = await new ReferencesQuickPick(this.uri.repoPath!).show(
const pick = await new ReferencesQuickPick(this.uri.repoPath).show(
`Change the file history base to${GlyphChars.Ellipsis}`,
{
allowEnteringRefs: true,
@ -116,14 +116,14 @@ export class FileHistoryTrackerNode extends SubscribeableViewNode
return false;
}
if (UriComparer.equals(editor!.document.uri, this.uri)) {
if (UriComparer.equals(editor.document.uri, this.uri)) {
if (cc !== undefined) {
cc.exitDetails = `, uri=${Logger.toLoggable(this._uri)}`;
}
return true;
}
let gitUri = await GitUri.fromUri(editor!.document.uri);
let gitUri = await GitUri.fromUri(editor.document.uri);
let uri;
if (gitUri.sha !== undefined) {

+ 3
- 3
src/views/nodes/lineHistoryTrackerNode.ts View File

@ -73,7 +73,7 @@ export class LineHistoryTrackerNode extends SubscribeableViewNode
@gate()
@log()
async changeBase() {
const pick = await new ReferencesQuickPick(this.uri.repoPath!).show(
const pick = await new ReferencesQuickPick(this.uri.repoPath).show(
`Change the line history base to${GlyphChars.Ellipsis}`,
{
allowEnteringRefs: true,
@ -126,7 +126,7 @@ export class LineHistoryTrackerNode extends SubscribeableViewNode
}
if (
UriComparer.equals(editor!.document.uri, this.uri) &&
UriComparer.equals(editor.document.uri, this.uri) &&
(this._selection !== undefined && editor.selection.isEqual(this._selection))
) {
if (cc !== undefined) {
@ -135,7 +135,7 @@ export class LineHistoryTrackerNode extends SubscribeableViewNode
return true;
}
const gitUri = await GitUri.fromUri(editor!.document.uri);
const gitUri = await GitUri.fromUri(editor.document.uri);
if (
this.uri !== unknownGitUri &&

+ 1
- 1
src/views/nodes/remoteNode.ts View File

@ -53,7 +53,7 @@ export class RemoteNode extends ViewNode {
hierarchy,
`remote(${this.remote.name}`
);
const children = (await root.getChildren()) as (BranchOrTagFolderNode | BranchNode)[];
const children = root.getChildren() as (BranchOrTagFolderNode | BranchNode)[];
return children;
}

+ 1
- 1
src/views/nodes/resultsFilesNode.ts View File

@ -47,7 +47,7 @@ export class ResultsFilesNode extends ViewNode {
);
const root = new FolderNode(this.view, this, this.repoPath, '', hierarchy);
children = (await root.getChildren()) as FileNode[];
children = root.getChildren() as FileNode[];
}
else {
children.sort(

+ 3
- 3
src/views/nodes/stashNode.ts View File

@ -21,13 +21,13 @@ export class StashNode extends ViewRefNode {
}
async getChildren(): Promise<ViewNode[]> {
const files = (this.commit as GitStashCommit).files;
const files = this.commit.files;
// Check for any untracked files -- since git doesn't return them via `git stash list` :(
// See https://stackoverflow.com/questions/12681529/
const log = await Container.git.getLog(this.commit.repoPath, {
maxCount: 1,
ref: `${(this.commit as GitStashCommit).stashName}^3`
ref: `${this.commit.stashName}^3`
});
if (log !== undefined) {
const commit = Iterables.first(log.commits.values());
@ -39,7 +39,7 @@ export class StashNode extends ViewRefNode {
}
const children = files.map(s => new StashFileNode(this.view, this, s, this.commit.toFileCommit(s)));
children.sort((a, b) => a.label!.localeCompare(b.label!, undefined, { numeric: true, sensitivity: 'base' }));
children.sort((a, b) => a.label.localeCompare(b.label, undefined, { numeric: true, sensitivity: 'base' }));
return children;
}

+ 1
- 1
src/views/nodes/statusFilesNode.ts View File

@ -101,7 +101,7 @@ export class StatusFilesNode extends ViewNode {
);
const root = new FolderNode(this.view, this, repoPath, '', hierarchy, true);
children = (await root.getChildren()) as FileNode[];
children = root.getChildren() as FileNode[];
}
else {
children.sort(

+ 1
- 1
src/views/nodes/tagsNode.ts View File

@ -43,7 +43,7 @@ export class TagsNode extends ViewNode {
hierarchy,
'tags'
);
const children = (await root.getChildren()) as (BranchOrTagFolderNode | TagNode)[];
const children = root.getChildren() as (BranchOrTagFolderNode | TagNode)[];
return children;
}

+ 1
- 1
src/views/searchView.ts View File

@ -159,7 +159,7 @@ export class SearchView extends ViewBase {
const root = this.ensureRoot();
root.addOrReplace(results, !this.keepResults);
setImmediate(() => this.reveal(results, { select: true, expand: true }));
setImmediate(() => void this.reveal(results, { select: true, expand: true }));
}
private getSearchLabel(

+ 1
- 1
src/views/viewCommands.ts View File

@ -180,7 +180,7 @@ export class ViewCommands {
if (message.includes('Co-authored-by: ')) {
newlines = '\n';
}
else if (message.length !== 0 && message[message.length - 1] === '\n') {
else if (message.length !== 0 && message.endsWith('\n')) {
newlines = '\n\n';
}
else {

+ 4
- 4
src/webviews/apps/shared/events.ts View File

@ -21,7 +21,7 @@ export interface EmitterOptions {
}
export class Emitter<T> {
// eslint-disable-next-line no-empty-function
// eslint-disable-next-line @typescript-eslint/no-empty-function
private static readonly _noop = function() {};
private readonly _options?: EmitterOptions;
@ -199,7 +199,7 @@ class LinkedList {
}
else if (atTheEnd) {
// push
const oldLast = this._last!;
const oldLast = this._last;
this._last = newNode;
newNode.prev = oldLast;
oldLast.next = newNode;
@ -254,12 +254,12 @@ class LinkedList {
}
else if (node.next === Node.Undefined) {
// last
this._last = this._last!.prev!;
this._last = this._last.prev;
this._last.next = Node.Undefined;
}
else if (node.prev === Node.Undefined) {
// first
this._first = this._first!.next!;
this._first = this._first.next;
this._first.prev = Node.Undefined;
}

+ 1
- 1
src/webviews/protocol.ts View File

@ -20,7 +20,7 @@ export class IpcCommandType

{

export function onIpcCommand<CT extends IpcCommandType>(
type: CT,
command: IpcMessage,
fn: (params: IpcCommandParamsOf<CT>) => void
fn: (params: IpcCommandParamsOf<CT>) => unknown
) {
fn(command.params);
}

+ 7
- 3
src/webviews/webviewBase.ts View File

@ -94,14 +94,18 @@ export abstract class WebviewBase implements Disposable {
params.scope === 'workspace' ? ConfigurationTarget.Workspace : ConfigurationTarget.Global;
for (const key in params.changes) {
const inspect = await configuration.inspect(key)!;
const inspect = configuration.inspect(key)!;
const value = params.changes[key];
await configuration.update(key, value === inspect.defaultValue ? undefined : value, target);
void (await configuration.update(
key,
value === inspect.defaultValue ? undefined : value,
target
));
}
for (const key of params.removes) {
await configuration.update(key, undefined, target);
void (await configuration.update(key, undefined, target));
}
});

+ 8
- 0
tsconfig.eslint.json View File

@ -0,0 +1,8 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"lib": ["dom", "dom.iterable", "es2018"],
"skipLibCheck": true
},
"exclude": ["node_modules", "test"]
}

+ 10
- 0
tsconfig.webviews.json View File

@ -0,0 +1,10 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"lib": ["dom", "dom.iterable", "es2018"],
"outDir": "dist/webviews",
"skipLibCheck": true
},
"include": ["src/config.ts", "src/webviews/protocol.ts", "src/webviews/apps/**/*"],
"exclude": ["node_modules", "test"]
}

+ 2
- 2
webpack.config.js View File

@ -137,7 +137,7 @@ function getWebviewsConfig(env) {
const plugins = [
new CleanPlugin({ cleanOnceBeforeBuildPatterns: clean }),
new ForkTsCheckerPlugin({
tsconfig: path.resolve(__dirname, 'webviews.tsconfig.json'),
tsconfig: path.resolve(__dirname, 'tsconfig.webviews.json'),
async: false,
eslint: true,
useTypescriptIncrementalApi: true
@ -229,7 +229,7 @@ function getWebviewsConfig(env) {
use: {
loader: 'ts-loader',
options: {
configFile: 'webviews.tsconfig.json',
configFile: 'tsconfig.webviews.json',
transpileOnly: true,
experimentalWatchApi: true
}

+ 0
- 20
webviews.tsconfig.json View File

@ -1,20 +0,0 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"forceConsistentCasingInFileNames": true,
"lib": ["dom", "dom.iterable", "es2018"],
"module": "esnext",
"moduleResolution": "node",
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"noUnusedLocals": false,
"outDir": "dist/webviews",
"rootDir": "src",
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"target": "es2018"
},
"include": ["src/config.ts", "src/webviews/protocol.ts", "src/webviews/apps/**/*"],
"exclude": ["node_modules"]
}

+ 188
- 169
yarn.lock View File

@ -119,9 +119,9 @@
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
"@types/node@*":
version "12.6.9"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.9.tgz#ffeee23afdc19ab16e979338e7b536fdebbbaeaf"
integrity sha512-+YB9FtyxXGyD54p8rXwWaN1EWEyar5L58GlGWgtH2I9rGmLGBQcw63+0jw+ujqVavNuO47S1ByAjm9zdHMnskw==
version "12.7.2"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.2.tgz#c4e63af5e8823ce9cc3f0b34f7b998c2171f0c44"
integrity sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==
"@types/node@10.11.7":
version "10.11.7"
@ -166,16 +166,16 @@
"@types/uglify-js" "*"
source-map "^0.6.0"
"@typescript-eslint/eslint-plugin@1.13.0":
version "1.13.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.13.0.tgz#22fed9b16ddfeb402fd7bcde56307820f6ebc49f"
integrity sha512-WQHCozMnuNADiqMtsNzp96FNox5sOVpU8Xt4meaT4em8lOG1SrOv92/mUbEHQVh90sldKSfcOc/I0FOb/14G1g==
"@typescript-eslint/eslint-plugin@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.0.0.tgz#609a5d7b00ce21a6f94d7ef282eba9da57ca1e42"
integrity sha512-Mo45nxTTELODdl7CgpZKJISvLb+Fu64OOO2ZFc2x8sYSnUpFrBUW3H+H/ZGYmEkfnL6VkdtOSxgdt+Av79j0sA==
dependencies:
"@typescript-eslint/experimental-utils" "1.13.0"
eslint-utils "^1.3.1"
"@typescript-eslint/experimental-utils" "2.0.0"
eslint-utils "^1.4.0"
functional-red-black-tree "^1.0.1"
regexpp "^2.0.1"
tsutils "^3.7.0"
tsutils "^3.14.0"
"@typescript-eslint/experimental-utils@1.13.0":
version "1.13.0"
@ -186,7 +186,26 @@
"@typescript-eslint/typescript-estree" "1.13.0"
eslint-scope "^4.0.0"
"@typescript-eslint/parser@1.13.0", "@typescript-eslint/parser@^1.10.2":
"@typescript-eslint/experimental-utils@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.0.0.tgz#f3d298bb411357f35c4184e24280b256b6321949"
integrity sha512-XGJG6GNBXIEx/mN4eTRypN/EUmsd0VhVGQ1AG+WTgdvjHl0G8vHhVBHrd/5oI6RRYBRnedNymSYWW1HAdivtmg==
dependencies:
"@types/json-schema" "^7.0.3"
"@typescript-eslint/typescript-estree" "2.0.0"
eslint-scope "^4.0.0"
"@typescript-eslint/parser@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.0.0.tgz#4273bb19d03489daf8372cdaccbc8042e098178f"
integrity sha512-ibyMBMr0383ZKserIsp67+WnNVoM402HKkxqXGlxEZsXtnGGurbnY90pBO3e0nBUM7chEEOcxUhgw9aPq7fEBA==
dependencies:
"@types/eslint-visitor-keys" "^1.0.0"
"@typescript-eslint/experimental-utils" "2.0.0"
"@typescript-eslint/typescript-estree" "2.0.0"
eslint-visitor-keys "^1.0.0"
"@typescript-eslint/parser@^1.10.2":
version "1.13.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.13.0.tgz#61ac7811ea52791c47dc9fd4dd4a184fae9ac355"
integrity sha512-ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==
@ -204,6 +223,14 @@
lodash.unescape "4.0.1"
semver "5.5.0"
"@typescript-eslint/typescript-estree@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.0.0.tgz#c9f6c0efd1b11475540d6a55dc973cc5b9a67e77"
integrity sha512-NXbmzA3vWrSgavymlzMWNecgNOuiMMp62MO3kI7awZRLRcsA1QrYWo6q08m++uuAGVbXH/prZi2y1AWuhSu63w==
dependencies:
lodash.unescape "4.0.1"
semver "^6.2.0"
"@webassemblyjs/ast@1.8.5":
version "1.8.5"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
@ -401,9 +428,9 @@ acorn@^5.5.0:
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
acorn@^6.0.7, acorn@^6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51"
integrity sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==
version "6.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e"
integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==
ajv-errors@^1.0.0:
version "1.0.1"
@ -430,10 +457,12 @@ amdefine@>=0.0.4:
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
ansi-escapes@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
ansi-escapes@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.2.1.tgz#4dccdb846c3eee10f6d64dea66273eab90c37228"
integrity sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==
dependencies:
type-fest "^0.5.2"
ansi-regex@^2.0.0:
version "2.1.1"
@ -674,9 +703,9 @@ balanced-match@^1.0.0:
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base64-js@^1.0.2:
version "1.3.0"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==
version "1.3.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
base@^0.11.1:
version "0.11.2"
@ -955,9 +984,9 @@ buffer@^4.3.0:
isarray "^1.0.0"
buffer@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6"
integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==
version "5.4.0"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.0.tgz#33294f5c1f26e08461e528b69fa06de3c45cbd8c"
integrity sha512-Xpgy0IwHK2N01ncykXTy6FpCWuM+CJSHoPVBLyNqyrWxsedpLvwsYUhf0ME3WRFNUhos0dMamz9cOS/xRDtU5g==
dependencies:
base64-js "^1.0.2"
ieee754 "^1.1.4"
@ -1158,10 +1187,10 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
inherits "^2.0.1"
safe-buffer "^5.0.1"
circular-dependency-plugin@5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz#da168c0b37e7b43563fb9f912c1c007c213389ef"
integrity sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==
circular-dependency-plugin@5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93"
integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==
class-utils@^0.3.5:
version "0.3.6"
@ -1188,12 +1217,12 @@ clean-webpack-plugin@3.0.0:
"@types/webpack" "^4.4.31"
del "^4.1.1"
cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
cli-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
dependencies:
restore-cursor "^2.0.0"
restore-cursor "^3.1.0"
cli-width@^2.0.0:
version "2.2.0"
@ -1218,15 +1247,14 @@ cliui@^5.0.0:
strip-ansi "^5.2.0"
wrap-ansi "^5.1.0"
clone-deep@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713"
integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==
clone-deep@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
dependencies:
for-own "^1.0.0"
is-plain-object "^2.0.4"
kind-of "^6.0.0"
shallow-clone "^1.0.0"
kind-of "^6.0.2"
shallow-clone "^3.0.0"
clone-response@1.0.2:
version "1.0.2"
@ -1408,9 +1436,9 @@ core-js@^2.4.0:
integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==
core-js@^3.1.4:
version "3.1.4"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07"
integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==
version "3.2.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.2.1.tgz#cd41f38534da6cc59f7db050fe67307de9868b09"
integrity sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
@ -1493,10 +1521,10 @@ crypto-browserify@^3.11.0:
randombytes "^2.0.0"
randomfill "^1.0.3"
css-loader@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.1.0.tgz#6f008b993b8ce812e6bab57f3cbfdc7a7cf28685"
integrity sha512-MuL8WsF/KSrHCBCYaozBKlx+r7vIfUaDTEreo7wR7Vv3J6N0z6fqWjRk3e/6wjneitXN1r/Y9FTK1psYNOBdJQ==
css-loader@3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.2.0.tgz#bb570d89c194f763627fcf1f80059c6832d009b2"
integrity sha512-QTF3Ud5H7DaZotgdcJjGMvyDj5F3Pn1j/sC6VBEOVp94cbwqyIBdcs/quzj4MC1BKQSrTpQznegH/5giYbhnCQ==
dependencies:
camelcase "^5.3.1"
cssesc "^3.0.0"
@ -1978,6 +2006,11 @@ emoji-regex@^7.0.1:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
@ -2139,7 +2172,7 @@ eslint-scope@^5.0.0:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint-utils@^1.3.1:
eslint-utils@^1.3.1, eslint-utils@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.0.tgz#e2c3c8dba768425f897cf0f9e51fe2e241485d4c"
integrity sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ==
@ -2147,9 +2180,9 @@ eslint-utils@^1.3.1:
eslint-visitor-keys "^1.0.0"
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"
integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
version "1.1.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
eslint@6.1.0:
version "6.1.0"
@ -2282,9 +2315,9 @@ esrecurse@^4.1.0:
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"
integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
version "4.3.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
esutils@^2.0.2:
version "2.0.3"
@ -2537,10 +2570,10 @@ figures@^1.3.5:
escape-string-regexp "^1.0.5"
object-assign "^4.1.0"
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
figures@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9"
integrity sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==
dependencies:
escape-string-regexp "^1.0.5"
@ -2701,23 +2734,11 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
for-in@^0.1.3:
version "0.1.8"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"
integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=
for-in@^1.0.1, for-in@^1.0.2:
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
for-own@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=
dependencies:
for-in "^1.0.1"
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@ -3066,9 +3087,9 @@ got@^8.3.1:
url-to-options "^1.0.1"
graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2:
version "4.2.1"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.1.tgz#1c1f0c364882c868f5bff6512146328336a11b1d"
integrity sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==
version "4.2.2"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==
"graceful-readlink@>= 1.0.0":
version "1.0.1"
@ -3211,11 +3232,9 @@ hoopy@^0.1.4:
integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==
hosted-git-info@^2.1.4:
version "2.8.2"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.2.tgz#a35c3f355ac1249f1093c0c2a542ace8818c171a"
integrity sha512-CyjlXII6LMsPMyUzxpTt8fzh5QwzGqPmQXgY/Jyf4Zfp27t/FvfhwoE/8laaMUcMy816CkWF20I7NeQhwwY88w==
dependencies:
lru-cache "^5.1.1"
version "2.8.4"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546"
integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==
html-comment-regex@^1.1.0:
version "1.1.2"
@ -3526,21 +3545,21 @@ ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
inquirer@^6.2.2, inquirer@^6.4.1:
version "6.5.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42"
integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==
version "6.5.1"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.1.tgz#8bfb7a5ac02dac6ff641ac4c5ff17da112fcdb42"
integrity sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw==
dependencies:
ansi-escapes "^3.2.0"
ansi-escapes "^4.2.1"
chalk "^2.4.2"
cli-cursor "^2.1.0"
cli-cursor "^3.1.0"
cli-width "^2.0.0"
external-editor "^3.0.3"
figures "^2.0.0"
lodash "^4.17.12"
mute-stream "0.0.7"
figures "^3.0.0"
lodash "^4.17.15"
mute-stream "0.0.8"
run-async "^2.2.0"
rxjs "^6.4.0"
string-width "^2.1.0"
string-width "^4.1.0"
strip-ansi "^5.1.0"
through "^2.3.6"
@ -3681,6 +3700,11 @@ is-fullwidth-code-point@^2.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
is-fullwidth-code-point@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-gif@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-gif/-/is-gif-3.0.0.tgz#c4be60b26a301d695bb833b20d9b5d66c6cf83b1"
@ -4081,17 +4105,12 @@ lodash.merge@^4.6.0:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
lodash.tail@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=
lodash.unescape@4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@~4.17.10:
lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@~4.17.10:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
@ -4359,12 +4378,7 @@ mime@1.6.0, mime@^1.3.4:
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
mimic-fn@^2.0.0:
mimic-fn@^2.0.0, mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
@ -4450,14 +4464,6 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
mixin-object@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e"
integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=
dependencies:
for-in "^0.1.3"
is-extendable "^0.1.1"
"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
@ -4492,12 +4498,7 @@ ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
mute-stream@~0.0.4:
mute-stream@0.0.8, mute-stream@~0.0.4:
version "0.0.8"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
@ -4822,12 +4823,12 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies:
wrappy "1"
onetime@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
onetime@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5"
integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==
dependencies:
mimic-fn "^1.0.0"
mimic-fn "^2.1.0"
opener@^1.5.1:
version "1.5.1"
@ -5295,9 +5296,9 @@ postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
uniq "^1.0.1"
postcss-value-parser@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.1.tgz#e3f6172cc91302912c89da55a42454025485250f"
integrity sha512-3Jk+/CVH0HBfgSSFWALKm9Hyzf4kumPjZfUxkRYZNcqFztELb2APKxv0nlX8HCdc1/ymePmT/nFf1ST6fjWH2A==
version "4.0.2"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==
postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.5, postcss@^7.0.6:
version "7.0.17"
@ -5781,12 +5782,12 @@ responselike@1.0.2:
dependencies:
lowercase-keys "^1.0.0"
restore-cursor@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
restore-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
dependencies:
onetime "^2.0.0"
onetime "^5.1.0"
signal-exit "^3.0.2"
ret@~0.1.10:
@ -5794,7 +5795,14 @@ ret@~0.1.10:
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
rimraf@2, rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
dependencies:
glob "^7.1.3"
rimraf@2.6.3:
version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
@ -5835,7 +5843,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2:
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
@ -5862,16 +5870,15 @@ sass-graph@^2.2.4:
scss-tokenizer "^0.2.3"
yargs "^7.0.0"
sass-loader@7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz#16fd5138cb8b424bf8a759528a1972d72aad069d"
integrity sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==
sass-loader@7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.2.0.tgz#e34115239309d15b2527cb62b5dfefb62a96ff7f"
integrity sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA==
dependencies:
clone-deep "^2.0.1"
clone-deep "^4.0.1"
loader-utils "^1.0.1"
lodash.tail "^4.1.1"
neo-async "^2.5.0"
pify "^3.0.0"
pify "^4.0.1"
semver "^5.5.0"
sax@^1.2.4, sax@~1.2.4:
@ -5889,9 +5896,9 @@ schema-utils@^1.0.0:
ajv-keywords "^3.1.0"
schema-utils@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.0.1.tgz#1eec2e059556af841b7f3a83b61af13d7a3f9196"
integrity sha512-HJFKJ4JixDpRur06QHwi8uu2kZbng318ahWEKgBjc0ZklcE4FDvmm2wghb448q0IRaABxIESt8vqPFvwgMB80A==
version "2.1.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.1.0.tgz#940363b6b1ec407800a22951bdcc23363c039393"
integrity sha512-g6SViEZAfGNrToD82ZPUjq52KUPDYc+fN5+g6Euo5mLokl/9Yx14z0Cu4RR1m55HtBXejO0sBt+qw79axN+Fiw==
dependencies:
ajv "^6.1.0"
ajv-keywords "^3.1.0"
@ -5924,16 +5931,16 @@ semver-truncate@^1.1.2:
semver "^5.3.0"
"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
version "5.7.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
semver@5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==
semver@^6.0.0, semver@^6.1.2:
semver@^6.0.0, semver@^6.1.2, semver@^6.2.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@ -6010,14 +6017,12 @@ sha.js@^2.4.0, sha.js@^2.4.8:
inherits "^2.0.1"
safe-buffer "^5.0.1"
shallow-clone@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571"
integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==
shallow-clone@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
dependencies:
is-extendable "^0.1.1"
kind-of "^5.0.0"
mixin-object "^2.0.1"
kind-of "^6.0.2"
shebang-command@^1.2.0:
version "1.2.0"
@ -6287,7 +6292,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@^1.0.2 || 2", string-width@^2.1.0:
"string-width@^1.0.2 || 2":
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@ -6304,12 +6309,21 @@ string-width@^3.0.0, string-width@^3.1.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0"
string-width@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff"
integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^5.2.0"
string_decoder@^1.0.0, string_decoder@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
dependencies:
safe-buffer "~5.1.0"
safe-buffer "~5.2.0"
string_decoder@~1.1.1:
version "1.1.1"
@ -6504,9 +6518,9 @@ terser-webpack-plugin@1.4.1, terser-webpack-plugin@^1.4.1:
worker-farm "^1.7.0"
terser@^4.1.2:
version "4.1.3"
resolved "https://registry.yarnpkg.com/terser/-/terser-4.1.3.tgz#6074fbcf3517561c3272ea885f422c7a8c32d689"
integrity sha512-on13d+cnpn5bMouZu+J8tPYQecsdRJCJuxFJ+FVoPBoLJgk5bCBkp+Uen2hWyi0KIUm6eDarnlAlH+KgIx/PuQ==
version "4.1.4"
resolved "https://registry.yarnpkg.com/terser/-/terser-4.1.4.tgz#4478b6a08bb096a61e793fea1a4434408bab936c"
integrity sha512-+ZwXJvdSwbd60jG0Illav0F06GDJF0R4ydZ21Q3wGAFKoBGyJGo34F63vzJHgvYxc1ukOtIjvwEvl9MkjzM6Pg==
dependencies:
commander "^2.20.0"
source-map "~0.6.1"
@ -6536,9 +6550,9 @@ timed-out@^4.0.0, timed-out@^4.0.1:
integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=
timers-browserify@^2.0.4:
version "2.0.10"
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae"
integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==
version "2.0.11"
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f"
integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==
dependencies:
setimmediate "^1.0.4"
@ -6656,10 +6670,10 @@ tslib@^1.8.1, tslib@^1.9.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
tsutils@^3.7.0:
version "3.17.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.0.tgz#c3ccab927a475aa2beef6a3695c2ff76da13cdf8"
integrity sha512-fyveWOtAXfumAxIqkcMHuPaaVyLBKjB8Y00ANZkqh+HITBAQscCbQIHwwBTJdvQq7RykLEbOPcUUnJ16X4NA0g==
tsutils@^3.14.0:
version "3.17.1"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==
dependencies:
tslib "^1.8.1"
@ -6692,6 +6706,11 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
type-fest@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2"
integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==
type-is@~1.6.17, type-is@~1.6.18:
version "1.6.18"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
@ -7025,10 +7044,10 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
source-list-map "^2.0.0"
source-map "~0.6.1"
webpack@4.39.1:
version "4.39.1"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.1.tgz#60ed9fb2b72cd60f26ea526c404d2a4cc97a1bd8"
integrity sha512-/LAb2TJ2z+eVwisldp3dqTEoNhzp/TLCZlmZm3GGGAlnfIWDgOEE758j/9atklNLfRyhKbZTCOIoPqLJXeBLbQ==
webpack@4.39.2:
version "4.39.2"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.2.tgz#c9aa5c1776d7c309d1b3911764f0288c8c2816aa"
integrity sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA==
dependencies:
"@webassemblyjs/ast" "1.8.5"
"@webassemblyjs/helper-module-context" "1.8.5"

Loading…
Cancel
Save