@form8ion/project 18.2.1 → 18.3.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/README.md CHANGED
@@ -236,7 +236,7 @@ $ npm test
236
236
 
237
237
  [license-link]: LICENSE
238
238
 
239
- [license-badge]: https://img.shields.io/github/license/form8ion/project.svg
239
+ [license-badge]: https://img.shields.io/github/license/form8ion/project.svg?logo=opensourceinitiative
240
240
 
241
241
  [commit-convention-link]: https://conventionalcommits.org
242
242
 
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { questionsForBaseDetails, validateOptions, applyEnhancers, questionNames as questionNames$2 } from '@form8ion/core';
1
+ import { fileExists, questionsForBaseDetails, validateOptions, applyEnhancers, questionNames as questionNames$2 } from '@form8ion/core';
2
2
  import deepmerge from 'deepmerge';
3
3
  import execa from '@form8ion/execa-wrapper';
4
4
  import { reportResults } from '@form8ion/results-reporter';
@@ -149,7 +149,7 @@ async function scaffold$1({projectRoot, origin}) {
149
149
  return {nextSteps: [{summary: 'Commit scaffolded files'}, ...remoteOriginResults.nextSteps]};
150
150
  }
151
151
 
152
- async function scaffoldLicense ({projectRoot, license, copyright, vcs}) {
152
+ async function scaffoldLicense ({projectRoot, license, copyright}) {
153
153
  if (license) {
154
154
  info('Generating License');
155
155
 
@@ -162,25 +162,42 @@ async function scaffoldLicense ({projectRoot, license, copyright, vcs}) {
162
162
  {width: 80, indent: ''}
163
163
  )}\n`
164
164
  );
165
+ }
165
166
 
166
- return {
167
- ...vcs && 'github' === vcs.host && {
168
- badges: {
169
- consumer: {
170
- license: {
171
- img: `https://img.shields.io/github/license/${vcs.owner}/${vcs.name}.svg`,
172
- text: `${license} license`,
173
- link: 'LICENSE'
174
- }
167
+ return {};
168
+ }
169
+
170
+ function tester ({projectRoot}) {
171
+ return fileExists(`${projectRoot}/LICENSE`);
172
+ }
173
+
174
+ function repositoryIsHostedOnGithub(vcs) {
175
+ return vcs && 'github' === vcs.host;
176
+ }
177
+
178
+ function lifter ({vcs}) {
179
+ return {
180
+ ...repositoryIsHostedOnGithub(vcs) && {
181
+ badges: {
182
+ consumer: {
183
+ license: {
184
+ link: 'LICENSE',
185
+ img: `https://img.shields.io/github/license/${vcs.owner}/${vcs.name}.svg?logo=opensourceinitiative`,
186
+ text: 'license'
175
187
  }
176
188
  }
177
189
  }
178
- };
179
- }
180
-
181
- return {};
190
+ }
191
+ };
182
192
  }
183
193
 
