bailian-cli-runtime 1.28.0 → 2.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bailian-cli-runtime",
3
- "version": "1.28.0",
3
+ "version": "2.0.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.28.0"
33
+ "bailian-cli-core": "2.0.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@clack/prompts": "^0.7.0",
@@ -38,7 +38,7 @@
38
38
  "@typescript/native-preview": "7.0.0-dev.20260328.1",
39
39
  "ajv": "^8.20.0",
40
40
  "typescript": "^6.0.2",
41
- "vite-plus": "0.1.22",
41
+ "vite-plus": "0.3.3",
42
42
  "yaml": "^2.8.3",
43
43
  "e2e": "0.0.0"
44
44
  },
@@ -1 +0,0 @@
1
- import{d as e,i as t}from"./binary-update-Dxwl7hbM.mjs";export{t as fetchBinaryChannelVersion,e as performBinaryUpdate};
@@ -1,2 +0,0 @@
1
- import{BINARY_PRODUCT_CLIENT_NAME as e,binaryAssetFileName as t,binaryInnerFileName as n,channelManifestUrl as r,detectBinaryPlatform as i,extractZipEntryToFile as a,getConfigDir as o,releaseAssetUrl as s,writeInstallMethodSync as c}from"bailian-cli-core";import{chmod as l,copyFile as u,lstat as d,mkdir as f,readdir as p,readlink as m,rename as h,rm as g,unlink as _,writeFile as v}from"node:fs/promises";import{dirname as y,join as b}from"node:path";import{homedir as x}from"node:os";import{createHash as S}from"node:crypto";function C(){return process.env.BAILIAN_SHARE_DIR?process.env.BAILIAN_SHARE_DIR:process.platform===`win32`?b(process.env.LOCALAPPDATA||b(x(),`AppData`,`Local`),`bailian-cli`):b(x(),`.local`,`share`,`bailian-cli`)}function w(){return process.env.BAILIAN_BIN_DIR?process.env.BAILIAN_BIN_DIR:process.platform===`win32`?b(C(),`bin`):b(x(),`.local`,`bin`)}function T(){return b(C(),`versions`)}function E(){return b(C(),`current`)}async function D(e=`latest`,t=5e3){try{let n=await fetch(r(e),{signal:AbortSignal.timeout(t)});return n.ok?(await n.json()).version??null:null}catch{return null}}async function O(e=`latest`,t=8e3){try{let n=await fetch(r(e),{signal:AbortSignal.timeout(t)});return n.ok?await n.json():null}catch{return null}}function k(e){let t=e.trim();return/^v\d/i.test(t)?t.slice(1):t}const A=/^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function j(e){let t=e.trim();return t?A.test(t):!1}async function M(e,t,n=8e3){try{let r=await fetch(s(e,`SHA256SUMS`),{signal:AbortSignal.timeout(n)});if(!r.ok)return;let i=await r.text();for(let e of i.split(`
2
- `)){let n=e.trim().match(/^([a-fA-F0-9]{64})\s+(\S+)$/);if(n?.[2]===t)return n[1].toLowerCase()}}catch{}}async function N(e){let r=k(e),{os:a,arch:o,fileSuffix:c}=i(),l=c===`.exe`,u=t(r,a,o,l),d=n(r,a,o,l),f=s(r,u),p=await M(r,u);if(!p){let e=await O(`latest`);e?.version===r&&(p=e.assets?.[`${a}-${o}`]?.sha256)}return{zipName:u,innerName:d,url:f,expectedSha:p}}async function P(e,t){let n=await fetch(e,{signal:AbortSignal.timeout(12e4)});if(!n.ok||!n.body)throw Error(`Download failed (${n.status}): ${e}`);let r=await n.arrayBuffer(),i=Buffer.from(r);return await f(y(t),{recursive:!0}),await v(t,i),i}function F(e){return S(`sha256`).update(e).digest(`hex`)}function I(){return process.platform===`win32`?`bl.exe`:`bl`}function L(){return process.platform===`win32`?`bailian.exe`:`bailian`}async function R(){let e=E();try{let t=await m(e);return t.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(t)?t:b(y(e),t)}catch{return null}}function z(e){let t=T(),n=e.replaceAll(`\\`,`/`),r=t.replaceAll(`\\`,`/`).replace(/\/$/,``);if(!n.startsWith(`${r}/`)&&n!==r){let t=e.replaceAll(`\\`,`/`).split(`/`).pop();return t&&t!==`versions`?t:null}return n.slice(r.length+1).split(`/`)[0]??null}async function B(e){let t=b(T(),e),n=E();await f(C(),{recursive:!0});try{await _(n)}catch{try{await g(n,{recursive:!0,force:!0})}catch{}}let{symlink:r}=await import(`node:fs/promises`);return process.platform===`win32`?await r(t,n,`junction`):await r(t,n),t}async function V(e){let t=b(T(),e),n=I(),r=b(E(),n),i=w();if(process.platform===`win32`){await U(i);let e=b(t,n),r=b(t,L());try{await d(r)}catch{try{let{link:t}=await import(`node:fs/promises`);await t(e,r)}catch{await u(e,r)}}return}await f(i,{recursive:!0});let{symlink:a}=await import(`node:fs/promises`);for(let e of[`bl`,`bailian`]){let t=b(i,e);try{await _(t)}catch{}await a(r,t)}}function H(e){return e&&typeof e==`object`&&`code`in e?String(e.code??``):``}async function U(e){let t=E(),{symlink:n,rename:r}=await import(`node:fs/promises`),i=null;try{let n=await d(e);if(n.isSymbolicLink()){let n=await m(e);if((n.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(n)?n:b(y(e),n)).replaceAll(`\\`,`/`).toLowerCase()===t.replaceAll(`\\`,`/`).toLowerCase())return;await _(e)}else if(n.isDirectory()){i=`${e}.migrating.${process.pid}`;try{await r(e,i)}catch(t){try{await g(e,{recursive:!0,force:!0}),i=null}catch(n){let r=H(t)||H(n)||`EACCES`;throw Error(`Failed to migrate ${e} to a junction pointing at current (${r}). Close other bl sessions and re-run update, or re-run the install script once.`,{cause:n})}}}else await _(e).catch(()=>g(e,{recursive:!0,force:!0}))}catch(t){let n=H(t);if(n&&n!==`ENOENT`)throw t instanceof Error&&t.message.includes(`Failed to migrate`)?t:Error(`Failed to migrate ${e} to a junction pointing at current (${n}). Close other bl sessions and re-run update, or re-run the install script once.`,{cause:t})}await f(y(e),{recursive:!0}),await n(t,e,`junction`),i&&await g(i,{recursive:!0,force:!0}).catch(()=>{})}async function W(e){let t=T(),n=new Set(e.filter(Boolean)),r=await R(),i=r?z(r):null;i&&n.add(i);let a;try{a=await p(t)}catch{return}for(let e of a){if(e.startsWith(`.`)){await g(b(t,e),{recursive:!0,force:!0}).catch(()=>{});continue}n.has(e)||await g(b(t,e),{recursive:!0,force:!0}).catch(()=>{})}}async function G(t){let n=k(t),{zipName:r,innerName:i,url:s,expectedSha:d}=await N(n),p=C(),m=T();await f(b(p,`.tmp`),{recursive:!0}),await f(m,{recursive:!0});let v=await R(),y=v?z(v):null,x=b(p,`.tmp`,r),S=F(await P(s,x));if(d&&d!==S)throw await _(x).catch(()=>{}),Error(`Checksum mismatch for ${r}`);let w=b(m,`.staging.${n}.${process.pid}`);await g(w,{recursive:!0,force:!0}).catch(()=>{}),await f(w,{recursive:!0});let E=I(),D=b(w,E),O=b(p,`.tmp`,`${E}.${process.pid}`);if(await a(x,O,i),await _(x).catch(()=>{}),await h(O,D),process.platform!==`win32`)await l(D,493);else{let e=b(w,L());try{let{link:t}=await import(`node:fs/promises`);await t(D,e)}catch{await u(D,e)}}let A=b(m,n);await g(A,{recursive:!0,force:!0}).catch(()=>{}),await h(w,A),await B(n),await V(n);let j=[n];return y&&y!==n&&j.push(y),await W(j),c(`binary`,{clientName:e}),await f(o(),{recursive:!0}),n}export{w as a,T as c,G as d,W as f,B as h,D as i,j as l,N as m,U as n,E as o,R as p,O as r,C as s,V as t,k as u};