jjb-cmd 2.7.0 → 3.0.1

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/README.md CHANGED
@@ -37,35 +37,23 @@ jjb-cmd help
37
37
  | `v` | 查看当前版本 | `jjb-cmd v` |
38
38
  | `help` | 显示帮助信息 | `jjb-cmd help` |
39
39
 
40
- ### 开发工具
40
+ ### 组件管理
41
41
 
42
- #### 代码优化
42
+ #### 用户登录
43
43
 
44
44
  ```bash
45
- jjb-cmd opti
45
+ jjb-cmd login
46
46
  ```
47
47
 
48
- 自动优化项目代码,包括:
49
- - 代码格式化和美化
50
- - 依赖分析和优化建议
51
- - 性能优化建议
52
-
53
- ### 组件管理
48
+ 交互式输入用户名和密码完成登录,登录信息会安全加密存储在本地 `.auth` 文件中。
54
49
 
55
- #### 用户认证
50
+ #### 退出登录
56
51
 
57
52
  ```bash
58
- jjb-cmd auth <username> <password>
53
+ jjb-cmd logout
59
54
  ```
60
55
 
61
- **参数说明:**
62
- - `username`: 用户名
63
- - `password`: 密码
64
-
65
- **示例:**
66
- ```bash
67
- jjb-cmd auth admin 123456
68
- ```
56
+ 删除本地登录信息(`.auth` 文件),退出登录。
69
57
 
70
58
  #### 发布组件
71
59
 
@@ -74,7 +62,10 @@ jjb-cmd publish <version>
74
62
  ```
75
63
 
76
64
  **参数说明:**
77
- - `version`: 发布版本号,可设置为 `latest`
65
+ - `version`: 发布版本号,仅支持以下格式:
66
+ - `dev` / `test` / `latest`
67
+ - 数字版本号,最多 5 位(如 `1.0.0`、`1.0.0.0`、`1.2.3.4.5`)
68
+ - ⚠️ 不能以 `v` 开头(后台会自动补 `v` 前缀,输入 `v1.0.0` 会生成 `vv1.0.0` 目录)
78
69
  - `-f, --force`: 跳过所有二次确认(包括危险操作确认倒计时、风险确认提问、发布信息输入,发布信息使用默认值 `no message`)
79
70
 
80
71
  **示例:**
@@ -89,40 +80,42 @@ jjb-cmd publish latest
89
80
  jjb-cmd publish latest --force
90
81
  ```
91
82
 
92
- **参数说明:**
93
- - `yes`: 发布时需要提交信息
94
- - `no`: 发布时不需要提交信息
95
-
96
83
  ### 部署管理
97
84
 
98
85
  #### 推送微应用
99
86
 
87
+ **交互式:**
88
+
100
89
  ```bash
101
- jjb-cmd push java <env>
90
+ jjb-cmd push java
102
91
  ```
103
92
 
104
- **参数说明:**
105
- - `env`: 部署环境(test/prod)
93
+ 执行后会实时查询后端仓库的所有远程分支,请仔细核对并选择要推送的分支;选择后会二次确认,防止推错分支发错版本。
106
94
 
107
- **示例:**
108
- ```bash
109
- # 部署到测试环境
110
- jjb-cmd push java test
95
+ **非交互式一键推送(适合 AI/脚本):**
111
96
 
112
- # 部署到生产环境
113
- jjb-cmd push java prod
97
+ ```bash
98
+ jjb-cmd push java --build <打包命令> --target <后端分支> [--message <提交信息>] [--force] [--index]
114
99
  ```
115
100
 
116
- #### 清理操作
101
+ **参数说明:**
102
+ - `-b, --build <script>`: 指定打包命令(如 `build:prod`),跳过选择
103
+ - `-t, --target <branch>`: 指定后端分支(如 `1.0.0`),跳过列表与二次确认(仍会实时校验分支在远程是否存在)
104
+ - `-m, --message <msg>`: 指定提交信息,默认 `no message`
105
+ - `--force`: 克隆前强制清理残留临时仓库
106
+ - `--index`: 产物命名为 `index.html` 而非 `<appIdentifier>.html`
117
107
 
108
+ **示例:**
118
109
  ```bash
119
- jjb-cmd rm-rf
120
- ```
121
-
122
- 清理临时文件和缓存。
110
+ # 执行 build:prod 并推送到后端 1.0.0 分支
111
+ jjb-cmd push java --build build:prod --target 1.0.0
123
112
 
113
+ # 带提交信息
114
+ jjb-cmd push java -b build:prod -t 1.0.0 -m "feat: 更新xx"
124
115
  ```
125
116
 
117
+ > 只要带任一参数即进入非交互模式:`--build` 和 `--target` 缺一不可,缺失会直接报错退出,不会等待任何输入。
118
+
126
119
  ## 开发
127
120
 
128
121
  ### 项目结构
@@ -133,11 +126,12 @@ jjb-cmd/
133
126
  │ └── command.js
134
127
  ├── src/ # 源代码
135
128
  │ ├── auth.js # 认证模块
136
- │ ├── code-optimization.js # 代码优化
137
129
  │ ├── config.js # 配置管理
138
- │ ├── publish.js # 发布模块
139
- │ ├── push.js # 推送模块
140
- │ ├── rm-rf.js # 清理模块
130
+ │ ├── crypto-utils.js # 认证信息加密存储
131
+ │ ├── logout.js # 退出登录
132
+ │ ├── password-input.js # 密码安全输入
133
+ │ ├── publish.js # 组件发布模块
134
+ │ ├── push.js # 微应用推送模块
141
135
  │ └── utils.js # 工具函数
142
136
  ├── publish/ # 发布目录
143
137
  ├── build.js # 构建脚本
@@ -158,10 +152,13 @@ node build.js
158
152
 
159
153
  ## 更新日志
160
154
 
161
- ### v2.5.0 (当前版本)
162
- - 完善文档和帮助信息
163
- - 优化错误处理机制
164
- - 增强代码优化功能
155
+ ### v3.0.0
156
+ - push: 实时查询后端远程分支并二次确认,防止推错分支发错版本
157
+ - push: 支持 `--build` / `--target` / `--message` 非交互一键推送(适合 AI/脚本)
158
+ - publish: 版本号白名单校验(最多 5 位数字版本),禁止 `v` 开头
159
+ - `auth` 更名 `login`,新增 `logout` 退出登录;未认证提示显示具体登录命令
160
+ - 裸命令 `jjb-cmd` 无参数时输出帮助,帮助文案按显示宽度对齐
161
+ - 移除无用命令(`rm-rf` / `ai-pull` / `opti`)及相关源码
165
162
 
166
163
  ## 许可证
167
164
 
package/bin/command.js CHANGED
@@ -12,28 +12,68 @@ commander.command('v').description('-- 查看版本').action(() => {
12
12
  console.log(`当前版本: v${version}`);
13
13
  });
14
14
 
