@form8ion/javascript 2.0.1 → 2.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.cjs.js +28 -31
- package/lib/index.cjs.js.map +1 -1
- package/lib/index.es.js +39 -42
- package/lib/index.es.js.map +1 -1
- package/package.json +5 -5
package/lib/index.cjs.js
CHANGED
|
@@ -62,14 +62,9 @@ function ownKeys(object, enumerableOnly) {
|
|
|
62
62
|
|
|
63
63
|
if (Object.getOwnPropertySymbols) {
|
|
64
64
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
keys.push.apply(keys, symbols);
|
|
65
|
+
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
66
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
67
|
+
})), keys.push.apply(keys, symbols);
|
|
73
68
|
}
|
|
74
69
|
|
|
75
70
|
return keys;
|
|
@@ -77,19 +72,12 @@ function ownKeys(object, enumerableOnly) {
|
|
|
77
72
|
|
|
78
73
|
function _objectSpread2(target) {
|
|
79
74
|
for (var i = 1; i < arguments.length; i++) {
|
|
80
|
-
var source = arguments[i]
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
} else if (Object.getOwnPropertyDescriptors) {
|
|
87
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
88
|
-
} else {
|
|
89
|
-
ownKeys(Object(source)).forEach(function (key) {
|
|
90
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
91
|
-
});
|
|
92
|
-
}
|
|
75
|
+
var source = null != arguments[i] ? arguments[i] : {};
|
|
76
|
+
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
77
|
+
_defineProperty(target, key, source[key]);
|
|
78
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
|
|
79
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
80
|
+
});
|
|
93
81
|
}
|
|
94
82
|
|
|
95
83
|
return target;
|
|
@@ -150,13 +138,15 @@ async function scaffoldC8 ({
|
|
|
150
138
|
async function scaffoldCoverage ({
|
|
151
139
|
projectRoot,
|
|
152
140
|
vcs,
|
|
153
|
-
visibility
|
|
141
|
+
visibility,
|
|
142
|
+
pathWithinParent
|
|
154
143
|
}) {
|
|
155
144
|
return deepmerge__default["default"](await scaffoldC8({
|
|
156
145
|
projectRoot
|
|
157
146
|
}), await codecov.scaffold({
|
|
158
147
|
vcs,
|
|
159
|
-
visibility
|
|
148
|
+
visibility,
|
|
149
|
+
pathWithinParent
|
|
160
150
|
}));
|
|
161
151
|
}
|
|
162
152
|
|
|
@@ -183,7 +173,8 @@ async function scaffoldUnitTesting ({
|
|
|
183
173
|
frameworks,
|
|
184
174
|
decisions,
|
|
185
175
|
visibility,
|
|
186
|
-
vcs
|
|
176
|
+
vcs,
|
|
177
|
+
pathWithinParent
|
|
187
178
|
}) {
|
|
188
179
|
const validatedFrameworks = javascriptCore.validateOptions(unitTestFrameworksSchema, frameworks);
|
|
189
180
|
const [framework, coverage] = await Promise.all([chooseFramework({
|
|
@@ -194,7 +185,8 @@ async function scaffoldUnitTesting ({
|
|
|
194
185
|
})), scaffoldCoverage({
|
|
195
186
|
projectRoot,
|
|
196
187
|
vcs,
|
|
197
|
-
visibility
|
|
188
|
+
visibility,
|
|
189
|
+
pathWithinParent
|
|
198
190
|
})]);
|
|
199
191
|
return deepmerge__default["default"].all([{
|
|
200
192
|
scripts: {
|
|
@@ -1171,7 +1163,8 @@ async function scaffoldTesting ({
|
|
|
1171
1163
|
vcs,
|
|
1172
1164
|
unitTestFrameworks,
|
|
1173
1165
|
decisions,
|
|
1174
|
-
dialect
|
|
1166
|
+
dialect,
|
|
1167
|
+
pathWithinParent
|
|
1175
1168
|
}) {
|
|
1176
1169
|
const unitResults = unit ? await scaffoldUnitTesting({
|
|
1177
1170
|
projectRoot,
|
|
@@ -1179,7 +1172,8 @@ async function scaffoldTesting ({
|
|
|
1179
1172
|
vcs,
|
|
1180
1173
|
frameworks: unitTestFrameworks,
|
|
1181
1174
|
decisions,
|
|
1182
|
-
dialect
|
|
1175
|
+
dialect,
|
|
1176
|
+
pathWithinParent
|
|
1183
1177
|
}) : {};
|
|
1184
1178
|
return deepmerge__default["default"]({
|
|
1185
1179
|
devDependencies: [...(unit || integration ? ['@travi/any'] : [])],
|
|
@@ -1328,7 +1322,8 @@ async function scaffoldVerification({
|
|
|
1328
1322
|
unitTestFrameworks,
|
|
1329
1323
|
decisions,
|
|
1330
1324
|
buildDirectory,
|
|
1331
|
-
eslintConfigs
|
|
1325
|
+
eslintConfigs,
|
|
1326
|
+
pathWithinParent
|
|
1332
1327
|
}) {
|
|
1333
1328
|
const [testingResults, huskyResults] = await Promise.all([scaffoldTesting({
|
|
1334
1329
|
projectRoot,
|
|
@@ -1337,7 +1332,8 @@ async function scaffoldVerification({
|
|
|
1337
1332
|
vcs,
|
|
1338
1333
|
unitTestFrameworks,
|
|
1339
1334
|
decisions,
|
|
1340
|
-
dialect
|
|
1335
|
+
dialect,
|
|
1336
|
+
pathWithinParent
|
|
1341
1337
|
}), husky.scaffold({
|
|
1342
1338
|
projectRoot,
|
|
1343
1339
|
packageManager
|
|
@@ -1361,7 +1357,7 @@ async function scaffoldVerification({
|
|
|
1361
1357
|
return deepmerge__default["default"].all([testingResults, lintingResults, huskyResults]);
|
|
1362
1358
|
}
|
|
1363
1359
|
|
|
1364
|
-
async function
|
|
1360
|
+
async function scaffolder (options) {
|
|
1365
1361
|
cliMessages.info('Initializing JavaScript project');
|
|
1366
1362
|
const {
|
|
1367
1363
|
projectRoot,
|
|
@@ -1427,6 +1423,7 @@ async function scaffold(options) {
|
|
|
1427
1423
|
tests,
|
|
1428
1424
|
unitTestFrameworks,
|
|
1429
1425
|
decisions,
|
|
1426
|
+
pathWithinParent,
|
|
1430
1427
|
buildDirectory: projectTypeResults.buildDirectory,
|
|
1431
1428
|
eslintConfigs: projectTypeResults.eslintConfigs
|
|
1432
1429
|
});
|
|
@@ -1507,6 +1504,6 @@ async function scaffold(options) {
|
|
|
1507
1504
|
const questionNames = _objectSpread2(_objectSpread2({}, languageScaffolderPrompts.questionNames), questionNames$1);
|
|
1508
1505
|
|
|
1509
1506
|
exports.questionNames = questionNames;
|
|
1510
|
-
exports.scaffold =
|
|
1507
|
+
exports.scaffold = scaffolder;
|
|
1511
1508
|
exports.scaffoldUnitTesting = scaffoldUnitTesting;
|
|
1512
1509
|
//# sourceMappingURL=index.cjs.js.map
|
package/lib/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/prompts/question-names.js","../src/coverage/c8.js","../src/coverage/scaffolder.js","../src/testing/options-schemas.js","../src/testing/prompt.js","../src/testing/unit.js","../src/options-validator.js","../third-party-wrappers/npm-conf.js","../src/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/dialects/babel.js","../src/dialects/typescript.js","../src/dialects/esm.js","../src/dialects/scaffolder.js","../src/config/npm.js","../src/documentation/generation-command.js","../src/documentation/scaffolder.js","../src/node-version/tasks.js","../src/node-version/scaffolder.js","../src/badges.js","../src/vcs-ignore.js","../src/package/details.js","../src/package/scaffolder.js","../src/package-name.js","../src/project-type/prompt.js","../src/project-type/package/documentation.js","../src/project-type/package/badges.js","../src/template-path.js","../src/project-type/package/build-details.js","../src/project-type/package/scaffolder.js","../src/project-type/application.js","../src/project-type/monorepo.js","../src/project-type/cli.js","../src/project-type/scaffolder.js","../src/verification/testing/scaffolder.js","../src/verification/linting/eslint.js","../src/verification/linting/remark.js","../src/verification/linting/ban-sensitive-files.js","../src/verification/linting/lockfile.js","../src/verification/linting/scaffolder.js","../src/verification/verifier.js","../src/scaffolder.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n UNIT_TEST_FRAMEWORK: 'unitTestFramework',\n NODE_VERSION_CATEGORY: 'nodeVersionCategory',\n PACKAGE_MANAGER: 'packageManager',\n PROJECT_TYPE: 'projectType',\n PROJECT_TYPE_CHOICE: 'projectTypeChoice',\n SHOULD_BE_SCOPED: 'shouldBeScoped',\n SCOPE: 'scope',\n AUTHOR_NAME: 'authorName',\n AUTHOR_EMAIL: 'authorEmail',\n AUTHOR_URL: 'authorUrl',\n HOST: 'host',\n CONFIGURE_LINTING: 'configureLint',\n DIALECT: 'dialect'\n};\n","import {promises} from 'fs';\n\nexport default async function ({projectRoot}) {\n await promises.writeFile(\n `${projectRoot}/.c8rc.json`,\n JSON.stringify({\n reporter: ['lcov', 'text-summary', 'html'],\n exclude: ['src/**/*-test.js', 'test/', 'thirdparty-wrappers/', 'vendor/']\n })\n );\n\n return {\n devDependencies: ['cross-env', 'c8'],\n vcsIgnore: {files: [], directories: ['/coverage/']},\n eslint: {ignore: {directories: ['/coverage/']}}\n };\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCodecov} from '@form8ion/codecov';\nimport scaffoldC8 from './c8';\n\nexport default async function ({projectRoot, vcs, visibility}) {\n return deepmerge(await scaffoldC8({projectRoot}), await scaffoldCodecov({vcs, visibility}));\n}\n","import * as joi from 'joi';\n\nexport const unitTestFrameworksSchema = joi.object().required().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n}));\n","import {Separator} from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({frameworks, decisions}) {\n if (!Object.keys(frameworks).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.UNIT_TEST_FRAMEWORK,\n type: 'list',\n message: 'Which type of unit testing framework should be used?',\n choices: [...Object.keys(frameworks), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.UNIT_TEST_FRAMEWORK];\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldFrameworkChoice, validateOptions} from '@form8ion/javascript-core';\nimport scaffoldCoverage from '../coverage/scaffolder';\nimport {unitTestFrameworksSchema} from './options-schemas';\nimport chooseFramework from './prompt';\n\nexport default async function ({projectRoot, frameworks, decisions, visibility, vcs}) {\n const validatedFrameworks = validateOptions(unitTestFrameworksSchema, frameworks);\n const [framework, coverage] = await Promise.all([\n chooseFramework({frameworks: validatedFrameworks, decisions})\n .then(chosenFramework => scaffoldFrameworkChoice(validatedFrameworks, chosenFramework, {projectRoot})),\n scaffoldCoverage({projectRoot, vcs, visibility})\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 * as joi from 'joi';\nimport hoek from '@hapi/hoek';\nimport {unitTestFrameworksSchema} from './testing/options-schemas';\n\nexport function validate(options) {\n const schema = joi.object().required()\n .keys({\n projectRoot: joi.string().required(),\n projectName: joi.string().regex(/^@\\w*\\//, {invert: true}).required(),\n visibility: joi.string().valid('Public', 'Private').required(),\n license: joi.string().required(),\n description: joi.string(),\n pathWithinParent: joi.string()\n })\n .keys({\n vcs: joi.object({\n host: joi.string().required(),\n owner: joi.string().required(),\n name: joi.string().required()\n })\n })\n .keys({\n configs: joi.object({\n eslint: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n typescript: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n commitlint: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n babelPreset: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n remark: joi.string()\n }).default({})\n })\n .keys({\n overrides: joi.object({\n npmAccount: joi.string(),\n author: joi.object({\n name: joi.string().required(),\n email: joi.string().email(),\n url: joi.string().uri()\n })\n }).default({})\n })\n .keys({\n ciServices: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n public: joi.boolean(),\n private: joi.boolean()\n })).default({})\n })\n .keys({\n hosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n projectTypes: joi.array().items(joi.string().valid('static', 'node')).default([])\n })).default({})\n })\n .keys({\n applicationTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n packageTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n monorepoTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n }))\n })\n .keys({\n decisions: joi.object()\n })\n .keys({unitTestFrameworks: unitTestFrameworksSchema})\n .keys({registries: joi.object().pattern(joi.string(), joi.string().uri())});\n const {error, value} = schema.validate(options);\n\n hoek.assert(!error, error);\n\n return value;\n}\n","const npmConf = require('npm-conf');\n\nexport default npmConf;\n","import {dialects} from '@form8ion/javascript-core';\n\nexport default function ({babelPreset, typescript}) {\n return [\n {name: 'Common JS (no transpilation)', value: dialects.COMMON_JS, short: 'cjs'},\n ...babelPreset ? [{name: 'Modern JavaScript (transpiled)', value: dialects.BABEL, short: 'modern'}] : [],\n {name: 'ESM-only (no transpilation)', value: dialects.ESM, short: 'esm'},\n ...typescript ? [{name: 'TypeScript', value: dialects.TYPESCRIPT, short: 'ts'}] : []\n ];\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport {questionNames as commonQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames} from './question-names';\n\nfunction projectIsPackage(answers) {\n return projectTypes.PACKAGE === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction projectIsCLI(answers) {\n return projectTypes.CLI === answers[questionNames.PROJECT_TYPE];\n}\n\nexport function projectIsApplication(answers) {\n return projectTypes.APPLICATION === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction packageShouldBeScoped(visibility, answers) {\n return 'Private' === visibility || answers[questionNames.SHOULD_BE_SCOPED];\n}\n\nfunction willBePublishedToNpm(answers) {\n return projectIsPackage(answers) || projectIsCLI(answers);\n}\n\nexport function shouldBeScopedPromptShouldBePresented(answers) {\n return willBePublishedToNpm(answers);\n}\n\nexport function scopePromptShouldBePresentedFactory(visibility) {\n return answers => willBePublishedToNpm(answers) && packageShouldBeScoped(visibility, answers);\n}\n\nexport function lintingPromptShouldBePresented({\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested\n}) {\n return !unitTested && !integrationTested;\n}\n","export function scope(visibility) {\n return input => {\n if (!input && 'Private' === visibility) {\n return 'Private packages must be scoped (https://docs.npmjs.com/private-modules/intro#setting-up-your-package)';\n }\n\n return true;\n };\n}\n","import {Separator} from 'inquirer';\nimport {packageManagers, projectTypes} from '@form8ion/javascript-core';\nimport {prompt as promptWithInquirer} from '@form8ion/overridable-prompts';\nimport {questionNames as commonQuestionNames, questions as commonQuestions} from '@travi/language-scaffolder-prompts';\nimport {warn} from '@travi/cli-messages';\nimport execa from '../../third-party-wrappers/execa';\nimport npmConfFactory from '../../third-party-wrappers/npm-conf';\nimport buildDialectChoices from '../dialects/prompt-choices';\nimport {\n lintingPromptShouldBePresented,\n projectIsApplication,\n scopePromptShouldBePresentedFactory,\n shouldBeScopedPromptShouldBePresented\n} from './conditionals';\nimport {questionNames} from './question-names';\nimport {scope as validateScope} from './validators';\n\nfunction authorQuestions({name, email, url}) {\n return [\n {\n name: questionNames.AUTHOR_NAME,\n message: 'What is the author\\'s name?',\n default: name\n },\n {\n name: questionNames.AUTHOR_EMAIL,\n message: 'What is the author\\'s email?',\n default: email\n },\n {\n name: questionNames.AUTHOR_URL,\n message: 'What is the author\\'s website url?',\n default: url\n }\n ];\n}\n\nexport async function prompt(\n {npmAccount, author},\n ciServices,\n hosts,\n visibility,\n vcs,\n decisions,\n configs,\n pathWithinParent\n) {\n const npmConf = npmConfFactory();\n\n let maybeLoggedInNpmUsername;\n try {\n maybeLoggedInNpmUsername = (await execa('npm', ['whoami'])).stdout;\n } catch (failedExecutionResult) {\n if (!decisions[questionNames.SCOPE]) {\n warn('No logged in user found with `npm whoami`. Login with `npm login` '\n + 'to use your npm account name as the package scope default.');\n }\n }\n\n const {\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested,\n [questionNames.PROJECT_TYPE]: projectType,\n [commonQuestionNames.CI_SERVICE]: ci,\n [questionNames.HOST]: chosenHost,\n [questionNames.SCOPE]: scope,\n [questionNames.NODE_VERSION_CATEGORY]: nodeVersionCategory,\n [questionNames.AUTHOR_NAME]: authorName,\n [questionNames.AUTHOR_EMAIL]: authorEmail,\n [questionNames.AUTHOR_URL]: authorUrl,\n [questionNames.CONFIGURE_LINTING]: configureLinting,\n [questionNames.PACKAGE_MANAGER]: packageManager,\n [questionNames.DIALECT]: dialect\n } = await promptWithInquirer([\n {\n name: questionNames.DIALECT,\n message: 'Which JavaScript dialect should this project follow?',\n type: 'list',\n choices: buildDialectChoices(configs),\n default: 'babel'\n },\n ...pathWithinParent ? [] : [{\n name: questionNames.NODE_VERSION_CATEGORY,\n message: 'What node.js version should be used?',\n type: 'list',\n choices: ['LTS', 'Latest'],\n default: 'LTS'\n }],\n {\n name: questionNames.PACKAGE_MANAGER,\n message: 'Which package manager will be used with this project?',\n type: 'list',\n choices: Object.values(packageManagers),\n default: packageManagers.NPM\n },\n {\n name: questionNames.PROJECT_TYPE,\n message: 'What type of JavaScript project is this?',\n type: 'list',\n choices: [...Object.values(projectTypes), new Separator(), 'Other'],\n default: projectTypes.PACKAGE\n },\n ...'Private' === visibility ? [] : [{\n name: questionNames.SHOULD_BE_SCOPED,\n message: 'Should this package be scoped?',\n type: 'confirm',\n when: shouldBeScopedPromptShouldBePresented,\n default: true\n }],\n {\n name: questionNames.SCOPE,\n message: 'What is the scope?',\n when: scopePromptShouldBePresentedFactory(visibility),\n validate: validateScope(visibility),\n default: npmAccount || maybeLoggedInNpmUsername\n },\n ...authorQuestions(author || {\n name: npmConf.get('init.author.name'),\n email: npmConf.get('init.author.email'),\n url: npmConf.get('init.author.url')\n }),\n ...commonQuestions(({vcs, ciServices, visibility, pathWithinParent})),\n {\n name: questionNames.CONFIGURE_LINTING,\n message: 'Will there be source code that should be linted?',\n type: 'confirm',\n when: lintingPromptShouldBePresented\n },\n {\n name: questionNames.HOST,\n type: 'list',\n message: 'Where will the application be hosted?',\n when: projectIsApplication,\n choices: [...Object.keys(hosts), new Separator(), 'Other']\n }\n ], decisions);\n\n return {\n tests: {unit: unitTested, integration: integrationTested},\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author: {name: authorName, email: authorEmail, url: authorUrl},\n configureLinting: false !== configureLinting,\n packageManager,\n dialect\n };\n}\n","import {promises as fsPromises} from 'fs';\n\nexport default async function ({projectRoot, preset, tests, buildDirectory}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await fsPromises.writeFile(\n `${projectRoot}/.babelrc`,\n JSON.stringify({\n presets: [preset.name],\n ignore: [`./${buildDirectory}/`],\n ...tests.unit && {env: {test: {plugins: ['istanbul']}}}\n })\n );\n\n return {\n devDependencies: [\n '@babel/register',\n preset.packageName,\n ...tests.unit ? ['babel-plugin-istanbul'] : []\n ],\n eslint: {}\n };\n}\n","import {promises as fs} from 'fs';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectType, projectRoot, testFilenamePattern}) {\n const eslintConfigs = ['typescript'];\n const shareableTsConfigPackage = `${config.scope}/tsconfig`;\n\n await fs.writeFile(\n `${projectRoot}/tsconfig.json`,\n JSON.stringify({\n $schema: 'https://json.schemastore.org/tsconfig',\n extends: shareableTsConfigPackage,\n compilerOptions: {\n rootDir: 'src',\n ...projectTypes.PACKAGE === projectType && {\n outDir: 'lib',\n declaration: true\n }\n },\n include: ['src/**/*.ts'],\n ...testFilenamePattern && {exclude: [testFilenamePattern]}\n })\n );\n\n return {\n eslint: {configs: eslintConfigs},\n eslintConfigs,\n devDependencies: ['typescript', shareableTsConfigPackage],\n packageProperties: {types: 'lib/index.d.ts'},\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","export default function () {\n return {packageProperties: {engines: {node: '>=12.20'}}};\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport scaffoldBabel from './babel';\nimport scaffoldTypescript from './typescript';\nimport scaffoldEsm from './esm';\n\nexport default function ({dialect, projectType, projectRoot, configs, tests, buildDirectory, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot, tests, buildDirectory});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n case dialects.ESM:\n return scaffoldEsm();\n default:\n return {eslint: {}};\n }\n}\n","import {promises as fs} from 'fs';\nimport {stringify} from 'ini';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nfunction projectWillNotBeConsumed(projectType) {\n return projectTypes.APPLICATION === projectType || projectTypes.CLI === projectType;\n}\n\nexport default async function ({projectRoot, projectType, registries}) {\n await fs.writeFile(\n `${projectRoot}/.npmrc`,\n stringify({\n 'update-notifier': false,\n 'engine-strict': true,\n ...projectWillNotBeConsumed(projectType) && {'save-exact': true},\n ...registries\n && Object.fromEntries(Object.entries(registries).map(([scope, url]) => ([`@${scope}:registry`, url])))\n })\n );\n\n return {scripts: {'lint:peer': 'npm ls >/dev/null'}};\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nexport default function (packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm run generate:md';\n if (packageManagers.YARN === packageManager) return 'yarn generate:md';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n","import buildGenerationCommand from './generation-command';\n\nexport default function ({projectTypeResults, packageManager}) {\n return {\n toc: `Run \\`${buildGenerationCommand(packageManager)}\\` to generate a table of contents`,\n ...projectTypeResults.documentation,\n contributing: `### Dependencies\n\n\\`\\`\\`sh\n$ nvm install\n$ ${packageManager} install\n\\`\\`\\`\n\n### Verification\n\n\\`\\`\\`sh\n$ ${packageManager} test\n\\`\\`\\``\n };\n}\n","import {info} from '@travi/cli-messages';\nimport execa from '../../third-party-wrappers/execa';\n\nexport async function determineLatestVersionOf(nodeVersionCategory) {\n info('Determining version of node', {level: 'secondary'});\n\n const {stdout: nvmLsOutput} = await execa(\n `. ~/.nvm/nvm.sh && nvm ls-remote${('LTS' === nodeVersionCategory) ? ' --lts' : ''}`,\n {shell: true}\n );\n\n const lsLines = nvmLsOutput.split('\\n');\n const lsLine = lsLines[lsLines.length - 2];\n\n return lsLine.match(/(v[0-9]+)\\.[0-9]+\\.[0-9]+/)[1];\n}\n\nexport function install(nodeVersionCategory) {\n info(`Installing ${nodeVersionCategory} version of node using nvm`, {level: 'secondary'});\n\n const subprocess = execa('. ~/.nvm/nvm.sh && nvm install', {shell: true});\n subprocess.stdout.pipe(process.stdout);\n return subprocess;\n}\n","import {promises as fsPromises} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport {determineLatestVersionOf, install as installNodeVersion} from './tasks';\n\nexport default async function ({projectRoot, nodeVersionCategory}) {\n if (!nodeVersionCategory) return undefined;\n\n const lowerCaseCategory = nodeVersionCategory.toLowerCase();\n info(`Configuring ${lowerCaseCategory} version of node`);\n\n const version = await determineLatestVersionOf(nodeVersionCategory);\n\n await fsPromises.writeFile(`${projectRoot}/.nvmrc`, version);\n\n await installNodeVersion(nodeVersionCategory);\n\n return version;\n}\n","import deepmerge from 'deepmerge';\n\nexport default function (contributors) {\n return deepmerge.all(contributors).badges;\n}\n","export default function (vcsIgnoreLists = {}) {\n return {\n files: vcsIgnoreLists.files || [],\n directories: ['/node_modules/', ...vcsIgnoreLists.directories || []]\n };\n}\n","import {dialects, projectTypes} from '@form8ion/javascript-core';\n\nfunction projectWillBeTested(scripts) {\n return Object.keys(scripts).find(scriptName => scriptName.startsWith('test:'));\n}\n\nfunction projectShouldBeBuiltForVerification(scripts) {\n return 'run-s build' === scripts['pregenerate:md'];\n}\n\nfunction defineScripts(scripts) {\n return {\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\n\nfunction defineVcsHostDetails(vcs, packageType, packageName, pathWithinParent) {\n return vcs && 'github' === vcs.host && {\n repository: pathWithinParent\n ? {\n type: 'git',\n url: `https://github.com/${vcs.owner}/${vcs.name}.git`,\n directory: pathWithinParent\n }\n : `${vcs.owner}/${vcs.name}`,\n bugs: `https://github.com/${vcs.owner}/${vcs.name}/issues`,\n homepage: (projectTypes.PACKAGE === packageType)\n ? `https://npm.im/${packageName}`\n : `https://github.com/${vcs.owner}/${vcs.name}#readme`\n };\n}\n\nexport default function ({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n scripts,\n packageProperties,\n pathWithinParent\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n ...packageProperties,\n ...defineVcsHostDetails(vcs, projectType, packageName, pathWithinParent),\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: defineScripts(scripts)\n };\n}\n","import {promises as fs} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport buildPackageDetails from './details';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n scripts,\n packageName,\n license,\n vcs,\n author,\n description,\n packageProperties,\n pathWithinParent\n}) {\n info('Configuring package.json');\n\n const packageData = await buildPackageDetails({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n scripts,\n packageProperties,\n pathWithinParent\n });\n\n await fs.writeFile(`${projectRoot}/package.json`, JSON.stringify(packageData));\n\n return {homepage: packageData.homepage};\n}\n","import {EOL} from 'os';\nimport validatePackageName from '../third-party-wrappers/validate-npm-package-name';\n\nexport default function (projectName, scope) {\n const name = `${scope ? `@${scope}/` : ''}${projectName}`;\n\n const {validForNewPackages, errors} = validatePackageName(name);\n\n if (validForNewPackages) return name;\n if (1 === errors.length && errors.includes('name cannot start with a period')) return projectName.slice(1);\n\n throw new Error(`The package name ${name} is invalid:${EOL}\\t* ${errors.join(`${EOL}\\t* `)}`);\n}\n","import {Separator} from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({types, projectType, decisions}) {\n if (!Object.keys(types).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PROJECT_TYPE_CHOICE,\n type: 'list',\n message: `What type of ${projectType} is this?`,\n choices: [...Object.keys(types), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PROJECT_TYPE_CHOICE];\n}\n","import {packageManagers} from '@form8ion/javascript-core';\nimport buildGenerationCommand from '../../documentation/generation-command';\n\nfunction getInstallationCommand(packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm install';\n if (packageManagers.YARN === packageManager) return 'yarn add';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n\nexport default function ({scope, packageName, packageManager, visibility}) {\n return {\n usage: `### Installation\n${'Private' === visibility ? `\n:warning: this is a private package, so you will need to use an npm token with\naccess to private packages under \\`@${scope}\\`\n` : ''\n}\n\\`\\`\\`sh\n$ ${getInstallationCommand(packageManager)} ${packageName}\n\\`\\`\\`\n\n### Example\n\nrun \\`${buildGenerationCommand(packageManager)}\\` to inject the usage example`\n };\n}\n","export default function (packageName, visibility) {\n return {\n consumer: {\n ...'Public' === visibility && {\n npm: {\n img: `https://img.shields.io/npm/v/${packageName}.svg`,\n text: 'npm',\n link: `https://www.npmjs.com/package/${packageName}`\n }\n }\n },\n status: {}\n };\n}\n","import {resolve} from 'path';\n\nexport default function (fileName) {\n return resolve(__dirname, '..', 'templates', fileName);\n}\n","import {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport mustache from 'mustache';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport camelcase from '../../../third-party-wrappers/camelcase';\nimport mkdir from '../../../third-party-wrappers/make-dir';\nimport touch from '../../../third-party-wrappers/touch';\nimport determinePathToTemplateFile from '../../template-path';\n\nconst defaultBuildDirectory = 'lib';\n\nasync function createExample(projectRoot, projectName) {\n return fs.writeFile(\n `${projectRoot}/example.js`,\n mustache.render(\n await fs.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),\n {projectName: camelcase(projectName)}\n )\n );\n}\n\nasync function buildDetailsForCommonJsProject({projectRoot, projectName}) {\n await Promise.all([\n touch(`${projectRoot}/index.js`),\n fs.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\\n`)\n ]);\n\n return {};\n}\n\nexport default async function ({projectRoot, projectName, visibility, packageName, dialect}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName});\n\n const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);\n const [rollupResults] = await Promise.all([\n scaffoldRollup({projectRoot, dialect, projectType: projectTypes.PACKAGE}),\n await createExample(projectRoot, projectName),\n touch(`${pathToCreatedSrcDirectory}/index.js`)\n ]);\n\n return deepmerge(\n rollupResults,\n {\n devDependencies: ['rimraf'],\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n vcsIgnore: {directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: {\n consumer: {\n ...'Public' === visibility && {\n runkit: {\n img: `https://badge.runkitcdn.com/${packageName}.svg`,\n text: `Try ${packageName} on RunKit`,\n link: `https://npm.runkit.com/${packageName}`\n }\n }\n }\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {dialects, scaffoldChoice as scaffoldChosenPackageType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport choosePackageType from '../prompt';\nimport scaffoldPackageDocumentation from './documentation';\nimport defineBadges from './badges';\nimport buildDetails from './build-details';\n\nexport default async function ({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageTypes,\n tests,\n decisions,\n dialect\n}) {\n info('Scaffolding Package Details');\n\n const detailsForBuild = await buildDetails({projectRoot, projectName, visibility, packageName, dialect});\n const details = {\n ...dialects.BABEL === dialect && {\n packageProperties: {\n main: 'lib/index.cjs.js',\n module: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.ESM === dialect && {\n packageProperties: {\n main: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.TYPESCRIPT === dialect && {\n packageProperties: {\n main: 'lib/index.cjs.js',\n module: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.COMMON_JS === dialect && {\n packageProperties: {files: ['index.js']},\n ...detailsForBuild\n }\n };\n\n const chosenType = await choosePackageType({types: packageTypes, projectType: 'package', decisions});\n const results = await scaffoldChosenPackageType(\n packageTypes,\n chosenType,\n {projectRoot, projectName, packageName, tests, scope}\n );\n\n return deepmerge.all([\n {\n packageProperties: {\n files: ['example.js'],\n publishConfig: {access: 'Public' === visibility ? 'public' : 'restricted'},\n ...'Public' === visibility && {runkitExampleFilename: './example.js'}\n },\n documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager}),\n eslintConfigs: [],\n nextSteps: [\n {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},\n {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}\n ],\n scripts: {},\n badges: defineBadges(packageName, visibility)\n },\n results,\n details\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldChosenApplicationType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport chooseApplicationType from './prompt';\n\nconst defaultBuildDirectory = 'lib';\n\nexport default async function ({\n applicationTypes,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n tests,\n decisions\n}) {\n info('Scaffolding Application Details');\n\n const chosenType = await chooseApplicationType({types: applicationTypes, projectType: 'application', decisions});\n const results = await scaffoldChosenApplicationType(\n applicationTypes,\n chosenType,\n {projectRoot, projectName, packageName, packageManager, tests}\n );\n\n const buildDirectory = results.buildDirectory || defaultBuildDirectory;\n\n return deepmerge(\n {\n scripts: {\n clean: `rimraf ./${buildDirectory}`,\n start: `node ./${buildDirectory}/index.js`,\n prebuild: 'run-s clean'\n },\n dependencies: [],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},\n buildDirectory,\n packageProperties: {private: true},\n eslintConfigs: [],\n nextSteps: []\n },\n results\n );\n}\n","import deepmerge from 'deepmerge';\nimport {projectTypes, scaffoldChoice as scaffoldChosenApplicationType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport chooseApplicationType from './prompt';\n\nexport default async function ({monorepoTypes, projectRoot, packageManager, decisions}) {\n info('Scaffolding Monorepo Details');\n\n const chosenType = await chooseApplicationType({types: monorepoTypes, projectType: projectTypes.MONOREPO, decisions});\n const results = await scaffoldChosenApplicationType(monorepoTypes, chosenType, {projectRoot, packageManager});\n\n return deepmerge(\n {\n eslintConfigs: [],\n packageProperties: {private: true},\n nextSteps: [{\n summary: 'Add packages to your new monorepo',\n description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'\n + ' to scaffold new packages into your new monorepo'\n }]\n },\n results\n );\n}\n","import deepmerge from 'deepmerge';\nimport {projectTypes} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport defineBadges from './package/badges';\n\nconst defaultBuildDirectory = 'bin';\n\nexport default async function ({packageName, visibility, projectRoot, dialect}) {\n const rollupResults = await scaffoldRollup({projectRoot, dialect, projectType: projectTypes.CLI});\n\n return deepmerge(\n rollupResults,\n {\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n dependencies: ['update-notifier'],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: defineBadges(packageName, visibility),\n packageProperties: {\n version: '0.0.0-semantically-released',\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {access: 'Public' === visibility ? 'public' : 'restricted'}\n },\n eslintConfigs: [],\n nextSteps: []\n }\n );\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport scaffoldPackageType from './package';\nimport scaffoldApplicationType from './application';\nimport scaffoldMonorepoType from './monorepo';\nimport scaffoldCliType from './cli';\n\nexport default async function ({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageTypes,\n tests,\n vcs,\n decisions,\n dialect\n });\n case projectTypes.APPLICATION:\n return scaffoldApplicationType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n applicationTypes,\n tests,\n decisions\n });\n case projectTypes.CLI:\n return scaffoldCliType({packageName, visibility, projectRoot, dialect});\n case projectTypes.MONOREPO:\n return scaffoldMonorepoType({monorepoTypes, projectRoot, packageManager, decisions});\n case 'Other':\n return {\n eslintConfigs: []\n };\n default:\n throw new Error(`The project-type of ${projectType} is invalid`);\n }\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldUnitTesting from '../../testing/unit';\n\nexport default async function ({\n projectRoot,\n visibility,\n tests: {unit, integration},\n vcs,\n unitTestFrameworks,\n decisions,\n dialect\n}) {\n const unitResults = unit\n ? await scaffoldUnitTesting({projectRoot, visibility, vcs, frameworks: unitTestFrameworks, decisions, dialect})\n : {};\n\n return deepmerge(\n {devDependencies: [...(unit || integration) ? ['@travi/any'] : []], eslint: [], eslintConfigs: []},\n unitResults\n );\n}\n","import {scaffold} from '@form8ion/eslint';\nimport deepmerge from 'deepmerge';\n\nexport default async function ({config, projectRoot, buildDirectory, additionalConfiguration}) {\n const {scope} = config;\n const {ignore} = additionalConfiguration;\n const ignores = deepmerge(ignore, {directories: [`/${buildDirectory}/`]});\n\n return scaffold({scope, projectRoot, ignore: {directories: ignores.directories}});\n}\n","import {promises as fsPromises} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectRoot, projectType, vcs, dialect}) {\n await fsPromises.writeFile(\n `${projectRoot}/.remarkrc.json`,\n JSON.stringify({\n settings: {\n listItemIndent: 1,\n emphasis: '_',\n strong: '_',\n bullet: '*',\n incrementListMarker: false\n },\n plugins: [\n config,\n ['remark-toc', {tight: true}],\n ...projectTypes.PACKAGE === projectType ? [['remark-usage', {heading: 'example'}]] : [],\n ...!vcs ? [['validate-links', {repository: false}]] : []\n ]\n })\n );\n\n return deepmerge(\n {\n devDependencies: [config, 'remark-cli', 'remark-toc'],\n scripts: {\n 'lint:md': 'remark . --frail',\n 'generate:md': 'remark . --output'\n }\n },\n {\n ...projectTypes.PACKAGE === projectType && {\n devDependencies: ['remark-usage'],\n ...dialects.COMMON_JS !== dialect && {scripts: {'pregenerate:md': 'run-s build'}}\n }\n }\n );\n}\n","export default function () {\n return {scripts: {'lint:sensitive': 'ban'}, devDependencies: ['ban-sensitive-files']};\n}\n","import {promises as fs} from 'fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nfunction determineLockfilePathFor(packageManager) {\n if (packageManagers.NPM === packageManager) return 'package-lock.json';\n if (packageManagers.YARN === packageManager) return 'yarn.lock';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n\nexport default async function ({projectRoot, packageManager, registries}) {\n await fs.writeFile(\n `${projectRoot}/.lockfile-lintrc.json`,\n JSON.stringify({\n path: determineLockfilePathFor(packageManager),\n type: packageManager,\n 'validate-https': true,\n 'allowed-hosts': [packageManager, ...registries ? Object.values(registries) : []]\n })\n );\n\n return {\n devDependencies: ['lockfile-lint'],\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldEslint from './eslint';\nimport scaffoldRemark from './remark';\nimport scaffoldBanSensitiveFiles from './ban-sensitive-files';\nimport scaffoldLockfileLint from './lockfile';\n\nexport default async function ({\n projectRoot,\n projectType,\n packageManager,\n dialect,\n registries,\n configs,\n vcs,\n configureLinting,\n buildDirectory,\n eslint\n}) {\n return deepmerge.all(await Promise.all([\n scaffoldLockfileLint({projectRoot, packageManager, registries}),\n configs.eslint && configureLinting\n ? scaffoldEslint({\n projectRoot,\n config: configs.eslint,\n buildDirectory,\n additionalConfiguration: eslint\n })\n : {},\n scaffoldRemark({\n projectRoot,\n projectType,\n dialect,\n vcs,\n config: configs.remark || '@form8ion/remark-lint-preset'\n }),\n vcs ? scaffoldBanSensitiveFiles() : {}\n ]));\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldHusky} from '@form8ion/husky';\n\nimport scaffoldTesting from './testing';\nimport scaffoldLinting from './linting';\n\nexport async function scaffoldVerification({\n projectRoot,\n projectType,\n dialect,\n visibility,\n packageManager,\n vcs,\n configs,\n registries,\n configureLinting,\n tests,\n unitTestFrameworks,\n decisions,\n buildDirectory,\n eslintConfigs\n}) {\n const [testingResults, huskyResults] = await Promise.all([\n scaffoldTesting({\n projectRoot,\n tests,\n visibility,\n vcs,\n unitTestFrameworks,\n decisions,\n dialect\n }),\n scaffoldHusky({projectRoot, packageManager})\n ]);\n\n const lintingResults = await scaffoldLinting({\n projectRoot,\n projectType,\n packageManager,\n dialect,\n configs,\n registries,\n vcs,\n configureLinting,\n buildDirectory,\n eslint: deepmerge.all([testingResults.eslint, {configs: testingResults.eslintConfigs}, {configs: eslintConfigs}])\n });\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {scaffoldChoice} from '@form8ion/javascript-core';\nimport {lift} from '@form8ion/lift-javascript';\nimport {scaffold as scaffoldCommitConvention} from '@form8ion/commit-convention';\n\nimport {validate} from './options-validator';\nimport {prompt} from './prompts/questions';\nimport scaffoldDialect from './dialects';\nimport scaffoldNpmConfig from './config/npm';\nimport scaffoldDocumentation from './documentation';\nimport scaffoldNodeVersion from './node-version';\nimport buildBadgesDetails from './badges';\nimport buildVcsIgnoreLists from './vcs-ignore';\nimport scaffoldPackage from './package';\nimport buildPackageName from './package-name';\nimport scaffoldProjectType from './project-type';\nimport buildDocumentationCommand from './documentation/generation-command';\nimport {scaffoldVerification} from './verification';\n\nexport async function scaffold(options) {\n info('Initializing JavaScript project');\n\n const {\n projectRoot,\n projectName,\n visibility,\n license,\n vcs,\n description,\n configs,\n overrides,\n ciServices,\n hosts,\n applicationTypes,\n packageTypes,\n monorepoTypes,\n decisions,\n unitTestFrameworks,\n pathWithinParent,\n registries\n } = validate(options);\n\n const {\n tests,\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author,\n configureLinting,\n packageManager,\n dialect\n } = await prompt(overrides, ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);\n\n info('Writing project files', {level: 'secondary'});\n\n const packageName = buildPackageName(projectName, scope);\n const projectTypeResults = await scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect\n });\n const verificationResults = await scaffoldVerification({\n projectRoot,\n projectType,\n dialect,\n packageManager,\n visibility,\n vcs,\n configs,\n registries,\n configureLinting,\n tests,\n unitTestFrameworks,\n decisions,\n buildDirectory: projectTypeResults.buildDirectory,\n eslintConfigs: projectTypeResults.eslintConfigs\n });\n const [nodeVersion, npmResults, dialectResults] = await Promise.all([\n scaffoldNodeVersion({projectRoot, nodeVersionCategory}),\n scaffoldNpmConfig({projectType, projectRoot, registries}),\n scaffoldDialect({\n dialect,\n configs,\n projectRoot,\n projectType,\n tests,\n buildDirectory: projectTypeResults.buildDirectory,\n testFilenamePattern: verificationResults.testFilenamePattern\n })\n ]);\n const mergedContributions = deepmerge.all([\n ...(await Promise.all([\n scaffoldChoice(\n hosts,\n chosenHost,\n {buildDirectory: `./${projectTypeResults.buildDirectory}`, projectRoot, projectName, nodeVersion}\n ),\n scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),\n scaffoldCommitConvention({projectRoot, projectType, configs, pathWithinParent})\n ])),\n projectTypeResults,\n verificationResults,\n npmResults,\n dialectResults\n ]);\n\n const {homepage: projectHomepage} = await scaffoldPackage({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n packageProperties: mergedContributions.packageProperties,\n scripts: mergedContributions.scripts,\n pathWithinParent\n });\n\n const liftResults = await lift({\n results: deepmerge({devDependencies: ['npm-run-all'], packageManager}, mergedContributions),\n projectRoot,\n configs\n });\n\n return {\n badges: buildBadgesDetails([mergedContributions, liftResults]),\n documentation: scaffoldDocumentation({projectTypeResults, packageManager}),\n tags: projectTypeResults.tags,\n vcsIgnore: buildVcsIgnoreLists(mergedContributions.vcsIgnore),\n verificationCommand: `${buildDocumentationCommand(packageManager)} && ${packageManager} test`,\n projectDetails: {...projectHomepage && {homepage: projectHomepage}},\n nextSteps: mergedContributions.nextSteps\n };\n}\n","import {questionNames as languageScaffolderPromptsQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames as jsScaffolderQuestionNames} from './prompts/question-names';\n\nexport {default as scaffoldUnitTesting} from './testing/unit';\nexport * from './scaffolder';\nexport const questionNames = {...languageScaffolderPromptsQuestionNames, ...jsScaffolderQuestionNames};\n"],"names":["questionNames","UNIT_TEST_FRAMEWORK","NODE_VERSION_CATEGORY","PACKAGE_MANAGER","PROJECT_TYPE","PROJECT_TYPE_CHOICE","SHOULD_BE_SCOPED","SCOPE","AUTHOR_NAME","AUTHOR_EMAIL","AUTHOR_URL","HOST","CONFIGURE_LINTING","DIALECT","projectRoot","promises","writeFile","JSON","stringify","reporter","exclude","devDependencies","vcsIgnore","files","directories","eslint","ignore","vcs","visibility","deepmerge","scaffoldC8","scaffoldCodecov","unitTestFrameworksSchema","joi","object","required","pattern","scaffolder","func","arity","frameworks","decisions","Object","keys","length","answers","prompt","name","type","message","choices","Separator","validatedFrameworks","validateOptions","framework","coverage","Promise","all","chooseFramework","then","chosenFramework","scaffoldFrameworkChoice","scaffoldCoverage","scripts","validate","options","schema","string","projectName","regex","invert","valid","license","description","pathWithinParent","host","owner","configs","scope","typescript","commitlint","packageName","babelPreset","remark","default","overrides","npmAccount","author","email","url","uri","ciServices","public","boolean","private","hosts","projectTypes","array","items","applicationTypes","packageTypes","monorepoTypes","unitTestFrameworks","registries","error","value","hoek","assert","npmConf","require","dialects","COMMON_JS","short","BABEL","ESM","TYPESCRIPT","projectIsPackage","PACKAGE","projectIsCLI","CLI","projectIsApplication","APPLICATION","packageShouldBeScoped","willBePublishedToNpm","shouldBeScopedPromptShouldBePresented","scopePromptShouldBePresentedFactory","lintingPromptShouldBePresented","commonQuestionNames","UNIT_TESTS","unitTested","INTEGRATION_TESTS","integrationTested","input","authorQuestions","npmConfFactory","maybeLoggedInNpmUsername","execa","stdout","failedExecutionResult","warn","projectType","CI_SERVICE","ci","chosenHost","nodeVersionCategory","authorName","authorEmail","authorUrl","configureLinting","packageManager","dialect","promptWithInquirer","buildDialectChoices","values","packageManagers","NPM","when","validateScope","get","commonQuestions","tests","unit","integration","preset","buildDirectory","Error","fsPromises","presets","env","test","plugins","config","testFilenamePattern","eslintConfigs","shareableTsConfigPackage","fs","$schema","extends","compilerOptions","rootDir","outDir","declaration","include","packageProperties","types","engines","node","scaffoldBabel","scaffoldTypescript","scaffoldEsm","projectWillNotBeConsumed","fromEntries","entries","map","YARN","join","projectTypeResults","toc","buildGenerationCommand","documentation","contributing","determineLatestVersionOf","info","level","nvmLsOutput","shell","lsLines","split","lsLine","match","install","subprocess","pipe","process","undefined","lowerCaseCategory","toLowerCase","version","installNodeVersion","contributors","badges","vcsIgnoreLists","projectWillBeTested","find","scriptName","startsWith","projectShouldBeBuiltForVerification","defineScripts","defineVcsHostDetails","packageType","repository","directory","bugs","homepage","packageData","buildPackageDetails","validForNewPackages","errors","validatePackageName","includes","slice","EOL","getInstallationCommand","usage","consumer","npm","img","text","link","status","fileName","resolve","__dirname","defaultBuildDirectory","createExample","mustache","render","readFile","determinePathToTemplateFile","camelcase","buildDetailsForCommonJsProject","touch","pathToCreatedSrcDirectory","mkdir","rollupResults","scaffoldRollup","clean","prebuild","build","prepack","runkit","detailsForBuild","buildDetails","details","main","module","sideEffects","chosenType","choosePackageType","results","scaffoldChosenPackageType","publishConfig","access","runkitExampleFilename","scaffoldPackageDocumentation","nextSteps","summary","defineBadges","chooseApplicationType","scaffoldChosenApplicationType","start","dependencies","MONOREPO","bin","scaffoldPackageType","scaffoldApplicationType","scaffoldCliType","scaffoldMonorepoType","unitResults","scaffoldUnitTesting","additionalConfiguration","ignores","scaffold","settings","listItemIndent","emphasis","strong","bullet","incrementListMarker","tight","heading","determineLockfilePathFor","path","scaffoldLockfileLint","scaffoldEslint","scaffoldRemark","scaffoldBanSensitiveFiles","scaffoldVerification","testingResults","huskyResults","scaffoldTesting","scaffoldHusky","lintingResults","scaffoldLinting","buildPackageName","scaffoldProjectType","verificationResults","nodeVersion","npmResults","dialectResults","scaffoldNodeVersion","scaffoldNpmConfig","scaffoldDialect","mergedContributions","scaffoldChoice","scaffoldCommitConvention","projectHomepage","scaffoldPackage","liftResults","lift","buildBadgesDetails","scaffoldDocumentation","tags","buildVcsIgnoreLists","verificationCommand","buildDocumentationCommand","projectDetails","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/prompts/question-names.js","../src/coverage/c8.js","../src/coverage/scaffolder.js","../src/testing/options-schemas.js","../src/testing/prompt.js","../src/testing/unit.js","../src/options-validator.js","../thirdparty-wrappers/npm-conf.js","../src/scaffolder/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/scaffolder/dialects/babel.js","../src/scaffolder/dialects/typescript.js","../src/scaffolder/dialects/esm.js","../src/scaffolder/dialects/scaffolder.js","../src/config/npm.js","../src/documentation/generation-command.js","../src/documentation/scaffolder.js","../src/node-version/tasks.js","../src/node-version/scaffolder.js","../src/badges.js","../src/vcs-ignore.js","../src/scaffolder/package/details.js","../src/scaffolder/package/scaffolder.js","../src/package-name.js","../src/scaffolder/project-type/prompt.js","../src/scaffolder/project-type/package/documentation.js","../src/scaffolder/project-type/package/badges.js","../src/template-path.js","../src/scaffolder/project-type/package/build-details.js","../src/scaffolder/project-type/package/scaffolder.js","../src/scaffolder/project-type/application.js","../src/scaffolder/project-type/monorepo.js","../src/scaffolder/project-type/cli.js","../src/scaffolder/project-type/scaffolder.js","../src/scaffolder/verification/testing/scaffolder.js","../src/scaffolder/verification/linting/eslint.js","../src/scaffolder/verification/linting/remark.js","../src/scaffolder/verification/linting/ban-sensitive-files.js","../src/scaffolder/verification/linting/lockfile.js","../src/scaffolder/verification/linting/scaffolder.js","../src/scaffolder/verification/verifier.js","../src/scaffolder/scaffolder.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n UNIT_TEST_FRAMEWORK: 'unitTestFramework',\n NODE_VERSION_CATEGORY: 'nodeVersionCategory',\n PACKAGE_MANAGER: 'packageManager',\n PROJECT_TYPE: 'projectType',\n PROJECT_TYPE_CHOICE: 'projectTypeChoice',\n SHOULD_BE_SCOPED: 'shouldBeScoped',\n SCOPE: 'scope',\n AUTHOR_NAME: 'authorName',\n AUTHOR_EMAIL: 'authorEmail',\n AUTHOR_URL: 'authorUrl',\n HOST: 'host',\n CONFIGURE_LINTING: 'configureLint',\n DIALECT: 'dialect'\n};\n","import {promises} from 'fs';\n\nexport default async function ({projectRoot}) {\n await promises.writeFile(\n `${projectRoot}/.c8rc.json`,\n JSON.stringify({\n reporter: ['lcov', 'text-summary', 'html'],\n exclude: ['src/**/*-test.js', 'test/', 'thirdparty-wrappers/', 'vendor/']\n })\n );\n\n return {\n devDependencies: ['cross-env', 'c8'],\n vcsIgnore: {files: [], directories: ['/coverage/']},\n eslint: {ignore: {directories: ['/coverage/']}}\n };\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCodecov} from '@form8ion/codecov';\nimport scaffoldC8 from './c8';\n\nexport default async function ({projectRoot, vcs, visibility, pathWithinParent}) {\n return deepmerge(await scaffoldC8({projectRoot}), await scaffoldCodecov({vcs, visibility, pathWithinParent}));\n}\n","import * as joi from 'joi';\n\nexport const unitTestFrameworksSchema = joi.object().required().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n}));\n","import {Separator} from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({frameworks, decisions}) {\n if (!Object.keys(frameworks).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.UNIT_TEST_FRAMEWORK,\n type: 'list',\n message: 'Which type of unit testing framework should be used?',\n choices: [...Object.keys(frameworks), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.UNIT_TEST_FRAMEWORK];\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldFrameworkChoice, validateOptions} from '@form8ion/javascript-core';\nimport scaffoldCoverage from '../coverage/scaffolder';\nimport {unitTestFrameworksSchema} from './options-schemas';\nimport chooseFramework from './prompt';\n\nexport default async function ({projectRoot, frameworks, decisions, visibility, vcs, pathWithinParent}) {\n const validatedFrameworks = validateOptions(unitTestFrameworksSchema, frameworks);\n const [framework, coverage] = await Promise.all([\n chooseFramework({frameworks: validatedFrameworks, decisions})\n .then(chosenFramework => scaffoldFrameworkChoice(validatedFrameworks, chosenFramework, {projectRoot})),\n scaffoldCoverage({projectRoot, vcs, visibility, pathWithinParent})\n ]);\n\n return deepmerge.all([\n {scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'}},\n framework,\n coverage\n ]);\n}\n","import * as joi from 'joi';\nimport hoek from '@hapi/hoek';\nimport {unitTestFrameworksSchema} from './testing/options-schemas';\n\nexport function validate(options) {\n const schema = joi.object().required()\n .keys({\n projectRoot: joi.string().required(),\n projectName: joi.string().regex(/^@\\w*\\//, {invert: true}).required(),\n visibility: joi.string().valid('Public', 'Private').required(),\n license: joi.string().required(),\n description: joi.string(),\n pathWithinParent: joi.string()\n })\n .keys({\n vcs: joi.object({\n host: joi.string().required(),\n owner: joi.string().required(),\n name: joi.string().required()\n })\n })\n .keys({\n configs: joi.object({\n eslint: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n typescript: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n commitlint: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n babelPreset: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n remark: joi.string()\n }).default({})\n })\n .keys({\n overrides: joi.object({\n npmAccount: joi.string(),\n author: joi.object({\n name: joi.string().required(),\n email: joi.string().email(),\n url: joi.string().uri()\n })\n }).default({})\n })\n .keys({\n ciServices: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n public: joi.boolean(),\n private: joi.boolean()\n })).default({})\n })\n .keys({\n hosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n projectTypes: joi.array().items(joi.string().valid('static', 'node')).default([])\n })).default({})\n })\n .keys({\n applicationTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n packageTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n monorepoTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n }))\n })\n .keys({\n decisions: joi.object()\n })\n .keys({unitTestFrameworks: unitTestFrameworksSchema})\n .keys({registries: joi.object().pattern(joi.string(), joi.string().uri())});\n const {error, value} = schema.validate(options);\n\n hoek.assert(!error, error);\n\n return value;\n}\n","const npmConf = require('npm-conf');\n\nexport default npmConf;\n","import {dialects} from '@form8ion/javascript-core';\n\nexport default function ({babelPreset, typescript}) {\n return [\n {name: 'Common JS (no transpilation)', value: dialects.COMMON_JS, short: 'cjs'},\n ...babelPreset ? [{name: 'Modern JavaScript (transpiled)', value: dialects.BABEL, short: 'modern'}] : [],\n {name: 'ESM-only (no transpilation)', value: dialects.ESM, short: 'esm'},\n ...typescript ? [{name: 'TypeScript', value: dialects.TYPESCRIPT, short: 'ts'}] : []\n ];\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport {questionNames as commonQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames} from './question-names';\n\nfunction projectIsPackage(answers) {\n return projectTypes.PACKAGE === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction projectIsCLI(answers) {\n return projectTypes.CLI === answers[questionNames.PROJECT_TYPE];\n}\n\nexport function projectIsApplication(answers) {\n return projectTypes.APPLICATION === answers[questionNames.PROJECT_TYPE];\n}\n\nfunction packageShouldBeScoped(visibility, answers) {\n return 'Private' === visibility || answers[questionNames.SHOULD_BE_SCOPED];\n}\n\nfunction willBePublishedToNpm(answers) {\n return projectIsPackage(answers) || projectIsCLI(answers);\n}\n\nexport function shouldBeScopedPromptShouldBePresented(answers) {\n return willBePublishedToNpm(answers);\n}\n\nexport function scopePromptShouldBePresentedFactory(visibility) {\n return answers => willBePublishedToNpm(answers) && packageShouldBeScoped(visibility, answers);\n}\n\nexport function lintingPromptShouldBePresented({\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested\n}) {\n return !unitTested && !integrationTested;\n}\n","export function scope(visibility) {\n return input => {\n if (!input && 'Private' === visibility) {\n return 'Private packages must be scoped (https://docs.npmjs.com/private-modules/intro#setting-up-your-package)';\n }\n\n return true;\n };\n}\n","import {Separator} from 'inquirer';\nimport {packageManagers, projectTypes} from '@form8ion/javascript-core';\nimport {prompt as promptWithInquirer} from '@form8ion/overridable-prompts';\nimport {questionNames as commonQuestionNames, questions as commonQuestions} from '@travi/language-scaffolder-prompts';\nimport {warn} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\nimport npmConfFactory from '../../thirdparty-wrappers/npm-conf';\nimport buildDialectChoices from '../scaffolder/dialects/prompt-choices';\nimport {\n lintingPromptShouldBePresented,\n projectIsApplication,\n scopePromptShouldBePresentedFactory,\n shouldBeScopedPromptShouldBePresented\n} from './conditionals';\nimport {questionNames} from './question-names';\nimport {scope as validateScope} from './validators';\n\nfunction authorQuestions({name, email, url}) {\n return [\n {\n name: questionNames.AUTHOR_NAME,\n message: 'What is the author\\'s name?',\n default: name\n },\n {\n name: questionNames.AUTHOR_EMAIL,\n message: 'What is the author\\'s email?',\n default: email\n },\n {\n name: questionNames.AUTHOR_URL,\n message: 'What is the author\\'s website url?',\n default: url\n }\n ];\n}\n\nexport async function prompt(\n {npmAccount, author},\n ciServices,\n hosts,\n visibility,\n vcs,\n decisions,\n configs,\n pathWithinParent\n) {\n const npmConf = npmConfFactory();\n\n let maybeLoggedInNpmUsername;\n try {\n maybeLoggedInNpmUsername = (await execa('npm', ['whoami'])).stdout;\n } catch (failedExecutionResult) {\n if (!decisions[questionNames.SCOPE]) {\n warn('No logged in user found with `npm whoami`. Login with `npm login` '\n + 'to use your npm account name as the package scope default.');\n }\n }\n\n const {\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested,\n [questionNames.PROJECT_TYPE]: projectType,\n [commonQuestionNames.CI_SERVICE]: ci,\n [questionNames.HOST]: chosenHost,\n [questionNames.SCOPE]: scope,\n [questionNames.NODE_VERSION_CATEGORY]: nodeVersionCategory,\n [questionNames.AUTHOR_NAME]: authorName,\n [questionNames.AUTHOR_EMAIL]: authorEmail,\n [questionNames.AUTHOR_URL]: authorUrl,\n [questionNames.CONFIGURE_LINTING]: configureLinting,\n [questionNames.PACKAGE_MANAGER]: packageManager,\n [questionNames.DIALECT]: dialect\n } = await promptWithInquirer([\n {\n name: questionNames.DIALECT,\n message: 'Which JavaScript dialect should this project follow?',\n type: 'list',\n choices: buildDialectChoices(configs),\n default: 'babel'\n },\n ...pathWithinParent ? [] : [{\n name: questionNames.NODE_VERSION_CATEGORY,\n message: 'What node.js version should be used?',\n type: 'list',\n choices: ['LTS', 'Latest'],\n default: 'LTS'\n }],\n {\n name: questionNames.PACKAGE_MANAGER,\n message: 'Which package manager will be used with this project?',\n type: 'list',\n choices: Object.values(packageManagers),\n default: packageManagers.NPM\n },\n {\n name: questionNames.PROJECT_TYPE,\n message: 'What type of JavaScript project is this?',\n type: 'list',\n choices: [...Object.values(projectTypes), new Separator(), 'Other'],\n default: projectTypes.PACKAGE\n },\n ...'Private' === visibility ? [] : [{\n name: questionNames.SHOULD_BE_SCOPED,\n message: 'Should this package be scoped?',\n type: 'confirm',\n when: shouldBeScopedPromptShouldBePresented,\n default: true\n }],\n {\n name: questionNames.SCOPE,\n message: 'What is the scope?',\n when: scopePromptShouldBePresentedFactory(visibility),\n validate: validateScope(visibility),\n default: npmAccount || maybeLoggedInNpmUsername\n },\n ...authorQuestions(author || {\n name: npmConf.get('init.author.name'),\n email: npmConf.get('init.author.email'),\n url: npmConf.get('init.author.url')\n }),\n ...commonQuestions(({vcs, ciServices, visibility, pathWithinParent})),\n {\n name: questionNames.CONFIGURE_LINTING,\n message: 'Will there be source code that should be linted?',\n type: 'confirm',\n when: lintingPromptShouldBePresented\n },\n {\n name: questionNames.HOST,\n type: 'list',\n message: 'Where will the application be hosted?',\n when: projectIsApplication,\n choices: [...Object.keys(hosts), new Separator(), 'Other']\n }\n ], decisions);\n\n return {\n tests: {unit: unitTested, integration: integrationTested},\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author: {name: authorName, email: authorEmail, url: authorUrl},\n configureLinting: false !== configureLinting,\n packageManager,\n dialect\n };\n}\n","import {promises as fsPromises} from 'fs';\n\nexport default async function ({projectRoot, preset, tests, buildDirectory}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await fsPromises.writeFile(\n `${projectRoot}/.babelrc`,\n JSON.stringify({\n presets: [preset.name],\n ignore: [`./${buildDirectory}/`],\n ...tests.unit && {env: {test: {plugins: ['istanbul']}}}\n })\n );\n\n return {\n devDependencies: [\n '@babel/register',\n preset.packageName,\n ...tests.unit ? ['babel-plugin-istanbul'] : []\n ],\n eslint: {}\n };\n}\n","import {promises as fs} from 'fs';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectType, projectRoot, testFilenamePattern}) {\n const eslintConfigs = ['typescript'];\n const shareableTsConfigPackage = `${config.scope}/tsconfig`;\n\n await fs.writeFile(\n `${projectRoot}/tsconfig.json`,\n JSON.stringify({\n $schema: 'https://json.schemastore.org/tsconfig',\n extends: shareableTsConfigPackage,\n compilerOptions: {\n rootDir: 'src',\n ...projectTypes.PACKAGE === projectType && {\n outDir: 'lib',\n declaration: true\n }\n },\n include: ['src/**/*.ts'],\n ...testFilenamePattern && {exclude: [testFilenamePattern]}\n })\n );\n\n return {\n eslint: {configs: eslintConfigs},\n eslintConfigs,\n devDependencies: ['typescript', shareableTsConfigPackage],\n packageProperties: {types: 'lib/index.d.ts'},\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","export default function () {\n return {packageProperties: {engines: {node: '>=12.20'}}};\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport scaffoldBabel from './babel';\nimport scaffoldTypescript from './typescript';\nimport scaffoldEsm from './esm';\n\nexport default function ({dialect, projectType, projectRoot, configs, tests, buildDirectory, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot, tests, buildDirectory});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n case dialects.ESM:\n return scaffoldEsm();\n default:\n return {eslint: {}};\n }\n}\n","import {promises as fs} from 'fs';\nimport {stringify} from 'ini';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nfunction projectWillNotBeConsumed(projectType) {\n return projectTypes.APPLICATION === projectType || projectTypes.CLI === projectType;\n}\n\nexport default async function ({projectRoot, projectType, registries}) {\n await fs.writeFile(\n `${projectRoot}/.npmrc`,\n stringify({\n 'update-notifier': false,\n 'engine-strict': true,\n ...projectWillNotBeConsumed(projectType) && {'save-exact': true},\n ...registries\n && Object.fromEntries(Object.entries(registries).map(([scope, url]) => ([`@${scope}:registry`, url])))\n })\n );\n\n return {scripts: {'lint:peer': 'npm ls >/dev/null'}};\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nexport default function (packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm run generate:md';\n if (packageManagers.YARN === packageManager) return 'yarn generate:md';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n","import buildGenerationCommand from './generation-command';\n\nexport default function ({projectTypeResults, packageManager}) {\n return {\n toc: `Run \\`${buildGenerationCommand(packageManager)}\\` to generate a table of contents`,\n ...projectTypeResults.documentation,\n contributing: `### Dependencies\n\n\\`\\`\\`sh\n$ nvm install\n$ ${packageManager} install\n\\`\\`\\`\n\n### Verification\n\n\\`\\`\\`sh\n$ ${packageManager} test\n\\`\\`\\``\n };\n}\n","import {info} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\n\nexport async function determineLatestVersionOf(nodeVersionCategory) {\n info('Determining version of node', {level: 'secondary'});\n\n const {stdout: nvmLsOutput} = await execa(\n `. ~/.nvm/nvm.sh && nvm ls-remote${('LTS' === nodeVersionCategory) ? ' --lts' : ''}`,\n {shell: true}\n );\n\n const lsLines = nvmLsOutput.split('\\n');\n const lsLine = lsLines[lsLines.length - 2];\n\n return lsLine.match(/(v[0-9]+)\\.[0-9]+\\.[0-9]+/)[1];\n}\n\nexport function install(nodeVersionCategory) {\n info(`Installing ${nodeVersionCategory} version of node using nvm`, {level: 'secondary'});\n\n const subprocess = execa('. ~/.nvm/nvm.sh && nvm install', {shell: true});\n subprocess.stdout.pipe(process.stdout);\n return subprocess;\n}\n","import {promises as fsPromises} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport {determineLatestVersionOf, install as installNodeVersion} from './tasks';\n\nexport default async function ({projectRoot, nodeVersionCategory}) {\n if (!nodeVersionCategory) return undefined;\n\n const lowerCaseCategory = nodeVersionCategory.toLowerCase();\n info(`Configuring ${lowerCaseCategory} version of node`);\n\n const version = await determineLatestVersionOf(nodeVersionCategory);\n\n await fsPromises.writeFile(`${projectRoot}/.nvmrc`, version);\n\n await installNodeVersion(nodeVersionCategory);\n\n return version;\n}\n","import deepmerge from 'deepmerge';\n\nexport default function (contributors) {\n return deepmerge.all(contributors).badges;\n}\n","export default function (vcsIgnoreLists = {}) {\n return {\n files: vcsIgnoreLists.files || [],\n directories: ['/node_modules/', ...vcsIgnoreLists.directories || []]\n };\n}\n","import {dialects, projectTypes} from '@form8ion/javascript-core';\n\nfunction projectWillBeTested(scripts) {\n return Object.keys(scripts).find(scriptName => scriptName.startsWith('test:'));\n}\n\nfunction projectShouldBeBuiltForVerification(scripts) {\n return 'run-s build' === scripts['pregenerate:md'];\n}\n\nfunction defineScripts(scripts) {\n return {\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\n\nfunction defineVcsHostDetails(vcs, packageType, packageName, pathWithinParent) {\n return vcs && 'github' === vcs.host && {\n repository: pathWithinParent\n ? {\n type: 'git',\n url: `https://github.com/${vcs.owner}/${vcs.name}.git`,\n directory: pathWithinParent\n }\n : `${vcs.owner}/${vcs.name}`,\n bugs: `https://github.com/${vcs.owner}/${vcs.name}/issues`,\n homepage: (projectTypes.PACKAGE === packageType)\n ? `https://npm.im/${packageName}`\n : `https://github.com/${vcs.owner}/${vcs.name}#readme`\n };\n}\n\nexport default function ({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n scripts,\n packageProperties,\n pathWithinParent\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n ...packageProperties,\n ...defineVcsHostDetails(vcs, projectType, packageName, pathWithinParent),\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: defineScripts(scripts)\n };\n}\n","import {promises as fs} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport buildPackageDetails from './details';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n scripts,\n packageName,\n license,\n vcs,\n author,\n description,\n packageProperties,\n pathWithinParent\n}) {\n info('Configuring package.json');\n\n const packageData = await buildPackageDetails({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n scripts,\n packageProperties,\n pathWithinParent\n });\n\n await fs.writeFile(`${projectRoot}/package.json`, JSON.stringify(packageData));\n\n return {homepage: packageData.homepage};\n}\n","import {EOL} from 'os';\nimport validatePackageName from '../thirdparty-wrappers/validate-npm-package-name';\n\nexport default function (projectName, scope) {\n const name = `${scope ? `@${scope}/` : ''}${projectName}`;\n\n const {validForNewPackages, errors} = validatePackageName(name);\n\n if (validForNewPackages) return name;\n if (1 === errors.length && errors.includes('name cannot start with a period')) return projectName.slice(1);\n\n throw new Error(`The package name ${name} is invalid:${EOL}\\t* ${errors.join(`${EOL}\\t* `)}`);\n}\n","import {Separator} from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../../prompts/question-names';\n\nexport default async function ({types, projectType, decisions}) {\n if (!Object.keys(types).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PROJECT_TYPE_CHOICE,\n type: 'list',\n message: `What type of ${projectType} is this?`,\n choices: [...Object.keys(types), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PROJECT_TYPE_CHOICE];\n}\n","import {packageManagers} from '@form8ion/javascript-core';\nimport buildGenerationCommand from '../../../documentation/generation-command';\n\nfunction getInstallationCommand(packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm install';\n if (packageManagers.YARN === packageManager) return 'yarn add';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n\nexport default function ({scope, packageName, packageManager, visibility}) {\n return {\n usage: `### Installation\n${'Private' === visibility ? `\n:warning: this is a private package, so you will need to use an npm token with\naccess to private packages under \\`@${scope}\\`\n` : ''\n}\n\\`\\`\\`sh\n$ ${getInstallationCommand(packageManager)} ${packageName}\n\\`\\`\\`\n\n### Example\n\nrun \\`${buildGenerationCommand(packageManager)}\\` to inject the usage example`\n };\n}\n","export default function (packageName, visibility) {\n return {\n consumer: {\n ...'Public' === visibility && {\n npm: {\n img: `https://img.shields.io/npm/v/${packageName}.svg`,\n text: 'npm',\n link: `https://www.npmjs.com/package/${packageName}`\n }\n }\n },\n status: {}\n };\n}\n","import {resolve} from 'path';\n\nexport default function (fileName) {\n return resolve(__dirname, '..', 'templates', fileName);\n}\n","import {promises as fs} from 'fs';\nimport deepmerge from 'deepmerge';\nimport mustache from 'mustache';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport camelcase from '../../../../thirdparty-wrappers/camelcase';\nimport mkdir from '../../../../thirdparty-wrappers/make-dir';\nimport touch from '../../../../thirdparty-wrappers/touch';\nimport determinePathToTemplateFile from '../../../template-path';\n\nconst defaultBuildDirectory = 'lib';\n\nasync function createExample(projectRoot, projectName) {\n return fs.writeFile(\n `${projectRoot}/example.js`,\n mustache.render(\n await fs.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),\n {projectName: camelcase(projectName)}\n )\n );\n}\n\nasync function buildDetailsForCommonJsProject({projectRoot, projectName}) {\n await Promise.all([\n touch(`${projectRoot}/index.js`),\n fs.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\\n`)\n ]);\n\n return {};\n}\n\nexport default async function ({projectRoot, projectName, visibility, packageName, dialect}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName});\n\n const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);\n const [rollupResults] = await Promise.all([\n scaffoldRollup({projectRoot, dialect, projectType: projectTypes.PACKAGE}),\n await createExample(projectRoot, projectName),\n touch(`${pathToCreatedSrcDirectory}/index.js`)\n ]);\n\n return deepmerge(\n rollupResults,\n {\n devDependencies: ['rimraf'],\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n vcsIgnore: {directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: {\n consumer: {\n ...'Public' === visibility && {\n runkit: {\n img: `https://badge.runkitcdn.com/${packageName}.svg`,\n text: `Try ${packageName} on RunKit`,\n link: `https://npm.runkit.com/${packageName}`\n }\n }\n }\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {dialects, scaffoldChoice as scaffoldChosenPackageType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport choosePackageType from '../prompt';\nimport scaffoldPackageDocumentation from './documentation';\nimport defineBadges from './badges';\nimport buildDetails from './build-details';\n\nexport default async function ({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageTypes,\n tests,\n decisions,\n dialect\n}) {\n info('Scaffolding Package Details');\n\n const detailsForBuild = await buildDetails({projectRoot, projectName, visibility, packageName, dialect});\n const details = {\n ...dialects.BABEL === dialect && {\n packageProperties: {\n main: 'lib/index.cjs.js',\n module: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.ESM === dialect && {\n packageProperties: {\n main: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.TYPESCRIPT === dialect && {\n packageProperties: {\n main: 'lib/index.cjs.js',\n module: 'lib/index.es.js',\n sideEffects: false,\n files: ['lib/']\n },\n ...detailsForBuild\n },\n ...dialects.COMMON_JS === dialect && {\n packageProperties: {files: ['index.js']},\n ...detailsForBuild\n }\n };\n\n const chosenType = await choosePackageType({types: packageTypes, projectType: 'package', decisions});\n const results = await scaffoldChosenPackageType(\n packageTypes,\n chosenType,\n {projectRoot, projectName, packageName, tests, scope}\n );\n\n return deepmerge.all([\n {\n packageProperties: {\n files: ['example.js'],\n publishConfig: {access: 'Public' === visibility ? 'public' : 'restricted'},\n ...'Public' === visibility && {runkitExampleFilename: './example.js'}\n },\n documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager}),\n eslintConfigs: [],\n nextSteps: [\n {summary: 'Add the appropriate `save` flag to the installation instructions in the README'},\n {summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}\n ],\n scripts: {},\n badges: defineBadges(packageName, visibility)\n },\n results,\n details\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldChosenApplicationType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport chooseApplicationType from './prompt';\n\nconst defaultBuildDirectory = 'lib';\n\nexport default async function ({\n applicationTypes,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n tests,\n decisions\n}) {\n info('Scaffolding Application Details');\n\n const chosenType = await chooseApplicationType({types: applicationTypes, projectType: 'application', decisions});\n const results = await scaffoldChosenApplicationType(\n applicationTypes,\n chosenType,\n {projectRoot, projectName, packageName, packageManager, tests}\n );\n\n const buildDirectory = results.buildDirectory || defaultBuildDirectory;\n\n return deepmerge(\n {\n scripts: {\n clean: `rimraf ./${buildDirectory}`,\n start: `node ./${buildDirectory}/index.js`,\n prebuild: 'run-s clean'\n },\n dependencies: [],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},\n buildDirectory,\n packageProperties: {private: true},\n eslintConfigs: [],\n nextSteps: []\n },\n results\n );\n}\n","import deepmerge from 'deepmerge';\nimport {projectTypes, scaffoldChoice as scaffoldChosenApplicationType} from '@form8ion/javascript-core';\nimport {info} from '@travi/cli-messages';\nimport chooseApplicationType from './prompt';\n\nexport default async function ({monorepoTypes, projectRoot, packageManager, decisions}) {\n info('Scaffolding Monorepo Details');\n\n const chosenType = await chooseApplicationType({types: monorepoTypes, projectType: projectTypes.MONOREPO, decisions});\n const results = await scaffoldChosenApplicationType(monorepoTypes, chosenType, {projectRoot, packageManager});\n\n return deepmerge(\n {\n eslintConfigs: [],\n packageProperties: {private: true},\n nextSteps: [{\n summary: 'Add packages to your new monorepo',\n description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'\n + ' to scaffold new packages into your new monorepo'\n }]\n },\n results\n );\n}\n","import deepmerge from 'deepmerge';\nimport {projectTypes} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport defineBadges from './package/badges';\n\nconst defaultBuildDirectory = 'bin';\n\nexport default async function ({packageName, visibility, projectRoot, dialect}) {\n const rollupResults = await scaffoldRollup({projectRoot, dialect, projectType: projectTypes.CLI});\n\n return deepmerge(\n rollupResults,\n {\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n dependencies: ['update-notifier'],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: defineBadges(packageName, visibility),\n packageProperties: {\n version: '0.0.0-semantically-released',\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {access: 'Public' === visibility ? 'public' : 'restricted'}\n },\n eslintConfigs: [],\n nextSteps: []\n }\n );\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport scaffoldPackageType from './package';\nimport scaffoldApplicationType from './application';\nimport scaffoldMonorepoType from './monorepo';\nimport scaffoldCliType from './cli';\n\nexport default async function ({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageTypes,\n tests,\n vcs,\n decisions,\n dialect\n });\n case projectTypes.APPLICATION:\n return scaffoldApplicationType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n applicationTypes,\n tests,\n decisions\n });\n case projectTypes.CLI:\n return scaffoldCliType({packageName, visibility, projectRoot, dialect});\n case projectTypes.MONOREPO:\n return scaffoldMonorepoType({monorepoTypes, projectRoot, packageManager, decisions});\n case 'Other':\n return {\n eslintConfigs: []\n };\n default:\n throw new Error(`The project-type of ${projectType} is invalid`);\n }\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldUnitTesting from '../../../testing/unit';\n\nexport default async function ({\n projectRoot,\n visibility,\n tests: {unit, integration},\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n}) {\n const unitResults = unit\n ? await scaffoldUnitTesting({\n projectRoot,\n visibility,\n vcs,\n frameworks: unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n })\n : {};\n\n return deepmerge(\n {devDependencies: [...(unit || integration) ? ['@travi/any'] : []], eslint: [], eslintConfigs: []},\n unitResults\n );\n}\n","import {scaffold} from '@form8ion/eslint';\nimport deepmerge from 'deepmerge';\n\nexport default async function ({config, projectRoot, buildDirectory, additionalConfiguration}) {\n const {scope} = config;\n const {ignore} = additionalConfiguration;\n const ignores = deepmerge(ignore, {directories: [`/${buildDirectory}/`]});\n\n return scaffold({scope, projectRoot, ignore: {directories: ignores.directories}});\n}\n","import {promises as fsPromises} from 'fs';\nimport deepmerge from 'deepmerge';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectRoot, projectType, vcs, dialect}) {\n await fsPromises.writeFile(\n `${projectRoot}/.remarkrc.json`,\n JSON.stringify({\n settings: {\n listItemIndent: 1,\n emphasis: '_',\n strong: '_',\n bullet: '*',\n incrementListMarker: false\n },\n plugins: [\n config,\n ['remark-toc', {tight: true}],\n ...projectTypes.PACKAGE === projectType ? [['remark-usage', {heading: 'example'}]] : [],\n ...!vcs ? [['validate-links', {repository: false}]] : []\n ]\n })\n );\n\n return deepmerge(\n {\n devDependencies: [config, 'remark-cli', 'remark-toc'],\n scripts: {\n 'lint:md': 'remark . --frail',\n 'generate:md': 'remark . --output'\n }\n },\n {\n ...projectTypes.PACKAGE === projectType && {\n devDependencies: ['remark-usage'],\n ...dialects.COMMON_JS !== dialect && {scripts: {'pregenerate:md': 'run-s build'}}\n }\n }\n );\n}\n","export default function () {\n return {scripts: {'lint:sensitive': 'ban'}, devDependencies: ['ban-sensitive-files']};\n}\n","import {promises as fs} from 'fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nfunction determineLockfilePathFor(packageManager) {\n if (packageManagers.NPM === packageManager) return 'package-lock.json';\n if (packageManagers.YARN === packageManager) return 'yarn.lock';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n\nexport default async function ({projectRoot, packageManager, registries}) {\n await fs.writeFile(\n `${projectRoot}/.lockfile-lintrc.json`,\n JSON.stringify({\n path: determineLockfilePathFor(packageManager),\n type: packageManager,\n 'validate-https': true,\n 'allowed-hosts': [packageManager, ...registries ? Object.values(registries) : []]\n })\n );\n\n return {\n devDependencies: ['lockfile-lint'],\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldEslint from './eslint';\nimport scaffoldRemark from './remark';\nimport scaffoldBanSensitiveFiles from './ban-sensitive-files';\nimport scaffoldLockfileLint from './lockfile';\n\nexport default async function ({\n projectRoot,\n projectType,\n packageManager,\n dialect,\n registries,\n configs,\n vcs,\n configureLinting,\n buildDirectory,\n eslint\n}) {\n return deepmerge.all(await Promise.all([\n scaffoldLockfileLint({projectRoot, packageManager, registries}),\n configs.eslint && configureLinting\n ? scaffoldEslint({\n projectRoot,\n config: configs.eslint,\n buildDirectory,\n additionalConfiguration: eslint\n })\n : {},\n scaffoldRemark({\n projectRoot,\n projectType,\n dialect,\n vcs,\n config: configs.remark || '@form8ion/remark-lint-preset'\n }),\n vcs ? scaffoldBanSensitiveFiles() : {}\n ]));\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldHusky} from '@form8ion/husky';\n\nimport scaffoldTesting from './testing';\nimport scaffoldLinting from './linting';\n\nexport async function scaffoldVerification({\n projectRoot,\n projectType,\n dialect,\n visibility,\n packageManager,\n vcs,\n configs,\n registries,\n configureLinting,\n tests,\n unitTestFrameworks,\n decisions,\n buildDirectory,\n eslintConfigs,\n pathWithinParent\n}) {\n const [testingResults, huskyResults] = await Promise.all([\n scaffoldTesting({\n projectRoot,\n tests,\n visibility,\n vcs,\n unitTestFrameworks,\n decisions,\n dialect,\n pathWithinParent\n }),\n scaffoldHusky({projectRoot, packageManager})\n ]);\n\n const lintingResults = await scaffoldLinting({\n projectRoot,\n projectType,\n packageManager,\n dialect,\n configs,\n registries,\n vcs,\n configureLinting,\n buildDirectory,\n eslint: deepmerge.all([testingResults.eslint, {configs: testingResults.eslintConfigs}, {configs: eslintConfigs}])\n });\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {scaffoldChoice} from '@form8ion/javascript-core';\nimport {lift} from '@form8ion/lift-javascript';\nimport {scaffold as scaffoldCommitConvention} from '@form8ion/commit-convention';\n\nimport {validate} from '../options-validator';\nimport {prompt} from '../prompts/questions';\nimport scaffoldDialect from './dialects';\nimport scaffoldNpmConfig from '../config/npm';\nimport scaffoldDocumentation from '../documentation';\nimport scaffoldNodeVersion from '../node-version';\nimport buildBadgesDetails from '../badges';\nimport buildVcsIgnoreLists from '../vcs-ignore';\nimport scaffoldPackage from './package';\nimport buildPackageName from '../package-name';\nimport scaffoldProjectType from './project-type';\nimport buildDocumentationCommand from '../documentation/generation-command';\nimport {scaffoldVerification} from './verification';\n\nexport default async function (options) {\n info('Initializing JavaScript project');\n\n const {\n projectRoot,\n projectName,\n visibility,\n license,\n vcs,\n description,\n configs,\n overrides,\n ciServices,\n hosts,\n applicationTypes,\n packageTypes,\n monorepoTypes,\n decisions,\n unitTestFrameworks,\n pathWithinParent,\n registries\n } = validate(options);\n\n const {\n tests,\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author,\n configureLinting,\n packageManager,\n dialect\n } = await prompt(overrides, ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);\n\n info('Writing project files', {level: 'secondary'});\n\n const packageName = buildPackageName(projectName, scope);\n const projectTypeResults = await scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect\n });\n const verificationResults = await scaffoldVerification({\n projectRoot,\n projectType,\n dialect,\n packageManager,\n visibility,\n vcs,\n configs,\n registries,\n configureLinting,\n tests,\n unitTestFrameworks,\n decisions,\n pathWithinParent,\n buildDirectory: projectTypeResults.buildDirectory,\n eslintConfigs: projectTypeResults.eslintConfigs\n });\n const [nodeVersion, npmResults, dialectResults] = await Promise.all([\n scaffoldNodeVersion({projectRoot, nodeVersionCategory}),\n scaffoldNpmConfig({projectType, projectRoot, registries}),\n scaffoldDialect({\n dialect,\n configs,\n projectRoot,\n projectType,\n tests,\n buildDirectory: projectTypeResults.buildDirectory,\n testFilenamePattern: verificationResults.testFilenamePattern\n })\n ]);\n const mergedContributions = deepmerge.all([\n ...(await Promise.all([\n scaffoldChoice(\n hosts,\n chosenHost,\n {buildDirectory: `./${projectTypeResults.buildDirectory}`, projectRoot, projectName, nodeVersion}\n ),\n scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),\n scaffoldCommitConvention({projectRoot, projectType, configs, pathWithinParent})\n ])),\n projectTypeResults,\n verificationResults,\n npmResults,\n dialectResults\n ]);\n\n const {homepage: projectHomepage} = await scaffoldPackage({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n packageProperties: mergedContributions.packageProperties,\n scripts: mergedContributions.scripts,\n pathWithinParent\n });\n\n const liftResults = await lift({\n results: deepmerge({devDependencies: ['npm-run-all'], packageManager}, mergedContributions),\n projectRoot,\n configs\n });\n\n return {\n badges: buildBadgesDetails([mergedContributions, liftResults]),\n documentation: scaffoldDocumentation({projectTypeResults, packageManager}),\n tags: projectTypeResults.tags,\n vcsIgnore: buildVcsIgnoreLists(mergedContributions.vcsIgnore),\n verificationCommand: `${buildDocumentationCommand(packageManager)} && ${packageManager} test`,\n projectDetails: {...projectHomepage && {homepage: projectHomepage}},\n nextSteps: mergedContributions.nextSteps\n };\n}\n","import {questionNames as languageScaffolderPromptsQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames as jsScaffolderQuestionNames} from './prompts/question-names';\n\nexport {default as scaffoldUnitTesting} from './testing/unit';\nexport {default as scaffold} from './scaffolder';\nexport const questionNames = {...languageScaffolderPromptsQuestionNames, ...jsScaffolderQuestionNames};\n"],"names":["questionNames","UNIT_TEST_FRAMEWORK","NODE_VERSION_CATEGORY","PACKAGE_MANAGER","PROJECT_TYPE","PROJECT_TYPE_CHOICE","SHOULD_BE_SCOPED","SCOPE","AUTHOR_NAME","AUTHOR_EMAIL","AUTHOR_URL","HOST","CONFIGURE_LINTING","DIALECT","projectRoot","promises","writeFile","JSON","stringify","reporter","exclude","devDependencies","vcsIgnore","files","directories","eslint","ignore","vcs","visibility","pathWithinParent","deepmerge","scaffoldC8","scaffoldCodecov","unitTestFrameworksSchema","joi","object","required","pattern","scaffolder","func","arity","frameworks","decisions","Object","keys","length","answers","prompt","name","type","message","choices","Separator","validatedFrameworks","validateOptions","framework","coverage","Promise","all","chooseFramework","then","chosenFramework","scaffoldFrameworkChoice","scaffoldCoverage","scripts","validate","options","schema","string","projectName","regex","invert","valid","license","description","host","owner","configs","scope","typescript","commitlint","packageName","babelPreset","remark","default","overrides","npmAccount","author","email","url","uri","ciServices","public","boolean","private","hosts","projectTypes","array","items","applicationTypes","packageTypes","monorepoTypes","unitTestFrameworks","registries","error","value","hoek","assert","npmConf","require","dialects","COMMON_JS","short","BABEL","ESM","TYPESCRIPT","projectIsPackage","PACKAGE","projectIsCLI","CLI","projectIsApplication","APPLICATION","packageShouldBeScoped","willBePublishedToNpm","shouldBeScopedPromptShouldBePresented","scopePromptShouldBePresentedFactory","lintingPromptShouldBePresented","commonQuestionNames","UNIT_TESTS","unitTested","INTEGRATION_TESTS","integrationTested","input","authorQuestions","npmConfFactory","maybeLoggedInNpmUsername","execa","stdout","failedExecutionResult","warn","projectType","CI_SERVICE","ci","chosenHost","nodeVersionCategory","authorName","authorEmail","authorUrl","configureLinting","packageManager","dialect","promptWithInquirer","buildDialectChoices","values","packageManagers","NPM","when","validateScope","get","commonQuestions","tests","unit","integration","preset","buildDirectory","Error","fsPromises","presets","env","test","plugins","config","testFilenamePattern","eslintConfigs","shareableTsConfigPackage","fs","$schema","extends","compilerOptions","rootDir","outDir","declaration","include","packageProperties","types","engines","node","scaffoldBabel","scaffoldTypescript","scaffoldEsm","projectWillNotBeConsumed","fromEntries","entries","map","YARN","join","projectTypeResults","toc","buildGenerationCommand","documentation","contributing","determineLatestVersionOf","info","level","nvmLsOutput","shell","lsLines","split","lsLine","match","install","subprocess","pipe","process","undefined","lowerCaseCategory","toLowerCase","version","installNodeVersion","contributors","badges","vcsIgnoreLists","projectWillBeTested","find","scriptName","startsWith","projectShouldBeBuiltForVerification","defineScripts","defineVcsHostDetails","packageType","repository","directory","bugs","homepage","packageData","buildPackageDetails","validForNewPackages","errors","validatePackageName","includes","slice","EOL","getInstallationCommand","usage","consumer","npm","img","text","link","status","fileName","resolve","__dirname","defaultBuildDirectory","createExample","mustache","render","readFile","determinePathToTemplateFile","camelcase","buildDetailsForCommonJsProject","touch","pathToCreatedSrcDirectory","mkdir","rollupResults","scaffoldRollup","clean","prebuild","build","prepack","runkit","detailsForBuild","buildDetails","details","main","module","sideEffects","chosenType","choosePackageType","results","scaffoldChosenPackageType","publishConfig","access","runkitExampleFilename","scaffoldPackageDocumentation","nextSteps","summary","defineBadges","chooseApplicationType","scaffoldChosenApplicationType","start","dependencies","MONOREPO","bin","scaffoldPackageType","scaffoldApplicationType","scaffoldCliType","scaffoldMonorepoType","unitResults","scaffoldUnitTesting","additionalConfiguration","ignores","scaffold","settings","listItemIndent","emphasis","strong","bullet","incrementListMarker","tight","heading","determineLockfilePathFor","path","scaffoldLockfileLint","scaffoldEslint","scaffoldRemark","scaffoldBanSensitiveFiles","scaffoldVerification","testingResults","huskyResults","scaffoldTesting","scaffoldHusky","lintingResults","scaffoldLinting","buildPackageName","scaffoldProjectType","verificationResults","nodeVersion","npmResults","dialectResults","scaffoldNodeVersion","scaffoldNpmConfig","scaffoldDialect","mergedContributions","scaffoldChoice","scaffoldCommitConvention","projectHomepage","scaffoldPackage","liftResults","lift","buildBadgesDetails","scaffoldDocumentation","tags","buildVcsIgnoreLists","verificationCommand","buildDocumentationCommand","projectDetails","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}
|