@form8ion/javascript 5.9.1 → 6.0.0-alpha.3
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/example.js +1 -1
- package/lib/{index.cjs.js → index.js} +62 -106
- package/lib/index.js.map +1 -0
- package/lib/{index.es.js → index.mjs} +67 -111
- package/lib/index.mjs.map +1 -0
- package/package.json +11 -8
- package/lib/index.cjs.js.map +0 -1
- package/lib/index.es.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { questionNames as questionNames$2, questions } from '@travi/language-scaffolder-prompts';
|
|
2
2
|
import deepmerge from 'deepmerge';
|
|
3
|
-
import { validateOptions, scaffoldChoice, dialects, projectTypes, installDependencies, PROD_DEPENDENCY_TYPE, DEV_DEPENDENCY_TYPE, packageManagers } from '@form8ion/javascript-core';
|
|
3
|
+
import { validateOptions, scaffoldChoice, dialects, projectTypes, writePackageJson, installDependencies, PROD_DEPENDENCY_TYPE, DEV_DEPENDENCY_TYPE, packageManagers, mergeIntoExistingPackageJson } from '@form8ion/javascript-core';
|
|
4
4
|
import * as joi from 'joi';
|
|
5
5
|
import { Separator } from 'inquirer';
|
|
6
6
|
import { prompt as prompt$1 } from '@form8ion/overridable-prompts';
|
|
7
7
|
import { scaffold, lift as lift$3 } from '@form8ion/codecov';
|
|
8
8
|
import { promises } from 'fs';
|
|
9
|
-
import { fileExists,
|
|
9
|
+
import { fileExists, applyEnhancers, fileTypes } from '@form8ion/core';
|
|
10
10
|
import { info, error, warn } from '@travi/cli-messages';
|
|
11
11
|
import * as commitConventionPlugin from '@form8ion/commit-convention';
|
|
12
12
|
import { scaffold as scaffold$4 } from '@form8ion/commit-convention';
|
|
@@ -24,7 +24,7 @@ import { resolve } from 'path';
|
|
|
24
24
|
import * as huskyPlugin from '@form8ion/husky';
|
|
25
25
|
import { scaffold as scaffold$3 } from '@form8ion/husky';
|
|
26
26
|
import { lift as lift$4, scaffold as scaffold$2 } from '@form8ion/eslint';
|
|
27
|
-
import { write
|
|
27
|
+
import { write } from '@form8ion/config-file';
|
|
28
28
|
|
|
29
29
|
function ownKeys(object, enumerableOnly) {
|
|
30
30
|
var keys = Object.keys(object);
|
|
@@ -284,18 +284,6 @@ var enginesEnhancer = /*#__PURE__*/Object.freeze({
|
|
|
284
284
|
lift: lift$1
|
|
285
285
|
});
|
|
286
286
|
|
|
287
|
-
function write({
|
|
288
|
-
projectRoot,
|
|
289
|
-
config
|
|
290
|
-
}) {
|
|
291
|
-
return writeConfigFile({
|
|
292
|
-
format: fileTypes.JSON,
|
|
293
|
-
name: 'package',
|
|
294
|
-
path: projectRoot,
|
|
295
|
-
config
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
|
|
299
287
|
function scaffoldScripts () {
|
|
300
288
|
return {};
|
|
301
289
|
}
|
|
@@ -341,15 +329,14 @@ function buildPackageDetails ({
|
|
|
341
329
|
vcs,
|
|
342
330
|
author,
|
|
343
331
|
description,
|
|
344
|
-
packageProperties,
|
|
345
332
|
pathWithinParent
|
|
346
333
|
}) {
|
|
347
|
-
return _objectSpread2(_objectSpread2(
|
|
334
|
+
return _objectSpread2(_objectSpread2({
|
|
348
335
|
name: packageName,
|
|
349
336
|
description,
|
|
350
337
|
license,
|
|
351
338
|
type: dialects.ESM === dialect ? 'module' : 'commonjs'
|
|
352
|
-
},
|
|
339
|
+
}, defineVcsHostDetails(vcs, projectType, packageName, pathWithinParent)), {}, {
|
|
353
340
|
author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,
|
|
354
341
|
scripts: scaffoldScripts()
|
|
355
342
|
});
|
|
@@ -364,7 +351,6 @@ async function scaffoldPackage ({
|
|
|
364
351
|
vcs,
|
|
365
352
|
author,
|
|
366
353
|
description,
|
|
367
|
-
packageProperties,
|
|
368
354
|
pathWithinParent
|
|
369
355
|
}) {
|
|
370
356
|
info('Configuring package.json');
|
|
@@ -376,10 +362,9 @@ async function scaffoldPackage ({
|
|
|
376
362
|
vcs,
|
|
377
363
|
author,
|
|
378
364
|
description,
|
|
379
|
-
packageProperties,
|
|
380
365
|
pathWithinParent
|
|
381
366
|
});
|
|
382
|
-
await
|
|
367
|
+
await writePackageJson({
|
|
383
368
|
projectRoot,
|
|
384
369
|
config: packageData
|
|
385
370
|
});
|
|
@@ -402,7 +387,7 @@ async function liftPackage ({
|
|
|
402
387
|
});
|
|
403
388
|
const pathToPackageJson = `${projectRoot}/package.json`;
|
|
404
389
|
const existingPackageJsonContents = JSON.parse(await promises.readFile(pathToPackageJson, 'utf8'));
|
|
405
|
-
await
|
|
390
|
+
await writePackageJson({
|
|
406
391
|
projectRoot,
|
|
407
392
|
config: _objectSpread2(_objectSpread2({}, existingPackageJsonContents), {}, {
|
|
408
393
|
scripts: liftScripts({
|
|
@@ -774,7 +759,7 @@ async function scaffoldBabel ({
|
|
|
774
759
|
throw new Error('No babel preset provided. Cannot configure babel transpilation');
|
|
775
760
|
}
|
|
776
761
|
|
|
777
|
-
await write
|
|
762
|
+
await write({
|
|
778
763
|
path: projectRoot,
|
|
779
764
|
name: 'babel',
|
|
780
765
|
format: fileTypes.JSON,
|
|
@@ -822,16 +807,6 @@ async function scaffoldTypescript ({
|
|
|
822
807
|
};
|
|
823
808
|
}
|
|
824
809
|
|
|
825
|
-
function scaffoldEsm () {
|
|
826
|
-
return {
|
|
827
|
-
packageProperties: {
|
|
828
|
-
engines: {
|
|
829
|
-
node: '>=12.20'
|
|
830
|
-
}
|
|
831
|
-
}
|
|
832
|
-
};
|
|
833
|
-
}
|
|
834
|
-
|
|
835
810
|
function scaffoldDialect ({
|
|
836
811
|
dialect,
|
|
837
812
|
projectType,
|
|
@@ -856,13 +831,8 @@ function scaffoldDialect ({
|
|
|
856
831
|
testFilenamePattern
|
|
857
832
|
});
|
|
858
833
|
|
|
859
|
-
case dialects.ESM:
|
|
860
|
-
return scaffoldEsm();
|
|
861
|
-
|
|
862
834
|
default:
|
|
863
|
-
return {
|
|
864
|
-
eslint: {}
|
|
865
|
-
};
|
|
835
|
+
return {};
|
|
866
836
|
}
|
|
867
837
|
}
|
|
868
838
|
|
|
@@ -1129,7 +1099,7 @@ async function scaffoldPackageType ({
|
|
|
1129
1099
|
publishRegistry
|
|
1130
1100
|
}) {
|
|
1131
1101
|
info('Scaffolding Package Details');
|
|
1132
|
-
const detailsForBuild = await buildDetails({
|
|
1102
|
+
const [detailsForBuild] = await Promise.all([buildDetails({
|
|
1133
1103
|
projectRoot,
|
|
1134
1104
|
projectName,
|
|
1135
1105
|
packageBundlers,
|
|
@@ -1137,28 +1107,29 @@ async function scaffoldPackageType ({
|
|
|
1137
1107
|
packageName,
|
|
1138
1108
|
dialect,
|
|
1139
1109
|
decisions
|
|
1140
|
-
})
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1110
|
+
}), mergeIntoExistingPackageJson({
|
|
1111
|
+
projectRoot,
|
|
1112
|
+
config: _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
|
|
1113
|
+
files: ['example.js', ...(dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/'])],
|
|
1114
|
+
publishConfig: _objectSpread2({
|
|
1115
|
+
access: 'Public' === visibility ? 'public' : 'restricted'
|
|
1116
|
+
}, publishRegistry && {
|
|
1117
|
+
registry: publishRegistry
|
|
1118
|
+
}),
|
|
1119
|
+
sideEffects: false
|
|
1120
|
+
}, 'Public' === visibility && {
|
|
1121
|
+
runkitExampleFilename: './example.js'
|
|
1122
|
+
}), dialects.BABEL === dialect && {
|
|
1144
1123
|
main: './lib/index.cjs.js',
|
|
1145
1124
|
module: './lib/index.es.js',
|
|
1146
1125
|
exports: {
|
|
1147
1126
|
require: './lib/index.cjs.js',
|
|
1148
1127
|
import: './lib/index.es.js'
|
|
1149
|
-
}
|
|
1150
|
-
|
|
1151
|
-
files: ['lib/']
|
|
1152
|
-
}
|
|
1153
|
-
}, detailsForBuild)), dialects.ESM === dialect && _objectSpread2({
|
|
1154
|
-
packageProperties: {
|
|
1128
|
+
}
|
|
1129
|
+
}), dialects.ESM === dialect && {
|
|
1155
1130
|
main: './lib/index.es.js',
|
|
1156
|
-
exports: './lib/index.es.js'
|
|
1157
|
-
|
|
1158
|
-
files: ['lib/']
|
|
1159
|
-
}
|
|
1160
|
-
}, detailsForBuild)), dialects.TYPESCRIPT === dialect && _objectSpread2({
|
|
1161
|
-
packageProperties: {
|
|
1131
|
+
exports: './lib/index.es.js'
|
|
1132
|
+
}), dialects.TYPESCRIPT === dialect && {
|
|
1162
1133
|
main: './lib/index.cjs.js',
|
|
1163
1134
|
module: './lib/index.es.js',
|
|
1164
1135
|
types: './lib/index.d.ts',
|
|
@@ -1166,16 +1137,9 @@ async function scaffoldPackageType ({
|
|
|
1166
1137
|
types: './lib/index.d.ts',
|
|
1167
1138
|
require: './lib/index.cjs.js',
|
|
1168
1139
|
import: './lib/index.es.js'
|
|
1169
|
-
}
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
}
|
|
1173
|
-
}, detailsForBuild)), dialects.COMMON_JS === dialect && _objectSpread2({
|
|
1174
|
-
packageProperties: {
|
|
1175
|
-
files: ['index.js']
|
|
1176
|
-
}
|
|
1177
|
-
}, detailsForBuild));
|
|
1178
|
-
|
|
1140
|
+
}
|
|
1141
|
+
})
|
|
1142
|
+
})]);
|
|
1179
1143
|
const chosenType = await chooseApplicationType({
|
|
1180
1144
|
types: packageTypes,
|
|
1181
1145
|
projectType: 'package',
|
|
@@ -1188,17 +1152,7 @@ async function scaffoldPackageType ({
|
|
|
1188
1152
|
tests,
|
|
1189
1153
|
scope
|
|
1190
1154
|
});
|
|
1191
|
-
return deepmerge.all([{
|
|
1192
|
-
packageProperties: _objectSpread2({
|
|
1193
|
-
files: ['example.js'],
|
|
1194
|
-
publishConfig: _objectSpread2({
|
|
1195
|
-
access: 'Public' === visibility ? 'public' : 'restricted'
|
|
1196
|
-
}, publishRegistry && {
|
|
1197
|
-
registry: publishRegistry
|
|
1198
|
-
})
|
|
1199
|
-
}, 'Public' === visibility && {
|
|
1200
|
-
runkitExampleFilename: './example.js'
|
|
1201
|
-
}),
|
|
1155
|
+
return deepmerge.all([_objectSpread2(_objectSpread2({}, detailsForBuild), {}, {
|
|
1202
1156
|
documentation: scaffoldPackageDocumentation({
|
|
1203
1157
|
packageName,
|
|
1204
1158
|
visibility,
|
|
@@ -1213,7 +1167,7 @@ async function scaffoldPackageType ({
|
|
|
1213
1167
|
}],
|
|
1214
1168
|
scripts: {},
|
|
1215
1169
|
badges: defineBadges(packageName, visibility)
|
|
1216
|
-
}, results
|
|
1170
|
+
}), results]);
|
|
1217
1171
|
}
|
|
1218
1172
|
|
|
1219
1173
|
const defaultBuildDirectory$1 = 'lib';
|
|
@@ -1227,11 +1181,16 @@ async function scaffoldApplicationType ({
|
|
|
1227
1181
|
decisions
|
|
1228
1182
|
}) {
|
|
1229
1183
|
info('Scaffolding Application Details');
|
|
1230
|
-
const chosenType = await chooseApplicationType({
|
|
1184
|
+
const [chosenType] = await Promise.all([chooseApplicationType({
|
|
1231
1185
|
types: applicationTypes,
|
|
1232
1186
|
projectType: 'application',
|
|
1233
1187
|
decisions
|
|
1234
|
-
})
|
|
1188
|
+
}), mergeIntoExistingPackageJson({
|
|
1189
|
+
projectRoot,
|
|
1190
|
+
config: {
|
|
1191
|
+
private: true
|
|
1192
|
+
}
|
|
1193
|
+
})]);
|
|
1235
1194
|
const results = await scaffoldChoice(applicationTypes, chosenType, {
|
|
1236
1195
|
projectRoot,
|
|
1237
1196
|
projectName,
|
|
@@ -1253,9 +1212,6 @@ async function scaffoldApplicationType ({
|
|
|
1253
1212
|
directories: [`/${buildDirectory}/`]
|
|
1254
1213
|
},
|
|
1255
1214
|
buildDirectory,
|
|
1256
|
-
packageProperties: {
|
|
1257
|
-
private: true
|
|
1258
|
-
},
|
|
1259
1215
|
eslintConfigs: [],
|
|
1260
1216
|
nextSteps: []
|
|
1261
1217
|
}, results);
|
|
@@ -1297,11 +1253,22 @@ async function scaffoldCliType ({
|
|
|
1297
1253
|
dialect,
|
|
1298
1254
|
publishRegistry
|
|
1299
1255
|
}) {
|
|
1300
|
-
const rollupResults = await scaffold$1({
|
|
1256
|
+
const [rollupResults] = await Promise.all([scaffold$1({
|
|
1301
1257
|
projectRoot,
|
|
1302
1258
|
dialect,
|
|
1303
1259
|
projectType: projectTypes.CLI
|
|
1304
|
-
})
|
|
1260
|
+
}), mergeIntoExistingPackageJson({
|
|
1261
|
+
projectRoot,
|
|
1262
|
+
config: {
|
|
1263
|
+
bin: {},
|
|
1264
|
+
files: [`${defaultBuildDirectory}/`],
|
|
1265
|
+
publishConfig: _objectSpread2({
|
|
1266
|
+
access: 'Public' === visibility ? 'public' : 'restricted'
|
|
1267
|
+
}, publishRegistry && {
|
|
1268
|
+
registry: publishRegistry
|
|
1269
|
+
})
|
|
1270
|
+
}
|
|
1271
|
+
})]);
|
|
1305
1272
|
return deepmerge(rollupResults, {
|
|
1306
1273
|
scripts: {
|
|
1307
1274
|
clean: `rimraf ./${defaultBuildDirectory}`,
|
|
@@ -1317,16 +1284,6 @@ async function scaffoldCliType ({
|
|
|
1317
1284
|
},
|
|
1318
1285
|
buildDirectory: defaultBuildDirectory,
|
|
1319
1286
|
badges: defineBadges(packageName, visibility),
|
|
1320
|
-
packageProperties: {
|
|
1321
|
-
version: '0.0.0-semantically-released',
|
|
1322
|
-
bin: {},
|
|
1323
|
-
files: [`${defaultBuildDirectory}/`],
|
|
1324
|
-
publishConfig: _objectSpread2({
|
|
1325
|
-
access: 'Public' === visibility ? 'public' : 'restricted'
|
|
1326
|
-
}, publishRegistry && {
|
|
1327
|
-
registry: publishRegistry
|
|
1328
|
-
})
|
|
1329
|
-
},
|
|
1330
1287
|
eslintConfigs: [],
|
|
1331
1288
|
nextSteps: []
|
|
1332
1289
|
});
|
|
@@ -1466,7 +1423,7 @@ async function scaffoldRemark ({
|
|
|
1466
1423
|
vcs,
|
|
1467
1424
|
dialect
|
|
1468
1425
|
}) {
|
|
1469
|
-
await write
|
|
1426
|
+
await write({
|
|
1470
1427
|
format: fileTypes.JSON,
|
|
1471
1428
|
path: projectRoot,
|
|
1472
1429
|
name: 'remark',
|
|
@@ -1683,6 +1640,19 @@ async function scaffolder (options) {
|
|
|
1683
1640
|
level: 'secondary'
|
|
1684
1641
|
});
|
|
1685
1642
|
const packageName = buildPackageName(projectName, scope);
|
|
1643
|
+
const {
|
|
1644
|
+
homepage: projectHomepage
|
|
1645
|
+
} = await scaffoldPackage({
|
|
1646
|
+
projectRoot,
|
|
1647
|
+
projectType,
|
|
1648
|
+
dialect,
|
|
1649
|
+
packageName,
|
|
1650
|
+
license,
|
|
1651
|
+
vcs,
|
|
1652
|
+
author,
|
|
1653
|
+
description,
|
|
1654
|
+
pathWithinParent
|
|
1655
|
+
});
|
|
1686
1656
|
const projectTypeResults = await scaffoldProjectType({
|
|
1687
1657
|
projectType,
|
|
1688
1658
|
projectRoot,
|
|
@@ -1752,20 +1722,6 @@ async function scaffolder (options) {
|
|
|
1752
1722
|
configs,
|
|
1753
1723
|
pathWithinParent
|
|
1754
1724
|
})])), projectTypeResults, verificationResults, npmResults, dialectResults]);
|
|
1755
|
-
const {
|
|
1756
|
-
homepage: projectHomepage
|
|
1757
|
-
} = await scaffoldPackage({
|
|
1758
|
-
projectRoot,
|
|
1759
|
-
projectType,
|
|
1760
|
-
dialect,
|
|
1761
|
-
packageName,
|
|
1762
|
-
license,
|
|
1763
|
-
vcs,
|
|
1764
|
-
author,
|
|
1765
|
-
description,
|
|
1766
|
-
packageProperties: mergedContributions.packageProperties,
|
|
1767
|
-
pathWithinParent
|
|
1768
|
-
});
|
|
1769
1725
|
const liftResults = await lift({
|
|
1770
1726
|
results: deepmerge({
|
|
1771
1727
|
devDependencies: ['npm-run-all'],
|
|
@@ -1801,4 +1757,4 @@ async function test ({
|
|
|
1801
1757
|
const questionNames = _objectSpread2(_objectSpread2({}, questionNames$2), questionNames$1);
|
|
1802
1758
|
|
|
1803
1759
|
export { lift, questionNames, scaffolder as scaffold, scaffoldUnitTesting, test };
|
|
1804
|
-
//# sourceMappingURL=index.
|
|
1760
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/prompts/question-names.js","../src/coverage/c8/scaffolder.js","../src/coverage/scaffolder.js","../src/coverage/nyc/tester.js","../src/dependencies/remover.js","../src/coverage/nyc/remover.js","../src/coverage/lifter.js","../src/coverage/c8/tester.js","../src/coverage/tester.js","../src/testing/options-schemas.js","../src/testing/prompt.js","../src/testing/unit.js","../src/lift/enhancers/engines.js","../src/package/scripts/scaffolder.js","../src/package/scripts/test-script-updater.js","../src/package/scripts/lifter.js","../src/package/details.js","../src/package/scaffolder.js","../src/package/lifter.js","../src/lift/package-manager.js","../src/lift/lift.js","../src/scaffolder/project-type/options-schemas.js","../src/options-validator.js","../thirdparty-wrappers/npm-conf.js","../src/dialects/prompt-choices.js","../src/prompts/conditionals.js","../src/prompts/validators.js","../src/prompts/questions.js","../src/dialects/babel/scaffolder.js","../src/dialects/typescript/scaffolder.js","../src/dialects/scaffolder.js","../src/config/npm.js","../src/documentation/generation-command.js","../src/documentation/scaffolder.js","../src/node-version/tasks.js","../src/node-version/scaffolder.js","../src/badges.js","../src/vcs-ignore.js","../src/package-name.js","../src/scaffolder/project-type/prompt.js","../src/scaffolder/project-type/package/documentation.js","../src/scaffolder/project-type/package/badges.js","../src/scaffolder/project-type/package/prompt.js","../src/template-path.js","../src/scaffolder/project-type/package/build-details.js","../src/scaffolder/project-type/package/scaffolder.js","../src/scaffolder/project-type/application.js","../src/scaffolder/project-type/monorepo.js","../src/scaffolder/project-type/cli.js","../src/scaffolder/project-type/scaffolder.js","../src/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/allowed-hosts-builder.js","../src/scaffolder/verification/linting/lockfile/scaffolder.js","../src/scaffolder/verification/linting/scaffolder.js","../src/scaffolder/verification/verifier.js","../src/scaffolder/scaffolder.js","../src/test.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n UNIT_TEST_FRAMEWORK: 'unitTestFramework',\n NODE_VERSION_CATEGORY: 'nodeVersionCategory',\n PACKAGE_MANAGER: 'packageManager',\n PACKAGE_BUNDLER: 'packageBundler',\n PROJECT_TYPE: 'projectType',\n PROJECT_TYPE_CHOICE: 'projectTypeChoice',\n SHOULD_BE_SCOPED: 'shouldBeScoped',\n SCOPE: 'scope',\n AUTHOR_NAME: 'authorName',\n AUTHOR_EMAIL: 'authorEmail',\n AUTHOR_URL: 'authorUrl',\n HOST: 'host',\n CONFIGURE_LINTING: 'configureLint',\n DIALECT: 'dialect'\n};\n","import {promises} from 'fs';\n\nexport default async function ({projectRoot}) {\n await promises.writeFile(\n `${projectRoot}/.c8rc.json`,\n JSON.stringify({\n reporter: ['lcov', 'text-summary', 'html'],\n exclude: ['src/**/*-test.js', 'test/', 'thirdparty-wrappers/', 'vendor/']\n })\n );\n\n return {\n devDependencies: ['cross-env', 'c8'],\n vcsIgnore: {files: [], directories: ['/coverage/']},\n eslint: {ignore: {directories: ['/coverage/']}}\n };\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldCodecov} from '@form8ion/codecov';\nimport {scaffold as scaffoldC8} from './c8';\n\nexport default async function ({projectRoot, vcs, visibility, pathWithinParent}) {\n return deepmerge(await scaffoldC8({projectRoot}), await scaffoldCodecov({vcs, visibility, pathWithinParent}));\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.nycrc`);\n}\n","import execa from '../../thirdparty-wrappers/execa';\n\nexport default async function ({packageManager, dependencies}) {\n await execa(packageManager, ['remove', ...dependencies]);\n}\n","import {promises as fs} from 'fs';\nimport removeDependencies from '../../dependencies/remover';\n\nexport default async function ({projectRoot, packageManager}) {\n await Promise.all([\n fs.unlink(`${projectRoot}/.nycrc`),\n fs.rm(`${projectRoot}/.nyc_output`, {recursive: true, force: true}),\n removeDependencies({packageManager, dependencies: ['nyc', '@istanbuljs/nyc-config-babel', 'babel-plugin-istanbul']})\n ]);\n}\n","import deepmerge from 'deepmerge';\nimport {lift as liftCodecov} from '@form8ion/codecov';\n\nimport {scaffold as scaffoldC8} from './c8';\nimport {test as nycIsConfigured, remove as removeNyc} from './nyc';\n\nexport async function lift({projectRoot, packageManager}) {\n const codecovResults = await liftCodecov({projectRoot, packageManager});\n\n if (await nycIsConfigured({projectRoot})) {\n const [c8Results] = await Promise.all([\n scaffoldC8({projectRoot}),\n removeNyc({projectRoot, packageManager})\n ]);\n\n return deepmerge.all([\n c8Results,\n codecovResults,\n {\n scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'},\n nextSteps: [{\n summary: 'Remove use of `@istanbuljs/nyc-config-babel` from your babel config, if present,'\n + ' after the migration away from `nyc`'\n }]\n }\n ]);\n }\n\n return {};\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/.c8rc.json`);\n}\n","import c8IsConfigured from './c8/tester';\nimport nycIsConfigured from './nyc/tester';\n\nexport default async function ({projectRoot}) {\n const [c8Exists, nycExists] = await Promise.all([c8IsConfigured({projectRoot}), nycIsConfigured({projectRoot})]);\n\n return c8Exists || nycExists;\n}\n","import * as joi from 'joi';\n\nexport const unitTestFrameworksSchema = joi.object().required().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n}));\n","import {Separator} from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names';\n\nexport default async function ({frameworks, decisions}) {\n if (!Object.keys(frameworks).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.UNIT_TEST_FRAMEWORK,\n type: 'list',\n message: 'Which type of unit testing framework should be used?',\n choices: [...Object.keys(frameworks), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.UNIT_TEST_FRAMEWORK];\n}\n","import deepmerge from 'deepmerge';\nimport {scaffoldChoice as scaffoldFrameworkChoice, validateOptions} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCoverage} from '../coverage';\nimport {unitTestFrameworksSchema} from './options-schemas';\nimport chooseFramework from './prompt';\n\nexport default async function ({projectRoot, frameworks, decisions, visibility, vcs, pathWithinParent, dialect}) {\n const validatedFrameworks = validateOptions(unitTestFrameworksSchema, frameworks);\n const [framework, coverage] = await Promise.all([\n chooseFramework({frameworks: validatedFrameworks, decisions})\n .then(chosenFramework => scaffoldFrameworkChoice(validatedFrameworks, chosenFramework, {projectRoot, dialect})),\n scaffoldCoverage({projectRoot, vcs, visibility, pathWithinParent})\n ]);\n\n return deepmerge.all([\n {scripts: {'test:unit': 'cross-env NODE_ENV=test c8 run-s test:unit:base'}},\n framework,\n coverage\n ]);\n}\n","import {promises as fs} from 'fs';\n\nexport async function test({projectRoot}) {\n const {engines} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf8'));\n\n return !!engines?.node;\n}\n\nexport async function lift({projectRoot}) {\n const {name} = JSON.parse(await fs.readFile(`${projectRoot}/package.json`, 'utf8'));\n\n return {\n devDependencies: ['ls-engines'],\n scripts: {'lint:engines': 'ls-engines'},\n badges: {consumer: {node: {img: `https://img.shields.io/node/v/${name}?logo=node.js`, text: 'node'}}}\n };\n}\n","export default function () {\n return {};\n}\n","function projectWillBeTested(scripts) {\n return Object.keys(scripts).find(scriptName => scriptName.startsWith('test:'));\n}\n\nfunction projectShouldBeBuiltForVerification(scripts) {\n return 'run-s build' === scripts['pregenerate:md'];\n}\n\nexport default function (scripts) {\n return {\n ...scripts,\n test: `npm-run-all --print-label${\n projectShouldBeBuiltForVerification(scripts) ? ' build' : ''\n } --parallel lint:*${\n projectWillBeTested(scripts) ? ' --parallel test:*' : ''\n }`\n };\n}\n","import updateTestScript from './test-script-updater';\n\nexport default function ({existingScripts, scripts}) {\n return updateTestScript({...existingScripts, ...scripts});\n}\n","import {dialects, projectTypes} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldScripts} from './scripts';\n\nfunction defineVcsHostDetails(vcs, packageType, packageName, pathWithinParent) {\n return vcs && 'github' === vcs.host && {\n repository: pathWithinParent\n ? {\n type: 'git',\n url: `https://github.com/${vcs.owner}/${vcs.name}.git`,\n directory: pathWithinParent\n }\n : `${vcs.owner}/${vcs.name}`,\n bugs: `https://github.com/${vcs.owner}/${vcs.name}/issues`,\n homepage: (projectTypes.PACKAGE === packageType)\n ? `https://npm.im/${packageName}`\n : `https://github.com/${vcs.owner}/${vcs.name}#readme`\n };\n}\n\nexport default function ({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n}) {\n return {\n name: packageName,\n description,\n license,\n type: dialects.ESM === dialect ? 'module' : 'commonjs',\n ...defineVcsHostDetails(vcs, projectType, packageName, pathWithinParent),\n author: `${author.name}${author.email ? ` <${author.email}>` : ''}${author.url ? ` (${author.url})` : ''}`,\n scripts: scaffoldScripts()\n };\n}\n","import {info} from '@travi/cli-messages';\nimport {writePackageJson} from '@form8ion/javascript-core';\n\nimport buildPackageDetails from './details';\n\nexport default async function ({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n}) {\n info('Configuring package.json');\n\n const packageData = await buildPackageDetails({\n packageName,\n projectType,\n dialect,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n });\n\n await writePackageJson({projectRoot, config: packageData});\n\n return {homepage: packageData.homepage};\n}\n","import {promises as fs} from 'fs';\nimport {error, info} from '@travi/cli-messages';\nimport {\n DEV_DEPENDENCY_TYPE,\n PROD_DEPENDENCY_TYPE,\n installDependencies,\n writePackageJson\n} from '@form8ion/javascript-core';\n\nimport {lift as liftScripts} from './scripts';\n\nexport default async function ({\n projectRoot,\n scripts,\n tags,\n dependencies,\n devDependencies,\n packageManager\n}) {\n if (scripts || tags) {\n info('Updating `package.json`', {level: 'secondary'});\n\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageJsonContents = JSON.parse(await fs.readFile(pathToPackageJson, 'utf8'));\n\n await writePackageJson({\n projectRoot,\n config: {\n ...existingPackageJsonContents,\n scripts: liftScripts({existingScripts: existingPackageJsonContents.scripts, scripts}),\n ...tags && {\n keywords: existingPackageJsonContents.keywords ? [...existingPackageJsonContents.keywords, ...tags] : tags\n }\n }\n });\n }\n\n info('Installing dependencies');\n\n try {\n await installDependencies(dependencies || [], PROD_DEPENDENCY_TYPE, projectRoot, packageManager);\n await installDependencies([...devDependencies || []], DEV_DEPENDENCY_TYPE, projectRoot, packageManager);\n } catch (e) {\n error('Failed to install dependencies');\n }\n}\n","import {fileExists} from '@form8ion/core';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nexport default async function ({projectRoot, packageManager}) {\n if (packageManager) return packageManager;\n\n if (await fileExists(`${projectRoot}/package-lock.json`)) {\n return packageManagers.NPM;\n }\n\n if (await fileExists(`${projectRoot}/yarn.lock`)) {\n return packageManagers.YARN;\n }\n\n throw new Error('Package-manager could not be determined');\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftEslint} from '@form8ion/eslint';\nimport * as huskyPlugin from '@form8ion/husky';\nimport * as commitConventionPlugin from '@form8ion/commit-convention';\n\nimport * as coveragePlugin from '../coverage';\nimport * as enginesEnhancer from './enhancers/engines';\nimport {lift as liftPackage} from '../package';\nimport resolvePackageManager from './package-manager';\n\nexport default async function ({projectRoot, vcs, results}) {\n info('Lifting JavaScript-specific details');\n\n const {scripts, tags, eslintConfigs, dependencies, devDependencies, packageManager: manager} = results;\n\n const packageManager = await resolvePackageManager({projectRoot, packageManager: manager});\n\n const eslintResults = await liftEslint({projectRoot, configs: eslintConfigs});\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: [huskyPlugin, enginesEnhancer, coveragePlugin, commitConventionPlugin],\n options: {packageManager, projectRoot, vcs}\n });\n\n await liftPackage(\n deepmerge.all([\n {projectRoot, scripts, tags, dependencies, devDependencies, packageManager},\n enhancerResults,\n eslintResults\n ])\n );\n\n return enhancerResults;\n}\n","import * as joi from 'joi';\n\nexport const packageBundlersSchema = joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n})).default({});\n","import * as joi from 'joi';\nimport hoek from '@hapi/hoek';\nimport {unitTestFrameworksSchema} from './testing/options-schemas';\nimport {packageBundlersSchema} from './scaffolder/project-type/options-schemas';\n\nexport function validate(options) {\n const schema = joi.object().required()\n .keys({\n projectRoot: joi.string().required(),\n projectName: joi.string().regex(/^@\\w*\\//, {invert: true}).required(),\n visibility: joi.string().valid('Public', 'Private').required(),\n license: joi.string().required(),\n description: joi.string(),\n pathWithinParent: joi.string()\n })\n .keys({\n vcs: joi.object({\n host: joi.string().required(),\n owner: joi.string().required(),\n name: joi.string().required()\n })\n })\n .keys({\n configs: joi.object({\n eslint: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n typescript: joi.object({scope: joi.string().regex(/^@[a-z0-9-]+$/i, 'scope').required()}),\n commitlint: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n babelPreset: joi.object({\n packageName: joi.string().required(),\n name: joi.string().required()\n }),\n remark: joi.string()\n }).default({})\n })\n .keys({\n overrides: joi.object({\n npmAccount: joi.string(),\n author: joi.object({\n name: joi.string().required(),\n email: joi.string().email(),\n url: joi.string().uri()\n })\n }).default({})\n })\n .keys({\n ciServices: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n public: joi.boolean(),\n private: joi.boolean()\n })).default({})\n })\n .keys({\n hosts: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n projectTypes: joi.array().items(joi.string().valid('static', 'node')).default([])\n })).default({})\n })\n .keys({\n applicationTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n packageTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n })).default({}),\n monorepoTypes: joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n }))\n })\n .keys({\n unitTestFrameworks: unitTestFrameworksSchema,\n packageBundlers: packageBundlersSchema\n })\n .keys({\n decisions: joi.object()\n })\n .keys({registries: joi.object().pattern(joi.string(), joi.string().uri()).default({})});\n const {error, value} = schema.validate(options);\n\n hoek.assert(!error, error);\n\n return value;\n}\n","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 '../dialects/prompt-choices';\nimport {\n lintingPromptShouldBePresented,\n projectIsApplication,\n scopePromptShouldBePresentedFactory,\n shouldBeScopedPromptShouldBePresented\n} from './conditionals';\nimport {questionNames} from './question-names';\nimport {scope as validateScope} from './validators';\n\nfunction authorQuestions({name, email, url}) {\n return [\n {\n name: questionNames.AUTHOR_NAME,\n message: 'What is the author\\'s name?',\n default: name\n },\n {\n name: questionNames.AUTHOR_EMAIL,\n message: 'What is the author\\'s email?',\n default: email\n },\n {\n name: questionNames.AUTHOR_URL,\n message: 'What is the author\\'s website url?',\n default: url\n }\n ];\n}\n\nexport async function prompt(\n {npmAccount, author},\n ciServices,\n hosts,\n visibility,\n vcs,\n decisions,\n configs,\n pathWithinParent\n) {\n const npmConf = npmConfFactory();\n\n let maybeLoggedInNpmUsername;\n try {\n maybeLoggedInNpmUsername = (await execa('npm', ['whoami'])).stdout;\n } catch (failedExecutionResult) {\n if (!decisions[questionNames.SCOPE]) {\n warn('No logged in user found with `npm whoami`. Login with `npm login` '\n + 'to use your npm account name as the package scope default.');\n }\n }\n\n const {\n [commonQuestionNames.UNIT_TESTS]: unitTested,\n [commonQuestionNames.INTEGRATION_TESTS]: integrationTested,\n [questionNames.PROJECT_TYPE]: projectType,\n [commonQuestionNames.CI_SERVICE]: ci,\n [questionNames.HOST]: chosenHost,\n [questionNames.SCOPE]: scope,\n [questionNames.NODE_VERSION_CATEGORY]: nodeVersionCategory,\n [questionNames.AUTHOR_NAME]: authorName,\n [questionNames.AUTHOR_EMAIL]: authorEmail,\n [questionNames.AUTHOR_URL]: authorUrl,\n [questionNames.CONFIGURE_LINTING]: configureLinting,\n [questionNames.PACKAGE_MANAGER]: packageManager,\n [questionNames.DIALECT]: dialect\n } = await promptWithInquirer([\n {\n name: questionNames.DIALECT,\n message: 'Which JavaScript dialect should this project follow?',\n type: 'list',\n choices: buildDialectChoices(configs),\n default: 'babel'\n },\n ...pathWithinParent ? [] : [{\n name: questionNames.NODE_VERSION_CATEGORY,\n message: 'What node.js version should be used?',\n type: 'list',\n choices: ['LTS', 'Latest'],\n default: 'LTS'\n }],\n {\n name: questionNames.PACKAGE_MANAGER,\n message: 'Which package manager will be used with this project?',\n type: 'list',\n choices: Object.values(packageManagers),\n default: packageManagers.NPM\n },\n {\n name: questionNames.PROJECT_TYPE,\n message: 'What type of JavaScript project is this?',\n type: 'list',\n choices: [...Object.values(projectTypes), new Separator(), 'Other'],\n default: projectTypes.PACKAGE\n },\n ...'Private' === visibility ? [] : [{\n name: questionNames.SHOULD_BE_SCOPED,\n message: 'Should this package be scoped?',\n type: 'confirm',\n when: shouldBeScopedPromptShouldBePresented,\n default: true\n }],\n {\n name: questionNames.SCOPE,\n message: 'What is the scope?',\n when: scopePromptShouldBePresentedFactory(visibility),\n validate: validateScope(visibility),\n default: npmAccount || maybeLoggedInNpmUsername\n },\n ...authorQuestions(author || {\n name: npmConf.get('init.author.name'),\n email: npmConf.get('init.author.email'),\n url: npmConf.get('init.author.url')\n }),\n ...commonQuestions(({vcs, ciServices, visibility, pathWithinParent})),\n {\n name: questionNames.CONFIGURE_LINTING,\n message: 'Will there be source code that should be linted?',\n type: 'confirm',\n when: lintingPromptShouldBePresented\n },\n {\n name: questionNames.HOST,\n type: 'list',\n message: 'Where will the application be hosted?',\n when: projectIsApplication,\n choices: [...Object.keys(hosts), new Separator(), 'Other']\n }\n ], decisions);\n\n return {\n tests: {unit: unitTested, integration: integrationTested},\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author: {name: authorName, email: authorEmail, url: authorUrl},\n configureLinting: false !== configureLinting,\n packageManager,\n dialect\n };\n}\n","import {write} from '@form8ion/config-file';\nimport {fileTypes} from '@form8ion/core';\n\nexport default async function ({projectRoot, preset, buildDirectory}) {\n if (!preset) {\n throw new Error('No babel preset provided. Cannot configure babel transpilation');\n }\n\n await write({\n path: projectRoot,\n name: 'babel',\n format: fileTypes.JSON,\n config: {presets: [preset.name], ignore: [`./${buildDirectory}/`]}\n });\n\n return {\n devDependencies: ['@babel/register', preset.packageName],\n eslint: {}\n };\n}\n","import {promises as fs} from 'fs';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nexport default async function ({config, projectType, projectRoot, testFilenamePattern}) {\n const eslintConfigs = ['typescript'];\n const shareableTsConfigPackage = `${config.scope}/tsconfig`;\n\n await fs.writeFile(\n `${projectRoot}/tsconfig.json`,\n JSON.stringify({\n $schema: 'https://json.schemastore.org/tsconfig',\n extends: shareableTsConfigPackage,\n compilerOptions: {\n rootDir: 'src',\n ...projectTypes.PACKAGE === projectType && {\n outDir: 'lib',\n declaration: true\n }\n },\n include: ['src/**/*.ts'],\n ...testFilenamePattern && {exclude: [testFilenamePattern]}\n })\n );\n\n return {\n eslint: {configs: eslintConfigs},\n eslintConfigs,\n devDependencies: ['typescript', shareableTsConfigPackage],\n vcsIgnore: {files: ['tsconfig.tsbuildinfo']}\n };\n}\n","import {dialects} from '@form8ion/javascript-core';\n\nimport {scaffold as scaffoldBabel} from './babel';\nimport {scaffold as scaffoldTypescript} from './typescript';\n\nexport default function ({dialect, projectType, projectRoot, configs, buildDirectory, testFilenamePattern}) {\n switch (dialect) {\n case dialects.BABEL:\n return scaffoldBabel({preset: configs.babelPreset, projectRoot, buildDirectory});\n case dialects.TYPESCRIPT:\n return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});\n default:\n return {};\n }\n}\n","import {promises as fs} from 'fs';\nimport {stringify} from 'ini';\nimport {projectTypes} from '@form8ion/javascript-core';\n\nfunction projectWillNotBeConsumed(projectType) {\n return projectTypes.APPLICATION === projectType || projectTypes.CLI === projectType;\n}\n\nexport default async function ({\n projectRoot,\n projectType,\n registries\n}) {\n await fs.writeFile(\n `${projectRoot}/.npmrc`,\n stringify({\n 'update-notifier': false,\n ...projectWillNotBeConsumed(projectType) && {'save-exact': true},\n ...Object.fromEntries(Object.entries(registries)\n .filter(([scope]) => 'publish' !== scope)\n .map(([scope, url]) => {\n if ('registry' === scope) return ['registry', url];\n\n return [`@${scope}:registry`, url];\n }))\n })\n );\n\n return {scripts: {'lint:peer': 'npm ls >/dev/null'}};\n}\n","import {packageManagers} from '@form8ion/javascript-core';\n\nexport default function (packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm run generate:md';\n if (packageManagers.YARN === packageManager) return 'yarn generate:md';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n","import buildGenerationCommand from './generation-command';\n\nexport default function ({projectTypeResults, packageManager}) {\n return {\n toc: `Run \\`${buildGenerationCommand(packageManager)}\\` to generate a table of contents`,\n ...projectTypeResults.documentation,\n contributing: `### Dependencies\n\n\\`\\`\\`sh\n$ nvm install\n$ ${packageManager} install\n\\`\\`\\`\n\n### Verification\n\n\\`\\`\\`sh\n$ ${packageManager} test\n\\`\\`\\``\n };\n}\n","import {info} from '@travi/cli-messages';\nimport execa from '../../thirdparty-wrappers/execa';\n\nexport async function determineLatestVersionOf(nodeVersionCategory) {\n info('Determining version of node', {level: 'secondary'});\n\n const {stdout: nvmLsOutput} = await execa(\n `. ~/.nvm/nvm.sh && nvm ls-remote${('LTS' === nodeVersionCategory) ? ' --lts' : ''}`,\n {shell: true}\n );\n\n const lsLines = nvmLsOutput.split('\\n');\n const lsLine = lsLines[lsLines.length - 2];\n\n return lsLine.match(/(v[0-9]+)\\.[0-9]+\\.[0-9]+/)[1];\n}\n\nexport function install(nodeVersionCategory) {\n info(`Installing ${nodeVersionCategory} version of node using nvm`, {level: 'secondary'});\n\n const subprocess = execa('. ~/.nvm/nvm.sh && nvm install', {shell: true});\n subprocess.stdout.pipe(process.stdout);\n return subprocess;\n}\n","import {promises as fsPromises} from 'fs';\nimport {info} from '@travi/cli-messages';\nimport {determineLatestVersionOf, install as installNodeVersion} from './tasks';\n\nexport default async function ({projectRoot, nodeVersionCategory}) {\n if (!nodeVersionCategory) return undefined;\n\n const lowerCaseCategory = nodeVersionCategory.toLowerCase();\n info(`Configuring ${lowerCaseCategory} version of node`);\n\n const version = await determineLatestVersionOf(nodeVersionCategory);\n\n await fsPromises.writeFile(`${projectRoot}/.nvmrc`, version);\n\n await installNodeVersion(nodeVersionCategory);\n\n return version;\n}\n","import deepmerge from 'deepmerge';\n\nexport default function (contributors) {\n return deepmerge.all(contributors).badges;\n}\n","export default function (vcsIgnoreLists = {}) {\n return {\n files: vcsIgnoreLists.files || [],\n directories: ['/node_modules/', ...vcsIgnoreLists.directories || []]\n };\n}\n","import {EOL} from 'os';\nimport validatePackageName from '../thirdparty-wrappers/validate-npm-package-name';\n\nexport default function (projectName, scope) {\n const name = `${scope ? `@${scope}/` : ''}${projectName}`;\n\n const {validForNewPackages, errors} = validatePackageName(name);\n\n if (validForNewPackages) return name;\n if (1 === errors.length && errors.includes('name cannot start with a period')) return projectName.slice(1);\n\n throw new Error(`The package name ${name} is invalid:${EOL}\\t* ${errors.join(`${EOL}\\t* `)}`);\n}\n","import {Separator} from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../../prompts/question-names';\n\nexport default async function ({types, projectType, decisions}) {\n if (!Object.keys(types).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PROJECT_TYPE_CHOICE,\n type: 'list',\n message: `What type of ${projectType} is this?`,\n choices: [...Object.keys(types), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PROJECT_TYPE_CHOICE];\n}\n","import {packageManagers} from '@form8ion/javascript-core';\nimport buildGenerationCommand from '../../../documentation/generation-command';\n\nfunction getInstallationCommand(packageManager) {\n if (packageManagers.NPM === packageManager) return 'npm install';\n if (packageManagers.YARN === packageManager) return 'yarn add';\n\n throw new Error(\n `The ${packageManager} package manager is currently not supported. `\n + `Only ${Object.values(packageManagers).join(' and ')} are currently supported.`\n );\n}\n\nexport default function ({scope, packageName, packageManager, visibility}) {\n return {\n usage: `### Installation\n${'Private' === visibility ? `\n:warning: this is a private package, so you will need to use an npm token with\naccess to private packages under \\`@${scope}\\`\n` : ''\n}\n\\`\\`\\`sh\n$ ${getInstallationCommand(packageManager)} ${packageName}\n\\`\\`\\`\n\n### Example\n\nrun \\`${buildGenerationCommand(packageManager)}\\` to inject the usage example`\n };\n}\n","export default function (packageName, visibility) {\n return {\n consumer: {\n ...'Public' === visibility && {\n npm: {\n img: `https://img.shields.io/npm/v/${packageName}?logo=npm`,\n text: 'npm',\n link: `https://www.npmjs.com/package/${packageName}`\n }\n }\n },\n status: {}\n };\n}\n","import {Separator} from 'inquirer';\nimport {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../../../prompts/question-names';\n\nexport default async function ({bundlers, decisions}) {\n if (!Object.keys(bundlers).length) return 'Other';\n\n const answers = await prompt([{\n name: questionNames.PACKAGE_BUNDLER,\n type: 'list',\n message: 'Which bundler should be used?',\n choices: [...Object.keys(bundlers), new Separator(), 'Other']\n }], decisions);\n\n return answers[questionNames.PACKAGE_BUNDLER];\n}\n","import {resolve} from 'path';\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, scaffoldChoice as scaffoldChosenBundler} from '@form8ion/javascript-core';\n\nimport camelcase from '../../../../thirdparty-wrappers/camelcase';\nimport mkdir from '../../../../thirdparty-wrappers/make-dir';\nimport touch from '../../../../thirdparty-wrappers/touch';\nimport chooseBundler from './prompt';\nimport determinePathToTemplateFile from '../../../template-path';\n\nconst defaultBuildDirectory = 'lib';\n\nasync function createExample(projectRoot, projectName) {\n return fs.writeFile(\n `${projectRoot}/example.js`,\n mustache.render(\n await fs.readFile(determinePathToTemplateFile('example.mustache'), 'utf8'),\n {projectName: camelcase(projectName)}\n )\n );\n}\n\nasync function buildDetailsForCommonJsProject({projectRoot, projectName}) {\n await Promise.all([\n touch(`${projectRoot}/index.js`),\n fs.writeFile(`${projectRoot}/example.js`, `const ${camelcase(projectName)} = require('.');\\n`)\n ]);\n\n return {};\n}\n\nexport default async function ({\n projectRoot,\n projectName,\n visibility,\n packageName,\n packageBundlers,\n dialect,\n decisions\n}) {\n if (dialects.COMMON_JS === dialect) return buildDetailsForCommonJsProject({projectRoot, projectName});\n\n const chosenBundler = await chooseBundler({bundlers: packageBundlers, decisions});\n\n const pathToCreatedSrcDirectory = await mkdir(`${projectRoot}/src`);\n const [bundlerResults] = await Promise.all([\n scaffoldChosenBundler(packageBundlers, chosenBundler, {projectRoot, dialect, projectType: projectTypes.PACKAGE}),\n await createExample(projectRoot, projectName),\n touch(`${pathToCreatedSrcDirectory}/index.js`)\n ]);\n\n return deepmerge(\n bundlerResults,\n {\n devDependencies: ['rimraf'],\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n vcsIgnore: {directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: {\n consumer: {\n ...'Public' === visibility && {\n runkit: {\n img: `https://badge.runkitcdn.com/${packageName}.svg`,\n text: `Try ${packageName} on RunKit`,\n link: `https://npm.runkit.com/${packageName}`\n }\n }\n }\n }\n }\n );\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {\n dialects,\n mergeIntoExistingPackageJson,\n scaffoldChoice as scaffoldChosenPackageType\n} from '@form8ion/javascript-core';\n\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 packageBundlers,\n tests,\n decisions,\n dialect,\n publishRegistry\n}) {\n info('Scaffolding Package Details');\n\n const [detailsForBuild] = await Promise.all([\n buildDetails({projectRoot, projectName, packageBundlers, visibility, packageName, dialect, decisions}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n files: ['example.js', ...dialects.COMMON_JS === dialect ? ['index.js'] : ['lib/']],\n publishConfig: {\n access: 'Public' === visibility ? 'public' : 'restricted',\n ...publishRegistry && {registry: publishRegistry}\n },\n sideEffects: false,\n ...'Public' === visibility && {runkitExampleFilename: './example.js'},\n ...dialects.BABEL === dialect && {\n main: './lib/index.cjs.js',\n module: './lib/index.es.js',\n exports: {\n require: './lib/index.cjs.js',\n import: './lib/index.es.js'\n }\n },\n ...dialects.ESM === dialect && {\n main: './lib/index.es.js',\n exports: './lib/index.es.js'\n },\n ...dialects.TYPESCRIPT === dialect && {\n main: './lib/index.cjs.js',\n module: './lib/index.es.js',\n types: './lib/index.d.ts',\n exports: {\n types: './lib/index.d.ts',\n require: './lib/index.cjs.js',\n import: './lib/index.es.js'\n }\n }\n }\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 ...detailsForBuild,\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 ]);\n}\n","import deepmerge from 'deepmerge';\nimport {mergeIntoExistingPackageJson, 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 Promise.all([\n chooseApplicationType({types: applicationTypes, projectType: 'application', decisions}),\n mergeIntoExistingPackageJson({projectRoot, config: {private: true}})\n ]);\n\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 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 {mergeIntoExistingPackageJson, projectTypes} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldRollup} from '@form8ion/rollup';\n\nimport defineBadges from './package/badges';\n\nconst defaultBuildDirectory = 'bin';\n\nexport default async function ({packageName, visibility, projectRoot, dialect, publishRegistry}) {\n const [rollupResults] = await Promise.all([\n scaffoldRollup({projectRoot, dialect, projectType: projectTypes.CLI}),\n mergeIntoExistingPackageJson({\n projectRoot,\n config: {\n bin: {},\n files: [`${defaultBuildDirectory}/`],\n publishConfig: {\n access: 'Public' === visibility ? 'public' : 'restricted',\n ...publishRegistry && {registry: publishRegistry}\n }\n }\n })\n ]);\n\n return deepmerge(\n rollupResults,\n {\n scripts: {\n clean: `rimraf ./${defaultBuildDirectory}`,\n prebuild: 'run-s clean',\n build: 'npm-run-all --print-label --parallel build:*',\n prepack: 'run-s build'\n },\n dependencies: ['update-notifier'],\n devDependencies: ['rimraf'],\n vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},\n buildDirectory: defaultBuildDirectory,\n badges: defineBadges(packageName, visibility),\n eslintConfigs: [],\n nextSteps: []\n }\n );\n}\n","import {projectTypes} from '@form8ion/javascript-core';\nimport scaffoldPackageType from './package';\nimport scaffoldApplicationType from './application';\nimport scaffoldMonorepoType from './monorepo';\nimport scaffoldCliType from './cli';\n\nexport default async function ({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n packageBundlers,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect,\n publishRegistry\n}) {\n switch (projectType) {\n case projectTypes.PACKAGE:\n return scaffoldPackageType({\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n scope,\n packageTypes,\n packageBundlers,\n tests,\n vcs,\n decisions,\n dialect,\n publishRegistry\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, publishRegistry});\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 deepmerge from 'deepmerge';\nimport {fileTypes} from '@form8ion/core';\nimport {dialects, projectTypes} from '@form8ion/javascript-core';\nimport {write} from '@form8ion/config-file';\n\nexport default async function ({config, projectRoot, projectType, vcs, dialect}) {\n await write({\n format: fileTypes.JSON,\n path: projectRoot,\n name: 'remark',\n config: {\n settings: {\n listItemIndent: 1,\n emphasis: '_',\n strong: '_',\n bullet: '*',\n incrementListMarker: false\n },\n plugins: [\n config,\n ['remark-toc', {tight: true}],\n ...projectTypes.PACKAGE === projectType ? [['remark-usage', {heading: 'example'}]] : [],\n ...!vcs ? [['validate-links', {repository: false}]] : []\n ]\n }\n });\n\n return deepmerge(\n {\n devDependencies: [config, 'remark-cli', 'remark-toc'],\n scripts: {\n 'lint:md': 'remark . --frail',\n 'generate:md': 'remark . --output'\n }\n },\n {\n ...projectTypes.PACKAGE === projectType && {\n devDependencies: ['remark-usage'],\n ...dialects.COMMON_JS !== dialect && {scripts: {'pregenerate:md': 'run-s build'}}\n }\n }\n );\n}\n","export default function ({pathWithinParent}) {\n if (pathWithinParent) return {};\n\n return {scripts: {'lint:sensitive': 'ban'}, devDependencies: ['ban-sensitive-files']};\n}\n","export default function ({packageManager, registries}) {\n return [\n ...(!registries || (registries && !registries.registry)) ? [packageManager] : [],\n ...Object.values(Object.fromEntries(Object.entries(registries).filter(([scope]) => 'publish' !== scope)))\n ];\n}\n","import {promises as fs} from 'fs';\nimport {packageManagers} from '@form8ion/javascript-core';\n\nimport buildAllowedHostsList from './allowed-hosts-builder';\n\nconst lockfileLintSupportedPackageManagers = [packageManagers.NPM, packageManagers.YARN];\n\nfunction determineLockfilePathFor(packageManager) {\n const lockfilePaths = {\n [packageManagers.NPM]: 'package-lock.json',\n [packageManagers.YARN]: 'yarn.lock'\n };\n\n return lockfilePaths[packageManager];\n}\n\nfunction lockfileLintSupports(packageManager) {\n return lockfileLintSupportedPackageManagers.includes(packageManager);\n}\n\nexport default async function ({projectRoot, packageManager, registries}) {\n if (!lockfileLintSupports(packageManager)) {\n throw new Error(\n `The ${packageManager} package manager is currently not supported by lockfile-lint. `\n + `Only ${lockfileLintSupportedPackageManagers.join(' and ')} are currently supported.`\n );\n }\n\n await fs.writeFile(\n `${projectRoot}/.lockfile-lintrc.json`,\n JSON.stringify({\n path: determineLockfilePathFor(packageManager),\n type: packageManager,\n 'validate-https': true,\n 'allowed-hosts': buildAllowedHostsList({packageManager, registries})\n })\n );\n\n return {\n devDependencies: ['lockfile-lint'],\n scripts: {'lint:lockfile': 'lockfile-lint'}\n };\n}\n","import deepmerge from 'deepmerge';\nimport scaffoldEslint from './eslint';\nimport scaffoldRemark from './remark';\nimport scaffoldBanSensitiveFiles from './ban-sensitive-files';\nimport {scaffold as 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 pathWithinParent,\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({pathWithinParent}) : {}\n ]));\n}\n","import deepmerge from 'deepmerge';\nimport {scaffold as scaffoldHusky} from '@form8ion/husky';\n\nimport scaffoldTesting from './testing';\nimport scaffoldLinting from './linting';\n\nexport async function scaffoldVerification({\n projectRoot,\n 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, pathWithinParent})\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 pathWithinParent,\n eslint: deepmerge.all([testingResults.eslint, {configs: testingResults.eslintConfigs}, {configs: eslintConfigs}])\n });\n\n return deepmerge.all([testingResults, lintingResults, huskyResults]);\n}\n","import deepmerge from 'deepmerge';\nimport {info} from '@travi/cli-messages';\nimport {scaffoldChoice} from '@form8ion/javascript-core';\nimport {scaffold as scaffoldCommitConvention} from '@form8ion/commit-convention';\n\nimport lift from '../lift';\nimport {validate} from '../options-validator';\nimport {prompt} from '../prompts/questions';\nimport {scaffold as scaffoldDialect} from '../dialects';\nimport scaffoldNpmConfig from '../config/npm';\nimport scaffoldDocumentation from '../documentation';\nimport scaffoldNodeVersion from '../node-version';\nimport buildBadgesDetails from '../badges';\nimport buildVcsIgnoreLists from '../vcs-ignore';\nimport {scaffold as scaffoldPackage} from '../package';\nimport buildPackageName from '../package-name';\nimport scaffoldProjectType from './project-type';\nimport 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 packageBundlers,\n monorepoTypes,\n decisions,\n unitTestFrameworks,\n pathWithinParent,\n registries\n } = validate(options);\n\n const {\n tests,\n projectType,\n ci,\n chosenHost,\n scope,\n nodeVersionCategory,\n author,\n configureLinting,\n packageManager,\n dialect\n } = await prompt(overrides, ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);\n\n info('Writing project files', {level: 'secondary'});\n\n const packageName = buildPackageName(projectName, scope);\n const {homepage: projectHomepage} = await scaffoldPackage({\n projectRoot,\n projectType,\n dialect,\n packageName,\n license,\n vcs,\n author,\n description,\n pathWithinParent\n });\n const projectTypeResults = await scaffoldProjectType({\n projectType,\n projectRoot,\n projectName,\n packageName,\n packageManager,\n visibility,\n applicationTypes,\n packageTypes,\n packageBundlers,\n monorepoTypes,\n scope,\n tests,\n vcs,\n decisions,\n dialect,\n publishRegistry: registries.publish\n });\n 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 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 liftResults = await lift({\n results: deepmerge({devDependencies: ['npm-run-all'], packageManager}, mergedContributions),\n projectRoot,\n configs,\n vcs\n });\n\n return {\n badges: buildBadgesDetails([mergedContributions, liftResults]),\n documentation: scaffoldDocumentation({projectTypeResults, packageManager}),\n tags: projectTypeResults.tags,\n vcsIgnore: buildVcsIgnoreLists(mergedContributions.vcsIgnore),\n verificationCommand: `${buildDocumentationCommand(packageManager)} && ${packageManager} test`,\n projectDetails: {...projectHomepage && {homepage: projectHomepage}},\n nextSteps: mergedContributions.nextSteps\n };\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default async function ({projectRoot}) {\n const [nvmIsConfigured, packageLockExists, yarnLockExists] = await Promise.all([\n fileExists(`${projectRoot}/.nvmrc`),\n fileExists(`${projectRoot}/package-lock.json`),\n fileExists(`${projectRoot}/yarn.lock`)\n ]);\n\n return nvmIsConfigured || packageLockExists || yarnLockExists;\n}\n","import {questionNames as languageScaffolderPromptsQuestionNames} from '@travi/language-scaffolder-prompts';\nimport {questionNames as jsScaffolderQuestionNames} from './prompts/question-names';\n\nexport {default as scaffoldUnitTesting} from './testing/unit';\nexport {default as scaffold} from './scaffolder';\nexport {default as lift} from './lift';\nexport {default as test} from './test';\nexport const questionNames = {...languageScaffolderPromptsQuestionNames, ...jsScaffolderQuestionNames};\n"],"names":["questionNames","UNIT_TEST_FRAMEWORK","NODE_VERSION_CATEGORY","PACKAGE_MANAGER","PACKAGE_BUNDLER","PROJECT_TYPE","PROJECT_TYPE_CHOICE","SHOULD_BE_SCOPED","SCOPE","AUTHOR_NAME","AUTHOR_EMAIL","AUTHOR_URL","HOST","CONFIGURE_LINTING","DIALECT","projectRoot","promises","writeFile","JSON","stringify","reporter","exclude","devDependencies","vcsIgnore","files","directories","eslint","ignore","vcs","visibility","pathWithinParent","deepmerge","scaffoldC8","scaffoldCodecov","fileExists","packageManager","dependencies","execa","Promise","all","fs","unlink","rm","recursive","force","removeDependencies","lift","codecovResults","liftCodecov","nycIsConfigured","c8Results","removeNyc","scripts","nextSteps","summary","c8Exists","nycExists","c8IsConfigured","unitTestFrameworksSchema","joi","object","required","pattern","scaffolder","func","arity","frameworks","decisions","Object","keys","length","answers","prompt","name","type","message","choices","Separator","dialect","validatedFrameworks","validateOptions","framework","coverage","chooseFramework","then","chosenFramework","scaffoldFrameworkChoice","scaffoldCoverage","test","engines","parse","readFile","node","badges","consumer","img","text","projectWillBeTested","find","scriptName","startsWith","projectShouldBeBuiltForVerification","_objectSpread","existingScripts","updateTestScript","defineVcsHostDetails","packageType","packageName","host","repository","url","owner","directory","bugs","homepage","projectTypes","PACKAGE","projectType","license","author","description","dialects","ESM","email","scaffoldScripts","info","packageData","buildPackageDetails","writePackageJson","config","tags","level","pathToPackageJson","existingPackageJsonContents","liftScripts","keywords","installDependencies","PROD_DEPENDENCY_TYPE","DEV_DEPENDENCY_TYPE","e","error","packageManagers","NPM","YARN","Error","results","eslintConfigs","manager","resolvePackageManager","eslintResults","liftEslint","configs","enhancerResults","applyEnhancers","enhancers","huskyPlugin","enginesEnhancer","coveragePlugin","commitConventionPlugin","options","liftPackage","packageBundlersSchema","default","validate","schema","string","projectName","regex","invert","valid","scope","typescript","commitlint","babelPreset","remark","overrides","npmAccount","uri","ciServices","public","boolean","private","hosts","array","items","applicationTypes","packageTypes","monorepoTypes","unitTestFrameworks","packageBundlers","registries","value","hoek","assert","npmConf","require","COMMON_JS","short","BABEL","TYPESCRIPT","projectIsPackage","projectIsCLI","CLI","projectIsApplication","APPLICATION","packageShouldBeScoped","willBePublishedToNpm","shouldBeScopedPromptShouldBePresented","scopePromptShouldBePresentedFactory","lintingPromptShouldBePresented","commonQuestionNames","UNIT_TESTS","unitTested","INTEGRATION_TESTS","integrationTested","input","authorQuestions","npmConfFactory","maybeLoggedInNpmUsername","stdout","failedExecutionResult","warn","CI_SERVICE","ci","chosenHost","nodeVersionCategory","authorName","authorEmail","authorUrl","configureLinting","promptWithInquirer","buildDialectChoices","values","when","validateScope","get","commonQuestions","tests","unit","integration","preset","buildDirectory","write","path","format","fileTypes","presets","testFilenamePattern","shareableTsConfigPackage","$schema","extends","compilerOptions","rootDir","outDir","declaration","include","scaffoldBabel","scaffoldTypescript","projectWillNotBeConsumed","fromEntries","entries","filter","map","join","projectTypeResults","toc","buildGenerationCommand","documentation","contributing","determineLatestVersionOf","nvmLsOutput","shell","lsLines","split","lsLine","match","install","subprocess","pipe","process","undefined","lowerCaseCategory","toLowerCase","version","fsPromises","installNodeVersion","contributors","vcsIgnoreLists","validForNewPackages","errors","validatePackageName","includes","slice","EOL","types","getInstallationCommand","usage","npm","link","status","bundlers","fileName","resolve","__dirname","defaultBuildDirectory","createExample","mustache","render","determinePathToTemplateFile","camelcase","buildDetailsForCommonJsProject","touch","chosenBundler","chooseBundler","pathToCreatedSrcDirectory","mkdir","bundlerResults","scaffoldChosenBundler","clean","prebuild","build","prepack","runkit","publishRegistry","detailsForBuild","buildDetails","mergeIntoExistingPackageJson","publishConfig","access","registry","sideEffects","runkitExampleFilename","main","module","exports","import","chosenType","choosePackageType","scaffoldChosenPackageType","scaffoldPackageDocumentation","defineBadges","chooseApplicationType","scaffoldChosenApplicationType","start","MONOREPO","packageProperties","rollupResults","scaffoldRollup","bin","scaffoldPackageType","scaffoldApplicationType","scaffoldCliType","scaffoldMonorepoType","unitResults","scaffoldUnitTesting","additionalConfiguration","ignores","scaffold","settings","listItemIndent","emphasis","strong","bullet","incrementListMarker","plugins","tight","heading","lockfileLintSupportedPackageManagers","determineLockfilePathFor","lockfilePaths","lockfileLintSupports","buildAllowedHostsList","scaffoldLockfileLint","scaffoldEslint","scaffoldRemark","scaffoldBanSensitiveFiles","scaffoldVerification","testingResults","huskyResults","scaffoldTesting","scaffoldHusky","lintingResults","scaffoldLinting","buildPackageName","projectHomepage","scaffoldPackage","scaffoldProjectType","publish","verificationResults","nodeVersion","npmResults","dialectResults","scaffoldNodeVersion","scaffoldNpmConfig","scaffoldDialect","mergedContributions","scaffoldChoice","scaffoldCommitConvention","liftResults","buildBadgesDetails","scaffoldDocumentation","buildVcsIgnoreLists","verificationCommand","buildDocumentationCommand","projectDetails","nvmIsConfigured","packageLockExists","yarnLockExists","languageScaffolderPromptsQuestionNames","jsScaffolderQuestionNames"],"mappings":"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"}
|