From 49667576b3312abe81efc4b56034f19c9a207f9f Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Wed, 28 Apr 2021 21:00:52 +0300 Subject: [PATCH 1/9] feat(config): Automatically detect GitHub config when missing We don't need people to explicitly state `github` global configuration as it can be detected from `git` itself. Since we rely on the presence of a `git` repo in `publish` and `prepare` we can safely rely on this too and remove another piece of redundant configuration. This patch also adds tests around this. --- .eslintrc.js | 6 + package.json | 2 + src/__tests__/config.test.ts | 78 +++++++-- src/artifact_providers/github.ts | 6 - src/commands/artifacts_cmds/download.ts | 2 +- src/commands/artifacts_cmds/list.ts | 2 +- src/commands/prepare.ts | 11 +- src/commands/publish.ts | 14 +- src/config.ts | 65 ++++--- src/schemas/projectConfig.schema.ts | 1 - src/schemas/project_config.ts | 2 +- src/targets/__tests__/awsLambda.test.ts | 3 +- src/targets/__tests__/crates.test.ts | 3 +- src/targets/awsLambdaLayer.ts | 7 +- src/targets/base.ts | 14 +- src/targets/brew.ts | 8 +- src/targets/cocoapods.ts | 8 +- src/targets/crates.ts | 9 +- src/targets/docker.ts | 7 +- src/targets/gcs.ts | 7 +- src/targets/gem.ts | 7 +- src/targets/ghPages.ts | 8 +- src/targets/github.ts | 9 +- src/targets/npm.ts | 7 +- src/targets/nuget.ts | 7 +- src/targets/pypi.ts | 7 +- src/targets/registry.ts | 8 +- yarn.lock | 222 +++++++++++++++++------- 28 files changed, 362 insertions(+), 168 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 4f3853a38..d1d6e708e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -17,5 +17,11 @@ module.exports = { 'no-constant-condition': ['error', { checkLoops: false }], // Make sure variables marked with _ are ignored (ex. _varName) '@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }], + '@typescript-eslint/ban-ts-comment': [ + 'error', + { + 'ts-ignore': 'allow-with-description', + }, + ], }, }; diff --git a/package.json b/package.json index 96915cebd..f93d2589e 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "@types/async": "^3.0.1", "@types/cli-table": "^0.3.0", "@types/form-data": "^2.2.1", + "@types/git-url-parse": "^9.0.0", "@types/inquirer": "^0.0.41", "@types/jest": "^26.0.14", "@types/js-yaml": "^3.11.1", @@ -58,6 +59,7 @@ "esbuild": "^0.11.6", "eslint": "^7.2.0", "eslint-config-prettier": "^6.11.0", + "git-url-parse": "^11.4.4", "inquirer": "6.2.1", "jest": "^26.5.3", "js-yaml": "3.12.0", diff --git a/src/__tests__/config.test.ts b/src/__tests__/config.test.ts index 5adb2f4a5..dc522f903 100644 --- a/src/__tests__/config.test.ts +++ b/src/__tests__/config.test.ts @@ -3,12 +3,19 @@ * configuration). */ -import { readFileSync } from 'fs'; +import simpleGit from 'simple-git'; +import fs from 'fs'; import { dirname, join } from 'path'; import { compile } from 'json-schema-to-typescript'; -import { getProjectConfigSchema, validateConfiguration } from '../config'; +jest.mock('simple-git'); + +import { + getGlobalGithubConfig, + getProjectConfigSchema, + validateConfiguration, +} from '../config'; const configSchemaDir = join(dirname(__dirname), 'schemas'); const configGeneratedTypes = join(configSchemaDir, 'project_config.ts'); @@ -22,7 +29,7 @@ describe('compile-json-schema-to-typescript', () => { test('does not make any changes to the compiled interface', async () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const projectConfig = require('../schemas/projectConfig.schema'); - const storedOutput = readFileSync(configGeneratedTypes, { + const storedOutput = fs.readFileSync(configGeneratedTypes, { encoding: 'utf8', }); const compileOptions = { @@ -39,20 +46,15 @@ describe('validateConfiguration', () => { test('parses minimal configuration', () => { const data = { github: { owner: 'getsentry', repo: 'craft' } }; - const projectConfig = validateConfiguration(data); - - expect(projectConfig).toEqual(data); + expect(validateConfiguration(data)).toEqual(data); }); - test('fails with empty configuration', () => { - // this ensures that we do actually run the expect line in the catch block - expect.assertions(1); - - try { - validateConfiguration({}); - } catch (e) { - expect(e.message).toMatch(/should have required property/i); - } + test('fails with bad configuration', () => { + expect(() => validateConfiguration({ zoom: 1 })) + .toThrowErrorMatchingInlineSnapshot(` + "Cannot parse configuration file: + data should NOT have additional properties" + `); }); }); @@ -64,3 +66,49 @@ describe('getProjectConfigSchema', () => { expect(projectConfigSchema).toHaveProperty('properties'); }); }); + +describe('getGlobalGithubConfig', () => { + const mockReadFileSync: jest.MockedFunction = jest.fn(); + const mockGetRemotes = jest.fn(); + beforeAll(() => { + fs.readFileSync = mockReadFileSync; + // @ts-ignore: We know only getRemotes will be called, anything else should fail + (simpleGit as jest.MockedFunction).mockReturnValue({ + getRemotes: mockGetRemotes, + }); + }); + + beforeEach(() => { + mockReadFileSync.mockReset(); + mockGetRemotes.mockReset(); + }); + + test('returns configured values when set in configuration', async () => { + const githubRepo = { owner: 'getsentry', repo: 'yolo' }; + mockReadFileSync.mockReturnValueOnce( + JSON.stringify({ github: githubRepo }) + ); + expect(await getGlobalGithubConfig(true)).toEqual(githubRepo); + }); + + test('automatically uses git origin URL when config is not set', async () => { + mockReadFileSync.mockReturnValueOnce('{}'); + mockGetRemotes.mockReturnValueOnce([ + { name: 'origin', refs: { push: 'git@github.com:getsentry/yolo.git' } }, + ]); + + expect(await getGlobalGithubConfig(true)).toEqual({ + owner: 'getsentry', + repo: 'yolo', + }); + }); + + test('throws error when no config and no git', async () => { + mockReadFileSync.mockReturnValueOnce('{}'); + mockGetRemotes.mockReturnValueOnce([]); + + await expect(getGlobalGithubConfig(true)).rejects.toThrow( + 'GitHub configuration not found in the config file and cannot be determined from Git' + ); + }); +}); diff --git a/src/artifact_providers/github.ts b/src/artifact_providers/github.ts index deca03533..f9f190e6d 100644 --- a/src/artifact_providers/github.ts +++ b/src/artifact_providers/github.ts @@ -8,9 +8,7 @@ import { BaseArtifactProvider, RemoteArtifact, } from '../artifact_providers/base'; -import { getGlobalGithubConfig } from '../config'; import { logger as loggerRaw } from '../logger'; -import { GithubGlobalConfig } from '../schemas/project_config'; import { getGithubClient } from '../utils/githubApi'; import { detectContentType, @@ -50,13 +48,9 @@ export class GithubArtifactProvider extends BaseArtifactProvider { /** Github client */ public readonly github: Github; - /** Github repo configuration */ - public readonly githubRepo: GithubGlobalConfig; - public constructor(config: ArtifactProviderConfig) { super(config); this.github = getGithubClient(); - this.githubRepo = getGlobalGithubConfig(); } /** diff --git a/src/commands/artifacts_cmds/download.ts b/src/commands/artifacts_cmds/download.ts index 2acdc53d5..86b221e8d 100644 --- a/src/commands/artifacts_cmds/download.ts +++ b/src/commands/artifacts_cmds/download.ts @@ -75,7 +75,7 @@ async function handlerMain(argv: ArtifactsDownloadOptions): Promise { const revision = argv.rev; - const artifactProvider = getArtifactProviderFromConfig(); + const artifactProvider = await getArtifactProviderFromConfig(); if (artifactProvider instanceof NoneArtifactProvider) { logger.warn( `Artifact provider is disabled in the configuration, nothing to do.` diff --git a/src/commands/artifacts_cmds/list.ts b/src/commands/artifacts_cmds/list.ts index ab87b6e02..e918360c4 100644 --- a/src/commands/artifacts_cmds/list.ts +++ b/src/commands/artifacts_cmds/list.ts @@ -15,7 +15,7 @@ export const description = 'List artifacts'; async function handlerMain(argv: ArtifactsOptions): Promise { const revision = argv.rev; - const artifactProvider = getArtifactProviderFromConfig(); + const artifactProvider = await getArtifactProviderFromConfig(); if (artifactProvider instanceof NoneArtifactProvider) { logger.warn( `Artifact provider is disabled in the configuration, nothing to do.` diff --git a/src/commands/prepare.ts b/src/commands/prepare.ts index ca8c5c3d3..f6b0c62b9 100644 --- a/src/commands/prepare.ts +++ b/src/commands/prepare.ts @@ -1,14 +1,15 @@ import { existsSync, promises as fsPromises } from 'fs'; -import { dirname, join, relative } from 'path'; +import { join, relative } from 'path'; import * as shellQuote from 'shell-quote'; import simpleGit, { SimpleGit } from 'simple-git'; import { Arguments, Argv, CommandBuilder } from 'yargs'; import { checkMinimalConfigVersion, - getConfigFilePath, + getConfigFileDir, getConfiguration, DEFAULT_RELEASE_BRANCH_NAME, + getGlobalGithubConfig, } from '../config'; import { logger } from '../logger'; import { ChangelogPolicy } from '../schemas/project_config'; @@ -481,12 +482,12 @@ export async function releaseMain(argv: ReleaseOptions): Promise { // Get repo configuration const config = getConfiguration(); - const githubConfig = config.github; + const githubConfig = await getGlobalGithubConfig(); // Move to the directory where the config file is located - const configFileDir = dirname(getConfigFilePath()); + const configFileDir = getConfigFileDir() || '.'; process.chdir(configFileDir); - logger.debug(`Working directory:`, configFileDir); + logger.debug(`Working directory:`, process.cwd()); const newVersion = argv.newVersion; diff --git a/src/commands/publish.ts b/src/commands/publish.ts index 53008211b..ef8af6679 100644 --- a/src/commands/publish.ts +++ b/src/commands/publish.ts @@ -18,6 +18,7 @@ import { getStatusProviderFromConfig, getArtifactProviderFromConfig, DEFAULT_RELEASE_BRANCH_NAME, + getGlobalGithubConfig, } from '../config'; import { formatTable, logger } from '../logger'; import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; @@ -242,6 +243,7 @@ async function getTargetList( artifactProvider: BaseArtifactProvider ): Promise { logger.debug('Initializing targets'); + const githubRepo = await getGlobalGithubConfig(); const targetList: BaseTarget[] = []; for (const targetConfig of targetConfigList) { const targetClass = getTargetByName(targetConfig.name); @@ -251,7 +253,11 @@ async function getTargetList( continue; } try { - const target = new targetClass(targetConfig, artifactProvider); + const target = new targetClass( + targetConfig, + artifactProvider, + githubRepo + ); targetList.push(target); } catch (err) { logger.error(`Error creating target instance for ${targetDescriptor}!`); @@ -460,7 +466,7 @@ export async function publishMain(argv: PublishOptions): Promise { // Get publishing configuration const config = getConfiguration() || {}; - const githubConfig = config.github; + const githubConfig = await getGlobalGithubConfig(); const githubClient = getGithubClient(); const newVersion = argv.newVersion; @@ -496,8 +502,8 @@ export async function publishMain(argv: PublishOptions): Promise { } logger.debug('Revision to publish: ', revision); - const statusProvider = getStatusProviderFromConfig(); - const artifactProvider = getArtifactProviderFromConfig(); + const statusProvider = await getStatusProviderFromConfig(); + const artifactProvider = await getArtifactProviderFromConfig(); logger.debug(`Using "${statusProvider.constructor.name}" for status checks`); logger.debug(`Using "${artifactProvider.constructor.name}" for artifacts`); diff --git a/src/config.ts b/src/config.ts index 12be9f403..f62ffc23d 100644 --- a/src/config.ts +++ b/src/config.ts @@ -3,6 +3,8 @@ import { dirname, join } from 'path'; import ajv from 'ajv'; import { safeLoad } from 'js-yaml'; +import GitUrlParse from 'git-url-parse'; +import simpleGit from 'simple-git'; import { logger } from './logger'; import { @@ -144,8 +146,8 @@ export function validateConfiguration( /** * Returns the parsed configuration file contents */ -export function getConfiguration(): CraftProjectConfig { - if (_configCache) { +export function getConfiguration(clearCache=false): CraftProjectConfig { + if (!clearCache && _configCache) { return _configCache; } @@ -225,26 +227,44 @@ export function isAfterEpoch(): boolean { /** * Return the parsed global Github configuration */ -export function getGlobalGithubConfig(): GithubGlobalConfig { +let _globalGithubConfigCache: GithubGlobalConfig | null; +export async function getGlobalGithubConfig( + clearCache = false +): Promise { + if (!clearCache && _globalGithubConfigCache !== undefined) { + if (_globalGithubConfigCache === null) { + throw new ConfigurationError( + 'GitHub configuration not found in the config file and cannot be determined from Git' + ); + } + + return _globalGithubConfigCache; + } + // We extract global Github configuration (owner/repo) from top-level // configuration - const repoGithubConfig = getConfiguration().github || {}; + let repoGithubConfig = getConfiguration(clearCache).github || null; if (!repoGithubConfig) { - throw new ConfigurationError( - 'GitHub configuration not found in the config file' - ); - } - - if (!repoGithubConfig.owner) { - throw new ConfigurationError('GitHub target: owner not found'); + const configDir = getConfigFileDir(); + const remotes = await simpleGit(configDir).getRemotes(true); + const defaultRemote = + remotes.find(remote => remote.name === 'origin') || remotes[0]; + const remoteUrl = defaultRemote + ? GitUrlParse(defaultRemote.refs.push || defaultRemote.refs.fetch) + : {source: null}; + + if (remoteUrl.source === 'github.com') { + repoGithubConfig = { + owner: remoteUrl.owner, + repo: remoteUrl.name, + }; + } } - if (!repoGithubConfig.repo) { - throw new ConfigurationError('GitHub target: repo not found'); - } + _globalGithubConfigCache = Object.freeze(repoGithubConfig); - return repoGithubConfig; + return getGlobalGithubConfig(); } /** @@ -262,7 +282,9 @@ export function getGitTagPrefix(): string { * @returns An instance of artifact provider (which may be the dummy * NoneArtifactProvider if artifact storage is disabled). */ -export function getArtifactProviderFromConfig(): BaseArtifactProvider { +export async function getArtifactProviderFromConfig(): Promise< + BaseArtifactProvider +> { const projectConfig = getConfiguration(); let artifactProviderName = projectConfig.artifactProvider?.name; @@ -280,10 +302,11 @@ export function getArtifactProviderFromConfig(): BaseArtifactProvider { } } + const githubRepo = await getGlobalGithubConfig(); const artifactProviderConfig = { ...projectConfig.artifactProvider?.config, - repoName: projectConfig.github.repo, - repoOwner: projectConfig.github.owner, + repoName: githubRepo.repo, + repoOwner: githubRepo.owner, }; switch (artifactProviderName) { @@ -306,9 +329,11 @@ export function getArtifactProviderFromConfig(): BaseArtifactProvider { * * @returns An instance of status provider */ -export function getStatusProviderFromConfig(): BaseStatusProvider { +export async function getStatusProviderFromConfig(): Promise< + BaseStatusProvider +> { const config = getConfiguration(); - const githubConfig = config.github; + const githubConfig = await getGlobalGithubConfig(); const rawStatusProvider = config.statusProvider || { config: undefined, diff --git a/src/schemas/projectConfig.schema.ts b/src/schemas/projectConfig.schema.ts index c069c9e85..6afb9a89b 100644 --- a/src/schemas/projectConfig.schema.ts +++ b/src/schemas/projectConfig.schema.ts @@ -86,7 +86,6 @@ const projectConfigJsonSchema = { }, }, additionalProperties: false, - required: ['github'], definitions: { targetConfig: { diff --git a/src/schemas/project_config.ts b/src/schemas/project_config.ts index 9a62a9e5f..b30f94300 100644 --- a/src/schemas/project_config.ts +++ b/src/schemas/project_config.ts @@ -8,7 +8,7 @@ * Craft project-specific configuration */ export interface CraftProjectConfig { - github: GithubGlobalConfig; + github?: GithubGlobalConfig; targets?: TargetConfig[]; preReleaseCommand?: string; postReleaseCommand?: string; diff --git a/src/targets/__tests__/awsLambda.test.ts b/src/targets/__tests__/awsLambda.test.ts index fb3c99226..c45abad0b 100644 --- a/src/targets/__tests__/awsLambda.test.ts +++ b/src/targets/__tests__/awsLambda.test.ts @@ -11,7 +11,8 @@ function getAwsLambdaTarget(): AwsLambdaLayerTarget { name: 'aws-lambda-layer', ['testKey']: 'testValue', }, - new NoneArtifactProvider() + new NoneArtifactProvider(), + { owner: 'getsentry', repo: 'craft' } ); } diff --git a/src/targets/__tests__/crates.test.ts b/src/targets/__tests__/crates.test.ts index f44c9a20e..9d50e9b07 100644 --- a/src/targets/__tests__/crates.test.ts +++ b/src/targets/__tests__/crates.test.ts @@ -36,7 +36,8 @@ describe('getPublishOrder', () => { name: 'crates', noDevDeps: true, }, - new NoneArtifactProvider() + new NoneArtifactProvider(), + { owner: 'getsentry', repo: 'craft' } ); test('sorts crate packages properly', () => { diff --git a/src/targets/awsLambdaLayer.ts b/src/targets/awsLambdaLayer.ts index c9edd513d..70f28bbb5 100644 --- a/src/targets/awsLambdaLayer.ts +++ b/src/targets/awsLambdaLayer.ts @@ -11,7 +11,7 @@ import { } from '../utils/githubApi'; import { logger as loggerRaw } from '../logger'; -import { TargetConfig } from '../schemas/project_config'; +import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { BaseTarget } from './base'; import { BaseArtifactProvider } from '../artifact_providers/base'; import { ConfigurationError, reportError } from '../utils/errors'; @@ -61,9 +61,10 @@ export class AwsLambdaLayerTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig, ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.github = getGithubClient(); this.awsLambdaConfig = this.getAwsLambdaConfig(); } diff --git a/src/targets/base.ts b/src/targets/base.ts index 672883869..923ab6581 100644 --- a/src/targets/base.ts +++ b/src/targets/base.ts @@ -1,5 +1,5 @@ import { logger } from '../logger'; -import { TargetConfig } from '../schemas/project_config'; +import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { FilterOptions } from '../stores/zeus'; import { stringToRegexp } from '../utils/filters'; import { @@ -20,13 +20,17 @@ export class BaseTarget { public readonly config: TargetConfig; /** Artifact filtering options for the target */ public readonly filterOptions: FilterOptions; + /** Github repo configuration */ + public readonly githubRepo: GithubGlobalConfig; public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig ) { this.artifactProvider = artifactProvider; this.config = config; + this.githubRepo = githubRepo; this.filterOptions = {}; if (this.config.includeNames) { this.filterOptions.includeNames = stringToRegexp( @@ -46,7 +50,11 @@ export class BaseTarget { * @param version New version to be released * @param revision Git commit SHA to be published */ - public async publish(_version: string, _revision: string): Promise { + public async publish( + _version: string, + + _revision: string + ): Promise { throw new Error('Not implemented'); return; } diff --git a/src/targets/brew.ts b/src/targets/brew.ts index 8165a8989..321ce324d 100644 --- a/src/targets/brew.ts +++ b/src/targets/brew.ts @@ -1,7 +1,6 @@ import { mapLimit } from 'async'; import * as Github from '@octokit/rest'; -import { getGlobalGithubConfig } from '../config'; import { logger as loggerRaw } from '../logger'; import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { ConfigurationError } from '../utils/errors'; @@ -57,12 +56,13 @@ export class BrewTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.brewConfig = this.getBrewConfig(); this.github = getGithubClient(); - this.githubRepo = getGlobalGithubConfig(); + this.githubRepo = githubRepo; } /** diff --git a/src/targets/cocoapods.ts b/src/targets/cocoapods.ts index 923a046a7..b45313a16 100644 --- a/src/targets/cocoapods.ts +++ b/src/targets/cocoapods.ts @@ -3,7 +3,6 @@ import * as fs from 'fs'; import { basename, join } from 'path'; import { promisify } from 'util'; -import { getGlobalGithubConfig } from '../config'; import { logger as loggerRaw } from '../logger'; import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { ConfigurationError, reportError } from '../utils/errors'; @@ -44,12 +43,13 @@ export class CocoapodsTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.cocoapodsConfig = this.getCocoapodsConfig(); this.github = getGithubClient(); - this.githubRepo = getGlobalGithubConfig(); + this.githubRepo = githubRepo; checkExecutableIsPresent(COCOAPODS_BIN); } diff --git a/src/targets/crates.ts b/src/targets/crates.ts index 14d923d64..289778044 100644 --- a/src/targets/crates.ts +++ b/src/targets/crates.ts @@ -4,7 +4,6 @@ import * as path from 'path'; import * as _ from 'lodash'; import simpleGit from 'simple-git'; -import { getGlobalGithubConfig } from '../config'; import { logger as loggerRaw } from '../logger'; import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { forEachChained } from '../utils/async'; @@ -109,9 +108,10 @@ export class CratesTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig, ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.cratesConfig = this.getCratesConfig(); checkExecutableIsPresent(CARGO_BIN); } @@ -319,10 +319,9 @@ export class CratesTarget extends BaseTarget { * @param revision Git commit SHA to be published */ public async publish(_version: string, revision: string): Promise { - const githubConfig = getGlobalGithubConfig(); await withTempDir( async directory => { - await this.cloneWithSubmodules(githubConfig, revision, directory); + await this.cloneWithSubmodules(this.githubRepo, revision, directory); await this.publishWorkspace(directory); }, true, diff --git a/src/targets/docker.ts b/src/targets/docker.ts index 4aee65351..e10338502 100644 --- a/src/targets/docker.ts +++ b/src/targets/docker.ts @@ -1,5 +1,5 @@ import { logger as loggerRaw } from '../logger'; -import { TargetConfig } from '../schemas/project_config'; +import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { BaseArtifactProvider } from '../artifact_providers/base'; import { ConfigurationError } from '../utils/errors'; import { renderTemplateSafe } from '../utils/strings'; @@ -40,9 +40,10 @@ export class DockerTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig, ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.dockerConfig = this.getDockerConfig(); checkExecutableIsPresent(DOCKER_BIN); } diff --git a/src/targets/gcs.ts b/src/targets/gcs.ts index 0c2ea2bd1..1a92b3689 100644 --- a/src/targets/gcs.ts +++ b/src/targets/gcs.ts @@ -1,5 +1,5 @@ import { logger as loggerRaw } from '../logger'; -import { TargetConfig } from '../schemas/project_config'; +import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { forEachChained } from '../utils/async'; import { ConfigurationError, reportError } from '../utils/errors'; import { @@ -52,9 +52,10 @@ export class GcsTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig, ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.targetConfig = this.getGCSTargetConfig(); this.gcsClient = new CraftGCSClient(this.targetConfig); } diff --git a/src/targets/gem.ts b/src/targets/gem.ts index 7ed6bcb92..ccaabef9e 100644 --- a/src/targets/gem.ts +++ b/src/targets/gem.ts @@ -6,7 +6,7 @@ import { import { reportError } from '../utils/errors'; import { checkExecutableIsPresent, spawnProcess } from '../utils/system'; import { BaseTarget } from './base'; -import { TargetConfig } from 'src/schemas/project_config'; +import { GithubGlobalConfig, TargetConfig } from 'src/schemas/project_config'; const logger = loggerRaw.withScope('[gem]'); @@ -31,9 +31,10 @@ export class GemTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig, ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); checkExecutableIsPresent(GEM_BIN); } diff --git a/src/targets/ghPages.ts b/src/targets/ghPages.ts index 479f6f44d..4b4e49dd4 100644 --- a/src/targets/ghPages.ts +++ b/src/targets/ghPages.ts @@ -4,7 +4,6 @@ import * as path from 'path'; import * as Github from '@octokit/rest'; import simpleGit from 'simple-git'; -import { getGlobalGithubConfig } from '../config'; import { logger as loggerRaw } from '../logger'; import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { ConfigurationError, reportError } from '../utils/errors'; @@ -54,11 +53,12 @@ export class GhPagesTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.github = getGithubClient(); - this.githubRepo = getGlobalGithubConfig(); + this.githubRepo = githubRepo; this.ghPagesConfig = this.getGhPagesConfig(); } diff --git a/src/targets/github.ts b/src/targets/github.ts index 713bd6c9f..5f20f02a7 100644 --- a/src/targets/github.ts +++ b/src/targets/github.ts @@ -2,7 +2,7 @@ import * as Github from '@octokit/rest'; import { createReadStream, statSync } from 'fs'; import { basename } from 'path'; -import { getConfiguration, getGlobalGithubConfig } from '../config'; +import { getConfiguration } from '../config'; import { logger as loggerRaw } from '../logger'; import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { DEFAULT_CHANGELOG_PATH, findChangeset } from '../utils/changes'; @@ -70,11 +70,12 @@ export class GithubTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.githubConfig = { - ...getGlobalGithubConfig(), + ...githubRepo, annotatedTag: this.config.annotatedTag === undefined || !!this.config.annotatedTag, changelog: getConfiguration().changelog || '', diff --git a/src/targets/npm.ts b/src/targets/npm.ts index 7bf3755df..674fe1076 100644 --- a/src/targets/npm.ts +++ b/src/targets/npm.ts @@ -2,7 +2,7 @@ import { SpawnOptions, spawnSync } from 'child_process'; import * as inquirer from 'inquirer'; import { logger as loggerRaw } from '../logger'; -import { TargetConfig } from '../schemas/project_config'; +import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { ConfigurationError, reportError } from '../utils/errors'; import { isDryRun } from '../utils/helpers'; import { hasExecutable, spawnProcess } from '../utils/system'; @@ -70,9 +70,10 @@ export class NpmTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.checkRequirements(); this.npmConfig = this.getNpmConfig(); } diff --git a/src/targets/nuget.ts b/src/targets/nuget.ts index c109442f7..34b304460 100644 --- a/src/targets/nuget.ts +++ b/src/targets/nuget.ts @@ -1,5 +1,5 @@ import { logger as loggerRaw } from '../logger'; -import { TargetConfig } from '../schemas/project_config'; +import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { ConfigurationError, reportError } from '../utils/errors'; import { checkExecutableIsPresent, spawnProcess } from '../utils/system'; import { BaseTarget } from './base'; @@ -38,9 +38,10 @@ export class NugetTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig, ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.nugetConfig = this.getNugetConfig(); checkExecutableIsPresent(NUGET_DOTNET_BIN); } diff --git a/src/targets/pypi.ts b/src/targets/pypi.ts index 18ee675d2..67712a4e3 100644 --- a/src/targets/pypi.ts +++ b/src/targets/pypi.ts @@ -1,5 +1,5 @@ import { logger as loggerRaw } from '../logger'; -import { TargetConfig } from '../schemas/project_config'; +import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { BaseArtifactProvider, RemoteArtifact, @@ -41,9 +41,10 @@ export class PypiTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.pypiConfig = this.getPypiConfig(); checkExecutableIsPresent(TWINE_BIN); } diff --git a/src/targets/registry.ts b/src/targets/registry.ts index 20f4db92c..012112649 100644 --- a/src/targets/registry.ts +++ b/src/targets/registry.ts @@ -4,7 +4,6 @@ import * as _ from 'lodash'; import simpleGit from 'simple-git'; import * as path from 'path'; -import { getGlobalGithubConfig } from '../config'; import { logger as loggerRaw } from '../logger'; import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; import { ConfigurationError, reportError } from '../utils/errors'; @@ -78,11 +77,12 @@ export class RegistryTarget extends BaseTarget { public constructor( config: TargetConfig, - artifactProvider: BaseArtifactProvider + artifactProvider: BaseArtifactProvider, + githubRepo: GithubGlobalConfig ) { - super(config, artifactProvider); + super(config, artifactProvider, githubRepo); this.github = getGithubClient(); - this.githubRepo = getGlobalGithubConfig(); + this.githubRepo = githubRepo; this.registryConfig = this.getRegistryConfig(); } diff --git a/yarn.lock b/yarn.lock index 2782a1d3b..864b73bee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -501,12 +501,12 @@ "@aws-sdk/abort-controller" "3.1.0" tslib "^1.8.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== dependencies: - "@babel/highlight" "^7.10.4" + "@babel/highlight" "^7.12.13" "@babel/core@^7.1.0", "@babel/core@^7.7.5": version "7.12.10" @@ -529,30 +529,30 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.12.10", "@babel/generator@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" - integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== +"@babel/generator@^7.12.10", "@babel/generator@^7.13.16": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz#0befc287031a201d84cdfc173b46b320ae472d14" + integrity sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg== dependencies: - "@babel/types" "^7.12.11" + "@babel/types" "^7.13.16" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-function-name@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" - integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== +"@babel/helper-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" + integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== dependencies: - "@babel/helper-get-function-arity" "^7.12.10" - "@babel/template" "^7.12.7" - "@babel/types" "^7.12.11" + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/helper-get-function-arity@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" - integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== dependencies: - "@babel/types" "^7.12.10" + "@babel/types" "^7.12.13" "@babel/helper-member-expression-to-functions@^7.12.7": version "7.12.7" @@ -612,12 +612,12 @@ dependencies: "@babel/types" "^7.12.1" -"@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" - integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== +"@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== dependencies: - "@babel/types" "^7.12.11" + "@babel/types" "^7.12.13" "@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": version "7.12.11" @@ -633,19 +633,19 @@ "@babel/traverse" "^7.12.5" "@babel/types" "^7.12.5" -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== +"@babel/highlight@^7.12.13": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" + integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" + "@babel/helper-validator-identifier" "^7.12.11" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" - integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== +"@babel/parser@^7.1.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.13", "@babel/parser@^7.13.16": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37" + integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -731,37 +731,35 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.3.3": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" - integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== +"@babel/template@^7.10.4", "@babel/template@^7.12.13", "@babel/template@^7.12.7", "@babel/template@^7.3.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.12.7" - "@babel/types" "^7.12.7" + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" "@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" - integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== - dependencies: - "@babel/code-frame" "^7.12.11" - "@babel/generator" "^7.12.11" - "@babel/helper-function-name" "^7.12.11" - "@babel/helper-split-export-declaration" "^7.12.11" - "@babel/parser" "^7.12.11" - "@babel/types" "^7.12.12" + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.17.tgz#c85415e0c7d50ac053d758baec98b28b2ecfeea3" + integrity sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.16" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.13.16" + "@babel/types" "^7.13.17" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" - integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.13", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4" + integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA== dependencies: "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1308,6 +1306,11 @@ dependencies: form-data "*" +"@types/git-url-parse@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" + integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== + "@types/glob@*": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -3127,6 +3130,11 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= + find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3331,6 +3339,21 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +git-up@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c" + integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ== + dependencies: + is-ssh "^1.3.0" + parse-url "^5.0.0" + +git-url-parse@^11.4.4: + version "11.4.4" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.4.4.tgz#5d747debc2469c17bc385719f7d0427802d83d77" + integrity sha512-Y4o9o7vQngQDIU9IjyCmRJBin5iYjI5u9ZITnddRZpD7dcCFQj2sL2XuMNbLRE4b4B/4ENPsp2Q8P44fjAZ0Pw== + dependencies: + git-up "^4.0.0" + glob-parent@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" @@ -3775,6 +3798,13 @@ is-regex@^1.1.1: dependencies: has-symbols "^1.0.1" +is-ssh@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" + integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ== + dependencies: + protocols "^1.1.0" + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -4843,6 +4873,11 @@ normalize-path@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-url@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + npm-run-all@^4.1.3: version "4.1.5" resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" @@ -4901,10 +4936,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.8.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== +object-inspect@^1.8.0, object-inspect@^1.9.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.2.tgz#b6385a3e2b7cae0b5eafcf90cddf85d128767f30" + integrity sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -5078,6 +5113,26 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-path@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" + integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== + dependencies: + is-ssh "^1.3.0" + protocols "^1.4.0" + qs "^6.9.4" + query-string "^6.13.8" + +parse-url@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59" + integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA== + dependencies: + is-ssh "^1.3.0" + normalize-url "^3.3.0" + parse-path "^4.0.0" + protocols "^1.4.0" + parse5@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" @@ -5209,6 +5264,11 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" +protocols@^1.1.0, protocols@^1.4.0: + version "1.4.8" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" + integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== + pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -5251,11 +5311,28 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +qs@^6.9.4: + version "6.10.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" + integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== + dependencies: + side-channel "^1.0.4" + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== +query-string@^6.13.8: + version "6.14.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" + integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== + dependencies: + decode-uri-component "^0.2.0" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -5632,6 +5709,15 @@ shellwords@^0.1.1: resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -5765,6 +5851,11 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -5848,6 +5939,11 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + string-length@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" From 1a21c6662fb774988e629e464f8f760550ae60e7 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Fri, 30 Apr 2021 22:27:54 +0300 Subject: [PATCH 2/9] try limiting max workers --- jest.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/jest.config.js b/jest.config.js index 79317ff02..4ae303618 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,4 +3,5 @@ module.exports = { testEnvironment: 'node', testPathIgnorePatterns: ['/dist/', '/node_modules/'], modulePathIgnorePatterns: ['/dist/'], + maxWorkers: 2 }; From f100c61cca31454a99f35bc560fcf13b52edbad1 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Fri, 30 Apr 2021 22:31:05 +0300 Subject: [PATCH 3/9] try limiting max workers to 1 --- jest.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jest.config.js b/jest.config.js index 4ae303618..0ad15d91d 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,5 +3,5 @@ module.exports = { testEnvironment: 'node', testPathIgnorePatterns: ['/dist/', '/node_modules/'], modulePathIgnorePatterns: ['/dist/'], - maxWorkers: 2 + maxWorkers: 1, }; From c91c48b5ab35e67a89920d499f4dd34c14118e63 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Fri, 30 Apr 2021 22:36:13 +0300 Subject: [PATCH 4/9] revert maxWorkers changes --- jest.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/jest.config.js b/jest.config.js index 0ad15d91d..79317ff02 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,5 +3,4 @@ module.exports = { testEnvironment: 'node', testPathIgnorePatterns: ['/dist/', '/node_modules/'], modulePathIgnorePatterns: ['/dist/'], - maxWorkers: 1, }; From 2ca891eae1c9882eb858d0a7327fa0c139f2b6c2 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Tue, 4 May 2021 13:49:22 +0300 Subject: [PATCH 5/9] fix broken absolute imports and fix tests --- src/targets/gem.ts | 2 +- src/targets/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/targets/gem.ts b/src/targets/gem.ts index 7f7392f1d..070ffe3ae 100644 --- a/src/targets/gem.ts +++ b/src/targets/gem.ts @@ -6,7 +6,7 @@ import { import { reportError } from '../utils/errors'; import { checkExecutableIsPresent, spawnProcess } from '../utils/system'; import { BaseTarget } from './base'; -import { GithubGlobalConfig, TargetConfig } from 'src/schemas/project_config'; +import { GithubGlobalConfig, TargetConfig } from '../schemas/project_config'; const logger = loggerRaw.withScope('[gem]'); diff --git a/src/targets/index.ts b/src/targets/index.ts index 8fb44f850..89afbd9e4 100644 --- a/src/targets/index.ts +++ b/src/targets/index.ts @@ -1,4 +1,4 @@ -import { TargetConfig } from 'src/schemas/project_config'; +import { TargetConfig } from '../schemas/project_config'; import { BaseTarget } from './base'; import { BrewTarget } from './brew'; import { CocoapodsTarget } from './cocoapods'; From 6a96e1716ca0ef866a35f9ff2647b8df73c54fab Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Tue, 4 May 2021 14:17:07 +0300 Subject: [PATCH 6/9] revert additional tests --- src/__tests__/config.test.ts | 61 ++---------------------------------- 1 file changed, 3 insertions(+), 58 deletions(-) diff --git a/src/__tests__/config.test.ts b/src/__tests__/config.test.ts index b3e4c8c3c..84d577967 100644 --- a/src/__tests__/config.test.ts +++ b/src/__tests__/config.test.ts @@ -3,19 +3,12 @@ * configuration). */ -import simpleGit from 'simple-git'; -import fs from 'fs'; +import { readFileSync } from 'fs'; import { dirname, join } from 'path'; import { compile } from 'json-schema-to-typescript'; -jest.mock('simple-git'); - -import { - getGlobalGithubConfig, - getProjectConfigSchema, - validateConfiguration, -} from '../config'; +import { getProjectConfigSchema, validateConfiguration } from '../config'; const configSchemaDir = join(dirname(__dirname), 'schemas'); const configGeneratedTypes = join(configSchemaDir, 'project_config.ts'); @@ -29,7 +22,7 @@ describe('compile-json-schema-to-typescript', () => { test('does not make any changes to the compiled interface', async () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const projectConfig = require('../schemas/projectConfig.schema'); - const storedOutput = fs.readFileSync(configGeneratedTypes, { + const storedOutput = readFileSync(configGeneratedTypes, { encoding: 'utf8', }); const compileOptions = { @@ -66,51 +59,3 @@ describe('getProjectConfigSchema', () => { expect(projectConfigSchema).toHaveProperty('properties'); }); }); - -describe('getGlobalGithubConfig', () => { - const mockReadFileSync: jest.MockedFunction< - typeof fs.readFileSync - > = jest.fn(); - const mockGetRemotes = jest.fn(); - beforeAll(() => { - fs.readFileSync = mockReadFileSync; - // @ts-ignore: We know only getRemotes will be called, anything else should fail - (simpleGit as jest.MockedFunction).mockReturnValue({ - getRemotes: mockGetRemotes, - }); - }); - - beforeEach(() => { - mockReadFileSync.mockReset(); - mockGetRemotes.mockReset(); - }); - - test('returns configured values when set in configuration', async () => { - const githubRepo = { owner: 'getsentry', repo: 'yolo' }; - mockReadFileSync.mockReturnValueOnce( - JSON.stringify({ github: githubRepo }) - ); - expect(await getGlobalGithubConfig(true)).toEqual(githubRepo); - }); - - test('automatically uses git origin URL when config is not set', async () => { - mockReadFileSync.mockReturnValueOnce('{}'); - mockGetRemotes.mockReturnValueOnce([ - { name: 'origin', refs: { push: 'git@github.com:getsentry/yolo.git' } }, - ]); - - expect(await getGlobalGithubConfig(true)).toEqual({ - owner: 'getsentry', - repo: 'yolo', - }); - }); - - test('throws error when no config and no git', async () => { - mockReadFileSync.mockReturnValueOnce('{}'); - mockGetRemotes.mockReturnValueOnce([]); - - await expect(getGlobalGithubConfig(true)).rejects.toThrow( - 'GitHub configuration not found in the config file and cannot be determined from Git' - ); - }); -}); From c3cd9d0d72c3b165b7654ac479aa11971450fca1 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Tue, 4 May 2021 21:05:34 +0300 Subject: [PATCH 7/9] update yarn.lock --- yarn.lock | 100 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 90 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index eda5a0032..b8d35a28c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1306,11 +1306,6 @@ dependencies: form-data "*" -"@types/git-url-parse@^9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" - integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== - "@types/glob@*": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -1666,6 +1661,11 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-escapes@^3.0.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.3.1" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" @@ -2120,6 +2120,11 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -2181,6 +2186,11 @@ cli-table@0.3.1: dependencies: colors "1.0.3" +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2849,6 +2859,15 @@ extend@^3.0.2, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +external-editor@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -3352,7 +3371,7 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -iconv-lite@0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3398,6 +3417,25 @@ inherits@2, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inquirer@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52" + integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.0" + figures "^2.0.0" + lodash "^4.17.10" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.1.0" + string-width "^2.1.0" + strip-ansi "^5.0.0" + through "^2.3.6" + inversify@^5.0.0: version "5.0.5" resolved "https://registry.yarnpkg.com/inversify/-/inversify-5.0.5.tgz#bd1f8e6d8e0f739331acd8ba9bc954635aae0bbf" @@ -3502,6 +3540,11 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-fullwidth-code-point@^2.0.0: + version "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" @@ -4271,7 +4314,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.x, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: +lodash@4.x, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4483,6 +4526,11 @@ mustache@3.0.1: resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.0.1.tgz#873855f23aa8a95b150fb96d9836edbc5a1d248a" integrity sha512-jFI/4UVRsRYdUbuDTKT7KzfOp7FiD5WzYmmwNwXyUVypC0xjoTL78Fqc0jHUPIvvGD+6DQSPHIt1NE7D1ArsqA== +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= + mz@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" @@ -4727,6 +4775,11 @@ os-name@^3.1.0: macos-release "^2.2.0" windows-release "^3.1.0" +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + p-each-series@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" @@ -5219,6 +5272,18 @@ rsvp@^4.8.4: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== +run-async@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +rxjs@^6.1.0: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -5582,6 +5647,14 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" @@ -5605,7 +5678,7 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.2.0: +strip-ansi@^5.0.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -5746,7 +5819,7 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -through@2: +through@2, through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -5766,6 +5839,13 @@ tmp@0.1.0: dependencies: rimraf "^2.6.3" +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -5866,7 +5946,7 @@ ts-jest@^26.5.5: semver "7.x" yargs-parser "20.x" -tslib@^1.11.1, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.3: +tslib@^1.11.1, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== From 66674a504b37ae136f5c787d83a07528145f6496 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Tue, 4 May 2021 21:10:27 +0300 Subject: [PATCH 8/9] add @types/git-url-parse --- package.json | 1 + yarn.lock | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/package.json b/package.json index 9138bd161..4cbc1d28a 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "@types/async": "^3.0.1", "@types/cli-table": "^0.3.0", "@types/form-data": "^2.2.1", + "@types/git-url-parse": "^9.0.0", "@types/jest": "^26.0.14", "@types/js-yaml": "^3.11.1", "@types/mkdirp": "^1.0.0", diff --git a/yarn.lock b/yarn.lock index b8d35a28c..9d23ba4c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1306,6 +1306,11 @@ dependencies: form-data "*" +"@types/git-url-parse@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" + integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== + "@types/glob@*": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" From cca083111ad817c545870595dd70317f14d04c13 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Wed, 5 May 2021 10:47:23 +0300 Subject: [PATCH 9/9] remove accidental inquirer addition --- package.json | 1 - yarn.lock | 95 +++------------------------------------------------- 2 files changed, 5 insertions(+), 91 deletions(-) diff --git a/package.json b/package.json index 4cbc1d28a..6555c09c3 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,6 @@ "eslint": "^7.2.0", "eslint-config-prettier": "^6.11.0", "git-url-parse": "^11.4.4", - "inquirer": "6.2.1", "jest": "^26.5.3", "js-yaml": "3.12.0", "json-schema-to-typescript": "5.7.0", diff --git a/yarn.lock b/yarn.lock index 9d23ba4c8..eda5a0032 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1666,11 +1666,6 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^3.0.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.3.1" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" @@ -2125,11 +2120,6 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -2191,11 +2181,6 @@ cli-table@0.3.1: dependencies: colors "1.0.3" -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2864,15 +2849,6 @@ extend@^3.0.2, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -3376,7 +3352,7 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3422,25 +3398,6 @@ inherits@2, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inquirer@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52" - integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.0" - figures "^2.0.0" - lodash "^4.17.10" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.1.0" - string-width "^2.1.0" - strip-ansi "^5.0.0" - through "^2.3.6" - inversify@^5.0.0: version "5.0.5" resolved "https://registry.yarnpkg.com/inversify/-/inversify-5.0.5.tgz#bd1f8e6d8e0f739331acd8ba9bc954635aae0bbf" @@ -3545,11 +3502,6 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^2.0.0: - version "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" @@ -4319,7 +4271,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.x, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: +lodash@4.x, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4531,11 +4483,6 @@ mustache@3.0.1: resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.0.1.tgz#873855f23aa8a95b150fb96d9836edbc5a1d248a" integrity sha512-jFI/4UVRsRYdUbuDTKT7KzfOp7FiD5WzYmmwNwXyUVypC0xjoTL78Fqc0jHUPIvvGD+6DQSPHIt1NE7D1ArsqA== -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= - mz@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" @@ -4780,11 +4727,6 @@ os-name@^3.1.0: macos-release "^2.2.0" windows-release "^3.1.0" -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - p-each-series@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" @@ -5277,18 +5219,6 @@ rsvp@^4.8.4: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-async@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -rxjs@^6.1.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -5652,14 +5582,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" @@ -5683,7 +5605,7 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0, strip-ansi@^5.2.0: +strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -5824,7 +5746,7 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -through@2, through@^2.3.6: +through@2: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -5844,13 +5766,6 @@ tmp@0.1.0: dependencies: rimraf "^2.6.3" -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -5951,7 +5866,7 @@ ts-jest@^26.5.5: semver "7.x" yargs-parser "20.x" -tslib@^1.11.1, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.11.1, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==