pangu-vis-cli 1.0.3 → 1.1.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.
Files changed (44) hide show
  1. package/README.md +41 -34
  2. package/dist/index.js +2220 -1
  3. package/{template → dist/template}/chart/example/App.vue +1 -3
  4. package/dist/template/chart/example/main.js +4 -0
  5. package/{template → dist/template}/chart/index.js +6 -6
  6. package/dist/template/chart/jsconfig.json +14 -0
  7. package/dist/template/chart/package.json +15 -0
  8. package/{template → dist/template}/chart/render.js +8 -8
  9. package/{template → dist/template}/chart/src/style.js +2 -2
  10. package/dist/template/ts/tsconfig.app.json +13 -0
  11. package/dist/template/ts/tsconfig.json +11 -0
  12. package/dist/template/ts/tsconfig.node.json +17 -0
  13. package/package.json +74 -66
  14. package/bin/index.js +0 -3
  15. package/dist/action.js +0 -1
  16. package/dist/auth/index.js +0 -1
  17. package/dist/auth/select.js +0 -1
  18. package/dist/build/index.js +0 -1
  19. package/dist/config/index.js +0 -1
  20. package/dist/create/chart/index.js +0 -1
  21. package/dist/create/index.js +0 -1
  22. package/dist/dev/index.js +0 -1
  23. package/dist/pack/index.js +0 -1
  24. package/dist/renew/index.js +0 -1
  25. package/dist/tar/index.js +0 -1
  26. package/dist/tidier/index.js +0 -1
  27. package/dist/update/index.js +0 -1
  28. package/dist/upload/index.js +0 -1
  29. package/dist/utils.js +0 -1
  30. package/dist/vpack/index.js +0 -1
  31. package/dist/vpack/menu.js +0 -1
  32. package/template/chart/example/main.js +0 -4
  33. package/template/chart/jsconfig.json +0 -14
  34. package/template/chart/package.json +0 -15
  35. package/template/ts/tsconfig.app.json +0 -13
  36. package/template/ts/tsconfig.json +0 -11
  37. package/template/ts/tsconfig.node.json +0 -19
  38. /package/{template → dist/template}/chart/README.md +0 -0
  39. /package/{template → dist/template}/chart/index.html +0 -0
  40. /package/{template → dist/template}/chart/public/images/index.png +0 -0
  41. /package/{template → dist/template}/chart/src/config.js +0 -0
  42. /package/{template → dist/template}/chart/src/data.js +0 -0
  43. /package/{template → dist/template}/chart/src/index.vue +0 -0
  44. /package/{template → dist/template}/ts/env.d.ts +0 -0
@@ -1,10 +1,8 @@
1
1
  <script setup>
2
2
  import { ref } from "vue";
3
- import ChartInfo from "../index";
4
3
  import "pangu-vchart-config/style.css";
5
- import { VChartConfig } from "pangu-vchart-config";
6
4
 
7
- const isShow = ref(false);
5
+ const _isShow = ref(false);
8
6
  </script>
9
7
 
10
8
  <template>
@@ -0,0 +1,4 @@
1
+ import { createApp } from "vue";
2
+ import App from "./App.vue";
3
+
4
+ createApp(App).mount("#app");
@@ -1,12 +1,12 @@
1
- import config from "./src/config";
2
1
  import render from "./render";
2
+ import config from "./src/config";
3
3
 
4
4
  const { component, style, data, option } = render;
5
5
 
6
6
  export default {
7
- style,
8
- data,
9
- config,
10
- component,
11
- option,
7
+ style,
8
+ data,
9
+ config,
10
+ component,
11
+ option,
12
12
  };
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "paths": {
4
+ "@/*": ["src/*"]
5
+ },
6
+ "baseUrl": ".",
7
+ "target": "es2016",
8
+ "module": "esnext",
9
+ "jsx": "preserve",
10
+ "lib": ["esnext", "dom"],
11
+ "rootDir": "."
12
+ },
13
+ "exclude": ["dist", "node_modules", "**/*_v*", "example", "**/node_modules/*"]
14
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "demo_chart",
3
+ "description": "Custom Chart",
4
+ "private": true,
5
+ "version": "1.0.0",
6
+ "main": "./index.js",
7
+ "module": "./index.js",
8
+ "scripts": {
9
+ "build": "vcc build",
10
+ "dev": "vcc dev"
11
+ },
12
+ "dependencies": {},
13
+ "devDependencies": {},
14
+ "author": ""
15
+ }
@@ -1,16 +1,16 @@
1
- import style from "./src/style";
2
- import component from "./src/index.vue";
3
1
  import data from "./src/data";
2
+ import component from "./src/index.vue";
3
+ import style from "./src/style";
4
4
 
5
5
  // 额外配置
6
6
  const option = {
7
- // 插件是否要超出盒子显示,默认 ‘hidden’不允许超出, 'hidden' | 'visible'
8
- overflow: "hidden",
7
+ // 插件是否要超出盒子显示,默认 ‘hidden’不允许超出, 'hidden' | 'visible'
8
+ overflow: "hidden",
9
9
  };
10
10
 
11
11
  export default {
12
- data,
13
- style,
14
- option,
15
- component,
12
+ data,
13
+ style,
14
+ option,
15
+ component,
16
16
  };
@@ -3,6 +3,6 @@
3
3
  * 如果需要使用到主题色和其他系统配置例如字体配置等等那么需要是一个函数,会接受一个配置对象,执行完需要返回一个对象
4
4
  * 如果不需要使用主题,可以是一个对象
5
5
  */
