From 45e4c7980a8a6041120b55f66600a1f5022d6873 Mon Sep 17 00:00:00 2001 From: fry69 <142489379+fry69@users.noreply.github.com> Date: Fri, 19 Apr 2024 17:35:32 +0200 Subject: [PATCH] build: fts-v0.5.0-min.js --- minified/fts-v0.5.0-min.js | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 minified/fts-v0.5.0-min.js diff --git a/minified/fts-v0.5.0-min.js b/minified/fts-v0.5.0-min.js new file mode 100755 index 0000000..f2cf0a9 --- /dev/null +++ b/minified/fts-v0.5.0-min.js @@ -0,0 +1,3 @@ +#!/usr/bin/env bun +// @bun +import Q from"fs";import R from"os";import Z from"path";import{fileURLToPath as V} from"url";import{execSync as z} from"child_process";function w(...q){console.log(...q)}var Y=function(...q){if($.stdoutFile)try{Q.appendFileSync($.stdoutFile,q.join(" ")+"\n")}catch(W){X(`Error writing to output file ${$.stdoutFile}: ${W}`)}else w(...q)};function S(...q){console.error(...q)}var X=function(...q){if($.stderrFile)try{Q.appendFileSync($.stderrFile,q.join(" ")+"\n")}catch(W){X(`Error writing to error file ${$.stderrFile}: ${W}`)}else S(...q)};async function b(q,W=8192){let H=!1,J;try{J=Q.createReadStream(q,{highWaterMark:W})}catch(O){if(O.code==="ENOENT")return!1;else throw O}for await(let O of J)if(O instanceof Uint8Array){if(Array.from(O).some((K)=>K>127)){H=!0,J.destroy();break}}return H}async function L(q,W){try{if(W.nbconvertName&&q.endsWith(".ipynb"))if(W.nbconvertName==="internal")await k(q,W);else await E(q,W);else if(await b(q))X(`Warning: Skipping binary file ${q}`);else{const H=Q.readFileSync(q,"utf8");Y(q),Y("---"),Y(H),Y("---")}}catch(H){X(`Error processing file ${q}: ${H}`)}}async function k(q,W){try{const H=await Q.promises.readFile(q,"utf8"),J=JSON.parse(H);let O="";if(W.convertFormat==="asciidoc")O=v(J);else O=D(J);Y(`${q}`),Y("---"),Y(O),Y("---")}catch(H){X(`Error converting .ipynb file ${q}: ${H}`)}}var v=function(q){let W="";for(let H of q.cells)switch(H.cell_type){case"code":W+=`+*In[${H.execution_count}]:*+\n[source, ipython3]\n----\n${H.source.join("")}\n----\n\n`;for(let J of H.outputs)if(J.data["text/plain"])W+=`+*Out[${H.execution_count}]:*+\n----\n${J.data["text/plain"]}\n----\n\n`;break;case"markdown":W+=`${H.source.join("")}\n\n`;break}return W},D=function(q){let W="";for(let H of q.cells)switch(H.cell_type){case"code":W+=`\`\`\`python\n${H.source.join("")}\n\`\`\`\n\n`;for(let J of H.outputs)if(J.data["text/plain"])W+=`\`\`\`\n${J.data["text/plain"]}\n\`\`\`\n\n`;break;case"markdown":W+=`${H.source.join("")}\n\n`;break}return W};async function E(q,W){const H=await Q.promises.mkdtemp(Z.join(R.tmpdir(),"files-to-prompt-")),J=Z.join(H,Z.basename(q));try{await Q.promises.copyFile(q,J);const O=`${W.nbconvertName} --to ${W.convertFormat} "${J}"`;try{z(O,{stdio:"inherit"})}catch(N){X(`Error running ${W.nbconvertName}: ${N}`);return}const K=W.convertFormat==="markdown"?".md":`.${W.convertFormat}`,j=Z.join(H,`${Z.basename(q,".ipynb")}${K}`),x=await Q.promises.readFile(j,"utf8");Y(`${q}`),Y("---"),Y(x),Y("---")}catch(O){X(`Error converting .ipynb file ${q}: ${O}`)}finally{await Q.promises.rm(H,{recursive:!0,force:!0})}}var G=function(q,W){const{ignorePatterns:H,gitignoreRules:J}=W;for(let O of[...J,...H]){if(M(Z.basename(q),O))return!0;if(O.endsWith("/")){const K=O.slice(0,-1);if(M(Z.relative(Z.dirname(q),q),K))return!0}}return!1},F=function(q){const W=Z.join(q,".gitignore");if(Q.existsSync(W))return Q.readFileSync(W,"utf8").split("\n").filter((H)=>H.trim()!==""&&!H.startsWith("#")).map((H)=>H.trim());return[]},M=function(q,W){return new RegExp(`^${W.replace(/\*/g,".*")}\$`).test(q)};async function B(q,W){if(Q.statSync(q).isFile()){if(!G(q,W))await L(q,W)}else if(Q.statSync(q).isDirectory()){let H=W;if(W.gitignoreRules.length===0){const K=W.ignoreGitignore?[]:F(q);if(K.length>0)H=structuredClone(W),H.gitignoreRules=K}const J=Q.readdirSync(q,{withFileTypes:!0}).filter((K)=>W.includeHidden||!K.name.startsWith(".")).filter((K)=>K.isFile()).map((K)=>Z.join(q,K.name)),O=Q.readdirSync(q,{withFileTypes:!0}).filter((K)=>W.includeHidden||!K.name.startsWith(".")).filter((K)=>K.isDirectory()).map((K)=>Z.join(q,K.name));for(let K of J)if(!G(K,H))await L(K,H);for(let K of O)if(!G(K,H))await B(K,H)}else X(`Skipping ${q}: unsupported file type`)}async function T(){return new Promise((q,W)=>{let H="";process.stdin.on("data",(J)=>{H+=J.toString()}),process.stdin.on("end",()=>{q(H)}),process.stdin.on("error",(J)=>{W(J)})})}function m(q){const W=[],H=new Set,J=q.trim().split("\n");for(let O of J){const K=O.trim();if(K==="")continue;if(K.includes(":")){const j=K.split(":");if(U(j[0])&&!H.has(j[0]))H.add(j[0]),W.push(j[0])}else if(U(K)&&!H.has(K))H.add(K),W.push(K)}return W}var U=function(q){for(let W of q)if(W.charCodeAt(0)<32||W.charCodeAt(0)>126)return!1;if(q.length>1024)return!1;return!0};async function _(q){const W={includeHidden:!1,ignoreGitignore:!1,ignorePatterns:[],gitignoreRules:[],nbconvertName:"",convertFormat:"asciidoc"};let H=[];for(let J=0;J