wanghuan9_obsidian-feishu-l.../lark-cli-command.mjs
2026-07-16 14:45:15 +08:00

1 line
5.4 KiB
JavaScript
Generated

import{delimiter as h,dirname as k,join as s,win32 as o}from"path";import{homedir as p}from"os";import c from"process";var l="lark-cli",g="v2",u="1.0.53",L=["C:\\nvm4w\\nodejs\\lark-cli.cmd","C:\\Program Files\\nodejs\\lark-cli.cmd"],b=["/opt/homebrew/bin","/opt/homebrew/sbin","/usr/local/bin","/usr/bin","/bin","/usr/sbin","/sbin"],w=new Set(["+create","+fetch","+update"]);async function M(n,r){let t=r.env||c.env,i=r.homeDir||p(),e=I(n).replace(/[\\/]+$/,"");if(e&&e!==l)return await x(e,r);let m=await r.resolveCommandFromLoginShell?.(l);if(m)return m;for(let a of S(t,i))if(a===l||await r.canExecute(a))return a;return l}async function x(n,r){if(c.platform!=="win32")return n;if(await r.isDirectory(n))return await E(n,r)||l;if(!/\.(cmd|bat|exe)$/i.test(n)){let t=`${n}.cmd`;if(await r.pathExists(t))return t}return n}async function E(n,r){let t=[s(n,"lark-cli.cmd"),s(n,"lark-cli.exe"),s(n,"npm","lark-cli.cmd"),s(n,"Roaming","npm","lark-cli.cmd"),s(n,"Local","npm","lark-cli.cmd"),s(n,"Programs","nodejs","lark-cli.cmd")];for(let i of t)if(await r.pathExists(i))return i;return""}function R(n,r={}){let t=r.env||c.env,i=D(t,r.homeDir||p());return T(n)&&i.unshift(k(n)),r.loginShellPath&&i.unshift(...r.loginShellPath.split(h).filter(Boolean)),t.PATH&&i.push(t.PATH),{...t,PATH:N(i).join(h)}}function D(n=c.env,r=p()){return[...C(n)?[n.NVM_SYMLINK||"",n.APPDATA?o.join(n.APPDATA,"npm"):"",n.LOCALAPPDATA?o.join(n.LOCALAPPDATA,"npm"):"",n.LOCALAPPDATA?o.join(n.LOCALAPPDATA,"Programs","nodejs"):"","C:\\nvm4w\\nodejs","C:\\Program Files\\nodejs"]:[],s(r,".npm-global/bin"),s(r,".local/bin"),s(r,"bin"),...b].filter(Boolean)}function S(n=c.env,r=p()){return[...C(n)?[n.NVM_SYMLINK?o.join(n.NVM_SYMLINK,"lark-cli.cmd"):"",n.APPDATA?o.join(n.APPDATA,"npm","lark-cli.cmd"):"",n.LOCALAPPDATA?o.join(n.LOCALAPPDATA,"npm","lark-cli.cmd"):"",n.LOCALAPPDATA?o.join(n.LOCALAPPDATA,"Programs","nodejs","lark-cli.cmd"):"",...L]:[],s(r,".npm-global/bin/lark-cli"),s(r,".local/bin/lark-cli"),s(r,"bin/lark-cli"),"/opt/homebrew/bin/lark-cli","/usr/local/bin/lark-cli",l].filter(Boolean)}function V(n){if(n[0]!=="docs"||!w.has(n[1]||""))return n;let r=n.indexOf("--api-version");if(r>=0){if(n[r+1]!==g)throw new Error(`docs commands must use --api-version ${g}.`);return n}let t=n.length>1?2:1;return[...n.slice(0,t),"--api-version",g,...n.slice(t)]}function W(n){return n.match(/\b\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?\b/)?.[0]||""}function y(n){return j(n,u)>0}function F(n,r="zh-CN"){return r==="en"?n?`lark-cli ${n} is too old. Please upgrade to a version greater than ${u}.`:`lark-cli is too old. Please upgrade to a version greater than ${u}.`:n?`lark-cli \u7248\u672C\u8FC7\u4F4E\uFF1A${n}\uFF0C\u8BF7\u5347\u7EA7\u5230\u5927\u4E8E ${u} \u7684\u7248\u672C\u3002`:`lark-cli \u7248\u672C\u8FC7\u4F4E\uFF0C\u8BF7\u5347\u7EA7\u5230\u5927\u4E8E ${u} \u7684\u7248\u672C\u3002`}function H(n="zh-CN"){return n==="en"?"lark-cli was not found. Please install lark-cli first.":"\u672A\u68C0\u6D4B\u5230 lark-cli\uFF0C\u8BF7\u5148\u5B89\u88C5 lark-cli\u3002"}function K(n){return c.platform==="win32"&&/\.(cmd|bat)$/i.test(n)}async function z(n,r,t={}){if((t.platform||c.platform)!=="win32")return{executable:n,argsPrefix:[]};if(/\.bat$/i.test(n))throw new Error("Windows .bat launchers are not supported. Use the npm-generated lark-cli.cmd or native lark-cli.exe.");if(!/\.cmd$/i.test(n))return{executable:n,argsPrefix:[]};if(!o.isAbsolute(n))throw new Error("The Windows lark-cli.cmd path must be absolute. Keep the default setting for auto-detection or select the npm-generated lark-cli.cmd.");let e=o.join(o.dirname(n),"node_modules","@larksuite","cli"),m=o.join(e,"package.json"),a;try{a=JSON.parse(await r.readTextFile(m))}catch{throw new Error(`The configured lark-cli.cmd is not an npm-installed @larksuite/cli launcher: expected ${m}.`)}let d=typeof a.bin=="string"?a.bin:a.bin?.[l];if(!d)throw new Error(`The @larksuite/cli package does not declare a ${l} bin entry.`);let f=o.resolve(e,d);if(!await r.pathExists(f))throw new Error(`The @larksuite/cli npm entry point was not found: ${f}`);let P=o.join(o.dirname(n),"node.exe");return{executable:await r.pathExists(P)?P:t.nodeCommand||"node",argsPrefix:[f]}}function I(n){let r=n.trim();return r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1).trim():r}function N(n){let r=new Set,t=[];for(let i of n)!i||r.has(i)||(r.add(i),t.push(i));return t}function T(n){return n.startsWith("/")||/^[A-Za-z]:[\\/]/.test(n)}function C(n){return c.platform==="win32"||!!(n.NVM_SYMLINK||n.APPDATA||n.LOCALAPPDATA)}function j(n,r){let t=A(n),i=A(r);if(!t||!i)return-1;for(let e=0;e<3;e+=1){let m=t[e]??0,a=i[e]??0,d=m-a;if(d!==0)return d}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),e=Number.parseInt(r[3]||"",10);return!Number.isFinite(t)||!Number.isFinite(i)||!Number.isFinite(e)?null:[t,i,e]}export{l as LARK_CLI_COMMAND,g as LARK_DOCS_API_VERSION,u as MIN_EXCLUSIVE_LARK_CLI_VERSION,R as buildCommandEnvironment,E as findWindowsLarkCliInDirectory,H as formatMissingLarkCli,F as formatUnsupportedLarkCliVersion,S as getDefaultLarkCliCandidates,D as getDefaultPathEntries,y as isSupportedLarkCliVersion,W as parseLarkCliVersion,x as resolveConfiguredLarkCliPath,z as resolveLarkCliInvocation,M as resolveLarkCliPathFromSetting,K as shouldUseCommandShell,I as stripWrappingQuotes,N as uniquePathEntries,V as withDocsApiVersion};