{"version":3,"file":"index.mjs","sources":["../src/options-schemas/form8ion-plugin.js","../src/exists/exists.js","../src/exists/file.js","../src/exists/directory.js","../src/object-ungrouper.js","../src/options-validator.js","../src/prompts/question-names.js","../src/prompts/predicates.js","../src/prompts/questions.js","../src/enhancer-applier.js","../src/file-types.js","../src/config-file.js","../src/dependency-composer.js","../src/index.js"],"sourcesContent":["import joi from 'joi';\n\nexport default joi.object().required()\n  .keys({\n    scaffold: joi.func().minArity(1).required(),\n    lift: joi.func().minArity(1),\n    test: joi.func().arity(1)\n  })\n  .unknown();\n","import {promises as fs} from 'fs';\n\nexport default async function (path) {\n  try {\n    return await fs.stat(path);\n  } catch (e) {\n    if ('ENOENT' === e.code) return false;\n\n    throw e;\n  }\n}\n","import exists from './exists.js';\n\nexport default async function (path) {\n  const stats = await exists(path);\n\n  if (stats) {\n    return stats.isFile();\n  }\n\n  return stats;\n}\n","import exists from './exists.js';\n\nexport default async function (path) {\n  const stats = await exists(path);\n\n  if (stats) {\n    return stats.isDirectory();\n  }\n\n  return stats;\n}\n","export default function (groupedPlugins) {\n  return Object.values(groupedPlugins).reduce((acc, pluginGroup) => ({...acc, ...pluginGroup}), {});\n}\n","import * as hoek from '@hapi/hoek';\n\nexport default function (schema, options) {\n  const {error, value} = schema.validate(options);\n\n  hoek.assert(!error, error);\n\n  return value;\n}\n","export const questionNames = {\n  PROJECT_NAME: 'projectName',\n  DESCRIPTION: 'description',\n  VISIBILITY: 'visibility',\n  UNLICENSED: 'unlicensed',\n  LICENSE: 'license',\n  COPYRIGHT_HOLDER: 'copyrightHolder',\n  COPYRIGHT_YEAR: 'copyrightYear'\n};\n","import {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","import {basename} from 'path';\n/* eslint-disable-next-line import/extensions -- needed for the esm bundle */\nimport spdxLicenseList from 'spdx-license-list/simple.js';\n\nimport {questionNames} from './question-names.js';\nimport {\n  copyrightInformationShouldBeRequested,\n  licenseChoicesShouldBePresented,\n  unlicensedConfirmationShouldBePresented\n} from './predicates.js';\n\nfunction includeLicenseQuestions(copyrightHolder) {\n  return [\n    {\n      name: questionNames.UNLICENSED,\n      message: 'Since this is a private project, should it be unlicensed?',\n      type: 'confirm',\n      when: unlicensedConfirmationShouldBePresented,\n      default: true\n    },\n    {\n      name: questionNames.LICENSE,\n      message: 'How should this this project be licensed (https://choosealicense.com/)?',\n      type: 'list',\n      when: licenseChoicesShouldBePresented,\n      choices: Array.from(spdxLicenseList),\n      default: 'MIT'\n    },\n    {\n      name: questionNames.COPYRIGHT_HOLDER,\n      message: 'Who is the copyright holder of this project?',\n      when: copyrightInformationShouldBeRequested,\n      default: copyrightHolder\n    },\n    {\n      name: questionNames.COPYRIGHT_YEAR,\n      message: 'What is the copyright year?',\n      when: copyrightInformationShouldBeRequested,\n      default: new Date().getFullYear()\n    }\n  ];\n}\n\nexport function questionsForBaseDetails(decisions, projectRoot, copyrightHolder) {\n  return [\n    {\n      name: questionNames.PROJECT_NAME,\n      message: 'What is the name of this project?',\n      default: projectRoot && basename(projectRoot)\n    },\n    {name: questionNames.DESCRIPTION, message: 'How should this project be described?'},\n    {\n      name: questionNames.VISIBILITY,\n      message: 'Should this project be public or private?',\n      type: 'list',\n      choices: ['Public', 'Private'],\n      default: 'Private'\n    },\n    ...includeLicenseQuestions(copyrightHolder)\n  ];\n}\n","import deepmerge from 'deepmerge';\nimport {info, warn} from '@travi/cli-messages';\n\nasync function pluginAppliesToProject(pluginName, test, lift, options) {\n  if (!test) {\n    warn(`Plugin ${pluginName} does not provide a 'test' predicate`);\n\n    return false;\n  }\n\n  if (!lift) {\n    warn(`Plugin ${pluginName} does not provide a 'lift' function`);\n\n    return false;\n  }\n\n  return test(options);\n}\n\nexport default async function ({results = {}, enhancers = {}, options, dependencies = {}}) {\n  info('Applying Enhancers');\n\n  return Object.entries(enhancers)\n    .reduce(async (acc, [pluginName, {test, lift}]) => {\n      if (await pluginAppliesToProject(pluginName, test, lift, options)) {\n        const previousResults = await acc;\n\n        return deepmerge(\n          previousResults,\n          await lift({results: previousResults, ...options}, dependencies)\n        );\n      }\n\n      return acc;\n    }, results);\n}\n","export const fileTypes = {\n  JSON: 'json',\n  YAML: 'yaml',\n  COMMON_JS: 'common-js',\n  ES_MODULE: 'es-module',\n  JAVASCRIPT: 'javascript',\n  INI: 'initialization'\n};\n\nexport const fileTypeExtensions = {\n  [fileTypes.JSON]: 'json',\n  [fileTypes.YAML]: 'yml',\n  [fileTypes.COMMON_JS]: 'cjs',\n  [fileTypes.ES_MODULE]: 'mjs',\n  [fileTypes.JAVASCRIPT]: 'js',\n  [fileTypes.INI]: 'ini'\n};\n","import {promises as fs} from 'fs';\nimport {dump, load} from 'js-yaml';\nimport {parse, stringify} from 'ini';\nimport deepmerge from 'deepmerge';\n\nimport {fileTypes, fileTypeExtensions} from './file-types.js';\n\nfunction buildFilePathFrom(path, name, format) {\n  return `${path}/${name}.${fileTypeExtensions[format]}`;\n}\n\nexport async function loadExistingConfig({path, name, format}) {\n  const filePath = buildFilePathFrom(path, name, format);\n\n  if (fileTypes.JSON === format) {\n    return JSON.parse(await fs.readFile(filePath, 'utf-8'));\n  }\n\n  if (fileTypes.YAML === format) {\n    return load(await fs.readFile(filePath, 'utf-8'));\n  }\n\n  if (fileTypes.INI === format) {\n    return parse(await fs.readFile(filePath, 'utf-8'));\n  }\n\n  throw new Error('The requested format for the config file is unsupported');\n}\n\nexport function write({format, config, path, name}) {\n  const filePath = buildFilePathFrom(path, name, format);\n\n  if (fileTypes.JSON === format) {\n    return fs.writeFile(filePath, `${JSON.stringify(config, null, 2)}\\n`);\n  }\n\n  if (fileTypes.YAML === format) {\n    return fs.writeFile(filePath, dump(config));\n  }\n\n  if (fileTypes.INI === format) {\n    return fs.writeFile(filePath, stringify(config));\n  }\n\n  throw new Error('The requested format for the config file is unsupported');\n}\n\nexport async function mergeIntoExisting({format, config, path, name}) {\n  const existingConfig = await loadExistingConfig({path, name, format});\n\n  return write({format, config: deepmerge.all([existingConfig, config]), path, name});\n}\n","export default function composeDependenciesInto(functionToEnhance, dependencies) {\n  return options => functionToEnhance(options, dependencies);\n}\n","import * as schemas from './options-schemas/index.js';\n\nexport * from './exists/index.js';\nexport {default as ungroupObject} from './object-ungrouper.js';\nexport {default as validateOptions} from './options-validator.js';\nexport {questionNames} from './prompts/question-names.js';\nexport {questionsForBaseDetails} from './prompts/questions.js';\nexport {default as applyEnhancers} from './enhancer-applier.js';\nexport {\n  loadExistingConfig as loadConfigFile,\n  write as writeConfigFile,\n  mergeIntoExisting as mergeIntoExistingConfigFile\n} from './config-file.js';\nexport {default as composeDependenciesInto} from './dependency-composer.js';\n\nexport {fileTypes} from './file-types.js';\nexport const optionsSchemas = schemas;\n"],"names":["joi","object","required","keys","scaffold","func","minArity","lift","test","arity","unknown","path","fs","stat","e","code","stats","exists","isFile","isDirectory","groupedPlugins","Object","values","reduce","acc","pluginGroup","_objectSpread","schema","options","error","value","validate","hoek","assert","questionNames","PROJECT_NAME","DESCRIPTION","VISIBILITY","UNLICENSED","LICENSE","COPYRIGHT_HOLDER","COPYRIGHT_YEAR","unlicensedConfirmationShouldBePresented","answers","licenseChoicesShouldBePresented","copyrightInformationShouldBeRequested","includeLicenseQuestions","copyrightHolder","name","message","type","when","default","choices","Array","from","spdxLicenseList","Date","getFullYear","questionsForBaseDetails","decisions","projectRoot","basename","pluginAppliesToProject","pluginName","warn","results","enhancers","dependencies","info","entries","previousResults","deepmerge","fileTypes","JSON","YAML","COMMON_JS","ES_MODULE","JAVASCRIPT","INI","fileTypeExtensions","buildFilePathFrom","format","loadExistingConfig","filePath","parse","readFile","load","Error","write","config","writeFile","stringify","dump","mergeIntoExisting","existingConfig","all","composeDependenciesInto","functionToEnhance","optionsSchemas","schemas"],"mappings":"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"}