@form8ion/javascript 14.0.0-beta.3 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { questionNames as questionNames$2, questions } from '@travi/language-scaffolder-prompts';
2
2
  import deepmerge from 'deepmerge';
3
3
  import { fileTypes, fileExists, optionsSchemas, validateOptions, loadConfigFile, writeConfigFile, applyEnhancers } from '@form8ion/core';
4
- import { scaffoldChoice, dialects as dialects$1, projectTypes as projectTypes$1, packageManagers as packageManagers$1, writePackageJson, DEV_DEPENDENCY_TYPE, PROD_DEPENDENCY_TYPE, mergeIntoExistingPackageJson } from '@form8ion/javascript-core';
4
+ import { scaffoldChoice, dialects as dialects$1, projectTypes as projectTypes$1, packageManagers as packageManagers$1, writePackageJson, PROD_DEPENDENCY_TYPE, DEV_DEPENDENCY_TYPE, mergeIntoExistingPackageJson } from '@form8ion/javascript-core';
5
5
  import { prompt as prompt$1 } from '@form8ion/overridable-prompts';
6
6
  import joi from 'joi';
7
7
  import { scaffold, lift as lift$3 } from '@form8ion/codecov';
@@ -15,7 +15,6 @@ import { EOL } from 'os';
15
15
  import validatePackageName from 'validate-npm-package-name';
16
16
  import { promises } from 'fs';
17
17
  import mustache from 'mustache';
18
- import mkdir from 'make-dir';
19
18
  import touch from 'touch';
20
19
  import camelcase from 'camelcase';
21
20
  import { resolve } from 'path';
@@ -1015,7 +1014,7 @@ function defineBadges (packageName, accessLevel) {
1015
1014
  }
1016
1015
 
