@form8ion/javascript 3.1.0-alpha.5 → 3.2.2

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.es.js CHANGED
@@ -4,7 +4,7 @@ import { validateOptions, scaffoldChoice, installDependencies, PROD_DEPENDENCY_T
4
4
  import * as joi from 'joi';
5
5
  import { Separator } from 'inquirer';
6
6
  import { prompt as prompt$1 } from '@form8ion/overridable-prompts';
7
- import { scaffold } from '@form8ion/codecov';
7
+ import { scaffold, lift as lift$3 } from '@form8ion/codecov';
8
8
  import { promises } from 'fs';
9
9
  import { fileExists } from '@form8ion/core';
10
10
  import { info, warn } from '@travi/cli-messages';
@@ -22,7 +22,7 @@ import touch from 'touch';
22
22
  import { resolve } from 'path';
23
23
  import * as huskyPlugin from '@form8ion/husky';
24
24
  import { scaffold as scaffold$3 } from '@form8ion/husky';
25
- import { lift as lift$3, scaffold as scaffold$2 } from '@form8ion/eslint';
25
+ import { lift as lift$4, scaffold as scaffold$2 } from '@form8ion/eslint';
26
26
 
27
27
  function ownKeys(object, enumerableOnly) {
28
28
  var keys = Object.keys(object);
@@ -147,6 +147,11 @@ async function lift$2({
147
147
  projectRoot,
148
148
  packageManager
149
149
  }) {
150
+ const codecovResults = await lift$3({
151
+ projectRoot,
152
+ packageManager
153
+ });
154
+
150
155
  if (await nycIsConfigured({
151
156
  projectRoot
152
157
  })) {
@@ -156,7 +161,7 @@ async function lift$2({
156
161
  projectRoot,
157
162
  packageManager
158
163
  })]);
159
- return deepmerge.all([c8Results, {
164
+ return deepmerge.all([c8Results, codecovResults, {
160
165
  scripts: {
161
166
  'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'
162
167
  },
@@ -169,11 +174,28 @@ async function lift$2({
169
174
  return {};
170
175
  }
171
176
 
177
+ function c8IsConfigured ({
178
+ projectRoot
179
+ }) {
180
+ return fileExists(`${projectRoot}/.c8rc.json`);
181
+ }
182
+
183
+ async function tester ({
184
+ projectRoot
185
+ }) {
186
+ const [c8Exists, nycExists] = await Promise.all([c8IsConfigured({
187
+ projectRoot
188
+ }), nycIsConfigured({
189
+ projectRoot
190
+ })]);
191
+ return c8Exists || nycExists;
192
+ }
193
+
172
194
  var coveragePlugin = /*#__PURE__*/Object.freeze({
173
195
  __proto__: null,
174
196
  scaffold: scaffoldCoverage,
175
197
  lift: lift$2,
176
- test: nycIsConfigured
198
+ test: tester
177
199
  });
178
200
 
179
201
  const unitTestFrameworksSchema = joi.object().required().pattern(/^/, joi.object({
@@ -335,7 +357,7 @@ async function lift ({
335
357
  projectRoot,
336
358
  packageManager: manager
337
359
  });
338
- const eslintResults = await lift$3({
360
+ const eslintResults = await lift$4({
339
361
  projectRoot,
340
362
  configs: eslintConfigs
341
363
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.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/testing/options-schemas.js","../src/testing/prompt.js","../src/testing/unit.js","../src/lift/enhancers/apply.js","../src/lift/enhancers/engines.js","../src/lift/package.js","../src/lift/package-manager.js","../src/lift/lift.js","../src/options-validator.js","../thirdparty-wrappers/npm-conf.js","../src/scaffolder/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/scaffolder/dialects/babel.js","../src/scaffolder/dialects/typescript.js","../src/scaffolder/dialects/esm.js","../src/scaffolder/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/scaffolder/package/details.js","../src/scaffolder/package/scaffolder.js","../src/package-name.js","../src/scaffolder/project-type/prompt.js","../src/scaffolder/project-type/package/documentation.js","../src/scaffolder/project-type/package/badges.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/scaffolder/verification/testing/scaffolder.js","../src/scaffolder/verification/linting/eslint.js","../src/scaffolder/verification/linting/remark.js","../src/scaffolder/verification/linting/ban-sensitive-files.js","../src/scaffolder/verification/linting/lockfile.js","../src/scaffolder/verification/linting/scaffolder.js","../src/scaffolder/verification/verifier.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 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.rmdir(`${projectRoot}/.nyc_output`, {recursive: true, force: true}),\n removeDependencies({packageManager, dependencies: ['nyc', '@istanbuljs/nyc-config-babel']})\n ]);\n}\n","import deepmerge from 'deepmerge';\n\nimport {scaffold as scaffoldC8} from './c8';\nimport {test as nycIsConfigured, remove as removeNyc} from './nyc';\n\nexport async function lift({projectRoot, packageManager}) {\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 {\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 * as joi from 'joi';\n\nexport const unitTestFrameworksSchema = joi.object().required().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n}));\n","import {Separator} from 'inquirer';\nimport {prompt} 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}) {\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})),\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 deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({results, enhancers = {}, options}) {\n info('Applying Enhancers');\n\n return Object.values(enhancers)\n .reduce(async (acc, enhancer) => {\n if (await enhancer.test(options)) {\n const previousResults = await acc;\n\n return deepmerge(\n previousResults,\n await enhancer.lift({results: previousResults, ...options})\n );\n }\n\n return acc;\n }, results);\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","import {promises as fs} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport {DEV_DEPENDENCY_TYPE, installDependencies, PROD_DEPENDENCY_TYPE} from '@form8ion/javascript-core';\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 fs.writeFile(\n pathToPackageJson,\n JSON.stringify(\n {\n ...existingPackageJsonContents,\n scripts: {...existingPackageJsonContents.scripts, ...scripts},\n ...tags && {\n keywords: existingPackageJsonContents.keywords ? [...existingPackageJsonContents.keywords, ...tags] : tags\n }\n },\n null,\n 2\n )\n );\n }\n\n info('Installing dependencies');\n\n await installDependencies(dependencies || [], PROD_DEPENDENCY_TYPE, projectRoot, packageManager);\n await installDependencies([...devDependencies || []], DEV_DEPENDENCY_TYPE, projectRoot, packageManager);\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 {lift as liftEslint} from '@form8ion/eslint';\nimport * as huskyPlugin from '@form8ion/husky';\n\nimport * as coveragePlugin from '../coverage';\nimport applyEnhancers from './enhancers/apply';\nimport * as enginesEnhancer from './enhancers/engines';\nimport liftPackage from './package';\nimport resolvePackageManager from './package-manager';\n\nexport default async function ({projectRoot, results}) {\n info('Lifting JavaScript-specific details');\n\n const {scripts, tags, eslintConfigs, dependencies, devDependencies, packageManager: manager} = results;\n\n const packageManager = await resolvePackageManager({projectRoot, packageManager: manager});\n\n const eslintResults = await liftEslint({projectRoot, configs: eslintConfigs});\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: [huskyPlugin, enginesEnhancer, coveragePlugin],\n options: {packageManager, projectRoot}\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 * as joi from 'joi';\nimport hoek from '@hapi/hoek';\nimport {unitTestFrameworksSchema} from './testing/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 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 decisions: joi.object()\n })\n .keys({unitTestFrameworks: unitTestFrameworksSchema})\n .keys({registries: joi.object().pattern(joi.string(), joi.string().uri())});\n const {error, value} = schema.validate(options);\n\n hoek.assert(!error, error);\n\n return value;\n}\n","const npmConf = require('npm-conf');\n\nexport default npmConf;\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 {Separator} from 'inquirer';\nimport {packageManagers, projectTypes} from '@form8ion/javascript-core';\nimport {prompt as promptWithInquirer} 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 '../scaffolder/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 {promises as fsPromises} from 'fs';\n\nexport default async function ({projectRoot, preset, tests, buildDirectory}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await fsPromises.writeFile(\n `${projectRoot}/.babelrc`,\n JSON.stringify({\n presets: [preset.name],\n ignore: [`./${buildDirectory}/`],\n ...tests.unit && {env: {test: {plugins: ['istanbul']}}}\n })\n );\n\n return {\n devDependencies: [\n '@babel/register',\n preset.packageName,\n ...tests.unit ? ['babel-plugin-istanbul'] : []\n ],\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 packageProperties: {types: 'lib/index.d.ts'},\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","export default function () {\n return {packageProperties: {engines: {node: '>=12.20'}}};\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport scaffoldBabel from './babel';\nimport scaffoldTypescript from './typescript';\nimport scaffoldEsm from './esm';\n\nexport default function ({dialect, projectType, projectRoot, configs, tests, buildDirectory, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot, tests, buildDirectory});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n case dialects.ESM:\n return scaffoldEsm();\n default:\n return {eslint: {}};\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 ({projectRoot, projectType, registries}) {\n await fs.writeFile(\n `${projectRoot}/.npmrc`,\n stringify({\n 'update-notifier': false,\n 'engine-strict': true,\n ...projectWillNotBeConsumed(projectType) && {'save-exact': true},\n ...registries\n && Object.fromEntries(Object.entries(registries).map(([scope, url]) => ([`@${scope}:registry`, url])))\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 {dialects, projectTypes} from '@form8ion/javascript-core';\n\nfunction 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\nfunction defineScripts(scripts) {\n return {\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\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 scripts,\n packageProperties,\n pathWithinParent\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n ...packageProperties,\n ...defineVcsHostDetails(vcs, projectType, packageName, pathWithinParent),\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: defineScripts(scripts)\n };\n}\n","import {promises as fs} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport buildPackageDetails from './details';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n scripts,\n packageName,\n license,\n vcs,\n author,\n description,\n packageProperties,\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 scripts,\n packageProperties,\n pathWithinParent\n });\n\n await fs.writeFile(`${projectRoot}/package.json`, JSON.stringify(packageData));\n\n return {homepage: packageData.homepage};\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 {Separator} from 'inquirer';\nimport {prompt} 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 {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 {resolve} from 'path';\n\nexport default function (fileName) {\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} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport camelcase from '../../../../thirdparty-wrappers/camelcase';\nimport mkdir from '../../../../thirdparty-wrappers/make-dir';\nimport touch from '../../../../thirdparty-wrappers/touch';\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 ({projectRoot, projectName, visibility, packageName, dialect}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName});\n\n const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);\n const [rollupResults] = await Promise.all([\n scaffoldRollup({projectRoot, dialect, projectType: projectTypes.PACKAGE}),\n await createExample(projectRoot, projectName),\n touch(`${pathToCreatedSrcDirectory}/index.js`)\n ]);\n\n return deepmerge(\n rollupResults,\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 {dialects, scaffoldChoice as scaffoldChosenPackageType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport choosePackageType from '../prompt';\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 packageTypes,\n tests,\n decisions,\n dialect\n}) {\n info('Scaffolding Package Details');\n\n const detailsForBuild = await buildDetails({projectRoot, projectName, visibility, packageName, dialect});\n const details = {\n ...dialects.BABEL === dialect && {\n packageProperties: {\n main: 'lib/index.cjs.js',\n module: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.ESM === dialect && {\n packageProperties: {\n main: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.TYPESCRIPT === dialect && {\n packageProperties: {\n main: 'lib/index.cjs.js',\n module: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.COMMON_JS === dialect && {\n packageProperties: {files: ['index.js']},\n ...detailsForBuild\n }\n };\n\n const chosenType = await choosePackageType({types: packageTypes, projectType: 'package', decisions});\n const results = await scaffoldChosenPackageType(\n packageTypes,\n chosenType,\n {projectRoot, projectName, packageName, tests, scope}\n );\n\n return deepmerge.all([\n {\n packageProperties: {\n files: ['example.js'],\n publishConfig: {access: 'Public' === visibility ? 'public' : 'restricted'},\n ...'Public' === visibility && {runkitExampleFilename: './example.js'}\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 results,\n details\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldChosenApplicationType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport chooseApplicationType from './prompt';\n\nconst defaultBuildDirectory = 'lib';\n\nexport default async function ({\n applicationTypes,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n tests,\n decisions\n}) {\n info('Scaffolding Application Details');\n\n const chosenType = await chooseApplicationType({types: applicationTypes, projectType: 'application', decisions});\n const results = await scaffoldChosenApplicationType(\n applicationTypes,\n chosenType,\n {projectRoot, projectName, packageName, packageManager, tests}\n );\n\n const buildDirectory = results.buildDirectory || defaultBuildDirectory;\n\n return deepmerge(\n {\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 packageProperties: {private: true},\n eslintConfigs: [],\n nextSteps: []\n },\n results\n );\n}\n","import deepmerge from 'deepmerge';\nimport {projectTypes, scaffoldChoice as scaffoldChosenApplicationType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport chooseApplicationType from './prompt';\n\nexport default async function ({monorepoTypes, projectRoot, packageManager, decisions}) {\n info('Scaffolding Monorepo Details');\n\n const chosenType = await chooseApplicationType({types: monorepoTypes, projectType: projectTypes.MONOREPO, decisions});\n const results = await scaffoldChosenApplicationType(monorepoTypes, chosenType, {projectRoot, packageManager});\n\n return deepmerge(\n {\n eslintConfigs: [],\n packageProperties: {private: true},\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 results\n );\n}\n","import deepmerge from 'deepmerge';\nimport {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}) {\n const rollupResults = await scaffoldRollup({projectRoot, dialect, projectType: projectTypes.CLI});\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 packageProperties: {\n version: '0.0.0-semantically-released',\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {access: 'Public' === visibility ? 'public' : 'restricted'}\n },\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 applicationTypes,\n packageTypes,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageTypes,\n tests,\n vcs,\n decisions,\n dialect\n });\n case projectTypes.APPLICATION:\n return scaffoldApplicationType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n applicationTypes,\n tests,\n decisions\n });\n case projectTypes.CLI:\n return scaffoldCliType({packageName, visibility, projectRoot, dialect});\n case projectTypes.MONOREPO:\n return scaffoldMonorepoType({monorepoTypes, projectRoot, packageManager, decisions});\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 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(\n {devDependencies: [...(unit || integration) ? ['@travi/any'] : []], eslint: [], eslintConfigs: []},\n unitResults\n );\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 {promises as fsPromises} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectRoot, projectType, vcs, dialect}) {\n await fsPromises.writeFile(\n `${projectRoot}/.remarkrc.json`,\n JSON.stringify({\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","export default function () {\n return {scripts: {'lint:sensitive': 'ban'}, devDependencies: ['ban-sensitive-files']};\n}\n","import {promises as fs} from 'fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nfunction determineLockfilePathFor(packageManager) {\n if (packageManagers.NPM === packageManager) return 'package-lock.json';\n if (packageManagers.YARN === packageManager) return 'yarn.lock';\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 async function ({projectRoot, packageManager, registries}) {\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': [packageManager, ...registries ? Object.values(registries) : []]\n })\n );\n\n return {\n devDependencies: ['lockfile-lint'],\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldEslint from './eslint';\nimport scaffoldRemark from './remark';\nimport scaffoldBanSensitiveFiles from './ban-sensitive-files';\nimport scaffoldLockfileLint from './lockfile';\n\nexport default async function ({\n projectRoot,\n projectType,\n packageManager,\n dialect,\n registries,\n configs,\n vcs,\n configureLinting,\n buildDirectory,\n eslint\n}) {\n return deepmerge.all(await Promise.all([\n scaffoldLockfileLint({projectRoot, packageManager, registries}),\n configs.eslint && configureLinting\n ? scaffoldEslint({\n projectRoot,\n config: configs.eslint,\n buildDirectory,\n additionalConfiguration: eslint\n })\n : {},\n scaffoldRemark({\n projectRoot,\n projectType,\n dialect,\n vcs,\n config: configs.remark || '@form8ion/remark-lint-preset'\n }),\n vcs ? scaffoldBanSensitiveFiles() : {}\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 projectType,\n dialect,\n visibility,\n packageManager,\n vcs,\n configs,\n registries,\n configureLinting,\n tests,\n unitTestFrameworks,\n decisions,\n buildDirectory,\n eslintConfigs,\n pathWithinParent\n}) {\n const [testingResults, huskyResults] = await Promise.all([\n scaffoldTesting({\n projectRoot,\n tests,\n visibility,\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n }),\n scaffoldHusky({projectRoot, packageManager})\n ]);\n\n const lintingResults = await scaffoldLinting({\n projectRoot,\n projectType,\n packageManager,\n dialect,\n configs,\n registries,\n vcs,\n configureLinting,\n buildDirectory,\n eslint: deepmerge.all([testingResults.eslint, {configs: testingResults.eslintConfigs}, {configs: eslintConfigs}])\n });\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {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 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 scaffoldPackage from './package';\nimport buildPackageName from '../package-name';\nimport scaffoldProjectType from './project-type';\nimport buildDocumentationCommand from '../documentation/generation-command';\nimport {scaffoldVerification} from './verification';\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 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 projectTypeResults = await scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect\n });\n const verificationResults = await scaffoldVerification({\n projectRoot,\n projectType,\n dialect,\n packageManager,\n visibility,\n vcs,\n configs,\n registries,\n configureLinting,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent,\n buildDirectory: projectTypeResults.buildDirectory,\n eslintConfigs: projectTypeResults.eslintConfigs\n });\n const [nodeVersion, npmResults, dialectResults] = await Promise.all([\n scaffoldNodeVersion({projectRoot, nodeVersionCategory}),\n scaffoldNpmConfig({projectType, projectRoot, registries}),\n scaffoldDialect({\n dialect,\n configs,\n projectRoot,\n projectType,\n tests,\n buildDirectory: projectTypeResults.buildDirectory,\n testFilenamePattern: verificationResults.testFilenamePattern\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 projectTypeResults,\n verificationResults,\n npmResults,\n dialectResults\n ]);\n\n const {homepage: projectHomepage} = await scaffoldPackage({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n packageProperties: mergedContributions.packageProperties,\n scripts: mergedContributions.scripts,\n pathWithinParent\n });\n\n const liftResults = await lift({\n results: deepmerge({devDependencies: ['npm-run-all'], packageManager}, mergedContributions),\n projectRoot,\n configs\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 return fileExists(`${projectRoot}/.nvmrc`);\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","UNIT_TEST_FRAMEWORK","NODE_VERSION_CATEGORY","PACKAGE_MANAGER","PROJECT_TYPE","PROJECT_TYPE_CHOICE","SHOULD_BE_SCOPED","SCOPE","AUTHOR_NAME","AUTHOR_EMAIL","AUTHOR_URL","HOST","CONFIGURE_LINTING","DIALECT","projectRoot","promises","writeFile","JSON","stringify","reporter","exclude","devDependencies","vcsIgnore","files","directories","eslint","ignore","vcs","visibility","pathWithinParent","deepmerge","scaffoldC8","scaffoldCodecov","fileExists","packageManager","dependencies","execa","Promise","all","fs","unlink","rmdir","recursive","force","removeDependencies","lift","nycIsConfigured","c8Results","removeNyc","scripts","nextSteps","summary","unitTestFrameworksSchema","joi","object","required","pattern","scaffolder","func","arity","frameworks","decisions","Object","keys","length","answers","prompt","name","type","message","choices","Separator","validatedFrameworks","validateOptions","framework","coverage","chooseFramework","then","chosenFramework","scaffoldFrameworkChoice","scaffoldCoverage","results","enhancers","options","info","values","reduce","acc","enhancer","test","previousResults","engines","parse","readFile","node","badges","consumer","img","text","tags","level","pathToPackageJson","existingPackageJsonContents","keywords","installDependencies","PROD_DEPENDENCY_TYPE","DEV_DEPENDENCY_TYPE","packageManagers","NPM","YARN","Error","eslintConfigs","manager","resolvePackageManager","eslintResults","liftEslint","configs","enhancerResults","applyEnhancers","huskyPlugin","enginesEnhancer","coveragePlugin","liftPackage","validate","schema","string","projectName","regex","invert","valid","license","description","host","owner","scope","typescript","commitlint","packageName","babelPreset","remark","default","overrides","npmAccount","author","email","url","uri","ciServices","public","boolean","private","hosts","projectTypes","array","items","applicationTypes","packageTypes","monorepoTypes","unitTestFrameworks","registries","error","value","hoek","assert","npmConf","require","dialects","COMMON_JS","short","BABEL","ESM","TYPESCRIPT","projectIsPackage","PACKAGE","projectIsCLI","CLI","projectIsApplication","APPLICATION","packageShouldBeScoped","willBePublishedToNpm","shouldBeScopedPromptShouldBePresented","scopePromptShouldBePresentedFactory","lintingPromptShouldBePresented","commonQuestionNames","UNIT_TESTS","unitTested","INTEGRATION_TESTS","integrationTested","input","authorQuestions","npmConfFactory","maybeLoggedInNpmUsername","stdout","failedExecutionResult","warn","projectType","CI_SERVICE","ci","chosenHost","nodeVersionCategory","authorName","authorEmail","authorUrl","configureLinting","dialect","promptWithInquirer","buildDialectChoices","when","validateScope","get","commonQuestions","tests","unit","integration","preset","buildDirectory","fsPromises","presets","env","plugins","config","testFilenamePattern","shareableTsConfigPackage","$schema","extends","compilerOptions","rootDir","outDir","declaration","include","packageProperties","types","scaffoldBabel","scaffoldTypescript","scaffoldEsm","projectWillNotBeConsumed","fromEntries","entries","map","join","projectTypeResults","toc","buildGenerationCommand","documentation","contributing","determineLatestVersionOf","nvmLsOutput","shell","lsLines","split","lsLine","match","install","subprocess","pipe","process","undefined","lowerCaseCategory","toLowerCase","version","installNodeVersion","contributors","vcsIgnoreLists","projectWillBeTested","find","scriptName","startsWith","projectShouldBeBuiltForVerification","defineScripts","defineVcsHostDetails","packageType","repository","directory","bugs","homepage","packageData","buildPackageDetails","validForNewPackages","errors","validatePackageName","includes","slice","EOL","getInstallationCommand","usage","npm","link","status","fileName","resolve","__dirname","defaultBuildDirectory","createExample","mustache","render","determinePathToTemplateFile","camelcase","buildDetailsForCommonJsProject","touch","pathToCreatedSrcDirectory","mkdir","rollupResults","scaffoldRollup","clean","prebuild","build","prepack","runkit","detailsForBuild","buildDetails","details","main","module","sideEffects","chosenType","choosePackageType","scaffoldChosenPackageType","publishConfig","access","runkitExampleFilename","scaffoldPackageDocumentation","defineBadges","chooseApplicationType","scaffoldChosenApplicationType","start","MONOREPO","bin","scaffoldPackageType","scaffoldApplicationType","scaffoldCliType","scaffoldMonorepoType","unitResults","scaffoldUnitTesting","additionalConfiguration","ignores","scaffold","settings","listItemIndent","emphasis","strong","bullet","incrementListMarker","tight","heading","determineLockfilePathFor","path","scaffoldLockfileLint","scaffoldEslint","scaffoldRemark","scaffoldBanSensitiveFiles","scaffoldVerification","testingResults","huskyResults","scaffoldTesting","scaffoldHusky","lintingResults","scaffoldLinting","buildPackageName","scaffoldProjectType","verificationResults","nodeVersion","npmResults","dialectResults","scaffoldNodeVersion","scaffoldNpmConfig","scaffoldDialect","mergedContributions","scaffoldChoice","scaffoldCommitConvention","projectHomepage","scaffoldPackage","liftResults","buildBadgesDetails","scaffoldDocumentation","buildVcsIgnoreLists","verificationCommand","buildDocumentationCommand","projectDetails","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.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/apply.js","../src/lift/enhancers/engines.js","../src/lift/package.js","../src/lift/package-manager.js","../src/lift/lift.js","../src/options-validator.js","../thirdparty-wrappers/npm-conf.js","../src/scaffolder/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/scaffolder/dialects/babel.js","../src/scaffolder/dialects/typescript.js","../src/scaffolder/dialects/esm.js","../src/scaffolder/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/scaffolder/package/details.js","../src/scaffolder/package/scaffolder.js","../src/package-name.js","../src/scaffolder/project-type/prompt.js","../src/scaffolder/project-type/package/documentation.js","../src/scaffolder/project-type/package/badges.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/scaffolder/verification/testing/scaffolder.js","../src/scaffolder/verification/linting/eslint.js","../src/scaffolder/verification/linting/remark.js","../src/scaffolder/verification/linting/ban-sensitive-files.js","../src/scaffolder/verification/linting/lockfile.js","../src/scaffolder/verification/linting/scaffolder.js","../src/scaffolder/verification/verifier.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 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.rmdir(`${projectRoot}/.nyc_output`, {recursive: true, force: true}),\n removeDependencies({packageManager, dependencies: ['nyc', '@istanbuljs/nyc-config-babel']})\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 * as joi from 'joi';\n\nexport const unitTestFrameworksSchema = joi.object().required().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n}));\n","import {Separator} from 'inquirer';\nimport {prompt} 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}) {\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})),\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 deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({results, enhancers = {}, options}) {\n info('Applying Enhancers');\n\n return Object.values(enhancers)\n .reduce(async (acc, enhancer) => {\n if (await enhancer.test(options)) {\n const previousResults = await acc;\n\n return deepmerge(\n previousResults,\n await enhancer.lift({results: previousResults, ...options})\n );\n }\n\n return acc;\n }, results);\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","import {promises as fs} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport {DEV_DEPENDENCY_TYPE, installDependencies, PROD_DEPENDENCY_TYPE} from '@form8ion/javascript-core';\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 fs.writeFile(\n pathToPackageJson,\n JSON.stringify(\n {\n ...existingPackageJsonContents,\n scripts: {...existingPackageJsonContents.scripts, ...scripts},\n ...tags && {\n keywords: existingPackageJsonContents.keywords ? [...existingPackageJsonContents.keywords, ...tags] : tags\n }\n },\n null,\n 2\n )\n );\n }\n\n info('Installing dependencies');\n\n await installDependencies(dependencies || [], PROD_DEPENDENCY_TYPE, projectRoot, packageManager);\n await installDependencies([...devDependencies || []], DEV_DEPENDENCY_TYPE, projectRoot, packageManager);\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 {lift as liftEslint} from '@form8ion/eslint';\nimport * as huskyPlugin from '@form8ion/husky';\n\nimport * as coveragePlugin from '../coverage';\nimport applyEnhancers from './enhancers/apply';\nimport * as enginesEnhancer from './enhancers/engines';\nimport liftPackage from './package';\nimport resolvePackageManager from './package-manager';\n\nexport default async function ({projectRoot, results}) {\n info('Lifting JavaScript-specific details');\n\n const {scripts, tags, eslintConfigs, dependencies, devDependencies, packageManager: manager} = results;\n\n const packageManager = await resolvePackageManager({projectRoot, packageManager: manager});\n\n const eslintResults = await liftEslint({projectRoot, configs: eslintConfigs});\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: [huskyPlugin, enginesEnhancer, coveragePlugin],\n options: {packageManager, projectRoot}\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 * as joi from 'joi';\nimport hoek from '@hapi/hoek';\nimport {unitTestFrameworksSchema} from './testing/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 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 decisions: joi.object()\n })\n .keys({unitTestFrameworks: unitTestFrameworksSchema})\n .keys({registries: joi.object().pattern(joi.string(), joi.string().uri())});\n const {error, value} = schema.validate(options);\n\n hoek.assert(!error, error);\n\n return value;\n}\n","const npmConf = require('npm-conf');\n\nexport default npmConf;\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 {Separator} from 'inquirer';\nimport {packageManagers, projectTypes} from '@form8ion/javascript-core';\nimport {prompt as promptWithInquirer} 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 '../scaffolder/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 {promises as fsPromises} from 'fs';\n\nexport default async function ({projectRoot, preset, tests, buildDirectory}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await fsPromises.writeFile(\n `${projectRoot}/.babelrc`,\n JSON.stringify({\n presets: [preset.name],\n ignore: [`./${buildDirectory}/`],\n ...tests.unit && {env: {test: {plugins: ['istanbul']}}}\n })\n );\n\n return {\n devDependencies: [\n '@babel/register',\n preset.packageName,\n ...tests.unit ? ['babel-plugin-istanbul'] : []\n ],\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 packageProperties: {types: 'lib/index.d.ts'},\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","export default function () {\n return {packageProperties: {engines: {node: '>=12.20'}}};\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport scaffoldBabel from './babel';\nimport scaffoldTypescript from './typescript';\nimport scaffoldEsm from './esm';\n\nexport default function ({dialect, projectType, projectRoot, configs, tests, buildDirectory, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot, tests, buildDirectory});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n case dialects.ESM:\n return scaffoldEsm();\n default:\n return {eslint: {}};\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 ({projectRoot, projectType, registries}) {\n await fs.writeFile(\n `${projectRoot}/.npmrc`,\n stringify({\n 'update-notifier': false,\n 'engine-strict': true,\n ...projectWillNotBeConsumed(projectType) && {'save-exact': true},\n ...registries\n && Object.fromEntries(Object.entries(registries).map(([scope, url]) => ([`@${scope}:registry`, url])))\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 {dialects, projectTypes} from '@form8ion/javascript-core';\n\nfunction 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\nfunction defineScripts(scripts) {\n return {\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\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 scripts,\n packageProperties,\n pathWithinParent\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n ...packageProperties,\n ...defineVcsHostDetails(vcs, projectType, packageName, pathWithinParent),\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: defineScripts(scripts)\n };\n}\n","import {promises as fs} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport buildPackageDetails from './details';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n scripts,\n packageName,\n license,\n vcs,\n author,\n description,\n packageProperties,\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 scripts,\n packageProperties,\n pathWithinParent\n });\n\n await fs.writeFile(`${projectRoot}/package.json`, JSON.stringify(packageData));\n\n return {homepage: packageData.homepage};\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 {Separator} from 'inquirer';\nimport {prompt} 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 {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 {resolve} from 'path';\n\nexport default function (fileName) {\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} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport camelcase from '../../../../thirdparty-wrappers/camelcase';\nimport mkdir from '../../../../thirdparty-wrappers/make-dir';\nimport touch from '../../../../thirdparty-wrappers/touch';\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 ({projectRoot, projectName, visibility, packageName, dialect}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName});\n\n const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);\n const [rollupResults] = await Promise.all([\n scaffoldRollup({projectRoot, dialect, projectType: projectTypes.PACKAGE}),\n await createExample(projectRoot, projectName),\n touch(`${pathToCreatedSrcDirectory}/index.js`)\n ]);\n\n return deepmerge(\n rollupResults,\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 {dialects, scaffoldChoice as scaffoldChosenPackageType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport choosePackageType from '../prompt';\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 packageTypes,\n tests,\n decisions,\n dialect\n}) {\n info('Scaffolding Package Details');\n\n const detailsForBuild = await buildDetails({projectRoot, projectName, visibility, packageName, dialect});\n const details = {\n ...dialects.BABEL === dialect && {\n packageProperties: {\n main: 'lib/index.cjs.js',\n module: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.ESM === dialect && {\n packageProperties: {\n main: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.TYPESCRIPT === dialect && {\n packageProperties: {\n main: 'lib/index.cjs.js',\n module: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.COMMON_JS === dialect && {\n packageProperties: {files: ['index.js']},\n ...detailsForBuild\n }\n };\n\n const chosenType = await choosePackageType({types: packageTypes, projectType: 'package', decisions});\n const results = await scaffoldChosenPackageType(\n packageTypes,\n chosenType,\n {projectRoot, projectName, packageName, tests, scope}\n );\n\n return deepmerge.all([\n {\n packageProperties: {\n files: ['example.js'],\n publishConfig: {access: 'Public' === visibility ? 'public' : 'restricted'},\n ...'Public' === visibility && {runkitExampleFilename: './example.js'}\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 results,\n details\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldChosenApplicationType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport chooseApplicationType from './prompt';\n\nconst defaultBuildDirectory = 'lib';\n\nexport default async function ({\n applicationTypes,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n tests,\n decisions\n}) {\n info('Scaffolding Application Details');\n\n const chosenType = await chooseApplicationType({types: applicationTypes, projectType: 'application', decisions});\n const results = await scaffoldChosenApplicationType(\n applicationTypes,\n chosenType,\n {projectRoot, projectName, packageName, packageManager, tests}\n );\n\n const buildDirectory = results.buildDirectory || defaultBuildDirectory;\n\n return deepmerge(\n {\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 packageProperties: {private: true},\n eslintConfigs: [],\n nextSteps: []\n },\n results\n );\n}\n","import deepmerge from 'deepmerge';\nimport {projectTypes, scaffoldChoice as scaffoldChosenApplicationType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport chooseApplicationType from './prompt';\n\nexport default async function ({monorepoTypes, projectRoot, packageManager, decisions}) {\n info('Scaffolding Monorepo Details');\n\n const chosenType = await chooseApplicationType({types: monorepoTypes, projectType: projectTypes.MONOREPO, decisions});\n const results = await scaffoldChosenApplicationType(monorepoTypes, chosenType, {projectRoot, packageManager});\n\n return deepmerge(\n {\n eslintConfigs: [],\n packageProperties: {private: true},\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 results\n );\n}\n","import deepmerge from 'deepmerge';\nimport {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}) {\n const rollupResults = await scaffoldRollup({projectRoot, dialect, projectType: projectTypes.CLI});\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 packageProperties: {\n version: '0.0.0-semantically-released',\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {access: 'Public' === visibility ? 'public' : 'restricted'}\n },\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 applicationTypes,\n packageTypes,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageTypes,\n tests,\n vcs,\n decisions,\n dialect\n });\n case projectTypes.APPLICATION:\n return scaffoldApplicationType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n applicationTypes,\n tests,\n decisions\n });\n case projectTypes.CLI:\n return scaffoldCliType({packageName, visibility, projectRoot, dialect});\n case projectTypes.MONOREPO:\n return scaffoldMonorepoType({monorepoTypes, projectRoot, packageManager, decisions});\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 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(\n {devDependencies: [...(unit || integration) ? ['@travi/any'] : []], eslint: [], eslintConfigs: []},\n unitResults\n );\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 {promises as fsPromises} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectRoot, projectType, vcs, dialect}) {\n await fsPromises.writeFile(\n `${projectRoot}/.remarkrc.json`,\n JSON.stringify({\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","export default function () {\n return {scripts: {'lint:sensitive': 'ban'}, devDependencies: ['ban-sensitive-files']};\n}\n","import {promises as fs} from 'fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nfunction determineLockfilePathFor(packageManager) {\n if (packageManagers.NPM === packageManager) return 'package-lock.json';\n if (packageManagers.YARN === packageManager) return 'yarn.lock';\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 async function ({projectRoot, packageManager, registries}) {\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': [packageManager, ...registries ? Object.values(registries) : []]\n })\n );\n\n return {\n devDependencies: ['lockfile-lint'],\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldEslint from './eslint';\nimport scaffoldRemark from './remark';\nimport scaffoldBanSensitiveFiles from './ban-sensitive-files';\nimport scaffoldLockfileLint from './lockfile';\n\nexport default async function ({\n projectRoot,\n projectType,\n packageManager,\n dialect,\n registries,\n configs,\n vcs,\n configureLinting,\n buildDirectory,\n eslint\n}) {\n return deepmerge.all(await Promise.all([\n scaffoldLockfileLint({projectRoot, packageManager, registries}),\n configs.eslint && configureLinting\n ? scaffoldEslint({\n projectRoot,\n config: configs.eslint,\n buildDirectory,\n additionalConfiguration: eslint\n })\n : {},\n scaffoldRemark({\n projectRoot,\n projectType,\n dialect,\n vcs,\n config: configs.remark || '@form8ion/remark-lint-preset'\n }),\n vcs ? scaffoldBanSensitiveFiles() : {}\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 projectType,\n dialect,\n visibility,\n packageManager,\n vcs,\n configs,\n registries,\n configureLinting,\n tests,\n unitTestFrameworks,\n decisions,\n buildDirectory,\n eslintConfigs,\n pathWithinParent\n}) {\n const [testingResults, huskyResults] = await Promise.all([\n scaffoldTesting({\n projectRoot,\n tests,\n visibility,\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n }),\n scaffoldHusky({projectRoot, packageManager})\n ]);\n\n const lintingResults = await scaffoldLinting({\n projectRoot,\n projectType,\n packageManager,\n dialect,\n configs,\n registries,\n vcs,\n configureLinting,\n buildDirectory,\n eslint: deepmerge.all([testingResults.eslint, {configs: testingResults.eslintConfigs}, {configs: eslintConfigs}])\n });\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {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 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 scaffoldPackage from './package';\nimport buildPackageName from '../package-name';\nimport scaffoldProjectType from './project-type';\nimport buildDocumentationCommand from '../documentation/generation-command';\nimport {scaffoldVerification} from './verification';\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 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 projectTypeResults = await scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect\n });\n const verificationResults = await scaffoldVerification({\n projectRoot,\n projectType,\n dialect,\n packageManager,\n visibility,\n vcs,\n configs,\n registries,\n configureLinting,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent,\n buildDirectory: projectTypeResults.buildDirectory,\n eslintConfigs: projectTypeResults.eslintConfigs\n });\n const [nodeVersion, npmResults, dialectResults] = await Promise.all([\n scaffoldNodeVersion({projectRoot, nodeVersionCategory}),\n scaffoldNpmConfig({projectType, projectRoot, registries}),\n scaffoldDialect({\n dialect,\n configs,\n projectRoot,\n projectType,\n tests,\n buildDirectory: projectTypeResults.buildDirectory,\n testFilenamePattern: verificationResults.testFilenamePattern\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 projectTypeResults,\n verificationResults,\n npmResults,\n dialectResults\n ]);\n\n const {homepage: projectHomepage} = await scaffoldPackage({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n packageProperties: mergedContributions.packageProperties,\n scripts: mergedContributions.scripts,\n pathWithinParent\n });\n\n const liftResults = await lift({\n results: deepmerge({devDependencies: ['npm-run-all'], packageManager}, mergedContributions),\n projectRoot,\n configs\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 return fileExists(`${projectRoot}/.nvmrc`);\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","UNIT_TEST_FRAMEWORK","NODE_VERSION_CATEGORY","PACKAGE_MANAGER","PROJECT_TYPE","PROJECT_TYPE_CHOICE","SHOULD_BE_SCOPED","SCOPE","AUTHOR_NAME","AUTHOR_EMAIL","AUTHOR_URL","HOST","CONFIGURE_LINTING","DIALECT","projectRoot","promises","writeFile","JSON","stringify","reporter","exclude","devDependencies","vcsIgnore","files","directories","eslint","ignore","vcs","visibility","pathWithinParent","deepmerge","scaffoldC8","scaffoldCodecov","fileExists","packageManager","dependencies","execa","Promise","all","fs","unlink","rmdir","recursive","force","removeDependencies","lift","codecovResults","liftCodecov","nycIsConfigured","c8Results","removeNyc","scripts","nextSteps","summary","c8Exists","nycExists","c8IsConfigured","unitTestFrameworksSchema","joi","object","required","pattern","scaffolder","func","arity","frameworks","decisions","Object","keys","length","answers","prompt","name","type","message","choices","Separator","validatedFrameworks","validateOptions","framework","coverage","chooseFramework","then","chosenFramework","scaffoldFrameworkChoice","scaffoldCoverage","results","enhancers","options","info","values","reduce","acc","enhancer","test","previousResults","engines","parse","readFile","node","badges","consumer","img","text","tags","level","pathToPackageJson","existingPackageJsonContents","keywords","installDependencies","PROD_DEPENDENCY_TYPE","DEV_DEPENDENCY_TYPE","packageManagers","NPM","YARN","Error","eslintConfigs","manager","resolvePackageManager","eslintResults","liftEslint","configs","enhancerResults","applyEnhancers","huskyPlugin","enginesEnhancer","coveragePlugin","liftPackage","validate","schema","string","projectName","regex","invert","valid","license","description","host","owner","scope","typescript","commitlint","packageName","babelPreset","remark","default","overrides","npmAccount","author","email","url","uri","ciServices","public","boolean","private","hosts","projectTypes","array","items","applicationTypes","packageTypes","monorepoTypes","unitTestFrameworks","registries","error","value","hoek","assert","npmConf","require","dialects","COMMON_JS","short","BABEL","ESM","TYPESCRIPT","projectIsPackage","PACKAGE","projectIsCLI","CLI","projectIsApplication","APPLICATION","packageShouldBeScoped","willBePublishedToNpm","shouldBeScopedPromptShouldBePresented","scopePromptShouldBePresentedFactory","lintingPromptShouldBePresented","commonQuestionNames","UNIT_TESTS","unitTested","INTEGRATION_TESTS","integrationTested","input","authorQuestions","npmConfFactory","maybeLoggedInNpmUsername","stdout","failedExecutionResult","warn","projectType","CI_SERVICE","ci","chosenHost","nodeVersionCategory","authorName","authorEmail","authorUrl","configureLinting","dialect","promptWithInquirer","buildDialectChoices","when","validateScope","get","commonQuestions","tests","unit","integration","preset","buildDirectory","fsPromises","presets","env","plugins","config","testFilenamePattern","shareableTsConfigPackage","$schema","extends","compilerOptions","rootDir","outDir","declaration","include","packageProperties","types","scaffoldBabel","scaffoldTypescript","scaffoldEsm","projectWillNotBeConsumed","fromEntries","entries","map","join","projectTypeResults","toc","buildGenerationCommand","documentation","contributing","determineLatestVersionOf","nvmLsOutput","shell","lsLines","split","lsLine","match","install","subprocess","pipe","process","undefined","lowerCaseCategory","toLowerCase","version","installNodeVersion","contributors","vcsIgnoreLists","projectWillBeTested","find","scriptName","startsWith","projectShouldBeBuiltForVerification","defineScripts","defineVcsHostDetails","packageType","repository","directory","bugs","homepage","packageData","buildPackageDetails","validForNewPackages","errors","validatePackageName","includes","slice","EOL","getInstallationCommand","usage","npm","link","status","fileName","resolve","__dirname","defaultBuildDirectory","createExample","mustache","render","determinePathToTemplateFile","camelcase","buildDetailsForCommonJsProject","touch","pathToCreatedSrcDirectory","mkdir","rollupResults","scaffoldRollup","clean","prebuild","build","prepack","runkit","detailsForBuild","buildDetails","details","main","module","sideEffects","chosenType","choosePackageType","scaffoldChosenPackageType","publishConfig","access","runkitExampleFilename","scaffoldPackageDocumentation","defineBadges","chooseApplicationType","scaffoldChosenApplicationType","start","MONOREPO","bin","scaffoldPackageType","scaffoldApplicationType","scaffoldCliType","scaffoldMonorepoType","unitResults","scaffoldUnitTesting","additionalConfiguration","ignores","scaffold","settings","listItemIndent","emphasis","strong","bullet","incrementListMarker","tight","heading","determineLockfilePathFor","path","scaffoldLockfileLint","scaffoldEslint","scaffoldRemark","scaffoldBanSensitiveFiles","scaffoldVerification","testingResults","huskyResults","scaffoldTesting","scaffoldHusky","lintingResults","scaffoldLinting","buildPackageName","scaffoldProjectType","verificationResults","nodeVersion","npmResults","dialectResults","scaffoldNodeVersion","scaffoldNpmConfig","scaffoldDialect","mergedContributions","scaffoldChoice","scaffoldCommitConvention","projectHomepage","scaffoldPackage","liftResults","buildBadgesDetails","scaffoldDocumentation","buildVcsIgnoreLists","verificationCommand","buildDocumentationCommand","projectDetails","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}