@form8ion/javascript 14.0.0-beta.4 → 14.1.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';
@@ -13,7 +13,7 @@ import { execa } from 'execa';
13
13
  import npmConf from 'npm-conf';
14
14
  import { EOL } from 'os';
15
15
  import validatePackageName from 'validate-npm-package-name';
16
- import { promises } from 'fs';
16
+ import { promises as promises$1 } from 'fs';
17
17
  import mustache from 'mustache';
18
18
  import touch from 'touch';
19
19
  import camelcase from 'camelcase';
@@ -21,7 +21,7 @@ import { resolve } from 'path';
21
21
  import filedirname from 'filedirname';
22
22
  import * as huskyPlugin from '@form8ion/husky';
23
23
  import { scaffold as scaffold$1 } from '@form8ion/husky';
24
- import { promises as promises$1 } from 'node:fs';
24
+ import { promises } from 'node:fs';
25
25
  import { stringify, parse } from 'ini';
26
26
  import { scaffold as scaffold$3 } from '@form8ion/prettier';
27
27
  import * as eslintPlugin from '@form8ion/eslint';
@@ -72,29 +72,33 @@ function nycIsConfigured ({projectRoot}) {
72
72
  return fileExists(`${projectRoot}/.nycrc`);
73
73
  }
74
74
 
