bailian-cli-runtime 1.8.1 → 1.8.2
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.
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -45,7 +45,7 @@ ${Ot()}\nRun: ${L} auth status — to check credentials.`,{cause:t}),L);if(t ins
|
|
|
45
45
|
`),e.forEach((e,n)=>{process.stderr.write(`${t.dim(String(n+1))} ${e}\n`)}),process.stderr.write(`
|
|
46
46
|
`)}function B(e){return N(_(),`plugins`,e.npmPackage)}function Bt(e){return N(B(e),`package.json`)}function Vt(e,t){return N(B(e),`node_modules`,...t.split(`/`))}async function Ht(t){try{return JSON.parse(await ye(t,`utf8`))}catch(n){throw new e(`Could not parse JSON file: ${t}`,i.GENERAL,`Repair or remove the invalid file and try again.`,{cause:n})}}async function Ut(e){let t=Bt(e);return he(t)?Ht(t):{dependencies:{}}}async function Wt(e,t){return Gt(Vt(e,t))}async function Gt(e){return Ht(N(e,`package.json`))}const Kt=new Set([`none`,`apiKey`,`console`,`openapi`]),qt=/^[a-z0-9][a-z0-9-]*$/;function Jt(e,n,r){if(n.name!==e)throw Error(`Package name mismatch: expected "${e}", received "${n.name??``}".`);let i=n.bailianCli;if(!i||i.type!==`command-pack`)throw Error(`Package "${e}" is missing bailianCli.type="command-pack".`);if(i.apiVersion!==t)throw Error(`Command Pack API ${i.apiVersion} is not supported; this CLI supports API ${t}.`);if(i.minCliVersion&&it(r.version,i.minCliVersion)<0)throw Error(`Command Pack requires ${r.npmPackage} ${i.minCliVersion} or newer; current version is ${r.version}.`);if(!i.entry||we(i.entry))throw Error(`Command Pack "${e}" must declare a relative bailianCli.entry.`);return i}function Yt(e,t){let n=e.split(/\s+/).filter(Boolean).join(` `);if(!e||e!==n||!e.split(` `).every(e=>qt.test(e)))throw Error(`Invalid command path "${e}".`);if(!t.commandPrefixes.some(t=>e===t||e.startsWith(`${t} `)))throw Error(`Command "${e}" is outside the allowed prefixes: ${t.commandPrefixes.join(`, `)}.`)}function Xt(e,t){if(!t||typeof t!=`object`)throw Error(`Command "${e}" must export an object.`);let n=t;if(!n.description||typeof n.description!=`string`)throw Error(`Command "${e}" is missing a description.`);if(!n.auth||!Kt.has(n.auth))throw Error(`Command "${e}" has an invalid auth requirement.`);if(typeof n.run!=`function`)throw Error(`Command "${e}" is missing run(ctx).`)}function Zt(t,n,r){return Object.fromEntries(Object.entries(n).map(([n,a])=>[n,{description:a.description,auth:a.auth,usageArgs:a.usageArgs,exampleArgs:a.exampleArgs,notes:a.notes,flags:a.flags,validate:a.validate,run:o=>{let s={identity:o.identity,settings:o.settings,flags:o.flags,client:o.client,output:{result(e,t){let n=o.settings.output===`text`&&t?.text!==void 0?t.text:g(e,o.settings.output);process.stdout.write(`${n}\n`)},line(e){process.stdout.write(`${e}\n`)},write(e){process.stdout.write(e)}},errors:{general(t,n){return new e(t,i.GENERAL,n?.hint,{cause:n?.cause})},usage(e,t){return new c(e,t)},timeout(t=`Request timed out.`,n){return new e(t,i.TIMEOUT,n?.hint,{cause:n?.cause})}},credentials:{apiKey(){if(!r.credentialAccess?.includes(`apiKey`))throw new e(`Command Pack "${t}" is not allowed to access API-key credentials.`,i.GENERAL);if(a.auth!==`apiKey`)throw new e(`Command "${n}" must declare auth="apiKey" before accessing API-key credentials.`,i.GENERAL);let s=o.authStore.describe().apiKey;if(!s)throw new e(`No API key available to the Command Pack.`,i.AUTH);return s}}};return a.run(s)}}]))}async function Qt(e,t,n,r,i=Vt(r,e)){let a=Jt(e,t,r),o=await be(i),s=await be(Ee(o,a.entry)),c=Te(o,s);if(!c||c.startsWith(`..`)||we(c))throw Error(`Command Pack entry must stay inside the package root: ${a.entry}`);let l=(await import(De(s).href)).default;if(!l||typeof l!=`object`||Array.isArray(l))throw Error(`Command Pack "${e}" must default-export a command map.`);let u=Object.entries(l);if(u.length===0)throw Error(`Command Pack "${e}" does not export any commands.`);for(let[e,t]of u)Yt(e,n),Xt(e,t);let d=Zt(e,l,n);return new Ge(d,r.binName),d}function $t(e){return e.startsWith(`file:`)?`linked`:`installed`}async function en(e,t,n){let r={...e},i=[],a;try{a=await Ut(t)}catch(e){return{commands:r,reports:[{name:`(plugin sandbox)`,source:`installed`,status:`failed`,commands:[],error:e instanceof Error?e.message:String(e)}]}}for(let[e,o]of Object.entries(a.dependencies??{}).sort(([e],[t])=>e.localeCompare(t))){let a=$t(o),s=n.supported[e];if(!s){i.push({name:e,source:a,status:`failed`,commands:[],error:`Command Pack "${e}" is not supported by ${t.binName}.`});continue}try{let n=await Wt(t,e),o=await Qt(e,n,s,t),c=Object.keys(o).filter(e=>e in r);if(c.length>0)throw Error(`Command conflicts: ${c.join(`, `)}.`);Object.assign(r,o),i.push({name:e,version:n.version,source:a,status:`loaded`,commands:Object.keys(o).sort()})}catch(t){i.push({name:e,source:a,status:`failed`,commands:[],error:t instanceof Error?t.message:String(t)})}}return{commands:r,reports:i}}const tn={name:`bailian-cli-command-packs`,private:!0,dependencies:{}},nn=new Set(`PATH.HOME.USER.LOGNAME.SHELL.TMPDIR.TEMP.TMP.LANG.TERM.NODE.NODE_PATH.NODE_OPTIONS.FORCE_COLOR.NO_COLOR.NPM_TOKEN.NODE_AUTH_TOKEN.HTTP_PROXY.HTTPS_PROXY.NO_PROXY.http_proxy.https_proxy.no_proxy.SystemRoot.ComSpec.APPDATA.PATHEXT`.split(`.`)),rn=new Set([`registry`,`userconfig`,`globalconfig`,`cache`,`proxy`,`https_proxy`,`noproxy`,`strict_ssl`,`ca`,`cafile`]);function an(e){let t=/^(?:npm_config_|NPM_CONFIG_)(.+)$/.exec(e);return!!t&&rn.has(t[1].toLowerCase())}function on(e,t){let n=Object.keys(t.supported);return n.length>0?`Allowed packages: ${n.join(`, `)}`:`${e.binName} does not currently support any Command Packs.`}function sn(e=process.env){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(nn.has(n)||n.startsWith(`LC_`)||an(n))&&(t[n]=r);return t}async function cn(e){await _e(e,{recursive:!0,mode:448});let t=N(e,`package.json`);he(t)||await Ce(t,`${JSON.stringify(tn,null,2)}\n`,{mode:384})}async function ln(t,n){await new Promise((r,a)=>{let o=Oe(`npm`,t,{cwd:n,env:sn(),stdio:[`inherit`,`pipe`,`pipe`]});o.stdout.on(`data`,e=>process.stderr.write(e)),o.stderr.on(`data`,e=>process.stderr.write(e)),o.once(`error`,a),o.once(`close`,(n,o)=>{if(n===0){r();return}a(new e(`npm ${t[0]} failed${o?` with signal ${o}`:` with exit code ${n}`}.`,i.GENERAL))})})}async function un(t){let n=B(t);await cn(n);let r=N(n,`.lock`);for(let t=0;t<2;t++)try{let e=await ve(r,`wx`,384);return await e.writeFile(`${process.pid} ${Date.now()}\n`),await e.close(),async()=>{try{await Se(r)}catch{}}}catch(t){if(t.code!==`EEXIST`)throw t;try{let e=await xe(r);if(Date.now()-e.mtimeMs>6e5){await Se(r);continue}}catch{continue}throw new e(`Another Command Pack install, link, or remove operation is already running.`,i.GENERAL,`Wait for it to finish and try again.`)}throw new e(`Could not acquire the Command Pack operation lock.`,i.GENERAL)}async function dn(e,t){let n=await un(e);try{return await t()}finally{await n()}}function fn(t,n,r){let a=t.trim(),o=/^(@[^/\s]+\/[^@/\s]+)(?:@([a-zA-Z0-9][a-zA-Z0-9._-]*))?$/.exec(a);if(!o)throw new e(`Unsupported Command Pack package spec: "${t}".`,i.USAGE,`Use an allowlisted scoped package name with an optional version or tag.`);let s=o[1];if(!r.supported[s])throw new e(`Command Pack "${s}" is not allowlisted for ${n.binName}.`,i.USAGE,on(n,r));return{name:s,requested:a}}async function pn(e,t,n,r){let i=r.supported[e],a=await Gt(t);return{pjson:a,commands:await Qt(e,a,i,n,t)}}function mn(e,t){return t.startsWith(`file:`)?t:`${e}@${t}`}async function hn(e,t,n){if(t){await ln([`install`,mn(e,t),`--save-exact`,`--ignore-scripts`,`--no-fund`,`--no-audit`],n);return}await ln([`uninstall`,e,`--ignore-scripts`,`--no-fund`,`--no-audit`],n)}async function gn(t,n,r){let{name:a,requested:o}=fn(t,n,r);return dn(n,async()=>{let t=B(n),s=(await Ut(n)).dependencies?.[a];try{await ln([`install`,o,`--save-exact`,`--ignore-scripts`,`--no-fund`,`--no-audit`],t);let s=await pn(a,Vt(n,a),n,r);if(!s.pjson.version)throw new e(`Command Pack "${a}" has no package version.`,i.USAGE);return{name:a,version:s.pjson.version,commands:Object.keys(s.commands).sort()}}catch(e){try{await hn(a,s,t)}catch{}throw e}})}async function _n(t,n,r){let a=Ee(t);if(!he(N(a,`package.json`)))throw new e(`Command Pack path does not exist: ${a}`,i.USAGE);let o=(await Gt(a)).name;if(!o||!r.supported[o])throw new e(`Local package "${o??`(unnamed)`}" is not an allowlisted Command Pack for ${n.binName}.`,i.USAGE,on(n,r));let s=await pn(o,a,n,r);return dn(n,async()=>{await ln([`install`,`file:${a}`,`--save-exact`,`--ignore-scripts`,`--no-fund`,`--no-audit`],B(n));let e=await pn(o,Vt(n,o),n,r);return{name:o,version:e.pjson.version??s.pjson.version,commands:Object.keys(e.commands).sort()}})}async function vn(t,n,r){if(!r.supported[t])throw new e(`Command Pack "${t}" is not allowlisted for ${n.binName}.`,i.USAGE,on(n,r));if(!(t in((await Ut(n)).dependencies??{})))throw new e(`Command Pack "${t}" is not installed.`,i.USAGE);await dn(n,()=>ln([`uninstall`,t,`--ignore-scripts`,`--no-fund`,`--no-audit`],B(n)))}async function yn(e,t){return(await en({},e,t)).reports}function bn(e,t){return{install:n=>gn(n,e,t),link:n=>_n(n,e,t),list:()=>yn(e,t),remove:n=>vn(n,e,t)}}function xn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Sn(e){try{Ct()}catch(t){z(t,e)}process.on(`SIGINT`,()=>{process.stderr.write(`
|
|
47
47
|
Interrupted. Exiting.
|
|
48
|
-
`),h(500).finally(()=>process.exit(130))}),process.stdout.on(`error`,e=>{if(e.code===`EPIPE`)process.exit(0);else throw e})}function Cn(e,t){let{binName:i,version:d,npmPackage:m,clientName:g}=t,_={binName:i,version:d,npmPackage:m,clientName:g},v=t.commandPacks??{supported:{}},y=bn(_,v),b;Sn(i);let C=gt([yt,vt,_t,bt]);function w(){return b||=en(e,_,v).then(e=>new Ge(e.commands,i)),b}function T(e,r,c){if(e.printHelp(r,process.stderr),r.length>0)return;let l=!1;try{let e=p(u(Be(c,{...a,...o,...n,...s})));l=!!(e.apiKey||e.console)}catch{}l?t.quickStartTasks?.length&&zt(t.quickStartTasks):Rt(i)}async function E(e,t){let n=Ke(t,e);switch(n.kind){case`version`:process.stdout.write(`${i} ${d}\n`);return;case`help`:T(e,n.path,t);return;case`usageError`:z(n.error,i);return;case`run`:try{let e=f(n.command),t=Be(n.rest,{...a,...e,...n.command.flags}),i=xn(t,[...Object.keys(a),...Object.keys(e)]),o=xn(t,Object.keys(n.command.flags??{})),s=n.command.validate?.(o);if(s)throw new c(s);let d=u(i),p=l(d);await C({identity:_,path:n.path,command:n.command,flags:o,settings:p,sources:d,configStore:S(),authStore:x(d),commandPacks:y,client:new r({identity:_,settings:p,baseUrl:O(d)})}),await h(1e3)}catch(t){if(t instanceof c&&n.rest.length===0){e.printHelp(n.path,process.stderr);return}await h(1e3),z(t,i)}return}}return{run(e=process.argv.slice(2)){return w().then(t=>E(t,e)).catch(e=>h(1e3).finally(()=>z(e,i)))}}}const wn=`1.8.
|
|
48
|
+
`),h(500).finally(()=>process.exit(130))}),process.stdout.on(`error`,e=>{if(e.code===`EPIPE`)process.exit(0);else throw e})}function Cn(e,t){let{binName:i,version:d,npmPackage:m,clientName:g}=t,_={binName:i,version:d,npmPackage:m,clientName:g},v=t.commandPacks??{supported:{}},y=bn(_,v),b;Sn(i);let C=gt([yt,vt,_t,bt]);function w(){return b||=en(e,_,v).then(e=>new Ge(e.commands,i)),b}function T(e,r,c){if(e.printHelp(r,process.stderr),r.length>0)return;let l=!1;try{let e=p(u(Be(c,{...a,...o,...n,...s})));l=!!(e.apiKey||e.console)}catch{}l?t.quickStartTasks?.length&&zt(t.quickStartTasks):Rt(i)}async function E(e,t){let n=Ke(t,e);switch(n.kind){case`version`:process.stdout.write(`${i} ${d}\n`);return;case`help`:T(e,n.path,t);return;case`usageError`:z(n.error,i);return;case`run`:try{let e=f(n.command),t=Be(n.rest,{...a,...e,...n.command.flags}),i=xn(t,[...Object.keys(a),...Object.keys(e)]),o=xn(t,Object.keys(n.command.flags??{})),s=n.command.validate?.(o);if(s)throw new c(s);let d=u(i),p=l(d);await C({identity:_,path:n.path,command:n.command,flags:o,settings:p,sources:d,configStore:S(),authStore:x(d),commandPacks:y,client:new r({identity:_,settings:p,baseUrl:O(d)})}),await h(1e3)}catch(t){if(t instanceof c&&n.rest.length===0){e.printHelp(n.path,process.stderr);return}await h(1e3),z(t,i)}return}}return{run(e=process.argv.slice(2)){return w().then(t=>E(t,e)).catch(e=>h(1e3).finally(()=>z(e,i)))}}}const wn=`1.8.2`;function Tn(e,t){process.stdout.write(g(e,t)+`
|
|
49
49
|
`)}function En(e){process.stdout.write(e+`
|
|
50
50
|
`)}function Dn(e,t,{gap:n=2}={}){let r=e.map((e,n)=>{let r=e.length;for(let e of t){let t=e[n]??``;t.length>r&&(r=t.length)}return r}),i=` `.repeat(n),a=e=>e.map((e,t)=>(e??``).padEnd(r[t])).join(i),o=[];o.push(a(e));for(let e of t)o.push(a(e));return o}function On(e){return e>=11904&&e<=40959||e>=63744&&e<=64255||e>=65072&&e<=65103||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=131072&&e<=195103}function V(e){let t=0;for(let n of e){let e=n.codePointAt(0)??0;t+=On(e)?2:1}return t}function kn(e,t){let n=t-V(e);return n>0?e+` `.repeat(n):e}const An=` │ `,jn=[0,150,160],Mn=[176,205,250],Nn=[160,160,170];function Pn(e){if(`NO_COLOR`in process.env)return 0;let t=process.env.FORCE_COLOR;if(t!=null){if(t===`0`||t===`false`)return 0;if(t===`3`||t===`truecolor`)return 3;if(t===`2`)return 2;if(t===`1`||t===`true`||t===``)return 1}if(!He(e))return 0;let n=process.env.COLORTERM;if(n===`truecolor`||n===`24bit`)return 3;let r=process.env.TERM??``;return r===`dumb`?1:/-256(color)?$/i.test(r)?2:1}function Fn(e,t,n){return e===t&&t===n?e<8?16:e>248?231:232+Math.round((e-8)/247*24):16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)}function In(e,t,n,r){let i=Math.max(e,t,n)>127,a=i?128:64;return(r===48?i?100:40:i?90:30)+(e>=a|(t>=a?2:0)|(n>=a?4:0))}function Ln(e,t,n,r,i=38){return e>=3?`${i};2;${t};${n};${r}`:e===2?`${i};5;${Fn(t,n,r)}`:String(In(t,n,r,i))}function Rn(e,[t,n,r],i){return e<=0?i:`\x1b[${Ln(e,t,n,r)}m${i}\x1b[0m`}function zn(e,t,n){return t<=0?e:`\x1b[1;${Ln(t,255,255,255,38)};${Ln(t,n[0],n[1],n[2],48)}m${e}\x1b[0m`}function Bn(e,t){let n=t-V(e);return n>0?` `.repeat(n)+e:e}function Vn(e,t,n,r){let i=e==null?0:Math.max(0,Math.min(100,e)),a=e!=null,o=a?Math.round(i/100*n):0,s=``,c=``;for(let e=0;e<n;e++)a&&e<o?(s+=`█`,c+=Rn(r,jn,`█`)):(s+=` `,c+=` `);let l=a?Mn:Nn;return s+=` ${t}`,c+=` ${Rn(r,l,t)}`,{plain:s,colored:c}}function Hn(e){let t=Pn(e.out??process.stdout),n=e.align??[],r=e.barColumns??[],i=e.headers.length,a={};for(let n of r){let r=n.width??20,i=[];for(let a=0;a<e.rows.length;a++){let e=n.percents[a]??null,o=n.labels?.[a]??(e==null?`-`:`${Number.isInteger(e)?e:e.toFixed(1)}%`);i.push(Vn(e,o,r,t))}a[n.index]=i}let o=(t,n)=>a[n]?a[n][t].plain:e.rows[t][n]??``,s=e.headers.map((t,n)=>{let r=V(t);for(let t=0;t<e.rows.length;t++){let e=V(o(t,n));e>r&&(r=e)}return r}),c=[],l=e.headers.map((e,t)=>n[t]===`right`?Bn(e,s[t]):kn(e,s[t])).join(An),u=Math.max(V(l),...e.rows.map((e,t)=>V(Array.from({length:i},(e,n)=>o(t,n)).join(An))));c.push(zn(` ${kn(l,u)} `,t,jn));let d=` ${Rn(t,jn,`│`)} `;for(let t=0;t<e.rows.length;t++){let r=[];for(let o=0;o<i;o++){let i=s[o];if(a[o]){let e=a[o][t],n=i-V(e.plain);r.push(n>0?e.colored+` `.repeat(n):e.colored);continue}let c=e.rows[t][o]??``,l=e.cellColor?.(t,o,c),u=n[o]===`right`?Bn(c,i):kn(c,i);l?r.push(n[o]===`right`?u.slice(0,u.length-c.length)+l:l+u.slice(c.length)):r.push(u)}let o=` `;for(let e=0;e<i;e++)o+=r[e],e<i-1&&(o+=d);c.push(o)}return c}const Un=[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`];function Wn(e){let t=process.stderr.isTTY,n=0,r=null,i=e;return{start(){t&&(r=setInterval(()=>{process.stderr.write(`\r${Un[n%Un.length]} ${i}`),n++},80))},update(e){i=e},stop(e){r&&=(clearInterval(r),null),t&&(process.stderr.write(`\r\x1B[K`),e&&process.stderr.write(`${e}\n`))}}}function Gn(e,t=``){let n=process.stderr.isTTY;return{update(r){if(!n)return;let i=Math.min(1,r/e),a=Math.round(30*i),o=30-a,s=`█`.repeat(a)+`░`.repeat(o),c=`${Math.round(i*100)}%`;process.stderr.write(`\r${t} ${s} ${c}`)},finish(){n&&process.stderr.write(`
|
|
51
51
|
`)}}}async function Kn(t,n,r){let a=Date.now()+r.timeoutSec*1e3,o=Wn(`Polling...`);n.quiet||o.start();try{for(;Date.now()<a;){let a=await t.requestJson({path:r.url});if(r.getStatus&&!n.quiet&&o.update(`Status: ${r.getStatus(a)}`),r.isComplete(a))return o.stop(`Done.`),a;if(r.isFailed(a)){o.stop(`Failed.`),n.verbose&&process.stderr.write(`[verbose] Task response: ${JSON.stringify(a,null,2)}\n`);let t=r.getErrorMessage?.(a);throw new e(t?`Task failed: ${t}`:`Task failed.`,i.GENERAL,t?void 0:`Use --verbose to see full API response details.`)}await new Promise(e=>setTimeout(e,r.intervalSec*1e3))}}finally{o.stop()}throw new e(`Polling timed out.`,i.TIMEOUT,`Try increasing --timeout or check task status manually.`)}async function qn(t,n,r){let a=await fetch(t,{headers:re()});if(!a.ok)throw new e(`Download failed: HTTP ${a.status}`,i.GENERAL);let o=Number(a.headers.get(`content-length`)||0),s=a.body?.getReader();if(!s)throw new e(`No response body`,i.GENERAL);le(oe(n),{recursive:!0});let c=ce(n),l=o>0&&!r?.quiet?Gn(o,`Downloading`):null,u=0,d=!1;try{let e=new Promise((e,t)=>{c.on(`error`,t)});for(;;){let{done:t,value:n}=await Promise.race([s.read(),e]);if(t)break;c.write(n)||await new Promise(e=>c.once(`drain`,()=>e())),u+=n.byteLength,l?.update(u)}d=!0}finally{if(s.releaseLock(),l?.finish(),await new Promise((e,t)=>{c.on(`finish`,e),c.on(`error`,t),c.end()}),!d)try{de(n)}catch{}}return{size:u}}function Jn(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(1)} GB`}function Yn(e){return Math.max(1,e.concurrent??1)}async function Xn(e,t,n,r=`requests`){if(e<=1)return[await n(0)];t.quiet||process.stderr.write(`[Concurrent: ${e} ${r}]\n`);let i=Array.from({length:e},(e,t)=>n(t));return Promise.all(i)}async function Zn(e,t,n){return Promise.all(e.map(({url:e,destPath:r})=>t(e,r,n).then(()=>r)))}const Qn={"16:9":`2688*1536`,"9:16":`1536*2688`,"1:1":`2048*2048`,"4:3":`2368*1728`,"3:4":`1728*2368`},$n={"16:9":`1664*928`,"4:3":`1472*1104`,"1:1":`1328*1328`,"3:4":`1104*1472`,"9:16":`928*1664`};function er(e,t){if(e)return(t?Qn:$n)[e]??e}const tr=`Enable watermark (true/false). Omit flag to use CLI default (true).`,nr=`Enable prompt extend (true/false). Omit flag to use CLI default (true).`,rr=`Enable prompt extend (true/false). Omit flag: true for qwen-image sync; parameter omitted on async models (API default).`,ir=`Enable prompt extend (true/false). Omit flag to omit the parameter (DashScope default).`;var H=class extends Error{code;step;details;constructor(e,t,n){super(t),this.name=`PipelineError`,this.code=e,this.step=n?.step,this.details=n?.details}toJSON(){return{code:this.code,message:this.message,...this.step?{step:this.step}:{},...this.details?{details:this.details}:{}}}};function ar(e,t){return e instanceof H?e:new H(`step_execution_error`,e instanceof Error?e.message:String(e),{step:t})}var or=class{handlers=new Map;outputSchemas=new Map;registerStep(e,t,n){this.handlers.set(e,t),n&&this.outputSchemas.set(e,n)}executeStep(e,t,n){let r=this.handlers.get(e);if(!r)throw new H(`unknown_step`,`Unknown step type: ${e}`,{details:{available:this.listSteps()}});return r(t,n)}hasStep(e){return this.handlers.has(e)}listSteps(){return Array.from(this.handlers.keys()).sort()}getOutputSchema(e){return this.outputSchemas.get(e)}};const sr=new or;function cr(){return sr}function lr(e,t,n,r){let i,a;n instanceof or?(i=n,a=r):(i=sr,a=n??r),i.registerStep(e,t,a)}function ur(){let e={flags:{},file:w(),env:process.env},t={...l(e),output:`json`,outputExplicit:!0,quiet:!0},n={binName:`bl`,version:`0.0.0-dev`,npmPackage:`bailian-cli`,clientName:`bailian-cli`},i;try{i=T(e)}catch{}return{client:new r({identity:n,settings:t,baseUrl:O(e),apiCred:i}),settings:t}}const dr=[`download`,`out-dir`,`output`];function fr(e){return e.startsWith(`./`)||e.startsWith(`../`)}function pr(e,t){let n={},r=[];for(let[i,a]of Object.entries(e))typeof a==`string`&&fr(a)?(n[i]=Ee(t,a),r.push(i)):n[i]=a;return{input:n,resolvedKeys:r}}async function mr(e,t,n){let r=[];for(let i of t){let t=e[i];typeof t==`string`&&(await ge(t).then(()=>!0,()=>!1)||r.push(`Step "${n}" input "${i}" references file that does not exist: ${t}`))}return r}function hr(e){if(e===void 0)return;if(typeof e==`number`)return Number.isFinite(e)&&e>0?e:void 0;let t=e.match(/^(\d+(?:\.\d+)?)(ms|s|m)?$/);if(!t)return;let n=Number(t[1]);if(!Number.isFinite(n)||n<=0)return;let r=t[2]??`s`;return r===`ms`?n/1e3:r===`m`?n*60:n}function U(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function gr(e,t){if(Array.isArray(e)){e.forEach(e=>gr(e,t));return}if(U(e)){`$from`in e&&typeof e.$from==`string`&&t.add(e.$from);for(let n of Object.values(e))gr(n,t)}}async function _r(e,t){let n=[];for(let r of e)for(let[e,i]of Object.entries(r.input)){if(dr.includes(e)||typeof i!=`string`||!fr(i))continue;let a=Ee(t,i);await ge(a).then(()=>!0,()=>!1)||n.push(`Step "${r.id}" input "${e}" references file that does not exist: ${a}`)}return n}async function vr(e,t,n){if(!t.message)throw new H(`missing_input`,`text/chat requires 'message' input`,{step:`text/chat`});let r=t.model||`qwen3.7-max`,i=[];t.system&&i.push({role:`system`,content:t.system}),i.push({role:`user`,content:t.message});let a={model:r,messages:i,max_tokens:t[`max-tokens`]??4096,stream:!1};t.temperature!==void 0&&(a.temperature=t.temperature),t[`top-p`]!==void 0&&(a.top_p=t[`top-p`]),t[`enable-thinking`]&&(a.enable_thinking=!0,t[`thinking-budget`]!==void 0&&(a.thinking_budget=t[`thinking-budget`]));let o=d();return await e.client.requestJson({path:o,method:`POST`,body:a,timeout:n.blRequestTimeoutSeconds,signal:n.signal})}async function yr(e,t,n){let r=t.model||`qwen3-vl-plus`,i=Array.isArray(t.image)?t.image:t.image?[t.image]:[],a=t.video?`Describe the video.`:`Describe the image.`,o=t.prompt||a,s=[];if(t.video){let i=t.video;b(i)&&(i=await e.client.uploadFile(i,r,{signal:n.signal})),s.push({type:`video_url`,video_url:{url:i}})}for(let t of i){let i=t;b(t)&&(i=await e.client.uploadFile(t,r,{signal:n.signal})),s.push({type:`image_url`,image_url:{url:i}})}s.push({type:`text`,text:o});let c={model:r,messages:[{role:`user`,content:s}]},l=d();return await e.client.requestJson({path:l,method:`POST`,body:c,signal:n.signal})}const br=[`qwen-image-2.0`,`qwen-image-max`];function xr(e){return br.some(t=>e.startsWith(t))}async function Sr(e,t,n){if(!t.prompt)throw new H(`missing_input`,`image/generate requires 'prompt' input`,{step:`image/generate`});let r=t.model||`qwen-image-2.0`,i=xr(r),a=t.n??1,o=E(t[`prompt-extend`],i?!0:void 0,`prompt-extend`),s={model:r,input:{messages:[{role:`user`,content:[{text:t.prompt}]}]},parameters:{size:er(t.size,i),n:a,seed:t.seed,prompt_extend:o,watermark:A(t.watermark),negative_prompt:t[`negative-prompt`]||void 0}};if(i){let r=y(),i=await e.client.requestJson({path:r,method:`POST`,body:s,signal:n.signal}),a=i.output.choices.flatMap(e=>e.message?.content||[]).map(e=>e.image).filter(Boolean),o=await wr(a,t[`out-dir`],t[`out-prefix`]);return{urls:a,request_id:i.request_id,...o?{saved:o}:{}}}else{let r=v(),i=(await e.client.requestJson({path:r,method:`POST`,body:s,async:!0,signal:n.signal})).output.task_id,a=await kr(e,i,n),o=await wr(Array.isArray(a.urls)?a.urls:[],t[`out-dir`],t[`out-prefix`]);return o&&(a.saved=o),a}}async function Cr(e,t,n){if(!t.prompt)throw new H(`missing_input`,`image/edit requires 'prompt' input`,{step:`image/edit`});let r=Array.isArray(t.image)?t.image:t.image?[t.image]:[],i=t.model||`qwen-image-2.0`,a=xr(i),o=t.n??1,s=E(t[`prompt-extend`],a?!0:void 0,`prompt-extend`),c=[];for(let t of r){let r=t;b(t)&&(r=await e.client.uploadFile(t,i,{signal:n.signal})),c.push({image:r})}c.push({text:t.prompt});let l={model:i,input:{messages:[{role:`user`,content:c}]},parameters:{size:er(t.size,a),n:o,seed:t.seed,prompt_extend:s,watermark:A(t.watermark),negative_prompt:t[`negative-prompt`]||void 0}};if(a){let r=y(),i=await e.client.requestJson({path:r,method:`POST`,body:l,signal:n.signal}),a=i.output.choices.flatMap(e=>e.message?.content||[]).map(e=>e.image).filter(Boolean),o=await wr(a,t[`out-dir`],t[`out-prefix`]);return{urls:a,request_id:i.request_id,...o?{saved:o}:{}}}else{let r=v(),i=(await e.client.requestJson({path:r,method:`POST`,body:l,async:!0,signal:n.signal})).output.task_id,a=await kr(e,i,n),o=await wr(Array.isArray(a.urls)?a.urls:[],t[`out-dir`],t[`out-prefix`]);return o&&(a.saved=o),a}}async function wr(e,t,n){if(!t||e.length===0)return;await _e(t,{recursive:!0});let r=n&&n.length>0?n:`image`,i=e.length===1?[{url:e[0],destPath:N(t,`${r}.png`)}]:e.map((e,n)=>({url:e,destPath:N(t,`${r}_${String(n+1).padStart(3,`0`)}.png`)})),a=[];for(let{url:e,destPath:t}of i)await qn(e,t,{quiet:!0}),a.push(t);return a}async function Tr(e,t,n){if(!t.prompt)throw new H(`missing_input`,`video/generate requires 'prompt' input`,{step:`video/generate`});let r=t.model||(t.image?`happyhorse-1.1-i2v`:`happyhorse-1.1-t2v`),i;t.image&&(i=b(t.image)?await e.client.uploadFile(t.image,r,{signal:n.signal}):t.image);let a={model:r,input:{prompt:t.prompt,negative_prompt:t[`negative-prompt`]||void 0,...i?{media:[{type:`first_frame`,url:i}]}:{}},parameters:{resolution:t.resolution||void 0,ratio:t.ratio||void 0,duration:t.duration,prompt_extend:E(t[`prompt-extend`],void 0,`prompt-extend`),watermark:A(t.watermark),seed:t.seed}};j(a.parameters);let o=ie(),s=(await e.client.requestJson({path:o,method:`POST`,body:a,async:!0,signal:n.signal})).output.task_id;return await Ar(e,s,(t[`poll-interval`]??10)*1e3,(n.timeoutSeconds??900)*1e3,n)}async function Er(e,t,n){let r=t.text;if(!r&&t[`text-file`]){let{readFileSync:e}=await import(`node:fs`);r=e(t[`text-file`],`utf-8`).trim()}if(!r)throw new H(`missing_input`,`speech/synthesize requires 'text' input`,{step:`speech/synthesize`});let i=t.model||`cosyvoice-v3-flash`,a={model:i,input:{text:r,voice:t.voice,format:t.format,sample_rate:t[`sample-rate`],volume:t.volume,rate:t.rate,pitch:t.pitch,seed:t.seed,language_hints:t.language?[t.language]:void 0,instruction:t.instruction,enable_ssml:t[`enable-ssml`]}};j(a.input);let o=te(),s=await e.client.requestJson({path:o,method:`POST`,body:a,signal:n.signal});return{audio_url:s.output.audio.url,url_expires_at:s.output.audio.expires_at,model:i,voice:t.voice,request_id:s.request_id}}async function Dr(e,t,n){let r=Array.isArray(t.url)?t.url:t.url?[t.url]:[];if(r.length===0)throw new H(`missing_input`,`speech/recognize requires 'url' input`,{step:`speech/recognize`});let i=[];for(let a of r)b(a)?i.push(await e.client.uploadFile(a,t.model||`fun-asr`,{signal:n.signal})):i.push(a);let a={model:t.model||`fun-asr`,input:{file_urls:i},parameters:{channel_id:t[`channel-id`]===void 0?void 0:[t[`channel-id`]],language_hints:t.language?[t.language]:void 0,diarization_enabled:t.diarization,speaker_count:t[`speaker-count`],vocabulary_id:t[`vocabulary-id`]}};j(a.parameters);let o=ee(),s=(await e.client.requestJson({path:o,method:`POST`,body:a,async:!0,signal:n.signal})).output.task_id;return await Ar(e,s,(t[`poll-interval`]??2)*1e3,(n.timeoutSeconds??300)*1e3,n)}function Or(e){let{output:t,request_id:n,usage:r}=e,i={task_id:t.task_id,task_status:t.task_status,request_id:n};if(t.video_url&&(i.video_url=t.video_url),t.choices){let e=t.choices.flatMap(e=>e.message?.content||[]).map(e=>e.image).filter(Boolean);e.length>0&&(i.urls=e)}if(t.results){let e=t.results.map(e=>e.url).filter(Boolean);e.length>0&&!i.urls&&(i.urls=e)}return t.task_metrics&&(i.task_metrics=t.task_metrics),r&&(i.usage=r),i}async function kr(e,t,n){return await Ar(e,t,3e3,e.settings.timeout*1e3,n)}async function Ar(e,t,n,r,i){let a=Date.now(),o=0;for(;;){if(i?.signal?.aborted)throw new H(`aborted`,`Task polling was aborted`,{details:{taskId:t}});await jr(n,i?.signal),o++;let s=M(t),c=await e.client.requestJson({path:s,method:`GET`,signal:i?.signal}),l=c.output.task_status;if(l===`SUCCEEDED`)return Or(c);if(l===`FAILED`)throw new H(`async_task_failed`,c.output.message||c.output.code||`Task failed`,{details:{taskId:t,data:c}});let u=Date.now()-a;if(await i?.emitEvent?.({type:`step.polling`,timestamp:new Date().toISOString(),status:`running`,taskId:t,taskStatus:l,elapsedMs:u,pollAttempt:o}),u>r)throw new H(`async_poll_timeout`,`Task ${t} timed out after ${Math.round(r/1e3)}s`,{details:{taskId:t,timeoutMs:r,pollAttempts:o}})}}function jr(e,t){return t?new Promise((n,r)=>{let i=setTimeout(()=>{o(),n()},e),a=()=>{o(),r(new H(`aborted`,`Poll delay was aborted`))},o=()=>{clearTimeout(i),t.removeEventListener(`abort`,a)};t.aborted?a():t.addEventListener(`abort`,a,{once:!0})}):new Promise(t=>setTimeout(t,e))}const Mr={"text/chat":(e,t,n)=>vr(e,t,n),"vision/describe":(e,t,n)=>yr(e,t,n),"image/generate":(e,t,n)=>Sr(e,t,n),"image/edit":(e,t,n)=>Cr(e,t,n),"video/generate":(e,t,n)=>Tr(e,t,n),"speech/synthesize":(e,t,n)=>Er(e,t,n),"speech/recognize":(e,t,n)=>Dr(e,t,n)},Nr={"image/generate":e=>({data:e,artifacts:Lr(e),warnings:[],metadata:{}}),"image/edit":e=>({data:e,artifacts:Lr(e),warnings:[],metadata:{}}),"video/generate":e=>({data:e,artifacts:Lr(e),warnings:[],metadata:{}}),"speech/synthesize":e=>({data:e,artifacts:Rr(e,`audio`),warnings:[],metadata:{}}),"speech/recognize":e=>({data:e,artifacts:Rr(e,`transcript`),warnings:[],metadata:{}})},Pr={"text/chat":{description:`LLM text completion via chat API`,paths:[{path:`/data/choices/0/message/content`,description:`Generated text content`},{path:`/data/choices/0/message/role`,description:`Message role (assistant)`},{path:`/data/usage/total_tokens`,description:`Total token usage`}]},"vision/describe":{description:`Multimodal vision understanding (image/video to text)`,paths:[{path:`/data/choices/0/message/content`,description:`Generated description text`},{path:`/data/choices/0/message/role`,description:`Message role (assistant)`},{path:`/data/usage/total_tokens`,description:`Total token usage`}]},"image/generate":{description:`Text-to-image generation`,paths:[{path:`/data/urls`,description:`Array of generated image URLs`},{path:`/data/urls/0`,description:`First generated image URL`},{path:`/data/task_id`,description:`Async task ID (if applicable)`},{path:`/artifacts/0/url`,description:`First artifact URL`},{path:`/artifacts/0/path`,description:`First artifact local path (if saved)`}]},"image/edit":{description:`Image editing with reference image(s)`,paths:[{path:`/data/urls`,description:`Array of generated image URLs`},{path:`/data/urls/0`,description:`First generated image URL`},{path:`/data/task_id`,description:`Async task ID (if applicable)`},{path:`/artifacts/0/url`,description:`First artifact URL`},{path:`/artifacts/0/path`,description:`First artifact local path (if saved)`}]},"video/generate":{description:`Video generation (text-to-video or image-to-video)`,paths:[{path:`/data/video_url`,description:`Generated video URL`},{path:`/data/task_id`,description:`Async task ID`},{path:`/artifacts/0/url`,description:`First artifact URL`},{path:`/artifacts/0/path`,description:`First artifact local path (if saved)`}]},"speech/synthesize":{description:`Text-to-speech synthesis`,paths:[{path:`/data/audio_url`,description:`Generated audio URL`},{path:`/data/url_expires_at`,description:`Audio URL expiration time`},{path:`/artifacts/0/url`,description:`First artifact URL`}]},"speech/recognize":{description:`Speech recognition (ASR)`,paths:[{path:`/data/text`,description:`Full transcribed text`},{path:`/data/task_id`,description:`Async task ID`},{path:`/artifacts/0/taskId`,description:`Task ID from artifact`}]}};function Fr(e){for(let t of Object.keys(Mr))lr(t,async(e,n)=>await Ir(t,e,n),e,Pr[t])}async function Ir(e,t,n){if(n.dryRun)return{metadata:{dryRun:!0,step:e,plannedInput:t},warnings:[{code:`dry_run_skipped`,message:`Step ${e} was not executed in dry-run mode`}]};let r=Mr[e];if(!r)throw Error(`No direct API handler registered for step: ${e}`);let i=await r(n.blEnv??ur(),t,n),a=Nr[e];return a?a(i):{data:i,warnings:[],metadata:{}}}function Lr(e){if(!U(e))return;let t=[],n=W(e.task_id)??W(e.taskId);for(let r of Vr(e.urls))t.push({url:r,taskId:n,kind:Hr(r)});for(let r of Vr(e.saved))t.push({path:r,taskId:n,kind:Ur(r)});let r=W(e.video_url)??W(e.videoUrl);r&&t.push({url:r,taskId:n,kind:`video`});let i=W(e.saved);if(i&&t.push({path:i,taskId:n,kind:Ur(i)}),Array.isArray(e.videos))for(let n of e.videos){if(!U(n))continue;let e=W(n.task_id)??W(n.taskId),r=W(n.video_url)??W(n.videoUrl),i=W(n.saved);r&&t.push({url:r,taskId:e,kind:`video`}),i&&t.push({path:i,taskId:e,kind:`video`})}let a=Array.isArray(e.task_ids)?e.task_ids.map(W).filter(Br):[];for(let e of a)t.push({taskId:e,kind:`task`});return t.length===0&&n&&t.push({taskId:n,kind:`task`}),t.length>0?t:void 0}function Rr(e,t){if(!U(e))return;let n=[],r=W(e.task_id)??W(e.taskId),i=[W(e.url),W(e.audio_url),W(e.audioUrl),W(e.output_url),W(e.outputUrl)].filter(Br);for(let e of i)n.push({url:e,taskId:r,kind:t});let a=[W(e.saved),W(e.path),W(e.output_path),W(e.outputPath)].filter(Br);for(let e of a)n.push({path:e,taskId:r,kind:t});return n.length===0&&r&&n.push({taskId:r,kind:`task`}),n.length>0?zr(n):void 0}function zr(e){let t=new Set,n=[];for(let r of e){let e=`${r.kind??``}:${r.taskId??``}:${r.url??``}:${r.path??``}`;t.has(e)||(t.add(e),n.push(r))}return n}function Br(e){return typeof e==`string`}function W(e){return typeof e==`string`&&e.length>0?e:void 0}function Vr(e){return Array.isArray(e)?e.map(W).filter(Br):[]}function Hr(e){try{return Ur(new URL(e).pathname)}catch{return`artifact`}}function Ur(e){let t=e.toLowerCase();return t.endsWith(`.mp4`)||t.endsWith(`.mov`)||t.endsWith(`.webm`)?`video`:t.endsWith(`.png`)||t.endsWith(`.jpg`)||t.endsWith(`.jpeg`)||t.endsWith(`.webp`)?`image`:`artifact`}var Wr=P((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;var t=class{};e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var n=class extends t{constructor(t){if(super(),!e.IDENTIFIER.test(t))throw Error(`CodeGen: name must be a valid identifier`);this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};e.Name=n;var r=class extends t{constructor(e){super(),this._items=typeof e==`string`?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===``||e===`""`}get str(){return this._str??=this._items.reduce((e,t)=>`${e}${t}`,``)}get names(){return this._names??=this._items.reduce((e,t)=>(t instanceof n&&(e[t.str]=(e[t.str]||0)+1),e),{})}};e._Code=r,e.nil=new r(``);function i(e,...t){let n=[e[0]],i=0;for(;i<t.length;)s(n,t[i]),n.push(e[++i]);return new r(n)}e._=i;let a=new r(`+`);function o(e,...t){let n=[p(e[0])],i=0;for(;i<t.length;)n.push(a),s(n,t[i]),n.push(a,p(e[++i]));return c(n),new r(n)}e.str=o;function s(e,t){t instanceof r?e.push(...t._items):t instanceof n?e.push(t):e.push(d(t))}e.addCodeArg=s;function c(e){let t=1;for(;t<e.length-1;){if(e[t]===a){let n=l(e[t-1],e[t+1]);if(n!==void 0){e.splice(t-1,3,n);continue}e[t++]=`+`}t++}}function l(e,t){if(t===`""`)return e;if(e===`""`)return t;if(typeof e==`string`)return t instanceof n||e[e.length-1]!==`"`?void 0:typeof t==`string`?t[0]===`"`?e.slice(0,-1)+t.slice(1):void 0:`${e.slice(0,-1)}${t}"`;if(typeof t==`string`&&t[0]===`"`&&!(e instanceof n))return`"${e}${t.slice(1)}`}function u(e,t){return t.emptyStr()?e:e.emptyStr()?t:o`${e}${t}`}e.strConcat=u;function d(e){return typeof e==`number`||typeof e==`boolean`||e===null?e:p(Array.isArray(e)?e.join(`,`):e)}function f(e){return new r(p(e))}e.stringify=f;function p(e){return JSON.stringify(e).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}e.safeStringify=p;function m(t){return typeof t==`string`&&e.IDENTIFIER.test(t)?new r(`.${t}`):i`[${t}]`}e.getProperty=m;function h(t){if(typeof t==`string`&&e.IDENTIFIER.test(t))return new r(`${t}`);throw Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}e.getEsmExportName=h;function g(e){return new r(e.toString())}e.regexpCode=g})),Gr=P((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;let t=Wr();var n=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},r;(function(e){e[e.Started=0]=`Started`,e[e.Completed=1]=`Completed`})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name(`const`),let:new t.Name(`let`),var:new t.Name(`var`)};var i=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof t.Name?e:this.name(e)}name(e){return new t.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){if((this._parent?._prefixes)?.has(e)||this._prefixes&&!this._prefixes.has(e))throw Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};e.Scope=i;var a=class extends t.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:n,itemIndex:r}){this.value=e,this.scopePath=(0,t._)`.${new t.Name(n)}[${r}]`}};e.ValueScopeName=a;let o=(0,t._)`\n`;e.ValueScope=class extends i{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?o:t.nil}}get(){return this._scope}name(e){return new a(e,this._newName(e))}value(e,t){if(t.ref===void 0)throw Error(`CodeGen: ref must be passed in value`);let n=this.toName(e),{prefix:r}=n,i=t.key??t.ref,a=this._values[r];if(a){let e=a.get(i);if(e)return e}else a=this._values[r]=new Map;a.set(i,n);let o=this._scope[r]||(this._scope[r]=[]),s=o.length;return o[s]=t.ref,n.setValue(t,{property:r,itemIndex:s}),n}getValue(e,t){let n=this._values[e];if(n)return n.get(t)}scopeRefs(e,n=this._values){return this._reduceValues(n,n=>{if(n.scopePath===void 0)throw Error(`CodeGen: name "${n}" has no value`);return(0,t._)`${e}${n.scopePath}`})}scopeCode(e=this._values,t,n){return this._reduceValues(e,e=>{if(e.value===void 0)throw Error(`CodeGen: name "${e}" has no value`);return e.value.code},t,n)}_reduceValues(i,a,o={},s){let c=t.nil;for(let l in i){let u=i[l];if(!u)continue;let d=o[l]=o[l]||new Map;u.forEach(i=>{if(d.has(i))return;d.set(i,r.Started);let o=a(i);if(o){let n=this.opts.es5?e.varKinds.var:e.varKinds.const;c=(0,t._)`${c}${n} ${i} = ${o};${this.opts._n}`}else if(o=s?.(i))c=(0,t._)`${c}${o}${this.opts._n}`;else throw new n(i);d.set(i,r.Completed)})}return c}}})),G=P((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;let t=Wr(),n=Gr();var r=Wr();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,`strConcat`,{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,`getProperty`,{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,`regexpCode`,{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return r.Name}});var i=Gr();Object.defineProperty(e,`Scope`,{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,`ValueScope`,{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,`ValueScopeName`,{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,`varKinds`,{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(`>`),GTE:new t._Code(`>=`),LT:new t._Code(`<`),LTE:new t._Code(`<=`),EQ:new t._Code(`===`),NEQ:new t._Code(`!==`),NOT:new t._Code(`!`),OR:new t._Code(`||`),AND:new t._Code(`&&`),ADD:new t._Code(`+`)};var a=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},o=class extends a{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){let r=e?n.varKinds.var:this.varKind,i=this.rhs===void 0?``:` = ${this.rhs}`;return`${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&=k(this.rhs,e,t),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}},s=class extends a{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,n){if(!(this.lhs instanceof t.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=k(this.rhs,e,n),this}get names(){return O(this.lhs instanceof t.Name?{}:{...this.lhs.names},this.rhs)}},c=class extends s{constructor(e,t,n,r){super(e,n,r),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},l=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},u=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:``};`+e}},d=class extends a{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},f=class extends a{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=k(this.code,e,t),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}},p=class extends a{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,n)=>t+n.render(e),``)}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:n}=this,r=n.length;for(;r--;){let i=n[r];i.optimizeNames(e,t)||(A(e,i.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>D(e,t.names),{})}},m=class extends p{render(e){return`{`+e._n+super.render(e)+`}`+e._n}},h=class extends p{},g=class extends m{};g.kind=`else`;var _=class e extends m{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+=`else `+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let e=n.optimizeNodes();n=this.else=Array.isArray(e)?new g(e):e}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(ee(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(e,t){if(this.else=this.else?.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=k(this.condition,e,t),this}get names(){let e=super.names;return O(e,this.condition),this.else&&D(e,this.else.names),e}};_.kind=`if`;var v=class extends m{};v.kind=`for`;var y=class extends v{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=k(this.iteration,e,t),this}get names(){return D(super.names,this.iteration.names)}},b=class extends v{constructor(e,t,n,r){super(),this.varKind=e,this.name=t,this.from=n,this.to=r}render(e){let t=e.es5?n.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return`for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){return O(O(super.names,this.from),this.to)}},x=class extends v{constructor(e,t,n,r){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=r}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=k(this.iterable,e,t),this}get names(){return D(super.names,this.iterable.names)}},S=class extends m{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?`async `:``}function ${this.name}(${this.args})`+super.render(e)}};S.kind=`func`;var C=class extends p{render(e){return`return `+super.render(e)}};C.kind=`return`;var w=class extends m{render(e){let t=`try`+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)==null||e.optimizeNodes(),(t=this.finally)==null||t.optimizeNodes(),this}optimizeNames(e,t){var n,r;return super.optimizeNames(e,t),(n=this.catch)==null||n.optimizeNames(e,t),(r=this.finally)==null||r.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&D(e,this.catch.names),this.finally&&D(e,this.finally.names),e}},T=class extends m{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};T.kind=`catch`;var E=class extends m{render(e){return`finally`+super.render(e)}};E.kind=`finally`,e.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bailian-cli-runtime",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.2",
|
|
4
4
|
"description": "Runtime framework for bailian-cli (createCli, registry, args, output, pipeline). See https://www.npmjs.com/package/bailian-cli for usage.",
|
|
5
5
|
"homepage": "https://bailian.console.aliyun.com/cli",
|
|
6
6
|
"bugs": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"boxen": "^8.0.1",
|
|
31
31
|
"chalk": "^5.6.2",
|
|
32
32
|
"undici": "^8.4.1",
|
|
33
|
-
"bailian-cli-core": "1.8.
|
|
33
|
+
"bailian-cli-core": "1.8.2"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@clack/prompts": "^0.7.0",
|