wanghuan9_obsidian-feishu-l.../lark-cli-command.mjs
2026-07-02 18:24:27 +08:00

1 line
4.1 KiB
JavaScript

import{delimiter as f,dirname as g,join as e,win32 as s}from"path";import{homedir as d}from"os";var a="lark-cli",u="v2",c="1.0.53",C=["C:\\nvm4w\\nodejs\\lark-cli.cmd","C:\\Program Files\\nodejs\\lark-cli.cmd"],h=["/opt/homebrew/bin","/opt/homebrew/sbin","/usr/local/bin","/usr/bin","/bin","/usr/sbin","/sbin"],L=new Set(["+create","+fetch","+update"]);async function O(n,r){let t=r.env||process.env,i=r.homeDir||d(),o=D(n).replace(/[\\/]+$/,"");if(o&&o!==a)return await b(o,r);let m=await r.resolveCommandFromLoginShell?.(a);if(m)return m;for(let l of x(t,i))if(l===a||await r.canExecute(l))return l;return a}async function b(n,r){if(process.platform!=="win32")return n;if(await r.isDirectory(n))return await k(n,r)||a;if(!/\.(cmd|bat|exe)$/i.test(n)){let t=`${n}.cmd`;if(await r.pathExists(t))return t}return n}async function k(n,r){let t=[e(n,"lark-cli.cmd"),e(n,"lark-cli.exe"),e(n,"lark-cli.bat"),e(n,"npm","lark-cli.cmd"),e(n,"Roaming","npm","lark-cli.cmd"),e(n,"Local","npm","lark-cli.cmd"),e(n,"Programs","nodejs","lark-cli.cmd")];for(let i of t)if(await r.pathExists(i))return i;return""}function T(n,r={}){let t=r.env||process.env,i=w(t,r.homeDir||d());return N(n)&&i.unshift(g(n)),r.loginShellPath&&i.unshift(...r.loginShellPath.split(f).filter(Boolean)),t.PATH&&i.push(t.PATH),{...t,PATH:S(i).join(f)}}function w(n=process.env,r=d()){return[...P(n)?[n.NVM_SYMLINK||"",n.APPDATA?s.join(n.APPDATA,"npm"):"",n.LOCALAPPDATA?s.join(n.LOCALAPPDATA,"npm"):"",n.LOCALAPPDATA?s.join(n.LOCALAPPDATA,"Programs","nodejs"):"","C:\\nvm4w\\nodejs","C:\\Program Files\\nodejs"]:[],e(r,".npm-global/bin"),e(r,".local/bin"),e(r,"bin"),...h].filter(Boolean)}function x(n=process.env,r=d()){return[...P(n)?[n.NVM_SYMLINK?s.join(n.NVM_SYMLINK,"lark-cli.cmd"):"",n.APPDATA?s.join(n.APPDATA,"npm","lark-cli.cmd"):"",n.LOCALAPPDATA?s.join(n.LOCALAPPDATA,"npm","lark-cli.cmd"):"",n.LOCALAPPDATA?s.join(n.LOCALAPPDATA,"Programs","nodejs","lark-cli.cmd"):"",...C]:[],e(r,".npm-global/bin/lark-cli"),e(r,".local/bin/lark-cli"),e(r,"bin/lark-cli"),"/opt/homebrew/bin/lark-cli","/usr/local/bin/lark-cli",a].filter(Boolean)}function j(n){if(n[0]!=="docs"||!L.has(n[1]||""))return n;let r=n.indexOf("--api-version");if(r>=0){if(n[r+1]!==u)throw new Error(`docs commands must use --api-version ${u}.`);return n}let t=n.length>1?2:1;return[...n.slice(0,t),"--api-version",u,...n.slice(t)]}function M(n){return n.match(/\b\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?\b/)?.[0]||""}function R(n){return E(n,c)>0}function V(n,r="zh-CN"){return r==="en"?n?`lark-cli ${n} is too old. Please upgrade to a version greater than ${c}.`:`lark-cli is too old. Please upgrade to a version greater than ${c}.`:n?`lark-cli \u7248\u672C\u8FC7\u4F4E\uFF1A${n}\uFF0C\u8BF7\u5347\u7EA7\u5230\u5927\u4E8E ${c} \u7684\u7248\u672C\u3002`:`lark-cli \u7248\u672C\u8FC7\u4F4E\uFF0C\u8BF7\u5347\u7EA7\u5230\u5927\u4E8E ${c} \u7684\u7248\u672C\u3002`}function $(n){return process.platform==="win32"&&/\.(cmd|bat)$/i.test(n)}function D(n){let r=n.trim();return r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1).trim():r}function S(n){let r=new Set,t=[];for(let i of n)!i||r.has(i)||(r.add(i),t.push(i));return t}function N(n){return n.startsWith("/")||/^[A-Za-z]:[\\/]/.test(n)}function P(n){return process.platform==="win32"||!!(n.NVM_SYMLINK||n.APPDATA||n.LOCALAPPDATA)}function E(n,r){let t=A(n),i=A(r);if(!t||!i)return-1;for(let o=0;o<3;o+=1){let m=t[o]??0,l=i[o]??0,p=m-l;if(p!==0)return p}return 0}function A(n){let r=n.match(/^(\d+)\.(\d+)\.(\d+)/);if(!r)return null;let t=Number.parseInt(r[1]||"",10),i=Number.parseInt(r[2]||"",10),o=Number.parseInt(r[3]||"",10);return!Number.isFinite(t)||!Number.isFinite(i)||!Number.isFinite(o)?null:[t,i,o]}export{a as LARK_CLI_COMMAND,u as LARK_DOCS_API_VERSION,c as MIN_EXCLUSIVE_LARK_CLI_VERSION,T as buildCommandEnvironment,k as findWindowsLarkCliInDirectory,V as formatUnsupportedLarkCliVersion,x as getDefaultLarkCliCandidates,w as getDefaultPathEntries,R as isSupportedLarkCliVersion,M as parseLarkCliVersion,b as resolveConfiguredLarkCliPath,O as resolveLarkCliPathFromSetting,$ as shouldUseCommandShell,D as stripWrappingQuotes,S as uniquePathEntries,j as withDocsApiVersion};