6
- export default themeOption => {
7
- return {};
6
+ export default (_themeOption) => {
7
+ return {};
8
8
  };
@@ -0,0 +1,13 @@
1
+ {
2
+ "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
3
+ "exclude": ["src/**/__tests__/*"],
4
+ "compilerOptions": {
5
+ "composite": true,
6
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
7
+ "baseUrl": ".",
8
+ "strict": true,
9
+ "paths": {
10
+ "@/*": ["./src/*"]
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ {
5
+ "path": "./tsconfig.node.json"
6
+ },
7
+ {
8
+ "path": "./tsconfig.app.json"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "include": [
3
+ "vite.config.*",
4
+ "vitest.config.*",
5
+ "cypress.config.*",
6
+ "nightwatch.conf.*",
7
+ "playwright.config.*"
8
+ ],
9
+ "compilerOptions": {
10
+ "composite": true,
11
+ "noEmit": true,
12
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
13
+ "module": "ESNext",
14
+ "moduleResolution": "Bundler",
15
+ "types": ["node"]
16
+ }
17
+ }
package/package.json CHANGED
@@ -1,68 +1,76 @@
1
1
  {
2
- "name": "pangu-vis-cli",
3
- "version": "1.0.3",
4
- "description": "vis-cli",
5
- "bin": {
6
- "pvis": "bin/index.js",
7
- "pv": "bin/index.js"
8
- },
9
- "scripts": {
10
- "build": "rollup --config",
11
- "release": "standard-version",
12
- "release:patch": "standard-version --release-as patch",
13
- "release:minor": "standard-version --release-as minor",
14
- "release:major": "standard-version --release-as major",
15
- "release:beta": "standard-version --prerelease beta"
16
- },
17
- "keywords": [
18
- "pangu-vis-cli",
19
- "pangu-vis",
20
- "pv",
21
- "pvis"
22
- ],
23
- "author": "Jaxon",
24
- "license": "MIT",
25
- "main": "./dist/index.js",
26
- "publishConfig": {
27
- "registry": "https://registry.npmjs.org/"
28
- },
29
- "dependencies": {
30
- "await-to-js": "^3.0.0",
31
- "axios": "^1.18.0",
32
- "chalk": "^4.1.2",
33
- "clear": "^0.1.0",
34
- "commander": "^10.0.1",
35
- "cross-spawn": "^7.0.6",
36
- "dayjs": "^1.11.19",
37
- "figlet": "^1.9.3",
38
- "form-data": "^4.0.4",
39
- "fs-extra": "^11.3.2",
40
- "js-md5": "^0.8.3",
41
- "lodash": "^4.17.21",
42
- "opn": "^6.0.0",
43
- "ora": "^5.4.1",
44
- "p-limit": "^3.1.0",
45
- "prompts": "^2.4.2",
46
- "semver": "^7.7.3",
47
- "tar": "^6.2.1",
48
- "yann-fs": "^1.6.0"
49
- },
50
- "devDependencies": {
51
- "@rollup/plugin-commonjs": "^18.1.0",
52
- "@rollup/plugin-json": "^6.1.0",
53
- "@types/fs-extra": "^11.0.4",
54
- "glob": "^13.0.0",
55
- "prettier": "^3.6.2",
56
- "rollup": "^2.79.2",
57
- "rollup-plugin-babel": "^4.4.0",
58
- "rollup-plugin-node-resolve": "^5.2.0",
59
- "rollup-plugin-terser": "^7.0.2",
60
- "standard-version": "^9.5.0"
61
- },
62
- "files": [
63
- "dist",
64
- "bin",
65
- "template"
66
- ],
67
- "type": "commonjs"
2
+ "name": "pangu-vis-cli",
3
+ "version": "1.1.0",
4
+ "description": "vis-cli",
5
+ "keywords": [
6
+ "pangu-vis",
7
+ "pangu-vis-cli",
8
+ "pv",
9
+ "pvis"
10
+ ],
11
+ "license": "MIT",
12
+ "author": "Jaxon",
13
+ "bin": {
14
+ "pv": "dist/index.js",
15
+ "pvis": "dist/index.js"
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "type": "module",
21
+ "main": "./dist/index.js",
22
+ "publishConfig": {
23
+ "registry": "https://registry.npmjs.org/"
24
+ },
25
+ "scripts": {
26
+ "build": "node scripts/build.mjs",
27
+ "typecheck": "tsc --noEmit",
28
+ "test": "vitest",
29
+ "test:run": "vitest run",
30
+ "test:coverage": "vitest run --coverage",
31
+ "lint": "oxlint .",
32
+ "lint:fix": "oxlint . --fix",
33
+ "format": "oxfmt .",
34
+ "format:check": "oxfmt --check .",
35
+ "check": "oxlint . && oxfmt --check .",
36
+ "check:fix": "oxlint . --fix && oxfmt .",
37
+ "prepare": "node scripts/build.mjs",
38
+ "release": "standard-version",
39
+ "release:patch": "standard-version --release-as patch",
40
+ "release:minor": "standard-version --release-as minor",
41
+ "release:major": "standard-version --release-as major",
42
+ "release:beta": "standard-version --prerelease beta"
43
+ },
44
+ "dependencies": {
45
+ "@clack/prompts": "^0.10.1",
46
+ "await-to-js": "^3.0.0",
47
+ "clear": "^0.1.0",
48
+ "commander": "^10.0.1",
49
+ "dayjs": "^1.11.21",
50
+ "execa": "^9.6.1",
51
+ "figlet": "^1.11.0",
52
+ "fs-extra": "^11.3.6",
53
+ "lodash": "^4.18.1",
54
+ "picocolors": "^1.1.1",
55
+ "tar": "^6.2.1",
56
+ "zod": "^4.4.3"
57
+ },
58
+ "devDependencies": {
59
+ "@types/clear": "^0.1.4",
60
+ "@types/fs-extra": "^11.0.4",
61
+ "@types/lodash": "^4.17.24",
62
+ "@types/node": "^20",
63
+ "@types/tar": "^6.1.0",
64
+ "@vitest/coverage-v8": "^4.1.9",
65
+ "esbuild": "^0.25.12",
66
+ "oxfmt": "^0.66.0",
67
+ "oxlint": "^1.81.0",
68
+ "standard-version": "^9.5.0",
69
+ "typescript": "7.0.2",
70
+ "vitest": "^4.1.9",
71
+ "zx": "^8.8.5"
72
+ },
73
+ "engines": {
74
+ "node": ">=20.19.0"
75
+ }
68
76
  }
package/bin/index.js DELETED
@@ -1,3 +0,0 @@
1
- #! /usr/bin/env node
2
-
3
- require('../dist/index.js');
package/dist/action.js DELETED
@@ -1 +0,0 @@
1
- "use strict";module.exports=[{command:"create",alias:"c",desc:"创建图表包",examples:["pv create <project-name>"]},{command:"pack",alias:"pk",desc:"图表库打包",examples:["pv pack"],option:["-e","-c"]},{command:"vpack",alias:"vp",desc:"Pack all charts",examples:["pv vpack"]},{command:"build",alias:"b",desc:"单个图表打包",examples:["pv build"]},{command:"dev",alias:"d",desc:"Launch Project",examples:["pv dev"]},{command:"upload",alias:"u",desc:"上传图表包",examples:["pv upload"],isAuth:!0},{command:"auth",alias:"a",desc:"User Information",examples:["pv auth"]},{command:"tar",alias:"t",desc:"tar",examples:["pv tar"]},{command:"config",alias:"set",desc:"配置",examples:["pv config"]},{command:"update",alias:"up",desc:"更新cli",examples:["pv update"]},{command:"tidier",alias:"tid",desc:"整理图表库",examples:["pv tidier"]},{command:"*",alias:"",desc:"command not found",examples:[]}];
@@ -1 +0,0 @@
1
- "use strict";const{requestToken:s,prompt:e,exit:r,log:a}=require("../utils"),t=require("js-md5"),o=async u=>{u++;const i=await e([{type:"text",name:"user",message:"请输入用户名: user"},{type:"password",name:"password",message:"请输入密码: password"}]),n=await s(i.user,t(i.password));return console.log(),n?(a.success("登录成功!"),i.user):u<3?(a.err("登录失败,请重新输入:"),await o(u)):void r("请稍后尝试!")};module.exports=async function(e=[]){const r={user:e[0]||"",password:e[1]||""};if(r.password&&r.user){if(await s(r.user,t(r.password)))return r.user}return await o(0)};
@@ -1 +0,0 @@
1
- "use strict";const e=require("opn"),{prompt:i,log:t,wait:s,API_IP:r}=require("../utils");module.exports=async function(){if("register"!==(await i([{type:"select",name:"mode",message:"请选择登录或注册",choices:[{title:"登录",description:"Sign in",value:"SignIn"},{title:"注册",description:"register",value:"register"}]}])).mode){return await require("./index")()}{const i=r;console.log(),t.success(`浏览器如果未正常打开,可以手动打开:${i}`),await e(i),await s(.1),process.exit(0)}};
@@ -1 +0,0 @@
1
- "use strict";const t=require("path"),e=require("yann-fs").default,{to:a}=require("await-to-js"),{exit:i,buildTarHandler:o,filterFile:r,get_cli_config:s,getPath:n,get_delete_es:l,buildPathHandler:c,versionHandle:u}=require("../utils"),w=async(n,w=null)=>{const d=await u(n);if("string"==typeof d)return i(d);const{name:v,version:p}=d;await c(n);const f=v.split("/").at(-1)+"_v"+p,g=t.resolve(n,f);await l()&&await e.remove(t.resolve(g,"es")),await r(g);const m=(w?`${w}/${f}`:g)+".tar.gz";await e.remove(m),await a(o(n,f,w));const[q]=await s();q.autoRemove&&await e.remove(g),q.autoUpload&&await require("../upload/index")([m])};module.exports=async function(a=[]){const o=process.cwd();if(a[0]){const t=a[0].trim();return void await w(n(t))}const r=t.resolve(o,"package.json"),[s,l]=await e.pathExists(r);s?i("找不到目录"):l&&await w(o)};
@@ -1 +0,0 @@
1
- "use strict";const{prompt:e,set_cli_config:o,get_cli_config:t,log:a}=require("../utils");module.exports=async function(i=[]){const[s]=await t(),n=(e,o,t)=>o in e?e[o]:t,c=await e([{name:"autoUpload",message:"图表打包后是否自动上传泰合社区?",type:"toggle",initial:n(s,"autoUpload",!1),active:"yes",inactive:"no"},{name:"autoRemove",message:"打包后是否自动删除打包目录?",type:"toggle",initial:n(s,"autoRemove",!0),active:"yes",inactive:"no"},{name:"autoRemoveEs",message:"打包后是否移除es目录?",type:"toggle",initial:n(s,"autoRemoveEs",!0),active:"yes",inactive:"no"}]);await o({autoUpload:c.autoUpload,autoRemove:c.autoRemove,autoRemoveEs:c.autoRemoveEs}),a.success("配置完成!"),console.log()};
@@ -1 +0,0 @@
1
- "use strict";const{updatePackageJson:e,getPackageName:a,outputVueName:t,get_plugin_version:n}=require("../../utils"),s=require("yann-fs").default,r=require("path");module.exports=async function(i,o,c,u,l,p,v){await s.outputJson(r.resolve(o,"public","base.json"),{name:i,label:i,desc:"Custom Chart",version:"1.0.0",width:480,height:240,type:l||"other",author:u,id:p},{spaces:2,EOL:"\n"});const d=`\nexport const ${a(i)} = component`;if(await s.appendFile(r.resolve(o,"index.js"),d),await t(r.resolve(o,"src","index.vue"),i),await e(o,{name:i,author:u}),c&&"chart"===c.type?await e(o,{name:i,author:u,devDependencies:{"@chart/utils":"workspace:*"}}):await e(o,{name:i,author:u,devDependencies:{"@vitejs/plugin-vue":"^3.2.0",sass:"^1.69.7",vite:"^4.5.5","yann-snapshot":"^0.1.0","pangu-chart-cli":"^"+n("pangu-chart-cli")||"1.1.0","vite-plugin-compression":"^0.5.1","vite-plugin-banner":"^0.7.1","pangu-vchart-config":"^"+n("pangu-vchart-config")||"1.1.0"},dependencies:{vue:"~3.3.13","yann-i18n":"1.0.7"}}),!v)return;const g=r.resolve(o,"src"),h=r.resolve(o,"render.js"),m=r.resolve(o,"render.ts"),w=r.resolve(g,"config.js"),f=r.resolve(g,"config.ts"),j=r.resolve(g,"data.js"),y=r.resolve(g,"data.ts"),b=r.resolve(g,"style.js"),x=r.resolve(g,"style.ts");await s.rename(h,m),await s.rename(w,f),await s.rename(j,y),await s.rename(b,x),await s.remove(r.resolve(o,"jsconfig.json"))};
@@ -1 +0,0 @@
1
- "use strict";const e=require("path"),{getCdRelativePath:t,scanFileFindChart:a,scanDirHandle:i,prompt:s,log:n,oraHandle:o,runAsyncCmd:r,wait:c,welcomeCli:l,get_cli_config:u,getGitUser:d,registerChartId:p,requestToken:m}=require("../utils"),g=require("yann-fs").default;module.exports=async function(w=[]){const v="chart",[y]=await u();let f,h=!1;if(y.user&&y.password&&y.token&&(h=await m(y.user,y.password)),!h){const e=await d(),t=await s([{name:"isLogin",type:"toggle",message:"未登录,是否先登录:",initial:!1,active:"yes",inactive:"no"},{name:"user",type:(e,t)=>t.isLogin?null:"text",initial:e||"",message:"请填写泰合社区的用户名"}]);h=t.isLogin,f=t.isLogin?await require("../auth/index.js")():t.user}const j=await a(),{chartType:_,isTs:k}=await s([{name:"chartType",type:"select",message:"请选择图表类型:",initial:4,choices:[{title:"折线图",value:"line"},{title:"柱状图",value:"bar"},{title:"饼图",value:"pie"},{title:"表格",value:"form"},{title:"其他",value:"other"},{title:"地图",value:"map"},{title:"文本",value:"text"},{title:"指标",value:"indicator"},{title:"交互",value:"interaction"}]},{name:"isTs",type:"toggle",message:"是否使用ts",initial:!1,active:"yes",inactive:"no"}]);n.info("推荐添加自定义前缀以防止和其他图表名重复并且便于后期统一管理");let q=Date.now();const{projectName:x}=await s([{name:"projectName",type:"text",message:"请输入图表名:",initial:w[0]||"custom_chart",validate:async t=>{if(((e="")=>!/^[a-z][a-z0-9_]*$/.test(e))(t))return"包名只允许以小写英文字母开头,只允许使用小写英文字母、数字和下划线";if(await(async t=>{if(j){const[a,s,n]=await Promise.all([i(j.root),i(e.join(j.root,"packages")),i(e.join(j.root,"packages","components")),i(e.join(j.root,"packages","tailored"))]);if(a.includes(t)||s.includes(t)||n.includes(t))return!0}else if((await i(process.cwd())).includes(t))return!0;return!1})(t))return"包名重复";if(h){const[e,a]=await p(t,_);if("ECONNABORTED"===e?.code)return console.log(),console.log("暂时无法连接到服务器!"),!0;if(e||!a||!a.data||!a.data.data)return e?.data?.msg||"请重新填写";q=a.data.data}return!0}}]),C=o("创建项目..."),T=process.cwd(),D=j?T.includes("tailored")?e.join(j.root,"packages","tailored",x):e.join(j.root,"packages","components",x):e.join(T,x);await g.ensureDir(D),await g.copy(e.resolve(__dirname,"../../template",v),D),k&&await g.copy(e.resolve(__dirname,"../../template","ts"),D),await require(e.resolve(__dirname,v,"index.js"))(x,D,j,f,_,q,k),C.succeed("项目创建完成."),await c(.1),C.start("安装依赖.."),await r("pnpm",["install"],{cwd:D,stdio:"inherit"}),C.succeed("依赖安装完成."),await c(.1),C.clear();require("clear")(),await l(),console.log("\n完成. 现在可以执行:\n");const L=t(process.cwd(),D);n.success(` cd ${L}`),n.success(" pnpm dev"),console.log()};
package/dist/dev/index.js DELETED
@@ -1 +0,0 @@
1
- "use strict";const e=require("path"),s=require("yann-fs").default,{exit:r,getPath:i}=require("../utils");module.exports=async function(t=[]){let n=process.cwd();t.length>0&&(n=i(t[0]));const c=n.includes("package.json")?n:e.resolve(n,"package.json");n=e.dirname(c);const[o,a]=await s.readJson(c);if(o)r(o?.message);else{if(a.scripts){const e=require("cross-spawn");if(process.chdir(n),a.scripts.dev)return void e.sync("pnpm",["dev"],{stdio:"inherit"});if(a.scripts.serve)return void e.sync("pnpm",["serve"],{stdio:"inherit"})}r("找不到执行命令!")}};
@@ -1 +0,0 @@
1
- "use strict";const e=require("path"),t=require("yann-fs").default,{to:s}=require("await-to-js"),{getPackageInfo:r,scanFileFindChart:n,getPackageName:i,buildPathHandler:o,exit:a,versionHandle:c,compareVersion:l,runAsyncCmd:p,log:d}=require("../utils"),u=require("p-limit"),m=require("dayjs"),f="src/components",w="src/charts",v=async s=>{try{const r=await t.readdir(s,{withFileTypes:!0});for(const n of r){const r=e.join(s,n.name);n.isDirectory()?await v(r):n.isFile()&&n.name.endsWith(".gz")&&await t.unlink(r)}}catch(e){throw console.error(`处理目录 ${s} 时出错:`,e.message),e}},h=async(n,a,p,u,m)=>{if(n.startsWith("."))return;const h=e.resolve(a,n),[$,g]=await t.readJson(e.resolve(h,"package.json"));if($||!g)return;const[x,y]=await t.readJson(e.resolve(h,"public","base.json"));if(x||!y)return;const{isDev:F}=y;if(F)return;if(!m.includes(n)){if(!await t.exists(e.resolve(p,w,n,"index.ts")))return;return void u.add(n)}const P=await c(h);if("string"==typeof P)return;const{name:C,outDir:E}=r(P),j=`V${C}`;d.info(`开始打图表包,图表名:“${n}”,版本号:“v${P.version}”.`),await o(h);const D=e.resolve(p,w,n),L=e.resolve(D,P.version);await t.remove(L);const O=e.resolve(L,"es");await t.copy(e.resolve(h,E,"es"),O),await v(L),await t.writeFile(e.resolve(L,"index.ts"),`import Component from "./es/index";\nexport const ${j} = Component;`),await(async(r,n)=>{try{const i=await t.readdir(n,{withFileTypes:!0}),o=[];for(const e of i)e.isFile()&&e.name.endsWith(".css")&&o.push(e.name);if(o.length>0){const n=e.resolve(r,"index.ts"),[i,a]=await s(t.readFile(n,"utf-8"));if(i||!a)return;let c="";for(const e of o)c+=`import './es/${e}'\n`;c+=a,await t.writeFile(n,c)}}catch(e){throw console.error(`处理目录 ${dir} 时出错:`,e.message),e}})(L,O);const k=e.resolve(D,"index.ts");await t.ensureFile(k),u.add(n);const[q,J]=await s(t.readFile(k,"utf-8"));if(q)return;const T=`V${i(n)}`,b=`import { ${j} } from './${P.version}/index'\nexport { ${j} }\n`;if(J.includes("export")){const e=/\.\/([\d.]+)\/index/g,s=[];let r;for(;null!==(r=e.exec(J));)s.push(r[1]);if(s.includes(P.version))return;const n=`${b}\n${J}`,i=s.sort((e,t)=>l(t,e))[0];if(l(i,P.version)>0)return void await t.writeFile(k,n);const o=new RegExp(`(export\\s*\\{)\\s*(\\w+)(\\s+)(as)(\\s+)(${T})(\\s*)(\\})`,"g"),a=n.replace(o,(e,t,s,r,n,i,o,a,c)=>`${t}${j}${r}${n}${i}${o}${a}${c}`);await t.writeFile(k,a)}else await t.appendFile(k,`${b}\nexport { ${j} as ${T} }`);await t.remove(e.resolve(h,E));const A=e.resolve(p,f,n);if(await t.exists(e.resolve(A,"index.ts")))return;await Promise.all([t.ensureFile(e.resolve(A,"index.ts")),t.ensureFile(e.resolve(A,"index.vue"))]);const H=[];H.push(t.writeFile(e.resolve(A,"index.ts"),`export { default as PgChart${T} } from './index.vue'`)),H.push(t.writeFile(e.resolve(A,"index.vue"),`<template>\n <v-chart :chart="${T}" v-bind="$attrs" :data="data" :styled="styled" :option="option" :events="events" @message="emit('message', $event)"></v-chart>\n</template>\n<script setup lang="ts">\nimport { VChart } from '@/core'\nimport { ${T} } from "@/charts/${n}";\nimport { useAttrs, defineEmits, defineProps, defineOptions } from "vue";\nimport type { ChartPropsType, ChartEvents, EmitMessage, ScreenLayerOption } from "@/types";\n\nconst $attrs = useAttrs();\nconst props = defineProps<{\n styled?: ChartPropsType<typeof ${T},'style'>\n option?: Partial<ScreenLayerOption>\n data?: ChartPropsType<typeof ${T},'data'>\n events?: ChartEvents[]\n}>();\nconst emit = defineEmits<{\n (e: "message", option: EmitMessage): void;\n}>();\n \ndefineOptions({\n name: 'pg-chart-v-${n}',\n inheritAttrs: false\n})\n<\/script>`)),await Promise.all(H)};async function $(e){const[s,r]=await t.readJson(e);return s?(d.err(s?.message),!1):("sideEffects"in r&&(delete r.sideEffects,await t.outputJson(e,r,{spaces:2,EOL:"\n"})),!0)}module.exports=async function(){const r=Date.now(),i=await n();if(!i)return a("非图表库");const c=e.resolve(i.root,"../pangu-chart"),l=e.resolve(i.root,"packages"),v=e.resolve(l,"components"),[g,x]=await s(t.readdir(v));if(g)return a(g?.message);const y=new Set,F=u(3);let P=x||[];const C=new Set(process.argv.slice(3));if(await t.exists(e.resolve(c,w,"index.ts")))if(C.has("-c"))await Promise.all([t.remove(e.resolve(c,w)),t.remove(e.resolve(c,f))]);else{const e=C.has("-e");if(C.delete("-e"),C.size){const t=[...C];P=e?x.filter(e=>!t.includes(e)):t}}await Promise.allSettled(x.map(e=>F(()=>h(e,v,c,y,P))));const E=[],j=[...y].sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase()));for(const e of j)E.push(`export * from './${e}'\n`);const D=E.join("");await Promise.all([t.writeFile(e.resolve(c,w,"index.ts"),D),t.writeFile(e.resolve(c,f,"index.ts"),D)]);const L=`图表库打包完成:${m().format("YYYY-MM-DD HH:mm")},总耗时: ${(Date.now()-r)/1e3}s.`;d.success(L),console.log(),d.info("开始打pangu-v-chart.");const O=e.resolve(c,"package.json");await $(O),await o(c),d.success("pangu-v-chart打包完成,正在准备执行CHANGELOG和发布"),await p("npm",["run","release"],{cwd:c,stdio:"inherit"});const[k,q]=await t.readJson(O);if(k)return void d.err(k?.message);q.sideEffects=!1,await t.outputJson(O,q,{spaces:2,EOL:"\n"});const J=await Promise.race([p("npm",["publish"],{cwd:c,stdio:"inherit"}),new Promise(e=>setTimeout(()=>e({success:!1,message:"执行超时"}),6e4))]);J.success?d.success("发布成功"):d.err(J.message),await $(O),d.success("pangu-v-chart 全部执行完成.")};
@@ -1 +0,0 @@
1
- "use strict";const{log:e,prompt:t,exit:a,welcomeCli:i,get_update_log:s,set_update_log:n,runAsyncCmd:c}=require("../utils"),o=(()=>{let e;return()=>{if(""===e||e)return e;const{execSync:t}=require("child_process");try{e=t("npm config get registry",{encoding:"utf8"}).trim()}catch(t){e=""}return e}})(),r=(()=>{let t=!1,a=!1;return async()=>(t||(a=await(async()=>{const t=o(),a=["outdated","pangu-vis-cli","-g"];t&&a.push(`--registry=${t}`);const i=await c("npm",a,{disableColor:!0,stdio:"pipe"});return i.success?!!i.stdout.replace(/\s+/g,""):(e.err(i.message),!1)})(),t=!0),a)})(),u=async()=>{const s=await t([{name:"updateFlag",message:"是否更新Cli工具?",type:"toggle",initial:!0,active:"yes",inactive:"no"}]),{updateFlag:r}=s;r?(await(async()=>{const t=["i","-g","pangu-vis-cli"],i=o();i&&t.push(`--registry=${i}`);const s=await c("npm",t,{enableSudo:!0,stdio:"inherit",disableColor:!0});s.success?(console.log(),e.success("Cli工具更新成功!")):a("异常错误,请手动执行命令更新Cli工具:“npm i -g pangu-vis-cli”"+(s.message?",错误信息:"+s.message:""))})(),await n(),await i(),a()):await n()};async function l(t){await r()?await u():(await n(),t&&e.success("当前版本已是最新!"))}module.exports={renew:l,checkUpdate:async function(){const{time:e,isExpired:t=!1}=await s();if(t)await l();else if(e<=Date.now()){await r()&&await l()}}};
package/dist/tar/index.js DELETED
@@ -1 +0,0 @@
1
- "use strict";const{buildTarHandler:t,exit:e}=require("../utils"),{to:i}=require("await-to-js");module.exports=async function(s=[]){if(s.length>0){const[a,r,n,o]=s,[u]=await i(t(a,r,n,o));u&&e(u?.message)}};
@@ -1 +0,0 @@
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"})};
@@ -1 +0,0 @@
1
- "use strict";const{renew:e}=require("../renew");module.exports=async function(){await e(!0)};
@@ -1 +0,0 @@
1
- "use strict";const e=require("path"),t=require("yann-fs").default,{axios:a,exit:s,log:i,getPath:r,get_cli_config:o,requestToken:n}=require("../utils"),{to:u}=require("await-to-js"),c=require("form-data"),l=require("p-limit")(1),d=async(e,r)=>{const o=r;console.log(`准备上传 ${o} ...`);const n=new c,u=t.createReadStream(e);n.append("file",u,{filename:o});const[l,d]=await a({url:"/chart/version/upload_pkg",method:"post",data:n,headers:{"Content-Type":"multipart/form-data"},timeout:3e4});l?s(l?.message||l?.data?.msg||"异常错误"):(console.log(),i.success(`${o} 组件上传成功!`),console.log())};module.exports=async function(a=[]){const[i]=await o();if(i.user){if(i.user&&i.password&&i.token){await n(i.user,i.password)||await require("../auth/index.js")()}}else await require("../auth/index.js")();let c=process.cwd();if(a[0]){const t=a[0].trim();if(t.includes(".tar.gz")){const a=r(t);return void await u(d(a,e.basename(a)))}c=r(t)}const[m,f]=await u(t.readdir(c));if(m)return void s(m?.message);const p=f.filter(e=>e.includes(".tar.gz"));await Promise.all(p.map(t=>l(()=>u(d(e.resolve(c,"./",t),t)))))};
package/dist/utils.js DELETED
@@ -1 +0,0 @@
1
- "use strict";const e=require("yann-fs").default,t=require("path"),s=require("chalk"),r=require("axios").default,{to:n}=require("await-to-js"),{camelCase:o,upperFirst:a,mergeWith:i,isArray:c}=require("lodash"),u=require("os").homedir(),l={success(e){console.log(s.green(e))},err(e){console.log(s.bold.red(e))},info(e){console.log(s.blue(e))}},d=e=>{e&&(console.log(),l.err(e)),process.exit(1)},p=t.resolve(u,".pangu-vis-store");let g={};const m=async t=>{const[s,r]=await w();g={...s,...t},await e.outputJson(r,g)},w=async()=>{const s=t.resolve(p,".cli_store");if(Object.keys(g).length>0)return[g,s];const[r,n]=await e.readJson(s);return r?[{user:"",password:"",token:"",autoUpload:!1,autoRemove:!1,autoRemoveEs:!0},s]:(g=n,[n,s])};const f="http://10.11.11.100",h=`${f}/thpower/api`,v=r.create({baseURL:h,headers:{"Content-Type":"application/json;charset=UTF-8"},timeout:1e4});async function y(e){return n(v(e))}v.interceptors.request.use(async e=>{const[t]=await w();return t.token&&(e.headers.Authorization=`${t.token}`),e},e=>Promise.reject(e)),v.interceptors.response.use(async e=>e.data?.code&&200!==e.data?.code?Promise.reject(e):e,e=>(function(e){r.isCancel(e)||(e&&e.response,e?.message?.includes("timeout"))}(e),Promise.reject(e)));const _=e=>{const s=process.cwd();return e.includes(s)?e:t.resolve(s,e)};function k(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 r=0;r<s;r++){const s=parseInt(e[r]),n=parseInt(t[r]);if(s>n)return 1;if(s<n)return-1}return 0}const P=async(s,r=[".git",".vscode",".DS_Store",".idea"])=>{const o=s||process.cwd();if(await e.isDir(o)){const[s,r]=await n(e.readdir(o));if(s)return d(s?.message);await Promise.all(r.map(e=>P(t.resolve(o,e))))}else for(let t=0;t<r.length;t++)if(o.includes(r[t]))return void e.remove(o)},j=(e,t=[],s={})=>new Promise(r=>{const n="win32"===process.platform,{enableSudo:o=!1,disableColor:a=!1,cwd:i=process.cwd(),stdio:c="inherit",shell:u=!1,...d}=s;let p=e,g=[...t];a&&n&&!g.includes("--no-color")&&g.push("--no-color"),!n&&o&&(p="sudo",g=[e,...g]);const m={cwd:i,stdio:c,shell:u,...d},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?n?"权限不足!请以管理员身份运行终端":"权限不足!请确认当前用户有执行权限(可尝试 sudo)":`命令启动失败:${s}`,l.err(o),r({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")?n?"权限不足!请以管理员身份运行终端":"权限不足!可尝试启用 sudo":`命令执行失败(退出码:${t}):${o||"无详细错误信息"}`,l.err(i)),r({success:a,stdout:s,stderr:o,status:t,message:i,error:a?null:o||`退出码:${t}`})})}),E=async s=>{const r=process.cwd(),n=t.resolve(r,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(n,".pv_store"));if(o&&"chart"===o.name)return{type:"chart",root:n,cwd:r}}}return!1},b={user:""};module.exports={getCdRelativePath:function(e,s){const r=t.resolve(e),n=t.resolve(s);let o=t.relative(r,n);return""===o?"./":o},versionHandle:async s=>{const r=t.resolve(s,"public","base.json"),[n,o]=await e.readJson(r);if(n)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=k(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(r,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 j("pnpm",["build"],{cwd:e,stdio:"inherit"})},get_delete_es:async()=>{const[e]=await w();return!("autoRemoveEs"in e)||e.autoRemoveEs},userInfo:b,getGitUser:async()=>{const e=require("cross-spawn").sync("git",["config","user.name"]);return b.user=e.stdout.toString().replace(/[\n]/g,""),b.user},scanFileFindChart:async(e=10)=>{for(let t=0;t<e;t++){let e="./";t>0&&(e+="../".repeat(t));const s=await E(e);if(s)return s}return!1},outputVueName:async(t,s)=>{const r=`\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,r)},updatePackageJson:async(s,r)=>{const n=t.join(s,"package.json"),[o,a]=await e.readJson(n);o?d(o?.message):a&&(i(a,r,(e,t)=>{if(c(e))return e.concat(t)}),await e.outputJson(n,a,{spaces:2,EOL:"\n"}))},registerChartId:async(e,t)=>y({url:"/chart/register",method:"post",data:{enName:e,typeId:t}}),prompt:async e=>{const t=require("prompts");return await t(e,{onCancel:()=>{d("✖ 操作已取消")}})},requestToken:async(e,t)=>{const[s,r]=await y({url:"/auth/login",method:"post",data:{account:e,password:t}});return r&&r.data&&r.data.data.token?(await m({user:e,password:t,token:r.data.data.token}),!0):(await m({user:e,password:t,token:""}),!1)},axios:y,get_cli_config:w,set_cli_config:m,packagePath:p,exit:d,log:l,welcomeCli:async()=>{const{promisify:e}=require("util"),t=e(require("figlet")),s=await t("Welcome to VisCli");console.log(),l.success(s)},wait:e=>new Promise(t=>{setTimeout(()=>{t()},1e3*e)}),buildTarHandler:async(t,s,r=null,n=null)=>(t=_(t),r&&(r=_(r),await e.ensureDir(r)),new Promise(o=>{const a={gzip:!0,cwd:t,sync:!0},i="string"==typeof s?[s]:s,c=n||"string"==typeof s?s:"tar_"+Date.now();require("tar").c(a,i).pipe(e.createWriteStream(`${r||t}/${c}.tar.gz`)).on("finish",o)})),getPath:_,compareVersion:k,filterFile:P,oraHandle:e=>{const t=require("ora")(e);return t.start(),console.log(),t},getPackageName:e=>{const t=o(e);return a(t)},scanDirHandle:async s=>{const r=[];if(await e.isDir(s)){const[o,a]=await n(e.readdir(s));if(o)return d(o?.message);(await Promise.all(a.map(r=>n(e.isDir(t.resolve(s,r)))))).forEach((e,t)=>{e[1]&&r.push(a[t])})}return r},get_update_log:async()=>{const[s,r]=await e.readJson(t.resolve(p,".update_log"));return s?{isExpired:!0,time:0}:r},set_update_log:async(s=!1)=>{const r=Date.now()+864e5;await e.outputJson(t.resolve(p,".update_log"),{time:r,isExpired:s})},API_IP:f,get_plugin_version:e=>{if(!e)return;return require("cross-spawn").sync("npm",["view",e,"version"]).stdout.toString().replace(/[\n]/g,"")},runAsyncCmd:j};
@@ -1 +0,0 @@
1
- "use strict";const e=require("path"),a=require("yann-fs").default,{to:t}=require("await-to-js"),{runAsyncCmd:s,scanFileFindChart:i,wait:r}=require("../utils"),{menu:o}=require("./menu"),n=require("p-limit")(2),c=o;module.exports=async function(o=[]){const l=await i();if(l){const i=e.resolve(l.root,"packages"),p=e.resolve(i,"components"),[u,v]=await t(a.readdir(p));if(v){const l=[],u=e.resolve(i,"charts");if(await a.emptyDir(u),await Promise.all(v.map(t=>(async(t,s,i)=>{if(0!==t.indexOf(".")){const r=e.resolve(s,t);if(await a.isDir(r)){const[s,o]=await a.readJson(e.resolve(r,"package.json"));if(o){const[s,n]=await a.pathExists(e.resolve(r,"index.js"));if(n){const[s,n]=await a.readJson(e.resolve(r,"public","base.json"));if(n){const{name:e,label:a,version:t,width:s,height:i,type:r}=n,o={layerType:"chart",chartType:e,name:a,version:`v${t}`,width:s,height:i},h=c.find(e=>e.type===r);h?h.children.push(o):c.find(e=>"other"===e.type).children.push(o)}i.push([t,o.version])}}}}})(t,p,l))),await a.outputJson(e.resolve(u,"menu.json"),c,{spaces:2,EOL:"\n"}),"false"===o[0])return;await Promise.all([l.map(a=>n(()=>(async({v:a,chartsPath:i,comPath:o})=>{await t(s("pnpm",["build"],{cwd:e.resolve(o,a[0]),stdio:"inherit"})),await r(.005),await h({v:a,chartsPath:i,comPath:o})})({v:a,chartsPath:u,comPath:p})))])}}};const h=async({v:t,chartsPath:s,comPath:i})=>{const r=`${t[0]}_v${t[1]}`,o=e.resolve(s,t[0]),n=e.resolve(i,t[0],r);await a.move(n,o)};
@@ -1 +0,0 @@
1
- "use strict";module.exports={menu:[{type:"line",name:"折线图",children:[]},{type:"bar",name:"柱状图",children:[]},{type:"pie",name:"饼图",children:[]},{type:"form",name:"表格",children:[]},{type:"other",name:"其他",children:[]},{type:"map",name:"地图",children:[]},{type:"text",name:"文本",children:[]},{type:"indicator",name:"指标",children:[]},{type:"interaction",name:"交互",children:[]}]};
@@ -1,4 +0,0 @@
1
- import { createApp } from 'vue'
2
- import App from './App.vue'
3
-
4
- createApp(App).mount('#app')
@@ -1,14 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "paths": {
4
- "@/*": ["src/*"]
5
- },
6
- "baseUrl": ".",
7
- "target": "es2016",
8
- "module": "esnext",
9
- "jsx": "preserve",
10
- "lib": ["esnext", "dom"],
11
- "rootDir": "."
12
- },
13
- "exclude": ["dist", "node_modules", "**/*_v*", "example", "**/node_modules/*"]
14
- }
@@ -1,15 +0,0 @@
1
- {
2
- "name": "demo_chart",
3
- "description": "Custom Chart",
4
- "private": true,
5
- "version": "1.0.0",
6
- "main": "./index.js",
7
- "module": "./index.js",
8
- "scripts": {
9
- "build": "vcc build",
10
- "dev": "vcc dev"
11
- },
12
- "dependencies": {},
13
- "devDependencies": {},
14
- "author": ""
15
- }
@@ -1,13 +0,0 @@
1
- {
2
- "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
3
- "exclude": ["src/**/__tests__/*"],
4
- "compilerOptions": {
5
- "composite": true,
6
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
7
- "baseUrl": ".",
8
- "strict": true,
9
- "paths": {
10
- "@/*": ["./src/*"]
11
- }
12
- }
13
- }
@@ -1,11 +0,0 @@
1
- {
2
- "files": [],
3
- "references": [
4
- {
5
- "path": "./tsconfig.node.json"
6
- },
7
- {
8
- "path": "./tsconfig.app.json"
9
- }
10
- ]
11
- }
@@ -1,19 +0,0 @@
1
- {
2
- "include": [
3
- "vite.config.*",
4
- "vitest.config.*",
5
- "cypress.config.*",
6
- "nightwatch.conf.*",
7
- "playwright.config.*"
8
- ],
9
- "compilerOptions": {
10
- "composite": true,
11
- "noEmit": true,
12
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
13
- "module": "ESNext",
14
- "moduleResolution": "Bundler",
15
- "types": [
16
- "node"
17
- ]
18
- }
19
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes