bailian-cli-runtime 1.10.1 → 1.11.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.
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -46,7 +46,7 @@ ${Ot()}\nRun: ${L} auth status — to check credentials.`,{cause:t}),L);if(t ins
|
|
|
46
46
|
`),e.forEach((e,n)=>{process.stderr.write(`${t.dim(String(n+1))} ${e}\n`)}),process.stderr.write(`
|
|
47
47
|
`)}function Bt(e){return M(_(),`plugins`,e.npmPackage)}function Vt(e){return M(Bt(e),`package.json`)}function Ht(e,t){return M(Bt(e),`node_modules`,...t.split(`/`))}async function Ut(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 Wt(e){let t=Vt(e);return he(t)?Ut(t):{dependencies:{}}}async function Gt(e,t){return Kt(Ht(e,t))}async function Kt(e){return Ut(M(e,`package.json`))}const qt=new Set([`none`,`apiKey`,`console`,`openapi`]),Jt=/^[a-z0-9][a-z0-9-]*$/;function Yt(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&&rt(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 Xt(e,t){let n=e.split(/\s+/).filter(Boolean).join(` `);if(!e||e!==n||!e.split(` `).every(e=>Jt.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 Zt(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||!qt.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 Qt(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 $t(e,t,n,r,i=Ht(r,e)){let a=Yt(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)Xt(e,n),Zt(e,t);let d=Qt(e,l,n);return new Ge(d,r.binName),d}function en(e){return e.startsWith(`file:`)?`linked`:`installed`}async function tn(e,t,n){let r={...e},i=[],a;try{a=await Wt(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=en(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 Gt(t,e),o=await $t(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 nn={name:`bailian-cli-command-packs`,private:!0,dependencies:{}},rn=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(`.`)),an=new Set([`registry`,`userconfig`,`globalconfig`,`cache`,`proxy`,`https_proxy`,`noproxy`,`strict_ssl`,`ca`,`cafile`]);function on(e){let t=/^(?:npm_config_|NPM_CONFIG_)(.+)$/.exec(e);return!!t&&an.has(t[1].toLowerCase())}function sn(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 cn(e=process.env){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(rn.has(n)||n.startsWith(`LC_`)||on(n))&&(t[n]=r);return t}async function ln(e){await _e(e,{recursive:!0,mode:448});let t=M(e,`package.json`);he(t)||await Ce(t,`${JSON.stringify(nn,null,2)}\n`,{mode:384})}async function un(t,n){await new Promise((r,a)=>{let o=Oe(`npm`,t,{cwd:n,env:cn(),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 dn(t){let n=Bt(t);await ln(n);let r=M(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 fn(e,t){let n=await dn(e);try{return await t()}finally{await n()}}function pn(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,sn(n,r));return{name:s,requested:a}}async function mn(e,t,n,r){let i=r.supported[e],a=await Kt(t);return{pjson:a,commands:await $t(e,a,i,n,t)}}function hn(e,t){return t.startsWith(`file:`)?t:`${e}@${t}`}async function gn(e,t,n){if(t){await un([`install`,hn(e,t),`--save-exact`,`--ignore-scripts`,`--no-fund`,`--no-audit`],n);return}await un([`uninstall`,e,`--ignore-scripts`,`--no-fund`,`--no-audit`],n)}async function _n(t,n,r){let{name:a,requested:o}=pn(t,n,r);return fn(n,async()=>{let t=Bt(n),s=(await Wt(n)).dependencies?.[a];try{await un([`install`,o,`--save-exact`,`--ignore-scripts`,`--no-fund`,`--no-audit`],t);let s=await mn(a,Ht(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 gn(a,s,t)}catch{}throw e}})}async function vn(t,n,r){let a=Ee(t);if(!he(M(a,`package.json`)))throw new e(`Command Pack path does not exist: ${a}`,i.USAGE);let o=(await Kt(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,sn(n,r));let s=await mn(o,a,n,r);return fn(n,async()=>{await un([`install`,`file:${a}`,`--save-exact`,`--ignore-scripts`,`--no-fund`,`--no-audit`],Bt(n));let e=await mn(o,Ht(n,o),n,r);return{name:o,version:e.pjson.version??s.pjson.version,commands:Object.keys(e.commands).sort()}})}async function yn(t,n,r){if(!r.supported[t])throw new e(`Command Pack "${t}" is not allowlisted for ${n.binName}.`,i.USAGE,sn(n,r));if(!(t in((await Wt(n)).dependencies??{})))throw new e(`Command Pack "${t}" is not installed.`,i.USAGE);await fn(n,()=>un([`uninstall`,t,`--ignore-scripts`,`--no-fund`,`--no-audit`],Bt(n)))}async function bn(e,t){return(await tn({},e,t)).reports}function xn(e,t){return{install:n=>_n(n,e,t),link:n=>vn(n,e,t),list:()=>bn(e,t),remove:n=>yn(n,e,t)}}function Sn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Cn(e){try{St()}catch(t){z(t,e)}process.on(`SIGINT`,()=>{process.stderr.write(`
|
|
48
48
|
Interrupted. Exiting.
|
|
49
|
-
`),h(500).finally(()=>process.exit(130))}),process.stdout.on(`error`,e=>{if(e.code===`EPIPE`)process.exit(0);else throw e})}function wn(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=xn(_,v),b;Cn(i);let C=ht([vt,_t,gt,yt]);function w(){return b||=tn(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=Sn(t,[...Object.keys(a),...Object.keys(e)]),o=Sn(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(d.configName),authStore:x(d),commandPacks:y,client:new r({identity:_,settings:p,baseUrl:D(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 Tn=`1.
|
|
49
|
+
`),h(500).finally(()=>process.exit(130))}),process.stdout.on(`error`,e=>{if(e.code===`EPIPE`)process.exit(0);else throw e})}function wn(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=xn(_,v),b;Cn(i);let C=ht([vt,_t,gt,yt]);function w(){return b||=tn(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=Sn(t,[...Object.keys(a),...Object.keys(e)]),o=Sn(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(d.configName),authStore:x(d),commandPacks:y,client:new r({identity:_,settings:p,baseUrl:D(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 Tn=`1.11.0`;function En(e,t){process.stdout.write(g(e,t)+`
|
|
50
50
|
`)}function Dn(e){process.stdout.write(e+`
|
|
51
51
|
`)}function On(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 kn(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 B(e){let t=0;for(let n of e){let e=n.codePointAt(0)??0;t+=kn(e)?2:1}return t}function An(e,t){let n=t-B(e);return n>0?e+` `.repeat(n):e}const jn=` │ `,Mn=[0,150,160],Nn=[176,205,250],Pn=[160,160,170];function Fn(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 In(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 Ln(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 Rn(e,t,n,r,i=38){return e>=3?`${i};2;${t};${n};${r}`:e===2?`${i};5;${In(t,n,r)}`:String(Ln(t,n,r,i))}function zn(e,[t,n,r],i){return e<=0?i:`\x1b[${Rn(e,t,n,r)}m${i}\x1b[0m`}function Bn(e,t,n){return t<=0?e:`\x1b[1;${Rn(t,255,255,255,38)};${Rn(t,n[0],n[1],n[2],48)}m${e}\x1b[0m`}function Vn(e,t){let n=t-B(e);return n>0?` `.repeat(n)+e:e}function Hn(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+=zn(r,Mn,`█`)):(s+=` `,c+=` `);let l=a?Nn:Pn;return s+=` ${t}`,c+=` ${zn(r,l,t)}`,{plain:s,colored:c}}function Un(e){let t=Fn(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(Hn(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=B(t);for(let t=0;t<e.rows.length;t++){let e=B(o(t,n));e>r&&(r=e)}return r}),c=[],l=e.headers.map((e,t)=>n[t]===`right`?Vn(e,s[t]):An(e,s[t])).join(jn),u=Math.max(B(l),...e.rows.map((e,t)=>B(Array.from({length:i},(e,n)=>o(t,n)).join(jn))));c.push(Bn(` ${An(l,u)} `,t,Mn));let d=` ${zn(t,Mn,`│`)} `;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-B(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`?Vn(c,i):An(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 Wn=[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`];function Gn(e){let t=process.stderr.isTTY,n=0,r=null,i=e;return{start(){t&&(r=setInterval(()=>{process.stderr.write(`\r${Wn[n%Wn.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 Kn(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(`
|
|
52
52
|
`)}}}async function qn(t,n,r){let a=Date.now()+r.timeoutSec*1e3,o=Gn(`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 Jn(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?Kn(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 Yn(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 Xn(e){return Math.max(1,e.concurrent??1)}async function Zn(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 Qn(e,t,n){return Promise.all(e.map(({url:e,destPath:r})=>t(e,r,n).then(()=>r)))}const $n={"16:9":`2688*1536`,"9:16":`1536*2688`,"1:1":`2048*2048`,"4:3":`2368*1728`,"3:4":`1728*2368`},er={"16:9":`1664*928`,"4:3":`1472*1104`,"1:1":`1328*1328`,"3:4":`1104*1472`,"9:16":`928*1664`};function tr(e,t){if(e)return(t?$n:er)[e]??e}const nr=`Enable watermark (true/false). Omit flag to use CLI default (true).`,rr=`Enable prompt extend (true/false). Omit flag to use CLI default (true).`,ir=`Enable prompt extend (true/false). Omit flag: true for qwen-image sync; parameter omitted on async models (API default).`,ar=`Enable prompt extend (true/false). Omit flag to omit the parameter (DashScope default).`;var V=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 or(e,t){return e instanceof V?e:new V(`step_execution_error`,e instanceof Error?e.message:String(e),{step:t})}var sr=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 V(`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 cr=new sr;function lr(){return cr}function ur(e,t,n,r){let i,a;n instanceof sr?(i=n,a=r):(i=cr,a=n??r),i.registerStep(e,t,a)}function dr(){let e=u({}),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=w(e)}catch{}return{client:new r({identity:n,settings:t,baseUrl:D(e),apiCred:i}),settings:t}}const fr=[`download`,`out-dir`,`output`];function pr(e){return e.startsWith(`./`)||e.startsWith(`../`)}function mr(e,t){let n={},r=[];for(let[i,a]of Object.entries(e))typeof a==`string`&&pr(a)?(n[i]=Ee(t,a),r.push(i)):n[i]=a;return{input:n,resolvedKeys:r}}async function hr(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 gr(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 H(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function U(e,t){if(Array.isArray(e)){e.forEach(e=>U(e,t));return}if(H(e)){`$from`in e&&typeof e.$from==`string`&&t.add(e.$from);for(let n of Object.values(e))U(n,t)}}async function _r(e,t){let n=[];for(let r of e)for(let[e,i]of Object.entries(r.input)){if(fr.includes(e)||typeof i!=`string`||!pr(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 V(`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 V(`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=T(t[`prompt-extend`],i?!0:void 0,`prompt-extend`),s={model:r,input:{messages:[{role:`user`,content:[{text:t.prompt}]}]},parameters:{size:tr(t.size,i),n:a,seed:t.seed,prompt_extend:o,watermark:k(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 V(`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=T(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:tr(t.size,a),n:o,seed:t.seed,prompt_extend:s,watermark:k(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:M(t,`${r}.png`)}]:e.map((e,n)=>({url:e,destPath:M(t,`${r}_${String(n+1).padStart(3,`0`)}.png`)})),a=[];for(let{url:e,destPath:t}of i)await Jn(e,t,{quiet:!0}),a.push(t);return a}async function Tr(e,t,n){if(!t.prompt)throw new V(`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:T(t[`prompt-extend`],void 0,`prompt-extend`),watermark:k(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 V(`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=ee(),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 V(`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=A(),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 V(`aborted`,`Task polling was aborted`,{details:{taskId:t}});await jr(n,i?.signal),o++;let s=te(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 V(`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 V(`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 V(`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))ur(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??dr(),t,n),a=Nr[e];return a?a(i):{data:i,warnings:[],metadata:{}}}function Lr(e){if(!H(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(!H(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(!H(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=N((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=N((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=N((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.
|
|
3
|
+
"version": "1.11.0",
|
|
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": "^6.27.0",
|
|
33
|
-
"bailian-cli-core": "1.
|
|
33
|
+
"bailian-cli-core": "1.11.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@clack/prompts": "^0.7.0",
|