UNPKG

@bring-it/sample

Version:
34 lines 14.4 kB
export const __webpack_id__=603;export const __webpack_ids__=[603];export const __webpack_modules__={603:(e,t,n)=>{n.r(t),n.d(t,{action:()=>ae});var o=n(455);const r=(e=0)=>t=>`\x1b[${t+e}m`,i=(e=0)=>t=>`\x1b[${38+e};5;${t}m`,s=(e=0)=>(t,n,o)=>`\x1b[${38+e};2;${t};${n};${o}m`,a={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(a.modifier),Object.keys(a.color),Object.keys(a.bgColor);const l=function(){const e=new Map;for(const[t,n]of Object.entries(a)){for(const[t,o]of Object.entries(n))a[t]={open:`\x1b[${o[0]}m`,close:`\x1b[${o[1]}m`},n[t]=a[t],e.set(o[0],o[1]);Object.defineProperty(a,t,{value:n,enumerable:!1})}return Object.defineProperty(a,"codes",{value:e,enumerable:!1}),a.color.close="\x1b[39m",a.bgColor.close="\x1b[49m",a.color.ansi=r(),a.color.ansi256=i(),a.color.ansi16m=s(),a.bgColor.ansi=r(10),a.bgColor.ansi256=i(10),a.bgColor.ansi16m=s(10),Object.defineProperties(a,{rgbToAnsi256:{value:(e,t,n)=>e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value(e){const t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;3===n.length&&(n=[...n].map((e=>e+e)).join(""));const o=Number.parseInt(n,16);return[o>>16&255,o>>8&255,255&o]},enumerable:!1},hexToAnsi256:{value:e=>a.rgbToAnsi256(...a.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return e-8+90;let t,n,o;if(e>=232)t=(10*(e-232)+8)/255,n=t,o=t;else{const r=(e-=16)%36;t=Math.floor(e/36)/5,n=Math.floor(r/6)/5,o=r%6/5}const r=2*Math.max(t,n,o);if(0===r)return 30;let i=30+(Math.round(o)<<2|Math.round(n)<<1|Math.round(t));return 2===r&&(i+=60),i},enumerable:!1},rgbToAnsi:{value:(e,t,n)=>a.ansi256ToAnsi(a.rgbToAnsi256(e,t,n)),enumerable:!1},hexToAnsi:{value:e=>a.ansi256ToAnsi(a.hexToAnsi256(e)),enumerable:!1}}),a}(),c=l;var u=n(708),g=n(161),p=n(66);function h(e,t=(globalThis.Deno?globalThis.Deno.args:u.argv)){const n=e.startsWith("-")?"":1===e.length?"-":"--",o=t.indexOf(n+e),r=t.indexOf("--");return-1!==o&&(-1===r||o<r)}const{env:f}=u;let d;function m(e,t={}){return 0!==(n=function(e,{streamIsTTY:t,sniffFlags:n=!0}={}){const o=function(){if("FORCE_COLOR"in f)return"true"===f.FORCE_COLOR?1:"false"===f.FORCE_COLOR?0:0===f.FORCE_COLOR.length?1:Math.min(Number.parseInt(f.FORCE_COLOR,10),3)}();void 0!==o&&(d=o);const r=n?d:o;if(0===r)return 0;if(n){if(h("color=16m")||h("color=full")||h("color=truecolor"))return 3;if(h("color=256"))return 2}if("TF_BUILD"in f&&"AGENT_NAME"in f)return 1;if(e&&!t&&void 0===r)return 0;const i=r||0;if("dumb"===f.TERM)return i;if("win32"===u.platform){const e=g.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in f)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some((e=>e in f))?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((e=>e in f))||"codeship"===f.CI_NAME?1:i;if("TEAMCITY_VERSION"in f)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(f.TEAMCITY_VERSION)?1:0;if("truecolor"===f.COLORTERM)return 3;if("xterm-kitty"===f.TERM)return 3;if("TERM_PROGRAM"in f){const e=Number.parseInt((f.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(f.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(f.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(f.TERM)||"COLORTERM"in f?1:i}(e,{streamIsTTY:e&&e.isTTY,...t}))&&{level:n,hasBasic:!0,has256:n>=2,has16m:n>=3};var n}h("no-color")||h("no-colors")||h("color=false")||h("color=never")?d=0:(h("color")||h("colors")||h("color=true")||h("color=always"))&&(d=1);const b={stdout:m({isTTY:p.isatty(1)}),stderr:m({isTTY:p.isatty(2)})};function y(e,t,n){let o=e.indexOf(t);if(-1===o)return e;const r=t.length;let i=0,s="";do{s+=e.slice(i,o)+t+n,i=o+r,o=e.indexOf(t,i)}while(-1!==o);return s+=e.slice(i),s}const{stdout:w,stderr:v}=b,T=Symbol("GENERATOR"),O=Symbol("STYLER"),x=Symbol("IS_EMPTY"),C=["ansi","ansi","ansi256","ansi16m"],R=Object.create(null);function _(e){return(e=>{const t=(...e)=>e.join(" ");return((e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");const n=w?w.level:0;e.level=void 0===t.level?n:t.level})(t,e),Object.setPrototypeOf(t,_.prototype),t})(e)}Object.setPrototypeOf(_.prototype,Function.prototype);for(const[e,t]of Object.entries(c))R[e]={get(){const n=j(this,M(t.open,t.close,this[O]),this[x]);return Object.defineProperty(this,e,{value:n}),n}};R.visible={get(){const e=j(this,this[O],!0);return Object.defineProperty(this,"visible",{value:e}),e}};const A=(e,t,n,...o)=>"rgb"===e?"ansi16m"===t?c[n].ansi16m(...o):"ansi256"===t?c[n].ansi256(c.rgbToAnsi256(...o)):c[n].ansi(c.rgbToAnsi(...o)):"hex"===e?A("rgb",t,n,...c.hexToRgb(...o)):c[n][e](...o),k=["rgb","hex","ansi256"];for(const e of k)R[e]={get(){const{level:t}=this;return function(...n){const o=M(A(e,C[t],"color",...n),c.color.close,this[O]);return j(this,o,this[x])}}},R["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...n){const o=M(A(e,C[t],"bgColor",...n),c.bgColor.close,this[O]);return j(this,o,this[x])}}};const E=Object.defineProperties((()=>{}),{...R,level:{enumerable:!0,get(){return this[T].level},set(e){this[T].level=e}}}),M=(e,t,n)=>{let o,r;return void 0===n?(o=e,r=t):(o=n.openAll+e,r=t+n.closeAll),{open:e,close:t,openAll:o,closeAll:r,parent:n}},j=(e,t,n)=>{const o=(...e)=>N(o,1===e.length?""+e[0]:e.join(" "));return Object.setPrototypeOf(o,E),o[T]=e,o[O]=t,o[x]=n,o},N=(e,t)=>{if(e.level<=0||!t)return e[x]?"":t;let n=e[O];if(void 0===n)return t;const{openAll:o,closeAll:r}=n;if(t.includes("\x1b"))for(;void 0!==n;)t=y(t,n.close,n.open),n=n.parent;const i=t.indexOf("\n");return-1!==i&&(t=function(e,t,n,o){let r=0,i="";do{const s="\r"===e[o-1];i+=e.slice(r,s?o-1:o)+t+(s?"\r\n":"\n")+n,r=o+1,o=e.indexOf("\n",r)}while(-1!==o);return i+=e.slice(r),i}(t,r,o,i)),o+t+r};Object.defineProperties(_.prototype,R);const $=_(),B=(_({level:v?v.level:0}),$),{red:I,cyan:S,green:P,yellow:F,magenta:L}=B,G=P("[okay]"),Y=I("[fail]"),q=F("[warn]");var D=n(760);function V(e,t){if("string"!=typeof e)throw new TypeError(`${t} must be a string`)}function J(e,t,n=!0){if(!Array.isArray(e))throw new TypeError(`${t} must be an array`);n&&e.forEach(((e,n)=>{V(e,`${t}[${n}]`)}))}const U="<!doctype html>\n<html>\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title></title>\n </head>\n <style>\n @page {\n margin: 55pt 24pt;\n }\n body {\n margin: 0;\n }\n body,\n pre,\n code {\n font-family: 'Noto Sans Mono CJK SC', monospace;\n }\n header {\n break-after: page;\n margin-top: 20em;\n text-align: center;\n }\n h3 {\n margin-top: 100pt;\n }\n h4 {\n margin-top: 200pt;\n }\n pre {\n display: block;\n }\n pre,\n code {\n margin: 0;\n width: 100%;\n font-size: 12pt;\n line-height: 1.22;\n white-space: pre-wrap;\n }\n code {\n display: flex;\n counter-increment: line;\n word-break: break-all;\n }\n code:before {\n display: var(--show-line-number, none);\n flex-shrink: 0;\n align-self: stretch;\n margin-right: 1em;\n background-color: #f3f3f3;\n padding: 0 2px;\n width: 2em;\n content: counter(line);\n text-align: right;\n }\n </style>\n <body>\n <header>\n <h1></h1>\n <h2></h2>\n <h3>\u6e90\u4ee3\u7801</h3>\n <h4></h4>\n </header>\n <pre></pre>\n </body>\n <script defer type=\"module\">\n if (window.mock) {\n window\n .mock()\n .then((result) => {\n const header = document.body.querySelector('header');\n\n header.querySelector('h1').textContent = result.title;\n\n header.querySelector('h2').textContent = result.version;\n\n if (result.company) {\n header.querySelector('h4').textContent = result.company;\n }\n\n if (result.lineNumber) {\n document.body.style.setProperty('--show-line-number', 'block');\n }\n\n document.title = [result.title, result.version].join(' ');\n\n const pre = document.body.querySelector('pre');\n\n for (const line of result.data.split('\\n')) {\n const code = document.createElement('code');\n code.textContent = line;\n pre.append(code);\n }\n })\n .catch((error) => {\n console.error(error);\n });\n }\n <\/script>\n</html>\n";function H([e]){return e}const K=H` <style> header, footer { display: flex; margin: 1em 5%; width: 92%; font-size: 10pt; font-family: 'Noto Sans Mono CJK SC', monospace; text-align: center; } .title { margin-right: auto; } .pageNumber { margin-right: 5pt; } .totalPages { margin-left: 5pt; } </style> `;async function W(e,t){const{chromium:n}=await import("playwright-core"),o=await n.launch(),r=await o.newContext(),i=await r.newPage(),s={...t,data:e};await i.exposeFunction("mock",(()=>s),s),await i.setContent(U);const a={headerTemplate:H` <header> <div class="title"></div> <span class="pageNumber"></span>/ <span class="totalPages"></span> </header> `+K,footerTemplate:H` <footer> <div class="title"></div> <span class="pageNumber"></span>/ <span class="totalPages"></span> </footer> `+K};await i.waitForFunction((()=>globalThis.document.title),null,{timeout:18e4});const{error:l}=await i.pdf({path:(0,D.join)(process.cwd(),".bring-it","sample",`${t.title}_${t.version}_\u6e90\u4ee3\u7801.pdf`),format:"A4",printBackground:!0,displayHeaderFooter:!0,...a}).catch((e=>({error:e})));if(await i.close(),await r.close(),await o.close(),l)throw l}const z=new class{constructor(e){this.name=`[${S("bring-it")}:${L(e)}]`}okay(...e){this.log(G,...e)}fail(...e){this.log(Y,...e)}warn(...e){this.log(q,...e)}task(...e){this.log("[task]",...e)}file(...e){this.log("[file]",...e)}info(...e){this.log("[info]",...e)}json(e){this.log("[json]",JSON.stringify(e,"",2))}log(...e){console.log(this.name,...e)}}("sample"),Q=3025;class X extends Map{constructor(){super([["prologue",[]],["patterns",[]],["epilogue",[]]])}toLists(){return[...this.get("prologue"),...this.get("patterns"),...this.get("epilogue")].flat()}length(){return this.get("prologue").length+this.get("patterns").length+this.get("epilogue").length}}const Z=/(\r\n|\n|\r)+/;function ee(e){return(0,o.readFile)(e.path,"utf8").then((e=>e.split(Z).filter((e=>""!==e.trim()))))}async function te(e,t,n){const o=n[t];for(const n of o){if(!(Q>e.length()))break;await ee(n).then((o=>{e.get(t).push(...o),z.okay(n.name)})).catch((e=>{throw z.fail(n.name),e}))}}async function ne(e){const t=new X;return await te(t,"prologue",e),await te(t,"epilogue",e),await te(t,"patterns",e),t.toLists().join("\n").trim()}var oe=n(373);const re=["**/.{cache,git,svn,ssh,yarn}/**","**/.{npm,yarn}rc","**/.env.*","**/.env","**/.git{keep,ignore}","**/{node,web}_modules/**","**/*.{pem,ppk}","**/id_{d,r}sa","**/.obsidian/**","**/.docusaurus/**","**/miniprogram_npm/**","**/ssh*config","**/sshd*config","**/.{gitattributes,gitkeep}","**/.*ignore","**/.best-shot/**","**/.bring-it/**","**/.editorconfig","**/.github/**","**/.npmrc","**/*.env.*","**/*.env","**/dist/**","**/License.*","**/License","**/package-lock.json","**/pnpm-lock.yaml","**/yarn.lock"];function ie(e,t){const n=t[e];return n.length>0?(0,oe.globby)(n,{cwd:t.cwd,ignore:[...re,...t.ignore],gitignore:!0,onlyFiles:!0,dot:!0,caseSensitiveMatch:!1}).then((e=>t.extensions.length>0?e.filter((e=>t.extensions.includes((0,D.extname)(e)))):e)).then((e=>e.sort())).then((t=>{for(const n of t)z.log(`[${e}]`,n);return t})):[]}async function se(e){const t=await ie("prologue",e),n=await ie("epilogue",e),o=await ie("patterns",e).then((e=>e.filter((e=>!t.includes(e)&&!n.includes(e)))));function r(t){return t.map((t=>({name:t,path:(0,D.join)(e.cwd,t)})))}return{prologue:r(t),epilogue:r(n),patterns:r(o)}}async function ae(){const e=await function(e,t){return function(e,t){return(0,o.readFile)(e,"utf8").then((e=>JSON.parse(e))).then((e=>{const{BRANCH_NAME:t}=process.env;if(t){const{branches:n,...o}=e;return{...o,...n?.[t]}}return e})).catch((e=>(t.warn(e.message),t.info("Fallback to default configuration"),{})))}(`.bring-it/${e}.config.json`,t)}("sample",z).then((({group:e})=>function(e=[{}]){return J(e,"group",!1),e.map((({title:e="\u793a\u4f8b\u8f6f\u4ef6\u540d\u79f0",version:t="v1.0",company:n="",cwd:o=".",pattern:r=["**/*"],patterns:i=r,prologue:s=[],epilogue:a=[],ignore:l=["dist"],lineNumber:c=!1,extensions:u=[["js","cjs","mjs","jsx"],["ts","cts","mts","tsx"],["wxs","qs"],["html","htm","xhtml","xml","svg","vue"],["css","less","scss","sass"],["wxss","qss","ttss","jxss","acss"]].flat()},g)=>(V(e,`group[${g}].title`),V(t,`group[${g}].version`),V(n,`group[${g}].company`),V(o,`group[${g}].cwd`),J(i,`group[${g}].patterns`),J(s,`group[${g}].prologue`),J(a,`group[${g}].epilogue`),J(u,`group[${g}].extensions`),J(l,`group[${g}].ignore`),{lineNumber:c,title:e,version:t,company:n,cwd:(0,D.resolve)(process.cwd(),o),patterns:i,epilogue:a,prologue:s,extensions:u.map((e=>`.${e}`)),ignore:l})))}(e)));z.info(e);for(const t of e){const e=await se(t),n=await ne(e),{title:o,version:r,company:i,lineNumber:s}=t;await W(n,{title:o,version:r,company:i,lineNumber:s}),z.task("Generated")}}}};