@form8ion/javascript 7.1.0 → 7.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1167,6 +1167,7 @@ async function scaffoldProjectTypePlugin ({
1167
1167
  packageName,
1168
1168
  packageManager,
1169
1169
  scope,
1170
+ dialect,
1170
1171
  tests,
1171
1172
  decisions,
1172
1173
  plugins
@@ -1180,7 +1181,7 @@ async function scaffoldProjectTypePlugin ({
1180
1181
  return javascriptCore.scaffoldChoice(
1181
1182
  pluginsForProjectType,
1182
1183
  chosenType,
1183
- {projectRoot, projectName, packageName, packageManager, scope, tests}
1184
+ {projectRoot, projectName, packageName, packageManager, scope, tests, dialect}
1184
1185
  );
1185
1186
  }
1186
1187
 
@@ -1457,7 +1458,7 @@ async function scaffolder (options) {
1457
1458
  pathWithinParent
1458
1459
  })
1459
1460
  ]);
1460
- const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([
1461
+ const [nodeVersion, npmResults, dialectResults, codeStyleResults, projectTypePluginResults] = await Promise.all([
1461
1462
  scaffoldNodeVersion({projectRoot, nodeVersionCategory}),
1462
1463
  scaffoldNpmConfig({projectType, projectRoot, registries}),
1463
1464
  scaffoldDialect({
@@ -1477,6 +1478,22 @@ async function scaffolder (options) {
1477
1478
  configureLinting,
1478
1479
  buildDirectory: projectTypeResults.buildDirectory,
1479
1480
  eslint: verificationResults.eslint
1481
+ }),
1482
+ scaffoldProjectTypePlugin({
1483
+ projectRoot,
1484
+ projectType,
1485
+ projectName,
1486
+ packageName,
1487
+ packageManager,
1488
+ scope,
1489
+ dialect,
1490
+ tests,
1491
+ decisions,
1492
+ plugins: {
1493
+ [javascriptCore.projectTypes.PACKAGE]: packageTypes,
1494
+ [javascriptCore.projectTypes.APPLICATION]: applicationTypes,
1495
+ [javascriptCore.projectTypes.MONOREPO]: monorepoTypes
1496
+ }
1480
1497
  })
1481
1498
  ]);
1482
1499
  const mergedContributions = deepmerge__default["default"].all([
@@ -1487,23 +1504,9 @@ async function scaffolder (options) {
1487
1504
  {buildDirectory: `./${projectTypeResults.buildDirectory}`, projectRoot, projectName, nodeVersion}
1488
1505
  ),
1489
1506
  javascriptCore.scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),
1490
- commitConventionPlugin.scaffold({projectRoot, projectType, configs, pathWithinParent}),
1491
- scaffoldProjectTypePlugin({
1492
- projectRoot,
1493
- projectType,
1494
- projectName,
1495
- packageName,
1496
- packageManager,
1497
- scope,
1498
- tests,
1499
- decisions,
1500
- plugins: {
1501
- [javascriptCore.projectTypes.PACKAGE]: packageTypes,
1502
- [javascriptCore.projectTypes.APPLICATION]: applicationTypes,
1503
- [javascriptCore.projectTypes.MONOREPO]: monorepoTypes
1504
- }
1505
- })
1507
+ commitConventionPlugin.scaffold({projectRoot, projectType, configs, pathWithinParent})
1506
1508
  ])),
1509
+ projectTypePluginResults,
1507
1510
  projectTypeResults,
1508
1511
  verificationResults,
1509
1512
  codeStyleResults,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/prompts/question-names.js","../src/coverage/c8/scaffolder.js","../src/coverage/scaffolder.js","../src/coverage/nyc/tester.js","../src/dependencies/remover.js","../src/coverage/nyc/remover.js","../src/coverage/lifter.js","../src/coverage/c8/tester.js","../src/coverage/tester.js","../src/testing/options-schemas.js","../src/testing/prompt.js","../src/testing/unit.js","../src/lift/enhancers/engines.js","../src/package/scripts/scaffolder.js","../src/package/scripts/test-script-updater.js","../src/package/scripts/lifter.js","../src/package/details.js","../src/package/scaffolder.js","../src/package/lifter.js","../src/lift/package-manager.js","../src/lift/lift.js","../src/scaffolder/project-type/options-schemas.js","../src/options-validator.js","../src/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/dialects/babel/scaffolder.js","../src/dialects/typescript/scaffolder.js","../src/dialects/scaffolder.js","../src/config/npm.js","../src/documentation/generation-command.js","../src/documentation/scaffolder.js","../src/node-version/tasks.js","../src/node-version/scaffolder.js","../src/badges.js","../src/vcs-ignore.js","../src/package-name.js","../src/scaffolder/project-type/package/documentation.js","../src/scaffolder/project-type/package/badges.js","../src/scaffolder/project-type/package/prompt.js","../src/template-path.js","../src/scaffolder/project-type/package/build-details.js","../src/scaffolder/project-type/package/scaffolder.js","../src/scaffolder/project-type/application.js","../src/scaffolder/project-type/monorepo.js","../src/scaffolder/project-type/cli.js","../src/scaffolder/project-type/scaffolder.js","../src/project-type-plugin/prompt.js","../src/project-type-plugin/scaffolder.js","../src/scaffolder/verification/testing/scaffolder.js","../src/scaffolder/verification/linting/ban-sensitive-files.js","../src/scaffolder/verification/linting/lockfile/allowed-hosts-builder.js","../src/scaffolder/verification/linting/lockfile/scaffolder.js","../src/scaffolder/verification/linting/scaffolder.js","../src/scaffolder/verification/verifier.js","../src/code-style/eslint.js","../src/code-style/remark.js","../src/code-style/scaffolder.js","../src/scaffolder/scaffolder.js","../src/test.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n UNIT_TEST_FRAMEWORK: 'unitTestFramework',\n NODE_VERSION_CATEGORY: 'nodeVersionCategory',\n PACKAGE_MANAGER: 'packageManager',\n PACKAGE_BUNDLER: 'packageBundler',\n PROJECT_TYPE: 'projectType',\n PROJECT_TYPE_CHOICE: 'projectTypeChoice',\n SHOULD_BE_SCOPED: 'shouldBeScoped',\n SCOPE: 'scope',\n AUTHOR_NAME: 'authorName',\n AUTHOR_EMAIL: 'authorEmail',\n AUTHOR_URL: 'authorUrl',\n HOST: 'host',\n CONFIGURE_LINTING: 'configureLint',\n DIALECT: 'dialect'\n};\n","import {promises} from 'fs';\n\nexport default async function ({projectRoot}) {\n await promises.writeFile(\n `${projectRoot}/.c8rc.json`,\n JSON.stringify({\n reporter: ['lcov', 'text-summary', 'html'],\n exclude: ['src/**/*-test.js', 'test/', 'thirdparty-wrappers/', 'vendor/']\n })\n );\n\n return {\n devDependencies: ['cross-env', 'c8'],\n vcsIgnore: {files: [], directories: ['/coverage/']},\n eslint: {ignore: {directories: ['/coverage/']}}\n };\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCodecov} from '@form8ion/codecov';\nimport {scaffold as scaffoldC8} from './c8';\n\nexport default async function ({projectRoot, vcs, visibility, pathWithinParent}) {\n return deepmerge(await scaffoldC8({projectRoot}), await scaffoldCodecov({vcs, visibility, pathWithinParent}));\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.nycrc`);\n}\n","import execa from '../../thirdparty-wrappers/execa';\n\nexport default async function ({packageManager, dependencies}) {\n await execa(packageManager, ['remove', ...dependencies]);\n}\n","import {promises as fs} from 'fs';\nimport removeDependencies from '../../dependencies/remover';\n\nexport default async function ({projectRoot, packageManager}) {\n await Promise.all([\n fs.unlink(`${projectRoot}/.nycrc`),\n fs.rm(`${projectRoot}/.nyc_output`, {recursive: true, force: true}),\n removeDependencies({packageManager, dependencies: ['nyc', '@istanbuljs/nyc-config-babel', 'babel-plugin-istanbul']})\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {lift as liftCodecov} from '@form8ion/codecov';\n\nimport {scaffold as scaffoldC8} from './c8';\nimport {test as nycIsConfigured, remove as removeNyc} from './nyc';\n\nexport async function lift({projectRoot, packageManager}) {\n const codecovResults = await liftCodecov({projectRoot, packageManager});\n\n if (await nycIsConfigured({projectRoot})) {\n const [c8Results] = await Promise.all([\n scaffoldC8({projectRoot}),\n removeNyc({projectRoot, packageManager})\n ]);\n\n return deepmerge.all([\n c8Results,\n codecovResults,\n {\n scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'},\n nextSteps: [{\n summary: 'Remove use of `@istanbuljs/nyc-config-babel` from your babel config, if present,'\n + ' after the migration away from `nyc`'\n }]\n }\n ]);\n }\n\n return {};\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.c8rc.json`);\n}\n","import c8IsConfigured from './c8/tester';\nimport nycIsConfigured from './nyc/tester';\n\nexport default async function ({projectRoot}) {\n const [c8Exists, nycExists] = await Promise.all([c8IsConfigured({projectRoot}), nycIsConfigured({projectRoot})]);\n\n return c8Exists || nycExists;\n}\n","import joi from 'joi';\n\nexport const unitTestFrameworksSchema = joi.object().required().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n}));\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({frameworks, decisions}) {\n if (!Object.keys(frameworks).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.UNIT_TEST_FRAMEWORK,\n type: 'list',\n message: 'Which type of unit testing framework should be used?',\n choices: [...Object.keys(frameworks), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.UNIT_TEST_FRAMEWORK];\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldFrameworkChoice, validateOptions} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCoverage} from '../coverage';\nimport {unitTestFrameworksSchema} from './options-schemas';\nimport chooseFramework from './prompt';\n\nexport default async function ({projectRoot, frameworks, decisions, visibility, vcs, pathWithinParent, dialect}) {\n const validatedFrameworks = validateOptions(unitTestFrameworksSchema, frameworks);\n const [framework, coverage] = await Promise.all([\n chooseFramework({frameworks: validatedFrameworks, decisions})\n .then(chosenFramework => scaffoldFrameworkChoice(validatedFrameworks, chosenFramework, {projectRoot, dialect})),\n scaffoldCoverage({projectRoot, vcs, visibility, pathWithinParent})\n ]);\n\n return deepmerge.all([\n {scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'}},\n framework,\n coverage\n ]);\n}\n","import {promises as fs} from 'fs';\n\nexport async function test({projectRoot}) {\n const {engines} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf8'));\n\n return !!engines?.node;\n}\n\nexport async function lift({projectRoot}) {\n const {name} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf8'));\n\n return {\n devDependencies: ['ls-engines'],\n scripts: {'lint:engines': 'ls-engines'},\n badges: {consumer: {node: {img: `https://img.shields.io/node/v/${name}?logo=node.js`, text: 'node'}}}\n };\n}\n","export default function () {\n return {};\n}\n","function projectWillBeTested(scripts) {\n return Object.keys(scripts).find(scriptName => scriptName.startsWith('test:'));\n}\n\nfunction projectShouldBeBuiltForVerification(scripts) {\n return 'run-s build' === scripts['pregenerate:md'];\n}\n\nexport default function (scripts) {\n return {\n ...scripts,\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\n","import updateTestScript from './test-script-updater';\n\nexport default function ({existingScripts, scripts}) {\n return updateTestScript({...existingScripts, ...scripts});\n}\n","import {dialects, projectTypes} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldScripts} from './scripts';\n\nfunction defineVcsHostDetails(vcs, packageType, packageName, pathWithinParent) {\n return vcs && 'github' === vcs.host && {\n repository: pathWithinParent\n ? {\n type: 'git',\n url: `https://github.com/${vcs.owner}/${vcs.name}.git`,\n directory: pathWithinParent\n }\n : `${vcs.owner}/${vcs.name}`,\n bugs: `https://github.com/${vcs.owner}/${vcs.name}/issues`,\n homepage: (projectTypes.PACKAGE === packageType)\n ? `https://npm.im/${packageName}`\n : `https://github.com/${vcs.owner}/${vcs.name}#readme`\n };\n}\n\nexport default function ({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n ...defineVcsHostDetails(vcs, projectType, packageName, pathWithinParent),\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: scaffoldScripts()\n };\n}\n","import {info} from '@travi/cli-messages';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nimport buildPackageDetails from './details';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n}) {\n info('Configuring package.json');\n\n const packageData = await buildPackageDetails({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n });\n\n await writePackageJson({projectRoot, config: packageData});\n\n return {homepage: packageData.homepage};\n}\n","import {promises as fs} from 'fs';\nimport {error, info} from '@travi/cli-messages';\nimport {\n DEV_DEPENDENCY_TYPE,\n PROD_DEPENDENCY_TYPE,\n installDependencies,\n writePackageJson\n} from '@form8ion/javascript-core';\n\nimport {lift as liftScripts} from './scripts';\n\nexport default async function ({\n projectRoot,\n scripts,\n tags,\n dependencies,\n devDependencies,\n packageManager\n}) {\n if (scripts || tags) {\n info('Updating `package.json`', {level: 'secondary'});\n\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageJsonContents = JSON.parse(await fs.readFile(pathToPackageJson, 'utf8'));\n\n await writePackageJson({\n projectRoot,\n config: {\n ...existingPackageJsonContents,\n scripts: liftScripts({existingScripts: existingPackageJsonContents.scripts, scripts}),\n ...tags && {\n keywords: existingPackageJsonContents.keywords ? [...existingPackageJsonContents.keywords, ...tags] : tags\n }\n }\n });\n }\n\n info('Installing dependencies');\n\n try {\n await installDependencies(dependencies || [], PROD_DEPENDENCY_TYPE, projectRoot, packageManager);\n await installDependencies([...devDependencies || []], DEV_DEPENDENCY_TYPE, projectRoot, packageManager);\n } catch (e) {\n error('Failed to install dependencies');\n }\n}\n","import {fileExists} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nexport default async function ({projectRoot, packageManager}) {\n if (packageManager) return packageManager;\n\n if (await fileExists(`${projectRoot}/package-lock.json`)) {\n return packageManagers.NPM;\n }\n\n if (await fileExists(`${projectRoot}/yarn.lock`)) {\n return packageManagers.YARN;\n }\n\n throw new Error('Package-manager could not be determined');\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftEslint} from '@form8ion/eslint';\nimport * as huskyPlugin from '@form8ion/husky';\nimport * as commitConventionPlugin from '@form8ion/commit-convention';\n\nimport * as coveragePlugin from '../coverage';\nimport * as enginesEnhancer from './enhancers/engines';\nimport {lift as liftPackage} from '../package';\nimport resolvePackageManager from './package-manager';\n\nexport default async function ({projectRoot, vcs, results}) {\n info('Lifting JavaScript-specific details');\n\n const {scripts, tags, eslintConfigs, eslint, dependencies, devDependencies, packageManager: manager} = results;\n\n const packageManager = await resolvePackageManager({projectRoot, packageManager: manager});\n\n const eslintResults = await liftEslint({projectRoot, configs: [...eslintConfigs || [], ...eslint?.configs || []]});\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: [huskyPlugin, enginesEnhancer, coveragePlugin, commitConventionPlugin],\n options: {packageManager, projectRoot, vcs}\n });\n\n await liftPackage(\n deepmerge.all([\n {projectRoot, scripts, tags, dependencies, devDependencies, packageManager},\n enhancerResults,\n eslintResults\n ])\n );\n\n return enhancerResults;\n}\n","import joi from 'joi';\n\nexport const packageBundlersSchema = joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n})).default({});\n","import joi from 'joi';\nimport hoek from '@hapi/hoek';\nimport {unitTestFrameworksSchema} from './testing/options-schemas';\nimport {packageBundlersSchema} from './scaffolder/project-type/options-schemas';\n\nexport function validate(options) {\n const schema = joi.object().required()\n .keys({\n projectRoot: joi.string().required(),\n projectName: joi.string().regex(/^@\\w*\\//, {invert: true}).required(),\n visibility: joi.string().valid('Public', 'Private').required(),\n license: joi.string().required(),\n description: joi.string(),\n pathWithinParent: joi.string()\n })\n .keys({\n vcs: joi.object({\n host: joi.string().required(),\n owner: joi.string().required(),\n name: joi.string().required()\n })\n })\n .keys({\n configs: joi.object({\n eslint: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n typescript: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n prettier: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n commitlint: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n babelPreset: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n remark: joi.string()\n }).default({})\n })\n .keys({\n overrides: joi.object({\n npmAccount: joi.string(),\n author: joi.object({\n name: joi.string().required(),\n email: joi.string().email(),\n url: joi.string().uri()\n })\n }).default({})\n })\n .keys({\n ciServices: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n public: joi.boolean(),\n private: joi.boolean()\n })).default({})\n })\n .keys({\n hosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n projectTypes: joi.array().items(joi.string().valid('static', 'node')).default([])\n })).default({})\n })\n .keys({\n applicationTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n packageTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n monorepoTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n }))\n })\n .keys({\n unitTestFrameworks: unitTestFrameworksSchema,\n packageBundlers: packageBundlersSchema\n })\n .keys({\n decisions: joi.object()\n })\n .keys({registries: joi.object().pattern(joi.string(), joi.string().uri()).default({})});\n const {error, value} = schema.validate(options);\n\n hoek.assert(!error, error);\n\n return value;\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nexport default function ({babelPreset, typescript}) {\n return [\n {name: 'Common JS (no transpilation)', value: dialects.COMMON_JS, short: 'cjs'},\n ...babelPreset ? [{name: 'Modern JavaScript (transpiled)', value: dialects.BABEL, short: 'modern'}] : [],\n {name: 'ESM-only (no transpilation)', value: dialects.ESM, short: 'esm'},\n ...typescript ? [{name: 'TypeScript', value: dialects.TYPESCRIPT, short: 'ts'}] : []\n ];\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport {questionNames as commonQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames} from './question-names';\n\nfunction projectIsPackage(answers) {\n return projectTypes.PACKAGE === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction projectIsCLI(answers) {\n return projectTypes.CLI === answers[questionNames.PROJECT_TYPE];\n}\n\nexport function projectIsApplication(answers) {\n return projectTypes.APPLICATION === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction packageShouldBeScoped(visibility, answers) {\n return 'Private' === visibility || answers[questionNames.SHOULD_BE_SCOPED];\n}\n\nfunction willBePublishedToNpm(answers) {\n return projectIsPackage(answers) || projectIsCLI(answers);\n}\n\nexport function shouldBeScopedPromptShouldBePresented(answers) {\n return willBePublishedToNpm(answers);\n}\n\nexport function scopePromptShouldBePresentedFactory(visibility) {\n return answers => willBePublishedToNpm(answers) && packageShouldBeScoped(visibility, answers);\n}\n\nexport function lintingPromptShouldBePresented({\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested\n}) {\n return !unitTested && !integrationTested;\n}\n","export function scope(visibility) {\n return input => {\n if (!input && 'Private' === visibility) {\n return 'Private packages must be scoped (https://docs.npmjs.com/private-modules/intro#setting-up-your-package)';\n }\n\n return true;\n };\n}\n","import {packageManagers, projectTypes} from '@form8ion/javascript-core';\nimport {prompt as promptWithInquirer, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames as commonQuestionNames, questions as commonQuestions} from '@travi/language-scaffolder-prompts';\nimport {warn} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\nimport npmConfFactory from '../../thirdparty-wrappers/npm-conf';\nimport buildDialectChoices from '../dialects/prompt-choices';\nimport {\n lintingPromptShouldBePresented,\n projectIsApplication,\n scopePromptShouldBePresentedFactory,\n shouldBeScopedPromptShouldBePresented\n} from './conditionals';\nimport {questionNames} from './question-names';\nimport {scope as validateScope} from './validators';\n\nfunction authorQuestions({name, email, url}) {\n return [\n {\n name: questionNames.AUTHOR_NAME,\n message: 'What is the author\\'s name?',\n default: name\n },\n {\n name: questionNames.AUTHOR_EMAIL,\n message: 'What is the author\\'s email?',\n default: email\n },\n {\n name: questionNames.AUTHOR_URL,\n message: 'What is the author\\'s website url?',\n default: url\n }\n ];\n}\n\nexport async function prompt(\n {npmAccount, author},\n ciServices,\n hosts,\n visibility,\n vcs,\n decisions,\n configs,\n pathWithinParent\n) {\n const npmConf = npmConfFactory();\n\n let maybeLoggedInNpmUsername;\n try {\n maybeLoggedInNpmUsername = (await execa('npm', ['whoami'])).stdout;\n } catch (failedExecutionResult) {\n if (!decisions[questionNames.SCOPE]) {\n warn('No logged in user found with `npm whoami`. Login with `npm login` '\n + 'to use your npm account name as the package scope default.');\n }\n }\n\n const {\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested,\n [questionNames.PROJECT_TYPE]: projectType,\n [commonQuestionNames.CI_SERVICE]: ci,\n [questionNames.HOST]: chosenHost,\n [questionNames.SCOPE]: scope,\n [questionNames.NODE_VERSION_CATEGORY]: nodeVersionCategory,\n [questionNames.AUTHOR_NAME]: authorName,\n [questionNames.AUTHOR_EMAIL]: authorEmail,\n [questionNames.AUTHOR_URL]: authorUrl,\n [questionNames.CONFIGURE_LINTING]: configureLinting,\n [questionNames.PACKAGE_MANAGER]: packageManager,\n [questionNames.DIALECT]: dialect\n } = await promptWithInquirer([\n {\n name: questionNames.DIALECT,\n message: 'Which JavaScript dialect should this project follow?',\n type: 'list',\n choices: buildDialectChoices(configs),\n default: 'babel'\n },\n ...pathWithinParent ? [] : [{\n name: questionNames.NODE_VERSION_CATEGORY,\n message: 'What node.js version should be used?',\n type: 'list',\n choices: ['LTS', 'Latest'],\n default: 'LTS'\n }],\n {\n name: questionNames.PACKAGE_MANAGER,\n message: 'Which package manager will be used with this project?',\n type: 'list',\n choices: Object.values(packageManagers),\n default: packageManagers.NPM\n },\n {\n name: questionNames.PROJECT_TYPE,\n message: 'What type of JavaScript project is this?',\n type: 'list',\n choices: [...Object.values(projectTypes), new Separator(), 'Other'],\n default: projectTypes.PACKAGE\n },\n ...'Private' === visibility ? [] : [{\n name: questionNames.SHOULD_BE_SCOPED,\n message: 'Should this package be scoped?',\n type: 'confirm',\n when: shouldBeScopedPromptShouldBePresented,\n default: true\n }],\n {\n name: questionNames.SCOPE,\n message: 'What is the scope?',\n when: scopePromptShouldBePresentedFactory(visibility),\n validate: validateScope(visibility),\n default: npmAccount || maybeLoggedInNpmUsername\n },\n ...authorQuestions(author || {\n name: npmConf.get('init.author.name'),\n email: npmConf.get('init.author.email'),\n url: npmConf.get('init.author.url')\n }),\n ...commonQuestions(({vcs, ciServices, visibility, pathWithinParent})),\n {\n name: questionNames.CONFIGURE_LINTING,\n message: 'Will there be source code that should be linted?',\n type: 'confirm',\n when: lintingPromptShouldBePresented\n },\n {\n name: questionNames.HOST,\n type: 'list',\n message: 'Where will the application be hosted?',\n when: projectIsApplication,\n choices: [...Object.keys(hosts), new Separator(), 'Other']\n }\n ], decisions);\n\n return {\n tests: {unit: unitTested, integration: integrationTested},\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author: {name: authorName, email: authorEmail, url: authorUrl},\n configureLinting: false !== configureLinting,\n packageManager,\n dialect\n };\n}\n","import {write} from '@form8ion/config-file';\nimport {fileTypes} from '@form8ion/core';\n\nexport default async function ({projectRoot, preset, buildDirectory}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await write({\n path: projectRoot,\n name: 'babel',\n format: fileTypes.JSON,\n config: {presets: [preset.name], ignore: [`./${buildDirectory}/`]}\n });\n\n return {\n devDependencies: ['@babel/register', preset.packageName],\n eslint: {}\n };\n}\n","import {promises as fs} from 'fs';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectType, projectRoot, testFilenamePattern}) {\n const eslintConfigs = ['typescript'];\n const shareableTsConfigPackage = `${config.scope}/tsconfig`;\n\n await fs.writeFile(\n `${projectRoot}/tsconfig.json`,\n JSON.stringify({\n $schema: 'https://json.schemastore.org/tsconfig',\n extends: shareableTsConfigPackage,\n compilerOptions: {\n rootDir: 'src',\n ...projectTypes.PACKAGE === projectType && {\n outDir: 'lib',\n declaration: true\n }\n },\n include: ['src/**/*.ts'],\n ...testFilenamePattern && {exclude: [testFilenamePattern]}\n })\n );\n\n return {\n eslint: {configs: eslintConfigs},\n eslintConfigs,\n devDependencies: ['typescript', shareableTsConfigPackage],\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldBabel} from './babel';\nimport {scaffold as scaffoldTypescript} from './typescript';\n\nexport default function ({dialect, projectType, projectRoot, configs, buildDirectory, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot, buildDirectory});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n default:\n return {};\n }\n}\n","import {promises as fs} from 'fs';\nimport {stringify} from 'ini';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nfunction projectWillNotBeConsumed(projectType) {\n return projectTypes.APPLICATION === projectType || projectTypes.CLI === projectType;\n}\n\nexport default async function ({\n projectRoot,\n projectType,\n registries\n}) {\n await fs.writeFile(\n `${projectRoot}/.npmrc`,\n stringify({\n 'update-notifier': false,\n ...projectWillNotBeConsumed(projectType) && {'save-exact': true},\n ...Object.fromEntries(Object.entries(registries)\n .filter(([scope]) => 'publish' !== scope)\n .map(([scope, url]) => {\n if ('registry' === scope) return ['registry', url];\n\n return [`@${scope}:registry`, url];\n }))\n })\n );\n\n return {scripts: {'lint:peer': 'npm ls >/dev/null'}};\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nexport default function (packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm run generate:md';\n if (packageManagers.YARN === packageManager) return 'yarn generate:md';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n","import buildGenerationCommand from './generation-command';\n\nexport default function ({projectTypeResults, packageManager}) {\n return {\n toc: `Run \\`${buildGenerationCommand(packageManager)}\\` to generate a table of contents`,\n ...projectTypeResults.documentation,\n contributing: `### Dependencies\n\n\\`\\`\\`sh\n$ nvm install\n$ ${packageManager} install\n\\`\\`\\`\n\n### Verification\n\n\\`\\`\\`sh\n$ ${packageManager} test\n\\`\\`\\``\n };\n}\n","import {info} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\n\nexport async function determineLatestVersionOf(nodeVersionCategory) {\n info('Determining version of node', {level: 'secondary'});\n\n const {stdout: nvmLsOutput} = await execa(\n `. ~/.nvm/nvm.sh && nvm ls-remote${('LTS' === nodeVersionCategory) ? ' --lts' : ''}`,\n {shell: true}\n );\n\n const lsLines = nvmLsOutput.split('\\n');\n const lsLine = lsLines[lsLines.length - 2];\n\n return lsLine.match(/(v[0-9]+)\\.[0-9]+\\.[0-9]+/)[1];\n}\n\nexport function install(nodeVersionCategory) {\n info(`Installing ${nodeVersionCategory} version of node using nvm`, {level: 'secondary'});\n\n const subprocess = execa('. ~/.nvm/nvm.sh && nvm install', {shell: true});\n subprocess.stdout.pipe(process.stdout);\n return subprocess;\n}\n","import {promises as fsPromises} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport {determineLatestVersionOf, install as installNodeVersion} from './tasks';\n\nexport default async function ({projectRoot, nodeVersionCategory}) {\n if (!nodeVersionCategory) return undefined;\n\n const lowerCaseCategory = nodeVersionCategory.toLowerCase();\n info(`Configuring ${lowerCaseCategory} version of node`);\n\n const version = await determineLatestVersionOf(nodeVersionCategory);\n\n await fsPromises.writeFile(`${projectRoot}/.nvmrc`, version);\n\n await installNodeVersion(nodeVersionCategory);\n\n return version;\n}\n","import deepmerge from 'deepmerge';\n\nexport default function (contributors) {\n return deepmerge.all(contributors).badges;\n}\n","export default function (vcsIgnoreLists = {}) {\n return {\n files: vcsIgnoreLists.files || [],\n directories: ['/node_modules/', ...vcsIgnoreLists.directories || []]\n };\n}\n","import {EOL} from 'os';\nimport validatePackageName from '../thirdparty-wrappers/validate-npm-package-name';\n\nexport default function (projectName, scope) {\n const name = `${scope ? `@${scope}/` : ''}${projectName}`;\n\n const {validForNewPackages, errors} = validatePackageName(name);\n\n if (validForNewPackages) return name;\n if (1 === errors.length && errors.includes('name cannot start with a period')) return projectName.slice(1);\n\n throw new Error(`The package name ${name} is invalid:${EOL}\\t* ${errors.join(`${EOL}\\t* `)}`);\n}\n","import {packageManagers} from '@form8ion/javascript-core';\nimport buildGenerationCommand from '../../../documentation/generation-command';\n\nfunction getInstallationCommand(packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm install';\n if (packageManagers.YARN === packageManager) return 'yarn add';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n\nexport default function ({scope, packageName, packageManager, visibility}) {\n return {\n usage: `### Installation\n${'Private' === visibility ? `\n:warning: this is a private package, so you will need to use an npm token with\naccess to private packages under \\`@${scope}\\`\n` : ''\n}\n\\`\\`\\`sh\n$ ${getInstallationCommand(packageManager)} ${packageName}\n\\`\\`\\`\n\n### Example\n\nrun \\`${buildGenerationCommand(packageManager)}\\` to inject the usage example`\n };\n}\n","export default function (packageName, visibility) {\n return {\n consumer: {\n ...'Public' === visibility && {\n npm: {\n img: `https://img.shields.io/npm/v/${packageName}?logo=npm`,\n text: 'npm',\n link: `https://www.npmjs.com/package/${packageName}`\n }\n }\n },\n status: {}\n };\n}\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../../../prompts/question-names';\n\nexport default async function ({bundlers, decisions}) {\n if (!Object.keys(bundlers).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PACKAGE_BUNDLER,\n type: 'list',\n message: 'Which bundler should be used?',\n choices: [...Object.keys(bundlers), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PACKAGE_BUNDLER];\n}\n","import {resolve} from 'path';\nimport filedirname from 'filedirname';\n\nexport default function (fileName) {\n const [, __dirname] = filedirname();\n\n return resolve(__dirname, '..', 'templates', fileName);\n}\n","import {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport mustache from 'mustache';\nimport {dialects, projectTypes, scaffoldChoice as scaffoldChosenBundler} from '@form8ion/javascript-core';\n\nimport camelcase from '../../../../thirdparty-wrappers/camelcase';\nimport mkdir from '../../../../thirdparty-wrappers/make-dir';\nimport touch from '../../../../thirdparty-wrappers/touch';\nimport chooseBundler from './prompt';\nimport determinePathToTemplateFile from '../../../template-path';\n\nconst defaultBuildDirectory = 'lib';\n\nasync function createExample(projectRoot, projectName) {\n return fs.writeFile(\n `${projectRoot}/example.js`,\n mustache.render(\n await fs.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),\n {projectName: camelcase(projectName)}\n )\n );\n}\n\nasync function buildDetailsForCommonJsProject({projectRoot, projectName}) {\n await Promise.all([\n touch(`${projectRoot}/index.js`),\n fs.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\\n`)\n ]);\n\n return {};\n}\n\nexport default async function ({\n projectRoot,\n projectName,\n visibility,\n packageName,\n packageBundlers,\n dialect,\n decisions\n}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName});\n\n const chosenBundler = await chooseBundler({bundlers: packageBundlers, decisions});\n\n const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);\n const [bundlerResults] = await Promise.all([\n scaffoldChosenBundler(packageBundlers, chosenBundler, {projectRoot, dialect, projectType: projectTypes.PACKAGE}),\n await createExample(projectRoot, projectName),\n touch(`${pathToCreatedSrcDirectory}/index.js`)\n ]);\n\n return deepmerge(\n bundlerResults,\n {\n devDependencies: ['rimraf'],\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n vcsIgnore: {directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: {\n consumer: {\n ...'Public' === visibility && {\n runkit: {\n img: `https://badge.runkitcdn.com/${packageName}.svg`,\n text: `Try ${packageName} on RunKit`,\n link: `https://npm.runkit.com/${packageName}`\n }\n }\n }\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {dialects, mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport scaffoldPackageDocumentation from './documentation';\nimport defineBadges from './badges';\nimport buildDetails from './build-details';\n\nexport default async function ({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n decisions,\n dialect,\n publishRegistry\n}) {\n info('Scaffolding Package Details');\n\n const [detailsForBuild] = await Promise.all([\n buildDetails({projectRoot, projectName, packageBundlers, visibility, packageName, dialect, decisions}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n files: ['example.js', ...dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/']],\n publishConfig: {\n access: 'Public' === visibility ? 'public' : 'restricted',\n ...publishRegistry && {registry: publishRegistry}\n },\n sideEffects: false,\n ...'Public' === visibility && {runkitExampleFilename: './example.js'},\n ...dialects.BABEL === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n exports: {\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n },\n ...dialects.ESM === dialect && {\n main: './lib/index.mjs',\n exports: './lib/index.mjs'\n },\n ...dialects.TYPESCRIPT === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n types: './lib/index.d.ts',\n exports: {\n types: './lib/index.d.ts',\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n }\n }\n })\n ]);\n\n return deepmerge.all([\n {\n documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager}),\n eslintConfigs: [],\n nextSteps: [\n {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},\n {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}\n ],\n scripts: {},\n badges: defineBadges(packageName, visibility)\n },\n detailsForBuild\n ]);\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nconst defaultBuildDirectory = 'public';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Application Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n const buildDirectory = defaultBuildDirectory;\n\n return {\n scripts: {\n clean: `rimraf ./${buildDirectory}`,\n start: `node ./${buildDirectory}/index.js`,\n prebuild: 'run-s clean'\n },\n dependencies: [],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},\n buildDirectory,\n eslintConfigs: [],\n nextSteps: []\n };\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Monorepo Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n return {\n eslintConfigs: [],\n nextSteps: [{\n summary: 'Add packages to your new monorepo',\n description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'\n + ' to scaffold new packages into your new monorepo'\n }]\n };\n}\n","import deepmerge from 'deepmerge';\nimport {mergeIntoExistingPackageJson, projectTypes} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport defineBadges from './package/badges';\n\nconst defaultBuildDirectory = 'bin';\n\nexport default async function ({packageName, visibility, projectRoot, dialect, publishRegistry}) {\n const [rollupResults] = await Promise.all([\n scaffoldRollup({projectRoot, dialect, projectType: projectTypes.CLI}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {\n access: 'Public' === visibility ? 'public' : 'restricted',\n ...publishRegistry && {registry: publishRegistry}\n }\n }\n })\n ]);\n\n return deepmerge(\n rollupResults,\n {\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n dependencies: ['update-notifier'],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: defineBadges(packageName, visibility),\n eslintConfigs: [],\n nextSteps: []\n }\n );\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport scaffoldPackageType from './package';\nimport scaffoldApplicationType from './application';\nimport scaffoldMonorepoType from './monorepo';\nimport scaffoldCliType from './cli';\n\nexport default async function ({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n packageBundlers,\n scope,\n vcs,\n decisions,\n dialect,\n publishRegistry\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n vcs,\n decisions,\n dialect,\n publishRegistry\n });\n case projectTypes.APPLICATION:\n return scaffoldApplicationType({projectRoot});\n case projectTypes.CLI:\n return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});\n case projectTypes.MONOREPO:\n return scaffoldMonorepoType({projectRoot});\n case 'Other':\n return {\n eslintConfigs: []\n };\n default:\n throw new Error(`The project-type of ${projectType} is invalid`);\n }\n}\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({types, projectType, decisions}) {\n if (!Object.keys(types).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PROJECT_TYPE_CHOICE,\n type: 'list',\n message: `What type of ${projectType} is this?`,\n choices: [...Object.keys(types), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PROJECT_TYPE_CHOICE];\n}\n","import {scaffoldChoice} from '@form8ion/javascript-core';\n\nimport chooseProjectTypePlugin from './prompt';\n\nexport default async function ({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n tests,\n decisions,\n plugins\n}) {\n const pluginsForProjectType = plugins[projectType];\n\n if (!pluginsForProjectType) return {};\n\n const chosenType = await chooseProjectTypePlugin({types: pluginsForProjectType, decisions, projectType});\n\n return scaffoldChoice(\n pluginsForProjectType,\n chosenType,\n {projectRoot, projectName, packageName, packageManager, scope, tests}\n );\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldUnitTesting from '../../../testing/unit';\n\nexport default async function ({\n projectRoot,\n visibility,\n tests: {unit, integration},\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n}) {\n const unitResults = unit\n ? await scaffoldUnitTesting({\n projectRoot,\n visibility,\n vcs,\n frameworks: unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n })\n : {};\n\n return deepmerge({devDependencies: [...(unit || integration) ? ['@travi/any'] : []], eslint: {}}, unitResults);\n}\n","export default function ({pathWithinParent}) {\n if (pathWithinParent) return {};\n\n return {scripts: {'lint:sensitive': 'ban'}, devDependencies: ['ban-sensitive-files']};\n}\n","export default function ({packageManager, registries}) {\n return [\n ...(!registries || (registries && !registries.registry)) ? [packageManager] : [],\n ...Object.values(Object.fromEntries(Object.entries(registries).filter(([scope]) => 'publish' !== scope)))\n ];\n}\n","import {promises as fs} from 'fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport buildAllowedHostsList from './allowed-hosts-builder';\n\nconst lockfileLintSupportedPackageManagers = [packageManagers.NPM, packageManagers.YARN];\n\nfunction determineLockfilePathFor(packageManager) {\n const lockfilePaths = {\n [packageManagers.NPM]: 'package-lock.json',\n [packageManagers.YARN]: 'yarn.lock'\n };\n\n return lockfilePaths[packageManager];\n}\n\nfunction lockfileLintSupports(packageManager) {\n return lockfileLintSupportedPackageManagers.includes(packageManager);\n}\n\nexport default async function ({projectRoot, packageManager, registries}) {\n if (!lockfileLintSupports(packageManager)) {\n throw new Error(\n `The ${packageManager} package manager is currently not supported by lockfile-lint. `\n + `Only ${lockfileLintSupportedPackageManagers.join(' and ')} are currently supported.`\n );\n }\n\n await fs.writeFile(\n `${projectRoot}/.lockfile-lintrc.json`,\n JSON.stringify({\n path: determineLockfilePathFor(packageManager),\n type: packageManager,\n 'validate-https': true,\n 'allowed-hosts': buildAllowedHostsList({packageManager, registries})\n })\n );\n\n return {\n devDependencies: ['lockfile-lint'],\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldBanSensitiveFiles from './ban-sensitive-files';\nimport {scaffold as scaffoldLockfileLint} from './lockfile';\n\nexport default async function ({projectRoot, packageManager, registries, vcs, pathWithinParent}) {\n return deepmerge.all(await Promise.all([\n scaffoldLockfileLint({projectRoot, packageManager, registries}),\n vcs ? scaffoldBanSensitiveFiles({pathWithinParent}) : {}\n ]));\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldHusky} from '@form8ion/husky';\n\nimport scaffoldTesting from './testing';\nimport scaffoldLinting from './linting';\n\nexport async function scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n}) {\n const [testingResults, lintingResults, huskyResults] = await Promise.all([\n scaffoldTesting({\n projectRoot,\n tests,\n visibility,\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n }),\n scaffoldLinting({projectRoot, packageManager, registries, vcs, pathWithinParent}),\n scaffoldHusky({projectRoot, packageManager, pathWithinParent})\n ]);\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import {scaffold} from '@form8ion/eslint';\nimport deepmerge from 'deepmerge';\n\nexport default async function ({config, projectRoot, buildDirectory, additionalConfiguration}) {\n const {scope} = config;\n const {ignore} = additionalConfiguration;\n const ignores = deepmerge(ignore, {directories: [`/${buildDirectory}/`]});\n\n return scaffold({scope, projectRoot, ignore: {directories: ignores.directories}});\n}\n","import deepmerge from 'deepmerge';\nimport {fileTypes} from '@form8ion/core';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\nimport {write} from '@form8ion/config-file';\n\nexport default async function ({config, projectRoot, projectType, vcs, dialect}) {\n await write({\n format: fileTypes.JSON,\n path: projectRoot,\n name: 'remark',\n config: {\n settings: {\n listItemIndent: 1,\n emphasis: '_',\n strong: '_',\n bullet: '*',\n incrementListMarker: false\n },\n plugins: [\n config,\n ['remark-toc', {tight: true}],\n ...projectTypes.PACKAGE === projectType ? [['remark-usage', {heading: 'example'}]] : [],\n ...!vcs ? [['validate-links', {repository: false}]] : []\n ]\n }\n });\n\n return deepmerge(\n {\n devDependencies: [config, 'remark-cli', 'remark-toc'],\n scripts: {\n 'lint:md': 'remark . --frail',\n 'generate:md': 'remark . --output'\n }\n },\n {\n ...projectTypes.PACKAGE === projectType && {\n devDependencies: ['remark-usage'],\n ...dialects.COMMON_JS !== dialect && {scripts: {'pregenerate:md': 'run-s build'}}\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldPrettier} from '@form8ion/prettier';\n\nimport scaffoldEslint from './eslint';\nimport scaffoldRemark from './remark';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n configs,\n vcs,\n configureLinting,\n buildDirectory,\n eslint\n}) {\n return deepmerge.all(await Promise.all([\n configs.eslint && configureLinting\n && scaffoldEslint({\n projectRoot,\n config: configs.eslint,\n buildDirectory,\n additionalConfiguration: eslint\n }),\n scaffoldRemark({\n projectRoot,\n projectType,\n dialect,\n vcs,\n config: configs.remark || '@form8ion/remark-lint-preset'\n }),\n scaffoldPrettier({projectRoot, config: configs.prettier})\n ].filter(Boolean)));\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {projectTypes, scaffoldChoice} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCommitConvention} from '@form8ion/commit-convention';\n\nimport lift from '../lift';\nimport {validate} from '../options-validator';\nimport {prompt} from '../prompts/questions';\nimport {scaffold as scaffoldDialect} from '../dialects';\nimport scaffoldNpmConfig from '../config/npm';\nimport scaffoldDocumentation from '../documentation';\nimport scaffoldNodeVersion from '../node-version';\nimport buildBadgesDetails from '../badges';\nimport buildVcsIgnoreLists from '../vcs-ignore';\nimport {scaffold as scaffoldPackage} from '../package';\nimport buildPackageName from '../package-name';\nimport scaffoldProjectType from './project-type';\nimport {scaffold as scaffoldProjectTypePlugin} from '../project-type-plugin';\nimport buildDocumentationCommand from '../documentation/generation-command';\nimport {scaffold as scaffoldVerification} from './verification';\nimport {scaffold as scaffoldCodeStyle} from '../code-style';\n\nexport default async function (options) {\n info('Initializing JavaScript project');\n\n const {\n projectRoot,\n projectName,\n visibility,\n license,\n vcs,\n description,\n configs,\n overrides,\n ciServices,\n hosts,\n applicationTypes,\n packageTypes,\n packageBundlers,\n monorepoTypes,\n decisions,\n unitTestFrameworks,\n pathWithinParent,\n registries\n } = validate(options);\n\n const {\n tests,\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author,\n configureLinting,\n packageManager,\n dialect\n } = await prompt(overrides, ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);\n\n info('Writing project files', {level: 'secondary'});\n\n const packageName = buildPackageName(projectName, scope);\n const {homepage: projectHomepage} = await scaffoldPackage({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n });\n const [projectTypeResults, verificationResults] = await Promise.all([\n scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n packageBundlers,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect,\n publishRegistry: registries.publish\n }),\n scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n })\n ]);\n const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([\n scaffoldNodeVersion({projectRoot, nodeVersionCategory}),\n scaffoldNpmConfig({projectType, projectRoot, registries}),\n scaffoldDialect({\n dialect,\n configs,\n projectRoot,\n projectType,\n buildDirectory: projectTypeResults.buildDirectory,\n testFilenamePattern: verificationResults.testFilenamePattern\n }),\n scaffoldCodeStyle({\n projectRoot,\n projectType,\n dialect,\n configs,\n vcs,\n configureLinting,\n buildDirectory: projectTypeResults.buildDirectory,\n eslint: verificationResults.eslint\n })\n ]);\n const mergedContributions = deepmerge.all([\n ...(await Promise.all([\n scaffoldChoice(\n hosts,\n chosenHost,\n {buildDirectory: `./${projectTypeResults.buildDirectory}`, projectRoot, projectName, nodeVersion}\n ),\n scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),\n scaffoldCommitConvention({projectRoot, projectType, configs, pathWithinParent}),\n scaffoldProjectTypePlugin({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n tests,\n decisions,\n plugins: {\n [projectTypes.PACKAGE]: packageTypes,\n [projectTypes.APPLICATION]: applicationTypes,\n [projectTypes.MONOREPO]: monorepoTypes\n }\n })\n ])),\n projectTypeResults,\n verificationResults,\n codeStyleResults,\n npmResults,\n dialectResults\n ]);\n\n const liftResults = await lift({\n results: deepmerge({devDependencies: ['npm-run-all'], packageManager}, mergedContributions),\n projectRoot,\n configs,\n vcs\n });\n\n return {\n badges: buildBadgesDetails([mergedContributions, liftResults]),\n documentation: scaffoldDocumentation({projectTypeResults, packageManager}),\n tags: projectTypeResults.tags,\n vcsIgnore: buildVcsIgnoreLists(mergedContributions.vcsIgnore),\n verificationCommand: `${buildDocumentationCommand(packageManager)} && ${packageManager} test`,\n projectDetails: {...projectHomepage && {homepage: projectHomepage}},\n nextSteps: mergedContributions.nextSteps\n };\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default async function ({projectRoot}) {\n const [nvmIsConfigured, packageLockExists, yarnLockExists] = await Promise.all([\n fileExists(`${projectRoot}/.nvmrc`),\n fileExists(`${projectRoot}/package-lock.json`),\n fileExists(`${projectRoot}/yarn.lock`)\n ]);\n\n return nvmIsConfigured || packageLockExists || yarnLockExists;\n}\n","import {questionNames as languageScaffolderPromptsQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames as jsScaffolderQuestionNames} from './prompts/question-names';\n\nexport {default as scaffoldUnitTesting} from './testing/unit';\nexport {default as scaffold} from './scaffolder';\nexport {default as lift} from './lift';\nexport {default as test} from './test';\nexport const questionNames = {...languageScaffolderPromptsQuestionNames, ...jsScaffolderQuestionNames};\n"],"names":["questionNames","promises","deepmerge","scaffoldCodecov","fileExists","execa","fs","lift","liftCodecov","joi","prompt","Separator","validateOptions","scaffoldFrameworkChoice","test","projectTypes","dialects","info","writePackageJson","installDependencies","PROD_DEPENDENCY_TYPE","DEV_DEPENDENCY_TYPE","error","packageManagers","eslint","liftEslint","applyEnhancers","huskyPlugin","commitConventionPlugin","hoek","commonQuestionNames","npmConfFactory","warn","scope","promptWithInquirer","validateScope","commonQuestions","write","fileTypes","stringify","buildGenerationCommand","fsPromises","installNodeVersion","validatePackageName","EOL","filedirname","resolve","defaultBuildDirectory","mustache","camelcase","touch","mkdir","scaffoldChosenBundler","mergeIntoExistingPackageJson","scaffoldRollup","scaffoldChoice","scaffoldHusky","scaffold","scaffoldPrettier","scaffoldCommitConvention","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/prompts/question-names.js","../src/coverage/c8/scaffolder.js","../src/coverage/scaffolder.js","../src/coverage/nyc/tester.js","../src/dependencies/remover.js","../src/coverage/nyc/remover.js","../src/coverage/lifter.js","../src/coverage/c8/tester.js","../src/coverage/tester.js","../src/testing/options-schemas.js","../src/testing/prompt.js","../src/testing/unit.js","../src/lift/enhancers/engines.js","../src/package/scripts/scaffolder.js","../src/package/scripts/test-script-updater.js","../src/package/scripts/lifter.js","../src/package/details.js","../src/package/scaffolder.js","../src/package/lifter.js","../src/lift/package-manager.js","../src/lift/lift.js","../src/scaffolder/project-type/options-schemas.js","../src/options-validator.js","../src/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/dialects/babel/scaffolder.js","../src/dialects/typescript/scaffolder.js","../src/dialects/scaffolder.js","../src/config/npm.js","../src/documentation/generation-command.js","../src/documentation/scaffolder.js","../src/node-version/tasks.js","../src/node-version/scaffolder.js","../src/badges.js","../src/vcs-ignore.js","../src/package-name.js","../src/scaffolder/project-type/package/documentation.js","../src/scaffolder/project-type/package/badges.js","../src/scaffolder/project-type/package/prompt.js","../src/template-path.js","../src/scaffolder/project-type/package/build-details.js","../src/scaffolder/project-type/package/scaffolder.js","../src/scaffolder/project-type/application.js","../src/scaffolder/project-type/monorepo.js","../src/scaffolder/project-type/cli.js","../src/scaffolder/project-type/scaffolder.js","../src/project-type-plugin/prompt.js","../src/project-type-plugin/scaffolder.js","../src/scaffolder/verification/testing/scaffolder.js","../src/scaffolder/verification/linting/ban-sensitive-files.js","../src/scaffolder/verification/linting/lockfile/allowed-hosts-builder.js","../src/scaffolder/verification/linting/lockfile/scaffolder.js","../src/scaffolder/verification/linting/scaffolder.js","../src/scaffolder/verification/verifier.js","../src/code-style/eslint.js","../src/code-style/remark.js","../src/code-style/scaffolder.js","../src/scaffolder/scaffolder.js","../src/test.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n UNIT_TEST_FRAMEWORK: 'unitTestFramework',\n NODE_VERSION_CATEGORY: 'nodeVersionCategory',\n PACKAGE_MANAGER: 'packageManager',\n PACKAGE_BUNDLER: 'packageBundler',\n PROJECT_TYPE: 'projectType',\n PROJECT_TYPE_CHOICE: 'projectTypeChoice',\n SHOULD_BE_SCOPED: 'shouldBeScoped',\n SCOPE: 'scope',\n AUTHOR_NAME: 'authorName',\n AUTHOR_EMAIL: 'authorEmail',\n AUTHOR_URL: 'authorUrl',\n HOST: 'host',\n CONFIGURE_LINTING: 'configureLint',\n DIALECT: 'dialect'\n};\n","import {promises} from 'fs';\n\nexport default async function ({projectRoot}) {\n await promises.writeFile(\n `${projectRoot}/.c8rc.json`,\n JSON.stringify({\n reporter: ['lcov', 'text-summary', 'html'],\n exclude: ['src/**/*-test.js', 'test/', 'thirdparty-wrappers/', 'vendor/']\n })\n );\n\n return {\n devDependencies: ['cross-env', 'c8'],\n vcsIgnore: {files: [], directories: ['/coverage/']},\n eslint: {ignore: {directories: ['/coverage/']}}\n };\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCodecov} from '@form8ion/codecov';\nimport {scaffold as scaffoldC8} from './c8';\n\nexport default async function ({projectRoot, vcs, visibility, pathWithinParent}) {\n return deepmerge(await scaffoldC8({projectRoot}), await scaffoldCodecov({vcs, visibility, pathWithinParent}));\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.nycrc`);\n}\n","import execa from '../../thirdparty-wrappers/execa';\n\nexport default async function ({packageManager, dependencies}) {\n await execa(packageManager, ['remove', ...dependencies]);\n}\n","import {promises as fs} from 'fs';\nimport removeDependencies from '../../dependencies/remover';\n\nexport default async function ({projectRoot, packageManager}) {\n await Promise.all([\n fs.unlink(`${projectRoot}/.nycrc`),\n fs.rm(`${projectRoot}/.nyc_output`, {recursive: true, force: true}),\n removeDependencies({packageManager, dependencies: ['nyc', '@istanbuljs/nyc-config-babel', 'babel-plugin-istanbul']})\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {lift as liftCodecov} from '@form8ion/codecov';\n\nimport {scaffold as scaffoldC8} from './c8';\nimport {test as nycIsConfigured, remove as removeNyc} from './nyc';\n\nexport async function lift({projectRoot, packageManager}) {\n const codecovResults = await liftCodecov({projectRoot, packageManager});\n\n if (await nycIsConfigured({projectRoot})) {\n const [c8Results] = await Promise.all([\n scaffoldC8({projectRoot}),\n removeNyc({projectRoot, packageManager})\n ]);\n\n return deepmerge.all([\n c8Results,\n codecovResults,\n {\n scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'},\n nextSteps: [{\n summary: 'Remove use of `@istanbuljs/nyc-config-babel` from your babel config, if present,'\n + ' after the migration away from `nyc`'\n }]\n }\n ]);\n }\n\n return {};\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.c8rc.json`);\n}\n","import c8IsConfigured from './c8/tester';\nimport nycIsConfigured from './nyc/tester';\n\nexport default async function ({projectRoot}) {\n const [c8Exists, nycExists] = await Promise.all([c8IsConfigured({projectRoot}), nycIsConfigured({projectRoot})]);\n\n return c8Exists || nycExists;\n}\n","import joi from 'joi';\n\nexport const unitTestFrameworksSchema = joi.object().required().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n}));\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({frameworks, decisions}) {\n if (!Object.keys(frameworks).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.UNIT_TEST_FRAMEWORK,\n type: 'list',\n message: 'Which type of unit testing framework should be used?',\n choices: [...Object.keys(frameworks), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.UNIT_TEST_FRAMEWORK];\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldFrameworkChoice, validateOptions} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCoverage} from '../coverage';\nimport {unitTestFrameworksSchema} from './options-schemas';\nimport chooseFramework from './prompt';\n\nexport default async function ({projectRoot, frameworks, decisions, visibility, vcs, pathWithinParent, dialect}) {\n const validatedFrameworks = validateOptions(unitTestFrameworksSchema, frameworks);\n const [framework, coverage] = await Promise.all([\n chooseFramework({frameworks: validatedFrameworks, decisions})\n .then(chosenFramework => scaffoldFrameworkChoice(validatedFrameworks, chosenFramework, {projectRoot, dialect})),\n scaffoldCoverage({projectRoot, vcs, visibility, pathWithinParent})\n ]);\n\n return deepmerge.all([\n {scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'}},\n framework,\n coverage\n ]);\n}\n","import {promises as fs} from 'fs';\n\nexport async function test({projectRoot}) {\n const {engines} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf8'));\n\n return !!engines?.node;\n}\n\nexport async function lift({projectRoot}) {\n const {name} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf8'));\n\n return {\n devDependencies: ['ls-engines'],\n scripts: {'lint:engines': 'ls-engines'},\n badges: {consumer: {node: {img: `https://img.shields.io/node/v/${name}?logo=node.js`, text: 'node'}}}\n };\n}\n","export default function () {\n return {};\n}\n","function projectWillBeTested(scripts) {\n return Object.keys(scripts).find(scriptName => scriptName.startsWith('test:'));\n}\n\nfunction projectShouldBeBuiltForVerification(scripts) {\n return 'run-s build' === scripts['pregenerate:md'];\n}\n\nexport default function (scripts) {\n return {\n ...scripts,\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\n","import updateTestScript from './test-script-updater';\n\nexport default function ({existingScripts, scripts}) {\n return updateTestScript({...existingScripts, ...scripts});\n}\n","import {dialects, projectTypes} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldScripts} from './scripts';\n\nfunction defineVcsHostDetails(vcs, packageType, packageName, pathWithinParent) {\n return vcs && 'github' === vcs.host && {\n repository: pathWithinParent\n ? {\n type: 'git',\n url: `https://github.com/${vcs.owner}/${vcs.name}.git`,\n directory: pathWithinParent\n }\n : `${vcs.owner}/${vcs.name}`,\n bugs: `https://github.com/${vcs.owner}/${vcs.name}/issues`,\n homepage: (projectTypes.PACKAGE === packageType)\n ? `https://npm.im/${packageName}`\n : `https://github.com/${vcs.owner}/${vcs.name}#readme`\n };\n}\n\nexport default function ({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n ...defineVcsHostDetails(vcs, projectType, packageName, pathWithinParent),\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: scaffoldScripts()\n };\n}\n","import {info} from '@travi/cli-messages';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nimport buildPackageDetails from './details';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n}) {\n info('Configuring package.json');\n\n const packageData = await buildPackageDetails({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n });\n\n await writePackageJson({projectRoot, config: packageData});\n\n return {homepage: packageData.homepage};\n}\n","import {promises as fs} from 'fs';\nimport {error, info} from '@travi/cli-messages';\nimport {\n DEV_DEPENDENCY_TYPE,\n PROD_DEPENDENCY_TYPE,\n installDependencies,\n writePackageJson\n} from '@form8ion/javascript-core';\n\nimport {lift as liftScripts} from './scripts';\n\nexport default async function ({\n projectRoot,\n scripts,\n tags,\n dependencies,\n devDependencies,\n packageManager\n}) {\n if (scripts || tags) {\n info('Updating `package.json`', {level: 'secondary'});\n\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageJsonContents = JSON.parse(await fs.readFile(pathToPackageJson, 'utf8'));\n\n await writePackageJson({\n projectRoot,\n config: {\n ...existingPackageJsonContents,\n scripts: liftScripts({existingScripts: existingPackageJsonContents.scripts, scripts}),\n ...tags && {\n keywords: existingPackageJsonContents.keywords ? [...existingPackageJsonContents.keywords, ...tags] : tags\n }\n }\n });\n }\n\n info('Installing dependencies');\n\n try {\n await installDependencies(dependencies || [], PROD_DEPENDENCY_TYPE, projectRoot, packageManager);\n await installDependencies([...devDependencies || []], DEV_DEPENDENCY_TYPE, projectRoot, packageManager);\n } catch (e) {\n error('Failed to install dependencies');\n }\n}\n","import {fileExists} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nexport default async function ({projectRoot, packageManager}) {\n if (packageManager) return packageManager;\n\n if (await fileExists(`${projectRoot}/package-lock.json`)) {\n return packageManagers.NPM;\n }\n\n if (await fileExists(`${projectRoot}/yarn.lock`)) {\n return packageManagers.YARN;\n }\n\n throw new Error('Package-manager could not be determined');\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftEslint} from '@form8ion/eslint';\nimport * as huskyPlugin from '@form8ion/husky';\nimport * as commitConventionPlugin from '@form8ion/commit-convention';\n\nimport * as coveragePlugin from '../coverage';\nimport * as enginesEnhancer from './enhancers/engines';\nimport {lift as liftPackage} from '../package';\nimport resolvePackageManager from './package-manager';\n\nexport default async function ({projectRoot, vcs, results}) {\n info('Lifting JavaScript-specific details');\n\n const {scripts, tags, eslintConfigs, eslint, dependencies, devDependencies, packageManager: manager} = results;\n\n const packageManager = await resolvePackageManager({projectRoot, packageManager: manager});\n\n const eslintResults = await liftEslint({projectRoot, configs: [...eslintConfigs || [], ...eslint?.configs || []]});\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: [huskyPlugin, enginesEnhancer, coveragePlugin, commitConventionPlugin],\n options: {packageManager, projectRoot, vcs}\n });\n\n await liftPackage(\n deepmerge.all([\n {projectRoot, scripts, tags, dependencies, devDependencies, packageManager},\n enhancerResults,\n eslintResults\n ])\n );\n\n return enhancerResults;\n}\n","import joi from 'joi';\n\nexport const packageBundlersSchema = joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n})).default({});\n","import joi from 'joi';\nimport hoek from '@hapi/hoek';\nimport {unitTestFrameworksSchema} from './testing/options-schemas';\nimport {packageBundlersSchema} from './scaffolder/project-type/options-schemas';\n\nexport function validate(options) {\n const schema = joi.object().required()\n .keys({\n projectRoot: joi.string().required(),\n projectName: joi.string().regex(/^@\\w*\\//, {invert: true}).required(),\n visibility: joi.string().valid('Public', 'Private').required(),\n license: joi.string().required(),\n description: joi.string(),\n pathWithinParent: joi.string()\n })\n .keys({\n vcs: joi.object({\n host: joi.string().required(),\n owner: joi.string().required(),\n name: joi.string().required()\n })\n })\n .keys({\n configs: joi.object({\n eslint: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n typescript: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n prettier: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n commitlint: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n babelPreset: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n remark: joi.string()\n }).default({})\n })\n .keys({\n overrides: joi.object({\n npmAccount: joi.string(),\n author: joi.object({\n name: joi.string().required(),\n email: joi.string().email(),\n url: joi.string().uri()\n })\n }).default({})\n })\n .keys({\n ciServices: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n public: joi.boolean(),\n private: joi.boolean()\n })).default({})\n })\n .keys({\n hosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n projectTypes: joi.array().items(joi.string().valid('static', 'node')).default([])\n })).default({})\n })\n .keys({\n applicationTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n packageTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n monorepoTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n }))\n })\n .keys({\n unitTestFrameworks: unitTestFrameworksSchema,\n packageBundlers: packageBundlersSchema\n })\n .keys({\n decisions: joi.object()\n })\n .keys({registries: joi.object().pattern(joi.string(), joi.string().uri()).default({})});\n const {error, value} = schema.validate(options);\n\n hoek.assert(!error, error);\n\n return value;\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nexport default function ({babelPreset, typescript}) {\n return [\n {name: 'Common JS (no transpilation)', value: dialects.COMMON_JS, short: 'cjs'},\n ...babelPreset ? [{name: 'Modern JavaScript (transpiled)', value: dialects.BABEL, short: 'modern'}] : [],\n {name: 'ESM-only (no transpilation)', value: dialects.ESM, short: 'esm'},\n ...typescript ? [{name: 'TypeScript', value: dialects.TYPESCRIPT, short: 'ts'}] : []\n ];\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport {questionNames as commonQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames} from './question-names';\n\nfunction projectIsPackage(answers) {\n return projectTypes.PACKAGE === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction projectIsCLI(answers) {\n return projectTypes.CLI === answers[questionNames.PROJECT_TYPE];\n}\n\nexport function projectIsApplication(answers) {\n return projectTypes.APPLICATION === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction packageShouldBeScoped(visibility, answers) {\n return 'Private' === visibility || answers[questionNames.SHOULD_BE_SCOPED];\n}\n\nfunction willBePublishedToNpm(answers) {\n return projectIsPackage(answers) || projectIsCLI(answers);\n}\n\nexport function shouldBeScopedPromptShouldBePresented(answers) {\n return willBePublishedToNpm(answers);\n}\n\nexport function scopePromptShouldBePresentedFactory(visibility) {\n return answers => willBePublishedToNpm(answers) && packageShouldBeScoped(visibility, answers);\n}\n\nexport function lintingPromptShouldBePresented({\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested\n}) {\n return !unitTested && !integrationTested;\n}\n","export function scope(visibility) {\n return input => {\n if (!input && 'Private' === visibility) {\n return 'Private packages must be scoped (https://docs.npmjs.com/private-modules/intro#setting-up-your-package)';\n }\n\n return true;\n };\n}\n","import {packageManagers, projectTypes} from '@form8ion/javascript-core';\nimport {prompt as promptWithInquirer, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames as commonQuestionNames, questions as commonQuestions} from '@travi/language-scaffolder-prompts';\nimport {warn} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\nimport npmConfFactory from '../../thirdparty-wrappers/npm-conf';\nimport buildDialectChoices from '../dialects/prompt-choices';\nimport {\n lintingPromptShouldBePresented,\n projectIsApplication,\n scopePromptShouldBePresentedFactory,\n shouldBeScopedPromptShouldBePresented\n} from './conditionals';\nimport {questionNames} from './question-names';\nimport {scope as validateScope} from './validators';\n\nfunction authorQuestions({name, email, url}) {\n return [\n {\n name: questionNames.AUTHOR_NAME,\n message: 'What is the author\\'s name?',\n default: name\n },\n {\n name: questionNames.AUTHOR_EMAIL,\n message: 'What is the author\\'s email?',\n default: email\n },\n {\n name: questionNames.AUTHOR_URL,\n message: 'What is the author\\'s website url?',\n default: url\n }\n ];\n}\n\nexport async function prompt(\n {npmAccount, author},\n ciServices,\n hosts,\n visibility,\n vcs,\n decisions,\n configs,\n pathWithinParent\n) {\n const npmConf = npmConfFactory();\n\n let maybeLoggedInNpmUsername;\n try {\n maybeLoggedInNpmUsername = (await execa('npm', ['whoami'])).stdout;\n } catch (failedExecutionResult) {\n if (!decisions[questionNames.SCOPE]) {\n warn('No logged in user found with `npm whoami`. Login with `npm login` '\n + 'to use your npm account name as the package scope default.');\n }\n }\n\n const {\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested,\n [questionNames.PROJECT_TYPE]: projectType,\n [commonQuestionNames.CI_SERVICE]: ci,\n [questionNames.HOST]: chosenHost,\n [questionNames.SCOPE]: scope,\n [questionNames.NODE_VERSION_CATEGORY]: nodeVersionCategory,\n [questionNames.AUTHOR_NAME]: authorName,\n [questionNames.AUTHOR_EMAIL]: authorEmail,\n [questionNames.AUTHOR_URL]: authorUrl,\n [questionNames.CONFIGURE_LINTING]: configureLinting,\n [questionNames.PACKAGE_MANAGER]: packageManager,\n [questionNames.DIALECT]: dialect\n } = await promptWithInquirer([\n {\n name: questionNames.DIALECT,\n message: 'Which JavaScript dialect should this project follow?',\n type: 'list',\n choices: buildDialectChoices(configs),\n default: 'babel'\n },\n ...pathWithinParent ? [] : [{\n name: questionNames.NODE_VERSION_CATEGORY,\n message: 'What node.js version should be used?',\n type: 'list',\n choices: ['LTS', 'Latest'],\n default: 'LTS'\n }],\n {\n name: questionNames.PACKAGE_MANAGER,\n message: 'Which package manager will be used with this project?',\n type: 'list',\n choices: Object.values(packageManagers),\n default: packageManagers.NPM\n },\n {\n name: questionNames.PROJECT_TYPE,\n message: 'What type of JavaScript project is this?',\n type: 'list',\n choices: [...Object.values(projectTypes), new Separator(), 'Other'],\n default: projectTypes.PACKAGE\n },\n ...'Private' === visibility ? [] : [{\n name: questionNames.SHOULD_BE_SCOPED,\n message: 'Should this package be scoped?',\n type: 'confirm',\n when: shouldBeScopedPromptShouldBePresented,\n default: true\n }],\n {\n name: questionNames.SCOPE,\n message: 'What is the scope?',\n when: scopePromptShouldBePresentedFactory(visibility),\n validate: validateScope(visibility),\n default: npmAccount || maybeLoggedInNpmUsername\n },\n ...authorQuestions(author || {\n name: npmConf.get('init.author.name'),\n email: npmConf.get('init.author.email'),\n url: npmConf.get('init.author.url')\n }),\n ...commonQuestions(({vcs, ciServices, visibility, pathWithinParent})),\n {\n name: questionNames.CONFIGURE_LINTING,\n message: 'Will there be source code that should be linted?',\n type: 'confirm',\n when: lintingPromptShouldBePresented\n },\n {\n name: questionNames.HOST,\n type: 'list',\n message: 'Where will the application be hosted?',\n when: projectIsApplication,\n choices: [...Object.keys(hosts), new Separator(), 'Other']\n }\n ], decisions);\n\n return {\n tests: {unit: unitTested, integration: integrationTested},\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author: {name: authorName, email: authorEmail, url: authorUrl},\n configureLinting: false !== configureLinting,\n packageManager,\n dialect\n };\n}\n","import {write} from '@form8ion/config-file';\nimport {fileTypes} from '@form8ion/core';\n\nexport default async function ({projectRoot, preset, buildDirectory}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await write({\n path: projectRoot,\n name: 'babel',\n format: fileTypes.JSON,\n config: {presets: [preset.name], ignore: [`./${buildDirectory}/`]}\n });\n\n return {\n devDependencies: ['@babel/register', preset.packageName],\n eslint: {}\n };\n}\n","import {promises as fs} from 'fs';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectType, projectRoot, testFilenamePattern}) {\n const eslintConfigs = ['typescript'];\n const shareableTsConfigPackage = `${config.scope}/tsconfig`;\n\n await fs.writeFile(\n `${projectRoot}/tsconfig.json`,\n JSON.stringify({\n $schema: 'https://json.schemastore.org/tsconfig',\n extends: shareableTsConfigPackage,\n compilerOptions: {\n rootDir: 'src',\n ...projectTypes.PACKAGE === projectType && {\n outDir: 'lib',\n declaration: true\n }\n },\n include: ['src/**/*.ts'],\n ...testFilenamePattern && {exclude: [testFilenamePattern]}\n })\n );\n\n return {\n eslint: {configs: eslintConfigs},\n eslintConfigs,\n devDependencies: ['typescript', shareableTsConfigPackage],\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldBabel} from './babel';\nimport {scaffold as scaffoldTypescript} from './typescript';\n\nexport default function ({dialect, projectType, projectRoot, configs, buildDirectory, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot, buildDirectory});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n default:\n return {};\n }\n}\n","import {promises as fs} from 'fs';\nimport {stringify} from 'ini';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nfunction projectWillNotBeConsumed(projectType) {\n return projectTypes.APPLICATION === projectType || projectTypes.CLI === projectType;\n}\n\nexport default async function ({\n projectRoot,\n projectType,\n registries\n}) {\n await fs.writeFile(\n `${projectRoot}/.npmrc`,\n stringify({\n 'update-notifier': false,\n ...projectWillNotBeConsumed(projectType) && {'save-exact': true},\n ...Object.fromEntries(Object.entries(registries)\n .filter(([scope]) => 'publish' !== scope)\n .map(([scope, url]) => {\n if ('registry' === scope) return ['registry', url];\n\n return [`@${scope}:registry`, url];\n }))\n })\n );\n\n return {scripts: {'lint:peer': 'npm ls >/dev/null'}};\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nexport default function (packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm run generate:md';\n if (packageManagers.YARN === packageManager) return 'yarn generate:md';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n","import buildGenerationCommand from './generation-command';\n\nexport default function ({projectTypeResults, packageManager}) {\n return {\n toc: `Run \\`${buildGenerationCommand(packageManager)}\\` to generate a table of contents`,\n ...projectTypeResults.documentation,\n contributing: `### Dependencies\n\n\\`\\`\\`sh\n$ nvm install\n$ ${packageManager} install\n\\`\\`\\`\n\n### Verification\n\n\\`\\`\\`sh\n$ ${packageManager} test\n\\`\\`\\``\n };\n}\n","import {info} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\n\nexport async function determineLatestVersionOf(nodeVersionCategory) {\n info('Determining version of node', {level: 'secondary'});\n\n const {stdout: nvmLsOutput} = await execa(\n `. ~/.nvm/nvm.sh && nvm ls-remote${('LTS' === nodeVersionCategory) ? ' --lts' : ''}`,\n {shell: true}\n );\n\n const lsLines = nvmLsOutput.split('\\n');\n const lsLine = lsLines[lsLines.length - 2];\n\n return lsLine.match(/(v[0-9]+)\\.[0-9]+\\.[0-9]+/)[1];\n}\n\nexport function install(nodeVersionCategory) {\n info(`Installing ${nodeVersionCategory} version of node using nvm`, {level: 'secondary'});\n\n const subprocess = execa('. ~/.nvm/nvm.sh && nvm install', {shell: true});\n subprocess.stdout.pipe(process.stdout);\n return subprocess;\n}\n","import {promises as fsPromises} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport {determineLatestVersionOf, install as installNodeVersion} from './tasks';\n\nexport default async function ({projectRoot, nodeVersionCategory}) {\n if (!nodeVersionCategory) return undefined;\n\n const lowerCaseCategory = nodeVersionCategory.toLowerCase();\n info(`Configuring ${lowerCaseCategory} version of node`);\n\n const version = await determineLatestVersionOf(nodeVersionCategory);\n\n await fsPromises.writeFile(`${projectRoot}/.nvmrc`, version);\n\n await installNodeVersion(nodeVersionCategory);\n\n return version;\n}\n","import deepmerge from 'deepmerge';\n\nexport default function (contributors) {\n return deepmerge.all(contributors).badges;\n}\n","export default function (vcsIgnoreLists = {}) {\n return {\n files: vcsIgnoreLists.files || [],\n directories: ['/node_modules/', ...vcsIgnoreLists.directories || []]\n };\n}\n","import {EOL} from 'os';\nimport validatePackageName from '../thirdparty-wrappers/validate-npm-package-name';\n\nexport default function (projectName, scope) {\n const name = `${scope ? `@${scope}/` : ''}${projectName}`;\n\n const {validForNewPackages, errors} = validatePackageName(name);\n\n if (validForNewPackages) return name;\n if (1 === errors.length && errors.includes('name cannot start with a period')) return projectName.slice(1);\n\n throw new Error(`The package name ${name} is invalid:${EOL}\\t* ${errors.join(`${EOL}\\t* `)}`);\n}\n","import {packageManagers} from '@form8ion/javascript-core';\nimport buildGenerationCommand from '../../../documentation/generation-command';\n\nfunction getInstallationCommand(packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm install';\n if (packageManagers.YARN === packageManager) return 'yarn add';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n\nexport default function ({scope, packageName, packageManager, visibility}) {\n return {\n usage: `### Installation\n${'Private' === visibility ? `\n:warning: this is a private package, so you will need to use an npm token with\naccess to private packages under \\`@${scope}\\`\n` : ''\n}\n\\`\\`\\`sh\n$ ${getInstallationCommand(packageManager)} ${packageName}\n\\`\\`\\`\n\n### Example\n\nrun \\`${buildGenerationCommand(packageManager)}\\` to inject the usage example`\n };\n}\n","export default function (packageName, visibility) {\n return {\n consumer: {\n ...'Public' === visibility && {\n npm: {\n img: `https://img.shields.io/npm/v/${packageName}?logo=npm`,\n text: 'npm',\n link: `https://www.npmjs.com/package/${packageName}`\n }\n }\n },\n status: {}\n };\n}\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../../../prompts/question-names';\n\nexport default async function ({bundlers, decisions}) {\n if (!Object.keys(bundlers).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PACKAGE_BUNDLER,\n type: 'list',\n message: 'Which bundler should be used?',\n choices: [...Object.keys(bundlers), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PACKAGE_BUNDLER];\n}\n","import {resolve} from 'path';\nimport filedirname from 'filedirname';\n\nexport default function (fileName) {\n const [, __dirname] = filedirname();\n\n return resolve(__dirname, '..', 'templates', fileName);\n}\n","import {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport mustache from 'mustache';\nimport {dialects, projectTypes, scaffoldChoice as scaffoldChosenBundler} from '@form8ion/javascript-core';\n\nimport camelcase from '../../../../thirdparty-wrappers/camelcase';\nimport mkdir from '../../../../thirdparty-wrappers/make-dir';\nimport touch from '../../../../thirdparty-wrappers/touch';\nimport chooseBundler from './prompt';\nimport determinePathToTemplateFile from '../../../template-path';\n\nconst defaultBuildDirectory = 'lib';\n\nasync function createExample(projectRoot, projectName) {\n return fs.writeFile(\n `${projectRoot}/example.js`,\n mustache.render(\n await fs.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),\n {projectName: camelcase(projectName)}\n )\n );\n}\n\nasync function buildDetailsForCommonJsProject({projectRoot, projectName}) {\n await Promise.all([\n touch(`${projectRoot}/index.js`),\n fs.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\\n`)\n ]);\n\n return {};\n}\n\nexport default async function ({\n projectRoot,\n projectName,\n visibility,\n packageName,\n packageBundlers,\n dialect,\n decisions\n}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName});\n\n const chosenBundler = await chooseBundler({bundlers: packageBundlers, decisions});\n\n const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);\n const [bundlerResults] = await Promise.all([\n scaffoldChosenBundler(packageBundlers, chosenBundler, {projectRoot, dialect, projectType: projectTypes.PACKAGE}),\n await createExample(projectRoot, projectName),\n touch(`${pathToCreatedSrcDirectory}/index.js`)\n ]);\n\n return deepmerge(\n bundlerResults,\n {\n devDependencies: ['rimraf'],\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n vcsIgnore: {directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: {\n consumer: {\n ...'Public' === visibility && {\n runkit: {\n img: `https://badge.runkitcdn.com/${packageName}.svg`,\n text: `Try ${packageName} on RunKit`,\n link: `https://npm.runkit.com/${packageName}`\n }\n }\n }\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {dialects, mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport scaffoldPackageDocumentation from './documentation';\nimport defineBadges from './badges';\nimport buildDetails from './build-details';\n\nexport default async function ({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n decisions,\n dialect,\n publishRegistry\n}) {\n info('Scaffolding Package Details');\n\n const [detailsForBuild] = await Promise.all([\n buildDetails({projectRoot, projectName, packageBundlers, visibility, packageName, dialect, decisions}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n files: ['example.js', ...dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/']],\n publishConfig: {\n access: 'Public' === visibility ? 'public' : 'restricted',\n ...publishRegistry && {registry: publishRegistry}\n },\n sideEffects: false,\n ...'Public' === visibility && {runkitExampleFilename: './example.js'},\n ...dialects.BABEL === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n exports: {\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n },\n ...dialects.ESM === dialect && {\n main: './lib/index.mjs',\n exports: './lib/index.mjs'\n },\n ...dialects.TYPESCRIPT === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n types: './lib/index.d.ts',\n exports: {\n types: './lib/index.d.ts',\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n }\n }\n })\n ]);\n\n return deepmerge.all([\n {\n documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager}),\n eslintConfigs: [],\n nextSteps: [\n {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},\n {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}\n ],\n scripts: {},\n badges: defineBadges(packageName, visibility)\n },\n detailsForBuild\n ]);\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nconst defaultBuildDirectory = 'public';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Application Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n const buildDirectory = defaultBuildDirectory;\n\n return {\n scripts: {\n clean: `rimraf ./${buildDirectory}`,\n start: `node ./${buildDirectory}/index.js`,\n prebuild: 'run-s clean'\n },\n dependencies: [],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},\n buildDirectory,\n eslintConfigs: [],\n nextSteps: []\n };\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Monorepo Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n return {\n eslintConfigs: [],\n nextSteps: [{\n summary: 'Add packages to your new monorepo',\n description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'\n + ' to scaffold new packages into your new monorepo'\n }]\n };\n}\n","import deepmerge from 'deepmerge';\nimport {mergeIntoExistingPackageJson, projectTypes} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport defineBadges from './package/badges';\n\nconst defaultBuildDirectory = 'bin';\n\nexport default async function ({packageName, visibility, projectRoot, dialect, publishRegistry}) {\n const [rollupResults] = await Promise.all([\n scaffoldRollup({projectRoot, dialect, projectType: projectTypes.CLI}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {\n access: 'Public' === visibility ? 'public' : 'restricted',\n ...publishRegistry && {registry: publishRegistry}\n }\n }\n })\n ]);\n\n return deepmerge(\n rollupResults,\n {\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n dependencies: ['update-notifier'],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: defineBadges(packageName, visibility),\n eslintConfigs: [],\n nextSteps: []\n }\n );\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport scaffoldPackageType from './package';\nimport scaffoldApplicationType from './application';\nimport scaffoldMonorepoType from './monorepo';\nimport scaffoldCliType from './cli';\n\nexport default async function ({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n packageBundlers,\n scope,\n vcs,\n decisions,\n dialect,\n publishRegistry\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n vcs,\n decisions,\n dialect,\n publishRegistry\n });\n case projectTypes.APPLICATION:\n return scaffoldApplicationType({projectRoot});\n case projectTypes.CLI:\n return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});\n case projectTypes.MONOREPO:\n return scaffoldMonorepoType({projectRoot});\n case 'Other':\n return {\n eslintConfigs: []\n };\n default:\n throw new Error(`The project-type of ${projectType} is invalid`);\n }\n}\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({types, projectType, decisions}) {\n if (!Object.keys(types).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PROJECT_TYPE_CHOICE,\n type: 'list',\n message: `What type of ${projectType} is this?`,\n choices: [...Object.keys(types), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PROJECT_TYPE_CHOICE];\n}\n","import {scaffoldChoice} from '@form8ion/javascript-core';\n\nimport chooseProjectTypePlugin from './prompt';\n\nexport default async function ({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n dialect,\n tests,\n decisions,\n plugins\n}) {\n const pluginsForProjectType = plugins[projectType];\n\n if (!pluginsForProjectType) return {};\n\n const chosenType = await chooseProjectTypePlugin({types: pluginsForProjectType, decisions, projectType});\n\n return scaffoldChoice(\n pluginsForProjectType,\n chosenType,\n {projectRoot, projectName, packageName, packageManager, scope, tests, dialect}\n );\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldUnitTesting from '../../../testing/unit';\n\nexport default async function ({\n projectRoot,\n visibility,\n tests: {unit, integration},\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n}) {\n const unitResults = unit\n ? await scaffoldUnitTesting({\n projectRoot,\n visibility,\n vcs,\n frameworks: unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n })\n : {};\n\n return deepmerge({devDependencies: [...(unit || integration) ? ['@travi/any'] : []], eslint: {}}, unitResults);\n}\n","export default function ({pathWithinParent}) {\n if (pathWithinParent) return {};\n\n return {scripts: {'lint:sensitive': 'ban'}, devDependencies: ['ban-sensitive-files']};\n}\n","export default function ({packageManager, registries}) {\n return [\n ...(!registries || (registries && !registries.registry)) ? [packageManager] : [],\n ...Object.values(Object.fromEntries(Object.entries(registries).filter(([scope]) => 'publish' !== scope)))\n ];\n}\n","import {promises as fs} from 'fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport buildAllowedHostsList from './allowed-hosts-builder';\n\nconst lockfileLintSupportedPackageManagers = [packageManagers.NPM, packageManagers.YARN];\n\nfunction determineLockfilePathFor(packageManager) {\n const lockfilePaths = {\n [packageManagers.NPM]: 'package-lock.json',\n [packageManagers.YARN]: 'yarn.lock'\n };\n\n return lockfilePaths[packageManager];\n}\n\nfunction lockfileLintSupports(packageManager) {\n return lockfileLintSupportedPackageManagers.includes(packageManager);\n}\n\nexport default async function ({projectRoot, packageManager, registries}) {\n if (!lockfileLintSupports(packageManager)) {\n throw new Error(\n `The ${packageManager} package manager is currently not supported by lockfile-lint. `\n + `Only ${lockfileLintSupportedPackageManagers.join(' and ')} are currently supported.`\n );\n }\n\n await fs.writeFile(\n `${projectRoot}/.lockfile-lintrc.json`,\n JSON.stringify({\n path: determineLockfilePathFor(packageManager),\n type: packageManager,\n 'validate-https': true,\n 'allowed-hosts': buildAllowedHostsList({packageManager, registries})\n })\n );\n\n return {\n devDependencies: ['lockfile-lint'],\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldBanSensitiveFiles from './ban-sensitive-files';\nimport {scaffold as scaffoldLockfileLint} from './lockfile';\n\nexport default async function ({projectRoot, packageManager, registries, vcs, pathWithinParent}) {\n return deepmerge.all(await Promise.all([\n scaffoldLockfileLint({projectRoot, packageManager, registries}),\n vcs ? scaffoldBanSensitiveFiles({pathWithinParent}) : {}\n ]));\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldHusky} from '@form8ion/husky';\n\nimport scaffoldTesting from './testing';\nimport scaffoldLinting from './linting';\n\nexport async function scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n}) {\n const [testingResults, lintingResults, huskyResults] = await Promise.all([\n scaffoldTesting({\n projectRoot,\n tests,\n visibility,\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n }),\n scaffoldLinting({projectRoot, packageManager, registries, vcs, pathWithinParent}),\n scaffoldHusky({projectRoot, packageManager, pathWithinParent})\n ]);\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import {scaffold} from '@form8ion/eslint';\nimport deepmerge from 'deepmerge';\n\nexport default async function ({config, projectRoot, buildDirectory, additionalConfiguration}) {\n const {scope} = config;\n const {ignore} = additionalConfiguration;\n const ignores = deepmerge(ignore, {directories: [`/${buildDirectory}/`]});\n\n return scaffold({scope, projectRoot, ignore: {directories: ignores.directories}});\n}\n","import deepmerge from 'deepmerge';\nimport {fileTypes} from '@form8ion/core';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\nimport {write} from '@form8ion/config-file';\n\nexport default async function ({config, projectRoot, projectType, vcs, dialect}) {\n await write({\n format: fileTypes.JSON,\n path: projectRoot,\n name: 'remark',\n config: {\n settings: {\n listItemIndent: 1,\n emphasis: '_',\n strong: '_',\n bullet: '*',\n incrementListMarker: false\n },\n plugins: [\n config,\n ['remark-toc', {tight: true}],\n ...projectTypes.PACKAGE === projectType ? [['remark-usage', {heading: 'example'}]] : [],\n ...!vcs ? [['validate-links', {repository: false}]] : []\n ]\n }\n });\n\n return deepmerge(\n {\n devDependencies: [config, 'remark-cli', 'remark-toc'],\n scripts: {\n 'lint:md': 'remark . --frail',\n 'generate:md': 'remark . --output'\n }\n },\n {\n ...projectTypes.PACKAGE === projectType && {\n devDependencies: ['remark-usage'],\n ...dialects.COMMON_JS !== dialect && {scripts: {'pregenerate:md': 'run-s build'}}\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldPrettier} from '@form8ion/prettier';\n\nimport scaffoldEslint from './eslint';\nimport scaffoldRemark from './remark';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n configs,\n vcs,\n configureLinting,\n buildDirectory,\n eslint\n}) {\n return deepmerge.all(await Promise.all([\n configs.eslint && configureLinting\n && scaffoldEslint({\n projectRoot,\n config: configs.eslint,\n buildDirectory,\n additionalConfiguration: eslint\n }),\n scaffoldRemark({\n projectRoot,\n projectType,\n dialect,\n vcs,\n config: configs.remark || '@form8ion/remark-lint-preset'\n }),\n scaffoldPrettier({projectRoot, config: configs.prettier})\n ].filter(Boolean)));\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {projectTypes, scaffoldChoice} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCommitConvention} from '@form8ion/commit-convention';\n\nimport lift from '../lift';\nimport {validate} from '../options-validator';\nimport {prompt} from '../prompts/questions';\nimport {scaffold as scaffoldDialect} from '../dialects';\nimport scaffoldNpmConfig from '../config/npm';\nimport scaffoldDocumentation from '../documentation';\nimport scaffoldNodeVersion from '../node-version';\nimport buildBadgesDetails from '../badges';\nimport buildVcsIgnoreLists from '../vcs-ignore';\nimport {scaffold as scaffoldPackage} from '../package';\nimport buildPackageName from '../package-name';\nimport scaffoldProjectType from './project-type';\nimport {scaffold as scaffoldProjectTypePlugin} from '../project-type-plugin';\nimport buildDocumentationCommand from '../documentation/generation-command';\nimport {scaffold as scaffoldVerification} from './verification';\nimport {scaffold as scaffoldCodeStyle} from '../code-style';\n\nexport default async function (options) {\n info('Initializing JavaScript project');\n\n const {\n projectRoot,\n projectName,\n visibility,\n license,\n vcs,\n description,\n configs,\n overrides,\n ciServices,\n hosts,\n applicationTypes,\n packageTypes,\n packageBundlers,\n monorepoTypes,\n decisions,\n unitTestFrameworks,\n pathWithinParent,\n registries\n } = validate(options);\n\n const {\n tests,\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author,\n configureLinting,\n packageManager,\n dialect\n } = await prompt(overrides, ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);\n\n info('Writing project files', {level: 'secondary'});\n\n const packageName = buildPackageName(projectName, scope);\n const {homepage: projectHomepage} = await scaffoldPackage({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n });\n const [projectTypeResults, verificationResults] = await Promise.all([\n scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n packageBundlers,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect,\n publishRegistry: registries.publish\n }),\n scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n })\n ]);\n const [nodeVersion, npmResults, dialectResults, codeStyleResults, projectTypePluginResults] = await Promise.all([\n scaffoldNodeVersion({projectRoot, nodeVersionCategory}),\n scaffoldNpmConfig({projectType, projectRoot, registries}),\n scaffoldDialect({\n dialect,\n configs,\n projectRoot,\n projectType,\n buildDirectory: projectTypeResults.buildDirectory,\n testFilenamePattern: verificationResults.testFilenamePattern\n }),\n scaffoldCodeStyle({\n projectRoot,\n projectType,\n dialect,\n configs,\n vcs,\n configureLinting,\n buildDirectory: projectTypeResults.buildDirectory,\n eslint: verificationResults.eslint\n }),\n scaffoldProjectTypePlugin({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n dialect,\n tests,\n decisions,\n plugins: {\n [projectTypes.PACKAGE]: packageTypes,\n [projectTypes.APPLICATION]: applicationTypes,\n [projectTypes.MONOREPO]: monorepoTypes\n }\n })\n ]);\n const mergedContributions = deepmerge.all([\n ...(await Promise.all([\n scaffoldChoice(\n hosts,\n chosenHost,\n {buildDirectory: `./${projectTypeResults.buildDirectory}`, projectRoot, projectName, nodeVersion}\n ),\n scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),\n scaffoldCommitConvention({projectRoot, projectType, configs, pathWithinParent})\n ])),\n projectTypePluginResults,\n projectTypeResults,\n verificationResults,\n codeStyleResults,\n npmResults,\n dialectResults\n ]);\n\n const liftResults = await lift({\n results: deepmerge({devDependencies: ['npm-run-all'], packageManager}, mergedContributions),\n projectRoot,\n configs,\n vcs\n });\n\n return {\n badges: buildBadgesDetails([mergedContributions, liftResults]),\n documentation: scaffoldDocumentation({projectTypeResults, packageManager}),\n tags: projectTypeResults.tags,\n vcsIgnore: buildVcsIgnoreLists(mergedContributions.vcsIgnore),\n verificationCommand: `${buildDocumentationCommand(packageManager)} && ${packageManager} test`,\n projectDetails: {...projectHomepage && {homepage: projectHomepage}},\n nextSteps: mergedContributions.nextSteps\n };\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default async function ({projectRoot}) {\n const [nvmIsConfigured, packageLockExists, yarnLockExists] = await Promise.all([\n fileExists(`${projectRoot}/.nvmrc`),\n fileExists(`${projectRoot}/package-lock.json`),\n fileExists(`${projectRoot}/yarn.lock`)\n ]);\n\n return nvmIsConfigured || packageLockExists || yarnLockExists;\n}\n","import {questionNames as languageScaffolderPromptsQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames as jsScaffolderQuestionNames} from './prompts/question-names';\n\nexport {default as scaffoldUnitTesting} from './testing/unit';\nexport {default as scaffold} from './scaffolder';\nexport {default as lift} from './lift';\nexport {default as test} from './test';\nexport const questionNames = {...languageScaffolderPromptsQuestionNames, ...jsScaffolderQuestionNames};\n"],"names":["questionNames","promises","deepmerge","scaffoldCodecov","fileExists","execa","fs","lift","liftCodecov","joi","prompt","Separator","validateOptions","scaffoldFrameworkChoice","test","projectTypes","dialects","info","writePackageJson","installDependencies","PROD_DEPENDENCY_TYPE","DEV_DEPENDENCY_TYPE","error","packageManagers","eslint","liftEslint","applyEnhancers","huskyPlugin","commitConventionPlugin","hoek","commonQuestionNames","npmConfFactory","warn","scope","promptWithInquirer","validateScope","commonQuestions","write","fileTypes","stringify","buildGenerationCommand","fsPromises","installNodeVersion","validatePackageName","EOL","filedirname","resolve","defaultBuildDirectory","mustache","camelcase","touch","mkdir","scaffoldChosenBundler","mergeIntoExistingPackageJson","scaffoldRollup","scaffoldChoice","scaffoldHusky","scaffold","scaffoldPrettier","scaffoldCommitConvention","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}
package/lib/index.mjs CHANGED
@@ -1131,6 +1131,7 @@ async function scaffoldProjectTypePlugin ({
1131
1131
  packageName,
1132
1132
  packageManager,
1133
1133
  scope,
1134
+ dialect,
1134
1135
  tests,
1135
1136
  decisions,
1136
1137
  plugins
@@ -1144,7 +1145,7 @@ async function scaffoldProjectTypePlugin ({
1144
1145
  return scaffoldChoice(
1145
1146
  pluginsForProjectType,
1146
1147
  chosenType,
1147
- {projectRoot, projectName, packageName, packageManager, scope, tests}
1148
+ {projectRoot, projectName, packageName, packageManager, scope, tests, dialect}
1148
1149
  );
1149
1150
  }
1150
1151
 
@@ -1421,7 +1422,7 @@ async function scaffolder (options) {
1421
1422
  pathWithinParent
1422
1423
  })
1423
1424
  ]);
1424
- const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([
1425
+ const [nodeVersion, npmResults, dialectResults, codeStyleResults, projectTypePluginResults] = await Promise.all([
1425
1426
  scaffoldNodeVersion({projectRoot, nodeVersionCategory}),
1426
1427
  scaffoldNpmConfig({projectType, projectRoot, registries}),
1427
1428
  scaffoldDialect({
@@ -1441,6 +1442,22 @@ async function scaffolder (options) {
1441
1442
  configureLinting,
1442
1443
  buildDirectory: projectTypeResults.buildDirectory,
1443
1444
  eslint: verificationResults.eslint
1445
+ }),
1446
+ scaffoldProjectTypePlugin({
1447
+ projectRoot,
1448
+ projectType,
1449
+ projectName,
1450
+ packageName,
1451
+ packageManager,
1452
+ scope,
1453
+ dialect,
1454
+ tests,
1455
+ decisions,
1456
+ plugins: {
1457
+ [projectTypes.PACKAGE]: packageTypes,
1458
+ [projectTypes.APPLICATION]: applicationTypes,
1459
+ [projectTypes.MONOREPO]: monorepoTypes
1460
+ }
1444
1461
  })
1445
1462
  ]);
1446
1463
  const mergedContributions = deepmerge.all([
@@ -1451,23 +1468,9 @@ async function scaffolder (options) {
1451
1468
  {buildDirectory: `./${projectTypeResults.buildDirectory}`, projectRoot, projectName, nodeVersion}
1452
1469
  ),
1453
1470
  scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),
1454
- scaffold$5({projectRoot, projectType, configs, pathWithinParent}),
1455
- scaffoldProjectTypePlugin({
1456
- projectRoot,
1457
- projectType,
1458
- projectName,
1459
- packageName,
1460
- packageManager,
1461
- scope,
1462
- tests,
1463
- decisions,
1464
- plugins: {
1465
- [projectTypes.PACKAGE]: packageTypes,
1466
- [projectTypes.APPLICATION]: applicationTypes,
1467
- [projectTypes.MONOREPO]: monorepoTypes
1468
- }
1469
- })
1471
+ scaffold$5({projectRoot, projectType, configs, pathWithinParent})
1470
1472
  ])),
1473
+ projectTypePluginResults,
1471
1474
  projectTypeResults,
1472
1475
  verificationResults,
1473
1476
  codeStyleResults,
package/lib/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/prompts/question-names.js","../src/coverage/c8/scaffolder.js","../src/coverage/scaffolder.js","../src/coverage/nyc/tester.js","../src/dependencies/remover.js","../src/coverage/nyc/remover.js","../src/coverage/lifter.js","../src/coverage/c8/tester.js","../src/coverage/tester.js","../src/testing/options-schemas.js","../src/testing/prompt.js","../src/testing/unit.js","../src/lift/enhancers/engines.js","../src/package/scripts/scaffolder.js","../src/package/scripts/test-script-updater.js","../src/package/scripts/lifter.js","../src/package/details.js","../src/package/scaffolder.js","../src/package/lifter.js","../src/lift/package-manager.js","../src/lift/lift.js","../src/scaffolder/project-type/options-schemas.js","../src/options-validator.js","../src/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/dialects/babel/scaffolder.js","../src/dialects/typescript/scaffolder.js","../src/dialects/scaffolder.js","../src/config/npm.js","../src/documentation/generation-command.js","../src/documentation/scaffolder.js","../src/node-version/tasks.js","../src/node-version/scaffolder.js","../src/badges.js","../src/vcs-ignore.js","../src/package-name.js","../src/scaffolder/project-type/package/documentation.js","../src/scaffolder/project-type/package/badges.js","../src/scaffolder/project-type/package/prompt.js","../src/template-path.js","../src/scaffolder/project-type/package/build-details.js","../src/scaffolder/project-type/package/scaffolder.js","../src/scaffolder/project-type/application.js","../src/scaffolder/project-type/monorepo.js","../src/scaffolder/project-type/cli.js","../src/scaffolder/project-type/scaffolder.js","../src/project-type-plugin/prompt.js","../src/project-type-plugin/scaffolder.js","../src/scaffolder/verification/testing/scaffolder.js","../src/scaffolder/verification/linting/ban-sensitive-files.js","../src/scaffolder/verification/linting/lockfile/allowed-hosts-builder.js","../src/scaffolder/verification/linting/lockfile/scaffolder.js","../src/scaffolder/verification/linting/scaffolder.js","../src/scaffolder/verification/verifier.js","../src/code-style/eslint.js","../src/code-style/remark.js","../src/code-style/scaffolder.js","../src/scaffolder/scaffolder.js","../src/test.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n UNIT_TEST_FRAMEWORK: 'unitTestFramework',\n NODE_VERSION_CATEGORY: 'nodeVersionCategory',\n PACKAGE_MANAGER: 'packageManager',\n PACKAGE_BUNDLER: 'packageBundler',\n PROJECT_TYPE: 'projectType',\n PROJECT_TYPE_CHOICE: 'projectTypeChoice',\n SHOULD_BE_SCOPED: 'shouldBeScoped',\n SCOPE: 'scope',\n AUTHOR_NAME: 'authorName',\n AUTHOR_EMAIL: 'authorEmail',\n AUTHOR_URL: 'authorUrl',\n HOST: 'host',\n CONFIGURE_LINTING: 'configureLint',\n DIALECT: 'dialect'\n};\n","import {promises} from 'fs';\n\nexport default async function ({projectRoot}) {\n await promises.writeFile(\n `${projectRoot}/.c8rc.json`,\n JSON.stringify({\n reporter: ['lcov', 'text-summary', 'html'],\n exclude: ['src/**/*-test.js', 'test/', 'thirdparty-wrappers/', 'vendor/']\n })\n );\n\n return {\n devDependencies: ['cross-env', 'c8'],\n vcsIgnore: {files: [], directories: ['/coverage/']},\n eslint: {ignore: {directories: ['/coverage/']}}\n };\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCodecov} from '@form8ion/codecov';\nimport {scaffold as scaffoldC8} from './c8';\n\nexport default async function ({projectRoot, vcs, visibility, pathWithinParent}) {\n return deepmerge(await scaffoldC8({projectRoot}), await scaffoldCodecov({vcs, visibility, pathWithinParent}));\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.nycrc`);\n}\n","import execa from '../../thirdparty-wrappers/execa';\n\nexport default async function ({packageManager, dependencies}) {\n await execa(packageManager, ['remove', ...dependencies]);\n}\n","import {promises as fs} from 'fs';\nimport removeDependencies from '../../dependencies/remover';\n\nexport default async function ({projectRoot, packageManager}) {\n await Promise.all([\n fs.unlink(`${projectRoot}/.nycrc`),\n fs.rm(`${projectRoot}/.nyc_output`, {recursive: true, force: true}),\n removeDependencies({packageManager, dependencies: ['nyc', '@istanbuljs/nyc-config-babel', 'babel-plugin-istanbul']})\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {lift as liftCodecov} from '@form8ion/codecov';\n\nimport {scaffold as scaffoldC8} from './c8';\nimport {test as nycIsConfigured, remove as removeNyc} from './nyc';\n\nexport async function lift({projectRoot, packageManager}) {\n const codecovResults = await liftCodecov({projectRoot, packageManager});\n\n if (await nycIsConfigured({projectRoot})) {\n const [c8Results] = await Promise.all([\n scaffoldC8({projectRoot}),\n removeNyc({projectRoot, packageManager})\n ]);\n\n return deepmerge.all([\n c8Results,\n codecovResults,\n {\n scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'},\n nextSteps: [{\n summary: 'Remove use of `@istanbuljs/nyc-config-babel` from your babel config, if present,'\n + ' after the migration away from `nyc`'\n }]\n }\n ]);\n }\n\n return {};\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.c8rc.json`);\n}\n","import c8IsConfigured from './c8/tester';\nimport nycIsConfigured from './nyc/tester';\n\nexport default async function ({projectRoot}) {\n const [c8Exists, nycExists] = await Promise.all([c8IsConfigured({projectRoot}), nycIsConfigured({projectRoot})]);\n\n return c8Exists || nycExists;\n}\n","import joi from 'joi';\n\nexport const unitTestFrameworksSchema = joi.object().required().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n}));\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({frameworks, decisions}) {\n if (!Object.keys(frameworks).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.UNIT_TEST_FRAMEWORK,\n type: 'list',\n message: 'Which type of unit testing framework should be used?',\n choices: [...Object.keys(frameworks), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.UNIT_TEST_FRAMEWORK];\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldFrameworkChoice, validateOptions} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCoverage} from '../coverage';\nimport {unitTestFrameworksSchema} from './options-schemas';\nimport chooseFramework from './prompt';\n\nexport default async function ({projectRoot, frameworks, decisions, visibility, vcs, pathWithinParent, dialect}) {\n const validatedFrameworks = validateOptions(unitTestFrameworksSchema, frameworks);\n const [framework, coverage] = await Promise.all([\n chooseFramework({frameworks: validatedFrameworks, decisions})\n .then(chosenFramework => scaffoldFrameworkChoice(validatedFrameworks, chosenFramework, {projectRoot, dialect})),\n scaffoldCoverage({projectRoot, vcs, visibility, pathWithinParent})\n ]);\n\n return deepmerge.all([\n {scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'}},\n framework,\n coverage\n ]);\n}\n","import {promises as fs} from 'fs';\n\nexport async function test({projectRoot}) {\n const {engines} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf8'));\n\n return !!engines?.node;\n}\n\nexport async function lift({projectRoot}) {\n const {name} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf8'));\n\n return {\n devDependencies: ['ls-engines'],\n scripts: {'lint:engines': 'ls-engines'},\n badges: {consumer: {node: {img: `https://img.shields.io/node/v/${name}?logo=node.js`, text: 'node'}}}\n };\n}\n","export default function () {\n return {};\n}\n","function projectWillBeTested(scripts) {\n return Object.keys(scripts).find(scriptName => scriptName.startsWith('test:'));\n}\n\nfunction projectShouldBeBuiltForVerification(scripts) {\n return 'run-s build' === scripts['pregenerate:md'];\n}\n\nexport default function (scripts) {\n return {\n ...scripts,\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\n","import updateTestScript from './test-script-updater';\n\nexport default function ({existingScripts, scripts}) {\n return updateTestScript({...existingScripts, ...scripts});\n}\n","import {dialects, projectTypes} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldScripts} from './scripts';\n\nfunction defineVcsHostDetails(vcs, packageType, packageName, pathWithinParent) {\n return vcs && 'github' === vcs.host && {\n repository: pathWithinParent\n ? {\n type: 'git',\n url: `https://github.com/${vcs.owner}/${vcs.name}.git`,\n directory: pathWithinParent\n }\n : `${vcs.owner}/${vcs.name}`,\n bugs: `https://github.com/${vcs.owner}/${vcs.name}/issues`,\n homepage: (projectTypes.PACKAGE === packageType)\n ? `https://npm.im/${packageName}`\n : `https://github.com/${vcs.owner}/${vcs.name}#readme`\n };\n}\n\nexport default function ({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n ...defineVcsHostDetails(vcs, projectType, packageName, pathWithinParent),\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: scaffoldScripts()\n };\n}\n","import {info} from '@travi/cli-messages';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nimport buildPackageDetails from './details';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n}) {\n info('Configuring package.json');\n\n const packageData = await buildPackageDetails({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n });\n\n await writePackageJson({projectRoot, config: packageData});\n\n return {homepage: packageData.homepage};\n}\n","import {promises as fs} from 'fs';\nimport {error, info} from '@travi/cli-messages';\nimport {\n DEV_DEPENDENCY_TYPE,\n PROD_DEPENDENCY_TYPE,\n installDependencies,\n writePackageJson\n} from '@form8ion/javascript-core';\n\nimport {lift as liftScripts} from './scripts';\n\nexport default async function ({\n projectRoot,\n scripts,\n tags,\n dependencies,\n devDependencies,\n packageManager\n}) {\n if (scripts || tags) {\n info('Updating `package.json`', {level: 'secondary'});\n\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageJsonContents = JSON.parse(await fs.readFile(pathToPackageJson, 'utf8'));\n\n await writePackageJson({\n projectRoot,\n config: {\n ...existingPackageJsonContents,\n scripts: liftScripts({existingScripts: existingPackageJsonContents.scripts, scripts}),\n ...tags && {\n keywords: existingPackageJsonContents.keywords ? [...existingPackageJsonContents.keywords, ...tags] : tags\n }\n }\n });\n }\n\n info('Installing dependencies');\n\n try {\n await installDependencies(dependencies || [], PROD_DEPENDENCY_TYPE, projectRoot, packageManager);\n await installDependencies([...devDependencies || []], DEV_DEPENDENCY_TYPE, projectRoot, packageManager);\n } catch (e) {\n error('Failed to install dependencies');\n }\n}\n","import {fileExists} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nexport default async function ({projectRoot, packageManager}) {\n if (packageManager) return packageManager;\n\n if (await fileExists(`${projectRoot}/package-lock.json`)) {\n return packageManagers.NPM;\n }\n\n if (await fileExists(`${projectRoot}/yarn.lock`)) {\n return packageManagers.YARN;\n }\n\n throw new Error('Package-manager could not be determined');\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftEslint} from '@form8ion/eslint';\nimport * as huskyPlugin from '@form8ion/husky';\nimport * as commitConventionPlugin from '@form8ion/commit-convention';\n\nimport * as coveragePlugin from '../coverage';\nimport * as enginesEnhancer from './enhancers/engines';\nimport {lift as liftPackage} from '../package';\nimport resolvePackageManager from './package-manager';\n\nexport default async function ({projectRoot, vcs, results}) {\n info('Lifting JavaScript-specific details');\n\n const {scripts, tags, eslintConfigs, eslint, dependencies, devDependencies, packageManager: manager} = results;\n\n const packageManager = await resolvePackageManager({projectRoot, packageManager: manager});\n\n const eslintResults = await liftEslint({projectRoot, configs: [...eslintConfigs || [], ...eslint?.configs || []]});\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: [huskyPlugin, enginesEnhancer, coveragePlugin, commitConventionPlugin],\n options: {packageManager, projectRoot, vcs}\n });\n\n await liftPackage(\n deepmerge.all([\n {projectRoot, scripts, tags, dependencies, devDependencies, packageManager},\n enhancerResults,\n eslintResults\n ])\n );\n\n return enhancerResults;\n}\n","import joi from 'joi';\n\nexport const packageBundlersSchema = joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n})).default({});\n","import joi from 'joi';\nimport hoek from '@hapi/hoek';\nimport {unitTestFrameworksSchema} from './testing/options-schemas';\nimport {packageBundlersSchema} from './scaffolder/project-type/options-schemas';\n\nexport function validate(options) {\n const schema = joi.object().required()\n .keys({\n projectRoot: joi.string().required(),\n projectName: joi.string().regex(/^@\\w*\\//, {invert: true}).required(),\n visibility: joi.string().valid('Public', 'Private').required(),\n license: joi.string().required(),\n description: joi.string(),\n pathWithinParent: joi.string()\n })\n .keys({\n vcs: joi.object({\n host: joi.string().required(),\n owner: joi.string().required(),\n name: joi.string().required()\n })\n })\n .keys({\n configs: joi.object({\n eslint: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n typescript: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n prettier: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n commitlint: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n babelPreset: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n remark: joi.string()\n }).default({})\n })\n .keys({\n overrides: joi.object({\n npmAccount: joi.string(),\n author: joi.object({\n name: joi.string().required(),\n email: joi.string().email(),\n url: joi.string().uri()\n })\n }).default({})\n })\n .keys({\n ciServices: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n public: joi.boolean(),\n private: joi.boolean()\n })).default({})\n })\n .keys({\n hosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n projectTypes: joi.array().items(joi.string().valid('static', 'node')).default([])\n })).default({})\n })\n .keys({\n applicationTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n packageTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n monorepoTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n }))\n })\n .keys({\n unitTestFrameworks: unitTestFrameworksSchema,\n packageBundlers: packageBundlersSchema\n })\n .keys({\n decisions: joi.object()\n })\n .keys({registries: joi.object().pattern(joi.string(), joi.string().uri()).default({})});\n const {error, value} = schema.validate(options);\n\n hoek.assert(!error, error);\n\n return value;\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nexport default function ({babelPreset, typescript}) {\n return [\n {name: 'Common JS (no transpilation)', value: dialects.COMMON_JS, short: 'cjs'},\n ...babelPreset ? [{name: 'Modern JavaScript (transpiled)', value: dialects.BABEL, short: 'modern'}] : [],\n {name: 'ESM-only (no transpilation)', value: dialects.ESM, short: 'esm'},\n ...typescript ? [{name: 'TypeScript', value: dialects.TYPESCRIPT, short: 'ts'}] : []\n ];\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport {questionNames as commonQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames} from './question-names';\n\nfunction projectIsPackage(answers) {\n return projectTypes.PACKAGE === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction projectIsCLI(answers) {\n return projectTypes.CLI === answers[questionNames.PROJECT_TYPE];\n}\n\nexport function projectIsApplication(answers) {\n return projectTypes.APPLICATION === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction packageShouldBeScoped(visibility, answers) {\n return 'Private' === visibility || answers[questionNames.SHOULD_BE_SCOPED];\n}\n\nfunction willBePublishedToNpm(answers) {\n return projectIsPackage(answers) || projectIsCLI(answers);\n}\n\nexport function shouldBeScopedPromptShouldBePresented(answers) {\n return willBePublishedToNpm(answers);\n}\n\nexport function scopePromptShouldBePresentedFactory(visibility) {\n return answers => willBePublishedToNpm(answers) && packageShouldBeScoped(visibility, answers);\n}\n\nexport function lintingPromptShouldBePresented({\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested\n}) {\n return !unitTested && !integrationTested;\n}\n","export function scope(visibility) {\n return input => {\n if (!input && 'Private' === visibility) {\n return 'Private packages must be scoped (https://docs.npmjs.com/private-modules/intro#setting-up-your-package)';\n }\n\n return true;\n };\n}\n","import {packageManagers, projectTypes} from '@form8ion/javascript-core';\nimport {prompt as promptWithInquirer, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames as commonQuestionNames, questions as commonQuestions} from '@travi/language-scaffolder-prompts';\nimport {warn} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\nimport npmConfFactory from '../../thirdparty-wrappers/npm-conf';\nimport buildDialectChoices from '../dialects/prompt-choices';\nimport {\n lintingPromptShouldBePresented,\n projectIsApplication,\n scopePromptShouldBePresentedFactory,\n shouldBeScopedPromptShouldBePresented\n} from './conditionals';\nimport {questionNames} from './question-names';\nimport {scope as validateScope} from './validators';\n\nfunction authorQuestions({name, email, url}) {\n return [\n {\n name: questionNames.AUTHOR_NAME,\n message: 'What is the author\\'s name?',\n default: name\n },\n {\n name: questionNames.AUTHOR_EMAIL,\n message: 'What is the author\\'s email?',\n default: email\n },\n {\n name: questionNames.AUTHOR_URL,\n message: 'What is the author\\'s website url?',\n default: url\n }\n ];\n}\n\nexport async function prompt(\n {npmAccount, author},\n ciServices,\n hosts,\n visibility,\n vcs,\n decisions,\n configs,\n pathWithinParent\n) {\n const npmConf = npmConfFactory();\n\n let maybeLoggedInNpmUsername;\n try {\n maybeLoggedInNpmUsername = (await execa('npm', ['whoami'])).stdout;\n } catch (failedExecutionResult) {\n if (!decisions[questionNames.SCOPE]) {\n warn('No logged in user found with `npm whoami`. Login with `npm login` '\n + 'to use your npm account name as the package scope default.');\n }\n }\n\n const {\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested,\n [questionNames.PROJECT_TYPE]: projectType,\n [commonQuestionNames.CI_SERVICE]: ci,\n [questionNames.HOST]: chosenHost,\n [questionNames.SCOPE]: scope,\n [questionNames.NODE_VERSION_CATEGORY]: nodeVersionCategory,\n [questionNames.AUTHOR_NAME]: authorName,\n [questionNames.AUTHOR_EMAIL]: authorEmail,\n [questionNames.AUTHOR_URL]: authorUrl,\n [questionNames.CONFIGURE_LINTING]: configureLinting,\n [questionNames.PACKAGE_MANAGER]: packageManager,\n [questionNames.DIALECT]: dialect\n } = await promptWithInquirer([\n {\n name: questionNames.DIALECT,\n message: 'Which JavaScript dialect should this project follow?',\n type: 'list',\n choices: buildDialectChoices(configs),\n default: 'babel'\n },\n ...pathWithinParent ? [] : [{\n name: questionNames.NODE_VERSION_CATEGORY,\n message: 'What node.js version should be used?',\n type: 'list',\n choices: ['LTS', 'Latest'],\n default: 'LTS'\n }],\n {\n name: questionNames.PACKAGE_MANAGER,\n message: 'Which package manager will be used with this project?',\n type: 'list',\n choices: Object.values(packageManagers),\n default: packageManagers.NPM\n },\n {\n name: questionNames.PROJECT_TYPE,\n message: 'What type of JavaScript project is this?',\n type: 'list',\n choices: [...Object.values(projectTypes), new Separator(), 'Other'],\n default: projectTypes.PACKAGE\n },\n ...'Private' === visibility ? [] : [{\n name: questionNames.SHOULD_BE_SCOPED,\n message: 'Should this package be scoped?',\n type: 'confirm',\n when: shouldBeScopedPromptShouldBePresented,\n default: true\n }],\n {\n name: questionNames.SCOPE,\n message: 'What is the scope?',\n when: scopePromptShouldBePresentedFactory(visibility),\n validate: validateScope(visibility),\n default: npmAccount || maybeLoggedInNpmUsername\n },\n ...authorQuestions(author || {\n name: npmConf.get('init.author.name'),\n email: npmConf.get('init.author.email'),\n url: npmConf.get('init.author.url')\n }),\n ...commonQuestions(({vcs, ciServices, visibility, pathWithinParent})),\n {\n name: questionNames.CONFIGURE_LINTING,\n message: 'Will there be source code that should be linted?',\n type: 'confirm',\n when: lintingPromptShouldBePresented\n },\n {\n name: questionNames.HOST,\n type: 'list',\n message: 'Where will the application be hosted?',\n when: projectIsApplication,\n choices: [...Object.keys(hosts), new Separator(), 'Other']\n }\n ], decisions);\n\n return {\n tests: {unit: unitTested, integration: integrationTested},\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author: {name: authorName, email: authorEmail, url: authorUrl},\n configureLinting: false !== configureLinting,\n packageManager,\n dialect\n };\n}\n","import {write} from '@form8ion/config-file';\nimport {fileTypes} from '@form8ion/core';\n\nexport default async function ({projectRoot, preset, buildDirectory}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await write({\n path: projectRoot,\n name: 'babel',\n format: fileTypes.JSON,\n config: {presets: [preset.name], ignore: [`./${buildDirectory}/`]}\n });\n\n return {\n devDependencies: ['@babel/register', preset.packageName],\n eslint: {}\n };\n}\n","import {promises as fs} from 'fs';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectType, projectRoot, testFilenamePattern}) {\n const eslintConfigs = ['typescript'];\n const shareableTsConfigPackage = `${config.scope}/tsconfig`;\n\n await fs.writeFile(\n `${projectRoot}/tsconfig.json`,\n JSON.stringify({\n $schema: 'https://json.schemastore.org/tsconfig',\n extends: shareableTsConfigPackage,\n compilerOptions: {\n rootDir: 'src',\n ...projectTypes.PACKAGE === projectType && {\n outDir: 'lib',\n declaration: true\n }\n },\n include: ['src/**/*.ts'],\n ...testFilenamePattern && {exclude: [testFilenamePattern]}\n })\n );\n\n return {\n eslint: {configs: eslintConfigs},\n eslintConfigs,\n devDependencies: ['typescript', shareableTsConfigPackage],\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldBabel} from './babel';\nimport {scaffold as scaffoldTypescript} from './typescript';\n\nexport default function ({dialect, projectType, projectRoot, configs, buildDirectory, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot, buildDirectory});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n default:\n return {};\n }\n}\n","import {promises as fs} from 'fs';\nimport {stringify} from 'ini';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nfunction projectWillNotBeConsumed(projectType) {\n return projectTypes.APPLICATION === projectType || projectTypes.CLI === projectType;\n}\n\nexport default async function ({\n projectRoot,\n projectType,\n registries\n}) {\n await fs.writeFile(\n `${projectRoot}/.npmrc`,\n stringify({\n 'update-notifier': false,\n ...projectWillNotBeConsumed(projectType) && {'save-exact': true},\n ...Object.fromEntries(Object.entries(registries)\n .filter(([scope]) => 'publish' !== scope)\n .map(([scope, url]) => {\n if ('registry' === scope) return ['registry', url];\n\n return [`@${scope}:registry`, url];\n }))\n })\n );\n\n return {scripts: {'lint:peer': 'npm ls >/dev/null'}};\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nexport default function (packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm run generate:md';\n if (packageManagers.YARN === packageManager) return 'yarn generate:md';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n","import buildGenerationCommand from './generation-command';\n\nexport default function ({projectTypeResults, packageManager}) {\n return {\n toc: `Run \\`${buildGenerationCommand(packageManager)}\\` to generate a table of contents`,\n ...projectTypeResults.documentation,\n contributing: `### Dependencies\n\n\\`\\`\\`sh\n$ nvm install\n$ ${packageManager} install\n\\`\\`\\`\n\n### Verification\n\n\\`\\`\\`sh\n$ ${packageManager} test\n\\`\\`\\``\n };\n}\n","import {info} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\n\nexport async function determineLatestVersionOf(nodeVersionCategory) {\n info('Determining version of node', {level: 'secondary'});\n\n const {stdout: nvmLsOutput} = await execa(\n `. ~/.nvm/nvm.sh && nvm ls-remote${('LTS' === nodeVersionCategory) ? ' --lts' : ''}`,\n {shell: true}\n );\n\n const lsLines = nvmLsOutput.split('\\n');\n const lsLine = lsLines[lsLines.length - 2];\n\n return lsLine.match(/(v[0-9]+)\\.[0-9]+\\.[0-9]+/)[1];\n}\n\nexport function install(nodeVersionCategory) {\n info(`Installing ${nodeVersionCategory} version of node using nvm`, {level: 'secondary'});\n\n const subprocess = execa('. ~/.nvm/nvm.sh && nvm install', {shell: true});\n subprocess.stdout.pipe(process.stdout);\n return subprocess;\n}\n","import {promises as fsPromises} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport {determineLatestVersionOf, install as installNodeVersion} from './tasks';\n\nexport default async function ({projectRoot, nodeVersionCategory}) {\n if (!nodeVersionCategory) return undefined;\n\n const lowerCaseCategory = nodeVersionCategory.toLowerCase();\n info(`Configuring ${lowerCaseCategory} version of node`);\n\n const version = await determineLatestVersionOf(nodeVersionCategory);\n\n await fsPromises.writeFile(`${projectRoot}/.nvmrc`, version);\n\n await installNodeVersion(nodeVersionCategory);\n\n return version;\n}\n","import deepmerge from 'deepmerge';\n\nexport default function (contributors) {\n return deepmerge.all(contributors).badges;\n}\n","export default function (vcsIgnoreLists = {}) {\n return {\n files: vcsIgnoreLists.files || [],\n directories: ['/node_modules/', ...vcsIgnoreLists.directories || []]\n };\n}\n","import {EOL} from 'os';\nimport validatePackageName from '../thirdparty-wrappers/validate-npm-package-name';\n\nexport default function (projectName, scope) {\n const name = `${scope ? `@${scope}/` : ''}${projectName}`;\n\n const {validForNewPackages, errors} = validatePackageName(name);\n\n if (validForNewPackages) return name;\n if (1 === errors.length && errors.includes('name cannot start with a period')) return projectName.slice(1);\n\n throw new Error(`The package name ${name} is invalid:${EOL}\\t* ${errors.join(`${EOL}\\t* `)}`);\n}\n","import {packageManagers} from '@form8ion/javascript-core';\nimport buildGenerationCommand from '../../../documentation/generation-command';\n\nfunction getInstallationCommand(packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm install';\n if (packageManagers.YARN === packageManager) return 'yarn add';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n\nexport default function ({scope, packageName, packageManager, visibility}) {\n return {\n usage: `### Installation\n${'Private' === visibility ? `\n:warning: this is a private package, so you will need to use an npm token with\naccess to private packages under \\`@${scope}\\`\n` : ''\n}\n\\`\\`\\`sh\n$ ${getInstallationCommand(packageManager)} ${packageName}\n\\`\\`\\`\n\n### Example\n\nrun \\`${buildGenerationCommand(packageManager)}\\` to inject the usage example`\n };\n}\n","export default function (packageName, visibility) {\n return {\n consumer: {\n ...'Public' === visibility && {\n npm: {\n img: `https://img.shields.io/npm/v/${packageName}?logo=npm`,\n text: 'npm',\n link: `https://www.npmjs.com/package/${packageName}`\n }\n }\n },\n status: {}\n };\n}\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../../../prompts/question-names';\n\nexport default async function ({bundlers, decisions}) {\n if (!Object.keys(bundlers).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PACKAGE_BUNDLER,\n type: 'list',\n message: 'Which bundler should be used?',\n choices: [...Object.keys(bundlers), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PACKAGE_BUNDLER];\n}\n","import {resolve} from 'path';\nimport filedirname from 'filedirname';\n\nexport default function (fileName) {\n const [, __dirname] = filedirname();\n\n return resolve(__dirname, '..', 'templates', fileName);\n}\n","import {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport mustache from 'mustache';\nimport {dialects, projectTypes, scaffoldChoice as scaffoldChosenBundler} from '@form8ion/javascript-core';\n\nimport camelcase from '../../../../thirdparty-wrappers/camelcase';\nimport mkdir from '../../../../thirdparty-wrappers/make-dir';\nimport touch from '../../../../thirdparty-wrappers/touch';\nimport chooseBundler from './prompt';\nimport determinePathToTemplateFile from '../../../template-path';\n\nconst defaultBuildDirectory = 'lib';\n\nasync function createExample(projectRoot, projectName) {\n return fs.writeFile(\n `${projectRoot}/example.js`,\n mustache.render(\n await fs.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),\n {projectName: camelcase(projectName)}\n )\n );\n}\n\nasync function buildDetailsForCommonJsProject({projectRoot, projectName}) {\n await Promise.all([\n touch(`${projectRoot}/index.js`),\n fs.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\\n`)\n ]);\n\n return {};\n}\n\nexport default async function ({\n projectRoot,\n projectName,\n visibility,\n packageName,\n packageBundlers,\n dialect,\n decisions\n}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName});\n\n const chosenBundler = await chooseBundler({bundlers: packageBundlers, decisions});\n\n const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);\n const [bundlerResults] = await Promise.all([\n scaffoldChosenBundler(packageBundlers, chosenBundler, {projectRoot, dialect, projectType: projectTypes.PACKAGE}),\n await createExample(projectRoot, projectName),\n touch(`${pathToCreatedSrcDirectory}/index.js`)\n ]);\n\n return deepmerge(\n bundlerResults,\n {\n devDependencies: ['rimraf'],\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n vcsIgnore: {directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: {\n consumer: {\n ...'Public' === visibility && {\n runkit: {\n img: `https://badge.runkitcdn.com/${packageName}.svg`,\n text: `Try ${packageName} on RunKit`,\n link: `https://npm.runkit.com/${packageName}`\n }\n }\n }\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {dialects, mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport scaffoldPackageDocumentation from './documentation';\nimport defineBadges from './badges';\nimport buildDetails from './build-details';\n\nexport default async function ({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n decisions,\n dialect,\n publishRegistry\n}) {\n info('Scaffolding Package Details');\n\n const [detailsForBuild] = await Promise.all([\n buildDetails({projectRoot, projectName, packageBundlers, visibility, packageName, dialect, decisions}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n files: ['example.js', ...dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/']],\n publishConfig: {\n access: 'Public' === visibility ? 'public' : 'restricted',\n ...publishRegistry && {registry: publishRegistry}\n },\n sideEffects: false,\n ...'Public' === visibility && {runkitExampleFilename: './example.js'},\n ...dialects.BABEL === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n exports: {\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n },\n ...dialects.ESM === dialect && {\n main: './lib/index.mjs',\n exports: './lib/index.mjs'\n },\n ...dialects.TYPESCRIPT === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n types: './lib/index.d.ts',\n exports: {\n types: './lib/index.d.ts',\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n }\n }\n })\n ]);\n\n return deepmerge.all([\n {\n documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager}),\n eslintConfigs: [],\n nextSteps: [\n {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},\n {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}\n ],\n scripts: {},\n badges: defineBadges(packageName, visibility)\n },\n detailsForBuild\n ]);\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nconst defaultBuildDirectory = 'public';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Application Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n const buildDirectory = defaultBuildDirectory;\n\n return {\n scripts: {\n clean: `rimraf ./${buildDirectory}`,\n start: `node ./${buildDirectory}/index.js`,\n prebuild: 'run-s clean'\n },\n dependencies: [],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},\n buildDirectory,\n eslintConfigs: [],\n nextSteps: []\n };\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Monorepo Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n return {\n eslintConfigs: [],\n nextSteps: [{\n summary: 'Add packages to your new monorepo',\n description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'\n + ' to scaffold new packages into your new monorepo'\n }]\n };\n}\n","import deepmerge from 'deepmerge';\nimport {mergeIntoExistingPackageJson, projectTypes} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport defineBadges from './package/badges';\n\nconst defaultBuildDirectory = 'bin';\n\nexport default async function ({packageName, visibility, projectRoot, dialect, publishRegistry}) {\n const [rollupResults] = await Promise.all([\n scaffoldRollup({projectRoot, dialect, projectType: projectTypes.CLI}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {\n access: 'Public' === visibility ? 'public' : 'restricted',\n ...publishRegistry && {registry: publishRegistry}\n }\n }\n })\n ]);\n\n return deepmerge(\n rollupResults,\n {\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n dependencies: ['update-notifier'],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: defineBadges(packageName, visibility),\n eslintConfigs: [],\n nextSteps: []\n }\n );\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport scaffoldPackageType from './package';\nimport scaffoldApplicationType from './application';\nimport scaffoldMonorepoType from './monorepo';\nimport scaffoldCliType from './cli';\n\nexport default async function ({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n packageBundlers,\n scope,\n vcs,\n decisions,\n dialect,\n publishRegistry\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n vcs,\n decisions,\n dialect,\n publishRegistry\n });\n case projectTypes.APPLICATION:\n return scaffoldApplicationType({projectRoot});\n case projectTypes.CLI:\n return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});\n case projectTypes.MONOREPO:\n return scaffoldMonorepoType({projectRoot});\n case 'Other':\n return {\n eslintConfigs: []\n };\n default:\n throw new Error(`The project-type of ${projectType} is invalid`);\n }\n}\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({types, projectType, decisions}) {\n if (!Object.keys(types).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PROJECT_TYPE_CHOICE,\n type: 'list',\n message: `What type of ${projectType} is this?`,\n choices: [...Object.keys(types), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PROJECT_TYPE_CHOICE];\n}\n","import {scaffoldChoice} from '@form8ion/javascript-core';\n\nimport chooseProjectTypePlugin from './prompt';\n\nexport default async function ({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n tests,\n decisions,\n plugins\n}) {\n const pluginsForProjectType = plugins[projectType];\n\n if (!pluginsForProjectType) return {};\n\n const chosenType = await chooseProjectTypePlugin({types: pluginsForProjectType, decisions, projectType});\n\n return scaffoldChoice(\n pluginsForProjectType,\n chosenType,\n {projectRoot, projectName, packageName, packageManager, scope, tests}\n );\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldUnitTesting from '../../../testing/unit';\n\nexport default async function ({\n projectRoot,\n visibility,\n tests: {unit, integration},\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n}) {\n const unitResults = unit\n ? await scaffoldUnitTesting({\n projectRoot,\n visibility,\n vcs,\n frameworks: unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n })\n : {};\n\n return deepmerge({devDependencies: [...(unit || integration) ? ['@travi/any'] : []], eslint: {}}, unitResults);\n}\n","export default function ({pathWithinParent}) {\n if (pathWithinParent) return {};\n\n return {scripts: {'lint:sensitive': 'ban'}, devDependencies: ['ban-sensitive-files']};\n}\n","export default function ({packageManager, registries}) {\n return [\n ...(!registries || (registries && !registries.registry)) ? [packageManager] : [],\n ...Object.values(Object.fromEntries(Object.entries(registries).filter(([scope]) => 'publish' !== scope)))\n ];\n}\n","import {promises as fs} from 'fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport buildAllowedHostsList from './allowed-hosts-builder';\n\nconst lockfileLintSupportedPackageManagers = [packageManagers.NPM, packageManagers.YARN];\n\nfunction determineLockfilePathFor(packageManager) {\n const lockfilePaths = {\n [packageManagers.NPM]: 'package-lock.json',\n [packageManagers.YARN]: 'yarn.lock'\n };\n\n return lockfilePaths[packageManager];\n}\n\nfunction lockfileLintSupports(packageManager) {\n return lockfileLintSupportedPackageManagers.includes(packageManager);\n}\n\nexport default async function ({projectRoot, packageManager, registries}) {\n if (!lockfileLintSupports(packageManager)) {\n throw new Error(\n `The ${packageManager} package manager is currently not supported by lockfile-lint. `\n + `Only ${lockfileLintSupportedPackageManagers.join(' and ')} are currently supported.`\n );\n }\n\n await fs.writeFile(\n `${projectRoot}/.lockfile-lintrc.json`,\n JSON.stringify({\n path: determineLockfilePathFor(packageManager),\n type: packageManager,\n 'validate-https': true,\n 'allowed-hosts': buildAllowedHostsList({packageManager, registries})\n })\n );\n\n return {\n devDependencies: ['lockfile-lint'],\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldBanSensitiveFiles from './ban-sensitive-files';\nimport {scaffold as scaffoldLockfileLint} from './lockfile';\n\nexport default async function ({projectRoot, packageManager, registries, vcs, pathWithinParent}) {\n return deepmerge.all(await Promise.all([\n scaffoldLockfileLint({projectRoot, packageManager, registries}),\n vcs ? scaffoldBanSensitiveFiles({pathWithinParent}) : {}\n ]));\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldHusky} from '@form8ion/husky';\n\nimport scaffoldTesting from './testing';\nimport scaffoldLinting from './linting';\n\nexport async function scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n}) {\n const [testingResults, lintingResults, huskyResults] = await Promise.all([\n scaffoldTesting({\n projectRoot,\n tests,\n visibility,\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n }),\n scaffoldLinting({projectRoot, packageManager, registries, vcs, pathWithinParent}),\n scaffoldHusky({projectRoot, packageManager, pathWithinParent})\n ]);\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import {scaffold} from '@form8ion/eslint';\nimport deepmerge from 'deepmerge';\n\nexport default async function ({config, projectRoot, buildDirectory, additionalConfiguration}) {\n const {scope} = config;\n const {ignore} = additionalConfiguration;\n const ignores = deepmerge(ignore, {directories: [`/${buildDirectory}/`]});\n\n return scaffold({scope, projectRoot, ignore: {directories: ignores.directories}});\n}\n","import deepmerge from 'deepmerge';\nimport {fileTypes} from '@form8ion/core';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\nimport {write} from '@form8ion/config-file';\n\nexport default async function ({config, projectRoot, projectType, vcs, dialect}) {\n await write({\n format: fileTypes.JSON,\n path: projectRoot,\n name: 'remark',\n config: {\n settings: {\n listItemIndent: 1,\n emphasis: '_',\n strong: '_',\n bullet: '*',\n incrementListMarker: false\n },\n plugins: [\n config,\n ['remark-toc', {tight: true}],\n ...projectTypes.PACKAGE === projectType ? [['remark-usage', {heading: 'example'}]] : [],\n ...!vcs ? [['validate-links', {repository: false}]] : []\n ]\n }\n });\n\n return deepmerge(\n {\n devDependencies: [config, 'remark-cli', 'remark-toc'],\n scripts: {\n 'lint:md': 'remark . --frail',\n 'generate:md': 'remark . --output'\n }\n },\n {\n ...projectTypes.PACKAGE === projectType && {\n devDependencies: ['remark-usage'],\n ...dialects.COMMON_JS !== dialect && {scripts: {'pregenerate:md': 'run-s build'}}\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldPrettier} from '@form8ion/prettier';\n\nimport scaffoldEslint from './eslint';\nimport scaffoldRemark from './remark';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n configs,\n vcs,\n configureLinting,\n buildDirectory,\n eslint\n}) {\n return deepmerge.all(await Promise.all([\n configs.eslint && configureLinting\n && scaffoldEslint({\n projectRoot,\n config: configs.eslint,\n buildDirectory,\n additionalConfiguration: eslint\n }),\n scaffoldRemark({\n projectRoot,\n projectType,\n dialect,\n vcs,\n config: configs.remark || '@form8ion/remark-lint-preset'\n }),\n scaffoldPrettier({projectRoot, config: configs.prettier})\n ].filter(Boolean)));\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {projectTypes, scaffoldChoice} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCommitConvention} from '@form8ion/commit-convention';\n\nimport lift from '../lift';\nimport {validate} from '../options-validator';\nimport {prompt} from '../prompts/questions';\nimport {scaffold as scaffoldDialect} from '../dialects';\nimport scaffoldNpmConfig from '../config/npm';\nimport scaffoldDocumentation from '../documentation';\nimport scaffoldNodeVersion from '../node-version';\nimport buildBadgesDetails from '../badges';\nimport buildVcsIgnoreLists from '../vcs-ignore';\nimport {scaffold as scaffoldPackage} from '../package';\nimport buildPackageName from '../package-name';\nimport scaffoldProjectType from './project-type';\nimport {scaffold as scaffoldProjectTypePlugin} from '../project-type-plugin';\nimport buildDocumentationCommand from '../documentation/generation-command';\nimport {scaffold as scaffoldVerification} from './verification';\nimport {scaffold as scaffoldCodeStyle} from '../code-style';\n\nexport default async function (options) {\n info('Initializing JavaScript project');\n\n const {\n projectRoot,\n projectName,\n visibility,\n license,\n vcs,\n description,\n configs,\n overrides,\n ciServices,\n hosts,\n applicationTypes,\n packageTypes,\n packageBundlers,\n monorepoTypes,\n decisions,\n unitTestFrameworks,\n pathWithinParent,\n registries\n } = validate(options);\n\n const {\n tests,\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author,\n configureLinting,\n packageManager,\n dialect\n } = await prompt(overrides, ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);\n\n info('Writing project files', {level: 'secondary'});\n\n const packageName = buildPackageName(projectName, scope);\n const {homepage: projectHomepage} = await scaffoldPackage({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n });\n const [projectTypeResults, verificationResults] = await Promise.all([\n scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n packageBundlers,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect,\n publishRegistry: registries.publish\n }),\n scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n })\n ]);\n const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([\n scaffoldNodeVersion({projectRoot, nodeVersionCategory}),\n scaffoldNpmConfig({projectType, projectRoot, registries}),\n scaffoldDialect({\n dialect,\n configs,\n projectRoot,\n projectType,\n buildDirectory: projectTypeResults.buildDirectory,\n testFilenamePattern: verificationResults.testFilenamePattern\n }),\n scaffoldCodeStyle({\n projectRoot,\n projectType,\n dialect,\n configs,\n vcs,\n configureLinting,\n buildDirectory: projectTypeResults.buildDirectory,\n eslint: verificationResults.eslint\n })\n ]);\n const mergedContributions = deepmerge.all([\n ...(await Promise.all([\n scaffoldChoice(\n hosts,\n chosenHost,\n {buildDirectory: `./${projectTypeResults.buildDirectory}`, projectRoot, projectName, nodeVersion}\n ),\n scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),\n scaffoldCommitConvention({projectRoot, projectType, configs, pathWithinParent}),\n scaffoldProjectTypePlugin({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n tests,\n decisions,\n plugins: {\n [projectTypes.PACKAGE]: packageTypes,\n [projectTypes.APPLICATION]: applicationTypes,\n [projectTypes.MONOREPO]: monorepoTypes\n }\n })\n ])),\n projectTypeResults,\n verificationResults,\n codeStyleResults,\n npmResults,\n dialectResults\n ]);\n\n const liftResults = await lift({\n results: deepmerge({devDependencies: ['npm-run-all'], packageManager}, mergedContributions),\n projectRoot,\n configs,\n vcs\n });\n\n return {\n badges: buildBadgesDetails([mergedContributions, liftResults]),\n documentation: scaffoldDocumentation({projectTypeResults, packageManager}),\n tags: projectTypeResults.tags,\n vcsIgnore: buildVcsIgnoreLists(mergedContributions.vcsIgnore),\n verificationCommand: `${buildDocumentationCommand(packageManager)} && ${packageManager} test`,\n projectDetails: {...projectHomepage && {homepage: projectHomepage}},\n nextSteps: mergedContributions.nextSteps\n };\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default async function ({projectRoot}) {\n const [nvmIsConfigured, packageLockExists, yarnLockExists] = await Promise.all([\n fileExists(`${projectRoot}/.nvmrc`),\n fileExists(`${projectRoot}/package-lock.json`),\n fileExists(`${projectRoot}/yarn.lock`)\n ]);\n\n return nvmIsConfigured || packageLockExists || yarnLockExists;\n}\n","import {questionNames as languageScaffolderPromptsQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames as jsScaffolderQuestionNames} from './prompts/question-names';\n\nexport {default as scaffoldUnitTesting} from './testing/unit';\nexport {default as scaffold} from './scaffolder';\nexport {default as lift} from './lift';\nexport {default as test} from './test';\nexport const questionNames = {...languageScaffolderPromptsQuestionNames, ...jsScaffolderQuestionNames};\n"],"names":["questionNames","scaffoldCodecov","fs","lift","liftCodecov","prompt","scaffoldFrameworkChoice","test","liftEslint","commonQuestionNames","npmConf","npmConfFactory","scope","promptWithInquirer","validateScope","commonQuestions","buildGenerationCommand","fsPromises","installNodeVersion","defaultBuildDirectory","mkdir","scaffoldChosenBundler","scaffoldRollup","scaffoldHusky","scaffold","scaffoldPrettier","scaffoldCommitConvention","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/prompts/question-names.js","../src/coverage/c8/scaffolder.js","../src/coverage/scaffolder.js","../src/coverage/nyc/tester.js","../src/dependencies/remover.js","../src/coverage/nyc/remover.js","../src/coverage/lifter.js","../src/coverage/c8/tester.js","../src/coverage/tester.js","../src/testing/options-schemas.js","../src/testing/prompt.js","../src/testing/unit.js","../src/lift/enhancers/engines.js","../src/package/scripts/scaffolder.js","../src/package/scripts/test-script-updater.js","../src/package/scripts/lifter.js","../src/package/details.js","../src/package/scaffolder.js","../src/package/lifter.js","../src/lift/package-manager.js","../src/lift/lift.js","../src/scaffolder/project-type/options-schemas.js","../src/options-validator.js","../src/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/dialects/babel/scaffolder.js","../src/dialects/typescript/scaffolder.js","../src/dialects/scaffolder.js","../src/config/npm.js","../src/documentation/generation-command.js","../src/documentation/scaffolder.js","../src/node-version/tasks.js","../src/node-version/scaffolder.js","../src/badges.js","../src/vcs-ignore.js","../src/package-name.js","../src/scaffolder/project-type/package/documentation.js","../src/scaffolder/project-type/package/badges.js","../src/scaffolder/project-type/package/prompt.js","../src/template-path.js","../src/scaffolder/project-type/package/build-details.js","../src/scaffolder/project-type/package/scaffolder.js","../src/scaffolder/project-type/application.js","../src/scaffolder/project-type/monorepo.js","../src/scaffolder/project-type/cli.js","../src/scaffolder/project-type/scaffolder.js","../src/project-type-plugin/prompt.js","../src/project-type-plugin/scaffolder.js","../src/scaffolder/verification/testing/scaffolder.js","../src/scaffolder/verification/linting/ban-sensitive-files.js","../src/scaffolder/verification/linting/lockfile/allowed-hosts-builder.js","../src/scaffolder/verification/linting/lockfile/scaffolder.js","../src/scaffolder/verification/linting/scaffolder.js","../src/scaffolder/verification/verifier.js","../src/code-style/eslint.js","../src/code-style/remark.js","../src/code-style/scaffolder.js","../src/scaffolder/scaffolder.js","../src/test.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n UNIT_TEST_FRAMEWORK: 'unitTestFramework',\n NODE_VERSION_CATEGORY: 'nodeVersionCategory',\n PACKAGE_MANAGER: 'packageManager',\n PACKAGE_BUNDLER: 'packageBundler',\n PROJECT_TYPE: 'projectType',\n PROJECT_TYPE_CHOICE: 'projectTypeChoice',\n SHOULD_BE_SCOPED: 'shouldBeScoped',\n SCOPE: 'scope',\n AUTHOR_NAME: 'authorName',\n AUTHOR_EMAIL: 'authorEmail',\n AUTHOR_URL: 'authorUrl',\n HOST: 'host',\n CONFIGURE_LINTING: 'configureLint',\n DIALECT: 'dialect'\n};\n","import {promises} from 'fs';\n\nexport default async function ({projectRoot}) {\n await promises.writeFile(\n `${projectRoot}/.c8rc.json`,\n JSON.stringify({\n reporter: ['lcov', 'text-summary', 'html'],\n exclude: ['src/**/*-test.js', 'test/', 'thirdparty-wrappers/', 'vendor/']\n })\n );\n\n return {\n devDependencies: ['cross-env', 'c8'],\n vcsIgnore: {files: [], directories: ['/coverage/']},\n eslint: {ignore: {directories: ['/coverage/']}}\n };\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCodecov} from '@form8ion/codecov';\nimport {scaffold as scaffoldC8} from './c8';\n\nexport default async function ({projectRoot, vcs, visibility, pathWithinParent}) {\n return deepmerge(await scaffoldC8({projectRoot}), await scaffoldCodecov({vcs, visibility, pathWithinParent}));\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.nycrc`);\n}\n","import execa from '../../thirdparty-wrappers/execa';\n\nexport default async function ({packageManager, dependencies}) {\n await execa(packageManager, ['remove', ...dependencies]);\n}\n","import {promises as fs} from 'fs';\nimport removeDependencies from '../../dependencies/remover';\n\nexport default async function ({projectRoot, packageManager}) {\n await Promise.all([\n fs.unlink(`${projectRoot}/.nycrc`),\n fs.rm(`${projectRoot}/.nyc_output`, {recursive: true, force: true}),\n removeDependencies({packageManager, dependencies: ['nyc', '@istanbuljs/nyc-config-babel', 'babel-plugin-istanbul']})\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {lift as liftCodecov} from '@form8ion/codecov';\n\nimport {scaffold as scaffoldC8} from './c8';\nimport {test as nycIsConfigured, remove as removeNyc} from './nyc';\n\nexport async function lift({projectRoot, packageManager}) {\n const codecovResults = await liftCodecov({projectRoot, packageManager});\n\n if (await nycIsConfigured({projectRoot})) {\n const [c8Results] = await Promise.all([\n scaffoldC8({projectRoot}),\n removeNyc({projectRoot, packageManager})\n ]);\n\n return deepmerge.all([\n c8Results,\n codecovResults,\n {\n scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'},\n nextSteps: [{\n summary: 'Remove use of `@istanbuljs/nyc-config-babel` from your babel config, if present,'\n + ' after the migration away from `nyc`'\n }]\n }\n ]);\n }\n\n return {};\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.c8rc.json`);\n}\n","import c8IsConfigured from './c8/tester';\nimport nycIsConfigured from './nyc/tester';\n\nexport default async function ({projectRoot}) {\n const [c8Exists, nycExists] = await Promise.all([c8IsConfigured({projectRoot}), nycIsConfigured({projectRoot})]);\n\n return c8Exists || nycExists;\n}\n","import joi from 'joi';\n\nexport const unitTestFrameworksSchema = joi.object().required().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n}));\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({frameworks, decisions}) {\n if (!Object.keys(frameworks).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.UNIT_TEST_FRAMEWORK,\n type: 'list',\n message: 'Which type of unit testing framework should be used?',\n choices: [...Object.keys(frameworks), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.UNIT_TEST_FRAMEWORK];\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldFrameworkChoice, validateOptions} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCoverage} from '../coverage';\nimport {unitTestFrameworksSchema} from './options-schemas';\nimport chooseFramework from './prompt';\n\nexport default async function ({projectRoot, frameworks, decisions, visibility, vcs, pathWithinParent, dialect}) {\n const validatedFrameworks = validateOptions(unitTestFrameworksSchema, frameworks);\n const [framework, coverage] = await Promise.all([\n chooseFramework({frameworks: validatedFrameworks, decisions})\n .then(chosenFramework => scaffoldFrameworkChoice(validatedFrameworks, chosenFramework, {projectRoot, dialect})),\n scaffoldCoverage({projectRoot, vcs, visibility, pathWithinParent})\n ]);\n\n return deepmerge.all([\n {scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'}},\n framework,\n coverage\n ]);\n}\n","import {promises as fs} from 'fs';\n\nexport async function test({projectRoot}) {\n const {engines} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf8'));\n\n return !!engines?.node;\n}\n\nexport async function lift({projectRoot}) {\n const {name} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf8'));\n\n return {\n devDependencies: ['ls-engines'],\n scripts: {'lint:engines': 'ls-engines'},\n badges: {consumer: {node: {img: `https://img.shields.io/node/v/${name}?logo=node.js`, text: 'node'}}}\n };\n}\n","export default function () {\n return {};\n}\n","function projectWillBeTested(scripts) {\n return Object.keys(scripts).find(scriptName => scriptName.startsWith('test:'));\n}\n\nfunction projectShouldBeBuiltForVerification(scripts) {\n return 'run-s build' === scripts['pregenerate:md'];\n}\n\nexport default function (scripts) {\n return {\n ...scripts,\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\n","import updateTestScript from './test-script-updater';\n\nexport default function ({existingScripts, scripts}) {\n return updateTestScript({...existingScripts, ...scripts});\n}\n","import {dialects, projectTypes} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldScripts} from './scripts';\n\nfunction defineVcsHostDetails(vcs, packageType, packageName, pathWithinParent) {\n return vcs && 'github' === vcs.host && {\n repository: pathWithinParent\n ? {\n type: 'git',\n url: `https://github.com/${vcs.owner}/${vcs.name}.git`,\n directory: pathWithinParent\n }\n : `${vcs.owner}/${vcs.name}`,\n bugs: `https://github.com/${vcs.owner}/${vcs.name}/issues`,\n homepage: (projectTypes.PACKAGE === packageType)\n ? `https://npm.im/${packageName}`\n : `https://github.com/${vcs.owner}/${vcs.name}#readme`\n };\n}\n\nexport default function ({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n ...defineVcsHostDetails(vcs, projectType, packageName, pathWithinParent),\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: scaffoldScripts()\n };\n}\n","import {info} from '@travi/cli-messages';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nimport buildPackageDetails from './details';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n}) {\n info('Configuring package.json');\n\n const packageData = await buildPackageDetails({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n });\n\n await writePackageJson({projectRoot, config: packageData});\n\n return {homepage: packageData.homepage};\n}\n","import {promises as fs} from 'fs';\nimport {error, info} from '@travi/cli-messages';\nimport {\n DEV_DEPENDENCY_TYPE,\n PROD_DEPENDENCY_TYPE,\n installDependencies,\n writePackageJson\n} from '@form8ion/javascript-core';\n\nimport {lift as liftScripts} from './scripts';\n\nexport default async function ({\n projectRoot,\n scripts,\n tags,\n dependencies,\n devDependencies,\n packageManager\n}) {\n if (scripts || tags) {\n info('Updating `package.json`', {level: 'secondary'});\n\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageJsonContents = JSON.parse(await fs.readFile(pathToPackageJson, 'utf8'));\n\n await writePackageJson({\n projectRoot,\n config: {\n ...existingPackageJsonContents,\n scripts: liftScripts({existingScripts: existingPackageJsonContents.scripts, scripts}),\n ...tags && {\n keywords: existingPackageJsonContents.keywords ? [...existingPackageJsonContents.keywords, ...tags] : tags\n }\n }\n });\n }\n\n info('Installing dependencies');\n\n try {\n await installDependencies(dependencies || [], PROD_DEPENDENCY_TYPE, projectRoot, packageManager);\n await installDependencies([...devDependencies || []], DEV_DEPENDENCY_TYPE, projectRoot, packageManager);\n } catch (e) {\n error('Failed to install dependencies');\n }\n}\n","import {fileExists} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nexport default async function ({projectRoot, packageManager}) {\n if (packageManager) return packageManager;\n\n if (await fileExists(`${projectRoot}/package-lock.json`)) {\n return packageManagers.NPM;\n }\n\n if (await fileExists(`${projectRoot}/yarn.lock`)) {\n return packageManagers.YARN;\n }\n\n throw new Error('Package-manager could not be determined');\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftEslint} from '@form8ion/eslint';\nimport * as huskyPlugin from '@form8ion/husky';\nimport * as commitConventionPlugin from '@form8ion/commit-convention';\n\nimport * as coveragePlugin from '../coverage';\nimport * as enginesEnhancer from './enhancers/engines';\nimport {lift as liftPackage} from '../package';\nimport resolvePackageManager from './package-manager';\n\nexport default async function ({projectRoot, vcs, results}) {\n info('Lifting JavaScript-specific details');\n\n const {scripts, tags, eslintConfigs, eslint, dependencies, devDependencies, packageManager: manager} = results;\n\n const packageManager = await resolvePackageManager({projectRoot, packageManager: manager});\n\n const eslintResults = await liftEslint({projectRoot, configs: [...eslintConfigs || [], ...eslint?.configs || []]});\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: [huskyPlugin, enginesEnhancer, coveragePlugin, commitConventionPlugin],\n options: {packageManager, projectRoot, vcs}\n });\n\n await liftPackage(\n deepmerge.all([\n {projectRoot, scripts, tags, dependencies, devDependencies, packageManager},\n enhancerResults,\n eslintResults\n ])\n );\n\n return enhancerResults;\n}\n","import joi from 'joi';\n\nexport const packageBundlersSchema = joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n})).default({});\n","import joi from 'joi';\nimport hoek from '@hapi/hoek';\nimport {unitTestFrameworksSchema} from './testing/options-schemas';\nimport {packageBundlersSchema} from './scaffolder/project-type/options-schemas';\n\nexport function validate(options) {\n const schema = joi.object().required()\n .keys({\n projectRoot: joi.string().required(),\n projectName: joi.string().regex(/^@\\w*\\//, {invert: true}).required(),\n visibility: joi.string().valid('Public', 'Private').required(),\n license: joi.string().required(),\n description: joi.string(),\n pathWithinParent: joi.string()\n })\n .keys({\n vcs: joi.object({\n host: joi.string().required(),\n owner: joi.string().required(),\n name: joi.string().required()\n })\n })\n .keys({\n configs: joi.object({\n eslint: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n typescript: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n prettier: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n commitlint: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n babelPreset: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n remark: joi.string()\n }).default({})\n })\n .keys({\n overrides: joi.object({\n npmAccount: joi.string(),\n author: joi.object({\n name: joi.string().required(),\n email: joi.string().email(),\n url: joi.string().uri()\n })\n }).default({})\n })\n .keys({\n ciServices: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n public: joi.boolean(),\n private: joi.boolean()\n })).default({})\n })\n .keys({\n hosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n projectTypes: joi.array().items(joi.string().valid('static', 'node')).default([])\n })).default({})\n })\n .keys({\n applicationTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n packageTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n monorepoTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n }))\n })\n .keys({\n unitTestFrameworks: unitTestFrameworksSchema,\n packageBundlers: packageBundlersSchema\n })\n .keys({\n decisions: joi.object()\n })\n .keys({registries: joi.object().pattern(joi.string(), joi.string().uri()).default({})});\n const {error, value} = schema.validate(options);\n\n hoek.assert(!error, error);\n\n return value;\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nexport default function ({babelPreset, typescript}) {\n return [\n {name: 'Common JS (no transpilation)', value: dialects.COMMON_JS, short: 'cjs'},\n ...babelPreset ? [{name: 'Modern JavaScript (transpiled)', value: dialects.BABEL, short: 'modern'}] : [],\n {name: 'ESM-only (no transpilation)', value: dialects.ESM, short: 'esm'},\n ...typescript ? [{name: 'TypeScript', value: dialects.TYPESCRIPT, short: 'ts'}] : []\n ];\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport {questionNames as commonQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames} from './question-names';\n\nfunction projectIsPackage(answers) {\n return projectTypes.PACKAGE === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction projectIsCLI(answers) {\n return projectTypes.CLI === answers[questionNames.PROJECT_TYPE];\n}\n\nexport function projectIsApplication(answers) {\n return projectTypes.APPLICATION === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction packageShouldBeScoped(visibility, answers) {\n return 'Private' === visibility || answers[questionNames.SHOULD_BE_SCOPED];\n}\n\nfunction willBePublishedToNpm(answers) {\n return projectIsPackage(answers) || projectIsCLI(answers);\n}\n\nexport function shouldBeScopedPromptShouldBePresented(answers) {\n return willBePublishedToNpm(answers);\n}\n\nexport function scopePromptShouldBePresentedFactory(visibility) {\n return answers => willBePublishedToNpm(answers) && packageShouldBeScoped(visibility, answers);\n}\n\nexport function lintingPromptShouldBePresented({\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested\n}) {\n return !unitTested && !integrationTested;\n}\n","export function scope(visibility) {\n return input => {\n if (!input && 'Private' === visibility) {\n return 'Private packages must be scoped (https://docs.npmjs.com/private-modules/intro#setting-up-your-package)';\n }\n\n return true;\n };\n}\n","import {packageManagers, projectTypes} from '@form8ion/javascript-core';\nimport {prompt as promptWithInquirer, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames as commonQuestionNames, questions as commonQuestions} from '@travi/language-scaffolder-prompts';\nimport {warn} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\nimport npmConfFactory from '../../thirdparty-wrappers/npm-conf';\nimport buildDialectChoices from '../dialects/prompt-choices';\nimport {\n lintingPromptShouldBePresented,\n projectIsApplication,\n scopePromptShouldBePresentedFactory,\n shouldBeScopedPromptShouldBePresented\n} from './conditionals';\nimport {questionNames} from './question-names';\nimport {scope as validateScope} from './validators';\n\nfunction authorQuestions({name, email, url}) {\n return [\n {\n name: questionNames.AUTHOR_NAME,\n message: 'What is the author\\'s name?',\n default: name\n },\n {\n name: questionNames.AUTHOR_EMAIL,\n message: 'What is the author\\'s email?',\n default: email\n },\n {\n name: questionNames.AUTHOR_URL,\n message: 'What is the author\\'s website url?',\n default: url\n }\n ];\n}\n\nexport async function prompt(\n {npmAccount, author},\n ciServices,\n hosts,\n visibility,\n vcs,\n decisions,\n configs,\n pathWithinParent\n) {\n const npmConf = npmConfFactory();\n\n let maybeLoggedInNpmUsername;\n try {\n maybeLoggedInNpmUsername = (await execa('npm', ['whoami'])).stdout;\n } catch (failedExecutionResult) {\n if (!decisions[questionNames.SCOPE]) {\n warn('No logged in user found with `npm whoami`. Login with `npm login` '\n + 'to use your npm account name as the package scope default.');\n }\n }\n\n const {\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested,\n [questionNames.PROJECT_TYPE]: projectType,\n [commonQuestionNames.CI_SERVICE]: ci,\n [questionNames.HOST]: chosenHost,\n [questionNames.SCOPE]: scope,\n [questionNames.NODE_VERSION_CATEGORY]: nodeVersionCategory,\n [questionNames.AUTHOR_NAME]: authorName,\n [questionNames.AUTHOR_EMAIL]: authorEmail,\n [questionNames.AUTHOR_URL]: authorUrl,\n [questionNames.CONFIGURE_LINTING]: configureLinting,\n [questionNames.PACKAGE_MANAGER]: packageManager,\n [questionNames.DIALECT]: dialect\n } = await promptWithInquirer([\n {\n name: questionNames.DIALECT,\n message: 'Which JavaScript dialect should this project follow?',\n type: 'list',\n choices: buildDialectChoices(configs),\n default: 'babel'\n },\n ...pathWithinParent ? [] : [{\n name: questionNames.NODE_VERSION_CATEGORY,\n message: 'What node.js version should be used?',\n type: 'list',\n choices: ['LTS', 'Latest'],\n default: 'LTS'\n }],\n {\n name: questionNames.PACKAGE_MANAGER,\n message: 'Which package manager will be used with this project?',\n type: 'list',\n choices: Object.values(packageManagers),\n default: packageManagers.NPM\n },\n {\n name: questionNames.PROJECT_TYPE,\n message: 'What type of JavaScript project is this?',\n type: 'list',\n choices: [...Object.values(projectTypes), new Separator(), 'Other'],\n default: projectTypes.PACKAGE\n },\n ...'Private' === visibility ? [] : [{\n name: questionNames.SHOULD_BE_SCOPED,\n message: 'Should this package be scoped?',\n type: 'confirm',\n when: shouldBeScopedPromptShouldBePresented,\n default: true\n }],\n {\n name: questionNames.SCOPE,\n message: 'What is the scope?',\n when: scopePromptShouldBePresentedFactory(visibility),\n validate: validateScope(visibility),\n default: npmAccount || maybeLoggedInNpmUsername\n },\n ...authorQuestions(author || {\n name: npmConf.get('init.author.name'),\n email: npmConf.get('init.author.email'),\n url: npmConf.get('init.author.url')\n }),\n ...commonQuestions(({vcs, ciServices, visibility, pathWithinParent})),\n {\n name: questionNames.CONFIGURE_LINTING,\n message: 'Will there be source code that should be linted?',\n type: 'confirm',\n when: lintingPromptShouldBePresented\n },\n {\n name: questionNames.HOST,\n type: 'list',\n message: 'Where will the application be hosted?',\n when: projectIsApplication,\n choices: [...Object.keys(hosts), new Separator(), 'Other']\n }\n ], decisions);\n\n return {\n tests: {unit: unitTested, integration: integrationTested},\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author: {name: authorName, email: authorEmail, url: authorUrl},\n configureLinting: false !== configureLinting,\n packageManager,\n dialect\n };\n}\n","import {write} from '@form8ion/config-file';\nimport {fileTypes} from '@form8ion/core';\n\nexport default async function ({projectRoot, preset, buildDirectory}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await write({\n path: projectRoot,\n name: 'babel',\n format: fileTypes.JSON,\n config: {presets: [preset.name], ignore: [`./${buildDirectory}/`]}\n });\n\n return {\n devDependencies: ['@babel/register', preset.packageName],\n eslint: {}\n };\n}\n","import {promises as fs} from 'fs';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectType, projectRoot, testFilenamePattern}) {\n const eslintConfigs = ['typescript'];\n const shareableTsConfigPackage = `${config.scope}/tsconfig`;\n\n await fs.writeFile(\n `${projectRoot}/tsconfig.json`,\n JSON.stringify({\n $schema: 'https://json.schemastore.org/tsconfig',\n extends: shareableTsConfigPackage,\n compilerOptions: {\n rootDir: 'src',\n ...projectTypes.PACKAGE === projectType && {\n outDir: 'lib',\n declaration: true\n }\n },\n include: ['src/**/*.ts'],\n ...testFilenamePattern && {exclude: [testFilenamePattern]}\n })\n );\n\n return {\n eslint: {configs: eslintConfigs},\n eslintConfigs,\n devDependencies: ['typescript', shareableTsConfigPackage],\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldBabel} from './babel';\nimport {scaffold as scaffoldTypescript} from './typescript';\n\nexport default function ({dialect, projectType, projectRoot, configs, buildDirectory, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot, buildDirectory});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n default:\n return {};\n }\n}\n","import {promises as fs} from 'fs';\nimport {stringify} from 'ini';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nfunction projectWillNotBeConsumed(projectType) {\n return projectTypes.APPLICATION === projectType || projectTypes.CLI === projectType;\n}\n\nexport default async function ({\n projectRoot,\n projectType,\n registries\n}) {\n await fs.writeFile(\n `${projectRoot}/.npmrc`,\n stringify({\n 'update-notifier': false,\n ...projectWillNotBeConsumed(projectType) && {'save-exact': true},\n ...Object.fromEntries(Object.entries(registries)\n .filter(([scope]) => 'publish' !== scope)\n .map(([scope, url]) => {\n if ('registry' === scope) return ['registry', url];\n\n return [`@${scope}:registry`, url];\n }))\n })\n );\n\n return {scripts: {'lint:peer': 'npm ls >/dev/null'}};\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nexport default function (packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm run generate:md';\n if (packageManagers.YARN === packageManager) return 'yarn generate:md';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n","import buildGenerationCommand from './generation-command';\n\nexport default function ({projectTypeResults, packageManager}) {\n return {\n toc: `Run \\`${buildGenerationCommand(packageManager)}\\` to generate a table of contents`,\n ...projectTypeResults.documentation,\n contributing: `### Dependencies\n\n\\`\\`\\`sh\n$ nvm install\n$ ${packageManager} install\n\\`\\`\\`\n\n### Verification\n\n\\`\\`\\`sh\n$ ${packageManager} test\n\\`\\`\\``\n };\n}\n","import {info} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\n\nexport async function determineLatestVersionOf(nodeVersionCategory) {\n info('Determining version of node', {level: 'secondary'});\n\n const {stdout: nvmLsOutput} = await execa(\n `. ~/.nvm/nvm.sh && nvm ls-remote${('LTS' === nodeVersionCategory) ? ' --lts' : ''}`,\n {shell: true}\n );\n\n const lsLines = nvmLsOutput.split('\\n');\n const lsLine = lsLines[lsLines.length - 2];\n\n return lsLine.match(/(v[0-9]+)\\.[0-9]+\\.[0-9]+/)[1];\n}\n\nexport function install(nodeVersionCategory) {\n info(`Installing ${nodeVersionCategory} version of node using nvm`, {level: 'secondary'});\n\n const subprocess = execa('. ~/.nvm/nvm.sh && nvm install', {shell: true});\n subprocess.stdout.pipe(process.stdout);\n return subprocess;\n}\n","import {promises as fsPromises} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport {determineLatestVersionOf, install as installNodeVersion} from './tasks';\n\nexport default async function ({projectRoot, nodeVersionCategory}) {\n if (!nodeVersionCategory) return undefined;\n\n const lowerCaseCategory = nodeVersionCategory.toLowerCase();\n info(`Configuring ${lowerCaseCategory} version of node`);\n\n const version = await determineLatestVersionOf(nodeVersionCategory);\n\n await fsPromises.writeFile(`${projectRoot}/.nvmrc`, version);\n\n await installNodeVersion(nodeVersionCategory);\n\n return version;\n}\n","import deepmerge from 'deepmerge';\n\nexport default function (contributors) {\n return deepmerge.all(contributors).badges;\n}\n","export default function (vcsIgnoreLists = {}) {\n return {\n files: vcsIgnoreLists.files || [],\n directories: ['/node_modules/', ...vcsIgnoreLists.directories || []]\n };\n}\n","import {EOL} from 'os';\nimport validatePackageName from '../thirdparty-wrappers/validate-npm-package-name';\n\nexport default function (projectName, scope) {\n const name = `${scope ? `@${scope}/` : ''}${projectName}`;\n\n const {validForNewPackages, errors} = validatePackageName(name);\n\n if (validForNewPackages) return name;\n if (1 === errors.length && errors.includes('name cannot start with a period')) return projectName.slice(1);\n\n throw new Error(`The package name ${name} is invalid:${EOL}\\t* ${errors.join(`${EOL}\\t* `)}`);\n}\n","import {packageManagers} from '@form8ion/javascript-core';\nimport buildGenerationCommand from '../../../documentation/generation-command';\n\nfunction getInstallationCommand(packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm install';\n if (packageManagers.YARN === packageManager) return 'yarn add';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n\nexport default function ({scope, packageName, packageManager, visibility}) {\n return {\n usage: `### Installation\n${'Private' === visibility ? `\n:warning: this is a private package, so you will need to use an npm token with\naccess to private packages under \\`@${scope}\\`\n` : ''\n}\n\\`\\`\\`sh\n$ ${getInstallationCommand(packageManager)} ${packageName}\n\\`\\`\\`\n\n### Example\n\nrun \\`${buildGenerationCommand(packageManager)}\\` to inject the usage example`\n };\n}\n","export default function (packageName, visibility) {\n return {\n consumer: {\n ...'Public' === visibility && {\n npm: {\n img: `https://img.shields.io/npm/v/${packageName}?logo=npm`,\n text: 'npm',\n link: `https://www.npmjs.com/package/${packageName}`\n }\n }\n },\n status: {}\n };\n}\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../../../prompts/question-names';\n\nexport default async function ({bundlers, decisions}) {\n if (!Object.keys(bundlers).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PACKAGE_BUNDLER,\n type: 'list',\n message: 'Which bundler should be used?',\n choices: [...Object.keys(bundlers), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PACKAGE_BUNDLER];\n}\n","import {resolve} from 'path';\nimport filedirname from 'filedirname';\n\nexport default function (fileName) {\n const [, __dirname] = filedirname();\n\n return resolve(__dirname, '..', 'templates', fileName);\n}\n","import {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport mustache from 'mustache';\nimport {dialects, projectTypes, scaffoldChoice as scaffoldChosenBundler} from '@form8ion/javascript-core';\n\nimport camelcase from '../../../../thirdparty-wrappers/camelcase';\nimport mkdir from '../../../../thirdparty-wrappers/make-dir';\nimport touch from '../../../../thirdparty-wrappers/touch';\nimport chooseBundler from './prompt';\nimport determinePathToTemplateFile from '../../../template-path';\n\nconst defaultBuildDirectory = 'lib';\n\nasync function createExample(projectRoot, projectName) {\n return fs.writeFile(\n `${projectRoot}/example.js`,\n mustache.render(\n await fs.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),\n {projectName: camelcase(projectName)}\n )\n );\n}\n\nasync function buildDetailsForCommonJsProject({projectRoot, projectName}) {\n await Promise.all([\n touch(`${projectRoot}/index.js`),\n fs.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\\n`)\n ]);\n\n return {};\n}\n\nexport default async function ({\n projectRoot,\n projectName,\n visibility,\n packageName,\n packageBundlers,\n dialect,\n decisions\n}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName});\n\n const chosenBundler = await chooseBundler({bundlers: packageBundlers, decisions});\n\n const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);\n const [bundlerResults] = await Promise.all([\n scaffoldChosenBundler(packageBundlers, chosenBundler, {projectRoot, dialect, projectType: projectTypes.PACKAGE}),\n await createExample(projectRoot, projectName),\n touch(`${pathToCreatedSrcDirectory}/index.js`)\n ]);\n\n return deepmerge(\n bundlerResults,\n {\n devDependencies: ['rimraf'],\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n vcsIgnore: {directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: {\n consumer: {\n ...'Public' === visibility && {\n runkit: {\n img: `https://badge.runkitcdn.com/${packageName}.svg`,\n text: `Try ${packageName} on RunKit`,\n link: `https://npm.runkit.com/${packageName}`\n }\n }\n }\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {dialects, mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport scaffoldPackageDocumentation from './documentation';\nimport defineBadges from './badges';\nimport buildDetails from './build-details';\n\nexport default async function ({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n decisions,\n dialect,\n publishRegistry\n}) {\n info('Scaffolding Package Details');\n\n const [detailsForBuild] = await Promise.all([\n buildDetails({projectRoot, projectName, packageBundlers, visibility, packageName, dialect, decisions}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n files: ['example.js', ...dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/']],\n publishConfig: {\n access: 'Public' === visibility ? 'public' : 'restricted',\n ...publishRegistry && {registry: publishRegistry}\n },\n sideEffects: false,\n ...'Public' === visibility && {runkitExampleFilename: './example.js'},\n ...dialects.BABEL === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n exports: {\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n },\n ...dialects.ESM === dialect && {\n main: './lib/index.mjs',\n exports: './lib/index.mjs'\n },\n ...dialects.TYPESCRIPT === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n types: './lib/index.d.ts',\n exports: {\n types: './lib/index.d.ts',\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n }\n }\n })\n ]);\n\n return deepmerge.all([\n {\n documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager}),\n eslintConfigs: [],\n nextSteps: [\n {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},\n {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}\n ],\n scripts: {},\n badges: defineBadges(packageName, visibility)\n },\n detailsForBuild\n ]);\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nconst defaultBuildDirectory = 'public';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Application Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n const buildDirectory = defaultBuildDirectory;\n\n return {\n scripts: {\n clean: `rimraf ./${buildDirectory}`,\n start: `node ./${buildDirectory}/index.js`,\n prebuild: 'run-s clean'\n },\n dependencies: [],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},\n buildDirectory,\n eslintConfigs: [],\n nextSteps: []\n };\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Monorepo Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n return {\n eslintConfigs: [],\n nextSteps: [{\n summary: 'Add packages to your new monorepo',\n description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'\n + ' to scaffold new packages into your new monorepo'\n }]\n };\n}\n","import deepmerge from 'deepmerge';\nimport {mergeIntoExistingPackageJson, projectTypes} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport defineBadges from './package/badges';\n\nconst defaultBuildDirectory = 'bin';\n\nexport default async function ({packageName, visibility, projectRoot, dialect, publishRegistry}) {\n const [rollupResults] = await Promise.all([\n scaffoldRollup({projectRoot, dialect, projectType: projectTypes.CLI}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {\n access: 'Public' === visibility ? 'public' : 'restricted',\n ...publishRegistry && {registry: publishRegistry}\n }\n }\n })\n ]);\n\n return deepmerge(\n rollupResults,\n {\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n dependencies: ['update-notifier'],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: defineBadges(packageName, visibility),\n eslintConfigs: [],\n nextSteps: []\n }\n );\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport scaffoldPackageType from './package';\nimport scaffoldApplicationType from './application';\nimport scaffoldMonorepoType from './monorepo';\nimport scaffoldCliType from './cli';\n\nexport default async function ({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n packageBundlers,\n scope,\n vcs,\n decisions,\n dialect,\n publishRegistry\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n vcs,\n decisions,\n dialect,\n publishRegistry\n });\n case projectTypes.APPLICATION:\n return scaffoldApplicationType({projectRoot});\n case projectTypes.CLI:\n return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});\n case projectTypes.MONOREPO:\n return scaffoldMonorepoType({projectRoot});\n case 'Other':\n return {\n eslintConfigs: []\n };\n default:\n throw new Error(`The project-type of ${projectType} is invalid`);\n }\n}\n","import {prompt, Separator} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({types, projectType, decisions}) {\n if (!Object.keys(types).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PROJECT_TYPE_CHOICE,\n type: 'list',\n message: `What type of ${projectType} is this?`,\n choices: [...Object.keys(types), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PROJECT_TYPE_CHOICE];\n}\n","import {scaffoldChoice} from '@form8ion/javascript-core';\n\nimport chooseProjectTypePlugin from './prompt';\n\nexport default async function ({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n dialect,\n tests,\n decisions,\n plugins\n}) {\n const pluginsForProjectType = plugins[projectType];\n\n if (!pluginsForProjectType) return {};\n\n const chosenType = await chooseProjectTypePlugin({types: pluginsForProjectType, decisions, projectType});\n\n return scaffoldChoice(\n pluginsForProjectType,\n chosenType,\n {projectRoot, projectName, packageName, packageManager, scope, tests, dialect}\n );\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldUnitTesting from '../../../testing/unit';\n\nexport default async function ({\n projectRoot,\n visibility,\n tests: {unit, integration},\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n}) {\n const unitResults = unit\n ? await scaffoldUnitTesting({\n projectRoot,\n visibility,\n vcs,\n frameworks: unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n })\n : {};\n\n return deepmerge({devDependencies: [...(unit || integration) ? ['@travi/any'] : []], eslint: {}}, unitResults);\n}\n","export default function ({pathWithinParent}) {\n if (pathWithinParent) return {};\n\n return {scripts: {'lint:sensitive': 'ban'}, devDependencies: ['ban-sensitive-files']};\n}\n","export default function ({packageManager, registries}) {\n return [\n ...(!registries || (registries && !registries.registry)) ? [packageManager] : [],\n ...Object.values(Object.fromEntries(Object.entries(registries).filter(([scope]) => 'publish' !== scope)))\n ];\n}\n","import {promises as fs} from 'fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport buildAllowedHostsList from './allowed-hosts-builder';\n\nconst lockfileLintSupportedPackageManagers = [packageManagers.NPM, packageManagers.YARN];\n\nfunction determineLockfilePathFor(packageManager) {\n const lockfilePaths = {\n [packageManagers.NPM]: 'package-lock.json',\n [packageManagers.YARN]: 'yarn.lock'\n };\n\n return lockfilePaths[packageManager];\n}\n\nfunction lockfileLintSupports(packageManager) {\n return lockfileLintSupportedPackageManagers.includes(packageManager);\n}\n\nexport default async function ({projectRoot, packageManager, registries}) {\n if (!lockfileLintSupports(packageManager)) {\n throw new Error(\n `The ${packageManager} package manager is currently not supported by lockfile-lint. `\n + `Only ${lockfileLintSupportedPackageManagers.join(' and ')} are currently supported.`\n );\n }\n\n await fs.writeFile(\n `${projectRoot}/.lockfile-lintrc.json`,\n JSON.stringify({\n path: determineLockfilePathFor(packageManager),\n type: packageManager,\n 'validate-https': true,\n 'allowed-hosts': buildAllowedHostsList({packageManager, registries})\n })\n );\n\n return {\n devDependencies: ['lockfile-lint'],\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldBanSensitiveFiles from './ban-sensitive-files';\nimport {scaffold as scaffoldLockfileLint} from './lockfile';\n\nexport default async function ({projectRoot, packageManager, registries, vcs, pathWithinParent}) {\n return deepmerge.all(await Promise.all([\n scaffoldLockfileLint({projectRoot, packageManager, registries}),\n vcs ? scaffoldBanSensitiveFiles({pathWithinParent}) : {}\n ]));\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldHusky} from '@form8ion/husky';\n\nimport scaffoldTesting from './testing';\nimport scaffoldLinting from './linting';\n\nexport async function scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n}) {\n const [testingResults, lintingResults, huskyResults] = await Promise.all([\n scaffoldTesting({\n projectRoot,\n tests,\n visibility,\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n }),\n scaffoldLinting({projectRoot, packageManager, registries, vcs, pathWithinParent}),\n scaffoldHusky({projectRoot, packageManager, pathWithinParent})\n ]);\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import {scaffold} from '@form8ion/eslint';\nimport deepmerge from 'deepmerge';\n\nexport default async function ({config, projectRoot, buildDirectory, additionalConfiguration}) {\n const {scope} = config;\n const {ignore} = additionalConfiguration;\n const ignores = deepmerge(ignore, {directories: [`/${buildDirectory}/`]});\n\n return scaffold({scope, projectRoot, ignore: {directories: ignores.directories}});\n}\n","import deepmerge from 'deepmerge';\nimport {fileTypes} from '@form8ion/core';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\nimport {write} from '@form8ion/config-file';\n\nexport default async function ({config, projectRoot, projectType, vcs, dialect}) {\n await write({\n format: fileTypes.JSON,\n path: projectRoot,\n name: 'remark',\n config: {\n settings: {\n listItemIndent: 1,\n emphasis: '_',\n strong: '_',\n bullet: '*',\n incrementListMarker: false\n },\n plugins: [\n config,\n ['remark-toc', {tight: true}],\n ...projectTypes.PACKAGE === projectType ? [['remark-usage', {heading: 'example'}]] : [],\n ...!vcs ? [['validate-links', {repository: false}]] : []\n ]\n }\n });\n\n return deepmerge(\n {\n devDependencies: [config, 'remark-cli', 'remark-toc'],\n scripts: {\n 'lint:md': 'remark . --frail',\n 'generate:md': 'remark . --output'\n }\n },\n {\n ...projectTypes.PACKAGE === projectType && {\n devDependencies: ['remark-usage'],\n ...dialects.COMMON_JS !== dialect && {scripts: {'pregenerate:md': 'run-s build'}}\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldPrettier} from '@form8ion/prettier';\n\nimport scaffoldEslint from './eslint';\nimport scaffoldRemark from './remark';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n configs,\n vcs,\n configureLinting,\n buildDirectory,\n eslint\n}) {\n return deepmerge.all(await Promise.all([\n configs.eslint && configureLinting\n && scaffoldEslint({\n projectRoot,\n config: configs.eslint,\n buildDirectory,\n additionalConfiguration: eslint\n }),\n scaffoldRemark({\n projectRoot,\n projectType,\n dialect,\n vcs,\n config: configs.remark || '@form8ion/remark-lint-preset'\n }),\n scaffoldPrettier({projectRoot, config: configs.prettier})\n ].filter(Boolean)));\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {projectTypes, scaffoldChoice} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCommitConvention} from '@form8ion/commit-convention';\n\nimport lift from '../lift';\nimport {validate} from '../options-validator';\nimport {prompt} from '../prompts/questions';\nimport {scaffold as scaffoldDialect} from '../dialects';\nimport scaffoldNpmConfig from '../config/npm';\nimport scaffoldDocumentation from '../documentation';\nimport scaffoldNodeVersion from '../node-version';\nimport buildBadgesDetails from '../badges';\nimport buildVcsIgnoreLists from '../vcs-ignore';\nimport {scaffold as scaffoldPackage} from '../package';\nimport buildPackageName from '../package-name';\nimport scaffoldProjectType from './project-type';\nimport {scaffold as scaffoldProjectTypePlugin} from '../project-type-plugin';\nimport buildDocumentationCommand from '../documentation/generation-command';\nimport {scaffold as scaffoldVerification} from './verification';\nimport {scaffold as scaffoldCodeStyle} from '../code-style';\n\nexport default async function (options) {\n info('Initializing JavaScript project');\n\n const {\n projectRoot,\n projectName,\n visibility,\n license,\n vcs,\n description,\n configs,\n overrides,\n ciServices,\n hosts,\n applicationTypes,\n packageTypes,\n packageBundlers,\n monorepoTypes,\n decisions,\n unitTestFrameworks,\n pathWithinParent,\n registries\n } = validate(options);\n\n const {\n tests,\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author,\n configureLinting,\n packageManager,\n dialect\n } = await prompt(overrides, ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);\n\n info('Writing project files', {level: 'secondary'});\n\n const packageName = buildPackageName(projectName, scope);\n const {homepage: projectHomepage} = await scaffoldPackage({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n });\n const [projectTypeResults, verificationResults] = await Promise.all([\n scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n packageBundlers,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect,\n publishRegistry: registries.publish\n }),\n scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n })\n ]);\n const [nodeVersion, npmResults, dialectResults, codeStyleResults, projectTypePluginResults] = await Promise.all([\n scaffoldNodeVersion({projectRoot, nodeVersionCategory}),\n scaffoldNpmConfig({projectType, projectRoot, registries}),\n scaffoldDialect({\n dialect,\n configs,\n projectRoot,\n projectType,\n buildDirectory: projectTypeResults.buildDirectory,\n testFilenamePattern: verificationResults.testFilenamePattern\n }),\n scaffoldCodeStyle({\n projectRoot,\n projectType,\n dialect,\n configs,\n vcs,\n configureLinting,\n buildDirectory: projectTypeResults.buildDirectory,\n eslint: verificationResults.eslint\n }),\n scaffoldProjectTypePlugin({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n dialect,\n tests,\n decisions,\n plugins: {\n [projectTypes.PACKAGE]: packageTypes,\n [projectTypes.APPLICATION]: applicationTypes,\n [projectTypes.MONOREPO]: monorepoTypes\n }\n })\n ]);\n const mergedContributions = deepmerge.all([\n ...(await Promise.all([\n scaffoldChoice(\n hosts,\n chosenHost,\n {buildDirectory: `./${projectTypeResults.buildDirectory}`, projectRoot, projectName, nodeVersion}\n ),\n scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),\n scaffoldCommitConvention({projectRoot, projectType, configs, pathWithinParent})\n ])),\n projectTypePluginResults,\n projectTypeResults,\n verificationResults,\n codeStyleResults,\n npmResults,\n dialectResults\n ]);\n\n const liftResults = await lift({\n results: deepmerge({devDependencies: ['npm-run-all'], packageManager}, mergedContributions),\n projectRoot,\n configs,\n vcs\n });\n\n return {\n badges: buildBadgesDetails([mergedContributions, liftResults]),\n documentation: scaffoldDocumentation({projectTypeResults, packageManager}),\n tags: projectTypeResults.tags,\n vcsIgnore: buildVcsIgnoreLists(mergedContributions.vcsIgnore),\n verificationCommand: `${buildDocumentationCommand(packageManager)} && ${packageManager} test`,\n projectDetails: {...projectHomepage && {homepage: projectHomepage}},\n nextSteps: mergedContributions.nextSteps\n };\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default async function ({projectRoot}) {\n const [nvmIsConfigured, packageLockExists, yarnLockExists] = await Promise.all([\n fileExists(`${projectRoot}/.nvmrc`),\n fileExists(`${projectRoot}/package-lock.json`),\n fileExists(`${projectRoot}/yarn.lock`)\n ]);\n\n return nvmIsConfigured || packageLockExists || yarnLockExists;\n}\n","import {questionNames as languageScaffolderPromptsQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames as jsScaffolderQuestionNames} from './prompts/question-names';\n\nexport {default as scaffoldUnitTesting} from './testing/unit';\nexport {default as scaffold} from './scaffolder';\nexport {default as lift} from './lift';\nexport {default as test} from './test';\nexport const questionNames = {...languageScaffolderPromptsQuestionNames, ...jsScaffolderQuestionNames};\n"],"names":["questionNames","scaffoldCodecov","fs","lift","liftCodecov","prompt","scaffoldFrameworkChoice","test","liftEslint","commonQuestionNames","npmConf","npmConfFactory","scope","promptWithInquirer","validateScope","commonQuestions","buildGenerationCommand","fsPromises","installNodeVersion","defaultBuildDirectory","mkdir","scaffoldChosenBundler","scaffoldRollup","scaffoldHusky","scaffold","scaffoldPrettier","scaffoldCommitConvention","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@form8ion/javascript",
3
3
  "description": "JavaScript language plugin for the @form8ion toolset",
4
4
  "license": "MIT",
5
- "version": "7.1.0",
5
+ "version": "7.2.1",
6
6
  "engines": {
7
7
  "node": "^14.18.0 || >=16.0.0"
8
8
  },
@@ -56,18 +56,18 @@
56
56
  "test:unit:base": "DEBUG=any mocha 'src/**/*-test.js'"
57
57
  },
58
58
  "devDependencies": {
59
- "@babel/register": "7.18.6",
60
- "@cucumber/cucumber": "8.4.0",
61
- "@form8ion/babel-preset": "1.6.92",
59
+ "@babel/register": "7.18.9",
60
+ "@cucumber/cucumber": "8.5.0",
61
+ "@form8ion/babel-preset": "1.6.93",
62
62
  "@form8ion/commitlint-config": "1.0.36",
63
- "@form8ion/eslint-config": "5.0.6",
63
+ "@form8ion/eslint-config": "5.0.7",
64
64
  "@form8ion/eslint-config-cucumber": "1.4.1",
65
- "@form8ion/eslint-config-mocha": "2.0.2",
65
+ "@form8ion/eslint-config-mocha": "2.0.3",
66
66
  "@form8ion/remark-lint-preset": "4.0.1",
67
67
  "@rollup/plugin-node-resolve": "13.3.0",
68
68
  "@travi/any": "2.1.5",
69
69
  "ban-sensitive-files": "1.9.18",
70
- "c8": "7.11.3",
70
+ "c8": "7.12.0",
71
71
  "chai": "4.3.6",
72
72
  "chai-as-promised": "7.1.1",
73
73
  "cross-env": "7.0.3",
@@ -93,7 +93,7 @@
93
93
  "@form8ion/codecov": "^3.0.0",
94
94
  "@form8ion/commit-convention": "^3.1.0",
95
95
  "@form8ion/config-file": "^1.0.1",
96
- "@form8ion/core": "^1.8.0",
96
+ "@form8ion/core": "^2.0.0",
97
97
  "@form8ion/eslint": "^2.0.1",
98
98
  "@form8ion/execa-wrapper": "^1.0.0-alpha.1",
99
99
  "@form8ion/husky": "^3.0.0",