UNPKG

tldw

Version:

Overwrites the readme based on info fetched from package.json and source code.

6 lines 20.2 kB
#!/usr/bin/env node /*! *** tldw 6.11.0 *** Copyright © 2020, Jaid <jaid.jsx@gmail.com> (https://github.com/Jaid) *** @license MIT !*/!function(e){var n={};function t(i){if(n[i])return n[i].exports;var a=n[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,t),a.l=!0,a.exports}t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:i})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var a in e)t.d(i,a,function(n){return e[n]}.bind(null,a));return i},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=37)}([function(e,n){e.exports=require("path")},function(e,n){e.exports=require("has-content")},function(e,n){e.exports=require("@absolunet/fsp")},function(e,n){e.exports=require("read-file-yaml")},function(e,n){e.exports=require("read-file-string")},function(e,n){e.exports=require("debug")},function(e,n){e.exports=require("chalk")},function(e,n){e.exports=require("handlebars")},function(e,n,t){var i=t(31).Symbol;e.exports=i},function(e,n,t){var i=t(30),a=t(35),o=t(36);e.exports=function(e){return"string"==typeof e||!a(e)&&o(e)&&"[object String]"==i(e)}},function(e,n){e.exports=require("filesize")},function(e,n){e.exports=require("git-url-parse")},function(e,n){e.exports=require("normalize-package-data")},function(e,n){e.exports=require("sort-object")},function(e,n){e.exports=require("url-parse")},function(e,n){e.exports=require("yargs")},function(e,n){e.exports=require("execa")},function(e,n){e.exports=require("first-existing-path")},function(e,n){e.exports=require("tempy")},function(e,n){e.exports=require("array-to-object-keys")},function(e,n){e.exports=require("globby")},function(e,n){e.exports=require("prevent-end")},function(e,n){e.exports=require("read-file-json")},function(e,n){e.exports=require("ensure-object")},function(e,n){e.exports={legal:"Legal",warning:"Warning",usage:"Usage",advancedUsage:"Advanced Usage",example:!0,options:!0,development:!0,description:!0,result:!0,related:"Related",faq:"Questions & Answers"}},function(e,n){e.exports=require("camelcase")},function(e,n){e.exports=require("pascal-case")},function(e,n){e.exports=require("just-handlebars-helpers")},function(e,n){e.exports=require("build-url")},function(e,n){e.exports=require("ensure-array")},function(e,n,t){var i=t(8),a=t(33),o=t(34),s=i?i.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?a(e):o(e)}},function(e,n,t){var i=t(32),a="object"==typeof self&&self&&self.Object===Object&&self,o=i||a||Function("return this")();e.exports=o},function(e,n){var t="object"==typeof global&&global&&global.Object===Object&&global;e.exports=t},function(e,n,t){var i=t(8),a=Object.prototype,o=a.hasOwnProperty,s=a.toString,r=i?i.toStringTag:void 0;e.exports=function(e){var n=o.call(e,r),t=e[r];try{e[r]=void 0;var i=!0}catch(e){}var a=s.call(e);return i&&(n?e[r]=t:delete e[r]),a}},function(e,n){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},function(e,n){var t=Array.isArray;e.exports=t},function(e,n){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,n,t){"use strict";t.r(n);var i=t(9),a=t.n(i),o=t(2),s=t.n(o),r=t(6),l=t.n(r),c=t(10),p=t.n(c),u=t(11),g=t.n(u),m=t(1),d=t.n(m),f=t(12),h=t.n(f),b=t(0),y=t.n(b),v=t(4),k=t.n(v),x=t(3),w=t.n(x),j=t(13),$=t.n(j),T=t(14),O=t.n(T),q=t(15),S=t.n(q),C=t(16),E=t.n(C),N=t(17),D=t.n(N),A=t(18),P=t.n(A);const H=t(5)("tldw"),F=["webLib","webClass"],I=["universalLib","universalClass"],L=t(5)("tldw");var _=async e=>{L(`Reading config from ${e}`);const n=await w()(e)||{},t=await s.a.pathExists(".github/workflows");return{binName:"global"===n.installation,githubActions:t,personal:!1,jsdoc:!1,link:null,linkName:null,installation:!1,environmentVariables:{},needsNodeRuntime:!0,tryInBrowser:null,...n}},M=t(19),R=t(20),V=t.n(R),U=t(21),B=t.n(U),G=async e=>{const n=await V()("result*.js",{cwd:e.configDirectory,onlyFiles:!0,caseSensitiveMatch:!0}),t=e=>B()(e,".js"),i=Array(n.length);for(let e=0;e<=n.length-1;e++)i[e]=t(n[e]);return await Object(M.parallel)(i,async n=>{const t=y.a.join(e.configDirectory,`${n}.js`);return await k()(t)})},J=t(22),z=t.n(J);const W=t(5)("tldw");var K=async e=>{W(`Reading pkg from ${e}`);const n=await z()(e)||{};if(!n.name){const t=y.a.basename(y.a.resolve(e,".."));W(`Setting pkg.name to ${t}`),n.name=t}return n.version||(W("Setting pkg.version to 1.0.0"),n.version="1.0.0"),n},Y=t(23),Q=t.n(Y),X=new Intl.Collator(void 0);const Z=t(5)("tldw");function ee(e,n){return e.required&&!n.required?-1:n.required&&!e.required?1:X.compare(e.name,n.name)}var ne=async e=>{Z(`Reading config from ${e}`);const[n,t]=await Promise.all([w()(e),w()("action.yml")]),i=Object.entries(n||{}),a=([e,n])=>({name:e,...Q()(n,"default")}),o=Array(i.length);for(let e=0;e<=i.length-1;e++)o[e]=a(i[e]);if(null==t?void 0:t.inputs)for(const[e,n]of Object.entries(t.inputs)){let t=o.find(n=>n.name===e);t?Z(`Option "${e}" is defined in both readme/usageOptions.yml and action.yml, will be merged with usageOptions.yml prioritized`):(t={name:e},o.push(t)),void 0===t.info&&n.description&&(t.info=n.description),void 0===t.default&&n.default&&(t.default=n.default),void 0===t.required&&n.required&&(t.required=!0)}if(Object(m.isEmpty)(o))return null;o.sort(ee);const s=Object.values(o);return{entries:o,anyEntryHasType:!!s.find(e=>d()(e.type)),anyEntryHasInfo:!!s.find(e=>d()(e.info)),anyEntryHasRequired:!!s.find(e=>e.required),anyEntryHasDefault:!!s.find(e=>d()(e.default))}},te=t(24),ie=t.n(te),ae=t(25),oe=t.n(ae),se=t(26),re=t(7),le=t.n(re),ce=t(27),pe=t.n(ce),ue=t(28),ge=t.n(ue),me=t(29),de=t.n(me);function fe(e){return e.replace(/-/g,"--").replace(/_/g,"__")}t(5)("tldw");var he=e=>{const n=e.baseUrl||"https://img.shields.io",t=e.altText||"Shield",i=e.color||null,a=e.query||{},o={style:e.style||"flat-square",...a};let s;e.logo&&(o.logo=e.logo),e.logoColor&&(o.logoColor=e.logoColor),e.label&&(o.label=e.label),e.path?(s=de()(e.path).join("/"),i&&(o.color=i)):s=`badge/${fe(e.leftText||"Left")}-${fe(e.rightText||"Right")}-${i}`;const r=`<img src="${ge()(n,{path:s,queryParams:o})}" alt="${t}"/>`;return e.link?`<a href="${e.link}">${r}</a>`:r};pe.a.registerHelpers(le.a),le.a.registerHelper("shield",(e,...n)=>{if("npm"===e){const e=n[0];return he({altText:`${e} on npm`,leftText:"npm",rightText:e,logo:"npm",color:"C23039",link:`https://npmjs.com/package/${e}`})}if("yarn"===e){const e=n[0];return he({altText:`${e} on Yarn`,leftText:"Yarn",rightText:e,logo:"yarn",logoColor:"white",color:"2F8CB7",link:`https://yarnpkg.com/package/${e}`})}if("jsdelivr"===e){const e=n[0];return he({altText:`${e} on jsDelivr`,leftText:"jsDelivr",rightText:e,logo:"html5",color:"orange",logoColor:"white",link:`https://jsdelivr.com/package/npm/${e}/`})}if("unpkg"===e){const e=n[0];return he({altText:`${e} on UNPKG`,leftText:"UNPKG",rightText:e,logo:"html5",color:"orange",logoColor:"white",link:`https://unpkg.com/browse/${e}/`})}if("commitsSince"===e){const e=n[0],t=n[1];return he({path:["github","commits-since",e,t],altText:`Commits since ${t}`,logo:"github",link:`https://github.com/${e}/commits`})}if("issues"===e){const e=n[0];return he({path:["github","issues",e],altText:"Issues",logo:"github",link:`https://github.com/${e}/issues`})}if("license"===e){const e=n[0];return he({path:["github","license",e],altText:"License",link:`https://raw.githubusercontent.com/${e}/master/license.txt`})}if("lastCommit"===e){const e=n[0];return he({path:["github","last-commit",e],altText:"Last commit",logo:"github",link:`https://github.com/${e}/commits`})}if("githubPackages"===e){const e=n[0],t=`@${e}`;return he({logo:"github",link:`https://github.com/${e}/packages`,altText:`${t} on GitHub Packages`,leftText:"GitHub Packages",rightText:t,color:"24282e"})}if("dependents"===e){const e=n[0],t=n[1];return he({path:["librariesio","dependents","npm",e],altText:"Dependents",logo:"npm",link:`https://github.com/${t}/network/dependents`})}if("npmDownloads"===e){const e=n[0];return he({path:["npm","dm",e],altText:"Downloads",logo:"npm",link:`https://npmjs.com/package/${e}`})}if("npmLatest"===e){const e=n[0];return he({path:["npm","v",e],altText:"Latest version on npm",logo:"npm",link:`https://npmjs.com/package/${e}`,label:"latest version"})}if("actions"===e){const e=n[0];return he({altText:"Build status",link:`https://actions-badge.atrox.dev/${e}/goto`,path:"endpoint.svg",query:{url:`https://actions-badge.atrox.dev/${e}/badge`}})}if("sponsor"===e){const e=n[0],t=n[1];return he({altText:`Sponsor ${e}`,link:t,leftText:"<3",rightText:"Sponsor",color:"FF45F1"})}}),le.a.registerHelper("escapeMarkdown",e=>e.replace(/</g,"\\<"));var be=le.a;const ye=process.cwd(),ve=async e=>{var n,t,i;await s.a.pathExists(e.packageFile)||(console.warn("No pkg data found, stopping"),process.exit(1));const o=[K(e.packageFile),_(y.a.join(e.configDirectory,"config.yml")),ne(y.a.join(e.configDirectory,"usageOptions.yml")),k()(y.a.join(e.configDirectory,"example.js")),G(e),k()(e.licenseFile),w()(y.a.join(e.configDirectory,"envVars.yml"))];for(const[n,t]of Object.entries(ie.a))o.push((async()=>{const i=y.a.join(e.configDirectory,`${n}.md`);let o=await k()(i);return a()(t)&&o&&(o=`## ${t}\n\n${o}`),{id:n,content:o}})());const[r,c,u,f,b,v,x,...j]=await Promise.all(o);h()(r),x&&Object.assign(c.environmentVariables,x),d()(c.environmentVariables)&&(c.environmentVariables=$()(c.environmentVariables));const T=d()(u),q={pkg:r,args:e,config:c,example:f,exampleResults:b,license:v,usageOptions:u,hasUsageOptions:T,repository:null===(n=r.repository)||void 0===n?void 0:n.url,hasEnvironmentVariables:d()(c.environmentVariables),developmentScripts:[],fragments:{},title:r.title||r.domain||r.name,binName:!1,tag:`v${r.version}`,worksAsScriptTag:!c.needsNodeRuntime};q.repository||(console.warn("tldw is made for GitHub repositories, but package.json#repository is not set"),console.warn("Doing nothing"),process.exit(0)),q.slug=g()(q.repository).full_name,null===c.link&&r.domain&&(c.link=`https://${r.domain}`),c.link&&null===c.linkName&&(c.linkName=O()(c.link).host),null===c.tryInBrowser&&(c.tryInBrowser=q.worksAsScriptTag),q.runtime||(q.runtime=c.runtime||(e=>{const n=e.pkg.webpackConfigJaid;return F.includes(n)?"web":I.includes(n)?"hybrid":"node"})(q)),!0===c.binName?q.binName=r.name:c.binName&&(q.binName=c.binName),q.binExample||(c.binExample?q.binExample=c.binExample:q.binName&&(q.binExample=q.binName));for(const{id:e,content:n}of j)n&&(q.fragments[e]=n);q.license&&q.license.startsWith("MIT License")&&(q.isMitLicense=!0,q.license=q.license.split("\n")[2]),q.developmentScripts.push({name:"Setting up:",script:`git clone git@github.com:${q.slug}.git\ncd ${r.name}\nnpm install`}),(null==r||null===(t=r.scripts)||void 0===t?void 0:t["test:dev"])&&q.developmentScripts.push({name:"Testing:",script:"npm run test:dev"}),(null==r||null===(i=r.scripts)||void 0===i?void 0:i.test)&&q.developmentScripts.push({name:"Testing in production environment:",script:"npm run test"}),q.hasExampleSection=!(!q.example&&!q.fragments.example),q.hasDevelopmentSection=!!q.fragments.development||d()(q.developmentScripts),q.hasOptionsSection=T||!!q.fragments.options,c.jsdoc&&(q.apiMarkdown=await(async e=>{try{const n=await async function(){const e=await async function(){const e=["jsdoc-export-default-interop/dist/index.js","jsdoc-babel/lib/index.js"],n=async e=>{const n=[y.a.resolve("node_modules",e),y.a.resolve(__dirname,"node_modules",e)],t=await D()(n);if(!t)throw new Error(`Could not find ${e}. Searched in: ${n}`);return H("Found file",t),t},t=Array(e.length);for(let i=0;e.length-1>=i;i++)t[i]=n(e[i]);const[i,a]=await Promise.all(t);return{jsdocExportDefaultInteropPath:i,jsdocBabelPath:a}}(),n={opts:{recurse:!0,encoding:"utf8"},sourceType:"module",plugins:[]};return n.plugins.unshift(e.jsdocBabelPath),n.babel={caller:{name:"tldw"},cwd:process.cwd(),root:process.cwd(),comments:!0,envName:"development"},n}(),t=await P.a.file({extension:"json"});H(`JSDoc config written to: ${t}`),await s.a.outputJson(t,n);const i=["jsdoc-to-markdown","--files",e.args.sourceGlob,"--example-lang","javascript","--configure",t],a=await E()("npx",i);return H(`Executed: ${a.command}`),H(`= ${a.exitCode}`),Object(m.isEmpty)(a.stdout)?null:a.stdout.replace(/## \S+/s,"## Reference")}catch(e){return console.warn("Could not run JSDoc"),console.warn(e),null}})(q));const S=await(async e=>{var n,t,i;return e.installationCommands=[],e.description=(null===(n=e.pkg)||void 0===n?void 0:n.description)||null,e.camelCaseName=oe()(e.pkg.name),e.pascalCaseName=Object(se.pascalCase)(e.pkg.name),e.globalName=(null===(t=e.pkg)||void 0===t||null===(i=t.webpackConfigJaid)||void 0===i?void 0:i.endsWith("Class"))?e.pascalCaseName:e.camelCaseName,"prod"===e.config.installation&&(e.installationCommands.push({header:"npm",headerArgument:e.pkg.name,command:`npm install --save ${e.pkg.name}@^${e.pkg.version}`}),e.installationCommands.push({header:"yarn",headerArgument:e.pkg.name,command:`yarn add ${e.pkg.name}@^${e.pkg.version}`}),e.slug&&e.installationCommands.push({header:"githubPackages",headerArgument:e.slug,bonusText:"(if [configured properly](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-npm-for-use-with-github-packages))",command:`npm install --save @${e.slug}@^${e.pkg.version}`})),"dev"===e.config.installation&&(e.installationCommands.push({header:"npm",headerArgument:e.pkg.name,command:`npm install --save-dev ${e.pkg.name}@^${e.pkg.version}`}),e.installationCommands.push({header:"yarn",headerArgument:e.pkg.name,command:`yarn add --dev ${e.pkg.name}@^${e.pkg.version}`}),e.slug&&e.installationCommands.push({header:"githubPackages",headerArgument:e.slug,bonusText:"(if [configured properly](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-npm-for-use-with-github-packages))",command:`npm install --save-dev @${e.slug}@^${e.pkg.version}`})),"global"===e.config.installation&&(e.installationCommands.push({header:"npm",headerArgument:e.pkg.name,command:`npm install --global ${e.pkg.name}@^${e.pkg.version}`}),e.installationCommands.push({header:"yarn",headerArgument:e.pkg.name,command:`yarn global add ${e.pkg.name}@^${e.pkg.version}`}),e.slug&&e.installationCommands.push({header:"githubPackages",headerArgument:e.slug,bonusText:"(if [configured properly](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-npm-for-use-with-github-packages))",command:`npm install --global @${e.slug}@^${e.pkg.version}`})),be.compile('# {{title}}\n\n{{#if logo}}\nlogo\n{{/if}}\n\n{{{shield "license" slug}}} {{#if pkg.funding}}{{{shield "sponsor" pkg.name pkg.funding}}}{{/if}} \n{{#if config.githubActions}}{{{shield "actions" slug}}}{{/if}} {{{shield "commitsSince" slug tag}}} {{{shield "lastCommit" slug}}} {{{shield "issues" slug}}} \n{{#if installationCommands.length}}\n{{{shield "npmLatest" pkg.name}}} {{{shield "dependents" pkg.name slug}}} {{{shield "npmDownloads" pkg.name}}}\n{{/if}}\n\n{{#if description}}\n**{{{description}}}**\n{{/if}}\n\n{{#if config.personal}}\n#### Opinionated\n\nThis project is tailored to my personal needs and workflows and therefore highly opinionated. Feel free to use it or get inspired by it, but please do not get frustrated if you come across weird features or have difficulties integrating it in your own ecosystem.\n{{/if}}\n\n{{{fragments.description}}}\n\n{{#if config.link}}\n##### View online at [{{{config.linkName}}}]({{{config.link}}}).\n{{/if}}\n\n{{#if installationCommands.length}}\n## Installation\n{{#each installationCommands}}\n\n{{{shield header headerArgument}}}{{#if bonusText}} \n{{{bonusText}}}{{/if}}\n\n```bash\n{{command}}\n```\n{{/each}}\n{{#if worksAsScriptTag}}\n{{{shield "jsdelivr" pkg.name}}} {{{shield "unpkg" pkg.name}}}\n```html\n<script src="https://cdn.jsdelivr.net/npm/{{{pkg.name}}}@{{{pkg.version}}}/index.js" />\n```\n{{/if}}\n{{/if}}\n\n{{{fragments.warning}}}\n\n{{#if hasExampleSection}}\n## Example\n\n{{{fragments.example}}}\n{{#if example}}\n```javascript\n{{{example}}}\n```\n{{/if}}\n\n{{#each exampleResults}}\nVariable `{{{@key}}}` will be:\n\n```javascript\n{{{this}}}\n```\n{{/each}}\n{{else}}\n{{{fragments.example}}}\n{{/if}}\n{{{fragments.result}}}\n\n{{{fragments.usage}}}\n\n{{{fragments.advancedUsage}}}\n\n{{#if hasOptionsSection}}\n## Options\n\n{{{fragments.options}}}\n\n{{#if hasUsageOptions}}\n<table>\n<tr>\n<th></th>\n{{#if usageOptions.anyEntryHasRequired}}\n<th></th>\n{{/if}}\n{{#if usageOptions.anyEntryHasType}}\n<th>Type</th>\n{{/if}}\n{{#if usageOptions.anyEntryHasDefault}}\n<th>Default</th>\n{{/if}}\n{{#if usageOptions.anyEntryHasInfo}}\n<th>Info</th>\n{{/if}}\n</tr>\n{{#each usageOptions.entries}}\n<tr>\n<td>{{{name}}}</td>\n{{#if ../usageOptions.anyEntryHasRequired}}\n<td>{{#if required}}*{{/if}}</td>\n{{/if}}\n{{#if ../usageOptions.anyEntryHasType}}\n<td>{{{type}}}</td>\n{{/if}}\n{{#if ../usageOptions.anyEntryHasDefault}}\n<td>{{{default}}}</td>\n{{/if}}\n{{#if ../usageOptions.anyEntryHasInfo}}\n<td>{{{info}}}</td>\n{{/if}}\n</tr>\n{{/each}}\n</table>\n{{/if}}\n{{/if}}\n\n{{#if config.tryInBrowser}}\n## Try it out\n\n{{{shield "web" pkg.name}}}\n\nOpen a browser\'s JavaScript console and execute:\n\n```javascript\nconst scriptElement = document.createElement("script");\nscriptElement.setAttribute("type", "text/javascript");\nscriptElement.setAttribute("src", "https://cdn.jsdelivr.net/npm/{{pkg.name}}@{{pkg.version}}/index.js");\ndocument.querySelector("head").appendChild(scriptElement);\n```\n\n{{{title}}} is now stored in the global variable `{{{globalName}}}`. The following console expression should return something other than `"undefined"`.\n\n```javascript\ntypeof {{globalName}}.default\n```\n{{/if}}\n\n{{{apiMarkdown}}}\n{{#if binName}}\n## CLI Usage\nAfter installing package `{{{pkg.name}}}` globally, you can use its command line interface.\n```bash\n{{{binExample}}}\n```\nFor usage instructions:\n```bash\n{{{binName}}} --help\n```\n{{/if}}\n\n{{#if hasEnvironmentVariables}}\n## Environment Variables\n\nFollowing environment variables are read by {{{title}}}:\n\nName|Description\n---|---\n{{#each config.environmentVariables}}\n{{{@key}}}|{{{this}}}\n{{/each}}\n{{/if}}\n\n{{{fragments.related}}}\n\n{{{fragments.faq}}}\n\n{{{fragments.legal}}}\n\n{{#if hasDevelopmentSection}}\n## Development\n\n{{{fragments.development}}}\n\n{{#each developmentScripts}}\n{{{name}}}\n```bash\n{{{script}}}\n```\n{{/each}}\n\n{{/if}}\n\n{{#if license}}\n## License\n{{#if isMitLicense}}\n[MIT License](https://raw.githubusercontent.com/{{{slug}}}/master/license.txt) \n{{{escapeMarkdown license}}}\n{{else}}\n```text\n{{{license}}}\n```\n{{/if}}\n{{/if}}')(e)})(q),C=await s.a.pathExists(e.outputFile);await s.a.outputFile(e.outputFile,S);const N=y.a.relative(ye,e.outputFile),A=`${l.a.green(C?"Overwrote":"Created")} ${l.a.yellow(N)} ${l.a.green("with")} ${l.a.yellow(p()(S.length))}`;console.log(A)};(async()=>{const e={"output-file":{alias:"o",type:"string",default:y.a.join(ye,"readme.md"),description:"Output file."},"config-directory":{alias:"c",type:"string",default:y.a.join(ye,"readme"),description:"Directory where config files for customizing readme output are stored in."},"package-file":{alias:"p",type:"string",default:y.a.join(ye,"package.json"),description:"Path to a package.json file."},"source-glob":{alias:"s",type:"string",default:"src/**",description:"Glob for source files that will be read for JSDoc comments."},"license-file":{alias:"l",type:"string",default:"license.txt",description:"Path to license file."}};S.a.scriptName("tldw").version("6.11.0").command("$0","Overwrites the readme based on info fetched from package.json and source code.",e,ve).argv})()}]);