{"version":3,"sources":["jsdelivr-header.js","/npm/verb-readme-generator@0.1.21/index.js"],"names":[],"mappings":"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","file":"/npm/verb-readme-generator@0.1.21/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/verb-readme-generator@0.1.21/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nvar fs = require('fs');\nvar path = require('path');\nvar reflinks = require('gulp-reflinks');\nvar toc = require('markdown-toc');\nvar templates = path.resolve.bind(path, __dirname, 'templates');\nvar debug = require('debug')('base:verb:verb-readme-generator');\nvar common = require('common-middleware');\nvar handle = require('assemble-handle');\nvar depdocs = require('./lib/depdocs');\nvar helpers = require('./lib/helpers');\nvar utils = require('./lib/utils');\nvar lint = require('./lib/lint');\n\n/**\n * Verb readme generator\n */\n\nfunction generator(app, base) {\n  if (!utils.isValid(app, 'verb-readme-generator')) return;\n  setAppContext(app);\n  app.engine('hbs', require('engine-handlebars'));\n  app.handler('prePipeline');\n\n  app.on('error', function(err) {\n    console.log(err);\n    process.exit(1);\n  });\n\n  /**\n   * User's CWD\n   */\n\n  var cwd = path.resolve.bind(path, app.cwd);\n  // get verb config object from package.json\n  var config = app.base.get('cache.config') || {};\n\n  /**\n   * Helpers\n   */\n\n  helpers(app);\n  depdocs(app);\n  app.use(common());\n  app.helpers(require('template-helpers')());\n\n  /**\n   * Set options\n   */\n\n  app.option(app.pkg.get('verb') || {});\n  app.option('toc.footer', '\\n\\n_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_');\n  app.option('engineOpts', {delims: ['{%', '%}']});\n  app.option('toAlias', function readme(name) {\n    if (/^verb-.*?-\\w/.test(name)) {\n      return name.replace(/^verb-(.*?)-(?:\\w+)/, '$1');\n    }\n    return name.slice(name.lastIndexOf('-') + 1);\n  });\n\n  /**\n   * Plugins\n   */\n\n  app.option('linkify', function(token, name, slug, tocOpts) {\n    if (/[{<]%=?/.test(name)) {\n      var inst = new app.constructor();\n      var opts = app.options;\n      var engine = app.getEngine('*') || app.getEngine('md');\n      inst.engine('*', engine);\n      opts.engine = '*';\n      inst.data(app.cache.data);\n      var view = inst.view('toctemp.md', {content: name, layout: false});\n      inst.compile(view, opts);\n      token.content = view.fn(inst.cache.data);\n    }\n    toc.linkify(token, name, slug, tocOpts);\n    return token;\n  })\n\n  app.use(utils.conflicts());\n  app.use(require('verb-defaults'));\n  app.use(require('verb-collections'));\n  app.use(require('verb-repo-helpers'));\n  app.use(require('verb-repo-data'));\n  app.use(require('verb-toc'));\n  app.use(utils.questions());\n  app.use(utils.loader());\n  app.use(utils.pkg());\n\n  /**\n   * Middleware\n   */\n\n  app.task('middleware', { silent: true }, function(cb) {\n    if (app.option('sections')) {\n      app.onLoad(/\\.md$/, require('./lib/sections')(app));\n    }\n\n    app.preRender(/(verb|readme)\\.md$/i, function(file, next) {\n      utils.del(path.resolve(app.cwd, 'readme.md'), next);\n    });\n\n    app.onLoad(/(verb|readme)\\.md$/, lint.layout(app));\n    app.on('readme-generator:end', function() {\n      var warnings = app.get('cache.readmeWarnings');\n      warnings.forEach(function(obj) {\n        console.log(obj.filename + ' | ' + obj.message);\n      });\n    });\n\n    cb();\n  });\n\n  /**\n   * Loads data to used for rendering templates. Called by the [readme]() task.\n   *\n   * ```sh\n   * $ verb readme:data\n   * ```\n   * @name data\n   * @api public\n   */\n\n  app.task('data', { silent: true }, function(cb) {\n    debug('loading data');\n\n    // temporary data\n    app.data({\n      links: {\n        verb: {\n          repo: 'https://github.com/verbose/verb',\n          bugs: 'https://github.com/verbose/verb/issues',\n          getting_started: 'https://github.com/verb/getting-started'\n        },\n        generate: {\n          repo: 'https://github.com/generate/generate',\n          bugs: 'https://github.com/generate/generate/issues',\n          getting_started: 'https://github.com/generate/getting-started'\n        },\n        update: {\n          repo: 'https://github.com/update/update',\n          bugs: 'https://github.com/update/update/issues',\n          getting_started: 'https://github.com/update/getting-started'\n        }\n      }\n    });\n\n    if (!app.cache.data.verb) {\n      app.data({verb: {}});\n    }\n\n    if (!app.has('cache.data.verb.related.list')) {\n      app.data({\n        verb: {related: {list: []}}\n      });\n    }\n\n    if (utils.exists(cwd('bower.json'))) {\n      app.data({bower: true});\n    }\n\n    if (app.isGenerator) {\n      app.option('toAlias', function(name) {\n        return utils.camelcase(name.replace(/^generate-/, ''));\n      });\n    }\n\n    app.data('name', app.pkg.get('name') || app.cache.data.name);\n    app.data({prefix: 'Copyright'});\n    debug('data finished');\n    cb();\n  });\n\n  /**\n   * Add a `.verb.md` template to the current working directory.\n   *\n   * ```sh\n   * $ verb readme:new\n   * ```\n   * @name new\n   * @api public\n   */\n\n  app.task('new', function() {\n    var dest = path.resolve(app.option('dest') || app.cwd);\n    app.file('.verb.md', readTemplate(app, 'verbmd/basic.md'));\n    return app.toStream('files')\n      .pipe(app.conflicts(dest))\n      .pipe(app.dest(function(file) {\n        file.base = dest;\n        file.path = path.resolve(file.base, '.verb.md');\n        return dest;\n      }));\n  });\n\n  /**\n   * Load the `.verb.md` in the user's current working directory. If no `.verb.md`\n   * file exists, the [prompt-verbmd)() task is called to ask the user if they want to\n   * add the file. Disable the prompt by passing `--verbmd=false` on the command line,\n   * or `app.disable('verbmd')` via API.\n   *\n   * ```sh\n   * $ verb readme:verbmd\n   * ```\n   * @name verbmd\n   * @api public\n   */\n\n  app.task('verbmd', { silent: true }, function(cb) {\n    debug('loading .verb.md');\n\n    if (app.views.files['README'] || app.views.files['.verb'] || app.options.verbmd === false) {\n      cb();\n      return;\n    }\n\n    // try to load \".verb.md\" or custom file from user cwd\n    var readme = cwd(app.option('readme') || '.verb.md');\n    if (utils.exists(readme)) {\n      app.file('README.md', readTemplate(app, readme, app.cwd));\n      cb();\n      return;\n    }\n    app.build('ask', cb);\n  });\n\n  /**\n   * Prompts the user to add a new `.verb.md` template to the current working directory.\n   * Useful in sub-generators.\n   *\n   * ```sh\n   * $ verb readme:prompt-verbmd\n   * ```\n   * @name prompt-verbmd\n   * @api public\n   */\n\n  app.task('prompt-verbmd', function(cb) {\n    // if no .verb.md exists, offer to add one\n    app.confirm('verbmd', 'Can\\'t find a .verb.md, want to add one?');\n    app.ask('verbmd', { save: false }, function(err, answers) {\n      if (err) return cb(err);\n      if (answers.verbmd) {\n        app.build('new', cb);\n      } else {\n        cb();\n      }\n    });\n  });\n\n  /**\n   * User-friendly alias for the [prompt-verbmd]() task. _(This task is aliased with both a\n   * terse and long-form name so that in the case this generator is inherited by another\n   * and the generator already has an `ask` task, the `prompt-verbmd` task will still be\n   * available to use via API.)_\n   *\n   * ```sh\n   * $ verb readme:ask\n   * ```\n   * @name ask\n   * @api public\n   */\n\n  app.task('ask', ['prompt-verbmd']);\n\n  /**\n   * Load layouts, includes and badges commonly used for generating a README.md.\n   *\n   * ```sh\n   * $ verb readme:templates\n   * ```\n   * @name templates\n   * @api public\n   */\n\n  app.task('templates', { silent: true }, function(cb) {\n    debug('loading templates');\n\n    app.option('renameKey', function(key, file) {\n      var name = file ? file.relative : path.relative(app.cwd, key);\n      var ext = path.extname(name);\n      var str = name.replace(/^(templates|docs)\\/?(layouts|includes)\\/?/, '');\n      return ext ? str.slice(0, str.length - ext.length) : str;\n    });\n\n    // load `docs` templates in user cwd\n    app.docs('*.md', {cwd: templates('docs')});\n    if (utils.exists(cwd('docs')) && app.pkg.get('verb.options.docs') !== false) {\n      app.docs('*.md', {cwd: path.resolve(app.cwd, 'docs')});\n    }\n\n    // load `layout` templates\n    app.layouts('*.md', { cwd: templates('layouts') });\n\n    // load `include` templates\n    app.includes('**/*.md', { cwd: templates('includes') });\n    app.includes(require('./templates/includes'));\n    if (utils.exists(cwd('docs'))) {\n      app.includes('*.md', {cwd: cwd('docs')});\n    }\n\n    // load `badges` templates\n    app.badges(require('./templates/badges'));\n    if (typeof config.views === 'undefined') {\n      cb();\n      return;\n    }\n\n    // call `.config.process` again to override built-in templates\n    // with any templates defined in `package.json`\n    app.config.process({views: config.views}, function(err) {\n      if (err) return cb(err);\n      debug('templates finished');\n      cb();\n    });\n  });\n\n  /**\n   * Load `options`, `plugins`, `middleware` and `data` before calling a task\n   * to render templats.\n   *\n   * ```sh\n   * $ verb readme:setup\n   * ```\n   * @name setup\n   * @api public\n   */\n\n  app.task('setup', {silent: true}, ['middleware', 'data', 'templates']);\n\n  /**\n   * Generate a README.md from a `.verb.md` template. Runs the [middleware](), [templates](),\n   * and [data]() tasks. This is a [verb](){/docs/tasks/#silent} task.\n   *\n   * ```sh\n   * $ verb readme\n   * ```\n   * @name readme\n   * @api public\n   */\n\n  app.task('readme', {silent: true}, ['setup', 'verbmd'], function(cb) {\n    debug('starting readme task');\n    var readme = path.resolve(app.cwd, app.option('readme') || '.verb.md');\n    var dest = path.resolve(app.option('dest') || app.cwd);\n\n    app.engine('md', require('engine-base'), {delims: ['{%', '%}']});\n    app.data(app.base.cache.data);\n    app.helpers(app.base._.helpers.async);\n    app.helpers(app.base._.helpers.sync);\n\n    app.toStream('files', utils.filter(readme)).on('error', cb)\n      .pipe(app.renderFile('hbs', app.cache.data)).on('error', cb)\n      .pipe(app.renderFile('md', app.cache.data)).on('error', cb)\n      .pipe(handle(app, 'prePipeline')).on('error', cb)\n      .pipe(app.pipeline(app.options.pipeline)).on('error', cb)\n      .pipe(reflinks())\n      .pipe(app.dest(function(file) {\n        if (file._reflinks) {\n          app.pkg.union('verb.reflinks', file._reflinks);\n          app.pkg.logInfo('updated package.json with:', {reflinks: file._reflinks});\n          app.pkg.save();\n        }\n        file.basename = 'README.md';\n        return dest;\n      }))\n      .on('error', cb)\n      .on('end', cb);\n  });\n\n  /**\n   * Alias for the [readme]() task, generates a README.md to the user's working directory.\n   *\n   * ```sh\n   * $ verb readme\n   * ```\n   * @name default\n   * @api public\n   */\n\n  app.task('default', ['readme'], function(cb) {\n    this.on('finished', app.emit.bind(app, 'readme-generator:end'));\n    cb();\n  });\n\n  return generator;\n}\n\nfunction setAppContext(app) {\n  var name = app.pkg.get('name');\n  var platform = {};\n\n  if (/^base-?/.test(name)) {\n    platform.repo = 'node-base/base';\n    platform.docs = `https://github.com/${platform.repo}/blob/master/docs`;\n    platform.proper = 'Base';\n    platform.name = 'base';\n    platform.command = 'base';\n    platform.configname = 'basefile';\n    platform.configfile = 'basefile.js';\n  } else if (/^assemble-?/.test(name)) {\n    platform.repo = 'assemble/assemble';\n    platform.docs = `https://github.com/${platform.repo}/blob/master/docs`;\n    platform.proper = 'Assemble';\n    platform.name = 'assemble';\n    platform.command = 'assemble';\n    platform.configname = 'assemblefile';\n    platform.configfile = 'assemblefile.js';\n  } else if (/^generate-?/.test(name)) {\n    platform.repo = 'generate/generate';\n    platform.docs = `https://github.com/${platform.repo}/blob/master/docs`;\n    platform.proper = 'Generate';\n    platform.name = 'generate';\n    platform.command = 'gen';\n    platform.configname = 'generator';\n    platform.configfile = 'generator.js';\n  } else if (/^(updater-?|update)/.test(name)) {\n    platform.repo = 'update/update';\n    platform.docs = `https://github.com/${platform.repo}/blob/master/docs`;\n    platform.proper = 'Update';\n    platform.name = 'update';\n    platform.command = 'update';\n    platform.configname = 'updater';\n    platform.configfile = 'updatefile.js';\n  } else if (/^verb-?/.test(name)) {\n    platform.repo = 'verbose/verb';\n    platform.docs = `https://github.com/${platform.repo}/blob/master/docs`;\n    platform.proper = 'Verb';\n    platform.name = 'verb';\n    platform.command = 'verb';\n    platform.configname = 'verbfile';\n    platform.configfile = 'verbfile.js';\n  }\n  app.data('platform', platform);\n  app.base.data('platform', platform);\n}\n\n/**\n * Read a template\n *\n * @param {Object} `verb`\n * @param {String} `fp`\n * @param {String} `base`\n * @return {String}\n */\n\nfunction readTemplate(app, filepath, base) {\n  var dir = base || app.env.templates || templates();\n  var absolute = path.resolve(path.resolve(dir), filepath);\n  return {\n    contents: fs.readFileSync(absolute),\n    path: absolute\n  };\n}\n\n/**\n * Expose `generator`\n */\n\nmodule.exports = generator;\n"]}