15
- commander.command('help').description('-- 帮助').action(() => {
15
+ // 计算字符串的终端显示宽度(全角/中文按 2 列计,半角按 1 列计)
16
+ function displayWidth(str) {
17
+ let width = 0;
18
+ for (const ch of str) {
19
+ width += ch.codePointAt(0) > 0x2e7f ? 2 : 1;
20
+ }
21
+ return width;
22
+ }
23
+
24
+ // 将左侧内容补齐到指定显示宽度,用于右侧说明列对齐
25
+ function padTo(text, width) {
26
+ return text + ' '.repeat(Math.max(0, width - displayWidth(text)));
27
+ }
28
+
29
+ // 帮助信息
30
+ function showHelp() {
31
+ // [左侧命令, 右侧说明]
32
+ const rows = [
33
+ ['jjb-cmd help', '帮助'],
34
+ ['jjb-cmd v', '查看版本'],
35
+ ['jjb-cmd publish <version>', '发布云组件'],
36
+ [' arg1 <version>', '发布版本,仅支持 dev/test/latest 或数字版本(最多 5 位,如 1.0.0.0),不能以 v 开头'],
37
+ [' -f, --force', '跳过所有二次确认'],
38
+ ['jjb-cmd login', '登录授权(交互式输入用户名和密码)'],
39
+ ['jjb-cmd logout', '退出登录(删除本地登录信息)'],
40
+ ['jjb-cmd push java', '推送微应用到服务器'],
41
+ [' -b, --build <script>', '指定打包命令(如 build:prod),跳过选择'],
42
+ [' -t, --target <branch>', '指定后端分支(如 1.0.0),跳过选择与二次确认'],
43
+ [' -m, --message <msg>', '指定提交信息(默认 no message)'],
44
+ [' --force', '克隆前强制清理残留临时仓库'],
45
+ [' --index', '产物命名为 index.html']
46
+ ];
47
+
48
+ // 以最长左侧命令为基准,统一补齐说明列
49
+ const maxLeft = Math.max(...rows.map(row => displayWidth(row[0])));
50
+
16
51
  console.log('jjb-cmd <command>');
17
52
  console.log('');
18
53
  console.log('使用:');
19
54
  console.log('');
20
- console.log('jjb-cmd help 帮助');
21
- console.log('jjb-cmd opti 代码优化');
22
- console.log('jjb-cmd v 查看版本');
23
- console.log('jjb-cmd publish <version> 发布云组件\n\targ1 <version> 发布版本,可设置为latest\n\t-f, --force 跳过所有二次确认');
24
- console.log('jjb-cmd auth 登录授权(交互式输入用户名和密码)');
25
- console.log('jjb-cmd push java 推送微应用到服务器');
26
- console.log('jjb-cmd ai-pull [branch] 拉取 AI 配置文件和规则\n\targ1 <branch> 指定分支/标签,默认为 v_1.0.0');
55
+ rows.forEach(([left, right]) => {
56
+ console.log(padTo(left, maxLeft + 2) + right);
57
+ });
58
+ console.log('');
59
+ console.log('非交互示例: jjb-cmd push java --build build:prod --target 1.0.0');
60
+ }
61
+
62
+ commander.command('help').description('-- 帮助').action(() => {
63
+ showHelp();
27
64
  });
28
65
 
29
- // 命令
30
- commander.command('auth').description('-- 授权').action(async () => {
66
+ // 登录(原 auth 更名,保留 auth 作为兼容别名)
67
+ commander.command('login').description('-- 登录授权').action(async () => {
68
+ await require('../src/auth.js')([]);
69
+ });
70
+ commander.command('auth').description('-- 登录授权(已更名,建议使用 jjb-cmd login)').action(async () => {
31
71
  await require('../src/auth.js')([]);
32
72
  });
33
73
 
34
- // 优化
35
- commander.command('opti').description('-- 代码优化').action(async args => {
36
- await require('../src/code-optimization')();
74
+ // 退出登录(删除本地登录信息)
75
+ commander.command('logout').description('-- 退出登录').action(async () => {
76
+ await require('../src/logout.js')();
37
77
  });
38
78
 
39
79
  // 发包
@@ -41,29 +81,48 @@ commander.command('publish [args]').description('-- 发布包').option('-f, --fo
41
81
  require('../src/publish.js')(args, { force: !!(cmd && cmd.force) });
42
82
  });
43
83
 
44
- // publish 命令
45
- commander.command('push [args]').description('-- 发布包').action(args => {
46
- if (args) {
47
- if ([ 'java' ].includes(args)) {
48
- require('../src/push.js')([]);
49
- } else {
50
- console.log(`无效的选项: ${args}`);
51
- process.exit(0);
52
- }
53
- } else {
84
+ // push 命令(支持非交互一键推送,适合 AI/脚本)
85
+ const pushCmd = commander.command('push [args]');
86
+ pushCmd
87
+ .option('-b, --build <script>', '指定打包命令,跳过选择(如 build:prod)')
88
+ .option('-t, --target <branch>', '指定后端分支,跳过选择与二次确认')
89
+ .option('-m, --message <msg>', '指定提交信息(默认 no message)')
90
+ .option('--force', '克隆前强制清理残留临时仓库')
91
+ .option('--index', '产物命名为 index.html');
92
+ pushCmd.description('-- 发布包');
93
+ pushCmd.action((args, cmd) => {
94
+ // commander 1.x 的 action 第一个参数是命令后的第一个参数(字符串)
95
+ const type = args;
96
+ if (!type) {
54
97
  console.log(`缺少必要参数,请使用 'jjb-cmd push java'`);
55
98
  process.exit(0);
56
99
  }
100
+ if (type !== 'java') {
101
+ console.log(`无效的选项: ${type}`);
102
+ process.exit(0);
103
+ }
104
+ require('../src/push.js')({
105
+ buildScript: cmd && cmd.build,
106
+ targetBranch: cmd && cmd.target,
107
+ message: cmd && cmd.message,
108
+ force: !!(cmd && cmd.force),
109
+ index: !!(cmd && cmd.index)
110
+ });
57
111
  });
58
112
 
59
- // rm-rf 命令
60
- commander.command('rm-rf').description('-- 删除全部').action(async () => {
61
- await require('../src/rm-rf.js')();
62
- });
63
-
64
- // ai-pull 命令
65
- commander.command('ai-pull [branch]').description('-- 拉取 AI 配置文件和规则').action((branch) => {
66
- require('../src/ai-pull.js')(branch);
113
+ // 未知命令提示
114
+ commander.command('*').action(args => {
115
+ const unknownCmd = Array.isArray(args) ? args[0] : args;
116
+ console.log(`未知命令: ${unknownCmd || ''}`);
117
+ console.log('');
118
+ showHelp();
67
119
  });
68
120
 
69
121
  commander.parse(process.argv);
122
+
123
+ // 未输入任何命令时输出帮助信息
124
+ if (process.argv.length <= 2) {
125
+ console.log('未输入命令,jjb-cmd 可用命令如下:');
126
+ console.log('');
127
+ showHelp();
128
+ }
package/package.json CHANGED
@@ -4,13 +4,12 @@
4
4
  "env": "prod",
5
5
  "httpMethod": "http",
6
6
  "pushMessage": "yes",
7
- "version": "2.7.0",
7
+ "version": "3.0.1",
8
8
  "description": "jjb-cmd命令行工具",
9
9
  "main": "index.js",
10
10
  "scripts": {
11
11
  "test": "node bin/command.js help",
12
- "install:package": "npm i",
13
- "test:ai-pull": "node bin/command.js ai-pull"
12
+ "install:package": "npm i"
14
13
  },
15
14
  "bin": {
16
15
  "jjb-cmd": "bin/command.js"
@@ -18,23 +17,9 @@
18
17
  "author": "jiaoxiwei",
19
18
  "license": "MIT",
20
19
  "dependencies": {
21
- "@babel/core": "^7.19.3",
22
- "@babel/generator": "^7.26.0",
23
- "@babel/parser": "^7.26.1",
24
- "@babel/preset-env": "^7.23.2",
25
- "@babel/preset-react": "^7.18.6",
26
- "@babel/preset-typescript": "^7.23.2",
27
- "@babel/traverse": "^7.25.9",
28
- "@cqsjjb/react-code-optimization": "latest",
29
20
  "axios": "^1.1.3",
30
- "better-sqlite3": "^12.6.2",
31
21
  "chalk": "2.4.0",
32
22
  "commander": "^1.3.2",
33
- "compressing": "^1.5.1",
34
- "inquirer": "^8.2.7",
35
- "jenkins": "^1.0.2",
36
- "prettier": "^3.3.3",
37
- "request": "2.88.2",
38
- "single-line-log": "1.1.2"
23
+ "inquirer": "^8.2.7"
39
24
  }
40
25
  }
package/src/auth.js CHANGED
@@ -1 +1 @@
1
- function a1_0xc688(_0x479e5b,_0x4f0d92){_0x479e5b=_0x479e5b-0x1cf;const _0x591924=a1_0x5919();let _0xc688ce=_0x591924[_0x479e5b];return _0xc688ce;}function a1_0x5919(){const _0x4c7c9d=['join','/api/auth','用户取消登录操作','登录失败:\x20','post','98748lFudLH','45192DIcJej','8fiUWcI','54562104Qqzioq','认证失败:\x20','11Yuvzty','includes','正在验证用户凭证...','../.auth','未知错误','用户认证成功','498naSjXk','786770nZwXxx','exit','5173870vLDKBm','97237JVRZhK','480BiWblU','保存认证信息失败:\x20','启动交互式登录流程','./crypto-utils','data','password','认证信息已安全加密存储','已清理无效的认证信息','status','username','63GiebuI','./config','用户取消输入','response','message','请求失败\x20(','axios','1938ecmyZt'];a1_0x5919=function(){return _0x4c7c9d;};return a1_0x5919();}const a1_0x45c06d=a1_0xc688;(function(_0x290e43,_0x58ce73){const _0x425a37=a1_0xc688,_0x22557b=_0x290e43();while(!![]){try{const _0x5c9fb0=parseInt(_0x425a37(0x1df))/0x1*(-parseInt(_0x425a37(0x1ed))/0x2)+-parseInt(_0x425a37(0x1e6))/0x3*(parseInt(_0x425a37(0x1d5))/0x4)+-parseInt(_0x425a37(0x1d3))/0x5+parseInt(_0x425a37(0x1d0))/0x6*(-parseInt(_0x425a37(0x1d4))/0x7)+parseInt(_0x425a37(0x1ee))/0x8*(-parseInt(_0x425a37(0x1ec))/0x9)+parseInt(_0x425a37(0x1d1))/0xa*(-parseInt(_0x425a37(0x1f1))/0xb)+parseInt(_0x425a37(0x1ef))/0xc;if(_0x5c9fb0===_0x58ce73)break;else _0x22557b['push'](_0x22557b['shift']());}catch(_0x4b6726){_0x22557b['push'](_0x22557b['shift']());}}}(a1_0x5919,0xbb98e));const axios=require(a1_0x45c06d(0x1e5)),path=require('path'),{getApiHost}=require(a1_0x45c06d(0x1e0)),{logInfo,logSuccess,logError,fileExists,deleteFile}=require('./utils'),{saveAuth,deleteAuth}=require(a1_0x45c06d(0x1d8)),{getCredentials,interactiveAuth}=require('./password-input');module['exports']=async _0x16ae41=>{const _0x1d72da=a1_0x45c06d,_0x2039dd=path[_0x1d72da(0x1e7)](__dirname,_0x1d72da(0x1f4));try{logInfo(_0x1d72da(0x1d7));const _0x35fc35=await interactiveAuth(),_0x50557b=_0x35fc35[_0x1d72da(0x1de)],_0x3e7fd0=_0x35fc35[_0x1d72da(0x1da)];logInfo(_0x1d72da(0x1f3));const _0x39f217=await axios[_0x1d72da(0x1eb)](getApiHost()+_0x1d72da(0x1e8),{'username':_0x50557b,'password':_0x3e7fd0});if(_0x39f217[_0x1d72da(0x1d9)][_0x1d72da(0x1dd)]){logSuccess(_0x1d72da(0x1cf));try{saveAuth(_0x50557b,_0x3e7fd0,_0x2039dd),logSuccess(_0x1d72da(0x1db));}catch(_0xbed5ed){logError(_0x1d72da(0x1d6)+_0xbed5ed[_0x1d72da(0x1e3)]),process[_0x1d72da(0x1d2)](0x1);}}else logError(_0x1d72da(0x1f0)+(_0x39f217['data']['message']||_0x1d72da(0x1f5))),fileExists(_0x2039dd)&&(deleteAuth(_0x2039dd),logInfo(_0x1d72da(0x1dc))),process[_0x1d72da(0x1d2)](0x1);}catch(_0x339c4f){if(_0x339c4f['message'][_0x1d72da(0x1f2)](_0x1d72da(0x1e1)))logError(_0x1d72da(0x1e9));else{if(_0x339c4f['response']){const _0xbbc663=_0x339c4f['response'][_0x1d72da(0x1dd)],_0x5d1d82=_0x339c4f[_0x1d72da(0x1e2)][_0x1d72da(0x1d9)]?.[_0x1d72da(0x1e3)]||_0x339c4f[_0x1d72da(0x1e3)];_0xbbc663===0x191||_0xbbc663===0x193?logError('认证失败\x20('+_0xbbc663+'):\x20用户名或密码错误'):logError(_0x1d72da(0x1e4)+_0xbbc663+'):\x20'+_0x5d1d82);}else _0x339c4f['request']?logError('网络连接失败:\x20无法连接到服务器'):logError(_0x1d72da(0x1ea)+_0x339c4f[_0x1d72da(0x1e3)]);}process[_0x1d72da(0x1d2)](0x1);}};
1
+ function a0_0x3f95(_0x240c69,_0x4ef282){_0x240c69=_0x240c69-0xf5;const _0x999db0=a0_0x999d();let _0x3f9503=_0x999db0[_0x240c69];return _0x3f9503;}const a0_0x4882a8=a0_0x3f95;(function(_0x24a844,_0x3f532c){const _0x2d98ed=a0_0x3f95,_0x503b2f=_0x24a844();while(!![]){try{const _0x5719bf=parseInt(_0x2d98ed(0x10b))/0x1+-parseInt(_0x2d98ed(0xff))/0x2*(parseInt(_0x2d98ed(0x100))/0x3)+parseInt(_0x2d98ed(0xf7))/0x4*(parseInt(_0x2d98ed(0xfe))/0x5)+parseInt(_0x2d98ed(0x113))/0x6*(parseInt(_0x2d98ed(0x118))/0x7)+-parseInt(_0x2d98ed(0xf6))/0x8*(parseInt(_0x2d98ed(0x115))/0x9)+parseInt(_0x2d98ed(0xfc))/0xa*(-parseInt(_0x2d98ed(0x10f))/0xb)+-parseInt(_0x2d98ed(0x114))/0xc*(-parseInt(_0x2d98ed(0xfd))/0xd);if(_0x5719bf===_0x3f532c)break;else _0x503b2f['push'](_0x503b2f['shift']());}catch(_0x12d057){_0x503b2f['push'](_0x503b2f['shift']());}}}(a0_0x999d,0x3f49a));const axios=require(a0_0x4882a8(0xfa)),path=require('path'),{getApiHost}=require(a0_0x4882a8(0x112)),{logInfo,logSuccess,logError,fileExists,deleteFile}=require(a0_0x4882a8(0x117)),{saveAuth,deleteAuth}=require(a0_0x4882a8(0x102)),{getCredentials,interactiveAuth}=require(a0_0x4882a8(0x108));module[a0_0x4882a8(0x105)]=async _0x1b3682=>{const _0x1065c5=a0_0x4882a8,_0x23acc8=path[_0x1065c5(0x10d)](__dirname,_0x1065c5(0x109));try{logInfo('启动交互式登录流程');const _0x3b05f2=await interactiveAuth(),_0x561e44=_0x3b05f2['username'],_0x4abe33=_0x3b05f2[_0x1065c5(0x10e)];logInfo(_0x1065c5(0x111));const _0x143d2c=await axios['post'](getApiHost()+_0x1065c5(0x103),{'username':_0x561e44,'password':_0x4abe33});if(_0x143d2c[_0x1065c5(0x107)]['status']){logSuccess('用户认证成功');try{saveAuth(_0x561e44,_0x4abe33,_0x23acc8),logSuccess('认证信息已安全加密存储');}catch(_0x1637e7){logError(_0x1065c5(0x104)+_0x1637e7['message']),process[_0x1065c5(0x110)](0x1);}}else logError(_0x1065c5(0x106)+(_0x143d2c[_0x1065c5(0x107)][_0x1065c5(0xf8)]||_0x1065c5(0x10c))),fileExists(_0x23acc8)&&(deleteAuth(_0x23acc8),logInfo('已清理无效的认证信息')),process[_0x1065c5(0x110)](0x1);}catch(_0x15d592){if(_0x15d592[_0x1065c5(0xf8)]['includes']('用户取消输入'))logError('用户取消登录操作');else{if(_0x15d592[_0x1065c5(0x10a)]){const _0x2ab499=_0x15d592[_0x1065c5(0x10a)][_0x1065c5(0x101)],_0x168fab=_0x15d592[_0x1065c5(0x10a)][_0x1065c5(0x107)]?.[_0x1065c5(0xf8)]||_0x15d592[_0x1065c5(0xf8)];_0x2ab499===0x191||_0x2ab499===0x193?logError(_0x1065c5(0x116)+_0x2ab499+'):\x20用户名或密码错误'):logError(_0x1065c5(0xf5)+_0x2ab499+_0x1065c5(0xf9)+_0x168fab);}else _0x15d592[_0x1065c5(0xfb)]?logError('网络连接失败:\x20无法连接到服务器'):logError('登录失败:\x20'+_0x15d592[_0x1065c5(0xf8)]);}process[_0x1065c5(0x110)](0x1);}};function a0_0x999d(){const _0x3dd43a=['password','457468VpIZvj','exit','正在验证用户凭证...','./config','6OpWvyb','2334684AfDbrV','179037NQaXif','认证失败\x20(','./utils','1671614SIOzLD','请求失败\x20(','16iGmBWS','143068psRLNP','message','):\x20','axios','request','60fQvpQQ','13jMWfOL','40jJznKJ','10zcqYke','187965GNLCVO','status','./crypto-utils','/api/auth','保存认证信息失败:\x20','exports','认证失败:\x20','data','./password-input','../.auth','response','142320fEEXoM','未知错误','join'];a0_0x999d=function(){return _0x3dd43a;};return a0_0x999d();}
package/src/config.js CHANGED
@@ -1 +1 @@
1
- const a3_0xe9623d=a3_0x4d49;function a3_0x427b(){const _0x6ef84c=['d4wQ7dzEjYPsgVbKnYei','21996KKRvyy','http://192.168.1.242:10985','36mbbhBb','https://jcloud.cqjjb.cn','1541500aqBtpD','1cjLjfm','../package.json','FqNrmFAgrxasMrbbjvq9','jjb-assembly-java','ywPtT3xCG6b_vAxp6sTj','7V-YUxhmh51Mdhgx4rq4','763sKWiRM','GIT_TEMP_JAVA','4183548mArkgd','11CyrxmM','1666lMVmga','9rXgANM','path','879whbXei','FT3pKzxpRynFkmddJ9Bs','GIT_TEMP_DIR','dev','CONFIG_FILE_HOST','http://120.26.210.58:8089','TEMPLATE_FOLDER','GIT_HOST','API_HOST','readFileSync','prod','135048JtRcUh','join','env','597753uyGkfn','httpMethod','333754BlcKFD','jjb-assembly-','888105pxsYuH','snBxJ2i5kYarGGcsojhY','getApiHost','test','G4HJRsHr9D7Ssmixegw2','http://120.26.210.58:8088'];a3_0x427b=function(){return _0x6ef84c;};return a3_0x427b();}(function(_0x1fc652,_0x383031){const _0x1d8ee2=a3_0x4d49,_0x1bfd3b=_0x1fc652();while(!![]){try{const _0x454763=parseInt(_0x1d8ee2(0x15f))/0x1*(parseInt(_0x1d8ee2(0x151))/0x2)+-parseInt(_0x1d8ee2(0x141))/0x3*(parseInt(_0x1d8ee2(0x15a))/0x4)+parseInt(_0x1d8ee2(0x153))/0x5*(-parseInt(_0x1d8ee2(0x15c))/0x6)+-parseInt(_0x1d8ee2(0x13a))/0x7*(parseInt(_0x1d8ee2(0x14c))/0x8)+parseInt(_0x1d8ee2(0x13f))/0x9*(parseInt(_0x1d8ee2(0x15e))/0xa)+parseInt(_0x1d8ee2(0x13d))/0xb*(-parseInt(_0x1d8ee2(0x13c))/0xc)+-parseInt(_0x1d8ee2(0x14f))/0xd*(-parseInt(_0x1d8ee2(0x13e))/0xe);if(_0x454763===_0x383031)break;else _0x1bfd3b['push'](_0x1bfd3b['shift']());}catch(_0x3c55fb){_0x1bfd3b['push'](_0x1bfd3b['shift']());}}}(a3_0x427b,0xe25c7));const os=require('os'),path=require(a3_0xe9623d(0x140)),fs=require('fs'),API_HOST=a3_0xe9623d(0x158),API_HOST_HTTPS=a3_0xe9623d(0x15d),API_HOST_TEST=a3_0xe9623d(0x146);function a3_0x4d49(_0x3274b6,_0x21922a){_0x3274b6=_0x3274b6-0x139;const _0x427b14=a3_0x427b();let _0x4d4902=_0x427b14[_0x3274b6];return _0x4d4902;}exports[a3_0xe9623d(0x145)]='https://cdn.cqjjb.cn/jjb-cloud-config',exports[a3_0xe9623d(0x149)]=API_HOST,exports['API_HOST_TEST']=API_HOST_TEST,exports[a3_0xe9623d(0x148)]=a3_0xe9623d(0x15b),exports[a3_0xe9623d(0x143)]=a3_0xe9623d(0x152)+Date['now'](),exports[a3_0xe9623d(0x13b)]=a3_0xe9623d(0x162),exports['GIT_JAVA_ENV_JSON']={'development':a3_0xe9623d(0x144),'production':a3_0xe9623d(0x14b),'test':a3_0xe9623d(0x156)},exports['CLOUD_PROJECT']={'common':{'token':a3_0xe9623d(0x157),'projectId':0x117},'react-admin-component':{'token':a3_0xe9623d(0x142),'projectId':0x154},'jjb-dva-runtime':{'token':'hLqARY89CN6fUD3yg4NL','projectId':0x23b},'jjb-common-lib':{'token':'e9njpBd1nS_LREN8GFpR','projectId':0x23c},'jjb-common-decorator':{'token':'gPSit8aJsLVmNzuQ5Cy4','projectId':0x23e},'vue-unisass-component':{'token':a3_0xe9623d(0x159),'projectId':0x153},'react-component':{'token':a3_0xe9623d(0x154),'projectId':0x33f},'micro-app-ts':{'token':a3_0xe9623d(0x139),'projectId':0x33e},'micro-app':{'token':a3_0xe9623d(0x161),'projectId':0x33d},'lib':{'token':a3_0xe9623d(0x163),'projectId':0x33c}},exports[a3_0xe9623d(0x147)]=path['join'](os['tmpdir'](),exports['GIT_TEMP_DIR']),exports[a3_0xe9623d(0x155)]=()=>{const _0x2cff6e=a3_0xe9623d;try{const _0x191585=JSON['parse'](fs[_0x2cff6e(0x14a)](path[_0x2cff6e(0x14d)](__dirname,_0x2cff6e(0x160)))['toString']());return _0x191585[_0x2cff6e(0x14e)]===_0x2cff6e(0x156)?API_HOST_TEST:_0x191585[_0x2cff6e(0x150)]==='http'?API_HOST:API_HOST_HTTPS;}catch(_0x3a6989){return API_HOST_HTTPS;}};
1
+ const a1_0x2b3b81=a1_0x563e;(function(_0x11c763,_0x14cc35){const _0x1f0f6b=a1_0x563e,_0x4f5168=_0x11c763();while(!![]){try{const _0x2c23d8=parseInt(_0x1f0f6b(0x14f))/0x1*(-parseInt(_0x1f0f6b(0x16b))/0x2)+-parseInt(_0x1f0f6b(0x163))/0x3+parseInt(_0x1f0f6b(0x16d))/0x4+-parseInt(_0x1f0f6b(0x152))/0x5*(-parseInt(_0x1f0f6b(0x165))/0x6)+parseInt(_0x1f0f6b(0x167))/0x7+parseInt(_0x1f0f6b(0x14a))/0x8*(-parseInt(_0x1f0f6b(0x14c))/0x9)+parseInt(_0x1f0f6b(0x16c))/0xa;if(_0x2c23d8===_0x14cc35)break;else _0x4f5168['push'](_0x4f5168['shift']());}catch(_0xfbef9f){_0x4f5168['push'](_0x4f5168['shift']());}}}(a1_0x4200,0x61c37));function a1_0x563e(_0x448a11,_0x42dbb6){_0x448a11=_0x448a11-0x149;const _0x420036=a1_0x4200();let _0x563e05=_0x420036[_0x448a11];return _0x563e05;}function a1_0x4200(){const _0x5933bd=['jjb-assembly-','http://192.168.1.242:10985','snBxJ2i5kYarGGcsojhY','httpMethod','API_HOST_TEST','GIT_TEMP_DIR','d4wQ7dzEjYPsgVbKnYei','join','CONFIG_FILE_HOST','toString','API_HOST','e9njpBd1nS_LREN8GFpR','getApiHost','test','path','1901988EeFQWr','G4HJRsHr9D7Ssmixegw2','948582wsdLYE','https://jcloud.cqjjb.cn','645211vQKvpF','now','parse','http','2FWGgal','12010280OUFyGr','241944IhvJeh','tmpdir','https://cdn.cqjjb.cn/jjb-cloud-config','hLqARY89CN6fUD3yg4NL','TEMPLATE_FOLDER','../package.json','177512hjAeDw','readFileSync','9ekEiIg','ywPtT3xCG6b_vAxp6sTj','FqNrmFAgrxasMrbbjvq9','771354LuIVhV','jjb-assembly-java','CLOUD_PROJECT','15DXdqkF','http://120.26.210.58:8089'];a1_0x4200=function(){return _0x5933bd;};return a1_0x4200();}const os=require('os'),path=require(a1_0x2b3b81(0x162)),fs=require('fs'),API_HOST='http://120.26.210.58:8088',API_HOST_HTTPS=a1_0x2b3b81(0x166),API_HOST_TEST=a1_0x2b3b81(0x153);exports[a1_0x2b3b81(0x15c)]=a1_0x2b3b81(0x16f),exports[a1_0x2b3b81(0x15e)]=API_HOST,exports[a1_0x2b3b81(0x158)]=API_HOST_TEST,exports['GIT_HOST']=a1_0x2b3b81(0x155),exports[a1_0x2b3b81(0x159)]=a1_0x2b3b81(0x154)+Date[a1_0x2b3b81(0x168)](),exports['GIT_TEMP_JAVA']=a1_0x2b3b81(0x150),exports[a1_0x2b3b81(0x151)]={'common':{'token':a1_0x2b3b81(0x164),'projectId':0x117},'react-admin-component':{'token':'FT3pKzxpRynFkmddJ9Bs','projectId':0x154},'jjb-dva-runtime':{'token':a1_0x2b3b81(0x170),'projectId':0x23b},'jjb-common-lib':{'token':a1_0x2b3b81(0x15f),'projectId':0x23c},'jjb-common-decorator':{'token':'gPSit8aJsLVmNzuQ5Cy4','projectId':0x23e},'vue-unisass-component':{'token':a1_0x2b3b81(0x15a),'projectId':0x153},'react-component':{'token':a1_0x2b3b81(0x156),'projectId':0x33f},'micro-app-ts':{'token':'7V-YUxhmh51Mdhgx4rq4','projectId':0x33e},'micro-app':{'token':a1_0x2b3b81(0x14e),'projectId':0x33d},'lib':{'token':a1_0x2b3b81(0x14d),'projectId':0x33c}},exports[a1_0x2b3b81(0x171)]=path[a1_0x2b3b81(0x15b)](os[a1_0x2b3b81(0x16e)](),exports[a1_0x2b3b81(0x159)]),exports[a1_0x2b3b81(0x160)]=()=>{const _0x1cf72a=a1_0x2b3b81;try{const _0x45074=JSON[_0x1cf72a(0x169)](fs[_0x1cf72a(0x14b)](path[_0x1cf72a(0x15b)](__dirname,_0x1cf72a(0x149)))[_0x1cf72a(0x15d)]());return _0x45074['env']===_0x1cf72a(0x161)?API_HOST_TEST:_0x45074[_0x1cf72a(0x157)]===_0x1cf72a(0x16a)?API_HOST:API_HOST_HTTPS;}catch(_0x191647){return API_HOST_HTTPS;}};
@@ -1 +1 @@
1
- const a4_0x375e43=a4_0x22ad;(function(_0xff5e4b,_0x4620b4){const _0x2186bc=a4_0x22ad,_0x8f92fb=_0xff5e4b();while(!![]){try{const _0x1b749a=-parseInt(_0x2186bc(0x146))/0x1*(-parseInt(_0x2186bc(0x14e))/0x2)+-parseInt(_0x2186bc(0x152))/0x3+-parseInt(_0x2186bc(0x14f))/0x4+-parseInt(_0x2186bc(0x14d))/0x5*(-parseInt(_0x2186bc(0x137))/0x6)+-parseInt(_0x2186bc(0x15b))/0x7*(-parseInt(_0x2186bc(0x139))/0x8)+parseInt(_0x2186bc(0x143))/0x9+parseInt(_0x2186bc(0x156))/0xa;if(_0x1b749a===_0x4620b4)break;else _0x8f92fb['push'](_0x8f92fb['shift']());}catch(_0x41d25d){_0x8f92fb['push'](_0x8f92fb['shift']());}}}(a4_0x1f17,0x523db));function a4_0x1f17(){const _0x539112=['randomBytes','update','pbkdf2Sync','312605qdPhxD','10NzVFiG','152348vJYawh','hostname','writeFileSync','2012076WLAoQa','hex','userInfo','读取认证信息失败:\x20','2966060QouunY','message','exports','删除认证文件失败:\x20','platform','11921rPvfuZ','utf8','解密失败:\x20','unknown','setAutoPadding','slice','toString','readFileSync','final','6wYKasp','crypto','776dXNIux','algorithm','digest','ivLength','split','saltLength','concat','from','sha256','createCipheriv','890865wCyNAN','existsSync','unlinkSync','84467JnXSRL','base64','加密失败:\x20','path'];a4_0x1f17=function(){return _0x539112;};return a4_0x1f17();}const crypto=require(a4_0x375e43(0x138)),fs=require('fs'),path=require(a4_0x375e43(0x149)),CRYPTO_CONFIG={'algorithm':'aes-256-cbc','keyLength':0x20,'ivLength':0x10,'saltLength':0x20};function deriveKey(_0x5f396e,_0x3f844b){const _0x4949a4=a4_0x375e43;return crypto[_0x4949a4(0x14c)](_0x5f396e,_0x3f844b,0x186a0,CRYPTO_CONFIG['keyLength'],'sha512');}function generateSalt(){const _0xe45054=a4_0x375e43;return crypto[_0xe45054(0x14a)](CRYPTO_CONFIG[_0xe45054(0x13e)]);}function generateIV(){const _0x2f6092=a4_0x375e43;return crypto[_0x2f6092(0x14a)](CRYPTO_CONFIG[_0x2f6092(0x13c)]);}function encrypt(_0x5e6b41,_0x57919a){const _0x2a22cc=a4_0x375e43;try{const _0x5b807c=generateSalt(),_0x32bc34=generateIV(),_0x3b4274=deriveKey(_0x57919a,_0x5b807c),_0x25cce5=crypto[_0x2a22cc(0x142)](CRYPTO_CONFIG[_0x2a22cc(0x13a)],_0x3b4274,_0x32bc34);_0x25cce5[_0x2a22cc(0x15f)](!![]);let _0xe5ac1e=_0x25cce5['update'](_0x5e6b41,_0x2a22cc(0x15c),_0x2a22cc(0x153));_0xe5ac1e+=_0x25cce5[_0x2a22cc(0x163)](_0x2a22cc(0x153));const _0x496bf5=Buffer[_0x2a22cc(0x13f)]([_0x5b807c,_0x32bc34,Buffer[_0x2a22cc(0x140)](_0xe5ac1e,_0x2a22cc(0x153))]);return _0x496bf5[_0x2a22cc(0x161)]('base64');}catch(_0x50b93e){throw new Error(_0x2a22cc(0x148)+_0x50b93e['message']);}}function decrypt(_0x1dd534,_0x396d0b){const _0x4e98d2=a4_0x375e43;try{const _0x6909e7=Buffer[_0x4e98d2(0x140)](_0x1dd534,_0x4e98d2(0x147)),_0x456443=_0x6909e7[_0x4e98d2(0x160)](0x0,CRYPTO_CONFIG['saltLength']),_0x51cf58=_0x6909e7[_0x4e98d2(0x160)](CRYPTO_CONFIG[_0x4e98d2(0x13e)],CRYPTO_CONFIG[_0x4e98d2(0x13e)]+CRYPTO_CONFIG[_0x4e98d2(0x13c)]),_0x9df930=_0x6909e7[_0x4e98d2(0x160)](CRYPTO_CONFIG[_0x4e98d2(0x13e)]+CRYPTO_CONFIG[_0x4e98d2(0x13c)]),_0x54b48e=deriveKey(_0x396d0b,_0x456443),_0x5a2db7=crypto['createDecipheriv'](CRYPTO_CONFIG[_0x4e98d2(0x13a)],_0x54b48e,_0x51cf58);_0x5a2db7[_0x4e98d2(0x15f)](!![]);let _0xd94f05=_0x5a2db7['update'](_0x9df930,null,'utf8');return _0xd94f05+=_0x5a2db7[_0x4e98d2(0x163)](_0x4e98d2(0x15c)),_0xd94f05;}catch(_0xb94823){throw new Error(_0x4e98d2(0x15d)+_0xb94823[_0x4e98d2(0x157)]);}}function generateDeviceKey(){const _0x4a143a=a4_0x375e43,_0x45a478=require('os');let _0x4c1b76=_0x4a143a(0x15e);try{_0x4c1b76=_0x45a478[_0x4a143a(0x154)]()['username']||_0x4a143a(0x15e);}catch(_0xb2b900){_0x4c1b76=process.env.USER||process.env.LOGNAME||process.env.USERNAME||_0x4a143a(0x15e);}const _0x28dfb0=[_0x45a478[_0x4a143a(0x15a)](),_0x45a478['arch'](),_0x45a478[_0x4a143a(0x150)](),_0x4c1b76]['join']('|');return crypto['createHash'](_0x4a143a(0x141))[_0x4a143a(0x14b)](_0x28dfb0)[_0x4a143a(0x13b)](_0x4a143a(0x153));}function saveAuth(_0x50d86a,_0x4e6bca,_0x2e27a3){const _0x4e4dec=a4_0x375e43;try{const _0x4fb63f=generateDeviceKey(),_0x4a813e=_0x50d86a+'/'+_0x4e6bca,_0x1fa695=encrypt(_0x4a813e,_0x4fb63f);return fs[_0x4e4dec(0x151)](_0x2e27a3,_0x1fa695,{'mode':0x180}),!![];}catch(_0x29abf6){throw new Error('保存认证信息失败:\x20'+_0x29abf6['message']);}}function loadAuth(_0x236c5b){const _0xf6f6e0=a4_0x375e43;try{if(!fs[_0xf6f6e0(0x144)](_0x236c5b))throw new Error('认证文件不存在');const _0x3362d2=generateDeviceKey(),_0x11cdd6=fs[_0xf6f6e0(0x162)](_0x236c5b,_0xf6f6e0(0x15c)),_0x41a748=decrypt(_0x11cdd6,_0x3362d2),[_0x2b8072,_0x3ba67e]=_0x41a748[_0xf6f6e0(0x13d)]('/');if(!_0x2b8072||!_0x3ba67e)throw new Error('认证数据格式错误');return{'username':_0x2b8072,'password':_0x3ba67e};}catch(_0x434980){throw new Error(_0xf6f6e0(0x155)+_0x434980[_0xf6f6e0(0x157)]);}}function deleteAuth(_0x435844){const _0x186b72=a4_0x375e43;try{fs[_0x186b72(0x144)](_0x435844)&&fs[_0x186b72(0x145)](_0x435844);}catch(_0x307673){throw new Error(_0x186b72(0x159)+_0x307673[_0x186b72(0x157)]);}}function a4_0x22ad(_0x23a3a1,_0x34def9){_0x23a3a1=_0x23a3a1-0x137;const _0x1f17a7=a4_0x1f17();let _0x22ad99=_0x1f17a7[_0x23a3a1];return _0x22ad99;}module[a4_0x375e43(0x158)]={'encrypt':encrypt,'decrypt':decrypt,'saveAuth':saveAuth,'loadAuth':loadAuth,'deleteAuth':deleteAuth,'generateDeviceKey':generateDeviceKey};
1
+ const a2_0x48a6c6=a2_0x333c;(function(_0x22ad61,_0x543ea4){const _0x16fb82=a2_0x333c,_0x1bfec9=_0x22ad61();while(!![]){try{const _0x569945=parseInt(_0x16fb82(0x10f))/0x1*(parseInt(_0x16fb82(0xf3))/0x2)+-parseInt(_0x16fb82(0x114))/0x3+parseInt(_0x16fb82(0x115))/0x4*(-parseInt(_0x16fb82(0x109))/0x5)+parseInt(_0x16fb82(0xf6))/0x6+parseInt(_0x16fb82(0x104))/0x7*(parseInt(_0x16fb82(0x11e))/0x8)+parseInt(_0x16fb82(0x120))/0x9+-parseInt(_0x16fb82(0x11c))/0xa*(parseInt(_0x16fb82(0x123))/0xb);if(_0x569945===_0x543ea4)break;else _0x1bfec9['push'](_0x1bfec9['shift']());}catch(_0x5569f0){_0x1bfec9['push'](_0x1bfec9['shift']());}}}(a2_0x52e9,0xe4a1c));const crypto=require('crypto'),fs=require('fs'),path=require('path'),CRYPTO_CONFIG={'algorithm':'aes-256-cbc','keyLength':0x20,'ivLength':0x10,'saltLength':0x20};function deriveKey(_0x5c2863,_0x450fd7){const _0x3d3907=a2_0x333c;return crypto['pbkdf2Sync'](_0x5c2863,_0x450fd7,0x186a0,CRYPTO_CONFIG[_0x3d3907(0x113)],_0x3d3907(0x11b));}function generateSalt(){const _0x360495=a2_0x333c;return crypto[_0x360495(0xf4)](CRYPTO_CONFIG[_0x360495(0x119)]);}function generateIV(){return crypto['randomBytes'](CRYPTO_CONFIG['ivLength']);}function encrypt(_0x2fdec1,_0x4ce915){const _0x2499bd=a2_0x333c;try{const _0x3ba3f4=generateSalt(),_0xf931e5=generateIV(),_0x57a345=deriveKey(_0x4ce915,_0x3ba3f4),_0x4885dd=crypto[_0x2499bd(0x116)](CRYPTO_CONFIG[_0x2499bd(0x106)],_0x57a345,_0xf931e5);_0x4885dd[_0x2499bd(0x108)](!![]);let _0x30b3a5=_0x4885dd[_0x2499bd(0x121)](_0x2fdec1,_0x2499bd(0xff),'hex');_0x30b3a5+=_0x4885dd[_0x2499bd(0xf7)](_0x2499bd(0xfa));const _0x1ba9e9=Buffer[_0x2499bd(0x101)]([_0x3ba3f4,_0xf931e5,Buffer[_0x2499bd(0x11a)](_0x30b3a5,_0x2499bd(0xfa))]);return _0x1ba9e9[_0x2499bd(0x111)](_0x2499bd(0x11d));}catch(_0x5d3345){throw new Error(_0x2499bd(0x10b)+_0x5d3345[_0x2499bd(0xf8)]);}}function decrypt(_0x2f9d09,_0x5134de){const _0x458d07=a2_0x333c;try{const _0x13025b=Buffer[_0x458d07(0x11a)](_0x2f9d09,_0x458d07(0x11d)),_0x3b2b67=_0x13025b[_0x458d07(0xfb)](0x0,CRYPTO_CONFIG['saltLength']),_0x4a1e8d=_0x13025b[_0x458d07(0xfb)](CRYPTO_CONFIG['saltLength'],CRYPTO_CONFIG[_0x458d07(0x119)]+CRYPTO_CONFIG['ivLength']),_0xf31b50=_0x13025b[_0x458d07(0xfb)](CRYPTO_CONFIG[_0x458d07(0x119)]+CRYPTO_CONFIG[_0x458d07(0x10a)]),_0x359409=deriveKey(_0x5134de,_0x3b2b67),_0x440856=crypto[_0x458d07(0x110)](CRYPTO_CONFIG[_0x458d07(0x106)],_0x359409,_0x4a1e8d);_0x440856[_0x458d07(0x108)](!![]);let _0x13ffcb=_0x440856[_0x458d07(0x121)](_0xf31b50,null,_0x458d07(0xff));return _0x13ffcb+=_0x440856[_0x458d07(0xf7)](_0x458d07(0xff)),_0x13ffcb;}catch(_0xd7cb66){throw new Error(_0x458d07(0x10c)+_0xd7cb66[_0x458d07(0xf8)]);}}function a2_0x333c(_0x5679ac,_0x11acff){_0x5679ac=_0x5679ac-0xf3;const _0x52e9bd=a2_0x52e9();let _0x333c2d=_0x52e9bd[_0x5679ac];return _0x333c2d;}function a2_0x52e9(){const _0x4af42d=['createHash','4592814mHSqbs','final','message','认证文件不存在','hex','slice','读取认证信息失败:\x20','删除认证文件失败:\x20','unknown','utf8','digest','concat','exports','split','1402681FJDpZs','hostname','algorithm','认证数据格式错误','setAutoPadding','18390eLsgrw','ivLength','加密失败:\x20','解密失败:\x20','arch','readFileSync','363437DYixLh','createDecipheriv','toString','unlinkSync','keyLength','547992QFTeSB','12WawDnC','createCipheriv','join','username','saltLength','from','sha512','2670ezWxWi','base64','40tsdGdp','platform','14011164iLgGIu','update','sha256','150282LgALmv','8uSVxtq','randomBytes'];a2_0x52e9=function(){return _0x4af42d;};return a2_0x52e9();}function generateDeviceKey(){const _0x53d526=a2_0x333c,_0x365325=require('os');let _0x58cdb2=_0x53d526(0xfe);try{_0x58cdb2=_0x365325['userInfo']()[_0x53d526(0x118)]||_0x53d526(0xfe);}catch(_0x35e4c7){_0x58cdb2=process.env.USER||process.env.LOGNAME||process.env.USERNAME||'unknown';}const _0x5bfd0c=[_0x365325[_0x53d526(0x11f)](),_0x365325[_0x53d526(0x10d)](),_0x365325[_0x53d526(0x105)](),_0x58cdb2][_0x53d526(0x117)]('|');return crypto[_0x53d526(0xf5)](_0x53d526(0x122))['update'](_0x5bfd0c)[_0x53d526(0x100)]('hex');}function saveAuth(_0x136f80,_0x2de877,_0x444e0e){const _0x5ef95a=a2_0x333c;try{const _0x20cd29=generateDeviceKey(),_0x55f372=_0x136f80+'/'+_0x2de877,_0x4145c9=encrypt(_0x55f372,_0x20cd29);return fs['writeFileSync'](_0x444e0e,_0x4145c9,{'mode':0x180}),!![];}catch(_0x59247c){throw new Error('保存认证信息失败:\x20'+_0x59247c[_0x5ef95a(0xf8)]);}}function loadAuth(_0x4354d7){const _0x5535a4=a2_0x333c;try{if(!fs['existsSync'](_0x4354d7))throw new Error(_0x5535a4(0xf9));const _0x270bc3=generateDeviceKey(),_0x458cae=fs[_0x5535a4(0x10e)](_0x4354d7,_0x5535a4(0xff)),_0x5c82ce=decrypt(_0x458cae,_0x270bc3),[_0x1cadfa,_0x5e26fa]=_0x5c82ce[_0x5535a4(0x103)]('/');if(!_0x1cadfa||!_0x5e26fa)throw new Error(_0x5535a4(0x107));return{'username':_0x1cadfa,'password':_0x5e26fa};}catch(_0xaac270){throw new Error(_0x5535a4(0xfc)+_0xaac270['message']);}}function deleteAuth(_0x3c8d98){const _0x3415d0=a2_0x333c;try{fs['existsSync'](_0x3c8d98)&&fs[_0x3415d0(0x112)](_0x3c8d98);}catch(_0x48356b){throw new Error(_0x3415d0(0xfd)+_0x48356b['message']);}}module[a2_0x48a6c6(0x102)]={'encrypt':encrypt,'decrypt':decrypt,'saveAuth':saveAuth,'loadAuth':loadAuth,'deleteAuth':deleteAuth,'generateDeviceKey':generateDeviceKey};
package/src/logout.js ADDED
@@ -0,0 +1 @@
1
+ const a3_0x330ff8=a3_0x292a;(function(_0x2e778a,_0x1ec9e8){const _0x10dead=a3_0x292a,_0xfd734c=_0x2e778a();while(!![]){try{const _0x16a9b0=parseInt(_0x10dead(0x1cf))/0x1+parseInt(_0x10dead(0x1d7))/0x2*(-parseInt(_0x10dead(0x1cd))/0x3)+parseInt(_0x10dead(0x1d3))/0x4*(-parseInt(_0x10dead(0x1da))/0x5)+parseInt(_0x10dead(0x1d8))/0x6+-parseInt(_0x10dead(0x1dc))/0x7*(-parseInt(_0x10dead(0x1d6))/0x8)+-parseInt(_0x10dead(0x1db))/0x9+-parseInt(_0x10dead(0x1dd))/0xa*(-parseInt(_0x10dead(0x1df))/0xb);if(_0x16a9b0===_0x1ec9e8)break;else _0xfd734c['push'](_0xfd734c['shift']());}catch(_0x51ec52){_0xfd734c['push'](_0xfd734c['shift']());}}}(a3_0x2c66,0x53820));function a3_0x292a(_0xdc4aec,_0x47bcb6){_0xdc4aec=_0xdc4aec-0x1cd;const _0x2c66af=a3_0x2c66();let _0x292add=_0x2c66af[_0xdc4aec];return _0x292add;}const path=require(a3_0x330ff8(0x1d1)),{logInfo,logSuccess,logWarning,logError,fileExists}=require(a3_0x330ff8(0x1e0)),{deleteAuth}=require(a3_0x330ff8(0x1d4));function a3_0x2c66(){const _0x31e8b7=['137277ymOaFD','27286CkOwhR','735580rCFMKi','../.auth','44GSVwcT','./utils','407955rYsQKv','exit','163760JqeWGQ','join','path','exports','16XCsvrO','./crypto-utils','已退出登录,本地登录信息已删除','72JFEYqH','10VPeSOP','3557544VyWenC','正在退出登录...','60965xcesBB'];a3_0x2c66=function(){return _0x31e8b7;};return a3_0x2c66();}module[a3_0x330ff8(0x1d2)]=async function(){const _0x3e1077=a3_0x330ff8,_0x271378=path[_0x3e1077(0x1d0)](__dirname,_0x3e1077(0x1de));!fileExists(_0x271378)&&(logWarning('当前未登录,无需退出'),process[_0x3e1077(0x1ce)](0x0));try{logInfo(_0x3e1077(0x1d9)),deleteAuth(_0x271378),logSuccess(_0x3e1077(0x1d5)),process[_0x3e1077(0x1ce)](0x0);}catch(_0x4a5ef0){logError('退出登录失败:\x20'+_0x4a5ef0['message']),process[_0x3e1077(0x1ce)](0x1);}};
@@ -1 +1 @@
1
- const a5_0x2032fd=a5_0x4cc4;(function(_0x26cbac,_0x524ed0){const _0x3554ea=a5_0x4cc4,_0x54daf6=_0x26cbac();while(!![]){try{const _0x21ddc8=-parseInt(_0x3554ea(0x142))/0x1+parseInt(_0x3554ea(0x13f))/0x2*(parseInt(_0x3554ea(0x140))/0x3)+parseInt(_0x3554ea(0x147))/0x4*(-parseInt(_0x3554ea(0x143))/0x5)+parseInt(_0x3554ea(0x139))/0x6+parseInt(_0x3554ea(0x135))/0x7+parseInt(_0x3554ea(0x136))/0x8*(parseInt(_0x3554ea(0x144))/0x9)+-parseInt(_0x3554ea(0x14a))/0xa*(parseInt(_0x3554ea(0x14e))/0xb);if(_0x21ddc8===_0x524ed0)break;else _0x54daf6['push'](_0x54daf6['shift']());}catch(_0x481f85){_0x54daf6['push'](_0x54daf6['shift']());}}}(a5_0x2343,0x25c13));function a5_0x2343(){const _0x7404b2=['isTtyError','4850ruSvIr','290ovFapX','13239JvGTlG','exports','password','20228OEgxvE','账号不能为空','获取认证信息失败:\x20','10rAkkKl','username','message','prompt','2990196cwFsWT','325780KzBJwo','992YKxBOS','trim','获取认证信息失败:\x20当前环境不支持交互式输入','1231290SWKqja','密码不能为空','input','./utils','请输入密码:','push','580952XYydTr','3jaUoUV'];a5_0x2343=function(){return _0x7404b2;};return a5_0x2343();}const inquirer=require('inquirer'),{logError}=require(a5_0x2032fd(0x13c));async function getCredentials(_0x54341d=null){const _0x6289fe=a5_0x2032fd;try{let _0x2cb7f3=_0x54341d;const _0x109b63=[];!_0x2cb7f3&&_0x109b63[_0x6289fe(0x13e)]({'type':_0x6289fe(0x13b),'name':_0x6289fe(0x14b),'message':'请输入账号:','validate':_0x3d55e5=>{const _0x33e4ea=_0x6289fe;if(!_0x3d55e5||!_0x3d55e5[_0x33e4ea(0x137)]())return _0x33e4ea(0x148);return!![];}});_0x109b63[_0x6289fe(0x13e)]({'type':_0x6289fe(0x146),'name':_0x6289fe(0x146),'message':_0x6289fe(0x13d),'mask':'*','validate':_0x353a5f=>{const _0x399cc5=_0x6289fe;if(!_0x353a5f||!_0x353a5f[_0x399cc5(0x137)]())return _0x399cc5(0x13a);return!![];}});const _0x24bb5f=await inquirer[_0x6289fe(0x14d)](_0x109b63);_0x2cb7f3=_0x2cb7f3||_0x24bb5f['username'][_0x6289fe(0x137)]();const _0x313fcd=_0x24bb5f['password'];return{'username':_0x2cb7f3,'password':_0x313fcd};}catch(_0x1b89ff){_0x1b89ff[_0x6289fe(0x141)]?logError(_0x6289fe(0x138)):logError(_0x6289fe(0x149)+_0x1b89ff[_0x6289fe(0x14c)]);throw _0x1b89ff;}}function a5_0x4cc4(_0x5ba7a9,_0x473c9a){_0x5ba7a9=_0x5ba7a9-0x135;const _0x23432d=a5_0x2343();let _0x4cc445=_0x23432d[_0x5ba7a9];return _0x4cc445;}async function interactiveAuth(){return await getCredentials();}module[a5_0x2032fd(0x145)]={'getCredentials':getCredentials,'interactiveAuth':interactiveAuth};
1
+ function a4_0x29f5(){const _0x445a8a=['916223eAhMPe','195816jlkurV','./utils','push','message','exports','19392ARHcLP','18CrabeY','prompt','9GYdVZJ','1262864dqVPfr','8Oekvbn','4108OcUwbJ','trim','4045zGoFjv','42260NhhqWY','584280uBwWLc','58IqjUKD','获取认证信息失败:\x20','password','获取认证信息失败:\x20当前环境不支持交互式输入','isTtyError','11ukfFtm','请输入账号:'];a4_0x29f5=function(){return _0x445a8a;};return a4_0x29f5();}const a4_0x373e89=a4_0x521d;(function(_0x95b223,_0x403276){const _0x394024=a4_0x521d,_0x5f2378=_0x95b223();while(!![]){try{const _0x2123db=parseInt(_0x394024(0x183))/0x1*(parseInt(_0x394024(0x186))/0x2)+-parseInt(_0x394024(0x18e))/0x3*(-parseInt(_0x394024(0x180))/0x4)+-parseInt(_0x394024(0x184))/0x5*(-parseInt(_0x394024(0x17c))/0x6)+parseInt(_0x394024(0x18d))/0x7+-parseInt(_0x394024(0x17f))/0x8*(-parseInt(_0x394024(0x17e))/0x9)+-parseInt(_0x394024(0x185))/0xa*(-parseInt(_0x394024(0x18b))/0xb)+parseInt(_0x394024(0x17b))/0xc*(-parseInt(_0x394024(0x181))/0xd);if(_0x2123db===_0x403276)break;else _0x5f2378['push'](_0x5f2378['shift']());}catch(_0x76de2d){_0x5f2378['push'](_0x5f2378['shift']());}}}(a4_0x29f5,0x1ac9c));const inquirer=require('inquirer'),{logError}=require(a4_0x373e89(0x18f));function a4_0x521d(_0x524eb9,_0x2acc42){_0x524eb9=_0x524eb9-0x179;const _0x29f579=a4_0x29f5();let _0x521dac=_0x29f579[_0x524eb9];return _0x521dac;}async function getCredentials(_0x106585=null){const _0x1ba8a4=a4_0x373e89;try{let _0x25b57a=_0x106585;const _0x4bbc8a=[];!_0x25b57a&&_0x4bbc8a[_0x1ba8a4(0x190)]({'type':'input','name':'username','message':_0x1ba8a4(0x18c),'validate':_0x487622=>{const _0x52934c=_0x1ba8a4;if(!_0x487622||!_0x487622[_0x52934c(0x182)]())return'账号不能为空';return!![];}});_0x4bbc8a[_0x1ba8a4(0x190)]({'type':_0x1ba8a4(0x188),'name':_0x1ba8a4(0x188),'message':'请输入密码:','mask':'*','validate':_0x1e7b73=>{if(!_0x1e7b73||!_0x1e7b73['trim']())return'密码不能为空';return!![];}});const _0x28b554=await inquirer[_0x1ba8a4(0x17d)](_0x4bbc8a);_0x25b57a=_0x25b57a||_0x28b554['username'][_0x1ba8a4(0x182)]();const _0x561953=_0x28b554[_0x1ba8a4(0x188)];return{'username':_0x25b57a,'password':_0x561953};}catch(_0x14351f){_0x14351f[_0x1ba8a4(0x18a)]?logError(_0x1ba8a4(0x189)):logError(_0x1ba8a4(0x187)+_0x14351f[_0x1ba8a4(0x179)]);throw _0x14351f;}}async function interactiveAuth(){return await getCredentials();}module[a4_0x373e89(0x17a)]={'getCredentials':getCredentials,'interactiveAuth':interactiveAuth};
package/src/publish.js CHANGED
@@ -1 +1 @@
1
- const a6_0x50409a=a6_0x4368;(function(_0x10c160,_0x4edbc1){const _0x1d8bc3=a6_0x4368,_0x4e005b=_0x10c160();while(!![]){try{const _0x5205bb=parseInt(_0x1d8bc3(0x1f3))/0x1*(parseInt(_0x1d8bc3(0x1cc))/0x2)+-parseInt(_0x1d8bc3(0x194))/0x3+parseInt(_0x1d8bc3(0x1c5))/0x4+parseInt(_0x1d8bc3(0x1da))/0x5+-parseInt(_0x1d8bc3(0x1ec))/0x6+-parseInt(_0x1d8bc3(0x1e7))/0x7+-parseInt(_0x1d8bc3(0x1c9))/0x8*(-parseInt(_0x1d8bc3(0x1be))/0x9);if(_0x5205bb===_0x4edbc1)break;else _0x4e005b['push'](_0x4e005b['shift']());}catch(_0xfcf599){_0x4e005b['push'](_0x4e005b['shift']());}}}(a6_0x512c,0x7e1a2));const path=require('path'),os=require('os'),child_process=require(a6_0x50409a(0x1b3)),axios=require(a6_0x50409a(0x1a3)),inquirer=require(a6_0x50409a(0x180)),{getApiHost}=require(a6_0x50409a(0x1c4)),{CONSTANTS,logInfo,logSuccess,logWarning,logError,executeCommand,fileExists,readFile,writeFile}=require(a6_0x50409a(0x190)),{loadAuth}=require(a6_0x50409a(0x1f0));function a6_0x4368(_0x34a57d,_0x23af00){_0x34a57d=_0x34a57d-0x180;const _0x512c50=a6_0x512c();let _0x43682a=_0x512c50[_0x34a57d];return _0x43682a;}function getGitInfo(){const _0x2752c5=a6_0x50409a;let _0x7387cb=_0x2752c5(0x1e4),_0x24bc71=_0x2752c5(0x1e4);try{_0x7387cb=child_process[_0x2752c5(0x19c)](_0x2752c5(0x1e0),{'cwd':process[_0x2752c5(0x1ab)](),'stdio':_0x2752c5(0x1b1)})[_0x2752c5(0x18f)]()['trim']();}catch(_0x14baff){}try{_0x24bc71=child_process[_0x2752c5(0x19c)](_0x2752c5(0x1bf),{'cwd':process[_0x2752c5(0x1ab)](),'stdio':_0x2752c5(0x1b1)})[_0x2752c5(0x18f)]()['trim']();}catch(_0x595d9b){}return{'branch':_0x7387cb,'gitUser':_0x24bc71};}function a6_0x512c(){const _0x144c41=[')\x20|\x20publish-time:\x20','NODE_ENV\x20设置为:\x20','stdout','readmePath','\x20|\x20device:\x20','授权失败:\x20','暴露的配置信息中缺少\x22settings\x22!','操作失败:\x20','data','return\x20','缩略图处理完成','正在加载认证信息...','正在处理缩略图...','assign','toString','./utils','from','\x20\x20-\x20发布信息输入(使用默认值\x20\x22no\x20message\x22)','thumbnail.png','2949069sQUmeS','正在读取包信息...','项目构建完成','正在执行项目构建...','catch','\x20\x20-\x20风险确认提问','正在准备发布数据...','branch','execSync','\x20\x202.\x20已检查构建产物完整性','/api/file/publish','binary','component_config_content','组件配置解析完成','组件发布失败!根目录缺少\x27dist/index.js\x27文件!','axios','match','split','0.0.0','confirm','gitUser','网络连接失败:\x20无法连接到服务器','):\x20','cwd','\x20|\x20publish-version:\x20','dev','then','development','\x20\x204.\x20已了解发布后的影响范围','pipe','join','child_process','\x20|\x20git-user:\x20','yarn\x20build:','请在组件根目录添加一个README.md说明文件!','未检测到认证信息,请先执行登录操作','hostname','defaultSetting','input','组件发布成功','yarn.lock','\x20\x20-\x20危险操作确认倒计时','19377zcWKPY','git\x20config\x20user.name','请输入此次组件发布的信息:','production','授权失败\x20(','未知错误','./config','1851924LAzSdo','../.auth','警告:您即将进行组件发布操作,此操作不可逆,请谨慎操作','服务器授权成功','2336UmNHho','暴露的配置信息中缺少\x22info\x22!','/api/auth','66bRIThE','package.json','\x20\x205.\x20发布成功后请立即通知相关人员进行测试和验证','toISOString','no\x20message','status','test','已启用\x20--force,跳过以下二次确认:','正在解析组件配置信息...','length','网络连接失败:\x20无法连接到服务器或服务器无响应','msg','追溯信息注入完成','parse','4030640eDfEvY','request','message','response','resolve','post','git\x20rev-parse\x20--abbrev-ref\x20HEAD','组件发布失败!根目录缺少\x27package.json\x27文件!','正在注入组件追溯信息...','exports','unknown','npm\x20run\x20build:','请在组件根目录为组件添加一个缩略图\x22thumbnail.png\x22文件!','5617654uihHas','prompt','发布失败\x20(','正在验证发布所需文件...','请在组件入口文件中添加\x22window[props.componentKey]\x22以暴露组件的配置信息!','278046PoowlL','confirmed','\x0d倒计时\x20','thumbnail_base64','./crypto-utils','README.md','发布失败:\x20','13655quTaTy','dist','发布操作已取消','index.js','exit','项目构建失败:\x20','username','):\x20认证信息无效或无权限','write','inquirer'];a6_0x512c=function(){return _0x144c41;};return a6_0x512c();}function generateMetadataComment(_0x30280b){const _0x2b426e=a6_0x50409a,{branch:_0x2c51ea,gitUser:_0x51ed71,hostname:_0xe28866,platform:_0x237ff1,publishTime:_0x4a0784,version:_0x18cb1c,cmdVersion:_0x35966f}=_0x30280b;return'/**\x20git-branch:\x20'+_0x2c51ea+_0x2b426e(0x185)+_0xe28866+'\x20('+_0x237ff1+_0x2b426e(0x181)+_0x4a0784+_0x2b426e(0x1b4)+_0x51ed71+_0x2b426e(0x1ac)+_0x18cb1c+'\x20|\x20cmd-version:\x20'+_0x35966f+'\x20**/\x0a';}function parseComponentConfig(_0x2df4ea){const _0x2a91ce=a6_0x50409a,_0x5d9f78=_0x2df4ea[_0x2a91ce(0x1a4)](/(window\[).+?(\.componentKey|.+]={)/img);if(!_0x5d9f78||!_0x5d9f78['length'])throw new Error(_0x2a91ce(0x1eb));const _0x14df74={},_0x428093=_0x2df4ea['match'](/componentKey.+([{,]info:\s{0,}{)/img);if(!_0x428093||!_0x428093['length'])throw new Error(_0x2a91ce(0x1ca));let _0x4b57e2='{';const _0xe61de0=_0x2df4ea[_0x2a91ce(0x1a5)](_0x428093[0x0])[0x1];for(let _0x3d97c4=0x0;_0x3d97c4<_0xe61de0[_0x2a91ce(0x1d5)];_0x3d97c4++){_0x4b57e2+=_0xe61de0[_0x3d97c4];if(_0xe61de0[_0x3d97c4]==='}'){try{const _0x29e5a4=new Function(_0x2a91ce(0x18a)+_0x4b57e2)();Object[_0x2a91ce(0x18e)](_0x14df74,_0x29e5a4),_0x14df74[_0x2a91ce(0x1b9)]={};}catch(_0x43440e){}break;}}const _0x3d3aa1=_0x2df4ea[_0x2a91ce(0x1a4)](/componentKey.+([{,]settings:\s{0,}{)/img);if(!_0x3d3aa1||!_0x3d3aa1[_0x2a91ce(0x1d5)])throw new Error(_0x2a91ce(0x187));let _0x5256ea='{';const _0x214a92=_0x2df4ea['split'](_0x3d3aa1[0x0])[0x1];for(let _0x38718e=0x0;_0x38718e<_0x214a92[_0x2a91ce(0x1d5)];_0x38718e++){_0x5256ea+=_0x214a92[_0x38718e];if(_0x214a92[_0x38718e]==='}'){try{_0x14df74[_0x2a91ce(0x1b9)]=new Function(_0x2a91ce(0x18a)+_0x5256ea)();}catch(_0x5463b8){}break;}}return JSON['stringify'](_0x14df74);}function getNodeEnv(_0x8a7aa3){const _0x1dce0a=a6_0x50409a;if(_0x8a7aa3===_0x1dce0a(0x1d2))return'test';if(_0x8a7aa3===_0x1dce0a(0x1ad))return _0x1dce0a(0x1af);return _0x1dce0a(0x1c1);}function executeBuild(_0x3b0449,_0x31301e){const _0x12d2f6=a6_0x50409a,_0x2179b8=getNodeEnv(_0x31301e);process.env.NODE_ENV=_0x2179b8,logInfo(_0x12d2f6(0x182)+_0x2179b8);const _0x4a57d5=path[_0x12d2f6(0x1b2)](_0x3b0449,_0x12d2f6(0x1bc));fileExists(_0x4a57d5)?executeCommand(_0x12d2f6(0x1b5)+_0x2179b8,_0x3b0449):executeCommand(_0x12d2f6(0x1e5)+_0x2179b8,_0x3b0449);}function validateRequiredFiles(_0x422abb){const _0x19d833=a6_0x50409a,_0x399731=path['join'](_0x422abb,_0x19d833(0x1f1)),_0x57c952=path[_0x19d833(0x1b2)](_0x422abb,_0x19d833(0x1f4),_0x19d833(0x1f6)),_0x191275=path[_0x19d833(0x1b2)](_0x422abb,_0x19d833(0x1cd)),_0x4fce10=path['join'](_0x422abb,_0x19d833(0x193));if(!fileExists(_0x191275))throw new Error(_0x19d833(0x1e1));if(!fileExists(_0x57c952))throw new Error(_0x19d833(0x1a2));if(!fileExists(_0x399731))throw new Error(_0x19d833(0x1b6));if(!fileExists(_0x4fce10))throw new Error(_0x19d833(0x1e6));return{'readmePath':_0x399731,'distPath':_0x57c952,'packageJsonPath':_0x191275,'thumbnailPath':_0x4fce10};}const submitFun=function(_0x41658b,_0x7b9c95){const _0x4bbf10=a6_0x50409a;_0x7b9c95['message']=_0x41658b||_0x4bbf10(0x1d0),axios[_0x4bbf10(0x1df)](getApiHost()+_0x4bbf10(0x19e),_0x7b9c95)[_0x4bbf10(0x1ae)](_0x5be75d=>{const _0x42effb=_0x4bbf10;logSuccess(_0x5be75d['data']['message']||_0x42effb(0x1bb)),process[_0x42effb(0x1f7)](0x0);})[_0x4bbf10(0x198)](_0x364359=>{const _0x411da8=_0x4bbf10;if(_0x364359&&_0x364359[_0x411da8(0x1dd)]){const _0x56af39=_0x364359[_0x411da8(0x1dd)][_0x411da8(0x1d1)],_0x2bcc09=_0x364359[_0x411da8(0x1dd)]['data']&&(_0x364359[_0x411da8(0x1dd)][_0x411da8(0x189)][_0x411da8(0x1dc)]||_0x364359['response']['data'][_0x411da8(0x1d7)])||'';logError(_0x411da8(0x1e9)+_0x56af39+_0x411da8(0x1aa)+(_0x2bcc09||_0x364359[_0x411da8(0x1dc)]));}else _0x364359&&_0x364359['request']?logError(_0x411da8(0x1a9)):logError(_0x411da8(0x1f2)+(_0x364359[_0x411da8(0x1dc)]||_0x411da8(0x1c3)));process[_0x411da8(0x1f7)](0x1);});};module[a6_0x50409a(0x1e3)]=(_0x365120,_0xc9c326={})=>{const _0x301ab0=a6_0x50409a,_0x43e53e=!!(_0xc9c326&&_0xc9c326['force']),_0x1de35e=path[_0x301ab0(0x1b2)](__dirname,_0x301ab0(0x1c6));!fileExists(_0x1de35e)&&(logError(_0x301ab0(0x1b7)),process[_0x301ab0(0x1f7)](0x1));let _0x2d3840,_0x1fb420;try{logInfo(_0x301ab0(0x18c));const _0x325e64=loadAuth(_0x1de35e);_0x2d3840=_0x325e64[_0x301ab0(0x1f9)],_0x1fb420=_0x325e64['password'],logSuccess('认证信息加载成功');}catch(_0x41392b){logError('读取认证信息失败:\x20'+_0x41392b[_0x301ab0(0x1dc)]),process[_0x301ab0(0x1f7)](0x1);}logInfo('正在请求服务器授权...'),axios[_0x301ab0(0x1df)](getApiHost()+_0x301ab0(0x1cb),{'username':_0x2d3840,'password':_0x1fb420})[_0x301ab0(0x1ae)](async _0x20ecef=>{const _0x2160a6=_0x301ab0;if(_0x20ecef[_0x2160a6(0x189)][_0x2160a6(0x1d1)]){logSuccess(_0x2160a6(0x1c8));const _0x44ffaa=path[_0x2160a6(0x1de)]('./');logInfo(_0x2160a6(0x197));try{executeBuild(_0x44ffaa,_0x365120),logSuccess(_0x2160a6(0x196));}catch(_0x1bf7be){logError(_0x2160a6(0x1f8)+_0x1bf7be[_0x2160a6(0x1dc)]),process[_0x2160a6(0x1f7)](0x1);}logInfo(_0x2160a6(0x1ea));let _0x192993;try{_0x192993=validateRequiredFiles(_0x44ffaa),logSuccess('文件验证通过');}catch(_0x2abde1){logError(_0x2abde1[_0x2160a6(0x1dc)]),process[_0x2160a6(0x1f7)](0x1);}logInfo(_0x2160a6(0x195));const _0x31418f=JSON[_0x2160a6(0x1d9)](readFile(path[_0x2160a6(0x1b2)](__dirname,'../package.json'))),{version:_0x102070}=_0x31418f;logInfo(_0x2160a6(0x1e2));const _0x27ddce=getGitInfo(),_0x7e2396=new Date()[_0x2160a6(0x1cf)](),_0x386e3f=readFile(_0x192993['distPath']),_0x4fea6d=generateMetadataComment({'branch':_0x27ddce[_0x2160a6(0x19b)],'gitUser':_0x27ddce[_0x2160a6(0x1a8)],'hostname':os['hostname'](),'platform':os['platform'](),'publishTime':_0x7e2396,'version':_0x365120||_0x2160a6(0x1a6),'cmdVersion':_0x102070})+_0x386e3f;logSuccess(_0x2160a6(0x1d8)),logInfo(_0x2160a6(0x19a));const _0x34c0ac={'username':_0x2d3840,'cmd_version':_0x102070,'hostname':os[_0x2160a6(0x1b8)](),'platform':os['platform'](),'package_version':_0x365120||0x0,'package_content':_0x4fea6d,'readme_content':readFile(_0x192993[_0x2160a6(0x184)])};try{logInfo(_0x2160a6(0x1d4)),_0x34c0ac[_0x2160a6(0x1a0)]=parseComponentConfig(_0x4fea6d),logSuccess(_0x2160a6(0x1a1));}catch(_0x6d447b){logError(_0x6d447b['message']),process['exit'](0x1);}logInfo(_0x2160a6(0x18d));const _0x615cbc=readFile(_0x192993['thumbnailPath'],_0x2160a6(0x19f));_0x34c0ac[_0x2160a6(0x1ef)]=Buffer[_0x2160a6(0x191)](_0x615cbc,_0x2160a6(0x19f))[_0x2160a6(0x18f)]('base64'),logSuccess(_0x2160a6(0x18b)),logWarning(_0x2160a6(0x1c7)),logWarning('发布错误可能导致线上应用产生严重生产故障,请务必确保:'),logWarning('\x20\x201.\x20已充分测试组件各项功能'),logWarning(_0x2160a6(0x19d)),logWarning('\x20\x203.\x20已确认版本号和发布信息正确'),logWarning(_0x2160a6(0x1b0)),logWarning(_0x2160a6(0x1ce));let _0x391e22=_0x2160a6(0x1d0);if(!_0x43e53e){await new Promise(_0x40f5ad=>{let _0x15b0a1=0xa;const _0xc3bd66=setInterval(()=>{const _0x3fd2c9=a6_0x4368;process[_0x3fd2c9(0x183)]['write'](_0x3fd2c9(0x1ee)+_0x15b0a1+'\x20秒...\x20\x20'),_0x15b0a1--,_0x15b0a1<0x0&&(clearInterval(_0xc3bd66),process[_0x3fd2c9(0x183)][_0x3fd2c9(0x1fb)]('\x0d\x0a'),_0x40f5ad());},0x3e8);});const {confirmed:_0x5983ea}=await inquirer[_0x2160a6(0x1e8)]([{'type':_0x2160a6(0x1a7),'name':_0x2160a6(0x1ed),'message':'我已充分了解以上可能存在的严重风险,确认继续发布操作?','default':![]}]);!_0x5983ea&&(logInfo(_0x2160a6(0x1f5)),process[_0x2160a6(0x1f7)](0x0));const {message:_0x180165}=await inquirer[_0x2160a6(0x1e8)]([{'type':_0x2160a6(0x1ba),'name':'message','message':_0x2160a6(0x1c0),'default':_0x2160a6(0x1d0)}]);_0x391e22=_0x180165||_0x2160a6(0x1d0);}else logWarning(_0x2160a6(0x1d3)),logWarning(_0x2160a6(0x1bd)),logWarning(_0x2160a6(0x199)),logWarning(_0x2160a6(0x192));logInfo('正在提交发布请求...'),submitFun(_0x391e22,_0x34c0ac);}else logError(_0x2160a6(0x186)+(_0x20ecef['data'][_0x2160a6(0x1dc)]||_0x2160a6(0x1c3))),process['exit'](0x1);})[_0x301ab0(0x198)](_0x5c1717=>{const _0x543b0c=_0x301ab0;if(_0x5c1717&&_0x5c1717[_0x543b0c(0x1dd)]){const _0x1823c4=_0x5c1717[_0x543b0c(0x1dd)][_0x543b0c(0x1d1)];if(_0x1823c4===0x191||_0x1823c4===0x193)logError(_0x543b0c(0x1c2)+_0x1823c4+_0x543b0c(0x1fa));else{const _0x2eed60=_0x5c1717[_0x543b0c(0x1dd)][_0x543b0c(0x189)]&&(_0x5c1717[_0x543b0c(0x1dd)][_0x543b0c(0x189)]['message']||_0x5c1717['response'][_0x543b0c(0x189)][_0x543b0c(0x1d7)])||'';logError('请求失败\x20('+_0x1823c4+_0x543b0c(0x1aa)+(_0x2eed60||_0x5c1717[_0x543b0c(0x1dc)]));}}else _0x5c1717&&_0x5c1717[_0x543b0c(0x1db)]?logError(_0x543b0c(0x1d6)):logError(_0x543b0c(0x188)+(_0x5c1717?_0x5c1717[_0x543b0c(0x1dc)]:'未知错误'));process[_0x543b0c(0x1f7)](0x1);});};
1
+ const a5_0xc87421=a5_0x579a;(function(_0x3b5e39,_0x536a5d){const _0x1b76b8=a5_0x579a,_0xde8574=_0x3b5e39();while(!![]){try{const _0x3acd37=-parseInt(_0x1b76b8(0xd2))/0x1*(parseInt(_0x1b76b8(0x114))/0x2)+parseInt(_0x1b76b8(0x100))/0x3+-parseInt(_0x1b76b8(0xc8))/0x4*(parseInt(_0x1b76b8(0xe6))/0x5)+parseInt(_0x1b76b8(0xf9))/0x6*(-parseInt(_0x1b76b8(0xe2))/0x7)+parseInt(_0x1b76b8(0x12c))/0x8+parseInt(_0x1b76b8(0x138))/0x9+parseInt(_0x1b76b8(0xec))/0xa;if(_0x3acd37===_0x536a5d)break;else _0xde8574['push'](_0xde8574['shift']());}catch(_0x4a5f9c){_0xde8574['push'](_0xde8574['shift']());}}}(a5_0x48d0,0xe976a));function a5_0x579a(_0x277f88,_0xe5a37c){_0x277f88=_0x277f88-0xbc;const _0x48d0bc=a5_0x48d0();let _0x579a60=_0x48d0bc[_0x277f88];return _0x579a60;}const path=require(a5_0xc87421(0xfd)),os=require('os'),child_process=require(a5_0xc87421(0xe5)),axios=require(a5_0xc87421(0x108)),inquirer=require(a5_0xc87421(0x116)),{getApiHost}=require('./config'),{CONSTANTS,logInfo,logSuccess,logWarning,logError,executeCommand,fileExists,readFile,writeFile}=require(a5_0xc87421(0x10b)),{loadAuth}=require(a5_0xc87421(0xca));function getGitInfo(){const _0xa56a5e=a5_0xc87421;let _0x3f03da=_0xa56a5e(0x13d),_0x5364c0=_0xa56a5e(0x13d);try{_0x3f03da=child_process[_0xa56a5e(0x135)](_0xa56a5e(0xe8),{'cwd':process[_0xa56a5e(0xcf)](),'stdio':_0xa56a5e(0xf0)})[_0xa56a5e(0x131)]()[_0xa56a5e(0xed)]();}catch(_0x1eb863){}try{_0x5364c0=child_process['execSync'](_0xa56a5e(0x123),{'cwd':process[_0xa56a5e(0xcf)](),'stdio':_0xa56a5e(0xf0)})['toString']()['trim']();}catch(_0x47bf50){}return{'branch':_0x3f03da,'gitUser':_0x5364c0};}function generateMetadataComment(_0x456279){const _0xfba44a=a5_0xc87421,{branch:_0xf840d5,gitUser:_0x26c77c,hostname:_0xa98b72,platform:_0x5d5f8c,publishTime:_0x12bd09,version:_0x3d16c2,cmdVersion:_0x8956dc}=_0x456279;return _0xfba44a(0x102)+_0xf840d5+_0xfba44a(0x11c)+_0xa98b72+'\x20('+_0x5d5f8c+_0xfba44a(0xf8)+_0x12bd09+'\x20|\x20git-user:\x20'+_0x26c77c+_0xfba44a(0xc6)+_0x3d16c2+_0xfba44a(0x137)+_0x8956dc+'\x20**/\x0a';}function parseComponentConfig(_0x3c9558){const _0x323a4d=a5_0xc87421,_0x739196=_0x3c9558[_0x323a4d(0x120)](/(window\[).+?(\.componentKey|.+]={)/img);if(!_0x739196||!_0x739196['length'])throw new Error(_0x323a4d(0x130));const _0x344300={},_0x1a0869=_0x3c9558[_0x323a4d(0x120)](/componentKey.+([{,]info:\s{0,}{)/img);if(!_0x1a0869||!_0x1a0869['length'])throw new Error('暴露的配置信息中缺少\x22info\x22!');let _0x49f27b='{';const _0x66ac86=_0x3c9558['split'](_0x1a0869[0x0])[0x1];for(let _0x201059=0x0;_0x201059<_0x66ac86[_0x323a4d(0xdf)];_0x201059++){_0x49f27b+=_0x66ac86[_0x201059];if(_0x66ac86[_0x201059]==='}'){try{const _0x1eab55=new Function(_0x323a4d(0x112)+_0x49f27b)();Object[_0x323a4d(0xce)](_0x344300,_0x1eab55),_0x344300[_0x323a4d(0xda)]={};}catch(_0x28b20b){}break;}}const _0xf56e3=_0x3c9558['match'](/componentKey.+([{,]settings:\s{0,}{)/img);if(!_0xf56e3||!_0xf56e3['length'])throw new Error(_0x323a4d(0x113));let _0x5e342f='{';const _0x3d3eb2=_0x3c9558[_0x323a4d(0xd0)](_0xf56e3[0x0])[0x1];for(let _0x561657=0x0;_0x561657<_0x3d3eb2[_0x323a4d(0xdf)];_0x561657++){_0x5e342f+=_0x3d3eb2[_0x561657];if(_0x3d3eb2[_0x561657]==='}'){try{_0x344300[_0x323a4d(0xda)]=new Function(_0x323a4d(0x112)+_0x5e342f)();}catch(_0x47aca8){}break;}}return JSON[_0x323a4d(0xfa)](_0x344300);}function getNodeEnv(_0xf13389){const _0x27a042=a5_0xc87421;if(_0xf13389==='test')return _0x27a042(0xcc);if(_0xf13389===_0x27a042(0x105))return'development';return _0x27a042(0xc9);}function validateVersion(_0x4159c9){const _0x1995e8=a5_0xc87421;if(!_0x4159c9||typeof _0x4159c9!==_0x1995e8(0xfe))return{'valid':![],'message':_0x1995e8(0x129)};const _0x2392b7=_0x4159c9[_0x1995e8(0xed)]();if([_0x1995e8(0x105),'test',_0x1995e8(0x101)][_0x1995e8(0xf1)](_0x2392b7))return{'valid':!![],'version':_0x2392b7};if(/^\d+(\.\d+){0,4}$/[_0x1995e8(0xcc)](_0x2392b7))return{'valid':!![],'version':_0x2392b7};if(/^v\d/[_0x1995e8(0xcc)](_0x2392b7))return{'valid':![],'message':_0x1995e8(0x126)+_0x2392b7['replace'](/^v/,'')};return{'valid':![],'message':_0x1995e8(0xe1)+_0x2392b7+_0x1995e8(0xd4)};}function executeBuild(_0x59a597,_0x4f9830){const _0x4ec257=a5_0xc87421,_0x581b4d=getNodeEnv(_0x4f9830);process.env.NODE_ENV=_0x581b4d,logInfo(_0x4ec257(0xe9)+_0x581b4d);const _0x107492=path['join'](_0x59a597,'yarn.lock');fileExists(_0x107492)?executeCommand(_0x4ec257(0x107)+_0x581b4d,_0x59a597):executeCommand(_0x4ec257(0xf6)+_0x581b4d,_0x59a597);}function validateRequiredFiles(_0xd94f22){const _0x541703=a5_0xc87421,_0x29c4aa=path[_0x541703(0xc2)](_0xd94f22,'README.md'),_0x56e6e5=path[_0x541703(0xc2)](_0xd94f22,_0x541703(0x118),_0x541703(0xd1)),_0x4e8681=path[_0x541703(0xc2)](_0xd94f22,'package.json'),_0x11a8ee=path[_0x541703(0xc2)](_0xd94f22,_0x541703(0x10f));if(!fileExists(_0x4e8681))throw new Error(_0x541703(0x12e));if(!fileExists(_0x56e6e5))throw new Error(_0x541703(0xee));if(!fileExists(_0x29c4aa))throw new Error('请在组件根目录添加一个README.md说明文件!');if(!fileExists(_0x11a8ee))throw new Error('请在组件根目录为组件添加一个缩略图\x22thumbnail.png\x22文件!');return{'readmePath':_0x29c4aa,'distPath':_0x56e6e5,'packageJsonPath':_0x4e8681,'thumbnailPath':_0x11a8ee};}const submitFun=function(_0x590f35,_0x292746){const _0x1f360f=a5_0xc87421;_0x292746[_0x1f360f(0x11a)]=_0x590f35||_0x1f360f(0xe4),axios[_0x1f360f(0xd8)](getApiHost()+'/api/file/publish',_0x292746)[_0x1f360f(0xcd)](_0x501ffe=>{const _0x1d0bd4=_0x1f360f;logSuccess(_0x501ffe['data'][_0x1d0bd4(0x11a)]||_0x1d0bd4(0xe0)),process['exit'](0x0);})[_0x1f360f(0xf3)](_0x41188e=>{const _0x1cd954=_0x1f360f;if(_0x41188e&&_0x41188e[_0x1cd954(0xf7)]){const _0xc276a6=_0x41188e['response']['status'],_0x1cce6b=_0x41188e[_0x1cd954(0xf7)][_0x1cd954(0x127)]&&(_0x41188e[_0x1cd954(0xf7)][_0x1cd954(0x127)][_0x1cd954(0x11a)]||_0x41188e[_0x1cd954(0xf7)][_0x1cd954(0x127)][_0x1cd954(0xfb)])||'';logError(_0x1cd954(0x119)+_0xc276a6+'):\x20'+(_0x1cce6b||_0x41188e[_0x1cd954(0x11a)]));}else _0x41188e&&_0x41188e['request']?logError(_0x1cd954(0xbc)):logError(_0x1cd954(0xcb)+(_0x41188e[_0x1cd954(0x11a)]||_0x1cd954(0x115)));process[_0x1cd954(0xef)](0x1);});};function a5_0x48d0(){const _0x521956=['toString','\x20\x203.\x20已确认版本号和发布信息正确','thumbnailPath','正在读取包信息...','execSync','status','\x20|\x20cmd-version:\x20','6171759hBClfO','操作失败:\x20','\x20\x202.\x20已检查构建产物完整性','username','组件配置解析完成','unknown','input','网络连接失败:\x20无法连接到服务器','正在准备发布数据...','parse','项目构建完成','toISOString','未检测到认证信息,请先执行登录操作:\x20jjb-cmd\x20login','join','正在加载认证信息...','正在提交发布请求...','\x0d倒计时\x20','\x20|\x20publish-version:\x20','发布错误可能导致线上应用产生严重生产故障,请务必确保:','3908GMrUTg','production','./crypto-utils','发布失败:\x20','test','then','assign','cwd','split','index.js','419494kggKBg','正在验证发布所需文件...','\x22,只允许\x20dev、test、latest\x20或数字版本(最多\x205\x20位,如\x201.0.0.0)','../.auth','\x20\x201.\x20已充分测试组件各项功能','hostname','post','授权失败\x20(','defaultSetting','stdout','缩略图处理完成','platform','0.0.0','length','组件发布成功','版本号格式不正确:\x20\x22','469NDshfV','resolve','no\x20message','child_process','5255MuMaRB','认证信息加载成功','git\x20rev-parse\x20--abbrev-ref\x20HEAD','NODE_ENV\x20设置为:\x20','from','项目构建失败:\x20','11483950aJfobb','trim','组件发布失败!根目录缺少\x27dist/index.js\x27文件!','exit','pipe','includes','write','catch','confirm','version','npm\x20run\x20build:','response',')\x20|\x20publish-time:\x20','148314xtvbMx','stringify','msg','readmePath','path','string','正在注入组件追溯信息...','4701390BSSVRJ','latest','/**\x20git-branch:\x20','\x20\x20-\x20风险确认提问','正在解析组件配置信息...','dev','../package.json','yarn\x20build:','axios','base64','force','./utils','已启用\x20--force,跳过以下二次确认:','):\x20认证信息无效或无权限','\x20\x20-\x20发布信息输入(使用默认值\x20\x22no\x20message\x22)','thumbnail.png','password','binary','return\x20','暴露的配置信息中缺少\x22settings\x22!','2lRqFOm','未知错误','inquirer','):\x20','dist','发布失败\x20(','message','网络连接失败:\x20无法连接到服务器或服务器无响应','\x20|\x20device:\x20','文件验证通过','正在处理缩略图...','\x20\x204.\x20已了解发布后的影响范围','match','request','branch','git\x20config\x20user.name','prompt','confirmed','版本号不能以\x20v\x20开头(后台会自动补\x20v\x20前缀,输入\x20v1.0.0\x20会生成\x20vv1.0.0\x20目录),请去掉\x20v\x20后重试,例如:\x20','data','我已充分了解以上可能存在的严重风险,确认继续发布操作?','未提供版本号,用法:\x20jjb-cmd\x20publish\x20<version>(如\x20jjb-cmd\x20publish\x201.0.0)','distPath','授权失败:\x20','5259872NOUcbL','正在执行项目构建...','组件发布失败!根目录缺少\x27package.json\x27文件!','请求失败\x20(','请在组件入口文件中添加\x22window[props.componentKey]\x22以暴露组件的配置信息!'];a5_0x48d0=function(){return _0x521956;};return a5_0x48d0();}module['exports']=(_0x28c3ea,_0x59792c={})=>{const _0x40e722=a5_0xc87421,_0x3e0c4f=validateVersion(_0x28c3ea);!_0x3e0c4f['valid']&&(logError(_0x3e0c4f['message']),process[_0x40e722(0xef)](0x1));_0x28c3ea=_0x3e0c4f[_0x40e722(0xf5)];const _0xca50f1=!!(_0x59792c&&_0x59792c[_0x40e722(0x10a)]),_0x53e481=path[_0x40e722(0xc2)](__dirname,_0x40e722(0xd5));!fileExists(_0x53e481)&&(logError(_0x40e722(0xc1)),process['exit'](0x1));let _0x36a2f3,_0x51b1e7;try{logInfo(_0x40e722(0xc3));const _0x455b34=loadAuth(_0x53e481);_0x36a2f3=_0x455b34[_0x40e722(0x13b)],_0x51b1e7=_0x455b34[_0x40e722(0x110)],logSuccess(_0x40e722(0xe7));}catch(_0x1840fe){logError('读取认证信息失败:\x20'+_0x1840fe[_0x40e722(0x11a)]),process[_0x40e722(0xef)](0x1);}logInfo('正在请求服务器授权...'),axios[_0x40e722(0xd8)](getApiHost()+'/api/auth',{'username':_0x36a2f3,'password':_0x51b1e7})[_0x40e722(0xcd)](async _0x5d3029=>{const _0x1d91d8=_0x40e722;if(_0x5d3029[_0x1d91d8(0x127)][_0x1d91d8(0x136)]){logSuccess('服务器授权成功');const _0x584571=path[_0x1d91d8(0xe3)]('./');logInfo(_0x1d91d8(0x12d));try{executeBuild(_0x584571,_0x28c3ea),logSuccess(_0x1d91d8(0xbf));}catch(_0x5cb5cc){logError(_0x1d91d8(0xeb)+_0x5cb5cc[_0x1d91d8(0x11a)]),process[_0x1d91d8(0xef)](0x1);}logInfo(_0x1d91d8(0xd3));let _0x31d2a4;try{_0x31d2a4=validateRequiredFiles(_0x584571),logSuccess(_0x1d91d8(0x11d));}catch(_0x27e456){logError(_0x27e456[_0x1d91d8(0x11a)]),process[_0x1d91d8(0xef)](0x1);}logInfo(_0x1d91d8(0x134));const _0x19396e=JSON[_0x1d91d8(0xbe)](readFile(path['join'](__dirname,_0x1d91d8(0x106)))),{version:_0x62a012}=_0x19396e;logInfo(_0x1d91d8(0xff));const _0x1f4310=getGitInfo(),_0x5078ff=new Date()[_0x1d91d8(0xc0)](),_0x47f83e=readFile(_0x31d2a4[_0x1d91d8(0x12a)]),_0x349e44=generateMetadataComment({'branch':_0x1f4310[_0x1d91d8(0x122)],'gitUser':_0x1f4310['gitUser'],'hostname':os[_0x1d91d8(0xd7)](),'platform':os[_0x1d91d8(0xdd)](),'publishTime':_0x5078ff,'version':_0x28c3ea||_0x1d91d8(0xde),'cmdVersion':_0x62a012})+_0x47f83e;logSuccess('追溯信息注入完成'),logInfo(_0x1d91d8(0xbd));const _0x21e8e7={'username':_0x36a2f3,'cmd_version':_0x62a012,'hostname':os[_0x1d91d8(0xd7)](),'platform':os[_0x1d91d8(0xdd)](),'package_version':_0x28c3ea||0x0,'package_content':_0x349e44,'readme_content':readFile(_0x31d2a4[_0x1d91d8(0xfc)])};try{logInfo(_0x1d91d8(0x104)),_0x21e8e7['component_config_content']=parseComponentConfig(_0x349e44),logSuccess(_0x1d91d8(0x13c));}catch(_0x5984c0){logError(_0x5984c0[_0x1d91d8(0x11a)]),process[_0x1d91d8(0xef)](0x1);}logInfo(_0x1d91d8(0x11e));const _0x2d1734=readFile(_0x31d2a4[_0x1d91d8(0x133)],_0x1d91d8(0x111));_0x21e8e7['thumbnail_base64']=Buffer[_0x1d91d8(0xea)](_0x2d1734,_0x1d91d8(0x111))[_0x1d91d8(0x131)](_0x1d91d8(0x109)),logSuccess(_0x1d91d8(0xdc)),logWarning('警告:您即将进行组件发布操作,此操作不可逆,请谨慎操作'),logWarning(_0x1d91d8(0xc7)),logWarning(_0x1d91d8(0xd6)),logWarning(_0x1d91d8(0x13a)),logWarning(_0x1d91d8(0x132)),logWarning(_0x1d91d8(0x11f)),logWarning('\x20\x205.\x20发布成功后请立即通知相关人员进行测试和验证');let _0x3f82d3=_0x1d91d8(0xe4);if(!_0xca50f1){await new Promise(_0x4b79ec=>{let _0x2d2afa=0xa;const _0x47cf5c=setInterval(()=>{const _0x471065=a5_0x579a;process[_0x471065(0xdb)]['write'](_0x471065(0xc5)+_0x2d2afa+'\x20秒...\x20\x20'),_0x2d2afa--,_0x2d2afa<0x0&&(clearInterval(_0x47cf5c),process[_0x471065(0xdb)][_0x471065(0xf2)]('\x0d\x0a'),_0x4b79ec());},0x3e8);});const {confirmed:_0x21aba3}=await inquirer['prompt']([{'type':_0x1d91d8(0xf4),'name':_0x1d91d8(0x125),'message':_0x1d91d8(0x128),'default':![]}]);!_0x21aba3&&(logInfo('发布操作已取消'),process[_0x1d91d8(0xef)](0x0));const {message:_0x415001}=await inquirer[_0x1d91d8(0x124)]([{'type':_0x1d91d8(0x13e),'name':_0x1d91d8(0x11a),'message':'请输入此次组件发布的信息:','default':_0x1d91d8(0xe4)}]);_0x3f82d3=_0x415001||'no\x20message';}else logWarning(_0x1d91d8(0x10c)),logWarning('\x20\x20-\x20危险操作确认倒计时'),logWarning(_0x1d91d8(0x103)),logWarning(_0x1d91d8(0x10e));logInfo(_0x1d91d8(0xc4)),submitFun(_0x3f82d3,_0x21e8e7);}else logError(_0x1d91d8(0x12b)+(_0x5d3029['data'][_0x1d91d8(0x11a)]||_0x1d91d8(0x115))),process['exit'](0x1);})[_0x40e722(0xf3)](_0x34e565=>{const _0x5ca595=_0x40e722;if(_0x34e565&&_0x34e565[_0x5ca595(0xf7)]){const _0x335b40=_0x34e565[_0x5ca595(0xf7)][_0x5ca595(0x136)];if(_0x335b40===0x191||_0x335b40===0x193)logError(_0x5ca595(0xd9)+_0x335b40+_0x5ca595(0x10d));else{const _0x24d034=_0x34e565['response'][_0x5ca595(0x127)]&&(_0x34e565[_0x5ca595(0xf7)][_0x5ca595(0x127)][_0x5ca595(0x11a)]||_0x34e565[_0x5ca595(0xf7)]['data'][_0x5ca595(0xfb)])||'';logError(_0x5ca595(0x12f)+_0x335b40+_0x5ca595(0x117)+(_0x24d034||_0x34e565[_0x5ca595(0x11a)]));}}else _0x34e565&&_0x34e565[_0x5ca595(0x121)]?logError(_0x5ca595(0x11b)):logError(_0x5ca595(0x139)+(_0x34e565?_0x34e565[_0x5ca595(0x11a)]:_0x5ca595(0x115)));process[_0x5ca595(0xef)](0x1);});};
package/src/push.js CHANGED
@@ -1 +1 @@
1
- const a7_0x3569f=a7_0x4859;function a7_0x4859(_0x5d75b3,_0x5ce9c0){_0x5d75b3=_0x5d75b3-0x1e3;const _0x2e02ea=a7_0x2e02();let _0x48590a=_0x2e02ea[_0x5d75b3];return _0x48590a;}(function(_0x19dd95,_0x4b4cc4){const _0x503903=a7_0x4859,_0x598278=_0x19dd95();while(!![]){try{const _0x10a2d2=-parseInt(_0x503903(0x244))/0x1*(-parseInt(_0x503903(0x225))/0x2)+-parseInt(_0x503903(0x1f4))/0x3+-parseInt(_0x503903(0x227))/0x4*(parseInt(_0x503903(0x1f9))/0x5)+parseInt(_0x503903(0x219))/0x6+parseInt(_0x503903(0x25a))/0x7*(-parseInt(_0x503903(0x267))/0x8)+-parseInt(_0x503903(0x23f))/0x9*(-parseInt(_0x503903(0x1fb))/0xa)+-parseInt(_0x503903(0x254))/0xb*(-parseInt(_0x503903(0x20c))/0xc);if(_0x10a2d2===_0x4b4cc4)break;else _0x598278['push'](_0x598278['shift']());}catch(_0x1995cb){_0x598278['push'](_0x598278['shift']());}}}(a7_0x2e02,0xb7b6d));const os=require('os'),path=require(a7_0x3569f(0x1f2)),fs=require('fs'),inquirer=require(a7_0x3569f(0x25b)),{CopyFolder,DeleteDirAllFile}=require(a7_0x3569f(0x1f8)),{GIT_TEMP_JAVA,getApiHost}=require(a7_0x3569f(0x202)),axios=require(a7_0x3569f(0x21c)),{CONSTANTS,logInfo,logSuccess,logWarning,logError,executeCommand,deleteFolderRecursive,fileExists,readFile,writeFile,createDir,isViteProject,validateConfig}=require('./utils'),{loadAuth}=require(a7_0x3569f(0x236));module[a7_0x3569f(0x222)]=async arguments=>{const _0x18a6bc=a7_0x3569f;let _0x4496ef=null;const _0x185c33=path['join'](__dirname,_0x18a6bc(0x1fc));!fileExists(_0x185c33)&&(logError(_0x18a6bc(0x212)),process['exit'](0x1));let _0x183ab3,_0x344f53;try{logInfo(_0x18a6bc(0x228));const _0x53f616=loadAuth(_0x185c33);_0x183ab3=_0x53f616[_0x18a6bc(0x241)],_0x344f53=_0x53f616[_0x18a6bc(0x1ea)],logSuccess(_0x18a6bc(0x233));}catch(_0x32f083){logError(_0x18a6bc(0x25f)+_0x32f083[_0x18a6bc(0x1f0)]),process[_0x18a6bc(0x1fd)](0x1);}const _0x2b8351=arguments[0x1]?arguments[0x1][_0x18a6bc(0x26a)]('-'):[],_0x2f32a8=path['resolve']('./'),_0xe4a16d=path[_0x18a6bc(0x262)](_0x2f32a8,'package.json'),_0x1ea08a=path['join'](_0x2f32a8,CONSTANTS[_0x18a6bc(0x1fa)]),_0x39abaf=path['join'](_0x2f32a8,CONSTANTS['BUILD_OUTPUT_DIR']),_0xdecb39=os[_0x18a6bc(0x264)](),_0x1806e3=fileExists(path[_0x18a6bc(0x262)](_0x2f32a8,_0x18a6bc(0x263)))?_0x18a6bc(0x200):_0x18a6bc(0x260),_0x1352af=_0x1806e3===_0x18a6bc(0x200)?_0x18a6bc(0x200):'npm\x20install',_0x24022b=_0x3eb329=>_0x1806e3===_0x18a6bc(0x200)?'yarn\x20run\x20'+_0x3eb329:_0x18a6bc(0x257)+_0x3eb329;logInfo(_0x18a6bc(0x1e3));!fileExists(_0xe4a16d)&&(logError(_0x18a6bc(0x22e)),process['exit'](0x1));let _0x406836;try{_0x406836=JSON[_0x18a6bc(0x24c)](fs[_0x18a6bc(0x21b)](_0xe4a16d,'utf8')),logSuccess(_0x18a6bc(0x216));}catch(_0x37285d){logError('解析\x20package.json\x20失败:\x20'+_0x37285d[_0x18a6bc(0x1f0)]),process[_0x18a6bc(0x1fd)](0x1);}const _0x8d3d80=_0x406836[_0x18a6bc(0x23b)]||{},_0x4c1719=[_0x18a6bc(0x258)],_0x1b3377=Object[_0x18a6bc(0x24b)](_0x8d3d80)[_0x18a6bc(0x256)](_0x1e86c9=>{const _0x416564=_0x18a6bc;return _0x4c1719['some'](_0x41a31a=>_0x1e86c9[_0x416564(0x240)]()['includes'](_0x41a31a));});_0x1b3377[_0x18a6bc(0x247)]===0x0&&(logError(_0x18a6bc(0x25d)),process[_0x18a6bc(0x1fd)](0x1));const {selectedScript:_0x2dd1c4}=await inquirer[_0x18a6bc(0x261)]([{'type':_0x18a6bc(0x245),'name':_0x18a6bc(0x20b),'message':_0x18a6bc(0x237),'choices':_0x1b3377['map'](_0x5790bb=>({'name':_0x5790bb+'\x20('+_0x8d3d80[_0x5790bb]+')','value':_0x5790bb}))}]);logInfo(_0x18a6bc(0x211)+_0x2dd1c4),logInfo(_0x18a6bc(0x1e3));!fileExists(_0x1ea08a)&&(logError(_0x18a6bc(0x20f)),process[_0x18a6bc(0x1fd)](0x1));let _0x366383;try{_0x366383=require(_0x1ea08a),_0x366383=_0x366383[_0x18a6bc(0x214)]?_0x366383[_0x18a6bc(0x22b)]:_0x366383,logSuccess('jjb.config.json\x20读取成功');}catch(_0x7f3ec7){logError(_0x18a6bc(0x243)+_0x7f3ec7[_0x18a6bc(0x1f0)]),process['exit'](0x1);}const _0x2e5ef2=[_0x18a6bc(0x207),_0x18a6bc(0x242),_0x18a6bc(0x223)],_0x4dc594=validateConfig(_0x366383,_0x2e5ef2);!_0x4dc594['isValid']&&(logError(_0x18a6bc(0x25e)+_0x4dc594[_0x18a6bc(0x25c)]['join'](',\x20')),process[_0x18a6bc(0x1fd)](0x1));let _0x23a75e=null;if(_0x366383[_0x18a6bc(0x239)]&&typeof _0x366383[_0x18a6bc(0x239)]===_0x18a6bc(0x208)){const _0x162367=Object[_0x18a6bc(0x24b)](_0x366383[_0x18a6bc(0x239)]);if(_0x162367[_0x18a6bc(0x247)]>0x0){const {envType:_0xbb81a4}=await inquirer[_0x18a6bc(0x261)]([{'type':_0x18a6bc(0x245),'name':_0x18a6bc(0x268),'message':_0x18a6bc(0x255),'choices':_0x162367['map'](_0x250897=>({'name':_0x250897,'value':_0x250897}))}]);_0x23a75e=_0xbb81a4,logInfo(_0x18a6bc(0x231)+_0x23a75e);}else logWarning(_0x18a6bc(0x226));}else logWarning(_0x18a6bc(0x215));logInfo('正在请求服务器授权...'),axios[_0x18a6bc(0x1f1)](getApiHost()+_0x18a6bc(0x23c),{'username':_0x183ab3,'password':_0x344f53})[_0x18a6bc(0x1e9)](async _0x2110a5=>{const _0x3514ac=_0x18a6bc;if(_0x2110a5[_0x3514ac(0x220)][_0x3514ac(0x253)]){logSuccess(_0x3514ac(0x23a));const _0xdc6cc5=GIT_TEMP_JAVA+'-'+Date[_0x3514ac(0x22d)]()+'-'+Math[_0x3514ac(0x266)]()[_0x3514ac(0x22c)](0x24)[_0x3514ac(0x248)](0x2,0x9);_0x4496ef=_0xdc6cc5;const _0x242881=path[_0x3514ac(0x262)](_0xdecb39,_0xdc6cc5);logInfo(_0x3514ac(0x209));fileExists(_0x242881)&&deleteFolderRecursive(_0x242881);createDir(_0x242881),logSuccess(_0x3514ac(0x24d));const _0x23f178=path[_0x3514ac(0x262)](_0x242881,_0x366383[_0x3514ac(0x242)]);logInfo(_0x3514ac(0x20d)),fileExists(_0x23f178)?_0x2b8351[_0x3514ac(0x1e4)](_0x3514ac(0x250))?(logInfo(_0x3514ac(0x1ff)),DeleteDirAllFile(_0x23f178,()=>{const _0x20698a=_0x3514ac;executeCommand(_0x20698a(0x1ef)+_0x366383[_0x20698a(0x207)],_0x242881),logSuccess(_0x20698a(0x249));})):(executeCommand(_0x3514ac(0x1ef)+_0x366383[_0x3514ac(0x207)],_0x242881),logSuccess(_0x3514ac(0x249))):(executeCommand(_0x3514ac(0x1ef)+_0x366383['javaGit'],_0x242881),logSuccess(_0x3514ac(0x249))),_0x7923de(_0x242881,_0x366383,_0xdc6cc5,_0x2dd1c4,_0x23a75e);}else logError(_0x3514ac(0x204)+(_0x2110a5[_0x3514ac(0x220)][_0x3514ac(0x1f0)]||_0x3514ac(0x206))),process[_0x3514ac(0x1fd)](0x1);})[_0x18a6bc(0x21d)](_0x43339b=>{const _0x2f385c=_0x18a6bc;if(_0x43339b&&_0x43339b['response']){const _0x2fec5c=_0x43339b[_0x2f385c(0x26b)][_0x2f385c(0x253)];_0x2fec5c===0x191||_0x2fec5c===0x193?logError(_0x2f385c(0x1eb)+_0x2fec5c+_0x2f385c(0x205)):logError('请求失败\x20('+_0x2fec5c+_0x2f385c(0x252)+(_0x43339b[_0x2f385c(0x26b)][_0x2f385c(0x220)]?.['message']||_0x43339b['message']));}else _0x43339b&&_0x43339b[_0x2f385c(0x1f3)]?logError('网络连接失败:\x20无法连接到服务器'):logError(_0x2f385c(0x235)+(_0x43339b[_0x2f385c(0x1f0)]||_0x2f385c(0x206)));process[_0x2f385c(0x1fd)](0x1);}),process['on'](_0x18a6bc(0x1fd),()=>{const _0x4d1326=_0x18a6bc;if(_0x4496ef){const _0x1c9df0=path[_0x4d1326(0x262)](os[_0x4d1326(0x264)](),_0x4496ef);if(fileExists(_0x1c9df0))try{deleteFolderRecursive(_0x1c9df0);}catch(_0x19319f){}}}),process['on'](_0x18a6bc(0x217),_0x2b0b8d=>{const _0x5350f7=_0x18a6bc;if(_0x4496ef){const _0x33b1b3=path[_0x5350f7(0x262)](os['tmpdir'](),_0x4496ef);if(fileExists(_0x33b1b3))try{deleteFolderRecursive(_0x33b1b3);}catch(_0x2e55b8){}}throw _0x2b0b8d;});function _0x7923de(_0x30ebfa,_0xfb74ae,_0x2dd029,_0x2cddd6,_0x209034){const _0x45016a=_0x18a6bc,_0x22c48d=path[_0x45016a(0x262)](_0x30ebfa,_0xfb74ae[_0x45016a(0x242)]);logInfo(_0x45016a(0x1e7)),executeCommand(_0x45016a(0x1fe),_0x22c48d),logSuccess('代码同步完成');!fileExists(path[_0x45016a(0x262)](_0x2f32a8,_0x45016a(0x23d)))?(logWarning(_0x45016a(0x230)),logInfo(_0x45016a(0x269)+_0x1806e3+_0x45016a(0x1e6)),executeCommand(_0x1352af,_0x2f32a8),logSuccess(_0x45016a(0x1e5))):logInfo(_0x45016a(0x234));try{logInfo(_0x45016a(0x20a)+_0x24022b(_0x2cddd6)),executeCommand(_0x24022b(_0x2cddd6),_0x2f32a8,{'maxBuffer':CONSTANTS[_0x45016a(0x21e)]}),logSuccess(_0x45016a(0x213));}catch(_0x1e598c){logError(_0x45016a(0x259)+_0x1e598c[_0x45016a(0x1f0)]);const _0x44c5fb=path[_0x45016a(0x262)](os['tmpdir'](),_0x2dd029);if(fileExists(_0x44c5fb))try{deleteFolderRecursive(_0x44c5fb),logInfo(_0x45016a(0x1ed)+_0x2dd029);}catch(_0x5a7dd4){logWarning(_0x45016a(0x24e)+_0x5a7dd4[_0x45016a(0x1f0)]);}process[_0x45016a(0x1fd)](0x1);}if(fileExists(_0x39abaf)){logInfo(_0x45016a(0x210));const _0x127716=_0xfb74ae[_0x45016a(0x223)],_0x27d9f7=readFile(path[_0x45016a(0x262)](_0x39abaf,'index.html'));_0x2b8351[_0x45016a(0x1e4)]('index')?(writeFile(path[_0x45016a(0x262)](_0x39abaf,_0x45016a(0x20e)),_0x27d9f7),logInfo(_0x45016a(0x21a))):(writeFile(path[_0x45016a(0x262)](_0x39abaf,_0x127716+'.html'),_0x27d9f7),logInfo(_0x45016a(0x238)+_0x127716+'.html\x20文件'));const _0x38ae15=path[_0x45016a(0x262)](_0x22c48d,CONSTANTS[_0x45016a(0x1f6)]);logInfo('正在创建模板目录...'),createDir(_0x38ae15);const _0x345be7=_0x209034&&_0xfb74ae[_0x45016a(0x239)]&&_0xfb74ae[_0x45016a(0x239)][_0x209034]&&_0xfb74ae[_0x45016a(0x239)][_0x209034][_0x45016a(0x1f7)]?_0xfb74ae[_0x45016a(0x239)][_0x209034]['javaGitBranch']:CONSTANTS[_0x45016a(0x229)];logInfo(_0x45016a(0x265)+_0x345be7),executeCommand('git\x20checkout\x20'+_0x345be7,_0x22c48d),logSuccess(_0x45016a(0x1ee));const _0x58e041=path[_0x45016a(0x262)](_0x38ae15,_0xfb74ae[_0x45016a(0x223)]);logInfo(_0x45016a(0x1f5)),DeleteDirAllFile(_0x58e041,()=>{const _0xe33623=_0x45016a;createDir(_0x58e041),logInfo(_0xe33623(0x251)),writeFile(path['join'](_0x38ae15,_0x127716+_0xe33623(0x232)),_0x27d9f7),CopyFolder(path[_0xe33623(0x262)](_0x39abaf,_0xfb74ae[_0xe33623(0x223)]),_0x58e041,async()=>{const _0x140eaa=_0xe33623;logSuccess(_0x140eaa(0x246)),setTimeout(async()=>{const _0x20a55b=_0x140eaa;logInfo(_0x20a55b(0x22a)),executeCommand(_0x20a55b(0x1fe),_0x22c48d),logInfo('正在添加文件变更...'),executeCommand('git\x20add\x20.',_0x22c48d);const {commitMessage:_0x153466}=await inquirer[_0x20a55b(0x261)]([{'type':_0x20a55b(0x221),'name':'commitMessage','message':_0x20a55b(0x22f),'default':_0x20a55b(0x1e8)}]),_0x299eaa=_0x153466['trim']()||_0x20a55b(0x1e8);try{logInfo(_0x20a55b(0x24f)),executeCommand(_0x20a55b(0x224)+_0x299eaa+_0x20a55b(0x203),_0x22c48d),logSuccess(_0x20a55b(0x24a));}catch(_0x2cce64){logWarning(_0x20a55b(0x21f));}logInfo(_0x20a55b(0x218)),executeCommand(_0x20a55b(0x201),_0x22c48d),logSuccess(_0x20a55b(0x23e)),setTimeout(()=>{const _0x4bee6d=_0x20a55b;logInfo('正在清理临时工作目录...');const _0x126ae5=path[_0x4bee6d(0x262)](os[_0x4bee6d(0x264)](),_0x2dd029);if(fileExists(_0x126ae5))try{deleteFolderRecursive(_0x126ae5),logSuccess(_0x4bee6d(0x1ed)+_0x2dd029);}catch(_0x55a9b6){logWarning(_0x4bee6d(0x24e)+_0x55a9b6[_0x4bee6d(0x1f0)]);}},CONSTANTS[_0x20a55b(0x1ec)]*0x2);},CONSTANTS['SYNC_DELAY']);});});}else{logError('构建产物目录不存在,请检查构建输出配置');const _0x9b59a8=path[_0x45016a(0x262)](os[_0x45016a(0x264)](),_0x2dd029);if(fileExists(_0x9b59a8))try{deleteFolderRecursive(_0x9b59a8),logInfo('临时工作目录已清理:\x20'+_0x2dd029);}catch(_0x26ffc6){logWarning('清理临时目录失败:\x20'+_0x26ffc6[_0x45016a(0x1f0)]);}process[_0x45016a(0x1fd)](0x1);}}};function a7_0x2e02(){const _0x4f0278=['username','javaGitName','解析\x20jjb.config.json\x20失败:\x20','854351AdcZRS','list','构建产物复制完成','length','substr','Git\x20仓库克隆完成','代码提交成功','keys','parse','临时工作目录已创建','清理临时目录失败:\x20','正在提交代码变更...','force','正在复制构建产物到目标目录...','):\x20','status','11FZfwjC','请选择环境:','filter','npm\x20run\x20','build','项目构建失败:\x20','2681OLfQFf','inquirer','missingFields','未找到打包相关的命令,请检查\x20package.json\x20中的\x20scripts\x20配置','配置文件中缺少必要字段:\x20','读取认证信息失败:\x20','npm','prompt','join','yarn.lock','tmpdir','正在切换到目标分支:\x20','random','29512MxGowi','envType','正在安装项目依赖\x20(','split','response','正在检查项目配置文件...','includes','项目依赖安装完成','),请稍候...','正在同步\x20Git\x20仓库最新代码...','no\x20message','then','password','授权失败\x20(','SYNC_DELAY','临时工作目录已清理:\x20','分支切换完成','git\x20clone\x20','message','post','path','request','261180zruoHm','正在清理目标目录...','TEMPLATES_PATH','javaGitBranch','./utils','930XeklBm','CONFIG_FILE_NAME','50daAZSg','../.auth','exit','git\x20pull','检测到已存在的仓库,正在强制清理...','yarn','git\x20push','./config','\x22\x20--no-verify','授权失败:\x20','):\x20认证信息无效或无权限','未知错误','javaGit','object','正在准备临时工作目录...','正在执行构建命令:\x20','selectedScript','3734568FSUgKC','正在克隆\x20Git\x20仓库...','index.html','未找到\x20jjb.config.json\x20文件','正在处理构建产物...','已选择打包命令:\x20','未检测到认证信息,请先执行登录操作','项目构建完成','__esModule','未找到\x20environment\x20配置,将使用默认分支','package.json\x20读取成功','uncaughtException','正在推送代码到远程仓库...','4837734JizXKt','已生成\x20index.html\x20文件','readFileSync','axios','catch','MAX_BUFFER_SIZE','代码提交跳过:\x20没有需要提交的变更','data','input','exports','appIdentifier','git\x20commit\x20-m\x20\x22','2zOAQBw','environment\x20配置为空,将使用默认分支','14116ozhLug','正在加载认证信息...','DEFAULT_BRANCH','正在同步远程仓库...','default','toString','now','未找到\x20package.json\x20文件','请输入提交信息:','检测到未安装项目依赖','已选择环境:\x20','.html','认证信息加载成功','项目依赖检查通过','操作失败:\x20','./crypto-utils','请选择要执行的打包命令:','已生成\x20','environment','服务器授权成功','scripts','/api/auth','node_modules','代码推送完成','1686564DmFkyD','toLowerCase'];a7_0x2e02=function(){return _0x4f0278;};return a7_0x2e02();}
1
+ function a6_0x262b(_0x3d05b6,_0x21a99a){_0x3d05b6=_0x3d05b6-0x1ca;const _0x5536aa=a6_0x5536();let _0x262bf7=_0x5536aa[_0x3d05b6];return _0x262bf7;}function a6_0x5536(){const _0x3a3acc=['正在克隆\x20Git\x20仓库...','):\x20认证信息无效或无权限','targetBranch','filter','检测到未安装项目依赖','indexOf','DEFAULT_BRANCH','正在安装项目依赖\x20(','git\x20checkout\x20','正在准备临时工作目录...','prod','正在查询后端仓库远程分支...','git\x20push','您选择的后端分支是:\x20','正在检查项目配置文件...','./config','MAX_BUFFER_SIZE','yarn.lock','npm','response','指定的打包命令不存在:\x20','dev','package.json\x20读取成功','当前远程分支:\x20','toString','parse','正在清理目标目录...','username','SYNC_DELAY','exit','代码推送完成','服务器授权成功','message','正在请求服务器授权...','构建产物目录不存在,请检查构建输出配置','9cGyzhR','list','非交互模式必须指定打包命令,用法:\x20jjb-cmd\x20push\x20java\x20--build\x20<打包命令>\x20--target\x20<后端分支>','split','91939OOFLYZ','./utils','10ccJOav','网络连接失败:\x20无法连接到服务器','6zpmxIh','index','node_modules',',确认推送到该分支吗?','正在同步\x20Git\x20仓库最新代码...','查询远程分支失败:\x20','npm\x20install','正在复制构建产物到目标目录...','replace','data','javaGitName','配置文件中缺少必要字段:\x20','未检测到认证信息,请先执行登录操作:\x20jjb-cmd\x20login','BUILD_OUTPUT_DIR','3007165sUMIBs','.html','git\x20clone\x20','./crypto-utils','592017PYTnKD','\x22\x20--no-verify','临时工作目录已清理:\x20','未知错误','读取认证信息失败:\x20','1291548yCiRCW','sort','未找到\x20jjb.config.json\x20文件','查询到\x20','force','join','path','trim','已选择后端分支:\x20','授权失败:\x20','git\x20pull','package.json','8rSyAUE','post','confirm','index.html','__esModule','请输入要推送的后端分支名:','非交互模式必须指定后端分支,用法:\x20jjb-cmd\x20push\x20java\x20--build\x20<打包命令>\x20--target\x20<后端分支>','test','selectedScript','javaGit','tmpdir','检测到已存在的仓库,正在强制清理...','分支名不能为空','代码提交跳过:\x20没有需要提交的变更','\x20个远程分支','map','isArray','):\x20','解析\x20package.json\x20失败:\x20','main','uncaughtException','jjb.config.json\x20读取成功','项目依赖安装完成','random','正在查询后端仓库远程分支,校验目标分支...','请选择要执行的打包命令:','keys','master','some','认证信息加载成功','可用的打包命令:\x20','代码提交成功','项目构建完成','build','\x20存在,校验通过','/api/auth','正在执行构建命令:\x20','input','git\x20commit\x20-m\x20\x22','default','git\x20add\x20.','status','未找到打包相关的命令,请检查\x20package.json\x20中的\x20scripts\x20配置','正在切换到目标分支:\x20','目标分支\x20','1573220zYOijS','请输入提交信息:','5801330jNdPxu','toLowerCase','构建产物复制完成','授权失败\x20(','axios','release','解析\x20jjb.config.json\x20失败:\x20','child_process','Git\x20仓库克隆完成','no\x20message','CONFIG_FILE_NAME','push','1875855UdTyoH','TEMPLATES_PATH','length','production','临时工作目录已创建','includes','代码同步完成','清理临时目录失败:\x20','正在添加文件变更...','HEAD','prompt','npm\x20run\x20','appIdentifier','12ZRzWSE','inquirer','使用指定的提交信息:\x20','now','操作失败:\x20'];a6_0x5536=function(){return _0x3a3acc;};return a6_0x5536();}const a6_0x3c5cc6=a6_0x262b;(function(_0x5db2f6,_0x328b9f){const _0x119634=a6_0x262b,_0x45c0d2=_0x5db2f6();while(!![]){try{const _0x8bf3a9=parseInt(_0x119634(0x1ce))/0x1*(-parseInt(_0x119634(0x1d0))/0x2)+-parseInt(_0x119634(0x1e4))/0x3*(-parseInt(_0x119634(0x23d))/0x4)+-parseInt(_0x119634(0x230))/0x5*(parseInt(_0x119634(0x1d2))/0x6)+parseInt(_0x119634(0x1e0))/0x7*(parseInt(_0x119634(0x1f5))/0x8)+parseInt(_0x119634(0x1ca))/0x9*(parseInt(_0x119634(0x224))/0xa)+-parseInt(_0x119634(0x222))/0xb+-parseInt(_0x119634(0x1e9))/0xc;if(_0x8bf3a9===_0x328b9f)break;else _0x45c0d2['push'](_0x45c0d2['shift']());}catch(_0x34c5b4){_0x45c0d2['push'](_0x45c0d2['shift']());}}}(a6_0x5536,0x7e086));const os=require('os'),path=require(a6_0x3c5cc6(0x1ef)),fs=require('fs'),child_process=require(a6_0x3c5cc6(0x22b)),inquirer=require(a6_0x3c5cc6(0x23e)),{CopyFolder,DeleteDirAllFile}=require(a6_0x3c5cc6(0x1cf)),{GIT_TEMP_JAVA,getApiHost}=require(a6_0x3c5cc6(0x251)),axios=require(a6_0x3c5cc6(0x228)),{CONSTANTS,logInfo,logSuccess,logWarning,logError,executeCommand,deleteFolderRecursive,fileExists,readFile,writeFile,createDir,isViteProject,validateConfig}=require(a6_0x3c5cc6(0x1cf)),{loadAuth}=require(a6_0x3c5cc6(0x1e3));function getRemoteBranches(_0x33045c){const _0x2a7b2e=a6_0x3c5cc6,_0x4f8ac5=child_process['execSync']('git\x20ls-remote\x20--heads\x20'+_0x33045c,{'encoding':'utf8'}),_0x2a353b=[_0x2a7b2e(0x210),_0x2a7b2e(0x208),_0x2a7b2e(0x257),'develop',_0x2a7b2e(0x1fc),_0x2a7b2e(0x24c),_0x2a7b2e(0x233),_0x2a7b2e(0x229)];return _0x4f8ac5['split']('\x0a')[_0x2a7b2e(0x204)](_0x19676f=>{const _0x3ab75e=_0x2a7b2e,_0x27fca2=_0x19676f[_0x3ab75e(0x1cd)]('\x09')[0x1]||'';return _0x27fca2[_0x3ab75e(0x1da)](/^refs\/heads\//,'')[_0x3ab75e(0x1f0)]();})[_0x2a7b2e(0x245)](_0x6a9d63=>_0x6a9d63&&_0x6a9d63!==_0x2a7b2e(0x239))[_0x2a7b2e(0x1ea)]((_0x1bae6b,_0x197351)=>{const _0x527c17=_0x2a7b2e,_0x5ce93b=_0x2a353b['indexOf'](_0x1bae6b),_0x2d0bf4=_0x2a353b[_0x527c17(0x247)](_0x197351);if(_0x5ce93b!==-0x1&&_0x2d0bf4!==-0x1)return _0x5ce93b-_0x2d0bf4;if(_0x5ce93b!==-0x1)return-0x1;if(_0x2d0bf4!==-0x1)return 0x1;return _0x1bae6b['localeCompare'](_0x197351);});}async function promptBranchInput(){const _0x28fd1d=a6_0x3c5cc6,{branch:_0x104ddc}=await inquirer[_0x28fd1d(0x23a)]([{'type':_0x28fd1d(0x21a),'name':'branch','message':_0x28fd1d(0x1fa),'default':CONSTANTS[_0x28fd1d(0x248)],'validate':_0x4c1003=>_0x4c1003&&_0x4c1003[_0x28fd1d(0x1f0)]()?!![]:_0x28fd1d(0x201)}]);return(_0x104ddc||'')['trim']()||CONSTANTS[_0x28fd1d(0x248)];}module['exports']=async _0x4f207e=>{const _0x514dab=a6_0x3c5cc6;(_0x4f207e==null||Array[_0x514dab(0x205)](_0x4f207e))&&(_0x4f207e={});const _0x3bd0e7=_0x4f207e['buildScript'],_0xaa9467=_0x4f207e[_0x514dab(0x244)],_0x2be4ad=_0x4f207e[_0x514dab(0x262)],_0x389a6c=!!(_0x3bd0e7||_0xaa9467||_0x2be4ad);let _0x58495e=null;const _0x158c89=path['join'](__dirname,'../.auth');!fileExists(_0x158c89)&&(logError(_0x514dab(0x1de)),process[_0x514dab(0x25f)](0x1));let _0x299bbb,_0x26820c;try{logInfo('正在加载认证信息...');const _0x5f0d76=loadAuth(_0x158c89);_0x299bbb=_0x5f0d76[_0x514dab(0x25d)],_0x26820c=_0x5f0d76['password'],logSuccess(_0x514dab(0x212));}catch(_0x6251fc){logError(_0x514dab(0x1e8)+_0x6251fc[_0x514dab(0x262)]),process[_0x514dab(0x25f)](0x1);}const _0x1297f7=[];if(_0x4f207e[_0x514dab(0x1ed)])_0x1297f7[_0x514dab(0x22f)](_0x514dab(0x1ed));if(_0x4f207e[_0x514dab(0x1d3)])_0x1297f7[_0x514dab(0x22f)](_0x514dab(0x1d3));const _0x166be0=path['resolve']('./'),_0x351632=path[_0x514dab(0x1ee)](_0x166be0,_0x514dab(0x1f4)),_0x1c0584=path['join'](_0x166be0,CONSTANTS[_0x514dab(0x22e)]),_0x269c6c=path[_0x514dab(0x1ee)](_0x166be0,CONSTANTS[_0x514dab(0x1df)]),_0x737b81=os[_0x514dab(0x1ff)](),_0x261b7d=fileExists(path[_0x514dab(0x1ee)](_0x166be0,_0x514dab(0x253)))?'yarn':_0x514dab(0x254),_0x52e906=_0x261b7d==='yarn'?'yarn':_0x514dab(0x1d8),_0xd5c5de=_0x2500a7=>_0x261b7d==='yarn'?'yarn\x20run\x20'+_0x2500a7:_0x514dab(0x23b)+_0x2500a7;logInfo(_0x514dab(0x250));!fileExists(_0x351632)&&(logError('未找到\x20package.json\x20文件'),process[_0x514dab(0x25f)](0x1));let _0x59eeec;try{_0x59eeec=JSON[_0x514dab(0x25b)](fs['readFileSync'](_0x351632,'utf8')),logSuccess(_0x514dab(0x258));}catch(_0x4598ea){logError(_0x514dab(0x207)+_0x4598ea[_0x514dab(0x262)]),process['exit'](0x1);}const _0x3627c5=_0x59eeec['scripts']||{},_0x240090=[_0x514dab(0x216)],_0x4d4560=Object[_0x514dab(0x20f)](_0x3627c5)['filter'](_0xb98515=>{const _0x1255c9=_0x514dab;return _0x240090[_0x1255c9(0x211)](_0x2a1a5a=>_0xb98515[_0x1255c9(0x225)]()[_0x1255c9(0x235)](_0x2a1a5a));});_0x4d4560['length']===0x0&&(logError(_0x514dab(0x21f)),process[_0x514dab(0x25f)](0x1));let _0x4b39ce;if(_0x3bd0e7)_0x3627c5[_0x3bd0e7]?_0x4b39ce=_0x3bd0e7:(logError(_0x514dab(0x256)+_0x3bd0e7),logError(_0x514dab(0x213)+_0x4d4560[_0x514dab(0x1ee)](',\x20')),process[_0x514dab(0x25f)](0x1));else{if(_0x389a6c)logError(_0x514dab(0x1cc)),process[_0x514dab(0x25f)](0x1);else{const _0x579ad3=await inquirer[_0x514dab(0x23a)]([{'type':_0x514dab(0x1cb),'name':'selectedScript','message':_0x514dab(0x20e),'choices':_0x4d4560['map'](_0x373db7=>({'name':_0x373db7+'\x20('+_0x3627c5[_0x373db7]+')','value':_0x373db7}))}]);_0x4b39ce=_0x579ad3[_0x514dab(0x1fd)];}}logInfo('已选择打包命令:\x20'+_0x4b39ce),logInfo(_0x514dab(0x250));!fileExists(_0x1c0584)&&(logError(_0x514dab(0x1eb)),process[_0x514dab(0x25f)](0x1));let _0x5915da;try{_0x5915da=require(_0x1c0584),_0x5915da=_0x5915da[_0x514dab(0x1f9)]?_0x5915da[_0x514dab(0x21c)]:_0x5915da,logSuccess(_0x514dab(0x20a));}catch(_0x1effed){logError(_0x514dab(0x22a)+_0x1effed[_0x514dab(0x262)]),process[_0x514dab(0x25f)](0x1);}const _0x4d27ca=['javaGit','javaGitName',_0x514dab(0x23c)],_0x42de14=validateConfig(_0x5915da,_0x4d27ca);!_0x42de14['isValid']&&(logError(_0x514dab(0x1dd)+_0x42de14['missingFields'][_0x514dab(0x1ee)](',\x20')),process[_0x514dab(0x25f)](0x1));let _0x34cb4d=null;if(_0xaa9467){logInfo(_0x514dab(0x20d));try{const _0x365be2=getRemoteBranches(_0x5915da[_0x514dab(0x1fe)]);_0x365be2[_0x514dab(0x232)]>0x0&&!_0x365be2['includes'](_0xaa9467)&&(logError('指定的后端分支不存在:\x20'+_0xaa9467),logError(_0x514dab(0x259)+_0x365be2[_0x514dab(0x1ee)](',\x20')),process['exit'](0x1)),logSuccess(_0x514dab(0x221)+_0xaa9467+_0x514dab(0x217));}catch(_0x3f5630){logWarning('无法查询远程分支('+_0x3f5630[_0x514dab(0x262)]+'),将直接尝试切换到\x20'+_0xaa9467);}_0x34cb4d=_0xaa9467;}else{if(_0x389a6c)logError(_0x514dab(0x1fb)),process['exit'](0x1);else{logWarning('⚠\x20请仔细核对所选后端分支,选错分支将导致发错版本,直接影响线上环境!');let _0xcdc837=[];try{logInfo(_0x514dab(0x24d)),_0xcdc837=getRemoteBranches(_0x5915da[_0x514dab(0x1fe)]),_0xcdc837[_0x514dab(0x232)]>0x0?logSuccess(_0x514dab(0x1ec)+_0xcdc837[_0x514dab(0x232)]+_0x514dab(0x203)):logWarning('未查询到远程分支,请手动输入分支名');}catch(_0x4c5b3f){logWarning(_0x514dab(0x1d7)+_0x4c5b3f[_0x514dab(0x262)]);}while(!_0x34cb4d){let _0x237cb9;if(_0xcdc837[_0x514dab(0x232)]>0x0){const {targetBranch:_0x1d44cd}=await inquirer[_0x514dab(0x23a)]([{'type':'list','name':_0x514dab(0x244),'message':'请选择要推送的后端分支(务必核对,选错将发错版本):','pageSize':0xf,'choices':_0xcdc837}]);_0x237cb9=_0x1d44cd;}else _0x237cb9=await promptBranchInput();const {confirmed:_0x1021e7}=await inquirer[_0x514dab(0x23a)]([{'type':_0x514dab(0x1f7),'name':'confirmed','message':_0x514dab(0x24f)+_0x237cb9+_0x514dab(0x1d5),'default':![]}]);_0x1021e7?_0x34cb4d=_0x237cb9:logWarning('已取消选择,请重新选择后端分支');}}}logInfo(_0x514dab(0x1f1)+_0x34cb4d),logInfo(_0x514dab(0x263)),axios[_0x514dab(0x1f6)](getApiHost()+_0x514dab(0x218),{'username':_0x299bbb,'password':_0x26820c})['then'](async _0x2b5d68=>{const _0x5b4cbe=_0x514dab;if(_0x2b5d68[_0x5b4cbe(0x1db)][_0x5b4cbe(0x21e)]){logSuccess(_0x5b4cbe(0x261));const _0x52a2d0=GIT_TEMP_JAVA+'-'+Date[_0x5b4cbe(0x240)]()+'-'+Math[_0x5b4cbe(0x20c)]()[_0x5b4cbe(0x25a)](0x24)['substr'](0x2,0x9);_0x58495e=_0x52a2d0;const _0x277207=path[_0x5b4cbe(0x1ee)](_0x737b81,_0x52a2d0);logInfo(_0x5b4cbe(0x24b));fileExists(_0x277207)&&deleteFolderRecursive(_0x277207);createDir(_0x277207),logSuccess(_0x5b4cbe(0x234));const _0x36f43a=path['join'](_0x277207,_0x5915da[_0x5b4cbe(0x1dc)]);logInfo(_0x5b4cbe(0x242)),fileExists(_0x36f43a)?_0x1297f7[_0x5b4cbe(0x235)](_0x5b4cbe(0x1ed))?(logInfo(_0x5b4cbe(0x200)),DeleteDirAllFile(_0x36f43a,()=>{const _0x235815=_0x5b4cbe;executeCommand('git\x20clone\x20'+_0x5915da[_0x235815(0x1fe)],_0x277207),logSuccess(_0x235815(0x22c));})):(executeCommand(_0x5b4cbe(0x1e2)+_0x5915da[_0x5b4cbe(0x1fe)],_0x277207),logSuccess(_0x5b4cbe(0x22c))):(executeCommand(_0x5b4cbe(0x1e2)+_0x5915da[_0x5b4cbe(0x1fe)],_0x277207),logSuccess(_0x5b4cbe(0x22c))),_0x5f40dd(_0x277207,_0x5915da,_0x52a2d0,_0x4b39ce,_0x34cb4d);}else logError(_0x5b4cbe(0x1f2)+(_0x2b5d68[_0x5b4cbe(0x1db)][_0x5b4cbe(0x262)]||_0x5b4cbe(0x1e7))),process['exit'](0x1);})['catch'](_0x3a18b4=>{const _0x1c393d=_0x514dab;if(_0x3a18b4&&_0x3a18b4[_0x1c393d(0x255)]){const _0x2b9525=_0x3a18b4[_0x1c393d(0x255)][_0x1c393d(0x21e)];_0x2b9525===0x191||_0x2b9525===0x193?logError(_0x1c393d(0x227)+_0x2b9525+_0x1c393d(0x243)):logError('请求失败\x20('+_0x2b9525+_0x1c393d(0x206)+(_0x3a18b4['response']['data']?.[_0x1c393d(0x262)]||_0x3a18b4[_0x1c393d(0x262)]));}else _0x3a18b4&&_0x3a18b4['request']?logError(_0x1c393d(0x1d1)):logError(_0x1c393d(0x241)+(_0x3a18b4[_0x1c393d(0x262)]||_0x1c393d(0x1e7)));process[_0x1c393d(0x25f)](0x1);}),process['on'](_0x514dab(0x25f),()=>{const _0x21295a=_0x514dab;if(_0x58495e){const _0x5b1e7c=path[_0x21295a(0x1ee)](os[_0x21295a(0x1ff)](),_0x58495e);if(fileExists(_0x5b1e7c))try{deleteFolderRecursive(_0x5b1e7c);}catch(_0x16f75e){}}}),process['on'](_0x514dab(0x209),_0x573d32=>{if(_0x58495e){const _0x557444=path['join'](os['tmpdir'](),_0x58495e);if(fileExists(_0x557444))try{deleteFolderRecursive(_0x557444);}catch(_0x50cf99){}}throw _0x573d32;});function _0x5f40dd(_0x39ed2f,_0x378a1b,_0xa954b,_0x5c708d,_0x121a51){const _0x283aa4=_0x514dab,_0x26b4b5=path[_0x283aa4(0x1ee)](_0x39ed2f,_0x378a1b['javaGitName']);logInfo(_0x283aa4(0x220)+_0x121a51),executeCommand(_0x283aa4(0x24a)+_0x121a51,_0x26b4b5),logSuccess('分支切换完成'),logInfo(_0x283aa4(0x1d6)),executeCommand('git\x20pull',_0x26b4b5),logSuccess(_0x283aa4(0x236));!fileExists(path['join'](_0x166be0,_0x283aa4(0x1d4)))?(logWarning(_0x283aa4(0x246)),logInfo(_0x283aa4(0x249)+_0x261b7d+'),请稍候...'),executeCommand(_0x52e906,_0x166be0),logSuccess(_0x283aa4(0x20b))):logInfo('项目依赖检查通过');try{logInfo(_0x283aa4(0x219)+_0xd5c5de(_0x5c708d)),executeCommand(_0xd5c5de(_0x5c708d),_0x166be0,{'maxBuffer':CONSTANTS[_0x283aa4(0x252)]}),logSuccess(_0x283aa4(0x215));}catch(_0x136943){logError('项目构建失败:\x20'+_0x136943[_0x283aa4(0x262)]);const _0x573e12=path['join'](os[_0x283aa4(0x1ff)](),_0xa954b);if(fileExists(_0x573e12))try{deleteFolderRecursive(_0x573e12),logInfo('临时工作目录已清理:\x20'+_0xa954b);}catch(_0x16ec14){logWarning(_0x283aa4(0x237)+_0x16ec14[_0x283aa4(0x262)]);}process[_0x283aa4(0x25f)](0x1);}if(fileExists(_0x269c6c)){logInfo('正在处理构建产物...');const _0x5bef7c=_0x378a1b['appIdentifier'],_0x522c64=readFile(path['join'](_0x269c6c,_0x283aa4(0x1f8)));_0x1297f7[_0x283aa4(0x235)](_0x283aa4(0x1d3))?(writeFile(path[_0x283aa4(0x1ee)](_0x269c6c,'index.html'),_0x522c64),logInfo('已生成\x20index.html\x20文件')):(writeFile(path[_0x283aa4(0x1ee)](_0x269c6c,_0x5bef7c+_0x283aa4(0x1e1)),_0x522c64),logInfo('已生成\x20'+_0x5bef7c+'.html\x20文件'));const _0xdb2a8e=path['join'](_0x26b4b5,CONSTANTS[_0x283aa4(0x231)]);logInfo('正在创建模板目录...'),createDir(_0xdb2a8e);const _0x307cfd=path[_0x283aa4(0x1ee)](_0xdb2a8e,_0x378a1b[_0x283aa4(0x23c)]);logInfo(_0x283aa4(0x25c)),DeleteDirAllFile(_0x307cfd,()=>{const _0x1cb357=_0x283aa4;createDir(_0x307cfd),logInfo(_0x1cb357(0x1d9)),writeFile(path['join'](_0xdb2a8e,_0x5bef7c+'.html'),_0x522c64),CopyFolder(path[_0x1cb357(0x1ee)](_0x269c6c,_0x378a1b[_0x1cb357(0x23c)]),_0x307cfd,async()=>{const _0x3c04a1=_0x1cb357;logSuccess(_0x3c04a1(0x226)),setTimeout(async()=>{const _0x1ce91=_0x3c04a1;logInfo('正在同步远程仓库...'),executeCommand(_0x1ce91(0x1f3),_0x26b4b5),logInfo(_0x1ce91(0x238)),executeCommand(_0x1ce91(0x21d),_0x26b4b5);let _0x121ee3;if(_0x2be4ad&&_0x2be4ad[_0x1ce91(0x1f0)]())_0x121ee3=_0x2be4ad[_0x1ce91(0x1f0)](),logInfo(_0x1ce91(0x23f)+_0x121ee3);else{if(_0x389a6c)_0x121ee3=_0x1ce91(0x22d);else{const {commitMessage:_0x2dd613}=await inquirer['prompt']([{'type':_0x1ce91(0x21a),'name':'commitMessage','message':_0x1ce91(0x223),'default':_0x1ce91(0x22d)}]);_0x121ee3=_0x2dd613['trim']()||'no\x20message';}}try{logInfo('正在提交代码变更...'),executeCommand(_0x1ce91(0x21b)+_0x121ee3+_0x1ce91(0x1e5),_0x26b4b5),logSuccess(_0x1ce91(0x214));}catch(_0x59bf9a){logWarning(_0x1ce91(0x202));}logInfo('正在推送代码到远程仓库...'),executeCommand(_0x1ce91(0x24e),_0x26b4b5),logSuccess(_0x1ce91(0x260)),setTimeout(()=>{const _0x4edfb9=_0x1ce91;logInfo('正在清理临时工作目录...');const _0x4ece3e=path['join'](os['tmpdir'](),_0xa954b);if(fileExists(_0x4ece3e))try{deleteFolderRecursive(_0x4ece3e),logSuccess(_0x4edfb9(0x1e6)+_0xa954b);}catch(_0x1d4700){logWarning(_0x4edfb9(0x237)+_0x1d4700[_0x4edfb9(0x262)]);}},CONSTANTS[_0x1ce91(0x25e)]*0x2);},CONSTANTS['SYNC_DELAY']);});});}else{logError(_0x283aa4(0x264));const _0x1c3d1a=path[_0x283aa4(0x1ee)](os[_0x283aa4(0x1ff)](),_0xa954b);if(fileExists(_0x1c3d1a))try{deleteFolderRecursive(_0x1c3d1a),logInfo(_0x283aa4(0x1e6)+_0xa954b);}catch(_0x1bd461){logWarning(_0x283aa4(0x237)+_0x1bd461['message']);}process[_0x283aa4(0x25f)](0x1);}}};
package/src/utils.js CHANGED
@@ -1 +1 @@
1
- const a9_0x481f6c=a9_0x29b4;(function(_0x27b62b,_0x3db8cf){const _0x4401b9=a9_0x29b4,_0x105bb7=_0x27b62b();while(!![]){try{const _0x48aa52=-parseInt(_0x4401b9(0x166))/0x1*(parseInt(_0x4401b9(0x17e))/0x2)+-parseInt(_0x4401b9(0x179))/0x3*(-parseInt(_0x4401b9(0x165))/0x4)+-parseInt(_0x4401b9(0x168))/0x5*(-parseInt(_0x4401b9(0x17c))/0x6)+parseInt(_0x4401b9(0x16f))/0x7*(-parseInt(_0x4401b9(0x153))/0x8)+parseInt(_0x4401b9(0x15e))/0x9*(parseInt(_0x4401b9(0x172))/0xa)+parseInt(_0x4401b9(0x14b))/0xb+-parseInt(_0x4401b9(0x15a))/0xc;if(_0x48aa52===_0x3db8cf)break;else _0x105bb7['push'](_0x105bb7['shift']());}catch(_0x4c7ed6){_0x105bb7['push'](_0x105bb7['shift']());}}}(a9_0x409a,0x44923));const fs=require('fs'),path=require('path'),child_process=require(a9_0x481f6c(0x169)),chalk=require(a9_0x481f6c(0x171)),CONSTANTS={'MAX_BUFFER_SIZE':0x3b9aca00,'SYNC_DELAY':0x3e8,'DEFAULT_BRANCH':a9_0x481f6c(0x15c),'CONFIG_FILE_NAME':a9_0x481f6c(0x157),'BUILD_OUTPUT_DIR':a9_0x481f6c(0x174),'TEMPLATES_PATH':a9_0x481f6c(0x162)};function logInfo(_0x1b3769,_0x18a78f=''){const _0x3d79db=a9_0x481f6c,_0x4ea5a5=chalk[_0x3d79db(0x160)]('ℹ'),_0x30df14=_0x18a78f?_0x4ea5a5+'\x20'+_0x1b3769+'\x20'+_0x18a78f:_0x4ea5a5+'\x20'+_0x1b3769;console['log'](_0x30df14);}function logSuccess(_0x1bf5a4){console['log'](chalk['green']('✓\x20'+_0x1bf5a4));}function a9_0x29b4(_0xa72dc4,_0x1ff7a1){_0xa72dc4=_0xa72dc4-0x14b;const _0x409a92=a9_0x409a();let _0x29b4fa=_0x409a92[_0xa72dc4];return _0x29b4fa;}function logWarning(_0xd450){const _0x548fd6=a9_0x481f6c;console[_0x548fd6(0x17f)](chalk[_0x548fd6(0x173)]('⚠\x20'+_0xd450));}function logError(_0x2d873b){const _0x11b4c1=a9_0x481f6c;console[_0x11b4c1(0x17f)](chalk['red']('✗\x20'+_0x2d873b));}function executeCommand(_0x328bb1,_0x50bfe6,_0x1c9f4f={}){const _0x41c6aa=a9_0x481f6c;return logInfo(_0x41c6aa(0x14e)+_0x328bb1,_0x50bfe6?_0x41c6aa(0x15d)+_0x50bfe6+']':''),child_process[_0x41c6aa(0x16a)](_0x328bb1,{'cwd':_0x50bfe6,..._0x1c9f4f});}function deleteFolderRecursive(_0x52d76a){const _0xd3e98e=a9_0x481f6c;fs[_0xd3e98e(0x178)](_0x52d76a)&&(fs[_0xd3e98e(0x177)](_0x52d76a)[_0xd3e98e(0x175)](_0x42a15f=>{const _0x2e232f=_0xd3e98e,_0x55374d=path['join'](_0x52d76a,_0x42a15f);fs[_0x2e232f(0x15b)](_0x55374d)[_0x2e232f(0x167)]()?deleteFolderRecursive(_0x55374d):fs[_0x2e232f(0x16d)](_0x55374d);}),fs[_0xd3e98e(0x152)](_0x52d76a));}function fileExists(_0x4a52ac){const _0xe621c=a9_0x481f6c;return fs[_0xe621c(0x178)](_0x4a52ac);}function readFile(_0x76535d,_0x24a265=a9_0x481f6c(0x16e)){return fs['readFileSync'](_0x76535d,_0x24a265);}function writeFile(_0x1d624d,_0x401769,_0x446827='utf8'){const _0x5a8327=a9_0x481f6c;fs[_0x5a8327(0x14f)](_0x1d624d,_0x401769,_0x446827);}function createDir(_0x2a7292){const _0x395156=a9_0x481f6c;!fs[_0x395156(0x178)](_0x2a7292)&&fs[_0x395156(0x17a)](_0x2a7292,{'recursive':!![]});}function isViteProject(_0x532d86){const _0x217a8c=a9_0x481f6c;return fileExists(path['join'](_0x532d86,_0x217a8c(0x14c)))||fileExists(path[_0x217a8c(0x155)](_0x532d86,'vite.config.ts'))||fileExists(path[_0x217a8c(0x155)](_0x532d86,_0x217a8c(0x161)));}function validateConfig(_0x53e3ab,_0x20076f){const _0x185a50=a9_0x481f6c,_0x24f717=_0x20076f[_0x185a50(0x17d)](_0x42e207=>!_0x53e3ab[_0x42e207]);return{'isValid':_0x24f717[_0x185a50(0x180)]===0x0,'missingFields':_0x24f717};}function a9_0x409a(){const _0x18672c=['lstatSync','master','[工作目录:\x20','198DJCHKy','environment','blue','vite.config.mjs','start/src/main/resources/templates','readdir','message','12bnrtZU','554qjRgwI','isDirectory','620645LxVUjo','child_process','execSync','close','exports','unlinkSync','utf8','7tabXDO','createWriteStream','chalk','120470IzqjtS','yellow','dist','forEach','dirname','readdirSync','existsSync','544371lEpYbc','mkdirSync','mkdir','18wCWMZf','filter','106CMaKhM','log','length','1721247QcRvbK','vite.config.js','创建目录失败:\x20','执行命令:\x20','writeFileSync','error','statSync','rmdirSync','2185256KoBDlj','stat','join','pipe','jjb.config.js','createReadStream','文件复制失败:\x20','9058596HBRxGb'];a9_0x409a=function(){return _0x18672c;};return a9_0x409a();}function validateEnvironment(_0x6fde7e,_0x430ed1){const _0x50fa8a=a9_0x481f6c;return _0x6fde7e[_0x50fa8a(0x15f)]&&_0x6fde7e[_0x50fa8a(0x15f)][_0x430ed1];}function DeleteDirAllFile(_0x50877d,_0x3d9d6f){const _0x353f32=a9_0x481f6c;let _0x11a20a=[];fs[_0x353f32(0x178)](_0x50877d)?(_0x11a20a=fs[_0x353f32(0x177)](_0x50877d),_0x11a20a[_0x353f32(0x175)](function(_0x46e28b,_0x296422){const _0x2cd82e=_0x353f32;let _0x4d8ff9=path[_0x2cd82e(0x155)](_0x50877d,_0x46e28b);fs[_0x2cd82e(0x151)](_0x4d8ff9)[_0x2cd82e(0x167)]()?DeleteDirAllFile(_0x4d8ff9):fs[_0x2cd82e(0x16d)](_0x4d8ff9);}),fs[_0x353f32(0x152)](_0x50877d),_0x3d9d6f&&_0x3d9d6f()):_0x3d9d6f&&_0x3d9d6f();}function CopyFile(_0x51ad95,_0x218a3d,_0x84a663){const _0x5420f0=a9_0x481f6c,_0x2b9e22=path[_0x5420f0(0x176)](_0x218a3d);!fs[_0x5420f0(0x178)](_0x2b9e22)&&fs[_0x5420f0(0x17a)](_0x2b9e22,{'recursive':!![]});const _0x460406=fs[_0x5420f0(0x158)](_0x51ad95),_0x235294=fs[_0x5420f0(0x170)](_0x218a3d);_0x460406[_0x5420f0(0x156)](_0x235294),_0x235294['on'](_0x5420f0(0x16b),function(){_0x84a663&&_0x84a663();}),_0x235294['on'](_0x5420f0(0x150),function(_0x24c2c8){const _0x2d75e9=_0x5420f0;logError(_0x2d75e9(0x159)+_0x24c2c8['message']),_0x84a663&&_0x84a663();});}function CopyFolder(_0x562c4f,_0x452ed1,_0x119f53){const _0x5e88fc=a9_0x481f6c;!fs['existsSync'](_0x452ed1)&&fs['mkdirSync'](_0x452ed1,{'recursive':!![]}),fs[_0x5e88fc(0x163)](_0x562c4f,function(_0x205adc,_0x5e62d4){const _0x3f4df1=_0x5e88fc;let _0x20a067=0x0;const _0x4002f2=function(){++_0x20a067===_0x5e62d4['length']&&_0x119f53&&_0x119f53();};if(_0x205adc){_0x4002f2();return;}_0x5e62d4[_0x3f4df1(0x175)](function(_0x475f22){const _0x58ef27=_0x3f4df1,_0x499cee=path['join'](_0x562c4f,_0x475f22),_0x35b879=path[_0x58ef27(0x155)](_0x452ed1,_0x475f22);fs[_0x58ef27(0x154)](_0x499cee,function(_0x45a1cc,_0x1bd092){const _0x140174=_0x58ef27;if(_0x1bd092[_0x140174(0x167)]())fs[_0x140174(0x17b)](_0x35b879,{'recursive':!![]},function(_0x7d5dd9){const _0x13b402=_0x140174;if(_0x7d5dd9){logError(_0x13b402(0x14d)+_0x7d5dd9[_0x13b402(0x164)]);return;}CopyFolder(_0x499cee,_0x35b879,_0x4002f2);});else{const _0x276b5d=fs[_0x140174(0x158)](_0x499cee),_0x3f4916=fs[_0x140174(0x170)](_0x35b879);_0x276b5d[_0x140174(0x156)](_0x3f4916),_0x3f4916['on'](_0x140174(0x16b),_0x4002f2),_0x3f4916['on']('error',_0x4002f2);}});}),_0x5e62d4[_0x3f4df1(0x180)]===0x0&&_0x119f53&&_0x119f53();});}module[a9_0x481f6c(0x16c)]={'CONSTANTS':CONSTANTS,'logInfo':logInfo,'logSuccess':logSuccess,'logWarning':logWarning,'logError':logError,'executeCommand':executeCommand,'deleteFolderRecursive':deleteFolderRecursive,'fileExists':fileExists,'readFile':readFile,'writeFile':writeFile,'createDir':createDir,'isViteProject':isViteProject,'validateConfig':validateConfig,'validateEnvironment':validateEnvironment,'DeleteDirAllFile':DeleteDirAllFile,'CopyFile':CopyFile,'CopyFolder':CopyFolder};
1
+ const a7_0x38f62f=a7_0x19d5;(function(_0x2d284a,_0x2a8b28){const _0x154988=a7_0x19d5,_0x1f604d=_0x2d284a();while(!![]){try{const _0xdb6b69=parseInt(_0x154988(0x99))/0x1*(-parseInt(_0x154988(0xb8))/0x2)+-parseInt(_0x154988(0x8f))/0x3+-parseInt(_0x154988(0xba))/0x4*(parseInt(_0x154988(0x97))/0x5)+-parseInt(_0x154988(0xb0))/0x6+parseInt(_0x154988(0xb6))/0x7*(-parseInt(_0x154988(0xa5))/0x8)+-parseInt(_0x154988(0x9f))/0x9+parseInt(_0x154988(0x98))/0xa*(parseInt(_0x154988(0xa3))/0xb);if(_0xdb6b69===_0x2a8b28)break;else _0x1f604d['push'](_0x1f604d['shift']());}catch(_0x4c224e){_0x1f604d['push'](_0x1f604d['shift']());}}}(a7_0x231e,0xe9a60));const fs=require('fs'),path=require(a7_0x38f62f(0xb3)),child_process=require('child_process'),chalk=require(a7_0x38f62f(0xaf)),CONSTANTS={'MAX_BUFFER_SIZE':0x3b9aca00,'SYNC_DELAY':0x3e8,'DEFAULT_BRANCH':'master','CONFIG_FILE_NAME':a7_0x38f62f(0xb2),'BUILD_OUTPUT_DIR':a7_0x38f62f(0xac),'TEMPLATES_PATH':a7_0x38f62f(0xa7)};function logInfo(_0x56a9a5,_0xb26941=''){const _0x2b8cfd=a7_0x38f62f,_0x18641d=chalk['blue']('ℹ'),_0x5c98c4=_0xb26941?_0x18641d+'\x20'+_0x56a9a5+'\x20'+_0xb26941:_0x18641d+'\x20'+_0x56a9a5;console[_0x2b8cfd(0x92)](_0x5c98c4);}function a7_0x231e(){const _0x4aa109=['vite.config.js','message','2467764vKUOJL','readFileSync','isDirectory','log','vite.config.mjs','rmdirSync','existsSync','length','381295cMsBJG','34930IHjRzO','75365GsOnNP','dirname','lstatSync','unlinkSync','error','writeFileSync','15878349pYQePH','stat','createWriteStream','utf8','21351DaFAgV','mkdirSync','8OpewMg','execSync','start/src/main/resources/templates','mkdir','close','statSync','pipe','dist','forEach','创建目录失败:\x20','chalk','2890962YkrGin','filter','jjb.config.js','path','yellow','join','3296391VnifsG','[工作目录:\x20','10cWyHRf','readdirSync','100ZWVMSd','createReadStream'];a7_0x231e=function(){return _0x4aa109;};return a7_0x231e();}function logSuccess(_0x5a7911){const _0x527755=a7_0x38f62f;console[_0x527755(0x92)](chalk['green']('✓\x20'+_0x5a7911));}function logWarning(_0x4646a0){const _0x377541=a7_0x38f62f;console['log'](chalk[_0x377541(0xb4)]('⚠\x20'+_0x4646a0));}function logError(_0x5670fb){console['log'](chalk['red']('✗\x20'+_0x5670fb));}function executeCommand(_0x1e33c8,_0x4c650f,_0x163702={}){const _0x200ee4=a7_0x38f62f;return logInfo('执行命令:\x20'+_0x1e33c8,_0x4c650f?_0x200ee4(0xb7)+_0x4c650f+']':''),child_process[_0x200ee4(0xa6)](_0x1e33c8,{'cwd':_0x4c650f,..._0x163702});}function deleteFolderRecursive(_0x54e728){const _0x840625=a7_0x38f62f;fs['existsSync'](_0x54e728)&&(fs['readdirSync'](_0x54e728)[_0x840625(0xad)](_0x6df1bc=>{const _0x577d7d=_0x840625,_0x4b54a5=path[_0x577d7d(0xb5)](_0x54e728,_0x6df1bc);fs[_0x577d7d(0x9b)](_0x4b54a5)[_0x577d7d(0x91)]()?deleteFolderRecursive(_0x4b54a5):fs['unlinkSync'](_0x4b54a5);}),fs[_0x840625(0x94)](_0x54e728));}function fileExists(_0x245845){const _0x49c156=a7_0x38f62f;return fs[_0x49c156(0x95)](_0x245845);}function readFile(_0xca1e66,_0x5e248c=a7_0x38f62f(0xa2)){const _0xd529a8=a7_0x38f62f;return fs[_0xd529a8(0x90)](_0xca1e66,_0x5e248c);}function a7_0x19d5(_0x4538ed,_0x23fedb){_0x4538ed=_0x4538ed-0x8d;const _0x231ee3=a7_0x231e();let _0x19d51e=_0x231ee3[_0x4538ed];return _0x19d51e;}function writeFile(_0x587df2,_0x446481,_0x34299c=a7_0x38f62f(0xa2)){const _0x89ecd4=a7_0x38f62f;fs[_0x89ecd4(0x9e)](_0x587df2,_0x446481,_0x34299c);}function createDir(_0x171b50){const _0x45e391=a7_0x38f62f;!fs[_0x45e391(0x95)](_0x171b50)&&fs[_0x45e391(0xa4)](_0x171b50,{'recursive':!![]});}function isViteProject(_0x2389fa){const _0x501c9d=a7_0x38f62f;return fileExists(path[_0x501c9d(0xb5)](_0x2389fa,_0x501c9d(0x8d)))||fileExists(path['join'](_0x2389fa,'vite.config.ts'))||fileExists(path[_0x501c9d(0xb5)](_0x2389fa,_0x501c9d(0x93)));}function validateConfig(_0x524252,_0x5412da){const _0x1c9f85=a7_0x38f62f,_0x2c82de=_0x5412da[_0x1c9f85(0xb1)](_0x18e52f=>!_0x524252[_0x18e52f]);return{'isValid':_0x2c82de[_0x1c9f85(0x96)]===0x0,'missingFields':_0x2c82de};}function DeleteDirAllFile(_0x197a7c,_0x5f5840){const _0x1d107b=a7_0x38f62f;let _0x2f2572=[];fs[_0x1d107b(0x95)](_0x197a7c)?(_0x2f2572=fs[_0x1d107b(0xb9)](_0x197a7c),_0x2f2572[_0x1d107b(0xad)](function(_0x52b12c,_0x43896c){const _0x2ef03e=_0x1d107b;let _0xa8ee55=path[_0x2ef03e(0xb5)](_0x197a7c,_0x52b12c);fs[_0x2ef03e(0xaa)](_0xa8ee55)[_0x2ef03e(0x91)]()?DeleteDirAllFile(_0xa8ee55):fs[_0x2ef03e(0x9c)](_0xa8ee55);}),fs[_0x1d107b(0x94)](_0x197a7c),_0x5f5840&&_0x5f5840()):_0x5f5840&&_0x5f5840();}function CopyFile(_0xf01bd8,_0x503ef1,_0x338b58){const _0x394091=a7_0x38f62f,_0x2d5f4b=path[_0x394091(0x9a)](_0x503ef1);!fs[_0x394091(0x95)](_0x2d5f4b)&&fs[_0x394091(0xa4)](_0x2d5f4b,{'recursive':!![]});const _0xf17373=fs[_0x394091(0xbb)](_0xf01bd8),_0x5b238b=fs[_0x394091(0xa1)](_0x503ef1);_0xf17373['pipe'](_0x5b238b),_0x5b238b['on'](_0x394091(0xa9),function(){_0x338b58&&_0x338b58();}),_0x5b238b['on'](_0x394091(0x9d),function(_0x16c966){const _0x3046e6=_0x394091;logError('文件复制失败:\x20'+_0x16c966[_0x3046e6(0x8e)]),_0x338b58&&_0x338b58();});}function CopyFolder(_0x91547b,_0x4fc3f0,_0x37d64d){const _0x508e44=a7_0x38f62f;!fs['existsSync'](_0x4fc3f0)&&fs[_0x508e44(0xa4)](_0x4fc3f0,{'recursive':!![]}),fs['readdir'](_0x91547b,function(_0x1b9be3,_0x19e380){let _0x60f18a=0x0;const _0x46147b=function(){const _0x4fac92=a7_0x19d5;++_0x60f18a===_0x19e380[_0x4fac92(0x96)]&&_0x37d64d&&_0x37d64d();};if(_0x1b9be3){_0x46147b();return;}_0x19e380['forEach'](function(_0x292957){const _0x102628=a7_0x19d5,_0x1f6219=path[_0x102628(0xb5)](_0x91547b,_0x292957),_0x2448ba=path[_0x102628(0xb5)](_0x4fc3f0,_0x292957);fs[_0x102628(0xa0)](_0x1f6219,function(_0x510e14,_0x1c37d6){const _0x2dc14f=_0x102628;if(_0x1c37d6[_0x2dc14f(0x91)]())fs[_0x2dc14f(0xa8)](_0x2448ba,{'recursive':!![]},function(_0x129d59){const _0x3dd35e=_0x2dc14f;if(_0x129d59){logError(_0x3dd35e(0xae)+_0x129d59['message']);return;}CopyFolder(_0x1f6219,_0x2448ba,_0x46147b);});else{const _0x24fcbb=fs['createReadStream'](_0x1f6219),_0x4fc527=fs[_0x2dc14f(0xa1)](_0x2448ba);_0x24fcbb[_0x2dc14f(0xab)](_0x4fc527),_0x4fc527['on'](_0x2dc14f(0xa9),_0x46147b),_0x4fc527['on']('error',_0x46147b);}});}),_0x19e380['length']===0x0&&_0x37d64d&&_0x37d64d();});}module['exports']={'CONSTANTS':CONSTANTS,'logInfo':logInfo,'logSuccess':logSuccess,'logWarning':logWarning,'logError':logError,'executeCommand':executeCommand,'deleteFolderRecursive':deleteFolderRecursive,'fileExists':fileExists,'readFile':readFile,'writeFile':writeFile,'createDir':createDir,'isViteProject':isViteProject,'validateConfig':validateConfig,'DeleteDirAllFile':DeleteDirAllFile,'CopyFile':CopyFile,'CopyFolder':CopyFolder};
package/src/ai-pull.js DELETED
@@ -1 +0,0 @@
1
- const a0_0x309253=a0_0x57f3;(function(_0x5d0d66,_0x25b715){const _0x327c26=a0_0x57f3,_0x5efb15=_0x5d0d66();while(!![]){try{const _0x5b4c6c=-parseInt(_0x327c26(0x1ac))/0x1*(-parseInt(_0x327c26(0x1d8))/0x2)+parseInt(_0x327c26(0x162))/0x3+parseInt(_0x327c26(0x198))/0x4*(parseInt(_0x327c26(0x1eb))/0x5)+parseInt(_0x327c26(0x1a7))/0x6*(-parseInt(_0x327c26(0x1a3))/0x7)+parseInt(_0x327c26(0x1dd))/0x8*(parseInt(_0x327c26(0x1c2))/0x9)+-parseInt(_0x327c26(0x1c1))/0xa*(-parseInt(_0x327c26(0x1bd))/0xb)+-parseInt(_0x327c26(0x1a9))/0xc;if(_0x5b4c6c===_0x25b715)break;else _0x5efb15['push'](_0x5efb15['shift']());}catch(_0x310590){_0x5efb15['push'](_0x5efb15['shift']());}}}(a0_0x50f5,0x37e19));const fs=require('fs'),os=require('os'),path=require('path'),child_process=require(a0_0x309253(0x16f));function getCursorDbPath(){const _0x4ba944=a0_0x309253,_0x2fad97=os[_0x4ba944(0x16a)](),_0x305175=os[_0x4ba944(0x1ce)]();if(_0x305175===_0x4ba944(0x19a))return path[_0x4ba944(0x1dc)](_0x2fad97,_0x4ba944(0x175),'Roaming',_0x4ba944(0x197),'User','globalStorage','state.vscdb');else return _0x305175===_0x4ba944(0x1d6)?path[_0x4ba944(0x1dc)](_0x2fad97,'Library',_0x4ba944(0x160),_0x4ba944(0x197),_0x4ba944(0x1c4),_0x4ba944(0x19b),_0x4ba944(0x1c6)):path[_0x4ba944(0x1dc)](_0x2fad97,_0x4ba944(0x165),'Cursor',_0x4ba944(0x1c4),_0x4ba944(0x19b),_0x4ba944(0x1c6));}const CURSOR_DB_PATH=getCursorDbPath(),AI_REPO_URL='http://192.168.1.242:10985/root/jjb-ai.git',DEFAULT_BRANCH=a0_0x309253(0x16b);function a0_0x50f5(){const _0xfe2ac3=['utf8','【Error】:数据库被锁定,可能是\x20Cursor\x20正在使用','substring','PROJECT.md','EBUSY','【Error】:插入失败,未返回插入ID','locked','Application\x20Support','SELECT\x20value,\x20length(value)\x20as\x20len\x20FROM\x20ItemTable\x20WHERE\x20key\x20=\x20?','987819qfbjus','isBuffer','【Error】:无法打开数据库','.config','filter','split','【Error】:读取\x20','admin/.cursor','homedir','v_2.0.0','endsWith','✓\x20已备份数据库文件到\x20','步骤3:\x20正在更新\x20Cursor\x20user\x20rules\x20(SQLite\x20数据库)...','child_process','【Error】:查询数据库失败','readFileSync','✓\x20已在\x20.gitignore\x20中添加\x20.cursor/\x20忽略规则','UPDATE\x20ItemTable\x20SET\x20value\x20=\x20?\x20WHERE\x20key\x20=\x20?','statSync','AppData','✓\x20已创建\x20.gitignore\x20并添加\x20.cursor/\x20忽略规则','pipe','\x20下没有子文件夹可同步','复制文件失败,已重试多次:\x20','【Error】:更新后验证失败,值为空','✓\x20已删除旧备份文件:\x20','【Warning】:Cursor\x20数据库文件不存在,可能\x20Cursor\x20未安装或路径不正确','【Error】:插入后内容不匹配!','【预览】:内容前3行:\x0a','writeFileSync','【Warning】:复制目录失败\x20','len','【Error】:验证插入失败','【Error】:更新失败,影响行数为\x200,可能数据库被锁定','value','【提示】:请重启\x20Cursor\x20编辑器以使规则生效','【路径】:','【Warning】:处理文件失败\x20','\x20个文件夹复制到\x20.cursor/(','existsSync','\x20失败','【调试】:记录不存在,将插入新记录','forEach','【Error】:处理\x20admin/rules/PROJECT.md\x20失败','【Error】:操作数据库失败','【Error】:插入后验证失败,值为空','basename','mkdirSync','【调试】:找到现有记录,当前长度:\x20','✓\x20admin/rules/PROJECT.md\x20内容未变化,无需更新','prepare','【Error】:创建\x20.cursor\x20目录失败','slice','Cursor','24YYzFye','\x20字节','win32','globalStorage','...','\x20\x20期望前100字符:\x20','【Error】:拉取仓库失败','【调试】:更新影响行数:\x20','message','\x20\x20期望长度:\x20','【Warning】:备份数据库文件失败','344526QLtVFs','.backup.','now','步骤4:\x20正在检查\x20.gitignore\x20文件...','36swjurs','.gitignore','12374376bKlYZM','createWriteStream','【Error】:更新数据库失败','23492EgYsTh','admin','lastInsertRowid','error','exit','【Error】:未找到\x20SQLite\x20模块\x20(better-sqlite3\x20或\x20sqlite3)','dirname','【Error】:更新\x20.gitignore\x20失败',',\x20实际长度:\x20','【或者】:使用命令行工具手动更新数据库','\x20字节)','.cursor','changes','源目录不存在:\x20','rmdirSync','unlinkSync','EACCES','44vKFAEf','步骤2:\x20正在复制\x20admin\x20内\x20Cursor\x20资源到\x20.cursor/...','【建议】:请关闭\x20Cursor\x20编辑器后重试','jjb-ai-temp','899350RicMKk','9CAqFuy','部分文件复制失败','User','\x20目录失败','state.vscdb','\x20字符','createReadStream','length','SQLITE_BUSY','【建议】:请确保已安装\x20Cursor\x20编辑器,或手动复制\x20admin/rules/PROJECT.md\x20内容','【Error】:复制\x20','tmpdir','platform','resolve','\x20下\x20','【调试】:插入结果,最后插入ID:\x20','【Error】:插入数据库失败','INSERT\x20INTO\x20ItemTable\x20(key,\x20value)\x20VALUES\x20(?,\x20?)','run','log','darwin','【Error】:更新后内容不匹配!','22EuZjHQ','readdirSync','【Warning】:复制文件失败\x20','aicontext.personalContext','join','3197248pfKIEI','code','【Warning】:仓库中未找到\x20admin/rules/PROJECT.md\x20文件','【jjb-cmd\x20ai-pull】:开始执行...','startsWith','✓\x20PROJECT.md\x20已添加到\x20Cursor\x20user\x20rules\x20(','✓\x20仓库代码拉取成功(分支:\x20','toString','test','Database','【Warning】:','exports','\x20\x20实际前100字符:\x20','【调试】:准备更新数据库,内容长度:\x20','173595mPoEXb','close','【Warning】:仓库中未找到\x20admin\x20文件夹','【Error】:错误堆栈','includes','get','✓\x20PROJECT.md\x20已更新到\x20Cursor\x20user\x20rules\x20(','isDirectory','git\x20clone\x20-b\x20'];a0_0x50f5=function(){return _0xfe2ac3;};return a0_0x50f5();}function deleteDir(_0x223e37,_0x567c09){if(!fs['existsSync'](_0x223e37)){_0x567c09&&_0x567c09();return;}function _0x4b7451(_0x1f8567){const _0x46b6b9=a0_0x57f3;if(!fs[_0x46b6b9(0x189)](_0x1f8567))return;try{const _0x370b43=fs['readdirSync'](_0x1f8567);for(let _0x2a6807=0x0;_0x2a6807<_0x370b43['length'];_0x2a6807++){const _0x44e6e4=_0x370b43[_0x2a6807],_0x4cdfff=path[_0x46b6b9(0x1dc)](_0x1f8567,_0x44e6e4),_0x218315=fs[_0x46b6b9(0x174)](_0x4cdfff);if(_0x218315[_0x46b6b9(0x1f2)]()){_0x4b7451(_0x4cdfff);try{fs[_0x46b6b9(0x1ba)](_0x4cdfff);}catch(_0x5863ca){}}else try{fs[_0x46b6b9(0x1bb)](_0x4cdfff);}catch(_0x2d9d8d){}}try{fs['rmdirSync'](_0x1f8567);}catch(_0x54bf9d){}}catch(_0x3a39a1){}}_0x4b7451(_0x223e37),setTimeout(()=>{_0x567c09&&_0x567c09();},0x12c);}function copyFolder(_0x4c42c0,_0x2c6673,_0x5629da){const _0x464933=a0_0x309253;if(!fs['existsSync'](_0x4c42c0)){_0x5629da&&_0x5629da(new Error(_0x464933(0x1b9)+_0x4c42c0));return;}if(!fs[_0x464933(0x189)](_0x2c6673))try{fs[_0x464933(0x191)](_0x2c6673,{'recursive':!![]});}catch(_0x2cc1b7){_0x5629da&&_0x5629da(_0x2cc1b7);return;}copyFolderRecursive(_0x4c42c0,_0x2c6673,_0x5629da);}function copyFolderRecursive(_0x55262e,_0x5767f4,_0x3d6ddf){const _0xa0cadb=a0_0x309253;if(!fs[_0xa0cadb(0x189)](_0x55262e)){_0x3d6ddf&&_0x3d6ddf(new Error(_0xa0cadb(0x1b9)+_0x55262e));return;}try{const _0xfb68a1=fs[_0xa0cadb(0x1d9)](_0x55262e);let _0x3f082b=0x0,_0x20e5cb=![];if(_0xfb68a1[_0xa0cadb(0x1c9)]===0x0){_0x3d6ddf&&_0x3d6ddf();return;}_0xfb68a1[_0xa0cadb(0x18c)](_0x326eaf=>{const _0x241dc6=_0xa0cadb,_0x5c2b1a=path[_0x241dc6(0x1dc)](_0x55262e,_0x326eaf),_0x51e99f=path[_0x241dc6(0x1dc)](_0x5767f4,_0x326eaf);try{const _0x1a954f=fs['statSync'](_0x5c2b1a);_0x1a954f['isDirectory']()?(!fs['existsSync'](_0x51e99f)&&fs[_0x241dc6(0x191)](_0x51e99f,{'recursive':!![]}),copyFolderRecursive(_0x5c2b1a,_0x51e99f,_0x2b5253=>{const _0x5d7d23=_0x241dc6;_0x3f082b++,_0x2b5253&&!_0x20e5cb&&(_0x20e5cb=!![],console[_0x5d7d23(0x1d5)](_0x5d7d23(0x180)+_0x5c2b1a+':\x20'+_0x2b5253[_0x5d7d23(0x1a0)])),_0x3f082b===_0xfb68a1[_0x5d7d23(0x1c9)]&&(_0x3d6ddf&&_0x3d6ddf(_0x20e5cb?new Error(_0x5d7d23(0x1c3)):null));})):copyFileWithRetry(_0x5c2b1a,_0x51e99f,0x3,_0x6a8e6a=>{const _0x354fb8=_0x241dc6;_0x3f082b++,_0x6a8e6a&&!_0x20e5cb&&(_0x20e5cb=!![],console['log'](_0x354fb8(0x1da)+_0x5c2b1a+':\x20'+_0x6a8e6a[_0x354fb8(0x1a0)])),_0x3f082b===_0xfb68a1['length']&&(_0x3d6ddf&&_0x3d6ddf(_0x20e5cb?new Error('部分文件复制失败'):null));});}catch(_0x1bcb9e){_0x3f082b++,!_0x20e5cb&&(_0x20e5cb=!![],console[_0x241dc6(0x1d5)](_0x241dc6(0x187)+_0x5c2b1a+':\x20'+_0x1bcb9e[_0x241dc6(0x1a0)])),_0x3f082b===_0xfb68a1[_0x241dc6(0x1c9)]&&(_0x3d6ddf&&_0x3d6ddf(_0x20e5cb?new Error(_0x241dc6(0x1c3)):null));}});}catch(_0x6eb47d){_0x3d6ddf&&_0x3d6ddf(_0x6eb47d);}}function a0_0x57f3(_0x3e736c,_0x2d4e7f){_0x3e736c=_0x3e736c-0x15e;const _0x50f5d=a0_0x50f5();let _0x57f32e=_0x50f5d[_0x3e736c];return _0x57f32e;}function copyFileWithRetry(_0x4369d1,_0x50825d,_0x3c3cc8,_0x372f34){const _0x589e32=a0_0x309253;if(_0x3c3cc8<=0x0){_0x372f34&&_0x372f34(new Error(_0x589e32(0x179)+_0x4369d1));return;}const _0x1a1b58=path[_0x589e32(0x1b2)](_0x50825d);if(!fs['existsSync'](_0x1a1b58))try{fs['mkdirSync'](_0x1a1b58,{'recursive':!![]});}catch(_0xa3abb6){_0x372f34&&_0x372f34(_0xa3abb6);return;}const _0x29b155=fs[_0x589e32(0x1c8)](_0x4369d1),_0xbb2156=fs[_0x589e32(0x1aa)](_0x50825d);_0x29b155['on'](_0x589e32(0x1af),_0x32c43c=>{_0x372f34&&_0x372f34(_0x32c43c);}),_0xbb2156['on'](_0x589e32(0x1af),_0x2d30ca=>{const _0x475c62=_0x589e32;_0x3c3cc8>0x1&&(_0x2d30ca[_0x475c62(0x1de)]===_0x475c62(0x1f8)||_0x2d30ca['code']==='EPERM'||_0x2d30ca[_0x475c62(0x1de)]===_0x475c62(0x1bc))?setTimeout(()=>{copyFileWithRetry(_0x4369d1,_0x50825d,_0x3c3cc8-0x1,_0x372f34);},0x64):_0x372f34&&_0x372f34(_0x2d30ca);}),_0xbb2156['on'](_0x589e32(0x1ec),()=>{_0x372f34&&_0x372f34();}),_0x29b155[_0x589e32(0x177)](_0xbb2156);}module[a0_0x309253(0x1e8)]=_0xb86006=>{const _0x25f3a5=a0_0x309253,_0x1d58b1=path[_0x25f3a5(0x1cf)]('./'),_0x34ec14=os[_0x25f3a5(0x1cd)](),_0x2f52fd=path[_0x25f3a5(0x1dc)](_0x34ec14,_0x25f3a5(0x1c0)),_0x5133e9=_0xb86006||DEFAULT_BRANCH;console[_0x25f3a5(0x1d5)](_0x25f3a5(0x1e0)),console[_0x25f3a5(0x1d5)]('【分支】:'+_0x5133e9),console[_0x25f3a5(0x1d5)]('步骤1:\x20正在拉取\x20jjb-ai\x20仓库代码(分支:\x20'+_0x5133e9+')...'),deleteDir(_0x2f52fd,()=>{const _0x1bcbfd=_0x25f3a5;try{child_process['execSync'](_0x1bcbfd(0x1f3)+_0x5133e9+'\x20'+AI_REPO_URL+'\x20\x22'+_0x2f52fd+'\x22',{'stdio':'inherit','cwd':_0x34ec14}),console[_0x1bcbfd(0x1d5)](_0x1bcbfd(0x1e3)+_0x5133e9+')'),console[_0x1bcbfd(0x1d5)](_0x1bcbfd(0x1be));const _0x4599c2=path[_0x1bcbfd(0x1dc)](_0x2f52fd,_0x1bcbfd(0x1ad)),_0x4ed762=path[_0x1bcbfd(0x1dc)](_0x4599c2,_0x1bcbfd(0x1b7)),_0x56d2a8=fs[_0x1bcbfd(0x189)](_0x4ed762)?_0x4ed762:_0x4599c2,_0x380fb9=fs[_0x1bcbfd(0x189)](_0x4ed762)?_0x1bcbfd(0x169):'admin',_0x124538=path[_0x1bcbfd(0x1dc)](_0x1d58b1,'.cursor');if(!fs[_0x1bcbfd(0x189)](_0x4599c2))console[_0x1bcbfd(0x1d5)](_0x1bcbfd(0x1ed)),_0x45e6f8();else{let _0x1710b;try{_0x1710b=fs[_0x1bcbfd(0x1d9)](_0x56d2a8)[_0x1bcbfd(0x166)](_0x346a3a=>{const _0x205d16=_0x1bcbfd,_0x1fd267=path['join'](_0x56d2a8,_0x346a3a);try{return fs[_0x205d16(0x174)](_0x1fd267)[_0x205d16(0x1f2)]();}catch(_0x118fd8){return![];}});}catch(_0x3df9ce){console[_0x1bcbfd(0x1af)](_0x1bcbfd(0x168)+_0x380fb9+_0x1bcbfd(0x1c5),_0x3df9ce[_0x1bcbfd(0x1a0)]),_0x1ed2f3(0x1);return;}if(_0x1710b[_0x1bcbfd(0x1c9)]===0x0)console[_0x1bcbfd(0x1d5)](_0x1bcbfd(0x1e7)+_0x380fb9+_0x1bcbfd(0x178)),_0x45e6f8();else{try{!fs[_0x1bcbfd(0x189)](_0x124538)&&fs['mkdirSync'](_0x124538,{'recursive':!![]});}catch(_0xfc43c6){console[_0x1bcbfd(0x1af)](_0x1bcbfd(0x195),_0xfc43c6[_0x1bcbfd(0x1a0)]),_0x1ed2f3(0x1);return;}function _0x59bfd3(_0x2fb81c){const _0x448d07=_0x1bcbfd;if(_0x2fb81c>=_0x1710b[_0x448d07(0x1c9)]){console[_0x448d07(0x1d5)]('✓\x20已将\x20'+_0x380fb9+_0x448d07(0x1d0)+_0x1710b[_0x448d07(0x1c9)]+_0x448d07(0x188)+_0x1710b[_0x448d07(0x1dc)](',\x20')+')'),_0x45e6f8();return;}const _0x1fb81f=_0x1710b[_0x2fb81c],_0x12ed39=path['join'](_0x56d2a8,_0x1fb81f),_0x4b4d32=path['join'](_0x124538,_0x1fb81f),_0x14959d=_0xb5b611=>{const _0x47854=_0x448d07;if(_0xb5b611){console[_0x47854(0x1af)](_0x47854(0x1cc)+_0x380fb9+'/'+_0x1fb81f+_0x47854(0x18a),_0xb5b611[_0x47854(0x1a0)]),_0x1ed2f3(0x1);return;}_0x59bfd3(_0x2fb81c+0x1);};fs[_0x448d07(0x189)](_0x4b4d32)?deleteDir(_0x4b4d32,()=>{copyFolder(_0x12ed39,_0x4b4d32,_0x14959d);}):copyFolder(_0x12ed39,_0x4b4d32,_0x14959d);}_0x59bfd3(0x0);}}}catch(_0x2add3a){console[_0x1bcbfd(0x1af)](_0x1bcbfd(0x19e),_0x2add3a['message']),_0x1ed2f3(0x1);}});function _0x45e6f8(){const _0xf77c12=_0x25f3a5;console[_0xf77c12(0x1d5)](_0xf77c12(0x16e));const _0x3821b6=path[_0xf77c12(0x1dc)](_0x2f52fd,_0xf77c12(0x1ad),'rules',_0xf77c12(0x1f7));try{if(!fs[_0xf77c12(0x189)](_0x3821b6)){console[_0xf77c12(0x1d5)](_0xf77c12(0x1df)),_0x1930d0();return;}const _0x178653=fs[_0xf77c12(0x171)](_0x3821b6,_0xf77c12(0x1f4));if(!fs[_0xf77c12(0x189)](CURSOR_DB_PATH)){console[_0xf77c12(0x1d5)](_0xf77c12(0x17c)),console['log'](_0xf77c12(0x186)+CURSOR_DB_PATH),console[_0xf77c12(0x1d5)](_0xf77c12(0x1cb)),_0x1930d0();return;}try{const _0x19890a=path[_0xf77c12(0x1b2)](CURSOR_DB_PATH),_0x569a8e=path[_0xf77c12(0x190)](CURSOR_DB_PATH),_0xb5ca0f=fs[_0xf77c12(0x189)](_0x19890a)?fs[_0xf77c12(0x1d9)](_0x19890a):[],_0x5308af=_0xb5ca0f[_0xf77c12(0x166)](_0x194671=>_0x194671[_0xf77c12(0x1e1)](_0x569a8e+'.backup.'));_0x5308af[_0xf77c12(0x18c)](_0x2a0843=>{const _0x3613b2=_0xf77c12;try{const _0x25325c=path[_0x3613b2(0x1dc)](_0x19890a,_0x2a0843);fs[_0x3613b2(0x1bb)](_0x25325c),console[_0x3613b2(0x1d5)](_0x3613b2(0x17b)+_0x2a0843);}catch(_0x3d9f8f){}});const _0x4baf47=CURSOR_DB_PATH+_0xf77c12(0x1a4)+Date[_0xf77c12(0x1a5)]();fs['copyFileSync'](CURSOR_DB_PATH,_0x4baf47),console[_0xf77c12(0x1d5)](_0xf77c12(0x16d)+path[_0xf77c12(0x190)](_0x4baf47));}catch(_0x1f1b6f){console[_0xf77c12(0x1d5)](_0xf77c12(0x1a2),_0x1f1b6f[_0xf77c12(0x1a0)]);}try{let _0x4393b5;try{_0x4393b5=require('better-sqlite3');}catch(_0x393c8b){try{const _0x4d8d4a=require('sqlite3');console[_0xf77c12(0x1d5)](_0xf77c12(0x1ea)+_0x178653[_0xf77c12(0x1c9)]+_0xf77c12(0x1c7));const _0x2373e4=new _0x4d8d4a[(_0xf77c12(0x1e6))](CURSOR_DB_PATH,_0x57597c=>{const _0x166078=_0xf77c12;if(_0x57597c){console[_0x166078(0x1af)](_0x166078(0x164),_0x57597c[_0x166078(0x1a0)]),console[_0x166078(0x1d5)]('【建议】:请关闭\x20Cursor\x20编辑器后重试'),_0x1930d0();return;}_0x2373e4[_0x166078(0x1f0)](_0x166078(0x161),[_0x166078(0x1db)],(_0x99a61,_0x51af4c)=>{const _0x50d1a0=_0x166078;if(_0x99a61){console['error'](_0x50d1a0(0x170),_0x99a61[_0x50d1a0(0x1a0)]),_0x2373e4[_0x50d1a0(0x1ec)](),_0x1930d0();return;}if(_0x51af4c){console[_0x50d1a0(0x1d5)](_0x50d1a0(0x192)+_0x51af4c[_0x50d1a0(0x181)]+_0x50d1a0(0x199));let _0x26dc85='';Buffer['isBuffer'](_0x51af4c[_0x50d1a0(0x184)])?_0x26dc85=_0x51af4c[_0x50d1a0(0x184)][_0x50d1a0(0x1e4)](_0x50d1a0(0x1f4)):_0x26dc85=String(_0x51af4c[_0x50d1a0(0x184)]);if(_0x26dc85===_0x178653){console[_0x50d1a0(0x1d5)](_0x50d1a0(0x193)),console[_0x50d1a0(0x1d5)](_0x50d1a0(0x185)),_0x2373e4[_0x50d1a0(0x1ec)](),_0x1930d0();return;}_0x2373e4[_0x50d1a0(0x1d4)](_0x50d1a0(0x173),[_0x178653,_0x50d1a0(0x1db)],function(_0x360b33){const _0x36066b=_0x50d1a0;if(_0x360b33){console['error'](_0x36066b(0x1ab),_0x360b33[_0x36066b(0x1a0)]);(_0x360b33[_0x36066b(0x1de)]===_0x36066b(0x1ca)||_0x360b33[_0x36066b(0x1a0)][_0x36066b(0x1ef)](_0x36066b(0x15f)))&&console['error'](_0x36066b(0x1f5));console['log'](_0x36066b(0x1bf)),_0x2373e4['close'](),_0x1930d0();return;}console[_0x36066b(0x1d5)](_0x36066b(0x19f)+this[_0x36066b(0x1b8)]);if(this[_0x36066b(0x1b8)]===0x0){console[_0x36066b(0x1af)](_0x36066b(0x183)),console['log'](_0x36066b(0x1bf)),_0x2373e4[_0x36066b(0x1ec)](),_0x1930d0();return;}_0x2373e4[_0x36066b(0x1f0)](_0x36066b(0x161),[_0x36066b(0x1db)],(_0x7bc951,_0x1dfe6d)=>{const _0x53e0c6=_0x36066b;if(_0x7bc951)console[_0x53e0c6(0x1af)]('【Error】:验证更新失败',_0x7bc951['message']);else{if(_0x1dfe6d&&_0x1dfe6d[_0x53e0c6(0x184)]){let _0x25480d='';Buffer['isBuffer'](_0x1dfe6d[_0x53e0c6(0x184)])?_0x25480d=_0x1dfe6d[_0x53e0c6(0x184)][_0x53e0c6(0x1e4)](_0x53e0c6(0x1f4)):_0x25480d=String(_0x1dfe6d[_0x53e0c6(0x184)]);if(_0x25480d===_0x178653){console[_0x53e0c6(0x1d5)]('✓\x20PROJECT.md\x20已更新到\x20Cursor\x20user\x20rules\x20('+_0x1dfe6d['len']+'\x20字节)');const _0x4afb2a=_0x25480d[_0x53e0c6(0x167)]('\x0a')['slice'](0x0,0x3)['join']('\x0a');console[_0x53e0c6(0x1d5)](_0x53e0c6(0x17e)+_0x4afb2a+(_0x25480d['split']('\x0a')[_0x53e0c6(0x1c9)]>0x3?_0x53e0c6(0x19c):''));}else console[_0x53e0c6(0x1af)](_0x53e0c6(0x1d7)),console[_0x53e0c6(0x1af)](_0x53e0c6(0x1a1)+_0x178653[_0x53e0c6(0x1c9)]+',\x20实际长度:\x20'+_0x25480d[_0x53e0c6(0x1c9)]),console['error'](_0x53e0c6(0x19d)+_0x178653[_0x53e0c6(0x1f6)](0x0,0x64)),console[_0x53e0c6(0x1af)]('\x20\x20实际前100字符:\x20'+_0x25480d[_0x53e0c6(0x1f6)](0x0,0x64));}else console[_0x53e0c6(0x1af)]('【Error】:更新后验证失败,值为空');}console[_0x53e0c6(0x1d5)](_0x53e0c6(0x185)),_0x2373e4[_0x53e0c6(0x1ec)](),_0x1930d0();});});}else console['log'](_0x50d1a0(0x18b)),_0x2373e4['run']('INSERT\x20INTO\x20ItemTable\x20(key,\x20value)\x20VALUES\x20(?,\x20?)',[_0x50d1a0(0x1db),_0x178653],function(_0x52a8c2){const _0x5b61c7=_0x50d1a0;if(_0x52a8c2){console[_0x5b61c7(0x1af)](_0x5b61c7(0x1d2),_0x52a8c2[_0x5b61c7(0x1a0)]);(_0x52a8c2[_0x5b61c7(0x1de)]===_0x5b61c7(0x1ca)||_0x52a8c2[_0x5b61c7(0x1a0)]['includes'](_0x5b61c7(0x15f)))&&console[_0x5b61c7(0x1af)](_0x5b61c7(0x1f5));console[_0x5b61c7(0x1d5)](_0x5b61c7(0x1bf)),_0x2373e4[_0x5b61c7(0x1ec)](),_0x1930d0();return;}console[_0x5b61c7(0x1d5)](_0x5b61c7(0x1d1)+this['lastInsertRowid']);if(!this[_0x5b61c7(0x1ae)]){console['error'](_0x5b61c7(0x15e)),_0x2373e4['close'](),_0x1930d0();return;}_0x2373e4[_0x5b61c7(0x1f0)]('SELECT\x20value,\x20length(value)\x20as\x20len\x20FROM\x20ItemTable\x20WHERE\x20key\x20=\x20?',[_0x5b61c7(0x1db)],(_0x4dc515,_0x4f94c6)=>{const _0x30c0e0=_0x5b61c7;if(_0x4dc515)console[_0x30c0e0(0x1af)](_0x30c0e0(0x182),_0x4dc515[_0x30c0e0(0x1a0)]);else{if(_0x4f94c6&&_0x4f94c6['value']){let _0x4709c6='';Buffer['isBuffer'](_0x4f94c6[_0x30c0e0(0x184)])?_0x4709c6=_0x4f94c6[_0x30c0e0(0x184)][_0x30c0e0(0x1e4)](_0x30c0e0(0x1f4)):_0x4709c6=String(_0x4f94c6[_0x30c0e0(0x184)]);if(_0x4709c6===_0x178653){console[_0x30c0e0(0x1d5)](_0x30c0e0(0x1e2)+_0x4f94c6['len']+_0x30c0e0(0x1b6));const _0x3abddc=_0x4709c6[_0x30c0e0(0x167)]('\x0a')[_0x30c0e0(0x196)](0x0,0x3)[_0x30c0e0(0x1dc)]('\x0a');console[_0x30c0e0(0x1d5)](_0x30c0e0(0x17e)+_0x3abddc+(_0x4709c6[_0x30c0e0(0x167)]('\x0a')['length']>0x3?_0x30c0e0(0x19c):''));}else console[_0x30c0e0(0x1af)](_0x30c0e0(0x17d)),console[_0x30c0e0(0x1af)](_0x30c0e0(0x1a1)+_0x178653[_0x30c0e0(0x1c9)]+',\x20实际长度:\x20'+_0x4709c6[_0x30c0e0(0x1c9)]);}else console[_0x30c0e0(0x1af)](_0x30c0e0(0x18f));}console[_0x30c0e0(0x1d5)]('【提示】:请重启\x20Cursor\x20编辑器以使规则生效'),_0x2373e4[_0x30c0e0(0x1ec)](),_0x1930d0();});});});});return;}catch(_0x37527b){console[_0xf77c12(0x1af)](_0xf77c12(0x1b1)),console[_0xf77c12(0x1d5)]('【建议】:请运行\x20npm\x20install\x20better-sqlite3\x20或\x20npm\x20install\x20sqlite3'),console[_0xf77c12(0x1d5)](_0xf77c12(0x1b5)),_0x1930d0();return;}}const _0x36f9ac=new _0x4393b5(CURSOR_DB_PATH,{'readonly':![]});try{console['log']('【调试】:准备更新数据库,内容长度:\x20'+_0x178653[_0xf77c12(0x1c9)]+'\x20字符');const _0x3aeeeb=_0x36f9ac['prepare'](_0xf77c12(0x161))[_0xf77c12(0x1f0)](_0xf77c12(0x1db));if(_0x3aeeeb){console[_0xf77c12(0x1d5)](_0xf77c12(0x192)+_0x3aeeeb[_0xf77c12(0x181)]+'\x20字节');let _0x559269='';Buffer[_0xf77c12(0x163)](_0x3aeeeb[_0xf77c12(0x184)])?_0x559269=_0x3aeeeb[_0xf77c12(0x184)]['toString'](_0xf77c12(0x1f4)):_0x559269=String(_0x3aeeeb[_0xf77c12(0x184)]);if(_0x559269===_0x178653){console['log'](_0xf77c12(0x193)),console[_0xf77c12(0x1d5)](_0xf77c12(0x185)),_0x36f9ac[_0xf77c12(0x1ec)](),_0x1930d0();return;}const _0x5921ac=_0x36f9ac[_0xf77c12(0x194)](_0xf77c12(0x173)),_0x5ed8b9=_0x5921ac[_0xf77c12(0x1d4)](_0x178653,_0xf77c12(0x1db));console['log'](_0xf77c12(0x19f)+_0x5ed8b9[_0xf77c12(0x1b8)]);if(_0x5ed8b9[_0xf77c12(0x1b8)]===0x0){console[_0xf77c12(0x1af)](_0xf77c12(0x183)),console['log'](_0xf77c12(0x1bf)),_0x36f9ac[_0xf77c12(0x1ec)](),_0x1930d0();return;}const _0x5e9c32=_0x36f9ac[_0xf77c12(0x194)]('SELECT\x20value,\x20length(value)\x20as\x20len\x20FROM\x20ItemTable\x20WHERE\x20key\x20=\x20?')[_0xf77c12(0x1f0)](_0xf77c12(0x1db));if(_0x5e9c32&&_0x5e9c32['value']){let _0x181b1a='';Buffer['isBuffer'](_0x5e9c32[_0xf77c12(0x184)])?_0x181b1a=_0x5e9c32[_0xf77c12(0x184)][_0xf77c12(0x1e4)](_0xf77c12(0x1f4)):_0x181b1a=String(_0x5e9c32['value']);if(_0x181b1a===_0x178653){console[_0xf77c12(0x1d5)](_0xf77c12(0x1f1)+_0x5e9c32[_0xf77c12(0x181)]+_0xf77c12(0x1b6));const _0x2a2c36=_0x181b1a[_0xf77c12(0x167)]('\x0a')['slice'](0x0,0x3)[_0xf77c12(0x1dc)]('\x0a');console['log'](_0xf77c12(0x17e)+_0x2a2c36+(_0x181b1a[_0xf77c12(0x167)]('\x0a')[_0xf77c12(0x1c9)]>0x3?_0xf77c12(0x19c):''));}else console[_0xf77c12(0x1af)](_0xf77c12(0x1d7)),console['error'](_0xf77c12(0x1a1)+_0x178653[_0xf77c12(0x1c9)]+_0xf77c12(0x1b4)+_0x181b1a[_0xf77c12(0x1c9)]),console[_0xf77c12(0x1af)](_0xf77c12(0x19d)+_0x178653['substring'](0x0,0x64)),console['error'](_0xf77c12(0x1e9)+_0x181b1a['substring'](0x0,0x64));}else console[_0xf77c12(0x1af)](_0xf77c12(0x17a));}else{console[_0xf77c12(0x1d5)](_0xf77c12(0x18b));const _0x21c2bf=_0x36f9ac[_0xf77c12(0x194)](_0xf77c12(0x1d3)),_0x21a24b=_0x21c2bf[_0xf77c12(0x1d4)](_0xf77c12(0x1db),_0x178653);console[_0xf77c12(0x1d5)](_0xf77c12(0x1d1)+_0x21a24b[_0xf77c12(0x1ae)]);if(!_0x21a24b[_0xf77c12(0x1ae)]){console['error']('【Error】:插入失败,未返回插入ID'),_0x36f9ac[_0xf77c12(0x1ec)](),_0x1930d0();return;}const _0x53264f=_0x36f9ac['prepare'](_0xf77c12(0x161))[_0xf77c12(0x1f0)](_0xf77c12(0x1db));if(_0x53264f&&_0x53264f[_0xf77c12(0x184)]){let _0x50bacb='';Buffer[_0xf77c12(0x163)](_0x53264f[_0xf77c12(0x184)])?_0x50bacb=_0x53264f[_0xf77c12(0x184)][_0xf77c12(0x1e4)]('utf8'):_0x50bacb=String(_0x53264f[_0xf77c12(0x184)]);if(_0x50bacb===_0x178653){console[_0xf77c12(0x1d5)](_0xf77c12(0x1e2)+_0x53264f[_0xf77c12(0x181)]+'\x20字节)');const _0x43e464=_0x50bacb[_0xf77c12(0x167)]('\x0a')[_0xf77c12(0x196)](0x0,0x3)[_0xf77c12(0x1dc)]('\x0a');console[_0xf77c12(0x1d5)]('【预览】:内容前3行:\x0a'+_0x43e464+(_0x50bacb[_0xf77c12(0x167)]('\x0a')[_0xf77c12(0x1c9)]>0x3?_0xf77c12(0x19c):''));}else console[_0xf77c12(0x1af)](_0xf77c12(0x17d)),console[_0xf77c12(0x1af)](_0xf77c12(0x1a1)+_0x178653['length']+_0xf77c12(0x1b4)+_0x50bacb['length']);}else console['error'](_0xf77c12(0x18f));}console[_0xf77c12(0x1d5)](_0xf77c12(0x185));}catch(_0x1a28d2){console[_0xf77c12(0x1af)](_0xf77c12(0x18e),_0x1a28d2['message']),(_0x1a28d2[_0xf77c12(0x1de)]===_0xf77c12(0x1ca)||_0x1a28d2[_0xf77c12(0x1a0)][_0xf77c12(0x1ef)]('locked'))&&console[_0xf77c12(0x1af)]('【Error】:数据库被锁定,可能是\x20Cursor\x20正在使用'),console[_0xf77c12(0x1af)](_0xf77c12(0x1ee),_0x1a28d2['stack']),console[_0xf77c12(0x1d5)](_0xf77c12(0x1bf));}finally{_0x36f9ac[_0xf77c12(0x1ec)]();}}catch(_0x4ee21f){console[_0xf77c12(0x1af)]('【Error】:无法打开数据库',_0x4ee21f[_0xf77c12(0x1a0)]),console['log']('【建议】:请关闭\x20Cursor\x20编辑器后重试');}_0x1930d0();}catch(_0x5f5a9f){console[_0xf77c12(0x1af)](_0xf77c12(0x18d),_0x5f5a9f[_0xf77c12(0x1a0)]),console['log']('【Warning】:可能\x20Cursor\x20未安装或路径不正确,请手动复制\x20admin/rules/PROJECT.md\x20内容'),_0x1930d0();}}function _0x1930d0(){const _0x126213=_0x25f3a5;console[_0x126213(0x1d5)](_0x126213(0x1a6));const _0x549347=path[_0x126213(0x1dc)](_0x1d58b1,_0x126213(0x1a8));try{if(fs[_0x126213(0x189)](_0x549347)){let _0x2579ee=fs[_0x126213(0x171)](_0x549347,_0x126213(0x1f4));const _0x51b756=/^\.cursor\/?\s*$/m;!_0x51b756[_0x126213(0x1e5)](_0x2579ee)?(!_0x2579ee[_0x126213(0x16c)]('\x0a')&&(_0x2579ee+='\x0a'),_0x2579ee+='.cursor/\x0a',fs[_0x126213(0x17f)](_0x549347,_0x2579ee,_0x126213(0x1f4)),console[_0x126213(0x1d5)](_0x126213(0x172))):console[_0x126213(0x1d5)]('✓\x20.gitignore\x20中已存在\x20.cursor\x20忽略规则');}else fs[_0x126213(0x17f)](_0x549347,'.cursor/\x0a','utf8'),console[_0x126213(0x1d5)](_0x126213(0x176));}catch(_0x31686e){console[_0x126213(0x1af)](_0x126213(0x1b3),_0x31686e[_0x126213(0x1a0)]);}_0x1ed2f3(0x0);}function _0x1ed2f3(_0x18d3b0){deleteDir(_0x2f52fd,()=>{const _0x1a366f=a0_0x57f3;console['log']('【jjb-cmd\x20ai-pull】:执行完成!'),process[_0x1a366f(0x1b0)](_0x18d3b0);});}};
@@ -1 +0,0 @@
1
- const a2_0xd54324=a2_0x5bb9;function a2_0x3364(){const _0x356d2e=['此操作将优化当前目录下的代码,请确保已备份重要文件','9327227rztqXd','143ynEVcz','exit','exports','confirm','150422xjcJYm','prompt','inquirer','3355HkyiFv','9JwXFIu','9rSbjQk','正在分析代码结构...','代码优化工具已启动','path','1625004DIgzqm','10296UnnXcN','confirmed','是否确认优化代码?','14324400vUjhNM','31023xnBgLm','resolve','代码优化失败:\x20','4213344MyMcjR','688LqrOan'];a2_0x3364=function(){return _0x356d2e;};return a2_0x3364();}(function(_0x3fc839,_0x5a89d9){const _0x7fb368=a2_0x5bb9,_0x36698b=_0x3fc839();while(!![]){try{const _0x4b5df2=-parseInt(_0x7fb368(0x1c8))/0x1*(parseInt(_0x7fb368(0x1c4))/0x2)+-parseInt(_0x7fb368(0x1c9))/0x3*(parseInt(_0x7fb368(0x1cd))/0x4)+parseInt(_0x7fb368(0x1c7))/0x5*(parseInt(_0x7fb368(0x1b5))/0x6)+-parseInt(_0x7fb368(0x1bf))/0x7+-parseInt(_0x7fb368(0x1bd))/0x8*(parseInt(_0x7fb368(0x1b9))/0x9)+-parseInt(_0x7fb368(0x1b8))/0xa+parseInt(_0x7fb368(0x1c0))/0xb*(parseInt(_0x7fb368(0x1bc))/0xc);if(_0x4b5df2===_0x5a89d9)break;else _0x36698b['push'](_0x36698b['shift']());}catch(_0x551a03){_0x36698b['push'](_0x36698b['shift']());}}}(a2_0x3364,0xb9471));function a2_0x5bb9(_0x41f917,_0x41413b){_0x41f917=_0x41f917-0x1b5;const _0x336449=a2_0x3364();let _0x5bb98a=_0x336449[_0x41f917];return _0x5bb98a;}const path=require(a2_0xd54324(0x1cc)),inquirer=require(a2_0xd54324(0x1c6)),{bootstrap}=require('@cqsjjb/react-code-optimization'),{logInfo,logSuccess,logError,logWarning}=require('./utils');module[a2_0xd54324(0x1c2)]=async function(){const _0x21bdaf=a2_0xd54324,_0x3200b8=path[_0x21bdaf(0x1ba)]('./');logInfo(_0x21bdaf(0x1cb)),logWarning(_0x21bdaf(0x1be));const {confirmed:_0x15275b}=await inquirer[_0x21bdaf(0x1c5)]([{'type':_0x21bdaf(0x1c3),'name':_0x21bdaf(0x1b6),'message':_0x21bdaf(0x1b7),'default':![]}]);if(_0x15275b){logInfo(_0x21bdaf(0x1ca));try{bootstrap(_0x3200b8,0x64,()=>{const _0x892600=_0x21bdaf;logSuccess('代码优化已完成'),process[_0x892600(0x1c1)](0x0);});}catch(_0x1c04fb){logError(_0x21bdaf(0x1bb)+_0x1c04fb['message']),process[_0x21bdaf(0x1c1)](0x1);}}else logInfo('操作已取消'),process['exit'](0x0);};
package/src/rm-rf.js DELETED
@@ -1 +0,0 @@
1
- const a8_0x85f847=a8_0x309e;(function(_0x5464b3,_0x47821d){const _0x588e51=a8_0x309e,_0x171798=_0x5464b3();while(!![]){try{const _0x121d8b=parseInt(_0x588e51(0x1c7))/0x1*(parseInt(_0x588e51(0x1c3))/0x2)+-parseInt(_0x588e51(0x1c4))/0x3+parseInt(_0x588e51(0x1c1))/0x4+parseInt(_0x588e51(0x1c5))/0x5+-parseInt(_0x588e51(0x1b9))/0x6+-parseInt(_0x588e51(0x1bd))/0x7+parseInt(_0x588e51(0x1c6))/0x8;if(_0x121d8b===_0x47821d)break;else _0x171798['push'](_0x171798['shift']());}catch(_0x4d6f25){_0x171798['push'](_0x171798['shift']());}}}(a8_0x5a36,0x6dc18));function a8_0x309e(_0x34b499,_0x25d2b6){_0x34b499=_0x34b499-0x1b7;const _0x5a3630=a8_0x5a36();let _0x309edb=_0x5a3630[_0x34b499];return _0x309edb;}function a8_0x5a36(){const _0x1b1943=['删除操作失败:\x20','exports','正在扫描目录结构...','4900168JgVtBi','confirm','exit','prompt','3161344CSLwwg','开始执行删除操作...','2yVLUmi','2643042xMklts','4180200GszPjv','8057472ScsDNJ','29890ZDmzJx','./utils','危险操作:此命令将删除当前目录下的所有文件和文件夹','所有文件已成功删除','inquirer','3797112KPRaDZ'];a8_0x5a36=function(){return _0x1b1943;};return a8_0x5a36();}const path=require('path'),inquirer=require(a8_0x85f847(0x1b8)),{logInfo,logSuccess,logError,logWarning,deleteFolderRecursive}=require(a8_0x85f847(0x1c8));module[a8_0x85f847(0x1bb)]=async function(){const _0x12089d=a8_0x85f847,_0x97a99=path['resolve']('./');logWarning(_0x12089d(0x1c9)),logWarning('删除后不可恢复,请谨慎操作');const {confirm:_0x30ae48}=await inquirer[_0x12089d(0x1c0)]([{'type':_0x12089d(0x1be),'name':'confirm','message':'是否确认删除?删除后不可恢复!','default':![]}]);_0x30ae48?(logInfo(_0x12089d(0x1bc)),setTimeout(()=>{const _0x750e6c=_0x12089d;try{logInfo(_0x750e6c(0x1c2)),deleteFolderRecursive(_0x97a99),logSuccess(_0x750e6c(0x1b7)),process[_0x750e6c(0x1bf)](0x0);}catch(_0x59ce81){logError(_0x750e6c(0x1ba)+_0x59ce81['message']),process[_0x750e6c(0x1bf)](0x1);}},0x3e8)):(logInfo('操作已取消'),process[_0x12089d(0x1bf)](0x0));};