1017
1016
  function enhanceSlsa ({provenance}) {
1018
- if (provenance) {
1017
+ {
1019
1018
  return {
1020
1019
  badges: {
1021
1020
  status: {
@@ -1028,8 +1027,6 @@ function enhanceSlsa ({provenance}) {
1028
1027
  }
1029
1028
  };
1030
1029
  }
1031
-
1032
- return {};
1033
1030
  }
1034
1031
 
1035
1032
  async function liftProvenance ({projectRoot, packageDetails}) {
@@ -1127,11 +1124,11 @@ async function buildDetails ({
1127
1124
  }) {
1128
1125
  if (dialects$1.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName, provideExample});
1129
1126
 
1130
- const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);
1127
+ await promises.mkdir(`${projectRoot}/src`, {recursive: true});
1131
1128
  const [bundlerResults] = await Promise.all([
1132
1129
  scaffoldBundler({bundlers: packageBundlers, projectRoot, dialect, decisions, projectType: projectTypes$1.PACKAGE}),
1133
1130
  provideExample ? await createExample(projectRoot, projectName, dialect) : Promise.resolve,
1134
- touch(`${pathToCreatedSrcDirectory}/index.js`)
1131
+ touch(`${projectRoot}/src/index.js`)
1135
1132
  ]);
1136
1133
 
1137
1134
  return deepmerge(
@@ -1394,9 +1391,9 @@ async function scaffoldProjectType ({
1394
1391
  }
1395
1392
 
1396
1393
  async function tester$3 ({projectRoot, packageDetails}) {
1397
- return await isPackage({projectRoot, packageDetails})
1398
- || await isCli({projectRoot, packageDetails})
1399
- || isApplication({projectRoot, packageDetails});
1394
+ return await isPackage({packageDetails})
1395
+ || await isCli({packageDetails})
1396
+ || isApplication({packageDetails});
1400
1397
  }
1401
1398
 
1402
1399
  function vcsRepositoryHostedOnGithub(vcs) {
@@ -1404,8 +1401,8 @@ function vcsRepositoryHostedOnGithub(vcs) {
1404
1401
  }
1405
1402
 
1406
1403
  async function lifter$2 ({projectRoot, packageDetails, vcs}) {
1407
- if (await isPackage({projectRoot, packageDetails})) return liftPackage({projectRoot, packageDetails});
1408
- if (await isCli({projectRoot, packageDetails})) return liftCli({projectRoot, packageDetails});
1404
+ if (await isPackage({packageDetails})) return liftPackage({projectRoot, packageDetails});
1405
+ if (await isCli({packageDetails})) return liftCli({projectRoot, packageDetails});
1409
1406
 
1410
1407
  let homepage;
1411
1408
 
@@ -1571,7 +1568,7 @@ async function scaffoldVerification({
1571
1568
  dialect,
1572
1569
  pathWithinParent
1573
1570
  }),
1574
- scaffoldLinting({projectRoot, packageManager, registries, vcs, pathWithinParent}),
1571
+ scaffoldLinting({projectRoot, packageManager, registries}),
1575
1572
  scaffold$1({projectRoot, packageManager, pathWithinParent})
1576
1573
  ]);
1577
1574
 
@@ -1704,13 +1701,8 @@ async function scaffolder (options) {
1704
1701
  packageName,
1705
1702
  packageManager,
1706
1703
  visibility,
1707
- applicationTypes,
1708
- packageTypes,
1709
- monorepoTypes,
1710
1704
  packageBundlers,
1711
1705
  scope,
1712
- tests,
1713
- vcs,
1714
1706
  decisions,
1715
1707
  dialect,
1716
1708
  provideExample,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/prompts/question-names.js","../src/coverage/c8/scaffolder.js","../src/coverage/scaffolder.js","../src/coverage/nyc/tester.js","../src/dependencies/remover.js","../src/coverage/nyc/remover.js","../src/coverage/lifter.js","../src/coverage/c8/tester.js","../src/coverage/tester.js","../src/testing/prompt.js","../src/plugins-schemas.js","../src/testing/unit.js","../src/options/schemas.js","../src/vcs/schema.js","../src/options/validator.js","../src/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/dialects/babel/config/writer.js","../src/dialects/babel/config/loader.js","../src/dialects/babel/config/ignore-adder.js","../src/dialects/babel/scaffolder.js","../src/dialects/babel/lifter.js","../src/dialects/babel/predicate.js","../src/dialects/typescript/scaffolder.js","../src/dialects/scaffolder.js","../src/npm-config/writer.js","../src/npm-config/scaffolder.js","../src/npm-config/tester.js","../src/npm-config/reader.js","../src/npm-config/lifter.js","../src/package-managers/npm/scaffolder.js","../src/package-managers/lockfile-path-resolver.js","../src/package-managers/npm/tester.js","../src/package-managers/yarn/scaffolder.js","../src/package-managers/yarn/tester.js","../src/package-managers/tester.js","../src/corepack/lifter.js","../src/package-managers/lifter.js","../src/package-managers/scaffolder.js","../src/package-managers/current-manager-resolver.js","../src/documentation/generation-command.js","../src/documentation/scaffolder.js","../src/node-version/tasks.js","../src/node-version/scaffolder.js","../src/node-version/tester.js","../src/vcs/ignore-lists-builder.js","../src/package/package-name.js","../src/package/details.js","../src/package/scaffolder.js","../src/package/property-sorter.js","../src/package/vcs-host-details.js","../src/dependencies/package-managers.js","../src/dependencies/installer.js","../src/dependencies/processor.js","../src/package/scripts/test-script-updater.js","../src/package/scripts/lifter.js","../src/package/lifter.js","../src/project-type/package/documentation.js","../src/project-type/publishable/access-level.js","../src/project-type/publishable/badges.js","../src/project-type/publishable/provenance/slsa.js","../src/project-type/publishable/provenance/lifter.js","../src/project-type/publishable/lifter.js","../src/project-type/publishable/scaffolder.js","../src/project-type/publishable/bundler/prompt.js","../src/project-type/publishable/bundler/scaffolder.js","../src/template-path.js","../src/project-type/package/build-details.js","../src/project-type/package/scaffolder.js","../src/project-type/package/lifter.js","../src/project-type/package/tester.js","../src/project-type/application/scaffolder.js","../src/project-type/application/predicate.js","../src/project-type/monorepo/scaffolder.js","../src/project-type/cli/scaffolder.js","../src/project-type/cli/tester.js","../src/project-type/cli/lifter.js","../src/project-type/scaffolder.js","../src/project-type/tester.js","../src/project-type/lifter.js","../src/project-type-plugin/prompt.js","../src/project-type-plugin/scaffolder.js","../src/scaffolder/verification/testing/scaffolder.js","../src/lockfile-lint/allowed-hosts-builder.js","../src/lockfile-lint/scaffolder.js","../src/lockfile-lint/tester.js","../src/lockfile-lint/config.js","../src/linting/scaffolder.js","../src/scaffolder/verification/verifier.js","../src/code-style/remark/scaffolder.js","../src/code-style/scaffolder.js","../src/code-style/lifter.js","../src/code-style/tester.js","../src/scaffolder/scaffolder.js","../src/registries/tester.js","../src/registries/npm-config/list-builder.js","../src/registries/lifter.js","../src/lift/enhancers/engines.js","../src/lift/lift.js","../src/tester.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n UNIT_TEST_FRAMEWORK: 'unitTestFramework',\n NODE_VERSION_CATEGORY: 'nodeVersionCategory',\n PACKAGE_MANAGER: 'packageManager',\n PACKAGE_BUNDLER: 'packageBundler',\n PROJECT_TYPE: 'projectType',\n PROJECT_TYPE_CHOICE: 'projectTypeChoice',\n SHOULD_BE_SCOPED: 'shouldBeScoped',\n SCOPE: 'scope',\n AUTHOR_NAME: 'authorName',\n AUTHOR_EMAIL: 'authorEmail',\n AUTHOR_URL: 'authorUrl',\n HOST: 'host',\n CONFIGURE_LINTING: 'configureLint',\n PROVIDE_EXAMPLE: 'provideExample',\n DIALECT: 'dialect'\n};\n","import {write} from '@form8ion/config-file';\nimport {fileTypes} from '@form8ion/core';\n\nexport default async function ({projectRoot}) {\n await write({\n name: 'c8',\n format: fileTypes.JSON,\n path: projectRoot,\n config: {\n reporter: ['lcov', 'text-summary', 'html'],\n exclude: ['src/**/*-test.js', 'test/', 'thirdparty-wrappers/', 'vendor/']\n }\n });\n\n return {\n dependencies: {javascript: {development: ['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';\n\nimport {scaffold as scaffoldC8} from './c8/index.js';\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 'execa';\n\nexport default async function ({packageManager, dependencies}) {\n await execa(packageManager, ['remove', ...dependencies]);\n}\n","import {promises as fs} from 'fs';\n\nimport removeDependencies from '../../dependencies/remover.js';\n\nexport default async function ({projectRoot, packageManager}) {\n await Promise.all([\n fs.unlink(`${projectRoot}/.nycrc`),\n fs.rm(`${projectRoot}/.nyc_output`, {recursive: true, force: true}),\n removeDependencies({packageManager, dependencies: ['nyc', '@istanbuljs/nyc-config-babel', 'babel-plugin-istanbul']})\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {lift as liftCodecov} from '@form8ion/codecov';\n\nimport {scaffold as scaffoldC8} from './c8/index.js';\nimport {test as nycIsConfigured, remove as removeNyc} from './nyc/index.js';\n\nexport async function lift({projectRoot, packageManager, vcs}) {\n const codecovResults = await liftCodecov({projectRoot, packageManager, vcs});\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 codecovResults;\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.js';\nimport nycIsConfigured from './nyc/tester.js';\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 {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names.js';\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), 'Other']\n }], decisions);\n\n return answers[questionNames.UNIT_TEST_FRAMEWORK];\n}\n","import joi from 'joi';\nimport {optionsSchemas} from '@form8ion/core';\n\nexport const pluginsSchema = joi.object().pattern(/^/, optionsSchemas.form8ionPlugin).default({});\n","import deepmerge from 'deepmerge';\nimport {validateOptions} from '@form8ion/core';\nimport {scaffoldChoice as scaffoldFrameworkChoice} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldCoverage} from '../coverage/index.js';\nimport chooseFramework from './prompt.js';\nimport {pluginsSchema} from '../plugins-schemas.js';\n\nexport default async function ({projectRoot, frameworks, decisions, visibility, vcs, pathWithinParent, dialect}) {\n const validatedFrameworks = validateOptions(pluginsSchema, frameworks);\n const [framework, coverage] = await Promise.all([\n chooseFramework({frameworks: validatedFrameworks, decisions})\n .then(chosenFramework => scaffoldFrameworkChoice(validatedFrameworks, chosenFramework, {projectRoot, dialect})),\n scaffoldCoverage({projectRoot, vcs, visibility, pathWithinParent})\n ]);\n\n return deepmerge.all([\n {scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'}},\n framework,\n coverage\n ]);\n}\n","import joi from 'joi';\n\nexport const scopeBasedConfigSchema = joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()});\n\nexport const nameBasedConfigSchema = joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n});\n\nexport const registriesSchema = joi.object().pattern(joi.string(), joi.string().uri()).default({});\n\nexport const visibilitySchema = joi.string().valid('Public', 'Private').required();\n\nexport const projectNameSchema = joi.string().regex(/^@\\w*\\//, {invert: true}).required();\n","import joi from 'joi';\n\nexport const vcsSchema = joi.object({\n host: joi.string().required(),\n owner: joi.string().required(),\n name: joi.string().required()\n});\n","import joi from 'joi';\nimport {validateOptions} from '@form8ion/core';\n\nimport {pluginsSchema} from '../plugins-schemas.js';\nimport {\n nameBasedConfigSchema,\n projectNameSchema,\n registriesSchema,\n scopeBasedConfigSchema,\n visibilitySchema\n} from './schemas.js';\nimport {vcsSchema} from '../vcs/schema.js';\n\nexport function validate(options) {\n const schema = joi.object({\n projectRoot: joi.string().required(),\n projectName: projectNameSchema,\n visibility: visibilitySchema,\n license: joi.string().required(),\n description: joi.string(),\n pathWithinParent: joi.string(),\n decisions: joi.object(),\n vcs: vcsSchema,\n configs: joi.object({\n eslint: scopeBasedConfigSchema,\n typescript: scopeBasedConfigSchema,\n prettier: scopeBasedConfigSchema,\n commitlint: nameBasedConfigSchema,\n babelPreset: nameBasedConfigSchema,\n remark: joi.string(),\n registries: registriesSchema\n }).default({registries: {}}),\n plugins: {\n unitTestFrameworks: pluginsSchema,\n packageBundlers: pluginsSchema,\n applicationTypes: pluginsSchema,\n packageTypes: pluginsSchema,\n monorepoTypes: pluginsSchema,\n hosts: pluginsSchema,\n ciServices: pluginsSchema\n }\n }).required();\n\n return validateOptions(schema, options);\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nexport default function ({babelPreset, typescript}) {\n return [\n {name: 'Common JS (no transpilation)', value: dialects.COMMON_JS, short: 'cjs'},\n ...babelPreset ? [{name: 'Modern JavaScript (transpiled)', value: dialects.BABEL, short: 'modern'}] : [],\n {name: 'ESM-only (no transpilation)', value: dialects.ESM, short: 'esm'},\n ...typescript ? [{name: 'TypeScript', value: dialects.TYPESCRIPT, short: 'ts'}] : []\n ];\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport {questionNames as commonQuestionNames} from '@travi/language-scaffolder-prompts';\n\nimport {questionNames} from './question-names.js';\n\nfunction projectIsCLI(answers) {\n return projectTypes.CLI === answers[questionNames.PROJECT_TYPE];\n}\n\nexport function projectIsPackage(answers) {\n return projectTypes.PACKAGE === answers[questionNames.PROJECT_TYPE];\n}\n\nexport function projectIsApplication(answers) {\n return projectTypes.APPLICATION === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction packageShouldBeScoped(visibility, answers) {\n return 'Private' === visibility || answers[questionNames.SHOULD_BE_SCOPED];\n}\n\nfunction willBePublishedToNpm(answers) {\n return projectIsPackage(answers) || projectIsCLI(answers);\n}\n\nexport function shouldBeScopedPromptShouldBePresented(answers) {\n return willBePublishedToNpm(answers);\n}\n\nexport function scopePromptShouldBePresentedFactory(visibility) {\n return answers => willBePublishedToNpm(answers) && packageShouldBeScoped(visibility, answers);\n}\n\nexport function lintingPromptShouldBePresented({\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested\n}) {\n return !unitTested && !integrationTested;\n}\n","export function scope(visibility) {\n return input => {\n if (!input && 'Private' === visibility) {\n return 'Private packages must be scoped (https://docs.npmjs.com/private-modules/intro#setting-up-your-package)';\n }\n\n return true;\n };\n}\n","import {packageManagers, projectTypes} from '@form8ion/javascript-core';\nimport {prompt as promptWithInquirer} from '@form8ion/overridable-prompts';\nimport {questionNames as commonQuestionNames, questions as commonQuestions} from '@travi/language-scaffolder-prompts';\nimport {warn} from '@travi/cli-messages';\n\nimport {execa} from 'execa';\nimport npmConfFactory from '../../thirdparty-wrappers/npm-conf.js';\nimport buildDialectChoices from '../dialects/prompt-choices.js';\nimport {\n lintingPromptShouldBePresented,\n projectIsApplication,\n projectIsPackage,\n scopePromptShouldBePresentedFactory,\n shouldBeScopedPromptShouldBePresented\n} from './conditionals.js';\nimport {questionNames} from './question-names.js';\nimport {scope as validateScope} from './validators.js';\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 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.PROVIDE_EXAMPLE]: provideExample,\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), '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: maybeLoggedInNpmUsername\n },\n ...authorQuestions({\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, 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.PROVIDE_EXAMPLE,\n message: 'Should an example be provided in the README?',\n type: 'confirm',\n when: projectIsPackage\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), '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 provideExample,\n packageManager,\n dialect\n };\n}\n","import {fileTypes} from '@form8ion/core';\nimport {write} from '@form8ion/config-file';\n\nexport default function ({projectRoot, config}) {\n return write({path: projectRoot, name: 'babel', format: fileTypes.JSON, config});\n}\n","import {fileTypes, loadConfigFile} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return loadConfigFile({path: projectRoot, name: '.babelrc', format: fileTypes.JSON});\n}\n","import writeConfig from './writer.js';\nimport loadConfig from './loader.js';\n\nexport default async function ({projectRoot, ignore}) {\n if (ignore) {\n const existingConfig = await loadConfig({projectRoot});\n\n await writeConfig({projectRoot, config: {...existingConfig, ignore: [`./${ignore}/`]}});\n }\n}\n","import {write} from './config/index.js';\n\nexport default async function ({projectRoot, preset}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await write({projectRoot, config: {presets: [preset.name]}});\n\n return {\n dependencies: {javascript: {development: ['@babel/register', preset.packageName]}},\n eslint: {}\n };\n}\n","import {addIgnore} from './config/index.js';\n\nexport default async function ({results, projectRoot}) {\n await addIgnore({ignore: results.buildDirectory, projectRoot});\n\n return {};\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.babelrc.json`);\n}\n","import {fileTypes, writeConfigFile} from '@form8ion/core';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectType, projectRoot, testFilenamePattern}) {\n const shareableTsConfigPackage = `${config.scope}/tsconfig`;\n\n await writeConfigFile({\n path: projectRoot,\n name: 'tsconfig',\n format: fileTypes.JSON,\n config: {\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: ['typescript']},\n dependencies: {javascript: {development: ['typescript', shareableTsConfigPackage]}},\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldBabel} from './babel/index.js';\nimport {scaffold as scaffoldTypescript} from './typescript/index.js';\n\nexport default function ({dialect, projectType, projectRoot, configs, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n default:\n return {};\n }\n}\n","import {promises as fs} from 'node:fs';\nimport {stringify} from 'ini';\n\nexport default async function ({projectRoot, config}) {\n await fs.writeFile(`${projectRoot}/.npmrc`, stringify(config));\n}\n","import {projectTypes} from '@form8ion/javascript-core';\n\nimport write from './writer.js';\n\nfunction projectWillNotBeConsumed(projectType) {\n return projectTypes.APPLICATION === projectType || projectTypes.CLI === projectType;\n}\n\nexport default async function ({projectRoot, projectType}) {\n await write({\n projectRoot,\n config: {'update-notifier': false, ...projectWillNotBeConsumed(projectType) && {'save-exact': true}}\n });\n\n return {scripts: {'lint:peer': 'npm ls >/dev/null'}};\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.npmrc`);\n}\n","import {parse} from 'ini';\nimport {promises as fs} from 'node:fs';\nimport {fileExists} from '@form8ion/core';\n\nexport default async function ({projectRoot}) {\n const pathToConfig = `${projectRoot}/.npmrc`;\n\n if (!(await fileExists(pathToConfig))) return {};\n\n return parse(await fs.readFile(pathToConfig, 'utf-8'));\n}\n","import read from './reader.js';\nimport write from './writer.js';\n\nexport default async function ({projectRoot}) {\n const {\n provenance,\n 'engines-strict': enginesStrict,\n ...remainingProperties\n } = await read({projectRoot});\n\n await write({projectRoot, config: remainingProperties});\n\n return {};\n}\n","import {promises as fs} from 'node:fs';\nimport {execa} from 'execa';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nexport default async function ({projectRoot}) {\n const [packageContents, {stdout}] = await Promise.all([\n fs.readFile(`${projectRoot}/package.json`, 'utf-8'),\n execa('npm', ['--version'])\n ]);\n const existingPackageJsonContents = JSON.parse(packageContents);\n\n await writePackageJson({\n projectRoot,\n config: {\n ...existingPackageJsonContents,\n packageManager: `npm@${stdout}`\n }\n });\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nexport default function (packageManager) {\n const lockfilePaths = {\n [packageManagers.NPM]: 'package-lock.json',\n [packageManagers.YARN]: 'yarn.lock'\n };\n\n return lockfilePaths[packageManager];\n}\n","import {fileExists} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport determineLockfilePath from '../lockfile-path-resolver.js';\n\nexport default function ({projectRoot, pinnedPackageManager = ''}) {\n const [packageManager] = pinnedPackageManager.split('@');\n\n return packageManagers.NPM === packageManager\n || fileExists(`${projectRoot}/${determineLockfilePath(packageManagers.NPM)}`);\n}\n","import {promises as fs} from 'node:fs';\nimport {execa} from 'execa';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nexport default async function ({projectRoot}) {\n const [packageContents, {stdout}] = await Promise.all([\n fs.readFile(`${projectRoot}/package.json`, 'utf-8'),\n execa('yarn', ['--version'])\n ]);\n const existingPackageJsonContents = JSON.parse(packageContents);\n\n await writePackageJson({\n projectRoot,\n config: {\n ...existingPackageJsonContents,\n packageManager: `yarn@${stdout}`\n }\n });\n}\n","import {fileExists} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport determineLockfilePath from '../lockfile-path-resolver.js';\n\nexport default function ({projectRoot, pinnedPackageManager = ''}) {\n const [packageManager] = pinnedPackageManager.split('@');\n\n return packageManagers.YARN === packageManager\n || fileExists(`${projectRoot}/${determineLockfilePath(packageManagers.YARN)}`);\n}\n","import {test as npmIsUsed} from './npm/index.js';\nimport {test as yarnIsUsed} from './yarn/index.js';\n\nexport default async function ({projectRoot}) {\n const [npmFound, yarnFound] = await Promise.all([\n npmIsUsed({projectRoot}),\n yarnIsUsed({projectRoot})\n ]);\n\n return npmFound || yarnFound;\n}\n","import {execa} from 'execa';\n\nexport default async function () {\n await execa('corepack', ['use', 'npm@latest']);\n}\n","import {lift as liftCorepack} from '../corepack/index.js';\n\nexport default async function () {\n await liftCorepack();\n\n return {};\n}\n","import {scaffold as scaffoldNpm} from './npm/index.js';\nimport {scaffold as scaffoldYarn} from './yarn/index.js';\n\nconst scaffolders = {\n npm: scaffoldNpm,\n yarn: scaffoldYarn\n};\n\nexport default function ({projectRoot, packageManager}) {\n return scaffolders[packageManager]({projectRoot});\n}\n","import {promises as fs} from 'node:fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport {test as npmIsUsed} from './npm/index.js';\nimport {test as yarnIsUsed} from './yarn/index.js';\n\nexport default async function ({projectRoot, packageManager}) {\n if (packageManager) return packageManager;\n\n const {packageManager: pinnedPackageManager} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf-8'));\n\n if (await npmIsUsed({projectRoot, pinnedPackageManager})) {\n return packageManagers.NPM;\n }\n\n if (await yarnIsUsed({projectRoot, pinnedPackageManager})) {\n return packageManagers.YARN;\n }\n\n throw new Error('Package-manager could not be determined');\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.js';\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';\n\nimport {execa} from '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 fs} from 'node:fs';\nimport {info} from '@travi/cli-messages';\n\nimport {determineLatestVersionOf, install as installNodeVersion} from './tasks.js';\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 fs.writeFile(`${projectRoot}/.nvmrc`, version);\n\n await installNodeVersion(nodeVersionCategory);\n\n return version;\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.nvmrc`);\n}\n","export default function (vcsIgnoreLists = {}) {\n return {\n files: vcsIgnoreLists.files || [],\n directories: ['/node_modules/', ...vcsIgnoreLists.directories || []]\n };\n}\n","import {EOL} from 'os';\nimport validatePackageName from '../../thirdparty-wrappers/validate-npm-package-name.js';\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 {dialects} from '@form8ion/javascript-core';\n\nexport default function ({\n packageName,\n dialect,\n license,\n author,\n description\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: {}\n };\n}\n","import {info} from '@travi/cli-messages';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nimport buildPackageName from './package-name.js';\nimport buildPackageDetails from './details.js';\n\nexport default async function ({\n projectRoot,\n projectName,\n scope,\n dialect,\n license,\n author,\n description\n}) {\n info('Configuring package.json');\n\n const packageName = buildPackageName(projectName, scope);\n\n await writePackageJson({\n projectRoot,\n config: await buildPackageDetails({\n packageName,\n dialect,\n license,\n author,\n description\n })\n });\n\n return {packageName};\n}\n","import sortProperties from 'sort-object-keys';\n\nexport default function (packageContents) {\n return sortProperties(\n packageContents,\n [\n 'name',\n 'description',\n 'license',\n 'version',\n 'private',\n 'type',\n 'engines',\n 'author',\n 'contributors',\n 'repository',\n 'bugs',\n 'homepage',\n 'funding',\n 'keywords',\n 'runkitExampleFilename',\n 'exports',\n 'bin',\n 'main',\n 'module',\n 'types',\n 'sideEffects',\n 'scripts',\n 'files',\n 'publishConfig',\n 'packageManager',\n 'config',\n 'dependencies',\n 'devDependencies',\n 'peerDependencies'\n ]\n );\n}\n","export default function (vcs, 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 };\n}\n","import {DEV_DEPENDENCY_TYPE, PROD_DEPENDENCY_TYPE, packageManagers} from '@form8ion/javascript-core';\n\nexport const details = {\n [packageManagers.NPM]: {\n installationCommand: 'install',\n installationFlags: {\n [DEV_DEPENDENCY_TYPE]: `save-${DEV_DEPENDENCY_TYPE}`,\n [PROD_DEPENDENCY_TYPE]: `save-${PROD_DEPENDENCY_TYPE}`,\n exact: 'save-exact'\n }\n },\n [packageManagers.YARN]: {\n installationCommand: 'add',\n installationFlags: {\n [DEV_DEPENDENCY_TYPE]: DEV_DEPENDENCY_TYPE,\n [PROD_DEPENDENCY_TYPE]: PROD_DEPENDENCY_TYPE,\n exact: 'exact'\n }\n }\n};\n\nexport function getInstallationCommandFor(manager) {\n return details[manager].installationCommand;\n}\n\nexport function getDependencyTypeFlag(manager, type) {\n return details[manager].installationFlags[type];\n}\n\nexport function getExactFlag(manager) {\n return details[manager].installationFlags.exact;\n}\n","import {info, warn} from '@travi/cli-messages';\nimport {DEV_DEPENDENCY_TYPE, packageManagers} from '@form8ion/javascript-core';\n\nimport {execa} from 'execa';\nimport {getDependencyTypeFlag, getExactFlag, getInstallationCommandFor} from './package-managers.js';\n\nexport default async function (dependencies, dependenciesType, projectRoot, packageManager = packageManagers.NPM) {\n if (dependencies.length) {\n info(`Installing ${dependenciesType} dependencies`, {level: 'secondary'});\n\n await execa(\n `. ~/.nvm/nvm.sh && nvm use && ${packageManager} ${\n getInstallationCommandFor(packageManager)\n } ${[...new Set(dependencies)].join(' ')} --${getDependencyTypeFlag(packageManager, dependenciesType)}${\n DEV_DEPENDENCY_TYPE === dependenciesType ? ` --${getExactFlag(packageManager)}` : ''\n }`,\n {shell: true, cwd: projectRoot}\n );\n } else warn(`No ${dependenciesType} dependencies to install`);\n}\n","import {error, info} from '@travi/cli-messages';\nimport {DEV_DEPENDENCY_TYPE, PROD_DEPENDENCY_TYPE} from '@form8ion/javascript-core';\n\nimport install from './installer.js';\n\nexport default async function ({dependencies = {}, devDependencies, projectRoot, packageManager}) {\n info('Processing dependencies');\n\n if (Array.isArray(devDependencies)) {\n throw new Error(\n `devDependencies provided as: ${devDependencies}. Instead, provide under dependencies.javascript.development`\n );\n }\n\n if (Array.isArray(dependencies)) {\n throw new Error(`Expected dependencies to be an object. Instead received: ${dependencies}`);\n }\n\n const {javascript: {production = [], development = []} = {}} = dependencies;\n\n try {\n await install(production, PROD_DEPENDENCY_TYPE, projectRoot, packageManager);\n await install(development, DEV_DEPENDENCY_TYPE, projectRoot, packageManager);\n } catch (e) {\n error('Failed to update dependencies');\n error(e, {level: 'secondary'});\n }\n}\n","function projectWillBeTested(scripts) {\n return Object.keys(scripts).find(scriptName => scriptName.startsWith('test:'));\n}\n\nfunction projectShouldBeBuiltForVerification(scripts) {\n return 'run-s build' === scripts['pregenerate:md'];\n}\n\nexport default function (scripts) {\n return {\n ...scripts,\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\n","import updateTestScript from './test-script-updater.js';\n\nexport default function ({existingScripts, scripts}) {\n return {\n scripts: updateTestScript({...existingScripts, ...scripts}),\n dependencies: {javascript: {development: ['npm-run-all2']}}\n };\n}\n","import {promises as fs} from 'node:fs';\nimport deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nimport sortPackageProperties from './property-sorter.js';\nimport defineVcsHostDetails from './vcs-host-details.js';\nimport {process as processDependencies} from '../dependencies/index.js';\nimport {lift as liftScripts} from './scripts/index.js';\n\nexport default async function ({\n projectRoot,\n scripts,\n tags,\n dependencies,\n devDependencies,\n packageManager,\n vcs,\n pathWithinParent\n}) {\n info('Updating `package.json`', {level: 'secondary'});\n\n const existingPackageJsonContents = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf-8'));\n const {scripts: liftedScripts, dependencies: scriptDependencies} = liftScripts({\n existingScripts: existingPackageJsonContents.scripts,\n scripts\n });\n\n await writePackageJson({\n projectRoot,\n config: sortPackageProperties({\n ...existingPackageJsonContents,\n ...defineVcsHostDetails(vcs, pathWithinParent),\n scripts: liftedScripts,\n ...tags && {\n keywords: existingPackageJsonContents.keywords ? [...existingPackageJsonContents.keywords, ...tags] : tags\n }\n })\n });\n\n await processDependencies({\n dependencies: deepmerge(dependencies, scriptDependencies),\n devDependencies,\n projectRoot,\n packageManager\n });\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nimport buildGenerationCommand from '../../documentation/generation-command.js';\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, provideExample}) {\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\\`\\`\\`${provideExample\n ? `\n\n### Example\n\nrun \\`${buildGenerationCommand(packageManager)}\\` to inject the usage example`\n : ''\n}`\n };\n}\n","export default function ({projectVisibility}) {\n return 'Public' === projectVisibility ? 'public' : 'restricted';\n}\n","export default function (packageName, accessLevel) {\n return {\n consumer: {\n ...'public' === accessLevel && {\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","export default function ({provenance}) {\n if (provenance) {\n return {\n badges: {\n status: {\n slsa: {\n img: 'https://slsa.dev/images/gh-badge-level2.svg',\n url: 'https://slsa.dev',\n text: 'SLSA Level 2'\n }\n }\n }\n };\n }\n\n return {};\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport enhanceSlsa from './slsa.js';\n\nexport default async function ({projectRoot, packageDetails}) {\n const {publishConfig: {access}} = packageDetails;\n\n if ('public' === access) {\n await mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});\n\n return enhanceSlsa({provenance: true});\n }\n\n return {};\n}\n","import deepmerge from 'deepmerge';\nimport {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport defineBadges from './badges.js';\nimport {lift as liftProvenance} from './provenance/index.js';\n\nexport default async function ({projectRoot, packageDetails}) {\n const {name: packageName, publishConfig: {access: packageAccessLevel}} = packageDetails;\n const homepage = `https://npm.im/${packageName}`;\n\n await mergeIntoExistingPackageJson({projectRoot, config: {homepage}});\n\n return deepmerge(\n await liftProvenance({packageDetails, projectRoot}),\n {\n homepage,\n dependencies: {javascript: {development: ['publint']}},\n scripts: {'lint:publish': 'publint --strict'},\n badges: defineBadges(packageName, packageAccessLevel)\n }\n );\n}\n","import defineBadges from './badges.js';\n\nexport default async function ({packageName, packageAccessLevel}) {\n return {\n badges: await defineBadges(packageName, packageAccessLevel)\n };\n}\n","import {prompt} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from '../../../prompts/question-names.js';\n\nexport default async function ({bundlers, decisions}) {\n if (!Object.keys(bundlers).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PACKAGE_BUNDLER,\n type: 'list',\n message: 'Which bundler should be used?',\n choices: [...Object.keys(bundlers), 'Other']\n }], decisions);\n\n return answers[questionNames.PACKAGE_BUNDLER];\n}\n","import {scaffoldChoice as scaffoldChosenBundler} from '@form8ion/javascript-core';\nimport chooseBundler from './prompt.js';\n\nexport default async function ({projectRoot, projectType, bundlers, dialect, decisions}) {\n const chosenBundler = await chooseBundler({bundlers, decisions});\n\n return scaffoldChosenBundler(bundlers, chosenBundler, {projectRoot, projectType, dialect});\n}\n","import {resolve} from 'path';\nimport filedirname from 'filedirname';\n\nexport default function (fileName) {\n const [, __dirname] = filedirname();\n\n return resolve(__dirname, '..', 'templates', fileName);\n}\n","import {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport mustache from 'mustache';\nimport mkdir from 'make-dir';\nimport touch from 'touch';\nimport camelcase from 'camelcase';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldBundler} from '../publishable/bundler/index.js';\nimport determinePathToTemplateFile from '../../template-path.js';\n\nconst defaultBuildDirectory = 'lib';\n\nasync function createExample(projectRoot, projectName, dialect) {\n return fs.writeFile(\n `${projectRoot}/example.js`,\n mustache.render(\n await fs.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),\n {projectName: camelcase(projectName), esm: dialect === dialects.ESM}\n )\n );\n}\n\nasync function buildDetailsForCommonJsProject({projectRoot, projectName, provideExample}) {\n await Promise.all([\n touch(`${projectRoot}/index.js`),\n provideExample\n ? fs.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\\n`)\n : Promise.resolve()\n ]);\n\n return {};\n}\n\nexport default async function ({\n projectRoot,\n projectName,\n visibility,\n packageName,\n packageBundlers,\n dialect,\n provideExample,\n decisions\n}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName, provideExample});\n\n const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);\n const [bundlerResults] = await Promise.all([\n scaffoldBundler({bundlers: packageBundlers, projectRoot, dialect, decisions, projectType: projectTypes.PACKAGE}),\n provideExample ? await createExample(projectRoot, projectName, dialect) : Promise.resolve,\n touch(`${pathToCreatedSrcDirectory}/index.js`)\n ]);\n\n return deepmerge(\n bundlerResults,\n {\n dependencies: {javascript: {development: ['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 ...provideExample && {'pregenerate:md': 'run-s build'}\n },\n vcsIgnore: {directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: {\n consumer: {\n ...'Public' === visibility && {\n runkit: {\n img: `https://badge.runkitcdn.com/${packageName}.svg`,\n text: `Try ${packageName} on RunKit`,\n link: `https://npm.runkit.com/${packageName}`\n }\n }\n }\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {dialects, mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport scaffoldPackageDocumentation from './documentation.js';\nimport determinePackageAccessLevelFromProjectVisibility from '../publishable/access-level.js';\nimport {scaffold as scaffoldPublishable} from '../publishable/index.js';\nimport buildDetails from './build-details.js';\n\nexport default async function ({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n decisions,\n dialect,\n provideExample,\n publishRegistry\n}) {\n info('Scaffolding Package Details');\n\n const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});\n const [detailsForBuild, publishableResults] = await Promise.all([\n buildDetails({\n projectRoot,\n projectName,\n packageBundlers,\n visibility,\n packageName,\n dialect,\n provideExample,\n decisions\n }),\n scaffoldPublishable({packageName, packageAccessLevel}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n files: ['example.js', ...dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/']],\n publishConfig: {\n access: packageAccessLevel,\n ...publishRegistry && {registry: publishRegistry}\n },\n sideEffects: false,\n ...'Public' === visibility && {runkitExampleFilename: './example.js'},\n ...dialects.BABEL === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n exports: {\n module: './lib/index.mjs',\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n },\n ...dialects.ESM === dialect && {\n main: './lib/index.js',\n exports: './lib/index.js'\n },\n ...dialects.TYPESCRIPT === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n types: './lib/index.d.ts',\n exports: {\n types: './lib/index.d.ts',\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n }\n }\n })\n ]);\n\n return deepmerge.all([\n publishableResults,\n {\n documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager, provideExample}),\n nextSteps: [\n {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},\n {summary: 'Define supported node.js versions as `engines.node` in the `package.json` file'},\n {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}\n ]\n },\n detailsForBuild\n ]);\n}\n","import {lift as liftPublishable} from '../publishable/index.js';\n\nexport default function ({projectRoot, packageDetails}) {\n return liftPublishable({projectRoot, packageDetails});\n}\n","export default async function ({packageDetails: {exports, publishConfig, bin}}) {\n return !!exports || (!!publishConfig && !bin);\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nconst defaultBuildDirectory = 'public';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Application Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n const buildDirectory = defaultBuildDirectory;\n\n return {\n scripts: {\n clean: `rimraf ./${buildDirectory}`,\n start: `node ./${buildDirectory}/index.js`,\n prebuild: 'run-s clean'\n },\n dependencies: {javascript: {development: ['rimraf']}},\n vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},\n buildDirectory,\n nextSteps: []\n };\n}\n","export default function ({packageDetails}) {\n return !!packageDetails.private;\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Monorepo Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n return {\n nextSteps: [{\n summary: 'Add packages to your new monorepo',\n description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'\n + ' to scaffold new packages into your new monorepo'\n }]\n };\n}\n","import deepmerge from 'deepmerge';\nimport {mergeIntoExistingPackageJson, projectTypes} from '@form8ion/javascript-core';\n\nimport determinePackageAccessLevelFromProjectVisibility from '../publishable/access-level.js';\nimport {scaffold as scaffoldPublishable} from '../publishable/index.js';\nimport {scaffold as scaffoldBundler} from '../publishable/bundler/index.js';\n\nconst defaultBuildDirectory = 'bin';\n\nexport default async function ({\n packageName,\n visibility,\n projectRoot,\n dialect,\n publishRegistry,\n decisions,\n packageBundlers\n}) {\n const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});\n const [bundlerResults, publishableResults] = await Promise.all([\n scaffoldBundler({bundlers: packageBundlers, projectRoot, dialect, decisions, projectType: projectTypes.CLI}),\n scaffoldPublishable({packageName, packageAccessLevel}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {\n access: packageAccessLevel,\n ...publishRegistry && {registry: publishRegistry}\n }\n }\n })\n ]);\n\n return deepmerge.all([\n publishableResults,\n bundlerResults,\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: {javascript: {production: ['update-notifier'], development: ['rimraf']}},\n vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n nextSteps: [{summary: 'Define supported node.js versions as `engines.node` in the `package.json` file'}]\n }\n ]);\n}\n","export default async function ({packageDetails: {bin}}) {\n return !!bin;\n}\n","import {lift as liftPublishable} from '../publishable/index.js';\n\nexport default function ({projectRoot, packageDetails}) {\n return liftPublishable({projectRoot, packageDetails});\n}\n","import {projectTypes} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldPackageType} from './package/index.js';\nimport {scaffold as scaffoldApplicationType} from './application/index.js';\nimport {scaffold as scaffoldMonorepoType} from './monorepo/index.js';\nimport {scaffold as scaffoldCliType} from './cli/index.js';\n\nexport default async function ({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n packageBundlers,\n scope,\n decisions,\n dialect,\n provideExample,\n publishRegistry\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n decisions,\n dialect,\n provideExample,\n publishRegistry\n });\n case projectTypes.APPLICATION:\n return scaffoldApplicationType({projectRoot});\n case projectTypes.CLI:\n return scaffoldCliType({\n packageName,\n visibility,\n projectRoot,\n dialect,\n publishRegistry,\n decisions,\n packageBundlers\n });\n case projectTypes.MONOREPO:\n return scaffoldMonorepoType({projectRoot});\n case 'Other':\n return {};\n default:\n throw new Error(`The project-type of ${projectType} is invalid`);\n }\n}\n","import {test as isPackage} from './package/index.js';\nimport {test as isCli} from './cli/index.js';\nimport {test as isApplication} from './application/index.js';\n\nexport default async function ({projectRoot, packageDetails}) {\n return await isPackage({projectRoot, packageDetails})\n || await isCli({projectRoot, packageDetails})\n || isApplication({projectRoot, packageDetails});\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport {test as isPackage, lift as liftPackage} from './package/index.js';\nimport {test as isCli, lift as liftCli} from './cli/index.js';\n\nfunction vcsRepositoryHostedOnGithub(vcs) {\n return vcs && 'github' === vcs.host;\n}\n\nexport default async function ({projectRoot, packageDetails, vcs}) {\n if (await isPackage({projectRoot, packageDetails})) return liftPackage({projectRoot, packageDetails});\n if (await isCli({projectRoot, packageDetails})) return liftCli({projectRoot, packageDetails});\n\n let homepage;\n\n if (vcsRepositoryHostedOnGithub(vcs)) {\n homepage = `https://github.com/${vcs.owner}/${vcs.name}#readme`;\n\n await mergeIntoExistingPackageJson({projectRoot, config: {homepage}});\n }\n\n return {homepage};\n}\n","import {prompt} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from '../prompts/question-names.js';\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), 'Other']\n }], decisions);\n\n return answers[questionNames.PROJECT_TYPE_CHOICE];\n}\n","import {scaffoldChoice} from '@form8ion/javascript-core';\n\nimport chooseProjectTypePlugin from './prompt.js';\n\nexport default async function ({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n dialect,\n tests,\n decisions,\n plugins\n}) {\n const pluginsForProjectType = plugins[projectType];\n\n if (!pluginsForProjectType) return {};\n\n const chosenType = await chooseProjectTypePlugin({types: pluginsForProjectType, decisions, projectType});\n\n return scaffoldChoice(\n pluginsForProjectType,\n chosenType,\n {projectRoot, projectName, packageName, packageManager, scope, tests, dialect}\n );\n}\n","import deepmerge from 'deepmerge';\n\nimport scaffoldUnitTesting from '../../../testing/unit.js';\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 {dependencies: {javascript: {development: [...(unit || integration) ? ['@travi/any'] : []]}}, eslint: {}},\n unitResults\n );\n}\n","export default function ({packageManager, registries = {}}) {\n return [\n ...!registries.registry ? [packageManager] : [],\n ...Object.values(Object.fromEntries(Object.entries(registries).filter(([scope]) => 'publish' !== scope)))\n ];\n}\n","import {fileTypes} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\nimport {write} from '@form8ion/config-file';\n\nimport buildAllowedHostsList from './allowed-hosts-builder.js';\nimport {defineLockfilePath as determineLockfilePathFor} from '../package-managers/index.js';\n\nconst lockfileLintSupportedPackageManagers = [packageManagers.NPM, packageManagers.YARN];\n\nfunction lockfileLintSupports(packageManager) {\n return lockfileLintSupportedPackageManagers.includes(packageManager);\n}\n\nexport default async function ({projectRoot, packageManager, registries}) {\n if (!lockfileLintSupports(packageManager)) {\n throw new Error(\n `The ${packageManager} package manager is currently not supported by lockfile-lint. `\n + `Only ${lockfileLintSupportedPackageManagers.join(' and ')} are currently supported.`\n );\n }\n\n await write({\n name: 'lockfile-lint',\n format: fileTypes.JSON,\n path: projectRoot,\n config: {\n path: determineLockfilePathFor(packageManager),\n type: packageManager,\n 'validate-https': true,\n 'allowed-hosts': buildAllowedHostsList({packageManager, registries})\n }\n });\n\n return {\n dependencies: {javascript: {development: ['lockfile-lint']}},\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.lockfile-lintrc.json`);\n}\n","import {fileTypes, loadConfigFile} from '@form8ion/core';\nimport {write as writeConfig} from '@form8ion/config-file';\n\nconst configName = 'lockfile-lint';\n\nexport function read({projectRoot}) {\n return loadConfigFile({name: `.${configName}rc`, format: fileTypes.JSON, path: projectRoot});\n}\n\nexport function write({projectRoot, config}) {\n return writeConfig({name: configName, format: fileTypes.JSON, path: projectRoot, config});\n}\n","import {scaffold as scaffoldLockfileLint} from '../lockfile-lint/index.js';\n\nexport default async function ({projectRoot, packageManager, registries}) {\n return scaffoldLockfileLint({projectRoot, packageManager, registries});\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldHusky} from '@form8ion/husky';\n\nimport scaffoldTesting from './testing/index.js';\nimport {scaffold as scaffoldLinting} from '../../linting/index.js';\n\nexport async function scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n}) {\n const [testingResults, lintingResults, huskyResults] = await Promise.all([\n scaffoldTesting({\n projectRoot,\n tests,\n visibility,\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n }),\n scaffoldLinting({projectRoot, packageManager, registries, vcs, pathWithinParent}),\n scaffoldHusky({projectRoot, packageManager, pathWithinParent})\n ]);\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import deepmerge from 'deepmerge';\nimport {fileTypes} from '@form8ion/core';\nimport {projectTypes} from '@form8ion/javascript-core';\nimport {write} from '@form8ion/config-file';\n\nexport default async function ({config, projectRoot, projectType, vcs}) {\n await write({\n format: fileTypes.JSON,\n path: projectRoot,\n name: 'remark',\n config: {\n settings: {\n listItemIndent: 'one',\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 dependencies: {javascript: {development: [config, 'remark-cli', 'remark-toc']}},\n scripts: {\n 'lint:md': 'remark . --frail',\n 'generate:md': 'remark . --output'\n }\n },\n {...projectTypes.PACKAGE === projectType && {dependencies: {javascript: {development: ['remark-usage']}}}}\n );\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldPrettier} from '@form8ion/prettier';\nimport {scaffold as scaffoldEslint} from '@form8ion/eslint';\n\nimport {scaffold as scaffoldRemark} from './remark/index.js';\n\nexport default async function ({\n projectRoot,\n projectType,\n configs,\n vcs,\n configureLinting\n}) {\n return deepmerge.all(await Promise.all([\n configs.eslint\n && configureLinting\n && scaffoldEslint({projectRoot, config: configs.eslint}),\n scaffoldRemark({\n projectRoot,\n projectType,\n vcs,\n config: configs.remark || '@form8ion/remark-lint-preset'\n }),\n scaffoldPrettier({projectRoot, config: configs.prettier})\n ].filter(Boolean)));\n}\n","import {applyEnhancers} from '@form8ion/core';\nimport * as eslintPlugin from '@form8ion/eslint';\n\nexport default function (options) {\n return applyEnhancers({options, enhancers: [eslintPlugin]});\n}\n","import {test as testForEslint} from '@form8ion/eslint';\n\nexport default function (options) {\n return testForEslint(options);\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {projectTypes, scaffoldChoice} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCommitConvention} from '@form8ion/commit-convention';\n\nimport {validate} from '../options/validator.js';\nimport {prompt} from '../prompts/questions.js';\nimport {scaffold as scaffoldDialect} from '../dialects/index.js';\nimport {scaffold as scaffoldNpmConfig} from '../npm-config/index.js';\nimport {scaffold as scaffoldPackageManager} from '../package-managers/index.js';\nimport scaffoldDocumentation from '../documentation/index.js';\nimport {scaffold as scaffoldNodeVersion} from '../node-version/index.js';\nimport buildVcsIgnoreLists from '../vcs/ignore-lists-builder.js';\nimport {scaffold as scaffoldPackage} from '../package/index.js';\nimport {scaffold as scaffoldProjectType} from '../project-type/index.js';\nimport {scaffold as scaffoldProjectTypePlugin} from '../project-type-plugin/index.js';\nimport buildDocumentationCommand from '../documentation/generation-command.js';\nimport {scaffold as scaffoldVerification} from './verification/index.js';\nimport {scaffold as scaffoldCodeStyle} from '../code-style/index.js';\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 decisions,\n pathWithinParent,\n plugins: {\n applicationTypes,\n packageTypes,\n monorepoTypes,\n packageBundlers,\n unitTestFrameworks,\n hosts,\n ciServices\n }\n } = validate(options);\n\n const {\n tests,\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author,\n configureLinting,\n provideExample,\n packageManager,\n dialect\n } = await prompt(ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);\n\n info('Writing project files', {level: 'secondary'});\n\n const {packageName} = await scaffoldPackage({\n projectRoot,\n projectName,\n scope,\n dialect,\n license,\n author,\n description\n });\n const projectTypeResults = await scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n monorepoTypes,\n packageBundlers,\n scope,\n tests,\n vcs,\n decisions,\n dialect,\n provideExample,\n publishRegistry: configs.registries.publish\n });\n const verificationResults = await scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries: configs.registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n });\n const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([\n scaffoldNodeVersion({projectRoot, nodeVersionCategory}),\n scaffoldNpmConfig({projectType, projectRoot}),\n scaffoldDialect({\n dialect,\n configs,\n projectRoot,\n projectType,\n testFilenamePattern: verificationResults.testFilenamePattern\n }),\n scaffoldCodeStyle({projectRoot, projectType, configs, vcs, configureLinting}),\n scaffoldPackageManager({projectRoot, packageManager})\n ]);\n const projectTypePluginResults = await scaffoldProjectTypePlugin({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n dialect,\n tests,\n decisions,\n plugins: {\n [projectTypes.PACKAGE]: packageTypes,\n [projectTypes.APPLICATION]: applicationTypes,\n [projectTypes.MONOREPO]: monorepoTypes\n }\n });\n 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 codeStyleResults,\n npmResults,\n dialectResults,\n projectTypePluginResults\n ]);\n\n return {\n ...mergedContributions,\n documentation: scaffoldDocumentation({projectTypeResults, packageManager}),\n tags: projectTypeResults.tags,\n vcsIgnore: buildVcsIgnoreLists(mergedContributions.vcsIgnore),\n verificationCommand: `${buildDocumentationCommand(packageManager)} && ${packageManager} test`\n };\n}\n","export default function () {\n return true;\n}\n","export default function (registries = {}) {\n return Object.entries(registries)\n .filter(([scope]) => 'publish' !== scope)\n .reduce((acc, [scope, url]) => {\n if ('registry' === scope) return {...acc, registry: url};\n\n return {...acc, [`@${scope}:registry`]: url};\n }, {registry: 'https://registry.npmjs.org'});\n}\n","import {\n scaffold as scaffoldLockfileLint,\n test as lockfileLintIsAlreadyConfigured,\n read as readLockfileLintConfig,\n write as writeLockfileLintConfig\n} from '../lockfile-lint/index.js';\nimport {read as readNpmConfig, write as writeNpmConfig} from '../npm-config/index.js';\nimport buildRegistriesConfig from './npm-config/list-builder.js';\nimport buildAllowedHostsList from '../lockfile-lint/allowed-hosts-builder.js';\n\nasync function updateRegistriesInNpmConfig(registries, projectRoot) {\n const registriesForNpmConfig = buildRegistriesConfig(registries);\n\n await writeNpmConfig({\n projectRoot,\n config: {\n ...(await readNpmConfig({projectRoot})),\n ...registriesForNpmConfig\n }\n });\n}\n\nasync function updateRegistriesInLockfileLintConfig(projectRoot, packageManager, registries) {\n await writeLockfileLintConfig({\n projectRoot,\n config: {\n ...await readLockfileLintConfig({projectRoot}),\n 'allowed-hosts': buildAllowedHostsList({packageManager, registries})\n }\n });\n}\n\nexport default async function ({projectRoot, packageManager, configs: {registries}}) {\n await updateRegistriesInNpmConfig(registries, projectRoot);\n\n if (!(await lockfileLintIsAlreadyConfigured({projectRoot}))) {\n return scaffoldLockfileLint({projectRoot, packageManager, registries});\n }\n\n await updateRegistriesInLockfileLintConfig(projectRoot, packageManager, registries);\n\n return {};\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({packageDetails: {name}}) {\n return {\n dependencies: {javascript: {development: ['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 'node:fs';\nimport deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {applyEnhancers} from '@form8ion/core';\nimport * as huskyPlugin from '@form8ion/husky';\nimport * as commitConventionPlugin from '@form8ion/commit-convention';\n\nimport * as registriesPlugin from '../registries/index.js';\nimport * as coveragePlugin from '../coverage/index.js';\nimport * as codeStylePlugin from '../code-style/index.js';\nimport * as npmConfigPlugin from '../npm-config/index.js';\nimport * as enginesEnhancer from './enhancers/engines.js';\nimport * as projectTypes from '../project-type/index.js';\nimport * as dialects from '../dialects/index.js';\nimport {lift as liftPackage} from '../package/index.js';\nimport * as packageManagers from '../package-managers/index.js';\nimport {determineCurrent as resolvePackageManager} from '../package-managers/index.js';\n\nexport default async function ({projectRoot, vcs, results, pathWithinParent, enhancers = {}, configs = {}}) {\n info('Lifting JavaScript-specific details');\n\n const [packageManager, packageContents] = await Promise.all([\n resolvePackageManager({projectRoot, packageManager: results.packageManager}),\n fs.readFile(`${projectRoot}/package.json`, 'utf8')\n ]);\n\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: {\n ...enhancers,\n huskyPlugin,\n enginesEnhancer,\n coveragePlugin,\n commitConventionPlugin,\n dialects,\n codeStylePlugin,\n npmConfigPlugin,\n projectTypes,\n packageManagers,\n registriesPlugin\n },\n options: {packageManager, projectRoot, vcs, packageDetails: JSON.parse(packageContents), configs}\n });\n\n await liftPackage(deepmerge.all([{projectRoot, packageManager, vcs, pathWithinParent}, enhancerResults]));\n\n return enhancerResults;\n}\n","import {info} from '@travi/cli-messages';\n\nimport {test as nvmIsUsed} from './node-version/index.js';\nimport {test as jsPackageManagerIsUsed} from './package-managers/index.js';\n\nexport default async function ({projectRoot}) {\n const [nvmFound, jsPackageManagerFound] = await Promise.all([\n nvmIsUsed({projectRoot}),\n jsPackageManagerIsUsed({projectRoot})\n ]);\n\n const jsProjectFound = nvmFound || jsPackageManagerFound;\n\n if (jsProjectFound) info('JavaScript Project Detected');\n\n return jsProjectFound;\n}\n","import {questionNames as languageScaffolderPromptsQuestionNames} from '@travi/language-scaffolder-prompts';\n\nimport {questionNames as jsScaffolderQuestionNames} from './prompts/question-names.js';\n\nexport {default as scaffoldUnitTesting} from './testing/unit.js';\nexport {default as scaffold} from './scaffolder/index.js';\nexport {default as lift} from './lift/index.js';\nexport {default as test} from './tester.js';\nexport const questionNames = {...languageScaffolderPromptsQuestionNames, ...jsScaffolderQuestionNames};\n"],"names":["questionNames","write","scaffoldCodecov","fs","lift","liftCodecov","prompt","scaffoldFrameworkChoice","dialects","projectTypes","commonQuestionNames","npmConf","npmConfFactory","scope","promptWithInquirer","packageManagers","validateScope","commonQuestions","writeConfig","read","determineLockfilePath","buildGenerationCommand","install","installNodeVersion","scaffoldChosenBundler","defaultBuildDirectory","scaffoldHusky","scaffoldEslint","scaffoldPrettier","testForEslint","scaffoldCommitConvention","writeLockfileLintConfig","readLockfileLintConfig","liftPackage","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/prompts/question-names.js","../src/coverage/c8/scaffolder.js","../src/coverage/scaffolder.js","../src/coverage/nyc/tester.js","../src/dependencies/remover.js","../src/coverage/nyc/remover.js","../src/coverage/lifter.js","../src/coverage/c8/tester.js","../src/coverage/tester.js","../src/testing/prompt.js","../src/plugins-schemas.js","../src/testing/unit.js","../src/options/schemas.js","../src/vcs/schema.js","../src/options/validator.js","../src/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/dialects/babel/config/writer.js","../src/dialects/babel/config/loader.js","../src/dialects/babel/config/ignore-adder.js","../src/dialects/babel/scaffolder.js","../src/dialects/babel/lifter.js","../src/dialects/babel/predicate.js","../src/dialects/typescript/scaffolder.js","../src/dialects/scaffolder.js","../src/npm-config/writer.js","../src/npm-config/scaffolder.js","../src/npm-config/tester.js","../src/npm-config/reader.js","../src/npm-config/lifter.js","../src/package-managers/npm/scaffolder.js","../src/package-managers/lockfile-path-resolver.js","../src/package-managers/npm/tester.js","../src/package-managers/yarn/scaffolder.js","../src/package-managers/yarn/tester.js","../src/package-managers/tester.js","../src/corepack/lifter.js","../src/package-managers/lifter.js","../src/package-managers/scaffolder.js","../src/package-managers/current-manager-resolver.js","../src/documentation/generation-command.js","../src/documentation/scaffolder.js","../src/node-version/tasks.js","../src/node-version/scaffolder.js","../src/node-version/tester.js","../src/vcs/ignore-lists-builder.js","../src/package/package-name.js","../src/package/details.js","../src/package/scaffolder.js","../src/package/property-sorter.js","../src/package/vcs-host-details.js","../src/dependencies/package-managers.js","../src/dependencies/installer.js","../src/dependencies/processor.js","../src/package/scripts/test-script-updater.js","../src/package/scripts/lifter.js","../src/package/lifter.js","../src/project-type/package/documentation.js","../src/project-type/publishable/access-level.js","../src/project-type/publishable/badges.js","../src/project-type/publishable/provenance/slsa.js","../src/project-type/publishable/provenance/lifter.js","../src/project-type/publishable/lifter.js","../src/project-type/publishable/scaffolder.js","../src/project-type/publishable/bundler/prompt.js","../src/project-type/publishable/bundler/scaffolder.js","../src/template-path.js","../src/project-type/package/build-details.js","../src/project-type/package/scaffolder.js","../src/project-type/package/lifter.js","../src/project-type/package/tester.js","../src/project-type/application/scaffolder.js","../src/project-type/application/predicate.js","../src/project-type/monorepo/scaffolder.js","../src/project-type/cli/scaffolder.js","../src/project-type/cli/tester.js","../src/project-type/cli/lifter.js","../src/project-type/scaffolder.js","../src/project-type/tester.js","../src/project-type/lifter.js","../src/project-type-plugin/prompt.js","../src/project-type-plugin/scaffolder.js","../src/scaffolder/verification/testing/scaffolder.js","../src/lockfile-lint/allowed-hosts-builder.js","../src/lockfile-lint/scaffolder.js","../src/lockfile-lint/tester.js","../src/lockfile-lint/config.js","../src/linting/scaffolder.js","../src/scaffolder/verification/verifier.js","../src/code-style/remark/scaffolder.js","../src/code-style/scaffolder.js","../src/code-style/lifter.js","../src/code-style/tester.js","../src/scaffolder/scaffolder.js","../src/registries/tester.js","../src/registries/npm-config/list-builder.js","../src/registries/lifter.js","../src/lift/enhancers/engines.js","../src/lift/lift.js","../src/tester.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n UNIT_TEST_FRAMEWORK: 'unitTestFramework',\n NODE_VERSION_CATEGORY: 'nodeVersionCategory',\n PACKAGE_MANAGER: 'packageManager',\n PACKAGE_BUNDLER: 'packageBundler',\n PROJECT_TYPE: 'projectType',\n PROJECT_TYPE_CHOICE: 'projectTypeChoice',\n SHOULD_BE_SCOPED: 'shouldBeScoped',\n SCOPE: 'scope',\n AUTHOR_NAME: 'authorName',\n AUTHOR_EMAIL: 'authorEmail',\n AUTHOR_URL: 'authorUrl',\n HOST: 'host',\n CONFIGURE_LINTING: 'configureLint',\n PROVIDE_EXAMPLE: 'provideExample',\n DIALECT: 'dialect'\n};\n","import {write} from '@form8ion/config-file';\nimport {fileTypes} from '@form8ion/core';\n\nexport default async function ({projectRoot}) {\n await write({\n name: 'c8',\n format: fileTypes.JSON,\n path: projectRoot,\n config: {\n reporter: ['lcov', 'text-summary', 'html'],\n exclude: ['src/**/*-test.js', 'test/', 'thirdparty-wrappers/', 'vendor/']\n }\n });\n\n return {\n dependencies: {javascript: {development: ['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';\n\nimport {scaffold as scaffoldC8} from './c8/index.js';\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 'execa';\n\nexport default async function ({packageManager, dependencies}) {\n await execa(packageManager, ['remove', ...dependencies]);\n}\n","import {promises as fs} from 'fs';\n\nimport removeDependencies from '../../dependencies/remover.js';\n\nexport default async function ({projectRoot, packageManager}) {\n await Promise.all([\n fs.unlink(`${projectRoot}/.nycrc`),\n fs.rm(`${projectRoot}/.nyc_output`, {recursive: true, force: true}),\n removeDependencies({packageManager, dependencies: ['nyc', '@istanbuljs/nyc-config-babel', 'babel-plugin-istanbul']})\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {lift as liftCodecov} from '@form8ion/codecov';\n\nimport {scaffold as scaffoldC8} from './c8/index.js';\nimport {test as nycIsConfigured, remove as removeNyc} from './nyc/index.js';\n\nexport async function lift({projectRoot, packageManager, vcs}) {\n const codecovResults = await liftCodecov({projectRoot, packageManager, vcs});\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 codecovResults;\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.js';\nimport nycIsConfigured from './nyc/tester.js';\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 {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names.js';\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), 'Other']\n }], decisions);\n\n return answers[questionNames.UNIT_TEST_FRAMEWORK];\n}\n","import joi from 'joi';\nimport {optionsSchemas} from '@form8ion/core';\n\nexport const pluginsSchema = joi.object().pattern(/^/, optionsSchemas.form8ionPlugin).default({});\n","import deepmerge from 'deepmerge';\nimport {validateOptions} from '@form8ion/core';\nimport {scaffoldChoice as scaffoldFrameworkChoice} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldCoverage} from '../coverage/index.js';\nimport chooseFramework from './prompt.js';\nimport {pluginsSchema} from '../plugins-schemas.js';\n\nexport default async function ({projectRoot, frameworks, decisions, visibility, vcs, pathWithinParent, dialect}) {\n const validatedFrameworks = validateOptions(pluginsSchema, frameworks);\n const [framework, coverage] = await Promise.all([\n chooseFramework({frameworks: validatedFrameworks, decisions})\n .then(chosenFramework => scaffoldFrameworkChoice(validatedFrameworks, chosenFramework, {projectRoot, dialect})),\n scaffoldCoverage({projectRoot, vcs, visibility, pathWithinParent})\n ]);\n\n return deepmerge.all([\n {scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'}},\n framework,\n coverage\n ]);\n}\n","import joi from 'joi';\n\nexport const scopeBasedConfigSchema = joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()});\n\nexport const nameBasedConfigSchema = joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n});\n\nexport const registriesSchema = joi.object().pattern(joi.string(), joi.string().uri()).default({});\n\nexport const visibilitySchema = joi.string().valid('Public', 'Private').required();\n\nexport const projectNameSchema = joi.string().regex(/^@\\w*\\//, {invert: true}).required();\n","import joi from 'joi';\n\nexport const vcsSchema = joi.object({\n host: joi.string().required(),\n owner: joi.string().required(),\n name: joi.string().required()\n});\n","import joi from 'joi';\nimport {validateOptions} from '@form8ion/core';\n\nimport {pluginsSchema} from '../plugins-schemas.js';\nimport {\n nameBasedConfigSchema,\n projectNameSchema,\n registriesSchema,\n scopeBasedConfigSchema,\n visibilitySchema\n} from './schemas.js';\nimport {vcsSchema} from '../vcs/schema.js';\n\nexport function validate(options) {\n const schema = joi.object({\n projectRoot: joi.string().required(),\n projectName: projectNameSchema,\n visibility: visibilitySchema,\n license: joi.string().required(),\n description: joi.string(),\n pathWithinParent: joi.string(),\n decisions: joi.object(),\n vcs: vcsSchema,\n configs: joi.object({\n eslint: scopeBasedConfigSchema,\n typescript: scopeBasedConfigSchema,\n prettier: scopeBasedConfigSchema,\n commitlint: nameBasedConfigSchema,\n babelPreset: nameBasedConfigSchema,\n remark: joi.string(),\n registries: registriesSchema\n }).default({registries: {}}),\n plugins: {\n unitTestFrameworks: pluginsSchema,\n packageBundlers: pluginsSchema,\n applicationTypes: pluginsSchema,\n packageTypes: pluginsSchema,\n monorepoTypes: pluginsSchema,\n hosts: pluginsSchema,\n ciServices: pluginsSchema\n }\n }).required();\n\n return validateOptions(schema, options);\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nexport default function ({babelPreset, typescript}) {\n return [\n {name: 'Common JS (no transpilation)', value: dialects.COMMON_JS, short: 'cjs'},\n ...babelPreset ? [{name: 'Modern JavaScript (transpiled)', value: dialects.BABEL, short: 'modern'}] : [],\n {name: 'ESM-only (no transpilation)', value: dialects.ESM, short: 'esm'},\n ...typescript ? [{name: 'TypeScript', value: dialects.TYPESCRIPT, short: 'ts'}] : []\n ];\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport {questionNames as commonQuestionNames} from '@travi/language-scaffolder-prompts';\n\nimport {questionNames} from './question-names.js';\n\nfunction projectIsCLI(answers) {\n return projectTypes.CLI === answers[questionNames.PROJECT_TYPE];\n}\n\nexport function projectIsPackage(answers) {\n return projectTypes.PACKAGE === answers[questionNames.PROJECT_TYPE];\n}\n\nexport function projectIsApplication(answers) {\n return projectTypes.APPLICATION === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction packageShouldBeScoped(visibility, answers) {\n return 'Private' === visibility || answers[questionNames.SHOULD_BE_SCOPED];\n}\n\nfunction willBePublishedToNpm(answers) {\n return projectIsPackage(answers) || projectIsCLI(answers);\n}\n\nexport function shouldBeScopedPromptShouldBePresented(answers) {\n return willBePublishedToNpm(answers);\n}\n\nexport function scopePromptShouldBePresentedFactory(visibility) {\n return answers => willBePublishedToNpm(answers) && packageShouldBeScoped(visibility, answers);\n}\n\nexport function lintingPromptShouldBePresented({\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested\n}) {\n return !unitTested && !integrationTested;\n}\n","export function scope(visibility) {\n return input => {\n if (!input && 'Private' === visibility) {\n return 'Private packages must be scoped (https://docs.npmjs.com/private-modules/intro#setting-up-your-package)';\n }\n\n return true;\n };\n}\n","import {packageManagers, projectTypes} from '@form8ion/javascript-core';\nimport {prompt as promptWithInquirer} from '@form8ion/overridable-prompts';\nimport {questionNames as commonQuestionNames, questions as commonQuestions} from '@travi/language-scaffolder-prompts';\nimport {warn} from '@travi/cli-messages';\n\nimport {execa} from 'execa';\nimport npmConfFactory from '../../thirdparty-wrappers/npm-conf.js';\nimport buildDialectChoices from '../dialects/prompt-choices.js';\nimport {\n lintingPromptShouldBePresented,\n projectIsApplication,\n projectIsPackage,\n scopePromptShouldBePresentedFactory,\n shouldBeScopedPromptShouldBePresented\n} from './conditionals.js';\nimport {questionNames} from './question-names.js';\nimport {scope as validateScope} from './validators.js';\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 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.PROVIDE_EXAMPLE]: provideExample,\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), '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: maybeLoggedInNpmUsername\n },\n ...authorQuestions({\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, 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.PROVIDE_EXAMPLE,\n message: 'Should an example be provided in the README?',\n type: 'confirm',\n when: projectIsPackage\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), '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 provideExample,\n packageManager,\n dialect\n };\n}\n","import {fileTypes} from '@form8ion/core';\nimport {write} from '@form8ion/config-file';\n\nexport default function ({projectRoot, config}) {\n return write({path: projectRoot, name: 'babel', format: fileTypes.JSON, config});\n}\n","import {fileTypes, loadConfigFile} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return loadConfigFile({path: projectRoot, name: '.babelrc', format: fileTypes.JSON});\n}\n","import writeConfig from './writer.js';\nimport loadConfig from './loader.js';\n\nexport default async function ({projectRoot, ignore}) {\n if (ignore) {\n const existingConfig = await loadConfig({projectRoot});\n\n await writeConfig({projectRoot, config: {...existingConfig, ignore: [`./${ignore}/`]}});\n }\n}\n","import {write} from './config/index.js';\n\nexport default async function ({projectRoot, preset}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await write({projectRoot, config: {presets: [preset.name]}});\n\n return {\n dependencies: {javascript: {development: ['@babel/register', preset.packageName]}},\n eslint: {}\n };\n}\n","import {addIgnore} from './config/index.js';\n\nexport default async function ({results, projectRoot}) {\n await addIgnore({ignore: results.buildDirectory, projectRoot});\n\n return {};\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.babelrc.json`);\n}\n","import {fileTypes, writeConfigFile} from '@form8ion/core';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectType, projectRoot, testFilenamePattern}) {\n const shareableTsConfigPackage = `${config.scope}/tsconfig`;\n\n await writeConfigFile({\n path: projectRoot,\n name: 'tsconfig',\n format: fileTypes.JSON,\n config: {\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: ['typescript']},\n dependencies: {javascript: {development: ['typescript', shareableTsConfigPackage]}},\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldBabel} from './babel/index.js';\nimport {scaffold as scaffoldTypescript} from './typescript/index.js';\n\nexport default function ({dialect, projectType, projectRoot, configs, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n default:\n return {};\n }\n}\n","import {promises as fs} from 'node:fs';\nimport {stringify} from 'ini';\n\nexport default async function ({projectRoot, config}) {\n await fs.writeFile(`${projectRoot}/.npmrc`, stringify(config));\n}\n","import {projectTypes} from '@form8ion/javascript-core';\n\nimport write from './writer.js';\n\nfunction projectWillNotBeConsumed(projectType) {\n return projectTypes.APPLICATION === projectType || projectTypes.CLI === projectType;\n}\n\nexport default async function ({projectRoot, projectType}) {\n await write({\n projectRoot,\n config: {'update-notifier': false, ...projectWillNotBeConsumed(projectType) && {'save-exact': true}}\n });\n\n return {scripts: {'lint:peer': 'npm ls >/dev/null'}};\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.npmrc`);\n}\n","import {parse} from 'ini';\nimport {promises as fs} from 'node:fs';\nimport {fileExists} from '@form8ion/core';\n\nexport default async function ({projectRoot}) {\n const pathToConfig = `${projectRoot}/.npmrc`;\n\n if (!(await fileExists(pathToConfig))) return {};\n\n return parse(await fs.readFile(pathToConfig, 'utf-8'));\n}\n","import read from './reader.js';\nimport write from './writer.js';\n\nexport default async function ({projectRoot}) {\n const {\n provenance,\n 'engines-strict': enginesStrict,\n ...remainingProperties\n } = await read({projectRoot});\n\n await write({projectRoot, config: remainingProperties});\n\n return {};\n}\n","import {promises as fs} from 'node:fs';\nimport {execa} from 'execa';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nexport default async function ({projectRoot}) {\n const [packageContents, {stdout}] = await Promise.all([\n fs.readFile(`${projectRoot}/package.json`, 'utf-8'),\n execa('npm', ['--version'])\n ]);\n const existingPackageJsonContents = JSON.parse(packageContents);\n\n await writePackageJson({\n projectRoot,\n config: {\n ...existingPackageJsonContents,\n packageManager: `npm@${stdout}`\n }\n });\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nexport default function (packageManager) {\n const lockfilePaths = {\n [packageManagers.NPM]: 'package-lock.json',\n [packageManagers.YARN]: 'yarn.lock'\n };\n\n return lockfilePaths[packageManager];\n}\n","import {fileExists} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport determineLockfilePath from '../lockfile-path-resolver.js';\n\nexport default function ({projectRoot, pinnedPackageManager = ''}) {\n const [packageManager] = pinnedPackageManager.split('@');\n\n return packageManagers.NPM === packageManager\n || fileExists(`${projectRoot}/${determineLockfilePath(packageManagers.NPM)}`);\n}\n","import {promises as fs} from 'node:fs';\nimport {execa} from 'execa';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nexport default async function ({projectRoot}) {\n const [packageContents, {stdout}] = await Promise.all([\n fs.readFile(`${projectRoot}/package.json`, 'utf-8'),\n execa('yarn', ['--version'])\n ]);\n const existingPackageJsonContents = JSON.parse(packageContents);\n\n await writePackageJson({\n projectRoot,\n config: {\n ...existingPackageJsonContents,\n packageManager: `yarn@${stdout}`\n }\n });\n}\n","import {fileExists} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport determineLockfilePath from '../lockfile-path-resolver.js';\n\nexport default function ({projectRoot, pinnedPackageManager = ''}) {\n const [packageManager] = pinnedPackageManager.split('@');\n\n return packageManagers.YARN === packageManager\n || fileExists(`${projectRoot}/${determineLockfilePath(packageManagers.YARN)}`);\n}\n","import {test as npmIsUsed} from './npm/index.js';\nimport {test as yarnIsUsed} from './yarn/index.js';\n\nexport default async function ({projectRoot}) {\n const [npmFound, yarnFound] = await Promise.all([\n npmIsUsed({projectRoot}),\n yarnIsUsed({projectRoot})\n ]);\n\n return npmFound || yarnFound;\n}\n","import {execa} from 'execa';\n\nexport default async function () {\n await execa('corepack', ['use', 'npm@latest']);\n}\n","import {lift as liftCorepack} from '../corepack/index.js';\n\nexport default async function () {\n await liftCorepack();\n\n return {};\n}\n","import {scaffold as scaffoldNpm} from './npm/index.js';\nimport {scaffold as scaffoldYarn} from './yarn/index.js';\n\nconst scaffolders = {\n npm: scaffoldNpm,\n yarn: scaffoldYarn\n};\n\nexport default function ({projectRoot, packageManager}) {\n return scaffolders[packageManager]({projectRoot});\n}\n","import {promises as fs} from 'node:fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport {test as npmIsUsed} from './npm/index.js';\nimport {test as yarnIsUsed} from './yarn/index.js';\n\nexport default async function ({projectRoot, packageManager}) {\n if (packageManager) return packageManager;\n\n const {packageManager: pinnedPackageManager} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf-8'));\n\n if (await npmIsUsed({projectRoot, pinnedPackageManager})) {\n return packageManagers.NPM;\n }\n\n if (await yarnIsUsed({projectRoot, pinnedPackageManager})) {\n return packageManagers.YARN;\n }\n\n throw new Error('Package-manager could not be determined');\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.js';\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';\n\nimport {execa} from '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 fs} from 'node:fs';\nimport {info} from '@travi/cli-messages';\n\nimport {determineLatestVersionOf, install as installNodeVersion} from './tasks.js';\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 fs.writeFile(`${projectRoot}/.nvmrc`, version);\n\n await installNodeVersion(nodeVersionCategory);\n\n return version;\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.nvmrc`);\n}\n","export default function (vcsIgnoreLists = {}) {\n return {\n files: vcsIgnoreLists.files || [],\n directories: ['/node_modules/', ...vcsIgnoreLists.directories || []]\n };\n}\n","import {EOL} from 'os';\nimport validatePackageName from '../../thirdparty-wrappers/validate-npm-package-name.js';\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 {dialects} from '@form8ion/javascript-core';\n\nexport default function ({\n packageName,\n dialect,\n license,\n author,\n description\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: {}\n };\n}\n","import {info} from '@travi/cli-messages';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nimport buildPackageName from './package-name.js';\nimport buildPackageDetails from './details.js';\n\nexport default async function ({\n projectRoot,\n projectName,\n scope,\n dialect,\n license,\n author,\n description\n}) {\n info('Configuring package.json');\n\n const packageName = buildPackageName(projectName, scope);\n\n await writePackageJson({\n projectRoot,\n config: await buildPackageDetails({\n packageName,\n dialect,\n license,\n author,\n description\n })\n });\n\n return {packageName};\n}\n","import sortProperties from 'sort-object-keys';\n\nexport default function (packageContents) {\n return sortProperties(\n packageContents,\n [\n 'name',\n 'description',\n 'license',\n 'version',\n 'private',\n 'type',\n 'engines',\n 'author',\n 'contributors',\n 'repository',\n 'bugs',\n 'homepage',\n 'funding',\n 'keywords',\n 'runkitExampleFilename',\n 'exports',\n 'bin',\n 'main',\n 'module',\n 'types',\n 'sideEffects',\n 'scripts',\n 'files',\n 'publishConfig',\n 'packageManager',\n 'config',\n 'dependencies',\n 'devDependencies',\n 'peerDependencies'\n ]\n );\n}\n","export default function (vcs, 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 };\n}\n","import {DEV_DEPENDENCY_TYPE, PROD_DEPENDENCY_TYPE, packageManagers} from '@form8ion/javascript-core';\n\nexport const details = {\n [packageManagers.NPM]: {\n installationCommand: 'install',\n installationFlags: {\n [DEV_DEPENDENCY_TYPE]: `save-${DEV_DEPENDENCY_TYPE}`,\n [PROD_DEPENDENCY_TYPE]: `save-${PROD_DEPENDENCY_TYPE}`,\n exact: 'save-exact'\n }\n },\n [packageManagers.YARN]: {\n installationCommand: 'add',\n installationFlags: {\n [DEV_DEPENDENCY_TYPE]: DEV_DEPENDENCY_TYPE,\n [PROD_DEPENDENCY_TYPE]: PROD_DEPENDENCY_TYPE,\n exact: 'exact'\n }\n }\n};\n\nexport function getInstallationCommandFor(manager) {\n return details[manager].installationCommand;\n}\n\nexport function getDependencyTypeFlag(manager, type) {\n return details[manager].installationFlags[type];\n}\n\nexport function getExactFlag(manager) {\n return details[manager].installationFlags.exact;\n}\n","import {info, warn} from '@travi/cli-messages';\nimport {DEV_DEPENDENCY_TYPE, packageManagers} from '@form8ion/javascript-core';\n\nimport {execa} from 'execa';\nimport {getDependencyTypeFlag, getExactFlag, getInstallationCommandFor} from './package-managers.js';\n\nexport default async function (dependencies, dependenciesType, projectRoot, packageManager = packageManagers.NPM) {\n if (dependencies.length) {\n info(`Installing ${dependenciesType} dependencies`, {level: 'secondary'});\n\n await execa(\n `. ~/.nvm/nvm.sh && nvm use && ${packageManager} ${\n getInstallationCommandFor(packageManager)\n } ${[...new Set(dependencies)].join(' ')} --${getDependencyTypeFlag(packageManager, dependenciesType)}${\n DEV_DEPENDENCY_TYPE === dependenciesType ? ` --${getExactFlag(packageManager)}` : ''\n }`,\n {shell: true, cwd: projectRoot}\n );\n } else warn(`No ${dependenciesType} dependencies to install`);\n}\n","import {error, info} from '@travi/cli-messages';\nimport {DEV_DEPENDENCY_TYPE, PROD_DEPENDENCY_TYPE} from '@form8ion/javascript-core';\n\nimport install from './installer.js';\n\nexport default async function ({dependencies = {}, devDependencies, projectRoot, packageManager}) {\n info('Processing dependencies');\n\n if (Array.isArray(devDependencies)) {\n throw new Error(\n `devDependencies provided as: ${devDependencies}. Instead, provide under dependencies.javascript.development`\n );\n }\n\n if (Array.isArray(dependencies)) {\n throw new Error(`Expected dependencies to be an object. Instead received: ${dependencies}`);\n }\n\n const {javascript: {production = [], development = []} = {}} = dependencies;\n\n try {\n await install(production, PROD_DEPENDENCY_TYPE, projectRoot, packageManager);\n await install(development, DEV_DEPENDENCY_TYPE, projectRoot, packageManager);\n } catch (e) {\n error('Failed to update dependencies');\n error(e, {level: 'secondary'});\n }\n}\n","function projectWillBeTested(scripts) {\n return Object.keys(scripts).find(scriptName => scriptName.startsWith('test:'));\n}\n\nfunction projectShouldBeBuiltForVerification(scripts) {\n return 'run-s build' === scripts['pregenerate:md'];\n}\n\nexport default function (scripts) {\n return {\n ...scripts,\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\n","import updateTestScript from './test-script-updater.js';\n\nexport default function ({existingScripts, scripts}) {\n return {\n scripts: updateTestScript({...existingScripts, ...scripts}),\n dependencies: {javascript: {development: ['npm-run-all2']}}\n };\n}\n","import {promises as fs} from 'node:fs';\nimport deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nimport sortPackageProperties from './property-sorter.js';\nimport defineVcsHostDetails from './vcs-host-details.js';\nimport {process as processDependencies} from '../dependencies/index.js';\nimport {lift as liftScripts} from './scripts/index.js';\n\nexport default async function ({\n projectRoot,\n scripts,\n tags,\n dependencies,\n devDependencies,\n packageManager,\n vcs,\n pathWithinParent\n}) {\n info('Updating `package.json`', {level: 'secondary'});\n\n const existingPackageJsonContents = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf-8'));\n const {scripts: liftedScripts, dependencies: scriptDependencies} = liftScripts({\n existingScripts: existingPackageJsonContents.scripts,\n scripts\n });\n\n await writePackageJson({\n projectRoot,\n config: sortPackageProperties({\n ...existingPackageJsonContents,\n ...defineVcsHostDetails(vcs, pathWithinParent),\n scripts: liftedScripts,\n ...tags && {\n keywords: existingPackageJsonContents.keywords ? [...existingPackageJsonContents.keywords, ...tags] : tags\n }\n })\n });\n\n await processDependencies({\n dependencies: deepmerge(dependencies, scriptDependencies),\n devDependencies,\n projectRoot,\n packageManager\n });\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nimport buildGenerationCommand from '../../documentation/generation-command.js';\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, provideExample}) {\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\\`\\`\\`${provideExample\n ? `\n\n### Example\n\nrun \\`${buildGenerationCommand(packageManager)}\\` to inject the usage example`\n : ''\n}`\n };\n}\n","export default function ({projectVisibility}) {\n return 'Public' === projectVisibility ? 'public' : 'restricted';\n}\n","export default function (packageName, accessLevel) {\n return {\n consumer: {\n ...'public' === accessLevel && {\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","export default function ({provenance}) {\n if (provenance) {\n return {\n badges: {\n status: {\n slsa: {\n img: 'https://slsa.dev/images/gh-badge-level2.svg',\n url: 'https://slsa.dev',\n text: 'SLSA Level 2'\n }\n }\n }\n };\n }\n\n return {};\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport enhanceSlsa from './slsa.js';\n\nexport default async function ({projectRoot, packageDetails}) {\n const {publishConfig: {access}} = packageDetails;\n\n if ('public' === access) {\n await mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});\n\n return enhanceSlsa({provenance: true});\n }\n\n return {};\n}\n","import deepmerge from 'deepmerge';\nimport {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport defineBadges from './badges.js';\nimport {lift as liftProvenance} from './provenance/index.js';\n\nexport default async function ({projectRoot, packageDetails}) {\n const {name: packageName, publishConfig: {access: packageAccessLevel}} = packageDetails;\n const homepage = `https://npm.im/${packageName}`;\n\n await mergeIntoExistingPackageJson({projectRoot, config: {homepage}});\n\n return deepmerge(\n await liftProvenance({packageDetails, projectRoot}),\n {\n homepage,\n dependencies: {javascript: {development: ['publint']}},\n scripts: {'lint:publish': 'publint --strict'},\n badges: defineBadges(packageName, packageAccessLevel)\n }\n );\n}\n","import defineBadges from './badges.js';\n\nexport default async function ({packageName, packageAccessLevel}) {\n return {\n badges: await defineBadges(packageName, packageAccessLevel)\n };\n}\n","import {prompt} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from '../../../prompts/question-names.js';\n\nexport default async function ({bundlers, decisions}) {\n if (!Object.keys(bundlers).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PACKAGE_BUNDLER,\n type: 'list',\n message: 'Which bundler should be used?',\n choices: [...Object.keys(bundlers), 'Other']\n }], decisions);\n\n return answers[questionNames.PACKAGE_BUNDLER];\n}\n","import {scaffoldChoice as scaffoldChosenBundler} from '@form8ion/javascript-core';\nimport chooseBundler from './prompt.js';\n\nexport default async function ({projectRoot, projectType, bundlers, dialect, decisions}) {\n const chosenBundler = await chooseBundler({bundlers, decisions});\n\n return scaffoldChosenBundler(bundlers, chosenBundler, {projectRoot, projectType, dialect});\n}\n","import {resolve} from 'path';\nimport filedirname from 'filedirname';\n\nexport default function (fileName) {\n const [, __dirname] = filedirname();\n\n return resolve(__dirname, '..', 'templates', fileName);\n}\n","import {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport mustache from 'mustache';\nimport touch from 'touch';\nimport camelcase from 'camelcase';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldBundler} from '../publishable/bundler/index.js';\nimport determinePathToTemplateFile from '../../template-path.js';\n\nconst defaultBuildDirectory = 'lib';\n\nasync function createExample(projectRoot, projectName, dialect) {\n return fs.writeFile(\n `${projectRoot}/example.js`,\n mustache.render(\n await fs.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),\n {projectName: camelcase(projectName), esm: dialect === dialects.ESM}\n )\n );\n}\n\nasync function buildDetailsForCommonJsProject({projectRoot, projectName, provideExample}) {\n await Promise.all([\n touch(`${projectRoot}/index.js`),\n provideExample\n ? fs.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\\n`)\n : Promise.resolve()\n ]);\n\n return {};\n}\n\nexport default async function ({\n projectRoot,\n projectName,\n visibility,\n packageName,\n packageBundlers,\n dialect,\n provideExample,\n decisions\n}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName, provideExample});\n\n await fs.mkdir(`${projectRoot}/src`, {recursive: true});\n const [bundlerResults] = await Promise.all([\n scaffoldBundler({bundlers: packageBundlers, projectRoot, dialect, decisions, projectType: projectTypes.PACKAGE}),\n provideExample ? await createExample(projectRoot, projectName, dialect) : Promise.resolve,\n touch(`${projectRoot}/src/index.js`)\n ]);\n\n return deepmerge(\n bundlerResults,\n {\n dependencies: {javascript: {development: ['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 ...provideExample && {'pregenerate:md': 'run-s build'}\n },\n vcsIgnore: {directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: {\n consumer: {\n ...'Public' === visibility && {\n runkit: {\n img: `https://badge.runkitcdn.com/${packageName}.svg`,\n text: `Try ${packageName} on RunKit`,\n link: `https://npm.runkit.com/${packageName}`\n }\n }\n }\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {dialects, mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport scaffoldPackageDocumentation from './documentation.js';\nimport determinePackageAccessLevelFromProjectVisibility from '../publishable/access-level.js';\nimport {scaffold as scaffoldPublishable} from '../publishable/index.js';\nimport buildDetails from './build-details.js';\n\nexport default async function ({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n decisions,\n dialect,\n provideExample,\n publishRegistry\n}) {\n info('Scaffolding Package Details');\n\n const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});\n const [detailsForBuild, publishableResults] = await Promise.all([\n buildDetails({\n projectRoot,\n projectName,\n packageBundlers,\n visibility,\n packageName,\n dialect,\n provideExample,\n decisions\n }),\n scaffoldPublishable({packageName, packageAccessLevel}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n files: ['example.js', ...dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/']],\n publishConfig: {\n access: packageAccessLevel,\n ...publishRegistry && {registry: publishRegistry}\n },\n sideEffects: false,\n ...'Public' === visibility && {runkitExampleFilename: './example.js'},\n ...dialects.BABEL === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n exports: {\n module: './lib/index.mjs',\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n },\n ...dialects.ESM === dialect && {\n main: './lib/index.js',\n exports: './lib/index.js'\n },\n ...dialects.TYPESCRIPT === dialect && {\n main: './lib/index.js',\n module: './lib/index.mjs',\n types: './lib/index.d.ts',\n exports: {\n types: './lib/index.d.ts',\n require: './lib/index.js',\n import: './lib/index.mjs'\n }\n }\n }\n })\n ]);\n\n return deepmerge.all([\n publishableResults,\n {\n documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager, provideExample}),\n nextSteps: [\n {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},\n {summary: 'Define supported node.js versions as `engines.node` in the `package.json` file'},\n {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}\n ]\n },\n detailsForBuild\n ]);\n}\n","import {lift as liftPublishable} from '../publishable/index.js';\n\nexport default function ({projectRoot, packageDetails}) {\n return liftPublishable({projectRoot, packageDetails});\n}\n","export default async function ({packageDetails: {exports, publishConfig, bin}}) {\n return !!exports || (!!publishConfig && !bin);\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nconst defaultBuildDirectory = 'public';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Application Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n const buildDirectory = defaultBuildDirectory;\n\n return {\n scripts: {\n clean: `rimraf ./${buildDirectory}`,\n start: `node ./${buildDirectory}/index.js`,\n prebuild: 'run-s clean'\n },\n dependencies: {javascript: {development: ['rimraf']}},\n vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},\n buildDirectory,\n nextSteps: []\n };\n}\n","export default function ({packageDetails}) {\n return !!packageDetails.private;\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot}) {\n info('Scaffolding Monorepo Details');\n\n await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});\n\n return {\n nextSteps: [{\n summary: 'Add packages to your new monorepo',\n description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'\n + ' to scaffold new packages into your new monorepo'\n }]\n };\n}\n","import deepmerge from 'deepmerge';\nimport {mergeIntoExistingPackageJson, projectTypes} from '@form8ion/javascript-core';\n\nimport determinePackageAccessLevelFromProjectVisibility from '../publishable/access-level.js';\nimport {scaffold as scaffoldPublishable} from '../publishable/index.js';\nimport {scaffold as scaffoldBundler} from '../publishable/bundler/index.js';\n\nconst defaultBuildDirectory = 'bin';\n\nexport default async function ({\n packageName,\n visibility,\n projectRoot,\n dialect,\n publishRegistry,\n decisions,\n packageBundlers\n}) {\n const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});\n const [bundlerResults, publishableResults] = await Promise.all([\n scaffoldBundler({bundlers: packageBundlers, projectRoot, dialect, decisions, projectType: projectTypes.CLI}),\n scaffoldPublishable({packageName, packageAccessLevel}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {\n access: packageAccessLevel,\n ...publishRegistry && {registry: publishRegistry}\n }\n }\n })\n ]);\n\n return deepmerge.all([\n publishableResults,\n bundlerResults,\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: {javascript: {production: ['update-notifier'], development: ['rimraf']}},\n vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n nextSteps: [{summary: 'Define supported node.js versions as `engines.node` in the `package.json` file'}]\n }\n ]);\n}\n","export default async function ({packageDetails: {bin}}) {\n return !!bin;\n}\n","import {lift as liftPublishable} from '../publishable/index.js';\n\nexport default function ({projectRoot, packageDetails}) {\n return liftPublishable({projectRoot, packageDetails});\n}\n","import {projectTypes} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldPackageType} from './package/index.js';\nimport {scaffold as scaffoldApplicationType} from './application/index.js';\nimport {scaffold as scaffoldMonorepoType} from './monorepo/index.js';\nimport {scaffold as scaffoldCliType} from './cli/index.js';\n\nexport default async function ({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n packageBundlers,\n scope,\n decisions,\n dialect,\n provideExample,\n publishRegistry\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageBundlers,\n decisions,\n dialect,\n provideExample,\n publishRegistry\n });\n case projectTypes.APPLICATION:\n return scaffoldApplicationType({projectRoot});\n case projectTypes.CLI:\n return scaffoldCliType({\n packageName,\n visibility,\n projectRoot,\n dialect,\n publishRegistry,\n decisions,\n packageBundlers\n });\n case projectTypes.MONOREPO:\n return scaffoldMonorepoType({projectRoot});\n case 'Other':\n return {};\n default:\n throw new Error(`The project-type of ${projectType} is invalid`);\n }\n}\n","import {test as isPackage} from './package/index.js';\nimport {test as isCli} from './cli/index.js';\nimport {test as isApplication} from './application/index.js';\n\nexport default async function ({projectRoot, packageDetails}) {\n return await isPackage({projectRoot, packageDetails})\n || await isCli({projectRoot, packageDetails})\n || isApplication({projectRoot, packageDetails});\n}\n","import {mergeIntoExistingPackageJson} from '@form8ion/javascript-core';\n\nimport {test as isPackage, lift as liftPackage} from './package/index.js';\nimport {test as isCli, lift as liftCli} from './cli/index.js';\n\nfunction vcsRepositoryHostedOnGithub(vcs) {\n return vcs && 'github' === vcs.host;\n}\n\nexport default async function ({projectRoot, packageDetails, vcs}) {\n if (await isPackage({projectRoot, packageDetails})) return liftPackage({projectRoot, packageDetails});\n if (await isCli({projectRoot, packageDetails})) return liftCli({projectRoot, packageDetails});\n\n let homepage;\n\n if (vcsRepositoryHostedOnGithub(vcs)) {\n homepage = `https://github.com/${vcs.owner}/${vcs.name}#readme`;\n\n await mergeIntoExistingPackageJson({projectRoot, config: {homepage}});\n }\n\n return {homepage};\n}\n","import {prompt} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from '../prompts/question-names.js';\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), 'Other']\n }], decisions);\n\n return answers[questionNames.PROJECT_TYPE_CHOICE];\n}\n","import {scaffoldChoice} from '@form8ion/javascript-core';\n\nimport chooseProjectTypePlugin from './prompt.js';\n\nexport default async function ({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n dialect,\n tests,\n decisions,\n plugins\n}) {\n const pluginsForProjectType = plugins[projectType];\n\n if (!pluginsForProjectType) return {};\n\n const chosenType = await chooseProjectTypePlugin({types: pluginsForProjectType, decisions, projectType});\n\n return scaffoldChoice(\n pluginsForProjectType,\n chosenType,\n {projectRoot, projectName, packageName, packageManager, scope, tests, dialect}\n );\n}\n","import deepmerge from 'deepmerge';\n\nimport scaffoldUnitTesting from '../../../testing/unit.js';\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 {dependencies: {javascript: {development: [...(unit || integration) ? ['@travi/any'] : []]}}, eslint: {}},\n unitResults\n );\n}\n","export default function ({packageManager, registries = {}}) {\n return [\n ...!registries.registry ? [packageManager] : [],\n ...Object.values(Object.fromEntries(Object.entries(registries).filter(([scope]) => 'publish' !== scope)))\n ];\n}\n","import {fileTypes} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\nimport {write} from '@form8ion/config-file';\n\nimport buildAllowedHostsList from './allowed-hosts-builder.js';\nimport {defineLockfilePath as determineLockfilePathFor} from '../package-managers/index.js';\n\nconst lockfileLintSupportedPackageManagers = [packageManagers.NPM, packageManagers.YARN];\n\nfunction lockfileLintSupports(packageManager) {\n return lockfileLintSupportedPackageManagers.includes(packageManager);\n}\n\nexport default async function ({projectRoot, packageManager, registries}) {\n if (!lockfileLintSupports(packageManager)) {\n throw new Error(\n `The ${packageManager} package manager is currently not supported by lockfile-lint. `\n + `Only ${lockfileLintSupportedPackageManagers.join(' and ')} are currently supported.`\n );\n }\n\n await write({\n name: 'lockfile-lint',\n format: fileTypes.JSON,\n path: projectRoot,\n config: {\n path: determineLockfilePathFor(packageManager),\n type: packageManager,\n 'validate-https': true,\n 'allowed-hosts': buildAllowedHostsList({packageManager, registries})\n }\n });\n\n return {\n dependencies: {javascript: {development: ['lockfile-lint']}},\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.lockfile-lintrc.json`);\n}\n","import {fileTypes, loadConfigFile} from '@form8ion/core';\nimport {write as writeConfig} from '@form8ion/config-file';\n\nconst configName = 'lockfile-lint';\n\nexport function read({projectRoot}) {\n return loadConfigFile({name: `.${configName}rc`, format: fileTypes.JSON, path: projectRoot});\n}\n\nexport function write({projectRoot, config}) {\n return writeConfig({name: configName, format: fileTypes.JSON, path: projectRoot, config});\n}\n","import {scaffold as scaffoldLockfileLint} from '../lockfile-lint/index.js';\n\nexport default async function ({projectRoot, packageManager, registries}) {\n return scaffoldLockfileLint({projectRoot, packageManager, registries});\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldHusky} from '@form8ion/husky';\n\nimport scaffoldTesting from './testing/index.js';\nimport {scaffold as scaffoldLinting} from '../../linting/index.js';\n\nexport async function scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n}) {\n const [testingResults, lintingResults, huskyResults] = await Promise.all([\n scaffoldTesting({\n projectRoot,\n tests,\n visibility,\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n }),\n scaffoldLinting({projectRoot, packageManager, registries, vcs, pathWithinParent}),\n scaffoldHusky({projectRoot, packageManager, pathWithinParent})\n ]);\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import deepmerge from 'deepmerge';\nimport {fileTypes} from '@form8ion/core';\nimport {projectTypes} from '@form8ion/javascript-core';\nimport {write} from '@form8ion/config-file';\n\nexport default async function ({config, projectRoot, projectType, vcs}) {\n await write({\n format: fileTypes.JSON,\n path: projectRoot,\n name: 'remark',\n config: {\n settings: {\n listItemIndent: 'one',\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 dependencies: {javascript: {development: [config, 'remark-cli', 'remark-toc']}},\n scripts: {\n 'lint:md': 'remark . --frail',\n 'generate:md': 'remark . --output'\n }\n },\n {...projectTypes.PACKAGE === projectType && {dependencies: {javascript: {development: ['remark-usage']}}}}\n );\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldPrettier} from '@form8ion/prettier';\nimport {scaffold as scaffoldEslint} from '@form8ion/eslint';\n\nimport {scaffold as scaffoldRemark} from './remark/index.js';\n\nexport default async function ({\n projectRoot,\n projectType,\n configs,\n vcs,\n configureLinting\n}) {\n return deepmerge.all(await Promise.all([\n configs.eslint\n && configureLinting\n && scaffoldEslint({projectRoot, config: configs.eslint}),\n scaffoldRemark({\n projectRoot,\n projectType,\n vcs,\n config: configs.remark || '@form8ion/remark-lint-preset'\n }),\n scaffoldPrettier({projectRoot, config: configs.prettier})\n ].filter(Boolean)));\n}\n","import {applyEnhancers} from '@form8ion/core';\nimport * as eslintPlugin from '@form8ion/eslint';\n\nexport default function (options) {\n return applyEnhancers({options, enhancers: [eslintPlugin]});\n}\n","import {test as testForEslint} from '@form8ion/eslint';\n\nexport default function (options) {\n return testForEslint(options);\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {projectTypes, scaffoldChoice} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCommitConvention} from '@form8ion/commit-convention';\n\nimport {validate} from '../options/validator.js';\nimport {prompt} from '../prompts/questions.js';\nimport {scaffold as scaffoldDialect} from '../dialects/index.js';\nimport {scaffold as scaffoldNpmConfig} from '../npm-config/index.js';\nimport {scaffold as scaffoldPackageManager} from '../package-managers/index.js';\nimport scaffoldDocumentation from '../documentation/index.js';\nimport {scaffold as scaffoldNodeVersion} from '../node-version/index.js';\nimport buildVcsIgnoreLists from '../vcs/ignore-lists-builder.js';\nimport {scaffold as scaffoldPackage} from '../package/index.js';\nimport {scaffold as scaffoldProjectType} from '../project-type/index.js';\nimport {scaffold as scaffoldProjectTypePlugin} from '../project-type-plugin/index.js';\nimport buildDocumentationCommand from '../documentation/generation-command.js';\nimport {scaffold as scaffoldVerification} from './verification/index.js';\nimport {scaffold as scaffoldCodeStyle} from '../code-style/index.js';\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 decisions,\n pathWithinParent,\n plugins: {\n applicationTypes,\n packageTypes,\n monorepoTypes,\n packageBundlers,\n unitTestFrameworks,\n hosts,\n ciServices\n }\n } = validate(options);\n\n const {\n tests,\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author,\n configureLinting,\n provideExample,\n packageManager,\n dialect\n } = await prompt(ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);\n\n info('Writing project files', {level: 'secondary'});\n\n const {packageName} = await scaffoldPackage({\n projectRoot,\n projectName,\n scope,\n dialect,\n license,\n author,\n description\n });\n const projectTypeResults = await scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n monorepoTypes,\n packageBundlers,\n scope,\n tests,\n vcs,\n decisions,\n dialect,\n provideExample,\n publishRegistry: configs.registries.publish\n });\n const verificationResults = await scaffoldVerification({\n projectRoot,\n dialect,\n visibility,\n packageManager,\n vcs,\n registries: configs.registries,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent\n });\n const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([\n scaffoldNodeVersion({projectRoot, nodeVersionCategory}),\n scaffoldNpmConfig({projectType, projectRoot}),\n scaffoldDialect({\n dialect,\n configs,\n projectRoot,\n projectType,\n testFilenamePattern: verificationResults.testFilenamePattern\n }),\n scaffoldCodeStyle({projectRoot, projectType, configs, vcs, configureLinting}),\n scaffoldPackageManager({projectRoot, packageManager})\n ]);\n const projectTypePluginResults = await scaffoldProjectTypePlugin({\n projectRoot,\n projectType,\n projectName,\n packageName,\n packageManager,\n scope,\n dialect,\n tests,\n decisions,\n plugins: {\n [projectTypes.PACKAGE]: packageTypes,\n [projectTypes.APPLICATION]: applicationTypes,\n [projectTypes.MONOREPO]: monorepoTypes\n }\n });\n 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 codeStyleResults,\n npmResults,\n dialectResults,\n projectTypePluginResults\n ]);\n\n return {\n ...mergedContributions,\n documentation: scaffoldDocumentation({projectTypeResults, packageManager}),\n tags: projectTypeResults.tags,\n vcsIgnore: buildVcsIgnoreLists(mergedContributions.vcsIgnore),\n verificationCommand: `${buildDocumentationCommand(packageManager)} && ${packageManager} test`\n };\n}\n","export default function () {\n return true;\n}\n","export default function (registries = {}) {\n return Object.entries(registries)\n .filter(([scope]) => 'publish' !== scope)\n .reduce((acc, [scope, url]) => {\n if ('registry' === scope) return {...acc, registry: url};\n\n return {...acc, [`@${scope}:registry`]: url};\n }, {registry: 'https://registry.npmjs.org'});\n}\n","import {\n scaffold as scaffoldLockfileLint,\n test as lockfileLintIsAlreadyConfigured,\n read as readLockfileLintConfig,\n write as writeLockfileLintConfig\n} from '../lockfile-lint/index.js';\nimport {read as readNpmConfig, write as writeNpmConfig} from '../npm-config/index.js';\nimport buildRegistriesConfig from './npm-config/list-builder.js';\nimport buildAllowedHostsList from '../lockfile-lint/allowed-hosts-builder.js';\n\nasync function updateRegistriesInNpmConfig(registries, projectRoot) {\n const registriesForNpmConfig = buildRegistriesConfig(registries);\n\n await writeNpmConfig({\n projectRoot,\n config: {\n ...(await readNpmConfig({projectRoot})),\n ...registriesForNpmConfig\n }\n });\n}\n\nasync function updateRegistriesInLockfileLintConfig(projectRoot, packageManager, registries) {\n await writeLockfileLintConfig({\n projectRoot,\n config: {\n ...await readLockfileLintConfig({projectRoot}),\n 'allowed-hosts': buildAllowedHostsList({packageManager, registries})\n }\n });\n}\n\nexport default async function ({projectRoot, packageManager, configs: {registries}}) {\n await updateRegistriesInNpmConfig(registries, projectRoot);\n\n if (!(await lockfileLintIsAlreadyConfigured({projectRoot}))) {\n return scaffoldLockfileLint({projectRoot, packageManager, registries});\n }\n\n await updateRegistriesInLockfileLintConfig(projectRoot, packageManager, registries);\n\n return {};\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({packageDetails: {name}}) {\n return {\n dependencies: {javascript: {development: ['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 'node:fs';\nimport deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {applyEnhancers} from '@form8ion/core';\nimport * as huskyPlugin from '@form8ion/husky';\nimport * as commitConventionPlugin from '@form8ion/commit-convention';\n\nimport * as registriesPlugin from '../registries/index.js';\nimport * as coveragePlugin from '../coverage/index.js';\nimport * as codeStylePlugin from '../code-style/index.js';\nimport * as npmConfigPlugin from '../npm-config/index.js';\nimport * as enginesEnhancer from './enhancers/engines.js';\nimport * as projectTypes from '../project-type/index.js';\nimport * as dialects from '../dialects/index.js';\nimport {lift as liftPackage} from '../package/index.js';\nimport * as packageManagers from '../package-managers/index.js';\nimport {determineCurrent as resolvePackageManager} from '../package-managers/index.js';\n\nexport default async function ({projectRoot, vcs, results, pathWithinParent, enhancers = {}, configs = {}}) {\n info('Lifting JavaScript-specific details');\n\n const [packageManager, packageContents] = await Promise.all([\n resolvePackageManager({projectRoot, packageManager: results.packageManager}),\n fs.readFile(`${projectRoot}/package.json`, 'utf8')\n ]);\n\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: {\n ...enhancers,\n huskyPlugin,\n enginesEnhancer,\n coveragePlugin,\n commitConventionPlugin,\n dialects,\n codeStylePlugin,\n npmConfigPlugin,\n projectTypes,\n packageManagers,\n registriesPlugin\n },\n options: {packageManager, projectRoot, vcs, packageDetails: JSON.parse(packageContents), configs}\n });\n\n await liftPackage(deepmerge.all([{projectRoot, packageManager, vcs, pathWithinParent}, enhancerResults]));\n\n return enhancerResults;\n}\n","import {info} from '@travi/cli-messages';\n\nimport {test as nvmIsUsed} from './node-version/index.js';\nimport {test as jsPackageManagerIsUsed} from './package-managers/index.js';\n\nexport default async function ({projectRoot}) {\n const [nvmFound, jsPackageManagerFound] = await Promise.all([\n nvmIsUsed({projectRoot}),\n jsPackageManagerIsUsed({projectRoot})\n ]);\n\n const jsProjectFound = nvmFound || jsPackageManagerFound;\n\n if (jsProjectFound) info('JavaScript Project Detected');\n\n return jsProjectFound;\n}\n","import {questionNames as languageScaffolderPromptsQuestionNames} from '@travi/language-scaffolder-prompts';\n\nimport {questionNames as jsScaffolderQuestionNames} from './prompts/question-names.js';\n\nexport {default as scaffoldUnitTesting} from './testing/unit.js';\nexport {default as scaffold} from './scaffolder/index.js';\nexport {default as lift} from './lift/index.js';\nexport {default as test} from './tester.js';\nexport const questionNames = {...languageScaffolderPromptsQuestionNames, ...jsScaffolderQuestionNames};\n"],"names":["questionNames","write","scaffoldCodecov","fs","lift","liftCodecov","prompt","scaffoldFrameworkChoice","dialects","projectTypes","commonQuestionNames","npmConf","npmConfFactory","scope","promptWithInquirer","packageManagers","validateScope","commonQuestions","writeConfig","read","determineLockfilePath","buildGenerationCommand","install","installNodeVersion","scaffoldChosenBundler","defaultBuildDirectory","scaffoldHusky","scaffoldEslint","scaffoldPrettier","testForEslint","scaffoldCommitConvention","writeLockfileLintConfig","readLockfileLintConfig","liftPackage","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@form8ion/javascript",
3
3
  "description": "JavaScript language plugin for the @form8ion toolset",
4
4
  "license": "MIT",
5
- "version": "14.0.0-beta.3",
5
+ "version": "14.0.0",
6
6
  "type": "module",
7
7
  "engines": {
8
8
  "node": "^18.19.0 || ^20.9.0 || >=22.11.0"
@@ -57,7 +57,7 @@
57
57
  "access": "public",
58
58
  "provenance": true
59
59
  },
60
- "packageManager": "npm@11.0.0+sha512.11dff29565d2297c74e7c594a9762581bde969f0aa5cbe6f5b3644bf008a16c065ece61094d9ffbb81125be38df8e1ba43eb8244b3d30c61eb797e9a2440e3ec",
60
+ "packageManager": "npm@11.1.0+sha512.acf301ad9b9ddba948fcb72341e2f0fcae477f56a95cc2a092934d133a7461062633cefbf93d5934a3dc0768674e2edee9f04dcfcc4bb4c327ff0e3a7d552a1b",
61
61
  "dependencies": {
62
62
  "@form8ion/codecov": "^6.0.0",
63
63
  "@form8ion/commit-convention": "^8.0.0-beta.6",
@@ -77,7 +77,6 @@
77
77
  "filedirname": "^3.0.0",
78
78
  "ini": "^5.0.0",
79
79
  "joi": "^17.5.0",
80
- "make-dir": "^4.0.0",
81
80
  "mustache": "^4.2.0",
82
81
  "npm-conf": "^1.1.3",
83
82
  "sort-object-keys": "^1.1.3",
@@ -86,7 +85,7 @@
86
85
  },
87
86
  "devDependencies": {
88
87
  "@cucumber/cucumber": "11.2.0",
89
- "@form8ion/commitlint-config": "2.0.3",
88
+ "@form8ion/commitlint-config": "2.0.4",
90
89
  "@form8ion/eslint-config": "7.0.12",
91
90
  "@form8ion/eslint-config-cucumber": "1.4.1",
92
91
  "@form8ion/eslint-config-mocha": "3.0.6",
@@ -104,16 +103,16 @@
104
103
  "js-yaml": "4.1.0",
105
104
  "lockfile-lint": "4.14.0",
106
105
  "ls-engines": "0.9.3",
107
- "mock-fs": "5.4.1",
106
+ "mock-fs": "5.5.0",
108
107
  "npm-run-all2": "7.0.2",
109
- "publint": "0.3.2",
108
+ "publint": "0.3.4",
110
109
  "remark-cli": "12.0.1",
111
110
  "remark-toc": "9.0.0",
112
111
  "remark-usage": "11.0.1",
113
112
  "rimraf": "6.0.1",
114
- "rollup": "4.32.1",
113
+ "rollup": "4.34.6",
115
114
  "rollup-plugin-auto-external": "2.0.0",
116
115
  "testdouble": "3.20.2",
117
- "vitest": "3.0.4"
116
+ "vitest": "3.0.5"
118
117
  }
119
118
  }