pangu-vis-cli 1.0.1 → 1.0.4
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/create/chart/index.js +1 -1
- package/dist/tidier/index.js +1 -1
- package/dist/utils.js +1 -1
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const{updatePackageJson:e,getPackageName:
|
|
1
|
+
"use strict";const{updatePackageJson:e,getPackageName:n,outputVueName:t,checkNpmConnectionState:a,get_plugin_latest_version:s}=require("../../utils"),i=require("yann-fs").default,r=require("path");module.exports=async function(o,c,l,p,d,u,h){await i.outputJson(r.resolve(c,"public","base.json"),{name:o,label:o,desc:"Custom Chart",version:"1.0.0",width:480,height:240,type:d||"other",author:p,id:u},{spaces:2,EOL:"\n"});const m=`\nexport const ${n(o)} = component`;if(await i.appendFile(r.resolve(c,"index.js"),m),await t(r.resolve(c,"src","index.vue"),o),await e(c,{name:o,author:p}),l&&"chart"===l.type)await e(c,{name:o,author:p,devDependencies:{"@chart/utils":"workspace:*"}});else{const n=await a();await e(c,{name:o,author:p,devDependencies:{...s("pangu-chart-cli","1.1.0"),...s(n?"@pangu/vchart-config":"","1.1.0"),...s(n?"":"pangu-vchart-theme","1.0.2"),"@vitejs/plugin-vue":"^3.2.0",sass:"^1.69.7",vite:"^4.5.5","vite-plugin-compression":"^0.5.1","vite-plugin-banner":"^0.7.1"},dependencies:{vue:"~3.3.13","yann-i18n":"1.0.7"}}),n||(await i.writeFile(r.resolve(c,"example/App.vue"),'<script setup>\nimport { computed } from \'vue\'\nimport ChartInfo from \'../index\'\nimport base from \'../public/base.json\'\nimport { createTheme } from \'pangu-vchart-theme\'\nconst { component: Chart, data, style } = ChartInfo\nconst layerBoxStyle = computed(() => {\n return {\n width: base.width + \'px\',\n height: base.height + \'px\'\n }\n})\n\nconst chartData = computed(() => {\n return typeof data === \'function\' ? data(\'zh\') : data\n})\n\nconst chartStyle = computed(() => {\n return typeof style === \'function\' ? style(createTheme()) : style\n})\n<\/script>\n\n<template>\n <div class="box">\n \x3c!-- 图表盒子 --\x3e\n <div class="layerBox" :style="layerBoxStyle">\n \x3c!-- 图表具体内容 --\x3e\n <div class="layerMain">\n \x3c!-- 上面那些div不用去管,平台会自动生成 --\x3e\n <Chart\n :width="base.width"\n :height="base.height"\n :data="chartData"\n :styled="chartStyle"\n :events="events"\n />\n </div>\n </div>\n </div>\n</template>\n<style scoped lang="scss">\n.box {\n width: 100vw;\n height: 100vh;\n background-color: #242424;\n position: fixed;\n left: 0;\n top: 0;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n z-index: 10;\n .takeBtn {\n margin-top: 15px;\n }\n .layerBox {\n position: relative;\n display: flex;\n flex-direction: column;\n background: #2a2a34;\n border-radius: 12px;\n padding: 15px;\n\n .layerMain {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n}\n</style>\n'),await i.writeFile(r.resolve(c,".npmrc"),"registry=https://registry.npmmirror.com/\nstrict-peer-dependencies=false"))}if(!h)return;const v=r.resolve(c,"src"),y=r.resolve(c,"render.js"),g=r.resolve(c,"render.ts"),x=r.resolve(v,"config.js"),f=r.resolve(v,"config.ts"),w=r.resolve(v,"data.js"),b=r.resolve(v,"data.ts"),j=r.resolve(v,"style.js"),k=r.resolve(v,"style.ts");await i.rename(y,g),await i.rename(x,f),await i.rename(w,b),await i.rename(j,k),await i.remove(r.resolve(c,"jsconfig.json"))};
|
package/dist/tidier/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("path"),t=require("yann-fs").default,{scanFileFindChart:a,exit:n,runAsyncCmd:i}=require("../utils"),s=require("p-limit");module.exports=async function(){const l=await a();if(!l)return n("非图表库");const c=l.root,d=e.resolve(c,"packages"),r=e.resolve(d,"components"),o=e.resolve(d,"tailored"),p=s(3);async function v(a){const n=await t.readdir(a);await Promise.all(n.map(n=>p(()=>(async(a,n)=>{if(a.startsWith("."))return;const[i,s]=await t.readJson(e.resolve(n,"package.json"));if(!i&&s){if(delete s.scripts["dev:example"],delete s.devDependencies["
|
|
1
|
+
"use strict";const e=require("path"),t=require("yann-fs").default,{scanFileFindChart:a,exit:n,runAsyncCmd:i}=require("../utils"),s=require("p-limit");module.exports=async function(){const l=await a();if(!l)return n("非图表库");const c=l.root,d=e.resolve(c,"packages"),r=e.resolve(d,"components"),o=e.resolve(d,"tailored"),p=s(3);async function v(a){const n=await t.readdir(a);await Promise.all(n.map(n=>p(()=>(async(a,n)=>{if(a.startsWith("."))return;const[i,s]=await t.readJson(e.resolve(n,"package.json"));if(!i&&s){if(delete s.scripts["dev:example"],delete s.devDependencies["pangu-chart-cli"],delete s.devDependencies["vite-plugin-compression"],delete s.devDependencies["vite-plugin-banner"],delete s.devDependencies.vite,delete s.devDependencies.vite,delete s.devDependencies.sass,delete s.devDependencies["@vitejs/plugin-vue"],delete s.devDependencies["yann-snapshot"],delete s.dependencies.vue,delete s.dependencies["yann-i18n"],s.scripts.dev="vcc dev","elementNamespace"in s){const e=s.elementNamespace;delete s.elementNamespace,s.elementConfig=e}if(await t.outputJson(e.resolve(n,"package.json"),s,{spaces:2,EOL:"\n"}),await t.remove(e.resolve(n,"example/package.json")),await t.exists(e.resolve(n,"example/index.html"))){await t.copy(e.resolve(n,"example/index.html"),e.resolve(n,"index.html"));const[a,i]=await t.readFile(e.resolve(n,"index.html"),"utf-8"),s=async()=>{await t.writeFile(e.resolve(n,"index.html"),'<!DOCTYPE html>\n<html lang="en">\n <head>\n <meta charset="UTF-8" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n <title>fea-chart</title>\n </head>\n <body>\n <div id="app"></div>\n <script type="module" src="./example/src/main.js"><\/script>\n </body>\n</html>\n',"utf8"),await t.remove(e.resolve(n,"example/index.html"));const[a,i]=await t.readJson(e.resolve(n,"example/package.json"));!a&&i&&(i.scripts.dev="vcc dev",i.scripts.build="vcc build",await t.outputJson(e.resolve(n,"example/package.json"),i,{spaces:2,EOL:"\n"}))},l=async()=>{await t.remove(e.resolve(n,"example/index.html"));const a=i.replace(/src="\/src\/main\.js"/g,'src="./example/src/main.js"');await t.writeFile(e.resolve(n,"index.html"),a,"utf8")};a||!i?await s():await l(),await t.remove(e.resolve(n,"example/vite.config.js"))}}})(n,e.resolve(a,n)))))}await v(r),await v(o),await i("pnpm",["i"],{cwd:c,stdio:"inherit"})};
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("yann-fs").default,t=require("path"),s=require("chalk"),
|
|
1
|
+
"use strict";const e=require("yann-fs").default,t=require("path"),s=require("chalk"),n=require("axios").default,{to:r}=require("await-to-js"),{camelCase:o,upperFirst:a,mergeWith:i,isArray:c}=require("lodash"),u=require("os").homedir(),l="http://192.168.12.88:10000",d={success(e){console.log(s.green(e))},err(e){console.log(s.bold.red(e))},info(e){console.log(s.blue(e))}},p=e=>{e&&(console.log(),d.err(e)),process.exit(1)},g=t.resolve(u,".pangu-vis-store");let m={};const w=async t=>{const[s,n]=await f();m={...s,...t},await e.outputJson(n,m)},f=async()=>{const s=t.resolve(g,".cli_store");if(Object.keys(m).length>0)return[m,s];const[n,r]=await e.readJson(s);return n?[{user:"",password:"",token:"",autoUpload:!1,autoRemove:!1,autoRemoveEs:!0},s]:(m=r,[r,s])};const h="http://10.11.11.100",v=`${h}/thpower/api`,y=n.create({baseURL:v,headers:{"Content-Type":"application/json;charset=UTF-8"},timeout:1e4});async function _(e){return r(y(e))}y.interceptors.request.use(async e=>{const[t]=await f();return t.token&&(e.headers.Authorization=`${t.token}`),e},e=>Promise.reject(e)),y.interceptors.response.use(async e=>e.data?.code&&200!==e.data?.code?Promise.reject(e):e,e=>(function(e){n.isCancel(e)||(e&&e.response,e?.message?.includes("timeout"))}(e),Promise.reject(e)));const k=e=>new Promise(t=>{setTimeout(()=>{t()},1e3*e)}),E=e=>{const s=process.cwd();return e.includes(s)?e:t.resolve(s,e)};function P(e,t){0===e.indexOf("v")&&(e=e.slice(1)),0===t.indexOf("v")&&(t=t.slice(1)),e=e.split("."),t=t.split(".");const s=Math.max(e.length,t.length);for(;e.length<s;)e.push("0");for(;t.length<s;)t.push("0");for(let n=0;n<s;n++){const s=parseInt(e[n]),r=parseInt(t[n]);if(s>r)return 1;if(s<r)return-1}return 0}const j=async(s,n=[".git",".vscode",".DS_Store",".idea"])=>{const o=s||process.cwd();if(await e.isDir(o)){const[s,n]=await r(e.readdir(o));if(s)return p(s?.message);await Promise.all(n.map(e=>j(t.resolve(o,e))))}else for(let t=0;t<n.length;t++)if(o.includes(n[t]))return void e.remove(o)},b=(e,t=[],s={})=>new Promise(n=>{const r="win32"===process.platform,{enableSudo:o=!1,disableColor:a=!1,cwd:i=process.cwd(),stdio:c="inherit",shell:u=!1,...l}=s;let p=e,g=[...t];a&&r&&!g.includes("--no-color")&&g.push("--no-color"),!r&&o&&(p="sudo",g=[e,...g]);const m={cwd:i,stdio:c,shell:u,...l},w=require("cross-spawn")(p,g,m),f=[],h=[];w.stdout?.on("data",e=>{f.push(e.toString())}),w.stderr?.on("data",e=>{h.push(e.toString())}),w.on("error",t=>{const s=t.message||"命令启动失败";let o="";o="ENOENT"===t.code?`未找到命令 "${e}",请先安装 ${e}`:"EACCES"===t.code?r?"权限不足!请以管理员身份运行终端":"权限不足!请确认当前用户有执行权限(可尝试 sudo)":`命令启动失败:${s}`,d.err(o),n({success:!1,stdout:"",stderr:s,status:null,message:o,error:t.stack||s})}),w.on("close",t=>{const s=f.join("").trim(),o=h.join("").trim(),a=0===t;let i="";a?i=`命令执行成功:${e} ${g.join(" ")}`:(i=o.includes("not found")||o.includes("Package")?`未找到目标资源:${o.split("\n")[0]}`:o.includes("EAI_AGAIN")||o.includes("network")||o.includes("ENOTFOUND")?"网络错误:无法连接到服务或镜像源,请检查网络配置":o.includes("EACCES")?r?"权限不足!请以管理员身份运行终端":"权限不足!可尝试启用 sudo":`命令执行失败(退出码:${t}):${o||"无详细错误信息"}`,d.err(i)),n({success:a,stdout:s,stderr:o,status:t,message:i,error:a?null:o||`退出码:${t}`})})}),q=e=>{const t=require("ora")(e);return t.start(),console.log(),t},C=async s=>{const n=process.cwd(),r=t.resolve(n,s),o=t.resolve(s,"package.json"),[a,i]=await e.readJson(o);if(i){const{name:s}=i;if("chart"===s){const[s,o]=await e.readJson(t.resolve(r,".pv_store"));if(o&&"chart"===o.name)return{type:"chart",root:r,cwd:n}}}return!1},$={user:""},O=e=>{if(!e)return;const t=require("cross-spawn"),s=["view",e,"version"];e.includes("@pangu/")&&s.push(`--registry=${l}`);return t.sync("npm",s).stdout.toString().replace(/[\n]/g,"")};module.exports={get_plugin_latest_version:(e,t="")=>e?{[e]:"^"+O(e)||t}:{},checkNpmConnectionState:async function(){const e=q("正在检测npm源,请稍候...");let t=0;if(0===t){t=await async function(e=l){try{return await fetch(e,{method:"GET",signal:AbortSignal.timeout(5e3)}),!0}catch(e){return!1}}()?1:2}return e.succeed("npm源检测完成"),await k(.1),e.clear(),1===t},getCdRelativePath:function(e,s){const n=t.resolve(e),r=t.resolve(s);let o=t.relative(n,r);return""===o?"./":o},versionHandle:async s=>{const n=t.resolve(s,"public","base.json"),[r,o]=await e.readJson(n);if(r)return"找不到 base.json 文件";const a=o.version,i=t.resolve(s,"package.json"),[c,u]=await e.readJson(i);if(c)return"找不到 package.json 文件";const l=u.version,d=P(a,l);let p=a;return 1===d?(p=a,u.version=p,await e.outputJson(i,u,{spaces:2,EOL:"\n"})):-1===d&&(p=l,o.version=p,await e.outputJson(n,o,{spaces:2,EOL:"\n"})),{name:o.name,version:p}},getPackageInfo:e=>{const t=e.name.split("/").at(-1);return{name:t.replace(/^\S/,e=>e.toUpperCase())+"_v"+e.version.replaceAll(".","_"),outDir:`${t}_v${e.version}`}},buildPathHandler:async e=>{await b("pnpm",["build"],{cwd:e,stdio:"inherit"})},get_delete_es:async()=>{const[e]=await f();return!("autoRemoveEs"in e)||e.autoRemoveEs},userInfo:$,getGitUser:async()=>{const e=require("cross-spawn").sync("git",["config","user.name"]);return $.user=e.stdout.toString().replace(/[\n]/g,""),$.user},scanFileFindChart:async(e=10)=>{for(let t=0;t<e;t++){let e="./";t>0&&(e+="../".repeat(t));const s=await C(e);if(s)return s}return!1},outputVueName:async(t,s)=>{const n=`\n<script setup>\n import { defineProps, defineEmits, defineOptions } from 'vue';\n defineProps({\n styled: Object,\n data: Object,\n width: Number,\n height: Number,\n events: Array,\n option: Object\n });\n defineEmits(['message']);\n defineOptions({\n name: '${s}'\n })\n<\/script>`;await e.appendFile(t,n)},updatePackageJson:async(s,n)=>{const r=t.join(s,"package.json"),[o,a]=await e.readJson(r);o?p(o?.message):a&&(i(a,n,(e,t)=>{if(c(e))return e.concat(t)}),await e.outputJson(r,a,{spaces:2,EOL:"\n"}))},registerChartId:async(e,t)=>_({url:"/chart/register",method:"post",data:{enName:e,typeId:t}}),prompt:async e=>{const t=require("prompts");return await t(e,{onCancel:()=>{p("✖ 操作已取消")}})},requestToken:async(e,t)=>{const[s,n]=await _({url:"/auth/login",method:"post",data:{account:e,password:t}});return n&&n.data&&n.data.data.token?(await w({user:e,password:t,token:n.data.data.token}),!0):(await w({user:e,password:t,token:""}),!1)},axios:_,get_cli_config:f,set_cli_config:w,packagePath:g,exit:p,log:d,welcomeCli:async()=>{const{promisify:e}=require("util"),t=e(require("figlet")),s=await t("Welcome to VisCli");console.log(),d.success(s)},wait:k,buildTarHandler:async(t,s,n=null,r=null)=>(t=E(t),n&&(n=E(n),await e.ensureDir(n)),new Promise(o=>{const a={gzip:!0,cwd:t,sync:!0},i="string"==typeof s?[s]:s,c=r||"string"==typeof s?s:"tar_"+Date.now();require("tar").c(a,i).pipe(e.createWriteStream(`${n||t}/${c}.tar.gz`)).on("finish",o)})),getPath:E,compareVersion:P,filterFile:j,oraHandle:q,getPackageName:e=>{const t=o(e);return a(t)},scanDirHandle:async s=>{const n=[];if(await e.isDir(s)){const[o,a]=await r(e.readdir(s));if(o)return p(o?.message);(await Promise.all(a.map(n=>r(e.isDir(t.resolve(s,n)))))).forEach((e,t)=>{e[1]&&n.push(a[t])})}return n},get_update_log:async()=>{const[s,n]=await e.readJson(t.resolve(g,".update_log"));return s?{isExpired:!0,time:0}:n},set_update_log:async(s=!1)=>{const n=Date.now()+864e5;await e.outputJson(t.resolve(g,".update_log"),{time:n,isExpired:s})},API_IP:h,get_plugin_version:O,runAsyncCmd:b};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pangu-vis-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "vis-cli",
|
|
5
5
|
"bin": {
|
|
6
6
|
"pvis": "bin/index.js",
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
},
|
|
17
17
|
"keywords": [
|
|
18
18
|
"pangu-vis-cli",
|
|
19
|
-
"pangu-vis"
|
|
19
|
+
"pangu-vis",
|
|
20
|
+
"pv",
|
|
21
|
+
"pvis"
|
|
20
22
|
],
|
|
21
23
|
"author": "Jaxon",
|
|
22
24
|
"license": "MIT",
|
|
@@ -43,7 +45,7 @@
|
|
|
43
45
|
"prompts": "^2.4.2",
|
|
44
46
|
"semver": "^7.7.3",
|
|
45
47
|
"tar": "^6.2.1",
|
|
46
|
-
"yann-fs": "
|
|
48
|
+
"yann-fs": "1.6.0"
|
|
47
49
|
},
|
|
48
50
|
"devDependencies": {
|
|
49
51
|
"@rollup/plugin-commonjs": "^18.1.0",
|