194
+ var licensePlugin = /*#__PURE__*/Object.freeze({
195
+ __proto__: null,
196
+ lift: lifter,
197
+ scaffold: scaffoldLicense,
198
+ test: tester
199
+ });
200
+
184
201
  function scaffoldVcsHost (hosts, options) {
185
202
  const lowercasedHosts = Object.fromEntries(
186
203
  Object.entries(hosts).map(([name, details]) => [name.toLowerCase(), details])
@@ -276,7 +293,7 @@ function scaffoldContributing ({visibility}) {
276
293
  async function lift ({projectRoot, results, enhancers, vcs, dependencies}) {
277
294
  const enhancerResults = await applyEnhancers({
278
295
  results,
279
- enhancers: {...enhancers, gitPlugin},
296
+ enhancers: {...enhancers, gitPlugin, licensePlugin},
280
297
  options: {projectRoot, vcs},
281
298
  dependencies
282
299
  });
@@ -301,23 +318,21 @@ async function scaffold(options) {
301
318
  } = await promptForBaseDetails(projectRoot, decisions);
302
319
  const copyright = {year: copyrightYear, holder: copyHolder};
303
320
 
304
- const [vcs] = await Promise.all([
321
+ const [vcs, contributing, license] = await Promise.all([
305
322
  initialize(gitRepo, projectRoot, projectName, vcsHosts, visibility, decisions),
323
+ scaffoldContributing({visibility}),
324
+ scaffoldLicense({projectRoot, license: chosenLicense, copyright}),
306
325
  scaffold$3({projectName, projectRoot, description}),
307
326
  scaffoldEditorConfig({projectRoot})
308
327
  ]);
309
328
 
310
329
  const {[questionNames$1.PROJECT_LANGUAGE]: projectLanguage} = await promptForLanguageDetails(languages, decisions);
311
330
 
312
- const [license, language, contributing] = await Promise.all([
313
- scaffoldLicense({projectRoot, license: chosenLicense, copyright, vcs}),
314
- scaffoldLanguage(
315
- languages,
316
- projectLanguage,
317
- {projectRoot, projectName, vcs, visibility, license: chosenLicense || 'UNLICENSED', description}
318
- ),
319
- scaffoldContributing({visibility})
320
- ]);
331
+ const language = await scaffoldLanguage(
332
+ languages,
333
+ projectLanguage,
334
+ {projectRoot, projectName, vcs, visibility, license: chosenLicense || 'UNLICENSED', description}
335
+ );
321
336
 
322
337
  const dependencyUpdaterResults = vcs && await scaffoldDependencyUpdater(
323
338
  dependencyUpdaters,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/prompts/question-names.js","../src/language/scaffolder.js","../src/language/prompt.js","../src/prompts/conditionals.js","../src/vcs/host/prompt.js","../src/vcs/git/git.js","../src/license/scaffolder.js","../src/vcs/host/scaffolder.js","../src/dependency-updater/prompt.js","../src/dependency-updater/scaffolder.js","../src/prompts/questions.js","../src/language/schema.js","../src/vcs/host/schema.js","../src/dependency-updater/schema.js","../src/options-schemas.js","../src/options-validator.js","../src/template-path.js","../src/editorconfig/scaffolder.js","../src/contributing/scaffolder.js","../src/lift.js","../src/scaffolder.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n GIT_REPO: 'gitRepo',\n REPO_HOST: 'repoHost',\n REPO_OWNER: 'repoOwner',\n PROJECT_LANGUAGE: 'projectLanguage',\n DEPENDENCY_UPDATER: 'dependencyUpdater'\n};\n","export default function (scaffolders, chosenLanguage, options) {\n const scaffolder = scaffolders[chosenLanguage];\n\n if (scaffolder) return scaffolder(options);\n\n return undefined;\n}\n","import {prompt} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from '../prompts/question-names.js';\n\nexport default function (languages, decisions) {\n return prompt([{\n name: questionNames.PROJECT_LANGUAGE,\n type: 'list',\n message: 'What type of project is this?',\n choices: [...Object.keys(languages), 'Other']\n }], decisions);\n}\n","import {Separator} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from './question-names.js';\n\nexport function unlicensedConfirmationShouldBePresented(answers) {\n return 'Private' === answers[questionNames.VISIBILITY];\n}\n\nexport function licenseChoicesShouldBePresented(answers) {\n return 'Public' === answers[questionNames.VISIBILITY] || !answers[questionNames.UNLICENSED];\n}\n\nexport function copyrightInformationShouldBeRequested(answers) {\n return !!answers[questionNames.LICENSE];\n}\n\nexport function filterChoicesByVisibility(choices, visibility) {\n return [\n ...Object.entries(choices)\n .filter(([, choice]) => choice[visibility.toLowerCase()])\n .reduce((acc, [name]) => ([...acc, name]), []),\n new Separator(),\n 'Other'\n ];\n}\n","import {prompt} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from '../../prompts/question-names.js';\nimport {filterChoicesByVisibility} from '../../prompts/conditionals.js';\n\nexport default async function (hosts, visibility, decisions) {\n const answers = await prompt([{\n name: questionNames.REPO_HOST,\n type: 'list',\n message: 'Where will the repository be hosted?',\n choices: filterChoicesByVisibility(hosts, visibility)\n }], decisions);\n const host = hosts[answers[questionNames.REPO_HOST]];\n\n return {...answers, ...host && await host.prompt({decisions})};\n}\n","import {simpleGit} from 'simple-git';\nimport hostedGitInfo from 'hosted-git-info';\nimport {info, warn} from '@travi/cli-messages';\nimport {scaffold as scaffoldGit} from '@form8ion/git';\n\nimport promptForVcsHostDetails from '../host/prompt.js';\nimport {questionNames} from '../../prompts/question-names.js';\n\nasync function getExistingRemotes(git) {\n try {\n return await git.listRemote();\n } catch (e) {\n if ('fatal: No remote configured to list refs from.\\n' === e.message) {\n return [];\n }\n\n throw e;\n }\n}\n\nasync function defineRemoteOrigin(projectRoot, origin) {\n const git = simpleGit({baseDir: projectRoot});\n const existingRemotes = await getExistingRemotes(git);\n\n if (existingRemotes.includes('origin')) {\n warn('The `origin` remote is already defined for this repository');\n\n return {nextSteps: []};\n }\n\n if (origin.sshUrl) {\n info(`Setting remote origin to ${origin.sshUrl}`, {level: 'secondary'});\n\n await git.addRemote('origin', origin.sshUrl);\n\n // info('Setting the local `master` branch to track `origin/master`');\n //\n // await gitBranch.setUpstream(\n // await gitBranch.lookup(repository, 'master', gitBranch.BRANCH.LOCAL),\n // 'origin/master'\n // );\n\n return {nextSteps: [{summary: 'Set local `master` branch to track upstream `origin/master`'}]};\n }\n\n warn('URL not available to configure remote `origin`');\n\n return {nextSteps: []};\n}\n\nexport async function initialize(\n gitRepoShouldBeInitialized,\n projectRoot,\n projectName,\n vcsHosts,\n visibility,\n decisions\n) {\n if (gitRepoShouldBeInitialized) {\n const git = simpleGit({baseDir: projectRoot});\n if (await git.checkIsRepo('root')) {\n info('Git repository already exists');\n\n const remoteOrigin = await git.remote(['get-url', 'origin']);\n const {user, project, type} = hostedGitInfo.fromUrl(remoteOrigin);\n\n return {owner: user, name: project, host: type};\n }\n\n const [answers] = await Promise.all([\n promptForVcsHostDetails(vcsHosts, visibility, decisions),\n scaffoldGit({projectRoot})\n ]);\n\n return {\n host: answers[questionNames.REPO_HOST].toLowerCase(),\n owner: answers[questionNames.REPO_OWNER],\n name: projectName\n };\n }\n\n return undefined;\n}\n\nexport async function scaffold({projectRoot, origin}) {\n info('Finishing Git Configuration');\n\n const remoteOriginResults = await defineRemoteOrigin(projectRoot, origin);\n\n return {nextSteps: [{summary: 'Commit scaffolded files'}, ...remoteOriginResults.nextSteps]};\n}\n","import {promises as fs} from 'fs';\nimport wrap from 'word-wrap';\nimport mustache from 'mustache';\n// eslint-disable-next-line import/extensions\nimport spdxLicenseList from 'spdx-license-list/full.js';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot, license, copyright, vcs}) {\n if (license) {\n info('Generating License');\n\n const licenseContent = spdxLicenseList[license].licenseText;\n\n await fs.writeFile(\n `${projectRoot}/LICENSE`,\n `${wrap(\n mustache.render(licenseContent, {year: copyright.year, 'copyright holders': copyright.holder}, {}, ['<', '>']),\n {width: 80, indent: ''}\n )}\\n`\n );\n\n return {\n ...vcs && 'github' === vcs.host && {\n badges: {\n consumer: {\n license: {\n img: `https://img.shields.io/github/license/${vcs.owner}/${vcs.name}.svg`,\n text: `${license} license`,\n link: 'LICENSE'\n }\n }\n }\n }\n };\n }\n\n return {};\n}\n","export default function (hosts, options) {\n const lowercasedHosts = Object.fromEntries(\n Object.entries(hosts).map(([name, details]) => [name.toLowerCase(), details])\n );\n const {host: chosenHost, ...rest} = options;\n const host = lowercasedHosts[chosenHost];\n\n if (host) return host.scaffolder(rest);\n\n return {};\n}\n","import {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names.js';\n\nexport async function promptForDependencyUpdaterChoice(updaters, decisions) {\n return prompt([{\n name: questionNames.DEPENDENCY_UPDATER,\n type: 'list',\n message: 'Which dependency-update service do you want to manage this project?',\n choices: [...Object.keys(updaters), 'Other']\n }], decisions);\n}\n","import {questionNames} from '../prompts/question-names.js';\nimport {promptForDependencyUpdaterChoice} from './prompt.js';\n\nexport default async function (scaffolders, decisions, options) {\n if (!Object.keys(scaffolders).length) return undefined;\n\n const scaffolderDetails = scaffolders[\n (await promptForDependencyUpdaterChoice(scaffolders, decisions))[questionNames.DEPENDENCY_UPDATER]\n ];\n\n if (scaffolderDetails) return scaffolderDetails.scaffolder(options);\n\n return undefined;\n}\n","import {questionsForBaseDetails} from '@form8ion/core';\nimport {prompt} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from './question-names.js';\n\nexport function promptForBaseDetails(projectRoot, decisions) {\n return prompt([\n ...questionsForBaseDetails(decisions, projectRoot),\n {name: questionNames.GIT_REPO, type: 'confirm', default: true, message: 'Should a git repository be initialized?'}\n ], decisions);\n}\n","import joi from 'joi';\n\nexport default joi.object().pattern(/^/, joi.func().arity(1));\n","import joi from 'joi';\n\nexport default joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n prompt: joi.func().required(),\n public: joi.bool(),\n private: joi.bool()\n}));\n","import joi from 'joi';\n\nexport default joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n})).default({});\n","import joi from 'joi';\n\nexport const decisionsSchema = joi.object();\n","import {validateOptions} from '@form8ion/core';\nimport joi from 'joi';\n\nimport languagePluginsSchema from './language/schema.js';\nimport vcsHostPluginsSchema from './vcs/host/schema.js';\nimport dependencyUpdaterPluginsSchema from './dependency-updater/schema.js';\nimport {decisionsSchema} from './options-schemas.js';\n\nexport function validate(options) {\n return validateOptions(joi.object({\n languages: languagePluginsSchema,\n vcsHosts: vcsHostPluginsSchema,\n decisions: decisionsSchema,\n dependencyUpdaters: dependencyUpdaterPluginsSchema\n }), options) || {};\n}\n","import {resolve} from 'path';\nimport filedirname from 'filedirname';\n\nexport default function (fileName) {\n const [, __dirname] = filedirname();\n\n return resolve(__dirname, '..', 'templates', fileName);\n}\n","import {promises as fs} from 'node:fs';\n\nimport determinePathToTemplateFile from '../template-path.js';\n\nexport default function ({projectRoot}) {\n return fs.copyFile(determinePathToTemplateFile('editorconfig.ini'), `${projectRoot}/.editorconfig`);\n}\n","export default function ({visibility}) {\n if ('Public' === visibility) {\n return {\n badges: {\n contribution: {\n PRs: {\n text: 'PRs Welcome',\n link: 'https://makeapullrequest.com',\n img: 'https://img.shields.io/badge/PRs-welcome-brightgreen.svg'\n }\n }\n }\n };\n }\n\n return {};\n}\n","import deepmerge from 'deepmerge';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftReadme} from '@form8ion/readme';\nimport * as gitPlugin from '@form8ion/git';\n\nexport default async function ({projectRoot, results, enhancers, vcs, dependencies}) {\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: {...enhancers, gitPlugin},\n options: {projectRoot, vcs},\n dependencies\n });\n\n await liftReadme({projectRoot, results: deepmerge.all([results, enhancerResults])});\n\n return enhancerResults;\n}\n","import deepmerge from 'deepmerge';\nimport execa from '@form8ion/execa-wrapper';\nimport {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {reportResults} from '@form8ion/results-reporter';\nimport {scaffold as scaffoldReadme} from '@form8ion/readme';\nimport {info} from '@travi/cli-messages';\n\nimport {scaffold as scaffoldLanguage, prompt as promptForLanguageDetails} from './language/index.js';\nimport {initialize as scaffoldGit, scaffold as liftGit} from './vcs/git/git.js';\nimport {scaffold as scaffoldLicense} from './license/index.js';\nimport {scaffold as scaffoldVcsHost} from './vcs/host/index.js';\nimport scaffoldDependencyUpdater from './dependency-updater/scaffolder.js';\nimport {promptForBaseDetails} from './prompts/questions.js';\nimport {validate} from './options-validator.js';\nimport {questionNames} from './prompts/question-names.js';\nimport {scaffold as scaffoldEditorConfig} from './editorconfig/index.js';\nimport {scaffold as scaffoldContributing} from './contributing/index.js';\nimport lift from './lift.js';\n\nexport async function scaffold(options) {\n const projectRoot = process.cwd();\n const {languages = {}, vcsHosts = {}, decisions, dependencyUpdaters} = validate(options);\n\n const {\n [coreQuestionNames.PROJECT_NAME]: projectName,\n [coreQuestionNames.LICENSE]: chosenLicense,\n [coreQuestionNames.VISIBILITY]: visibility,\n [coreQuestionNames.DESCRIPTION]: description,\n [questionNames.GIT_REPO]: gitRepo,\n [coreQuestionNames.COPYRIGHT_YEAR]: copyrightYear,\n [coreQuestionNames.COPYRIGHT_HOLDER]: copyHolder\n } = await promptForBaseDetails(projectRoot, decisions);\n const copyright = {year: copyrightYear, holder: copyHolder};\n\n const [vcs] = await Promise.all([\n scaffoldGit(gitRepo, projectRoot, projectName, vcsHosts, visibility, decisions),\n scaffoldReadme({projectName, projectRoot, description}),\n scaffoldEditorConfig({projectRoot})\n ]);\n\n const {[questionNames.PROJECT_LANGUAGE]: projectLanguage} = await promptForLanguageDetails(languages, decisions);\n\n const [license, language, contributing] = await Promise.all([\n scaffoldLicense({projectRoot, license: chosenLicense, copyright, vcs}),\n scaffoldLanguage(\n languages,\n projectLanguage,\n {projectRoot, projectName, vcs, visibility, license: chosenLicense || 'UNLICENSED', description}\n ),\n scaffoldContributing({visibility})\n ]);\n\n const dependencyUpdaterResults = vcs && await scaffoldDependencyUpdater(\n dependencyUpdaters,\n decisions,\n {projectRoot, vcs}\n );\n\n const contributors = [license, language, dependencyUpdaterResults, contributing].filter(Boolean);\n const contributedTasks = contributors\n .map(contributor => contributor.nextSteps)\n .filter(Boolean)\n .reduce((acc, contributedNextSteps) => ([...acc, ...contributedNextSteps]), []);\n\n const vcsHostResults = vcs && await scaffoldVcsHost(vcsHosts, {\n ...vcs,\n projectRoot,\n description,\n visibility,\n ...language && {\n homepage: language.projectDetails && language.projectDetails.homepage,\n tags: language.tags\n },\n nextSteps: contributedTasks\n });\n\n await lift({projectRoot, results: deepmerge.all(contributors)});\n\n const gitResults = gitRepo && await liftGit({projectRoot, origin: vcsHostResults});\n\n if (language && language.verificationCommand) {\n info('Verifying the generated project');\n\n const subprocess = execa(language.verificationCommand, {shell: true});\n subprocess.stdout.pipe(process.stdout);\n await subprocess;\n }\n\n reportResults({\n nextSteps: [\n ...(gitResults && gitResults.nextSteps) ? gitResults.nextSteps : [],\n ...contributedTasks\n ]\n });\n}\n","import {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {questionNames as projectScaffolderQuestionNames} from './prompts/question-names.js';\n\nexport * from './scaffolder.js';\nexport {default as lift} from './lift.js';\nexport const questionNames = {\n ...coreQuestionNames,\n ...projectScaffolderQuestionNames\n};\n"],"names":["questionNames","scaffoldGit","scaffold","fs","liftReadme","coreQuestionNames","scaffoldReadme","liftGit","projectScaffolderQuestionNames"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/prompts/question-names.js","../src/language/scaffolder.js","../src/language/prompt.js","../src/prompts/conditionals.js","../src/vcs/host/prompt.js","../src/vcs/git/git.js","../src/license/scaffolder.js","../src/license/tester.js","../src/license/lifter.js","../src/vcs/host/scaffolder.js","../src/dependency-updater/prompt.js","../src/dependency-updater/scaffolder.js","../src/prompts/questions.js","../src/language/schema.js","../src/vcs/host/schema.js","../src/dependency-updater/schema.js","../src/options-schemas.js","../src/options-validator.js","../src/template-path.js","../src/editorconfig/scaffolder.js","../src/contributing/scaffolder.js","../src/lift.js","../src/scaffolder.js","../src/index.js"],"sourcesContent":["export const questionNames = {\n GIT_REPO: 'gitRepo',\n REPO_HOST: 'repoHost',\n REPO_OWNER: 'repoOwner',\n PROJECT_LANGUAGE: 'projectLanguage',\n DEPENDENCY_UPDATER: 'dependencyUpdater'\n};\n","export default function (scaffolders, chosenLanguage, options) {\n const scaffolder = scaffolders[chosenLanguage];\n\n if (scaffolder) return scaffolder(options);\n\n return undefined;\n}\n","import {prompt} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from '../prompts/question-names.js';\n\nexport default function (languages, decisions) {\n return prompt([{\n name: questionNames.PROJECT_LANGUAGE,\n type: 'list',\n message: 'What type of project is this?',\n choices: [...Object.keys(languages), 'Other']\n }], decisions);\n}\n","import {Separator} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from './question-names.js';\n\nexport function unlicensedConfirmationShouldBePresented(answers) {\n return 'Private' === answers[questionNames.VISIBILITY];\n}\n\nexport function licenseChoicesShouldBePresented(answers) {\n return 'Public' === answers[questionNames.VISIBILITY] || !answers[questionNames.UNLICENSED];\n}\n\nexport function copyrightInformationShouldBeRequested(answers) {\n return !!answers[questionNames.LICENSE];\n}\n\nexport function filterChoicesByVisibility(choices, visibility) {\n return [\n ...Object.entries(choices)\n .filter(([, choice]) => choice[visibility.toLowerCase()])\n .reduce((acc, [name]) => ([...acc, name]), []),\n new Separator(),\n 'Other'\n ];\n}\n","import {prompt} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from '../../prompts/question-names.js';\nimport {filterChoicesByVisibility} from '../../prompts/conditionals.js';\n\nexport default async function (hosts, visibility, decisions) {\n const answers = await prompt([{\n name: questionNames.REPO_HOST,\n type: 'list',\n message: 'Where will the repository be hosted?',\n choices: filterChoicesByVisibility(hosts, visibility)\n }], decisions);\n const host = hosts[answers[questionNames.REPO_HOST]];\n\n return {...answers, ...host && await host.prompt({decisions})};\n}\n","import {simpleGit} from 'simple-git';\nimport hostedGitInfo from 'hosted-git-info';\nimport {info, warn} from '@travi/cli-messages';\nimport {scaffold as scaffoldGit} from '@form8ion/git';\n\nimport promptForVcsHostDetails from '../host/prompt.js';\nimport {questionNames} from '../../prompts/question-names.js';\n\nasync function getExistingRemotes(git) {\n try {\n return await git.listRemote();\n } catch (e) {\n if ('fatal: No remote configured to list refs from.\\n' === e.message) {\n return [];\n }\n\n throw e;\n }\n}\n\nasync function defineRemoteOrigin(projectRoot, origin) {\n const git = simpleGit({baseDir: projectRoot});\n const existingRemotes = await getExistingRemotes(git);\n\n if (existingRemotes.includes('origin')) {\n warn('The `origin` remote is already defined for this repository');\n\n return {nextSteps: []};\n }\n\n if (origin.sshUrl) {\n info(`Setting remote origin to ${origin.sshUrl}`, {level: 'secondary'});\n\n await git.addRemote('origin', origin.sshUrl);\n\n // info('Setting the local `master` branch to track `origin/master`');\n //\n // await gitBranch.setUpstream(\n // await gitBranch.lookup(repository, 'master', gitBranch.BRANCH.LOCAL),\n // 'origin/master'\n // );\n\n return {nextSteps: [{summary: 'Set local `master` branch to track upstream `origin/master`'}]};\n }\n\n warn('URL not available to configure remote `origin`');\n\n return {nextSteps: []};\n}\n\nexport async function initialize(\n gitRepoShouldBeInitialized,\n projectRoot,\n projectName,\n vcsHosts,\n visibility,\n decisions\n) {\n if (gitRepoShouldBeInitialized) {\n const git = simpleGit({baseDir: projectRoot});\n if (await git.checkIsRepo('root')) {\n info('Git repository already exists');\n\n const remoteOrigin = await git.remote(['get-url', 'origin']);\n const {user, project, type} = hostedGitInfo.fromUrl(remoteOrigin);\n\n return {owner: user, name: project, host: type};\n }\n\n const [answers] = await Promise.all([\n promptForVcsHostDetails(vcsHosts, visibility, decisions),\n scaffoldGit({projectRoot})\n ]);\n\n return {\n host: answers[questionNames.REPO_HOST].toLowerCase(),\n owner: answers[questionNames.REPO_OWNER],\n name: projectName\n };\n }\n\n return undefined;\n}\n\nexport async function scaffold({projectRoot, origin}) {\n info('Finishing Git Configuration');\n\n const remoteOriginResults = await defineRemoteOrigin(projectRoot, origin);\n\n return {nextSteps: [{summary: 'Commit scaffolded files'}, ...remoteOriginResults.nextSteps]};\n}\n","import {promises as fs} from 'fs';\nimport wrap from 'word-wrap';\nimport mustache from 'mustache';\n// eslint-disable-next-line import/extensions\nimport spdxLicenseList from 'spdx-license-list/full.js';\nimport {info} from '@travi/cli-messages';\n\nexport default async function ({projectRoot, license, copyright}) {\n if (license) {\n info('Generating License');\n\n const licenseContent = spdxLicenseList[license].licenseText;\n\n await fs.writeFile(\n `${projectRoot}/LICENSE`,\n `${wrap(\n mustache.render(licenseContent, {year: copyright.year, 'copyright holders': copyright.holder}, {}, ['<', '>']),\n {width: 80, indent: ''}\n )}\\n`\n );\n }\n\n return {};\n}\n","import {fileExists} from '@form8ion/core';\n\nexport default function ({projectRoot}) {\n return fileExists(`${projectRoot}/LICENSE`);\n}\n","function repositoryIsHostedOnGithub(vcs) {\n return vcs && 'github' === vcs.host;\n}\n\nexport default function ({vcs}) {\n return {\n ...repositoryIsHostedOnGithub(vcs) && {\n badges: {\n consumer: {\n license: {\n link: 'LICENSE',\n img: `https://img.shields.io/github/license/${vcs.owner}/${vcs.name}.svg?logo=opensourceinitiative`,\n text: 'license'\n }\n }\n }\n }\n };\n}\n","export default function (hosts, options) {\n const lowercasedHosts = Object.fromEntries(\n Object.entries(hosts).map(([name, details]) => [name.toLowerCase(), details])\n );\n const {host: chosenHost, ...rest} = options;\n const host = lowercasedHosts[chosenHost];\n\n if (host) return host.scaffolder(rest);\n\n return {};\n}\n","import {prompt} from '@form8ion/overridable-prompts';\nimport {questionNames} from '../prompts/question-names.js';\n\nexport async function promptForDependencyUpdaterChoice(updaters, decisions) {\n return prompt([{\n name: questionNames.DEPENDENCY_UPDATER,\n type: 'list',\n message: 'Which dependency-update service do you want to manage this project?',\n choices: [...Object.keys(updaters), 'Other']\n }], decisions);\n}\n","import {questionNames} from '../prompts/question-names.js';\nimport {promptForDependencyUpdaterChoice} from './prompt.js';\n\nexport default async function (scaffolders, decisions, options) {\n if (!Object.keys(scaffolders).length) return undefined;\n\n const scaffolderDetails = scaffolders[\n (await promptForDependencyUpdaterChoice(scaffolders, decisions))[questionNames.DEPENDENCY_UPDATER]\n ];\n\n if (scaffolderDetails) return scaffolderDetails.scaffolder(options);\n\n return undefined;\n}\n","import {questionsForBaseDetails} from '@form8ion/core';\nimport {prompt} from '@form8ion/overridable-prompts';\n\nimport {questionNames} from './question-names.js';\n\nexport function promptForBaseDetails(projectRoot, decisions) {\n return prompt([\n ...questionsForBaseDetails(decisions, projectRoot),\n {name: questionNames.GIT_REPO, type: 'confirm', default: true, message: 'Should a git repository be initialized?'}\n ], decisions);\n}\n","import joi from 'joi';\n\nexport default joi.object().pattern(/^/, joi.func().arity(1));\n","import joi from 'joi';\n\nexport default joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required(),\n prompt: joi.func().required(),\n public: joi.bool(),\n private: joi.bool()\n}));\n","import joi from 'joi';\n\nexport default joi.object().pattern(/^/, joi.object({\n scaffolder: joi.func().arity(1).required()\n})).default({});\n","import joi from 'joi';\n\nexport const decisionsSchema = joi.object();\n","import {validateOptions} from '@form8ion/core';\nimport joi from 'joi';\n\nimport languagePluginsSchema from './language/schema.js';\nimport vcsHostPluginsSchema from './vcs/host/schema.js';\nimport dependencyUpdaterPluginsSchema from './dependency-updater/schema.js';\nimport {decisionsSchema} from './options-schemas.js';\n\nexport function validate(options) {\n return validateOptions(joi.object({\n languages: languagePluginsSchema,\n vcsHosts: vcsHostPluginsSchema,\n decisions: decisionsSchema,\n dependencyUpdaters: dependencyUpdaterPluginsSchema\n }), options) || {};\n}\n","import {resolve} from 'path';\nimport filedirname from 'filedirname';\n\nexport default function (fileName) {\n const [, __dirname] = filedirname();\n\n return resolve(__dirname, '..', 'templates', fileName);\n}\n","import {promises as fs} from 'node:fs';\n\nimport determinePathToTemplateFile from '../template-path.js';\n\nexport default function ({projectRoot}) {\n return fs.copyFile(determinePathToTemplateFile('editorconfig.ini'), `${projectRoot}/.editorconfig`);\n}\n","export default function ({visibility}) {\n if ('Public' === visibility) {\n return {\n badges: {\n contribution: {\n PRs: {\n text: 'PRs Welcome',\n link: 'https://makeapullrequest.com',\n img: 'https://img.shields.io/badge/PRs-welcome-brightgreen.svg'\n }\n }\n }\n };\n }\n\n return {};\n}\n","import deepmerge from 'deepmerge';\nimport {applyEnhancers} from '@form8ion/core';\nimport {lift as liftReadme} from '@form8ion/readme';\nimport * as gitPlugin from '@form8ion/git';\n\nimport * as licensePlugin from './license/index.js';\n\nexport default async function ({projectRoot, results, enhancers, vcs, dependencies}) {\n const enhancerResults = await applyEnhancers({\n results,\n enhancers: {...enhancers, gitPlugin, licensePlugin},\n options: {projectRoot, vcs},\n dependencies\n });\n\n await liftReadme({projectRoot, results: deepmerge.all([results, enhancerResults])});\n\n return enhancerResults;\n}\n","import deepmerge from 'deepmerge';\nimport execa from '@form8ion/execa-wrapper';\nimport {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {reportResults} from '@form8ion/results-reporter';\nimport {scaffold as scaffoldReadme} from '@form8ion/readme';\nimport {info} from '@travi/cli-messages';\n\nimport {scaffold as scaffoldLanguage, prompt as promptForLanguageDetails} from './language/index.js';\nimport {initialize as scaffoldGit, scaffold as liftGit} from './vcs/git/git.js';\nimport {scaffold as scaffoldLicense} from './license/index.js';\nimport {scaffold as scaffoldVcsHost} from './vcs/host/index.js';\nimport scaffoldDependencyUpdater from './dependency-updater/scaffolder.js';\nimport {promptForBaseDetails} from './prompts/questions.js';\nimport {validate} from './options-validator.js';\nimport {questionNames} from './prompts/question-names.js';\nimport {scaffold as scaffoldEditorConfig} from './editorconfig/index.js';\nimport {scaffold as scaffoldContributing} from './contributing/index.js';\nimport lift from './lift.js';\n\nexport async function scaffold(options) {\n const projectRoot = process.cwd();\n const {languages = {}, vcsHosts = {}, decisions, dependencyUpdaters} = validate(options);\n\n const {\n [coreQuestionNames.PROJECT_NAME]: projectName,\n [coreQuestionNames.LICENSE]: chosenLicense,\n [coreQuestionNames.VISIBILITY]: visibility,\n [coreQuestionNames.DESCRIPTION]: description,\n [questionNames.GIT_REPO]: gitRepo,\n [coreQuestionNames.COPYRIGHT_YEAR]: copyrightYear,\n [coreQuestionNames.COPYRIGHT_HOLDER]: copyHolder\n } = await promptForBaseDetails(projectRoot, decisions);\n const copyright = {year: copyrightYear, holder: copyHolder};\n\n const [vcs, contributing, license] = await Promise.all([\n scaffoldGit(gitRepo, projectRoot, projectName, vcsHosts, visibility, decisions),\n scaffoldContributing({visibility}),\n scaffoldLicense({projectRoot, license: chosenLicense, copyright}),\n scaffoldReadme({projectName, projectRoot, description}),\n scaffoldEditorConfig({projectRoot})\n ]);\n\n const {[questionNames.PROJECT_LANGUAGE]: projectLanguage} = await promptForLanguageDetails(languages, decisions);\n\n const language = await scaffoldLanguage(\n languages,\n projectLanguage,\n {projectRoot, projectName, vcs, visibility, license: chosenLicense || 'UNLICENSED', description}\n );\n\n const dependencyUpdaterResults = vcs && await scaffoldDependencyUpdater(\n dependencyUpdaters,\n decisions,\n {projectRoot, vcs}\n );\n\n const contributors = [license, language, dependencyUpdaterResults, contributing].filter(Boolean);\n const contributedTasks = contributors\n .map(contributor => contributor.nextSteps)\n .filter(Boolean)\n .reduce((acc, contributedNextSteps) => ([...acc, ...contributedNextSteps]), []);\n\n const vcsHostResults = vcs && await scaffoldVcsHost(vcsHosts, {\n ...vcs,\n projectRoot,\n description,\n visibility,\n ...language && {\n homepage: language.projectDetails && language.projectDetails.homepage,\n tags: language.tags\n },\n nextSteps: contributedTasks\n });\n\n await lift({projectRoot, results: deepmerge.all(contributors)});\n\n const gitResults = gitRepo && await liftGit({projectRoot, origin: vcsHostResults});\n\n if (language && language.verificationCommand) {\n info('Verifying the generated project');\n\n const subprocess = execa(language.verificationCommand, {shell: true});\n subprocess.stdout.pipe(process.stdout);\n await subprocess;\n }\n\n reportResults({\n nextSteps: [\n ...(gitResults && gitResults.nextSteps) ? gitResults.nextSteps : [],\n ...contributedTasks\n ]\n });\n}\n","import {questionNames as coreQuestionNames} from '@form8ion/core';\nimport {questionNames as projectScaffolderQuestionNames} from './prompts/question-names.js';\n\nexport * from './scaffolder.js';\nexport {default as lift} from './lift.js';\nexport const questionNames = {\n ...coreQuestionNames,\n ...projectScaffolderQuestionNames\n};\n"],"names":["questionNames","scaffoldGit","scaffold","fs","liftReadme","coreQuestionNames","scaffoldReadme","liftGit","projectScaffolderQuestionNames"],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@form8ion/project",
3
3
  "description": "opinionated scaffolder for new projects",
4
4
  "license": "MIT",
5
- "version": "18.2.1",
5
+ "version": "18.3.0",
6
6
  "type": "module",
7
7
  "engines": {
8
8
  "node": "^18.17 || >=20.6.1"
@@ -89,7 +89,7 @@
89
89
  "cross-env": "7.0.3",
90
90
  "cz-conventional-changelog": "3.3.0",
91
91
  "gherkin-lint": "4.2.4",
92
- "husky": "9.0.11",
92
+ "husky": "9.1.1",
93
93
  "jest-when": "3.6.0",
94
94
  "lockfile-lint": "4.14.0",
95
95
  "ls-engines": "0.9.2",
@@ -99,17 +99,17 @@
99
99
  "mdast-zone": "6.1.0",
100
100
  "mock-fs": "5.2.0",
101
101
  "npm-run-all2": "6.2.2",
102
- "publint": "0.2.8",
102
+ "publint": "0.2.9",
103
103
  "remark-cli": "12.0.1",
104
104
  "remark-toc": "9.0.0",
105
105
  "remark-usage": "11.0.1",
106
- "rimraf": "6.0.0",
106
+ "rimraf": "6.0.1",
107
107
  "rollup": "4.18.1",
108
108
  "rollup-plugin-auto-external": "2.0.0",
109
109
  "sinon": "18.0.0",
110
110
  "testdouble": "3.20.2",
111
111
  "unist-util-find": "3.0.0",
112
- "vitest": "2.0.1"
112
+ "vitest": "2.0.3"
113
113
  },
114
- "packageManager": "npm@10.8.1+sha512.0e9d42e92bd2318408ed81eaff2da5f78baf23ee7d12a6eed44a6e2901d0f29d7ab715d1b918ade601f72e769a824d9a5c322383f22bbbda5dd396e79de2a077"
114
+ "packageManager": "npm@10.8.2+sha512.c7f0088c520a46596b85c6f8f1da943400199748a0f7ea8cb8df75469668dc26f6fb3ba26df87e2884a5ebe91557292d0f3db7d0929cdb4f14910c3032ac81fb"
115
115
  }