75
- async function removeDependencies ({packageManager, dependencies}) {
76
- await execa(packageManager, ['remove', ...dependencies]);
77
- }
78
-
79
- async function removeNyc ({projectRoot, packageManager}) {
75
+ async function removeNyc ({projectRoot}) {
80
76
  await Promise.all([
81
77
  promises.unlink(`${projectRoot}/.nycrc`),
82
- promises.rm(`${projectRoot}/.nyc_output`, {recursive: true, force: true}),
83
- removeDependencies({packageManager, dependencies: ['nyc', '@istanbuljs/nyc-config-babel', 'babel-plugin-istanbul']})
78
+ promises.rm(`${projectRoot}/.nyc_output`, {recursive: true, force: true})
84
79
  ]);
80
+
81
+ return {
82
+ dependencies: {
83
+ javascript: {
84
+ remove: ['nyc', '@istanbuljs/nyc-config-babel', 'babel-plugin-istanbul']
85
+ }
86
+ }
87
+ };
85
88
  }
86
89
 
87
90
  async function lift$2({projectRoot, packageManager, vcs}) {
88
91
  const codecovResults = await lift$3({projectRoot, packageManager, vcs});
89
92
 
90
93
  if (await nycIsConfigured({projectRoot})) {
91
- const [c8Results] = await Promise.all([
94
+ const [c8Results, nycResults] = await Promise.all([
92
95
  scaffoldC8({projectRoot}),
93
- removeNyc({projectRoot, packageManager})
96
+ removeNyc({projectRoot})
94
97
  ]);
95
98
 
96
99
  return deepmerge.all([
97
100
  c8Results,
101
+ nycResults,
98
102
  codecovResults,
99
103
  {
100
104
  scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'},
@@ -490,7 +494,7 @@ var dialects = /*#__PURE__*/Object.freeze({
490
494
  });
491
495
 
492
496
  async function writeNpmConfig ({projectRoot, config}) {
493
- await promises$1.writeFile(`${projectRoot}/.npmrc`, stringify(config));
497
+ await promises.writeFile(`${projectRoot}/.npmrc`, stringify(config));
494
498
  }
495
499
 
496
500
  function projectWillNotBeConsumed(projectType) {
@@ -515,7 +519,7 @@ async function readNpmConfig ({projectRoot}) {
515
519
 
516
520
  if (!(await fileExists(pathToConfig))) return {};
517
521
 
518
- return parse(await promises$1.readFile(pathToConfig, 'utf-8'));
522
+ return parse(await promises.readFile(pathToConfig, 'utf-8'));
519
523
  }
520
524
 
521
525
  async function lifter$4 ({projectRoot}) {
@@ -541,7 +545,7 @@ var npmConfigPlugin = /*#__PURE__*/Object.freeze({
541
545
 
542
546
  async function scaffoldNpm ({projectRoot}) {
543
547
  const [packageContents, {stdout}] = await Promise.all([
544
- promises$1.readFile(`${projectRoot}/package.json`, 'utf-8'),
548
+ promises.readFile(`${projectRoot}/package.json`, 'utf-8'),
545
549
  execa('npm', ['--version'])
546
550
  ]);
547
551
  const existingPackageJsonContents = JSON.parse(packageContents);
@@ -573,7 +577,7 @@ function npmIsUsed ({projectRoot, pinnedPackageManager = ''}) {
573
577
 
574
578
  async function scaffoldYarn ({projectRoot}) {
575
579
  const [packageContents, {stdout}] = await Promise.all([
576
- promises$1.readFile(`${projectRoot}/package.json`, 'utf-8'),
580
+ promises.readFile(`${projectRoot}/package.json`, 'utf-8'),
577
581
  execa('yarn', ['--version'])
578
582
  ]);
579
583
  const existingPackageJsonContents = JSON.parse(packageContents);
@@ -625,7 +629,7 @@ function scaffoldPackageManager ({projectRoot, packageManager}) {
625
629
  async function resolvePackageManager ({projectRoot, packageManager}) {
626
630
  if (packageManager) return packageManager;
627
631
 
628
- const {packageManager: pinnedPackageManager} = JSON.parse(await promises$1.readFile(`${projectRoot}/package.json`, 'utf-8'));
632
+ const {packageManager: pinnedPackageManager} = JSON.parse(await promises.readFile(`${projectRoot}/package.json`, 'utf-8'));
629
633
 
630
634
  if (await npmIsUsed({projectRoot, pinnedPackageManager})) {
631
635
  return packageManagers$1.NPM;
@@ -706,7 +710,7 @@ async function scaffoldNodeVersion ({projectRoot, nodeVersionCategory}) {
706
710
 
707
711
  const version = await determineLatestVersionOf(nodeVersionCategory);
708
712
 
709
- await promises$1.writeFile(`${projectRoot}/.nvmrc`, version);
713
+ await promises.writeFile(`${projectRoot}/.nvmrc`, version);
710
714
 
711
715
  await install$1(nodeVersionCategory);
712
716
 
@@ -875,6 +879,10 @@ async function install (dependencies, dependenciesType, projectRoot, packageMana
875
879
  } else warn(`No ${dependenciesType} dependencies to install`);
876
880
  }
877
881
 
882
+ async function remove ({packageManager, dependencies}) {
883
+ await execa(packageManager, ['remove', ...dependencies]);
884
+ }
885
+
878
886
  async function processDependencies ({dependencies = {}, devDependencies, projectRoot, packageManager}) {
879
887
  info('Processing dependencies');
880
888
 
@@ -888,11 +896,12 @@ async function processDependencies ({dependencies = {}, devDependencies, project
888
896
  throw new Error(`Expected dependencies to be an object. Instead received: ${dependencies}`);
889
897
  }
890
898
 
891
- const {javascript: {production = [], development = []} = {}} = dependencies;
899
+ const {javascript: {production = [], development = [], remove: dependenciesToRemove = []} = {}} = dependencies;
892
900
 
893
901
  try {
894
902
  await install(production, PROD_DEPENDENCY_TYPE, projectRoot, packageManager);
895
903
  await install(development, DEV_DEPENDENCY_TYPE, projectRoot, packageManager);
904
+ await remove({packageManager, dependencies: dependenciesToRemove});
896
905
  } catch (e) {
897
906
  error('Failed to update dependencies');
898
907
  error(e, {level: 'secondary'});
@@ -937,7 +946,7 @@ async function liftPackage$1 ({
937
946
  }) {
938
947
  info('Updating `package.json`', {level: 'secondary'});
939
948
 
940
- const existingPackageJsonContents = JSON.parse(await promises$1.readFile(`${projectRoot}/package.json`, 'utf-8'));
949
+ const existingPackageJsonContents = JSON.parse(await promises.readFile(`${projectRoot}/package.json`, 'utf-8'));
941
950
  const {scripts: liftedScripts, dependencies: scriptDependencies} = liftScripts({
942
951
  existingScripts: existingPackageJsonContents.scripts,
943
952
  scripts
@@ -1014,7 +1023,7 @@ function defineBadges (packageName, accessLevel) {
1014
1023
  }
1015
1024
 
1016
1025
  function enhanceSlsa ({provenance}) {
1017
- if (provenance) {
1026
+ {
1018
1027
  return {
1019
1028
  badges: {
1020
1029
  status: {
@@ -1027,8 +1036,6 @@ function enhanceSlsa ({provenance}) {
1027
1036
  }
1028
1037
  };
1029
1038
  }
1030
-
1031
- return {};
1032
1039
  }
1033
1040
 
1034
1041
  async function liftProvenance ({projectRoot, packageDetails}) {
@@ -1094,10 +1101,10 @@ function determinePathToTemplateFile (fileName) {
1094
1101
  const defaultBuildDirectory$2 = 'lib';
1095
1102
 
1096
1103
  async function createExample(projectRoot, projectName, dialect) {
1097
- return promises.writeFile(
1104
+ return promises$1.writeFile(
1098
1105
  `${projectRoot}/example.js`,
1099
1106
  mustache.render(
1100
- await promises.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),
1107
+ await promises$1.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),
1101
1108
  {projectName: camelcase(projectName), esm: dialect === dialects$1.ESM}
1102
1109
  )
1103
1110
  );
@@ -1107,7 +1114,7 @@ async function buildDetailsForCommonJsProject({projectRoot, projectName, provide
1107
1114
  await Promise.all([
1108
1115
  touch(`${projectRoot}/index.js`),
1109
1116
  provideExample
1110
- ? promises.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\n`)
1117
+ ? promises$1.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\n`)
1111
1118
  : Promise.resolve()
1112
1119
  ]);
1113
1120
 
@@ -1126,7 +1133,7 @@ async function buildDetails ({
1126
1133
  }) {
1127
1134
  if (dialects$1.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName, provideExample});
1128
1135
 
1129
- await promises.mkdir(`${projectRoot}/src`, {recursive: true});
1136
+ await promises$1.mkdir(`${projectRoot}/src`, {recursive: true});
1130
1137
  const [bundlerResults] = await Promise.all([
1131
1138
  scaffoldBundler({bundlers: packageBundlers, projectRoot, dialect, decisions, projectType: projectTypes$1.PACKAGE}),
1132
1139
  provideExample ? await createExample(projectRoot, projectName, dialect) : Promise.resolve,
@@ -1393,9 +1400,9 @@ async function scaffoldProjectType ({
1393
1400
  }
1394
1401
 
1395
1402
  async function tester$3 ({projectRoot, packageDetails}) {
1396
- return await isPackage({projectRoot, packageDetails})
1397
- || await isCli({projectRoot, packageDetails})
1398
- || isApplication({projectRoot, packageDetails});
1403
+ return await isPackage({packageDetails})
1404
+ || await isCli({packageDetails})
1405
+ || isApplication({packageDetails});
1399
1406
  }
1400
1407
 
1401
1408
  function vcsRepositoryHostedOnGithub(vcs) {
@@ -1403,8 +1410,8 @@ function vcsRepositoryHostedOnGithub(vcs) {
1403
1410
  }
1404
1411
 
1405
1412
  async function lifter$2 ({projectRoot, packageDetails, vcs}) {
1406
- if (await isPackage({projectRoot, packageDetails})) return liftPackage({projectRoot, packageDetails});
1407
- if (await isCli({projectRoot, packageDetails})) return liftCli({projectRoot, packageDetails});
1413
+ if (await isPackage({packageDetails})) return liftPackage({projectRoot, packageDetails});
1414
+ if (await isCli({packageDetails})) return liftCli({projectRoot, packageDetails});
1408
1415
 
1409
1416
  let homepage;
1410
1417
 
@@ -1570,7 +1577,7 @@ async function scaffoldVerification({
1570
1577
  dialect,
1571
1578
  pathWithinParent
1572
1579
  }),
1573
- scaffoldLinting({projectRoot, packageManager, registries, vcs, pathWithinParent}),
1580
+ scaffoldLinting({projectRoot, packageManager, registries}),
1574
1581
  scaffold$1({projectRoot, packageManager, pathWithinParent})
1575
1582
  ]);
1576
1583
 
@@ -1703,13 +1710,8 @@ async function scaffolder (options) {
1703
1710
  packageName,
1704
1711
  packageManager,
1705
1712
  visibility,
1706
- applicationTypes,
1707
- packageTypes,
1708
- monorepoTypes,
1709
1713
  packageBundlers,
1710
1714
  scope,
1711
- tests,
1712
- vcs,
1713
1715
  decisions,
1714
1716
  dialect,
1715
1717
  provideExample,
@@ -1838,7 +1840,7 @@ var registriesPlugin = /*#__PURE__*/Object.freeze({
1838
1840
  });
1839
1841
 
1840
1842
  async function test({projectRoot}) {
1841
- const {engines} = JSON.parse(await promises.readFile(`${projectRoot}/package.json`, 'utf8'));
1843
+ const {engines} = JSON.parse(await promises$1.readFile(`${projectRoot}/package.json`, 'utf8'));
1842
1844
 
1843
1845
  return !!engines?.node;
1844
1846
  }
@@ -1862,7 +1864,7 @@ async function lift ({projectRoot, vcs, results, pathWithinParent, enhancers = {
1862
1864
 
1863
1865
  const [packageManager, packageContents] = await Promise.all([
1864
1866
  resolvePackageManager({projectRoot, packageManager: results.packageManager}),
1865
- promises$1.readFile(`${projectRoot}/package.json`, 'utf8')
1867
+ promises.readFile(`${projectRoot}/package.json`, 'utf8')
1866
1868
  ]);
1867
1869
 
1868
1870
  const enhancerResults = await applyEnhancers({
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 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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"}
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/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/remover.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 {promises as fs} from 'node:fs';\n\nexport default async function ({projectRoot}) {\n await Promise.all([\n fs.unlink(`${projectRoot}/.nycrc`),\n fs.rm(`${projectRoot}/.nyc_output`, {recursive: true, force: true})\n ]);\n\n return {\n dependencies: {\n javascript: {\n remove: ['nyc', '@istanbuljs/nyc-config-babel', 'babel-plugin-istanbul']\n }\n }\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, nycResults] = await Promise.all([\n scaffoldC8({projectRoot}),\n removeNyc({projectRoot})\n ]);\n\n return deepmerge.all([\n c8Results,\n nycResults,\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 {execa} from 'execa';\n\nexport default async function ({packageManager, dependencies}) {\n await execa(packageManager, ['remove', ...dependencies]);\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';\nimport remove from './remover.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 = [], remove: dependenciesToRemove = []} = {}} = dependencies;\n\n try {\n await install(production, PROD_DEPENDENCY_TYPE, projectRoot, packageManager);\n await install(development, DEV_DEPENDENCY_TYPE, projectRoot, packageManager);\n await remove({packageManager, dependencies: dependenciesToRemove});\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.4",
5
+ "version": "14.1.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",
@@ -85,7 +85,7 @@
85
85
  },
86
86
  "devDependencies": {
87
87
  "@cucumber/cucumber": "11.2.0",
88
- "@form8ion/commitlint-config": "2.0.3",
88
+ "@form8ion/commitlint-config": "2.0.4",
89
89
  "@form8ion/eslint-config": "7.0.12",
90
90
  "@form8ion/eslint-config-cucumber": "1.4.1",
91
91
  "@form8ion/eslint-config-mocha": "3.0.6",
@@ -103,16 +103,16 @@
103
103
  "js-yaml": "4.1.0",
104
104
  "lockfile-lint": "4.14.0",
105
105
  "ls-engines": "0.9.3",
106
- "mock-fs": "5.4.1",
106
+ "mock-fs": "5.5.0",
107
107
  "npm-run-all2": "7.0.2",
108
- "publint": "0.3.2",
108
+ "publint": "0.3.4",
109
109
  "remark-cli": "12.0.1",
110
110
  "remark-toc": "9.0.0",
111
111
  "remark-usage": "11.0.1",
112
112
  "rimraf": "6.0.1",
113
- "rollup": "4.32.1",
113
+ "rollup": "4.34.6",
114
114
  "rollup-plugin-auto-external": "2.0.0",
115
115
  "testdouble": "3.20.2",
116
- "vitest": "3.0.4"
116
+ "vitest": "3.0.5"
117
117
  }
118
118
  }