@crustjs/man 0.0.2 → 0.1.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.
Files changed (2) hide show
  1. package/dist/index.js +9 -9
  2. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  // @bun
2
- var W=["January","February","March","April","May","June","July","August","September","October","November","December"];function Z(j){if(j.startsWith("."))return`\\&${j}`;return j}function E(j){if(typeof j==="number"&&!Number.isFinite(j))return String(j);if(Array.isArray(j))return j.map(String).join(", ");return JSON.stringify(j)}function M(j){return`[default: ${E(j)}]`}function _(j,P){if(P===void 0)return j??"";let q=M(P);if(!j)return q;return`${j} ${q}`}function k(j){let P=j.variadic?`${j.name}...`:j.name;return j.required?`<${P}>`:`[${P}]`}function A(j,P,q){if(j.usage)return j.usage;let G=[q.join(" ")];if(Object.keys(P.subCommands).length>0&&!P.run)G.push("<command>");if(P.args)for(let K of P.args)G.push(k(K));if(Object.keys(P.effectiveFlags).length>0)G.push("[options]");return G.join(" ")}function B(j,P){let q=[];if(P.short)q.push(`-${P.short}`);if(q.push(`--${j}`),P.type==="boolean"&&!P.noNegate)q.push(`--no-${j}`);return q.join(", ")}function D(j){return j.toUpperCase().replace(/[^A-Z0-9]+/g,"_").replace(/^_|_$/g,"")||"COMMAND"}function F(j){return j.replace(/\s+/g," ").trim()}function T(j){let P=F(j);if(P.startsWith("."))return`\\&${P}`;return P}function V(j){let P=8;for(let[q,G]of Object.entries(j))P=Math.max(P,B(q,G).length);return`${P}n`}function w(j){let P=8;for(let q of Object.keys(j.subCommands))P=Math.max(P,q.length);return`${P}n`}function S(j){if(j)return j;let P=process.env.SOURCE_DATE_EPOCH;if(P!==void 0){let G=Number.parseInt(P,10);if(!Number.isNaN(G)&&G>=0){let K=new Date(G*1000);return`${W[K.getUTCMonth()]} ${K.getUTCDate()}, ${K.getUTCFullYear()}`}}let q=new Date;return`${W[q.getMonth()]} ${q.getDate()}, ${q.getFullYear()}`}function U(j){let{root:P,name:q,section:G=1,date:K}=j,$=S(K),z=[P.meta.name],O=A(P.meta,P,z),Q=P.meta.description?.trim()||"No description provided.",C=[`.Dd ${$}`,`.Dt ${D(q)} ${G}`,".Os",".Sh NAME",`.Nm ${q}`,`.Nd ${T(Q)}`,".Sh SYNOPSIS",".Bd -literal",O,".Ed",".Sh DESCRIPTION"];for(let I of Q.split(`
3
- `))C.push(Z(I));let R=Object.keys(P.subCommands);if(R.length>0){C.push(".Sh SUBCOMMANDS"),C.push(`.Bl -tag -width ${w(P)}`);for(let I of R.sort()){let J=P.subCommands[I];if(!J)continue;C.push(`.It Nm ${I}`);let Y=J.meta.description?.trim()||"";if(Y)C.push(Y.split(`
4
- `).map(Z).join(`
5
- `))}C.push(".El")}let X=Object.entries(P.effectiveFlags).sort(([I],[J])=>I.localeCompare(J));if(X.length>0){C.push(".Sh OPTIONS"),C.push(`.Bl -tag -width ${V(P.effectiveFlags)}`);for(let[I,J]of X){let Y=B(I,J);C.push(`.It Sy ${Y}`);let H=_(J.description,J.default).trim();if(H)C.push(H.split(`
6
- `).map(Z).join(`
7
- `))}C.push(".El")}if(P.args&&P.args.length>0){C.push(".Sh ARGUMENTS"),C.push(".Bl -tag -width 12n");for(let I of P.args){C.push(`.It Ql ${k(I)}`);let J=_(I.description,I.default).trim();if(J)C.push(J.split(`
8
- `).map(Z).join(`
9
- `))}C.push(".El")}return C.push(""),C.join(`
10
- `)}import{mkdirSync as y,writeFileSync as L}from"fs";import{dirname as N}from"path";async function h(j){let{app:P,name:q,outfile:G,section:K=1,date:$,argv:z,logWarnings:O=!0}=j,{root:Q,warnings:C}=await P.prepareCommandTree({argv:z});if(O)for(let X of C)console.warn(`Warning: ${X}`);let R=U({root:Q,name:q,section:K,date:$});y(N(G),{recursive:!0}),L(G,R,"utf8")}export{h as writeManPage,U as renderManPageMdoc};
2
+ var C=["January","February","March","April","May","June","July","August","September","October","November","December"];function $(R){if(R.startsWith("."))return`\\&${R}`;return R}function F(R){if(typeof R==="number"&&!Number.isFinite(R))return String(R);if(Array.isArray(R))return R.map(String).join(", ");return JSON.stringify(R)}function T(R){return`[default: ${F(R)}]`}function w(R,P){if(P===void 0)return R??"";let q=T(P);if(!R)return q;return`${R} ${q}`}function M(R){let P=R.variadic?`${R.name}...`:R.name;return R.required?`<${P}>`:`[${P}]`}function D(R,P,q){if(R.usage)return R.usage;let j=[q.join(" ")];if(Object.keys(P.subCommands).length>0&&!P.run)j.push("<command>");if(P.args)for(let G of P.args)j.push(M(G));if(Object.keys(P.effectiveFlags).length>0)j.push("[options]");return j.join(" ")}function W(R,P){let q=[R];if(P.aliases)for(let G of P.aliases)q.push(G);let j=[];if(P.short)j.push(`-${P.short}`);for(let G of q)j.push(`--${G}`);if(P.type==="boolean"&&!P.noNegate)for(let G of q)j.push(`--no-${G}`);return j.join(", ")}function E(R){if(!R||R.length===0)return"";return`[choices: ${R.join(", ")}]`}function B(R,P,q){let j=w(R,P),G=E(q);if(!G)return j;if(!j)return G;return`${j} ${G}`}function V(R){return R.toUpperCase().replace(/[^A-Z0-9]+/g,"_").replace(/^_|_$/g,"")||"COMMAND"}function y(R){return R.replace(/\s+/g," ").trim()}function N(R){let P=y(R);if(P.startsWith("."))return`\\&${P}`;return P}function L(R){let P=8;for(let[q,j]of Object.entries(R))P=Math.max(P,W(q,j).length);return`${P}n`}function A(R,P){if(!P||P.length===0)return R;return`${R} (${P.join(", ")})`}function S(R){let P=8;for(let[q,j]of Object.entries(R.subCommands)){if(j.meta.hidden===!0)continue;let G=A(q,j.meta.aliases);P=Math.max(P,G.length)}return`${P}n`}function x(R){if(R)return R;let P=process.env.SOURCE_DATE_EPOCH;if(P!==void 0){let j=Number.parseInt(P,10);if(!Number.isNaN(j)&&j>=0){let G=new Date(j*1000);return`${C[G.getUTCMonth()]} ${G.getUTCDate()}, ${G.getUTCFullYear()}`}}let q=new Date;return`${C[q.getMonth()]} ${q.getDate()}, ${q.getFullYear()}`}function _(R){let{root:P,name:q,section:j=1,date:G}=R,z=x(G),O=[P.meta.name],U=D(P.meta,P,O),X=P.meta.description?.trim()||"No description provided.",I=[`.Dd ${z}`,`.Dt ${V(q)} ${j}`,".Os",".Sh NAME",`.Nm ${q}`,`.Nd ${N(X)}`,".Sh SYNOPSIS",".Bd -literal",U,".Ed",".Sh DESCRIPTION"];for(let J of X.split(`
3
+ `))I.push($(J));let Y=Object.entries(P.subCommands).filter(([,J])=>J.meta.hidden!==!0);if(Y.length>0){I.push(".Sh SUBCOMMANDS"),I.push(`.Bl -tag -width ${S(P)}`);for(let[J,K]of Y.sort(([Q],[H])=>Q.localeCompare(H))){I.push(`.It Nm ${A(J,K.meta.aliases)}`);let Q=K.meta.description?.trim()||"";if(Q)I.push(Q.split(`
4
+ `).map($).join(`
5
+ `))}I.push(".El")}let Z=Object.entries(P.effectiveFlags).sort(([J],[K])=>J.localeCompare(K));if(Z.length>0){I.push(".Sh OPTIONS"),I.push(`.Bl -tag -width ${L(P.effectiveFlags)}`);for(let[J,K]of Z){let Q=W(J,K);I.push(`.It Sy ${Q}`);let H=K.type==="string"?K.choices:void 0,k=B(K.description,K.default,H).trim();if(k)I.push(k.split(`
6
+ `).map($).join(`
7
+ `))}I.push(".El")}if(P.args&&P.args.length>0){I.push(".Sh ARGUMENTS"),I.push(".Bl -tag -width 12n");for(let J of P.args){I.push(`.It Ql ${M(J)}`);let K=J.type==="string"?J.choices:void 0,Q=B(J.description,J.default,K).trim();if(Q)I.push(Q.split(`
8
+ `).map($).join(`
9
+ `))}I.push(".El")}return I.push(""),I.join(`
10
+ `)}import{mkdirSync as v,writeFileSync as h}from"fs";import{dirname as p}from"path";async function g(R){let{app:P,name:q,outfile:j,section:G=1,date:z,argv:O,logWarnings:U=!0}=R,{root:X,warnings:I}=await P.prepareCommandTree({argv:O});if(U)for(let Z of I)console.warn(`Warning: ${Z}`);let Y=_({root:X,name:q,section:G,date:z});v(p(j),{recursive:!0}),h(j,Y,"utf8")}export{g as writeManPage,_ as renderManPageMdoc};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crustjs/man",
3
- "version": "0.0.2",
3
+ "version": "0.1.0",
4
4
  "description": "Generate mdoc(7) manual pages from Crust CLI definitions",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -43,12 +43,12 @@
43
43
  },
44
44
  "devDependencies": {
45
45
  "@crustjs/config": "0.0.0",
46
- "@crustjs/core": "0.0.16",
47
- "@crustjs/plugins": "0.0.21",
46
+ "@crustjs/core": "0.0.17",
47
+ "@crustjs/plugins": "0.1.0",
48
48
  "bunup": "^0.16.31"
49
49
  },
50
50
  "peerDependencies": {
51
- "@crustjs/core": "0.0.16",
52
- "typescript": "^6.0.2"
51
+ "@crustjs/core": "0.0.17",
52
+ "typescript": "^6.0.3"
53
53
  }
54
54
  }