@alipay/alipay-aipay 0.1.1-beta.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 +1 -0
- package/bin/alipay-aipay.js +6 -0
- package/dist/commands/install.d.ts +10 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +92 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/uninstall.d.ts +10 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +82 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.d.ts +10 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +125 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +43 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/alipay-cli.d.ts +15 -0
- package/dist/utils/alipay-cli.d.ts.map +1 -0
- package/dist/utils/alipay-cli.js +228 -0
- package/dist/utils/alipay-cli.js.map +1 -0
- package/dist/utils/config.d.ts +48 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +207 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/file.d.ts +55 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +154 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/gpg.d.ts +14 -0
- package/dist/utils/gpg.d.ts.map +1 -0
- package/dist/utils/gpg.js +247 -0
- package/dist/utils/gpg.js.map +1 -0
- package/dist/utils/jq.d.ts +14 -0
- package/dist/utils/jq.d.ts.map +1 -0
- package/dist/utils/jq.js +221 -0
- package/dist/utils/jq.js.map +1 -0
- package/dist/utils/npm.d.ts +17 -0
- package/dist/utils/npm.d.ts.map +1 -0
- package/dist/utils/npm.js +42 -0
- package/dist/utils/npm.js.map +1 -0
- package/dist/utils/shell.d.ts +11 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +54 -0
- package/dist/utils/shell.js.map +1 -0
- package/package.json +53 -0
- package/skill/SKILL.md +118 -0
- package/skill/references/integration/flow.md +487 -0
- package/skill/references/integration/modules/alipay-sdk-reminder.md +256 -0
- package/skill/references/integration/modules/checklist.md +122 -0
- package/skill/references/integration/modules/code-examples/csharp/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/345/205/263/351/227/255/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +68 -0
- package/skill/references/integration/modules/code-examples/csharp/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +77 -0
- package/skill/references/integration/modules/code-examples/csharp/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +74 -0
- package/skill/references/integration/modules/code-examples/csharp/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +73 -0
- package/skill/references/integration/modules/code-examples/csharp/2-/347/275/221/347/253/231/346/224/257/344/273/230//347/273/237/344/270/200/346/224/266/345/215/225/344/270/213/345/215/225/345/271/266/346/224/257/344/273/230/351/241/265/351/235/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +58 -0
- package/skill/references/integration/modules/code-examples/csharp/3-APP/346/224/257/344/273/230/APP/346/224/257/344/273/230/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +128 -0
- package/skill/references/integration/modules/code-examples/csharp/4-/346/214/211/351/207/217/344/273/230/350/264/271/A2MPaymentDemo.cs +500 -0
- package/skill/references/integration/modules/code-examples/java/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/345/205/263/351/227/255/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +72 -0
- package/skill/references/integration/modules/code-examples/java/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +80 -0
- package/skill/references/integration/modules/code-examples/java/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +78 -0
- package/skill/references/integration/modules/code-examples/java/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +77 -0
- package/skill/references/integration/modules/code-examples/java/2-/347/275/221/347/253/231/346/224/257/344/273/230//347/273/237/344/270/200/346/224/266/345/215/225/344/270/213/345/215/225/345/271/266/346/224/257/344/273/230/351/241/265/351/235/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +66 -0
- package/skill/references/integration/modules/code-examples/java/3-APP/346/224/257/344/273/230/APP/346/224/257/344/273/230/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +135 -0
- package/skill/references/integration/modules/code-examples/java/4-/346/214/211/351/207/217/344/273/230/350/264/271/A2MPaymentDemoController.java +610 -0
- package/skill/references/integration/modules/code-examples/nodejs/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/345/205/263/351/227/255/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +51 -0
- package/skill/references/integration/modules/code-examples/nodejs/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +57 -0
- package/skill/references/integration/modules/code-examples/nodejs/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +55 -0
- package/skill/references/integration/modules/code-examples/nodejs/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +54 -0
- package/skill/references/integration/modules/code-examples/nodejs/2-/347/275/221/347/253/231/346/224/257/344/273/230//347/273/237/344/270/200/346/224/266/345/215/225/344/270/213/345/215/225/345/271/266/346/224/257/344/273/230/351/241/265/351/235/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +77 -0
- package/skill/references/integration/modules/code-examples/nodejs/3-APP/346/224/257/344/273/230/APP/346/224/257/344/273/230/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +65 -0
- package/skill/references/integration/modules/code-examples/nodejs/4-/346/214/211/351/207/217/344/273/230/350/264/271/A2MPaymentDemo.js +461 -0
- package/skill/references/integration/modules/code-examples/php/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/345/205/263/351/227/255/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +59 -0
- package/skill/references/integration/modules/code-examples/php/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +67 -0
- package/skill/references/integration/modules/code-examples/php/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +66 -0
- package/skill/references/integration/modules/code-examples/php/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +65 -0
- package/skill/references/integration/modules/code-examples/php/2-/347/275/221/347/253/231/346/224/257/344/273/230//347/273/237/344/270/200/346/224/266/345/215/225/344/270/213/345/215/225/345/271/266/346/224/257/344/273/230/351/241/265/351/235/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +56 -0
- package/skill/references/integration/modules/code-examples/php/3-APP/346/224/257/344/273/230/APP/346/224/257/344/273/230/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +107 -0
- package/skill/references/integration/modules/code-examples/php/4-/346/214/211/351/207/217/344/273/230/350/264/271/A2MPaymentDemo.php +444 -0
- package/skill/references/integration/modules/code-examples/python/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/345/205/263/351/227/255/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +57 -0
- package/skill/references/integration/modules/code-examples/python/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +65 -0
- package/skill/references/integration/modules/code-examples/python/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +63 -0
- package/skill/references/integration/modules/code-examples/python/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +62 -0
- package/skill/references/integration/modules/code-examples/python/2-/347/275/221/347/253/231/346/224/257/344/273/230//347/273/237/344/270/200/346/224/266/345/215/225/344/270/213/345/215/225/345/271/266/346/224/257/344/273/230/351/241/265/351/235/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +48 -0
- package/skill/references/integration/modules/code-examples/python/3-APP/346/224/257/344/273/230/APP/346/224/257/344/273/230/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +43 -0
- package/skill/references/integration/modules/code-examples/python/4-/346/214/211/351/207/217/344/273/230/350/264/271/A2MPaymentDemo.py +465 -0
- package/skill/references/integration/modules/interface-guide.md +90 -0
- package/skill/references/integration/modules/product-decision.md +90 -0
- package/skill/references/integration/modules/sandbox/a2m-sandbox-test.md +270 -0
- package/skill/references/integration/modules/sandbox/alipay-sandbox-tool.md +133 -0
- package/skill/references/integration/modules/sandbox/sandbox-setup-guide.md +218 -0
- package/skill/references/integration/modules/scripts/local_402_sandbox_pay.py +659 -0
- package/skill/references/normal/alipay-cli-env.md +211 -0
- package/skill/references/normal/rejection-guide.md +37 -0
- package/skill/references/normal/scripts/common.sh +32 -0
- package/skill/references/normal/scripts/detect_dev_tool.sh +46 -0
- package/skill/references/onboarding/flow.md +571 -0
- package/skill/references/onboarding/modules/app-release.md +411 -0
- package/skill/references/onboarding/modules/authorization.md +269 -0
- package/skill/references/onboarding/modules/error-handling.md +247 -0
- package/skill/references/onboarding/modules/mcc-reference.md +209 -0
- package/skill/references/onboarding/modules/product-sign.md +304 -0
- package/skill/references/onboarding/modules/scripts/app.sh +705 -0
- package/skill/references/onboarding/modules/scripts/ar_sign_apply.sh +248 -0
- package/skill/references/onboarding/modules/scripts/auth.sh +505 -0
- package/skill/references/onboarding/modules/scripts/error_handler.sh +312 -0
- package/skill/references/onboarding/modules/scripts/query_sign_status.sh +146 -0
- package/skill/references/onboarding/modules/scripts/service.sh +267 -0
- package/skill/references/onboarding/modules/scripts/upload_screenshots.sh +152 -0
- package/skill/references/onboarding/modules/service-registration.md +294 -0
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# @alipay/alipay-aipay
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type InstallTarget } from '../utils/config.js';
|
|
2
|
+
/**
|
|
3
|
+
* install 命令实现 - 完整安装流程: GPG → alipay-cli → jq → Skill 文件
|
|
4
|
+
* 全程无需用户确认,一键完成
|
|
5
|
+
*/
|
|
6
|
+
export interface InstallCommandOptions {
|
|
7
|
+
target?: InstallTarget;
|
|
8
|
+
}
|
|
9
|
+
export declare function installCommand(cwd: string, options?: InstallCommandOptions): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAW5B;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAwFf"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { SKILLS, getPackageVersion, getCommandContext, getAllCommandContexts, PACKAGE_ROOT, } from '../utils/config.js';
|
|
4
|
+
import { ensureDir, installSkillFiles, writeVersionFile, readVersionRecord, } from '../utils/file.js';
|
|
5
|
+
import { ensureGpg } from '../utils/gpg.js';
|
|
6
|
+
import { ensureAlipayCli } from '../utils/alipay-cli.js';
|
|
7
|
+
import { ensureJq } from '../utils/jq.js';
|
|
8
|
+
export async function installCommand(cwd, options = {}) {
|
|
9
|
+
const target = options.target ?? 'all';
|
|
10
|
+
const contexts = target === 'all'
|
|
11
|
+
? getAllCommandContexts(cwd)
|
|
12
|
+
: [getCommandContext(cwd, target)];
|
|
13
|
+
const version = getPackageVersion();
|
|
14
|
+
console.log(chalk.cyan.bold(`\n🚀 @alipay/alipay-aipay v${version}\n`));
|
|
15
|
+
console.log(chalk.gray('一键配置: GPG + alipay-cli + jq + 支付宝AI支付 Skill\n'));
|
|
16
|
+
console.log(chalk.gray(`安装目标: ${contexts.map((ctx) => `${ctx.targetDirLabel}/alipay-aipay/`).join(', ')}\n`));
|
|
17
|
+
// ========== 阶段 1: 环境检查 ==========
|
|
18
|
+
console.log(chalk.cyan('📋 环境检查'));
|
|
19
|
+
console.log(chalk.gray('─'.repeat(40)));
|
|
20
|
+
// 1a: 检查并安装 GPG (alipay-cli 依赖 GPG 进行签名验证)
|
|
21
|
+
const gpgOk = await ensureGpg();
|
|
22
|
+
// 1b: 检查并安装 alipay-cli
|
|
23
|
+
const alipayCliOk = await ensureAlipayCli();
|
|
24
|
+
// 1c: 检查并安装 jq(签约脚本依赖 jq 解析 JSON)
|
|
25
|
+
const jqOk = await ensureJq();
|
|
26
|
+
console.log(''); // 空行分隔
|
|
27
|
+
if (!gpgOk) {
|
|
28
|
+
console.log(chalk.yellow('⚠️ GPG 安装失败,alipay-cli 的签名验证可能受影响'));
|
|
29
|
+
console.log(chalk.gray(' 你可以稍后手动安装: brew install gnupg (macOS) / sudo apt-get install -y gnupg (Linux)\n'));
|
|
30
|
+
}
|
|
31
|
+
if (!alipayCliOk) {
|
|
32
|
+
console.log(chalk.yellow('⚠️ alipay-cli 安装失败,签约流程将无法使用'));
|
|
33
|
+
console.log(chalk.gray(' 你可以稍后手动安装: curl -fsSL https://opengw.alipay.com/alipaycli/install | bash\n'));
|
|
34
|
+
}
|
|
35
|
+
if (!jqOk) {
|
|
36
|
+
console.log(chalk.yellow('⚠️ jq 安装失败,签约流程中的 JSON 解析将无法使用'));
|
|
37
|
+
console.log(chalk.gray(' 你可以稍后手动安装: brew install jq (macOS) / sudo apt-get install -y jq (Linux)\n'));
|
|
38
|
+
}
|
|
39
|
+
// ========== 阶段 2: 安装 Skill 文件 ==========
|
|
40
|
+
console.log(chalk.cyan('📦 安装 Skill 文件'));
|
|
41
|
+
console.log(chalk.gray('─'.repeat(40)));
|
|
42
|
+
// 直接安装,不询问
|
|
43
|
+
const spinner = ora('正在安装 Skill 文件...').start();
|
|
44
|
+
try {
|
|
45
|
+
for (const ctx of contexts) {
|
|
46
|
+
const existingRecord = await readVersionRecord(ctx);
|
|
47
|
+
if (existingRecord) {
|
|
48
|
+
console.log(chalk.yellow(`检测到已有安装记录,直接覆盖更新: ${ctx.targetDirLabel}/alipay-aipay/`));
|
|
49
|
+
console.log(` 旧版本: ${existingRecord.version} 安装时间: ${existingRecord.installedAt}`);
|
|
50
|
+
console.log('');
|
|
51
|
+
}
|
|
52
|
+
await ensureDir(ctx.targetDir);
|
|
53
|
+
await installSkillFiles(PACKAGE_ROOT, ctx.targetDir);
|
|
54
|
+
// 写入版本记录
|
|
55
|
+
const record = {
|
|
56
|
+
version,
|
|
57
|
+
installedAt: new Date().toISOString(),
|
|
58
|
+
skills: SKILLS.map((s) => s.name),
|
|
59
|
+
gpgInstalled: gpgOk,
|
|
60
|
+
alipayCliInstalled: alipayCliOk,
|
|
61
|
+
jqInstalled: jqOk,
|
|
62
|
+
};
|
|
63
|
+
await writeVersionFile(ctx.versionFile, record);
|
|
64
|
+
}
|
|
65
|
+
spinner.succeed(chalk.green('Skill 文件安装完成!\n'));
|
|
66
|
+
printSummary(gpgOk, alipayCliOk, jqOk, true, version, contexts.map((ctx) => ctx.targetDirLabel));
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
spinner.fail(chalk.red('Skill 文件安装失败'));
|
|
70
|
+
console.error(error);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* 打印安装总结
|
|
76
|
+
*/
|
|
77
|
+
function printSummary(gpgOk, alipayCliOk, jqOk, skillInstalled, version, targetDirLabels) {
|
|
78
|
+
console.log(chalk.cyan.bold('📋 安装总结'));
|
|
79
|
+
console.log(chalk.gray('─'.repeat(40)));
|
|
80
|
+
console.log(` GPG: ${gpgOk ? chalk.green('✓ 已就绪') : chalk.red('✗ 未就绪')}`);
|
|
81
|
+
console.log(` alipay-cli: ${alipayCliOk ? chalk.green('✓ 已就绪') : chalk.red('✗ 未就绪')}`);
|
|
82
|
+
console.log(` jq: ${jqOk ? chalk.green('✓ 已就绪') : chalk.red('✗ 未就绪')}`);
|
|
83
|
+
console.log(` Skill 文件: ${skillInstalled ? chalk.green('✓ 已安装') : chalk.gray('○ 未安装')}`);
|
|
84
|
+
console.log(` 版本: ${version}`);
|
|
85
|
+
console.log('');
|
|
86
|
+
console.log(chalk.gray('安装位置:'));
|
|
87
|
+
for (const targetDirLabel of targetDirLabels) {
|
|
88
|
+
console.log(chalk.gray(` ${targetDirLabel}/alipay-aipay/`));
|
|
89
|
+
}
|
|
90
|
+
console.log('');
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type InstallTarget } from '../utils/config.js';
|
|
2
|
+
/**
|
|
3
|
+
* uninstall 命令实现
|
|
4
|
+
* 注意: 卸载只删除 Skill 文件,不卸载 GPG、alipay-cli 和 jq(它们是系统级工具)
|
|
5
|
+
*/
|
|
6
|
+
export interface UninstallCommandOptions {
|
|
7
|
+
target?: InstallTarget;
|
|
8
|
+
}
|
|
9
|
+
export declare function uninstallCommand(cwd: string, options?: UninstallCommandOptions): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=uninstall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoD,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAI1G;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import fs from 'fs/promises';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import { SKILLS, getCommandContext, getAllCommandContexts } from '../utils/config.js';
|
|
7
|
+
import { removeDir, readVersionRecord } from '../utils/file.js';
|
|
8
|
+
export async function uninstallCommand(cwd, options = {}) {
|
|
9
|
+
const target = options.target ?? 'auto';
|
|
10
|
+
if (target === 'all') {
|
|
11
|
+
for (const ctx of getAllCommandContexts(cwd)) {
|
|
12
|
+
await uninstallResolvedContext(ctx);
|
|
13
|
+
}
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const ctx = getCommandContext(cwd, target);
|
|
17
|
+
await uninstallResolvedContext(ctx);
|
|
18
|
+
}
|
|
19
|
+
async function uninstallResolvedContext(ctx) {
|
|
20
|
+
// 检查是否有安装记录
|
|
21
|
+
const record = await readVersionRecord(ctx);
|
|
22
|
+
if (!record) {
|
|
23
|
+
console.log(chalk.yellow('\n未检测到已安装的支付宝AI支付 Skill。\n'));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
console.log(chalk.cyan.bold('\n🗑️ 卸载支付宝AI支付 Skill\n'));
|
|
27
|
+
// 显示将要删除的 skills
|
|
28
|
+
console.log('将删除以下 Skill 文件:\n');
|
|
29
|
+
for (const skillName of record.skills) {
|
|
30
|
+
const skill = SKILLS.find((s) => s.name === skillName);
|
|
31
|
+
if (skill) {
|
|
32
|
+
console.log(` • ${chalk.red(skillName)} (${skill.displayName})`);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log(` • ${chalk.red(skillName)}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
console.log('');
|
|
39
|
+
console.log(chalk.gray('注意: GPG、alipay-cli 和 jq 不会被卸载(它们是系统级工具)\n'));
|
|
40
|
+
// 确认卸载
|
|
41
|
+
const { confirm } = await inquirer.prompt([
|
|
42
|
+
{
|
|
43
|
+
type: 'confirm',
|
|
44
|
+
name: 'confirm',
|
|
45
|
+
message: '确认卸载?',
|
|
46
|
+
default: false,
|
|
47
|
+
},
|
|
48
|
+
]);
|
|
49
|
+
if (!confirm) {
|
|
50
|
+
console.log(chalk.gray('\n已取消卸载。\n'));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
// 开始卸载
|
|
54
|
+
const spinner = ora('正在卸载...').start();
|
|
55
|
+
try {
|
|
56
|
+
// 删除当前记录文件,并兼容清理旧版本曾写入 skill 目录内的隐藏记录文件。
|
|
57
|
+
await fs.unlink(ctx.versionFile).catch(() => { });
|
|
58
|
+
await fs.unlink(ctx.legacyVersionFile).catch(() => { });
|
|
59
|
+
// 删除所有已安装的 skill 目录
|
|
60
|
+
for (const skillName of record.skills) {
|
|
61
|
+
const skillDir = path.join(ctx.targetDir, skillName);
|
|
62
|
+
await removeDir(skillDir);
|
|
63
|
+
}
|
|
64
|
+
// 检查目标目录是否为空,如果为空则删除
|
|
65
|
+
const remaining = await fs.readdir(ctx.targetDir).catch(() => []);
|
|
66
|
+
if (remaining.length === 0) {
|
|
67
|
+
await removeDir(ctx.targetDir);
|
|
68
|
+
spinner.succeed(chalk.green('卸载完成! 目录已清空。\n'));
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
spinner.succeed(chalk.green('卸载完成!\n'));
|
|
72
|
+
console.log(chalk.gray(`注意: ${ctx.targetDirLabel}/ 目录中还有其他文件,已保留。\n`));
|
|
73
|
+
}
|
|
74
|
+
console.log(`已删除 ${record.skills.length} 个 Skill。\n`);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
spinner.fail(chalk.red('卸载失败'));
|
|
78
|
+
console.error(error);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,EAAsB,MAAM,oBAAoB,CAAC;AAE1G,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAUhE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,UAAmC,EAAE;IAErC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;IACxC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAmB;IACzD,YAAY;IACZ,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEzD,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;IAErE,OAAO;IACP,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACxC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,OAAO;IACP,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvC,IAAI,CAAC;QACH,yCAAyC;QACzC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjD,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEvD,oBAAoB;QACpB,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrD,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAED,qBAAqB;QACrB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,cAAc,oBAAoB,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,aAAa,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type InstallTarget } from '../utils/config.js';
|
|
2
|
+
/**
|
|
3
|
+
* update 命令实现
|
|
4
|
+
* 更新 Skill 文件,同时重新检查 GPG、alipay-cli 和 jq
|
|
5
|
+
*/
|
|
6
|
+
export interface UpdateCommandOptions {
|
|
7
|
+
target?: InstallTarget;
|
|
8
|
+
}
|
|
9
|
+
export declare function updateCommand(cwd: string, options?: UpdateCommandOptions): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAe5B;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { SKILLS, getPackageVersion, getCommandContext, getAllCommandContexts, PACKAGE_ROOT, } from '../utils/config.js';
|
|
5
|
+
import { ensureDir, installSkillFiles, writeVersionFile, readVersionFile, readVersionRecord, migrateVersionRecord, } from '../utils/file.js';
|
|
6
|
+
import { checkForUpdates } from '../utils/npm.js';
|
|
7
|
+
import { ensureGpg } from '../utils/gpg.js';
|
|
8
|
+
import { ensureAlipayCli } from '../utils/alipay-cli.js';
|
|
9
|
+
import { ensureJq } from '../utils/jq.js';
|
|
10
|
+
export async function updateCommand(cwd, options = {}) {
|
|
11
|
+
const target = options.target ?? 'auto';
|
|
12
|
+
if (target === 'all') {
|
|
13
|
+
for (const ctx of getAllCommandContexts(cwd)) {
|
|
14
|
+
await updateResolvedContext(ctx);
|
|
15
|
+
}
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const ctx = getCommandContext(cwd, target);
|
|
19
|
+
await updateResolvedContext(ctx);
|
|
20
|
+
}
|
|
21
|
+
async function updateResolvedContext(ctx) {
|
|
22
|
+
const currentPackageVersion = getPackageVersion();
|
|
23
|
+
// 检查是否有安装记录
|
|
24
|
+
const record = await readVersionRecord(ctx);
|
|
25
|
+
if (!record) {
|
|
26
|
+
console.log(chalk.yellow('\n未检测到已安装的支付宝AI支付 Skill。'));
|
|
27
|
+
console.log(chalk.gray(`请先运行 \`npx -y @alipay/alipay-aipay@latest install\` 安装到 ${ctx.targetDirLabel}/。\n`));
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
console.log(chalk.cyan.bold('\n🔄 检查更新...\n'));
|
|
31
|
+
// 检查 npm 最新版本
|
|
32
|
+
const spinner = ora('正在检查 npm 最新版本...').start();
|
|
33
|
+
try {
|
|
34
|
+
const versionInfo = await checkForUpdates();
|
|
35
|
+
if (versionInfo.needsUpdate) {
|
|
36
|
+
spinner.warn(chalk.yellow('当前执行的 alipay-aipay 包不是 npm latest,未执行更新。\n'));
|
|
37
|
+
console.log(`当前执行版本: ${versionInfo.current}`);
|
|
38
|
+
console.log(`npm latest: ${versionInfo.latest}`);
|
|
39
|
+
console.log(chalk.gray('请运行以下命令安装最新 Skill:'));
|
|
40
|
+
console.log(chalk.cyan(' npx -y @alipay/alipay-aipay@latest install\n'));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (record.version === currentPackageVersion) {
|
|
44
|
+
await migrateVersionRecord(ctx, record);
|
|
45
|
+
spinner.succeed(chalk.green('Skill 文件已是当前执行包版本!\n'));
|
|
46
|
+
console.log(`当前版本: ${currentPackageVersion}`);
|
|
47
|
+
console.log(`安装时间: ${record.installedAt}`);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
spinner.info(chalk.blue(`发现可安装版本: ${currentPackageVersion} (已安装: ${record.version})\n`));
|
|
51
|
+
// 显示更新信息
|
|
52
|
+
console.log('将更新以下 Skill:\n');
|
|
53
|
+
for (const skillName of record.skills) {
|
|
54
|
+
const skill = SKILLS.find((s) => s.name === skillName);
|
|
55
|
+
if (skill) {
|
|
56
|
+
console.log(` • ${chalk.green(skillName)} (${skill.displayName})`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
console.log('');
|
|
60
|
+
// 确认更新
|
|
61
|
+
const { confirm } = await inquirer.prompt([
|
|
62
|
+
{
|
|
63
|
+
type: 'confirm',
|
|
64
|
+
name: 'confirm',
|
|
65
|
+
message: '是否更新?',
|
|
66
|
+
default: true,
|
|
67
|
+
},
|
|
68
|
+
]);
|
|
69
|
+
if (!confirm) {
|
|
70
|
+
console.log(chalk.gray('\n已取消更新。\n'));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
// 开始更新
|
|
74
|
+
const updateSpinner = ora('正在更新 Skill 文件...').start();
|
|
75
|
+
await ensureDir(ctx.targetDir);
|
|
76
|
+
await installSkillFiles(PACKAGE_ROOT, ctx.targetDir);
|
|
77
|
+
// 更新版本记录(用当前包的实际版本,而非 registry 上的最新版本)
|
|
78
|
+
const newRecord = {
|
|
79
|
+
version: currentPackageVersion,
|
|
80
|
+
installedAt: new Date().toISOString(),
|
|
81
|
+
skills: SKILLS.map((s) => s.name),
|
|
82
|
+
gpgInstalled: record.gpgInstalled,
|
|
83
|
+
alipayCliInstalled: record.alipayCliInstalled,
|
|
84
|
+
jqInstalled: record.jqInstalled,
|
|
85
|
+
};
|
|
86
|
+
await writeVersionFile(ctx.versionFile, newRecord);
|
|
87
|
+
updateSpinner.succeed(chalk.green('Skill 文件更新完成!\n'));
|
|
88
|
+
console.log(`版本: ${record.version} → ${currentPackageVersion}`);
|
|
89
|
+
}
|
|
90
|
+
console.log('');
|
|
91
|
+
// 重新检查环境工具
|
|
92
|
+
console.log(chalk.cyan('📋 环境检查'));
|
|
93
|
+
console.log(chalk.gray('─'.repeat(40)));
|
|
94
|
+
const gpgOk = await ensureGpg();
|
|
95
|
+
const alipayCliOk = await ensureAlipayCli();
|
|
96
|
+
const jqOk = await ensureJq();
|
|
97
|
+
console.log('');
|
|
98
|
+
// 更新版本记录中的环境状态
|
|
99
|
+
const updatedRecord = await readVersionFile(ctx.versionFile);
|
|
100
|
+
if (updatedRecord) {
|
|
101
|
+
updatedRecord.gpgInstalled = gpgOk;
|
|
102
|
+
updatedRecord.alipayCliInstalled = alipayCliOk;
|
|
103
|
+
updatedRecord.jqInstalled = jqOk;
|
|
104
|
+
await writeVersionFile(ctx.versionFile, updatedRecord);
|
|
105
|
+
}
|
|
106
|
+
if (!gpgOk || !alipayCliOk || !jqOk) {
|
|
107
|
+
console.log(chalk.yellow('⚠️ 部分环境工具未就绪:'));
|
|
108
|
+
if (!gpgOk)
|
|
109
|
+
console.log(chalk.gray(' GPG: brew install gnupg (macOS) / sudo apt-get install -y gnupg (Linux)'));
|
|
110
|
+
if (!alipayCliOk)
|
|
111
|
+
console.log(chalk.gray(' alipay-cli: curl -fsSL https://opengw.alipay.com/alipaycli/install | bash'));
|
|
112
|
+
if (!jqOk)
|
|
113
|
+
console.log(chalk.gray(' jq: brew install jq (macOS) / sudo apt-get install -y jq (Linux)'));
|
|
114
|
+
console.log('');
|
|
115
|
+
}
|
|
116
|
+
console.log(chalk.gray(`安装位置: ${ctx.targetDirLabel}/alipay-aipay/`));
|
|
117
|
+
console.log('');
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
spinner.fail(chalk.red('检查更新失败'));
|
|
121
|
+
console.error(error);
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { getPackageVersion } from './utils/config.js';
|
|
4
|
+
import { installCommand } from './commands/install.js';
|
|
5
|
+
import { uninstallCommand } from './commands/uninstall.js';
|
|
6
|
+
import { updateCommand } from './commands/update.js';
|
|
7
|
+
const program = new Command();
|
|
8
|
+
function parseTarget(value) {
|
|
9
|
+
if (value === 'agents' || value === 'codex' || value === 'claude' || value === 'auto' || value === 'all') {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
console.error(chalk.red(`无效的 --target: ${String(value)}`));
|
|
13
|
+
console.error(chalk.gray('可选值: all | agents | codex | claude | auto'));
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
program
|
|
17
|
+
.name('alipay-aipay')
|
|
18
|
+
.description('支付宝 AI 支付技能包 - 一键安装 GPG + alipay-cli + jq + Agent Skill')
|
|
19
|
+
.version(getPackageVersion());
|
|
20
|
+
// install 命令
|
|
21
|
+
program
|
|
22
|
+
.command('install')
|
|
23
|
+
.description('安装支付宝 AI 支付 Skill(含 GPG + alipay-cli + jq 环境配置)')
|
|
24
|
+
.option('--target <target>', '安装目标: all | agents | codex | claude | auto', 'all')
|
|
25
|
+
.action(async (options) => {
|
|
26
|
+
await installCommand(process.cwd(), { target: parseTarget(options.target) });
|
|
27
|
+
});
|
|
28
|
+
// uninstall 命令
|
|
29
|
+
program
|
|
30
|
+
.command('uninstall')
|
|
31
|
+
.description('卸载已安装的支付宝 AI 支付 Skill')
|
|
32
|
+
.option('--target <target>', '卸载目标: all | agents | codex | claude | auto', 'auto')
|
|
33
|
+
.action(async (options) => {
|
|
34
|
+
await uninstallCommand(process.cwd(), { target: parseTarget(options.target) });
|
|
35
|
+
});
|
|
36
|
+
// update 命令
|
|
37
|
+
program
|
|
38
|
+
.command('update')
|
|
39
|
+
.description('检查并更新支付宝 AI 支付 Skill')
|
|
40
|
+
.option('--target <target>', '更新目标: all | agents | codex | claude | auto', 'auto')
|
|
41
|
+
.action(async (options) => {
|
|
42
|
+
await updateCommand(process.cwd(), { target: parseTarget(options.target) });
|
|
43
|
+
});
|
|
44
|
+
// 默认行为:无参数时直接执行安装流程
|
|
45
|
+
if (process.argv.length === 2) {
|
|
46
|
+
installCommand(process.cwd(), { target: 'all' });
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
program.parse();
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACzG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAEhC,aAAa;AACb,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,EAAE,KAAK,CAAC;KAChF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,EAAE,MAAM,CAAC;KACjF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC;AAEL,YAAY;AACZ,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,EAAE,MAAM,CAAC;KACjF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC;AAEL,oBAAoB;AACpB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill 元数据
|
|
3
|
+
*/
|
|
4
|
+
export interface SkillMeta {
|
|
5
|
+
name: string;
|
|
6
|
+
displayName: string;
|
|
7
|
+
description: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 版本记录文件内容
|
|
11
|
+
*/
|
|
12
|
+
export interface VersionRecord {
|
|
13
|
+
version: string;
|
|
14
|
+
installedAt: string;
|
|
15
|
+
skills: string[];
|
|
16
|
+
gpgInstalled: boolean;
|
|
17
|
+
alipayCliInstalled: boolean;
|
|
18
|
+
jqInstalled?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* CLI 命令上下文
|
|
22
|
+
*/
|
|
23
|
+
export interface CommandContext {
|
|
24
|
+
cwd: string;
|
|
25
|
+
targetDir: string;
|
|
26
|
+
versionFile: string;
|
|
27
|
+
legacyVersionFile: string;
|
|
28
|
+
targetDirLabel: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 工具检查结果
|
|
32
|
+
*/
|
|
33
|
+
export interface ToolCheckResult {
|
|
34
|
+
name: string;
|
|
35
|
+
installed: boolean;
|
|
36
|
+
version?: string;
|
|
37
|
+
path?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 平台类型
|
|
41
|
+
*/
|
|
42
|
+
export type PlatformType = 'macos' | 'linux-apt' | 'linux-yum' | 'unsupported';
|
|
43
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ToolCheckResult } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* 检查 alipay-cli 是否已安装
|
|
4
|
+
*/
|
|
5
|
+
export declare function checkAlipayCli(): Promise<ToolCheckResult>;
|
|
6
|
+
/**
|
|
7
|
+
* 安装 alipay-cli
|
|
8
|
+
* 统一安装到 ~/.local/bin,无需 sudo
|
|
9
|
+
*/
|
|
10
|
+
export declare function installAlipayCli(): Promise<boolean>;
|
|
11
|
+
/**
|
|
12
|
+
* 确保 alipay-cli 已安装,未安装则自动安装
|
|
13
|
+
*/
|
|
14
|
+
export declare function ensureAlipayCli(): Promise<boolean>;
|
|
15
|
+
//# sourceMappingURL=alipay-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alipay-cli.d.ts","sourceRoot":"","sources":["../../src/utils/alipay-cli.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAwCnD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC,CAoB/D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAgFzD;AAgFD;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAQxD"}
|