@openyida/yidacli 0.1.9 → 0.1.11

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.
Files changed (2) hide show
  1. package/dist/login.js +4 -3
  2. package/package.json +1 -1
package/dist/login.js CHANGED
@@ -1,8 +1,9 @@
1
1
  let fs=require("fs"),path=require("path"),os=require("os"),execSync=require("child_process").execSync,{findProjectRoot,extractInfoFromCookies,loadCookieData,resolveBaseUrl}=require("./utils"),DEFAULT_BASE_URL="https://www.aliwork.com",DEFAULT_LOGIN_URL="https://www.aliwork.com/workPlatform";function loadConfig(){var o=findProjectRoot(),o=path.join(o,"config.json");if(fs.existsSync(o))try{return JSON.parse(fs.readFileSync(o,"utf-8"))}catch{}return{loginUrl:DEFAULT_LOGIN_URL,defaultBaseUrl:DEFAULT_BASE_URL}}function saveCookieCache(o,e){var r=findProjectRoot(),r=path.join(r,".cache"),s=path.join(r,"cookies.json");fs.mkdirSync(r,{recursive:!0}),fs.writeFileSync(s,JSON.stringify({cookies:o,base_url:e},null,2),"utf-8"),console.error(" Cookie 已保存到 "+s)}function checkLoginOnly(){var o,e,r,s=loadCookieData();return s&&s.cookies?({csrfToken:r,corpId:o,userId:e}=extractInfoFromCookies(s.cookies),r?{status:"ok",can_auto_use:!0,csrf_token:r,corp_id:o,user_id:e,base_url:r=resolveBaseUrl(s),cookies:s.cookies,message:`✅ 已有有效登录态,可直接使用
2
2
  组织: ${o}
3
3
  用户: ${e}
4
- 域名: `+r}:{status:"not_logged_in",can_auto_use:!1,message:"Cookie 中无 tianshu_csrf_token,需要重新登录"}):{status:"not_logged_in",can_auto_use:!1,message:"本地无 Cookie 缓存,需要扫码登录"}}function refreshCsrfFromCache(){var o=loadCookieData(),{csrfToken:e,corpId:r,userId:s}=(o&&o.cookies||(console.error(" ❌ 本地无有效 Cookie,无法刷新,需要重新登录。"),process.exit(1)),extractInfoFromCookies(o.cookies)),i=(e||(console.error(" ❌ Cookie 中无 tianshu_csrf_token,需要重新登录。"),process.exit(1)),resolveBaseUrl(o));return console.error(` ✅ csrf_token 提取成功: ${e.slice(0,16)}...`),{csrf_token:e,corp_id:r,user_id:s,base_url:i,cookies:o.cookies}}function ensureLogin(){var o=loadCookieData();if(o&&o.cookies){var{csrfToken:e,corpId:r,userId:s}=extractInfoFromCookies(o.cookies);if(e)return console.error("🔍 检测到本地 Cookie,直接使用..."),console.error(` ✅ csrf_token: ${e.slice(0,16)}...`),r&&console.error(" ✅ corpId: "+r),{csrf_token:e,corp_id:r,user_id:s,base_url:resolveBaseUrl(o),cookies:o.cookies}}return interactiveLogin()}function interactiveLogin(){var o=loadConfig().loginUrl||DEFAULT_LOGIN_URL,o=(console.error("\n🔐 正在打开浏览器,请扫码登录..."),console.error(" 登录地址: "+o),`
5
- const { chromium } = require('playwright');
4
+ 域名: `+r}:{status:"not_logged_in",can_auto_use:!1,message:"Cookie 中无 tianshu_csrf_token,需要重新登录"}):{status:"not_logged_in",can_auto_use:!1,message:"本地无 Cookie 缓存,需要扫码登录"}}function refreshCsrfFromCache(){var o=loadCookieData(),{csrfToken:e,corpId:r,userId:s}=(o&&o.cookies||(console.error(" ❌ 本地无有效 Cookie,无法刷新,需要重新登录。"),process.exit(1)),extractInfoFromCookies(o.cookies)),i=(e||(console.error(" ❌ Cookie 中无 tianshu_csrf_token,需要重新登录。"),process.exit(1)),resolveBaseUrl(o));return console.error(` ✅ csrf_token 提取成功: ${e.slice(0,16)}...`),{csrf_token:e,corp_id:r,user_id:s,base_url:i,cookies:o.cookies}}function ensureLogin(){var o=loadCookieData();if(o&&o.cookies){var{csrfToken:e,corpId:r,userId:s}=extractInfoFromCookies(o.cookies);if(e)return console.error("🔍 检测到本地 Cookie,直接使用..."),console.error(` ✅ csrf_token: ${e.slice(0,16)}...`),r&&console.error(" ✅ corpId: "+r),{csrf_token:e,corp_id:r,user_id:s,base_url:resolveBaseUrl(o),cookies:o.cookies}}return interactiveLogin()}function getPlaywrightPath(){var o;for(o of[path.join(__dirname,"..","node_modules","playwright","index.js"),path.join(__dirname,"..","..","node_modules","playwright","index.js")])if(fs.existsSync(o))return o;try{return require.resolve("playwright")}catch{}try{var e=execSync("npm root -g",{encoding:"utf-8"}).trim(),r=path.join(e,"playwright","index.js");if(fs.existsSync(r))return r}catch{}return null}function interactiveLogin(){var o=loadConfig().loginUrl||DEFAULT_LOGIN_URL,e=getPlaywrightPath(),e=(e||(console.error("\n❌ 未找到 playwright 模块,请先安装:"),console.error(" npm install -g playwright"),console.error(" npx playwright install chromium"),process.exit(1)),console.error("\n🔐 正在打开浏览器,请扫码登录..."),console.error(" 登录地址: "+o),`
5
+ const playwright = require(${JSON.stringify(e)});
6
+ const { chromium } = playwright;
6
7
  const { URL } = require('url');
7
8
 
8
9
  (async () => {
@@ -30,5 +31,5 @@ const { URL } = require('url');
30
31
 
31
32
  console.log(JSON.stringify({ cookies, base_url: baseUrl }));
32
33
  })();
33
- `),e=path.join(os.tmpdir(),`yidacli-login-${Date.now()}.js`);fs.writeFileSync(e,o,"utf-8");try{var r=execSync(`node "${e}"`,{encoding:"utf-8",stdio:["inherit","pipe","inherit"],timeout:66e4}).trim().split("\n"),s=r[r.length-1],i=JSON.parse(s),{csrfToken:t,corpId:c,userId:n}=extractInfoFromCookies(i.cookies);return t||(console.error(" ❌ 登录成功但 Cookie 中无 tianshu_csrf_token,请重试。"),process.exit(1)),saveCookieCache(i.cookies,i.base_url),console.error(` ✅ csrf_token: ${t.slice(0,16)}...`),c&&console.error(" ✅ corpId: "+c),{csrf_token:t,corp_id:c,user_id:n,base_url:i.base_url,cookies:i.cookies}}finally{try{fs.unlinkSync(e)}catch{}}}function logout(){console.error("=".repeat(50)),console.error(" yidacli logout - 宜搭退出登录工具"),console.error("=".repeat(50));var o=findProjectRoot(),o=path.join(o,".cache","cookies.json");console.error(`
34
+ `),o=path.join(os.tmpdir(),`yidacli-login-${Date.now()}.js`);fs.writeFileSync(o,e,"utf-8");try{var r=execSync(`node "${o}"`,{encoding:"utf-8",stdio:["inherit","pipe","inherit"],timeout:66e4}).trim().split("\n"),s=r[r.length-1],i=JSON.parse(s),{csrfToken:t,corpId:n,userId:c}=extractInfoFromCookies(i.cookies);return t||(console.error(" ❌ 登录成功但 Cookie 中无 tianshu_csrf_token,请重试。"),process.exit(1)),saveCookieCache(i.cookies,i.base_url),console.error(` ✅ csrf_token: ${t.slice(0,16)}...`),n&&console.error(" ✅ corpId: "+n),{csrf_token:t,corp_id:n,user_id:c,base_url:i.base_url,cookies:i.cookies}}finally{try{fs.unlinkSync(o)}catch{}}}function logout(){console.error("=".repeat(50)),console.error(" yidacli logout - 宜搭退出登录工具"),console.error("=".repeat(50));var o=findProjectRoot(),o=path.join(o,".cache","cookies.json");console.error(`
34
35
  Cookie 文件: `+o),fs.existsSync(o)?(fs.writeFileSync(o,"","utf-8"),console.error(" ✅ 已清空 Cookie,登录态已失效。"),console.error(" 下次调用 yidacli login 时将重新触发扫码登录。")):console.error(" ℹ️ Cookie 文件不存在,无需清空。"),console.error("=".repeat(50))}module.exports={ensureLogin:ensureLogin,checkLoginOnly:checkLoginOnly,refreshCsrfFromCache:refreshCsrfFromCache,interactiveLogin:interactiveLogin,logout:logout};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openyida/yidacli",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "宜搭 CLI 工具 - 宜搭平台应用、页面、表单的命令行管理工具",
5
5
  "main": "bin/yidacli.js",
6
6
  "bin": {