From 38f269b01f261e56f081ccb2fe469e15296c0fcc Mon Sep 17 00:00:00 2001 From: Nico Jansen Date: Wed, 13 Feb 2019 17:06:13 +0100 Subject: [PATCH] fix(stryker init): update metadata for `stryker init` command (#1403) Make sure `stryker init` command resolves correct metadata in order to correctly initialize the questionnaire and stryker.conf.js. Fixes #1402 --- packages/babel-transpiler/package.json | 3 +- packages/core/.vscode/launch.json | 13 ++++ packages/core/src/initializer/NpmClient.ts | 45 +++++++------- packages/core/src/initializer/PackageInfo.ts | 5 ++ packages/core/src/initializer/PromptOption.ts | 4 +- .../src/initializer/StrykerInitializer.ts | 34 ++++++----- packages/core/src/initializer/index.ts | 4 +- .../initializer/StrykerInitializerSpec.ts | 59 ++++++++++--------- packages/html-reporter/package.json | 3 +- packages/jasmine-framework/package.json | 3 +- packages/jasmine-runner/package.json | 3 +- packages/javascript-mutator/package.json | 3 +- packages/jest-runner/package.json | 3 +- packages/karma-runner/package.json | 3 +- packages/mocha-framework/package.json | 5 +- packages/mocha-runner/package.json | 3 +- packages/typescript/package.json | 5 +- packages/vue-mutator/package.json | 3 +- packages/wct-runner/package.json | 3 +- packages/webpack-transpiler/package.json | 3 +- 20 files changed, 107 insertions(+), 100 deletions(-) create mode 100644 packages/core/src/initializer/PackageInfo.ts diff --git a/packages/babel-transpiler/package.json b/packages/babel-transpiler/package.json index cbb8f1c587..2dc770381b 100644 --- a/packages/babel-transpiler/package.json +++ b/packages/babel-transpiler/package.json @@ -24,9 +24,8 @@ }, "keywords": [ "stryker", - "stryker-mutator-plugin", + "@stryker-mutator/transpiler-plugin", "javascript", - "transpiler-plugin", "babel" ], "publishConfig": { diff --git a/packages/core/.vscode/launch.json b/packages/core/.vscode/launch.json index 395c70230d..35cab8d458 100644 --- a/packages/core/.vscode/launch.json +++ b/packages/core/.vscode/launch.json @@ -21,6 +21,19 @@ "${workspaceRoot}/src/**/*.js" ] }, + { + "type": "node", + "request": "launch", + "name": "Index", + "program": "${workspaceRoot}/index.js", + "args": [ + ], + "internalConsoleOptions": "openOnSessionStart", + "outFiles": [ + "${workspaceRoot}/test/**/*.js", + "${workspaceRoot}/src/**/*.js" + ] + }, { "type": "node", "request": "launch", diff --git a/packages/core/src/initializer/NpmClient.ts b/packages/core/src/initializer/NpmClient.ts index d4fec847ba..3b0b66c116 100644 --- a/packages/core/src/initializer/NpmClient.ts +++ b/packages/core/src/initializer/NpmClient.ts @@ -2,18 +2,13 @@ import { RestClient, IRestResponse } from 'typed-rest-client/RestClient'; import PromptOption from './PromptOption'; import { errorToString } from '@stryker-mutator/util'; import { tokens, commonTokens } from '@stryker-mutator/api/plugin'; -import { initializerTokens, BASE_NPM_SEARCH, BASE_NPM_PACKAGE } from '.'; +import { initializerTokens } from '.'; import { Logger } from '@stryker-mutator/api/logging'; +import { PackageInfo } from './PackageInfo'; -interface NpmSearchPackageInfo { - package: { - name: string; - keywords: string[]; - }; -} interface NpmSearchResult { total: number; - results: NpmSearchPackageInfo[]; + results: { package: PackageInfo }[]; } interface NpmPackage { @@ -29,14 +24,14 @@ const getName = (packageName: string) => { const mapSearchResultToPromptOption = (searchResults: NpmSearchResult): PromptOption[] => searchResults.results.map(result => ({ name: getName(result.package.name), - npm: result.package.name + pkg: result.package })); const handleResult = (from: string) => (response: IRestResponse): T => { if (response.statusCode === 200 && response.result) { return response.result; } else { - throw new Error(`Query ${from} resulted in http status code: ${response.statusCode}.`); + throw new Error(`Path ${from} resulted in http status code: ${response.statusCode}.`); } }; @@ -50,12 +45,12 @@ export default class NpmClient { } public getTestRunnerOptions(): Promise { - return this.search('/v2/search?q=keywords:stryker-mutator-plugin+test-runner-plugin') + return this.search('/v2/search?q=keywords:@stryker-mutator/test-runner-plugin') .then(mapSearchResultToPromptOption); } public getTestFrameworkOptions(testRunnerFilter: string | null): Promise { - return this.search('/v2/search?q=keywords:stryker-mutator-plugin+test-framework-plugin') + return this.search('/v2/search?q=keywords:@stryker-mutator/test-framework-plugin') .then(searchResult => { if (testRunnerFilter) { searchResult.results = searchResult.results.filter(framework => framework.package.keywords.indexOf(testRunnerFilter) >= 0); @@ -66,37 +61,37 @@ export default class NpmClient { } public getMutatorOptions(): Promise { - return this.search('/v2/search?q=keywords:stryker-mutator-plugin+mutator-plugin') + return this.search('/v2/search?q=keywords:@stryker-mutator/mutator-plugin') .then(mapSearchResultToPromptOption); } public getTranspilerOptions(): Promise { - return this.search('/v2/search?q=keywords:stryker-mutator-plugin+transpiler-plugin') + return this.search('/v2/search?q=keywords:@stryker-mutator/transpiler-plugin') .then(mapSearchResultToPromptOption); } public getTestReporterOptions(): Promise { - return this.search(`/v2/search?q=keywords:stryker-mutator-plugin+reporter-plugin`) + return this.search(`/v2/search?q=keywords:@stryker-mutator/reporter-plugin`) .then(mapSearchResultToPromptOption); } - public getAdditionalConfig(packageName: string): Promise { - return this.packageClient.get(`/${packageName}/latest`) - .then(handleResult(`${BASE_NPM_PACKAGE}/${packageName}`)) + public getAdditionalConfig(pkg: PackageInfo): Promise { + const path = `/${pkg.name}@${pkg.version}/package.json`; + return this.packageClient.get(path) + .then(handleResult(path)) .then(pkg => pkg.initStrykerConfig || {}) .catch(err => { - this.log.warn(`Could not fetch additional initialization config for dependency ${packageName}. You might need to configure it manually`, err); + this.log.warn(`Could not fetch additional initialization config for dependency ${pkg.name}. You might need to configure it manually`, err); return {}; }); } - private search(query: string): Promise { - const call = BASE_NPM_SEARCH + query; - this.log.debug(`Searching: ${call}`); - return this.searchClient.get(query) - .then(handleResult(call)) + private search(path: string): Promise { + this.log.debug(`Searching: ${path}`); + return this.searchClient.get(path) + .then(handleResult(path)) .catch(err => { - this.log.error(`Unable to reach ${BASE_NPM_SEARCH} (for query ${query}). Please check your internet connection.`, errorToString(err)); + this.log.error(`Unable to reach npms.io (for query ${path}). Please check your internet connection.`, errorToString(err)); const result: NpmSearchResult = { results: [], total: 0 diff --git a/packages/core/src/initializer/PackageInfo.ts b/packages/core/src/initializer/PackageInfo.ts new file mode 100644 index 0000000000..997e2da720 --- /dev/null +++ b/packages/core/src/initializer/PackageInfo.ts @@ -0,0 +1,5 @@ +export interface PackageInfo { + name: string; + keywords: string[]; + version: string; +} diff --git a/packages/core/src/initializer/PromptOption.ts b/packages/core/src/initializer/PromptOption.ts index c176065490..07b4a83eab 100644 --- a/packages/core/src/initializer/PromptOption.ts +++ b/packages/core/src/initializer/PromptOption.ts @@ -1,6 +1,8 @@ +import { PackageInfo } from './PackageInfo'; + interface PromptOption { name: string; - npm: string | null; + pkg: PackageInfo | null; } export default PromptOption; diff --git a/packages/core/src/initializer/StrykerInitializer.ts b/packages/core/src/initializer/StrykerInitializer.ts index 36009ff3f5..3bb55d1cff 100644 --- a/packages/core/src/initializer/StrykerInitializer.ts +++ b/packages/core/src/initializer/StrykerInitializer.ts @@ -9,6 +9,7 @@ import CommandTestRunner from '../test-runner/CommandTestRunner'; import Preset from './presets/Preset'; import { initializerTokens } from '.'; import { tokens, commonTokens } from '@stryker-mutator/api/plugin'; +import { PackageInfo } from './PackageInfo'; const enum PackageManager { Npm = 'npm', @@ -101,7 +102,7 @@ export default class StrykerInitializer { selectedReporters, selectedPackageManager, await this.fetchAdditionalConfig(npmDependencies)); - this.installNpmDependencies(npmDependencies, selectedPackageManager); + this.installNpmDependencies(npmDependencies.map(pkg => pkg.name), selectedPackageManager); } private async selectTestRunner(): Promise { @@ -120,13 +121,13 @@ export default class StrykerInitializer { reporterOptions = await this.client.getTestReporterOptions(); reporterOptions.push({ name: 'clear-text', - npm: null + pkg: null }, { name: 'progress', - npm: null + pkg: null }, { name: 'dashboard', - npm: null + pkg: null } ); return this.inquirer.promptReporters(reporterOptions); @@ -134,12 +135,12 @@ export default class StrykerInitializer { private async selectTestFramework(testRunnerOption: PromptOption): Promise { let selectedTestFramework: PromptOption | null = null; - const testFrameworkOptions = await this.client.getTestFrameworkOptions(testRunnerOption.npm); + const testFrameworkOptions = await this.client.getTestFrameworkOptions(testRunnerOption.pkg ? testRunnerOption.pkg.name : null); if (testFrameworkOptions.length) { this.log.debug(`Found test frameworks for ${testRunnerOption.name}: ${JSON.stringify(testFrameworkOptions)}`); - const none = { + const none: PromptOption = { name: 'None/other', - npm: null + pkg: null }; testFrameworkOptions.push(none); selectedTestFramework = await this.inquirer.promptTestFrameworks(testFrameworkOptions); @@ -179,18 +180,18 @@ export default class StrykerInitializer { return this.inquirer.promptPackageManager([ { name: PackageManager.Npm, - npm: null, + pkg: null }, { name: PackageManager.Yarn, - npm: null, + pkg: null } ]); } - private getSelectedNpmDependencies(selectedOptions: (PromptOption | null)[]) { + private getSelectedNpmDependencies(selectedOptions: (PromptOption | null)[]): PackageInfo[] { return filterEmpty(filterEmpty(selectedOptions) - .map(option => option.npm)); + .map(option => option.pkg)); } /** @@ -202,10 +203,11 @@ export default class StrykerInitializer { return; } + const dependencyArg = dependencies.join(' '); this.out('Installing NPM dependencies...'); const cmd = selectedOption.name === PackageManager.Npm - ? `npm i --save-dev ${dependencies.join(' ')}` - : `yarn add ${dependencies.join(' ')} --dev`; + ? `npm i --save-dev ${dependencyArg}` + : `yarn add ${dependencyArg} --dev`; this.out(cmd); try { child.execSync(cmd, { stdio: [0, 1, 2] }); @@ -214,8 +216,8 @@ export default class StrykerInitializer { } } - private async fetchAdditionalConfig(dependencies: string[]): Promise { - return filterEmpty(await Promise.all(dependencies.map(dep => - this.client.getAdditionalConfig(dep)))); + private async fetchAdditionalConfig(dependencies: PackageInfo[]): Promise { + return filterEmpty(await Promise.all(dependencies + .map(dep => this.client.getAdditionalConfig(dep)))); } } diff --git a/packages/core/src/initializer/index.ts b/packages/core/src/initializer/index.ts index 34c83a012b..fb0bf81645 100644 --- a/packages/core/src/initializer/index.ts +++ b/packages/core/src/initializer/index.ts @@ -10,8 +10,8 @@ import strykerPresets from './StrykerPresets'; import StrykerConfigWriter from './StrykerConfigWriter'; import { StrykerInquirer } from './StrykerInquirer'; -export const BASE_NPM_SEARCH = 'https://api.npms.io'; -export const BASE_NPM_PACKAGE = 'https://registry.npmjs.org'; +const BASE_NPM_SEARCH = 'https://api.npms.io'; +const BASE_NPM_PACKAGE = 'https://www.unpkg.com'; export function initializerFactory(): StrykerInitializer { return rootInjector diff --git a/packages/core/test/unit/initializer/StrykerInitializerSpec.ts b/packages/core/test/unit/initializer/StrykerInitializerSpec.ts index 3021269365..f1fecddbb1 100644 --- a/packages/core/test/unit/initializer/StrykerInitializerSpec.ts +++ b/packages/core/test/unit/initializer/StrykerInitializerSpec.ts @@ -14,6 +14,7 @@ import { testInjector } from '@stryker-mutator/test-helpers'; import { initializerTokens } from '../../../src/initializer'; import { StrykerInquirer } from '../../../src/initializer/StrykerInquirer'; import StrykerConfigWriter from '../../../src/initializer/StrykerConfigWriter'; +import { PackageInfo } from '../../../src/initializer/PackageInfo'; describe(StrykerInitializer.name, () => { let sut: StrykerInitializer; @@ -56,8 +57,8 @@ describe(StrykerInitializer.name, () => { beforeEach(() => { stubTestRunners('@stryker-mutator/awesome-runner', 'stryker-hyper-runner', 'stryker-ghost-runner'); stubTestFrameworks( - { name: '@stryker-mutator/awesome-framework', keywords: ['@stryker-mutator/awesome-runner'] }, - { name: 'stryker-hyper-framework', keywords: ['stryker-hyper-runner'] }); + { name: '@stryker-mutator/awesome-framework', keywords: ['@stryker-mutator/awesome-runner'], version: '1.1.1' }, + { name: 'stryker-hyper-framework', keywords: ['stryker-hyper-runner'], version: '1.1.1' }); stubMutators('@stryker-mutator/typescript', '@stryker-mutator/javascript-mutator'); stubTranspilers('@stryker-mutator/typescript', '@stryker-mutator/webpack'); stubReporters('stryker-dimension-reporter', '@stryker-mutator/mars-reporter'); @@ -311,7 +312,7 @@ describe(StrykerInitializer.name, () => { describe('initialize() when no internet', () => { it('should log error and continue when fetching test runners', async () => { - restClientSearch.get.withArgs('/v2/search?q=keywords:stryker-mutator-plugin+test-runner-plugin').rejects(); + restClientSearch.get.withArgs('/v2/search?q=keywords:@stryker-mutator/test-runner-plugin').rejects(); stubMutators('stryker-javascript'); stubTranspilers('stryker-webpack'); stubReporters(); @@ -324,14 +325,14 @@ describe(StrykerInitializer.name, () => { await sut.initialize(); - expect(testInjector.logger.error).to.have.been.calledWith('Unable to reach https://api.npms.io (for query /v2/search?q=keywords:stryker-mutator-plugin+test-runner-plugin). Please check your internet connection.'); + expect(testInjector.logger.error).to.have.been.calledWith('Unable to reach npms.io (for query /v2/search?q=keywords:@stryker-mutator/test-runner-plugin). Please check your internet connection.'); expect(out).to.have.been.calledWith('Unable to select a test runner. You will need to configure it manually.'); expect(fsAsPromised.writeFile).to.have.been.called; }); it('should log error and continue when fetching test frameworks', async () => { stubTestRunners('stryker-awesome-runner'); - restClientSearch.get.withArgs('/v2/search?q=keywords:stryker-mutator-plugin+test-framework-plugin').rejects(); + restClientSearch.get.withArgs('/v2/search?q=keywords:@stryker-mutator/test-framework-plugin').rejects(); inquirerPrompt.resolves({ packageManager: 'npm', reporters: ['clear-text'], @@ -345,15 +346,15 @@ describe(StrykerInitializer.name, () => { await sut.initialize(); - expect(testInjector.logger.error).to.have.been.calledWith('Unable to reach https://api.npms.io (for query /v2/search?q=keywords:stryker-mutator-plugin+test-framework-plugin). Please check your internet connection.'); + expect(testInjector.logger.error).to.have.been.calledWith('Unable to reach npms.io (for query /v2/search?q=keywords:@stryker-mutator/test-framework-plugin). Please check your internet connection.'); expect(out).to.have.been.calledWith('No stryker test framework plugin found that is compatible with awesome, downgrading coverageAnalysis to "all"'); expect(fsAsPromised.writeFile).to.have.been.called; }); it('should log error and continue when fetching mutators', async () => { stubTestRunners('stryker-awesome-runner'); - stubTestFrameworks({ name: 'stryker-awesome-framework', keywords: ['stryker-awesome-runner'] }); - restClientSearch.get.withArgs('/v2/search?q=keywords:stryker-mutator-plugin+mutator-plugin').rejects(); + stubTestFrameworks({ name: 'stryker-awesome-framework', keywords: ['stryker-awesome-runner'], version: '1.1.1' }); + restClientSearch.get.withArgs('/v2/search?q=keywords:@stryker-mutator/mutator-plugin').rejects(); stubTranspilers('stryker-webpack'); stubReporters(); inquirerPrompt.resolves({ @@ -366,16 +367,16 @@ describe(StrykerInitializer.name, () => { await sut.initialize(); - expect(testInjector.logger.error).to.have.been.calledWith('Unable to reach https://api.npms.io (for query /v2/search?q=keywords:stryker-mutator-plugin+mutator-plugin). Please check your internet connection.'); + expect(testInjector.logger.error).to.have.been.calledWith('Unable to reach npms.io (for query /v2/search?q=keywords:@stryker-mutator/mutator-plugin). Please check your internet connection.'); expect(out).to.have.been.calledWith('Unable to select a mutator. You will need to configure it manually.'); expect(fsAsPromised.writeFile).to.have.been.called; }); it('should log error and continue when fetching transpilers', async () => { stubTestRunners('stryker-awesome-runner'); - stubTestFrameworks({ name: 'stryker-awesome-framework', keywords: ['stryker-awesome-runner'] }); + stubTestFrameworks({ name: 'stryker-awesome-framework', keywords: ['stryker-awesome-runner'], version: '1.1.1' }); stubMutators('stryker-javascript'); - restClientSearch.get.withArgs('/v2/search?q=keywords:stryker-mutator-plugin+transpiler-plugin').rejects(); + restClientSearch.get.withArgs('/v2/search?q=keywords:@stryker-mutator/transpiler-plugin').rejects(); stubReporters(); inquirerPrompt.resolves({ packageManager: 'npm', @@ -386,17 +387,17 @@ describe(StrykerInitializer.name, () => { await sut.initialize(); - expect(testInjector.logger.error).to.have.been.calledWith('Unable to reach https://api.npms.io (for query /v2/search?q=keywords:stryker-mutator-plugin+transpiler-plugin). Please check your internet connection.'); + expect(testInjector.logger.error).to.have.been.calledWith('Unable to reach npms.io (for query /v2/search?q=keywords:@stryker-mutator/transpiler-plugin). Please check your internet connection.'); expect(out).to.have.been.calledWith('Unable to select transpilers. You will need to configure it manually, if you want to use any.'); expect(fsAsPromised.writeFile).to.have.been.called; }); it('should log error and continue when fetching stryker reporters', async () => { stubTestRunners('stryker-awesome-runner'); - stubTestFrameworks({ name: 'stryker-awesome-framework', keywords: ['stryker-awesome-runner'] }); + stubTestFrameworks({ name: 'stryker-awesome-framework', keywords: ['stryker-awesome-runner'], version: '1.1.1' }); stubMutators('stryker-javascript'); stubTranspilers('stryker-webpack'); - restClientSearch.get.withArgs('/v2/search?q=keywords:stryker-mutator-plugin+reporter-plugin').rejects(); + restClientSearch.get.withArgs('/v2/search?q=keywords:@stryker-mutator/reporter-plugin').rejects(); inquirerPrompt.resolves({ packageManager: 'npm', reporters: ['clear-text'], @@ -407,7 +408,7 @@ describe(StrykerInitializer.name, () => { await sut.initialize(); - expect(testInjector.logger.error).to.have.been.calledWith('Unable to reach https://api.npms.io (for query /v2/search?q=keywords:stryker-mutator-plugin+reporter-plugin). Please check your internet connection.'); + expect(testInjector.logger.error).to.have.been.calledWith('Unable to reach npms.io (for query /v2/search?q=keywords:@stryker-mutator/reporter-plugin). Please check your internet connection.'); expect(fsAsPromised.writeFile).to.have.been.called; }); @@ -441,16 +442,16 @@ describe(StrykerInitializer.name, () => { }); const stubTestRunners = (...testRunners: string[]) => { - restClientSearch.get.withArgs('/v2/search?q=keywords:stryker-mutator-plugin+test-runner-plugin').resolves({ + restClientSearch.get.withArgs('/v2/search?q=keywords:@stryker-mutator/test-runner-plugin').resolves({ result: { - results: testRunners.map(testRunner => ({ package: { name: testRunner } })) + results: testRunners.map(testRunner => ({ package: { name: testRunner, version: '1.1.1' } })) }, statusCode: 200 }); }; - const stubTestFrameworks = (...testFrameworks: { name: string; keywords: string[]; }[]) => { - restClientSearch.get.withArgs('/v2/search?q=keywords:stryker-mutator-plugin+test-framework-plugin').resolves({ + const stubTestFrameworks = (...testFrameworks: PackageInfo[]) => { + restClientSearch.get.withArgs('/v2/search?q=keywords:@stryker-mutator/test-framework-plugin').resolves({ result: { results: testFrameworks.map(testFramework => ({ package: testFramework })) }, @@ -459,41 +460,43 @@ describe(StrykerInitializer.name, () => { }; const stubMutators = (...mutators: string[]) => { - restClientSearch.get.withArgs('/v2/search?q=keywords:stryker-mutator-plugin+mutator-plugin').resolves({ + restClientSearch.get.withArgs('/v2/search?q=keywords:@stryker-mutator/mutator-plugin').resolves({ result: { - results: mutators.map(mutator => ({ package: { name: mutator } })) + results: mutators.map(mutator => ({ package: { name: mutator, version: '1.1.1' } })) }, statusCode: 200 }); }; const stubTranspilers = (...transpilers: string[]) => { - restClientSearch.get.withArgs('/v2/search?q=keywords:stryker-mutator-plugin+transpiler-plugin').resolves({ + restClientSearch.get.withArgs('/v2/search?q=keywords:@stryker-mutator/transpiler-plugin').resolves({ result: { - results: transpilers.map(transpiler => ({ package: { name: transpiler } })) + results: transpilers.map(transpiler => ({ package: { name: transpiler, version: '1.1.1' } })) }, statusCode: 200 }); }; const stubReporters = (...reporters: string[]) => { - restClientSearch.get.withArgs('/v2/search?q=keywords:stryker-mutator-plugin+reporter-plugin').resolves({ + restClientSearch.get.withArgs('/v2/search?q=keywords:@stryker-mutator/reporter-plugin').resolves({ result: { - results: reporters.map(reporter => ({ package: { name: reporter } })) + results: reporters.map(reporter => ({ package: { name: reporter, version: '1.1.1' } })) }, statusCode: 200 }); }; const stubPackageClient = (packageConfigPerPackage: { [packageName: string]: object | null; }) => { Object.keys(packageConfigPerPackage).forEach(packageName => { - const pkgConfig: { name: string; initStrykerConfig?: object; } = { - name: packageName + const pkgConfig: PackageInfo & { initStrykerConfig?: object } = { + keywords: [], + name: packageName, + version: '1.1.1', }; const cfg = packageConfigPerPackage[packageName]; if (cfg) { pkgConfig.initStrykerConfig = cfg; } - restClientPackage.get.withArgs(`/${packageName}/latest`).resolves({ + restClientPackage.get.withArgs(`/${packageName}@1.1.1/package.json`).resolves({ result: pkgConfig, statusCode: 200 }); diff --git a/packages/html-reporter/package.json b/packages/html-reporter/package.json index b0d14cf604..597a49fe3b 100644 --- a/packages/html-reporter/package.json +++ b/packages/html-reporter/package.json @@ -21,8 +21,7 @@ }, "keywords": [ "stryker", - "stryker-mutator-plugin", - "reporter-plugin", + "@stryker-mutator/reporter-plugin", "html", "report", "mutation", diff --git a/packages/jasmine-framework/package.json b/packages/jasmine-framework/package.json index 1cfa78cd31..71afb0b6c4 100644 --- a/packages/jasmine-framework/package.json +++ b/packages/jasmine-framework/package.json @@ -16,8 +16,7 @@ "keywords": [ "stryker", "jasmine", - "stryker-mutator-plugin", - "test-framework-plugin", + "@stryker-mutator/test-framework-plugin", "@stryker-mutator/karma-runner", "@stryker-mutator/jasmine-runner" ], diff --git a/packages/jasmine-runner/package.json b/packages/jasmine-runner/package.json index a9623e6ce3..3453d7f8de 100644 --- a/packages/jasmine-runner/package.json +++ b/packages/jasmine-runner/package.json @@ -25,8 +25,7 @@ "keywords": [ "stryker", "jasmine", - "stryker-mutator-plugin", - "test-runner-plugin" + "@stryker-mutator/test-runner-plugin" ], "publishConfig": { "access": "public" diff --git a/packages/javascript-mutator/package.json b/packages/javascript-mutator/package.json index d660a6517d..6d8fbb8bac 100644 --- a/packages/javascript-mutator/package.json +++ b/packages/javascript-mutator/package.json @@ -18,9 +18,8 @@ }, "keywords": [ "stryker", - "stryker-mutator-plugin", "javascript", - "mutator-plugin" + "@stryker-mutator/mutator-plugin" ], "publishConfig": { "access": "public" diff --git a/packages/jest-runner/package.json b/packages/jest-runner/package.json index da9bc9493b..2672dbdb7c 100644 --- a/packages/jest-runner/package.json +++ b/packages/jest-runner/package.json @@ -18,9 +18,8 @@ }, "keywords": [ "stryker", - "stryker-mutator-plugin", "jest", - "test-runner-plugin" + "@stryker-mutator/test-runner-plugin" ], "publishConfig": { "access": "public" diff --git a/packages/karma-runner/package.json b/packages/karma-runner/package.json index 83c83d79d5..cd1d961984 100644 --- a/packages/karma-runner/package.json +++ b/packages/karma-runner/package.json @@ -18,9 +18,8 @@ }, "keywords": [ "stryker", - "stryker-mutator-plugin", "karma", - "test-runner-plugin" + "@stryker-mutator/test-runner-plugin" ], "publishConfig": { "access": "public" diff --git a/packages/mocha-framework/package.json b/packages/mocha-framework/package.json index eb35f88da2..8d9234b729 100644 --- a/packages/mocha-framework/package.json +++ b/packages/mocha-framework/package.json @@ -18,10 +18,9 @@ }, "keywords": [ "stryker", - "stryker-mutator-plugin", "mocha", - "test-framework-plugin", - "stryker-mocha-runner", + "@stryker-mutator/test-framework-plugin", + "@stryker-mutator/mocha-runner", "@stryker-mutator/karma-runner" ], "publishConfig": { diff --git a/packages/mocha-runner/package.json b/packages/mocha-runner/package.json index 93a0c7b49f..d34546c6b0 100644 --- a/packages/mocha-runner/package.json +++ b/packages/mocha-runner/package.json @@ -18,9 +18,8 @@ }, "keywords": [ "stryker", - "stryker-mutator-plugin", "mocha", - "test-runner-plugin" + "@stryker-mutator/test-runner-plugin" ], "publishConfig": { "access": "public" diff --git a/packages/typescript/package.json b/packages/typescript/package.json index bb7e2b3a31..2253ede4a2 100644 --- a/packages/typescript/package.json +++ b/packages/typescript/package.json @@ -18,10 +18,9 @@ }, "keywords": [ "stryker", - "stryker-mutator-plugin", "typescript", - "transpiler-plugin", - "mutator-plugin" + "@stryker-mutator/transpiler-plugin", + "@stryker-mutator/mutator-plugin" ], "publishConfig": { "access": "public" diff --git a/packages/vue-mutator/package.json b/packages/vue-mutator/package.json index 028bfdf7ba..b998346244 100644 --- a/packages/vue-mutator/package.json +++ b/packages/vue-mutator/package.json @@ -17,9 +17,8 @@ }, "keywords": [ "stryker", - "stryker-mutator-plugin", "vuejs", - "mutator-plugin" + "@stryker-mutator/mutator-plugin" ], "publishConfig": { "access": "public" diff --git a/packages/wct-runner/package.json b/packages/wct-runner/package.json index d6078d0cb5..00affd599b 100644 --- a/packages/wct-runner/package.json +++ b/packages/wct-runner/package.json @@ -17,8 +17,7 @@ "stryker", "web-component-tester", "wct", - "stryker-mutator-plugin", - "test-runner-plugin" + "@stryker-mutator/test-runner-plugin" ], "publishConfig": { "access": "public" diff --git a/packages/webpack-transpiler/package.json b/packages/webpack-transpiler/package.json index 2e34521e6d..10cfb6f867 100644 --- a/packages/webpack-transpiler/package.json +++ b/packages/webpack-transpiler/package.json @@ -17,10 +17,9 @@ }, "keywords": [ "stryker", - "stryker-mutator-plugin", "typescript", "webpack", - "transpiler-plugin" + "@stryker-mutator/transpiler-plugin" ], "publishConfig": { "access": "public"