@epxing/cli 0.0.0-stage → 0.2.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.
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ var S=Object.defineProperty;var t=(n,e)=>S(n,"name",{value:e,configurable:!0});import i from"node:fs";import j from"node:path";var l=process.argv.slice(2),r=l.indexOf("--online"),f=r!==-1?l[r+1]:null;r!==-1&&l.splice(r,2);var d=l.find(n=>!n.startsWith("--"));(!d||!i.existsSync(d))&&(console.error("\u7528\u6CD5\uFF1Anode tools/epx-migrate/verify-components.mjs <\u9879\u76EE\u76EE\u5F55> --online <\u7EBF\u4E0A index.js URL \u6216\u672C\u5730\u6587\u4EF6>"),process.exit(1));var p=t(n=>j.join(d,n),"rel"),m=t(n=>i.existsSync(p(n))?i.readFileSync(p(n),"utf8"):null,"readIf"),h=t(n=>{let e=new Set;for(let s of String(n).matchAll(/name\s*:\s*["'](epx-[a-z0-9-]+)["']/g))e.add(s[1]);return e},"namesFromJs");function w(){let n=m("lib/index.manifest.json");if(n)try{let o=JSON.parse(n);if(o&&o.components)return{set:new Set(Object.keys(o.components)),from:"lib/index.manifest.json"}}catch{}let e=m("lib/index.full.js")||m("lib/index.js");if(e){let o=h(e);if(o.size)return{set:o,from:"lib/index.*.js"}}let s=new Set,c=p("src/hr");if(i.existsSync(c)){let o=t(u=>{for(let a of i.readdirSync(u,{withFileTypes:!0})){let x=j.join(u,a.name);if(a.isDirectory())o(x);else if(a.name.endsWith(".vue"))for(let y of h(i.readFileSync(x,"utf8")))s.add(y)}},"walk");o(c)}return{set:s,from:"src/hr/**/*.vue\uFF08\u672A\u6253\u5305\uFF0C\u6309 name \u626B\uFF09"}}t(w,"localComponents");async function $(n){let e="";if(/^https?:\/\//.test(n)){let s=await fetch(n);if(!s.ok)throw new Error(`\u62C9\u53D6\u7EBF\u4E0A index.js \u5931\u8D25\uFF1AHTTP ${s.status} ${n}`);e=await s.text()}else{if(!i.existsSync(n))throw new Error(`\u7EBF\u4E0A\u53C2\u7167\u6587\u4EF6\u4E0D\u5B58\u5728\uFF1A${n}`);e=i.readFileSync(n,"utf8")}return h(e)}t($,"onlineComponents");var g=t(n=>[...n].sort((e,s)=>e.localeCompare(s)),"sortZh");async function b(){let n=w();if(console.log(`
3
+ \u672C\u5730\u7EC4\u4EF6\uFF08\u6765\u6E90\uFF1A${n.from}\uFF09\uFF1A${n.set.size} \u4E2A`),!f){console.log(g(n.set).map(o=>" "+o).join(`
4
+ `)),console.log(`
5
+ \uFF08\u672A\u4F20 --online\uFF0C\u53EA\u5217\u672C\u5730\u6E05\u5355\u3002\u8981\u5BF9\u9F50\u6821\u9A8C\u8BF7\u52A0 --online <\u7EBF\u4E0A index.js URL \u6216\u672C\u5730\u6587\u4EF6>\uFF09`);return}let e=await $(f),s=g([...e].filter(o=>!n.set.has(o))),c=g([...n.set].filter(o=>!e.has(o)));if(console.log(`\u7EBF\u4E0A\u7EC4\u4EF6\uFF08\u6765\u6E90\uFF1A${f}\uFF09\uFF1A${e.size} \u4E2A`),console.log(`
6
+ ${"\u2501".repeat(60)}
7
+ \u7EC4\u4EF6\u6E05\u5355\u5BF9\u9F50\u7ED3\u679C
8
+ ${"\u2501".repeat(60)}`),!s.length&&!c.length){console.log("\u2713 \u5B8C\u5168\u4E00\u81F4\u3002");return}if(s.length){console.log(`
9
+ \u2717 \u7EBF\u4E0A\u6709\u3001\u672C\u5730\u65E0\uFF08${s.length}\uFF09\u2014\u2014 \u672C\u5730\u6253\u5F00\u4F1A [loadComponent] \u627E\u4E0D\u5230\u3001\u6574\u9875\u7A7A\u767D\uFF1A`);for(let o of s)console.log(" - "+o);console.log(" \u2192 \u591A\u534A\u662F\u672C\u5730\u6E90\u7801\u7248\u672C\u843D\u540E\u7EBF\u4E0A\u90E8\u7F72\u3002\u628A\u9879\u76EE\u6E90\u7801\u5BF9\u9F50\u5230\u7EBF\u4E0A\u90E8\u7F72\u7684\u4FEE\u8BA2\u540E\u91CD\u65B0\u6253\u5305\u3002")}if(c.length){console.log(`
10
+ \xB7 \u672C\u5730\u6709\u3001\u7EBF\u4E0A\u65E0\uFF08${c.length}\uFF09\u2014\u2014 \u901A\u5E38\u65E0\u5BB3\uFF08\u672C\u5730\u66F4\u65B0/\u547D\u540D\u4E0D\u540C\uFF09\uFF0C\u5217\u51FA\u4F9B\u6838\u5BF9\uFF1A`);for(let o of c)console.log(" - "+o)}s.length&&process.exit(2)}t(b,"main");b().catch(n=>{console.error("\u2717 "+(n&&n.message||n)),process.exit(1)});
package/package.json CHANGED
@@ -1,6 +1,29 @@
1
1
  {
2
2
  "name": "@epxing/cli",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.2.0",
4
+ "description": "EPX 交互式工程开发、服务启动、构建、Vue3 迁移及技能安装工具",
5
+ "type": "module",
6
+ "bin": {
7
+ "epx": "dist/cli.mjs"
8
+ },
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "engines": {
13
+ "node": ">=18"
14
+ },
15
+ "scripts": {
16
+ "build": "node build.mjs",
17
+ "test": "node --test test/cli.test.mjs",
18
+ "prepack": "node build.mjs",
19
+ "prepublishOnly": "node ../../build/guard-publish-registry.mjs"
20
+ },
21
+ "devDependencies": {
22
+ "@babel/parser": "7.29.3",
23
+ "esbuild": "0.25.12"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public",
27
+ "registry": "https://registry.npmjs.org/"
28
+ }
29
+ }