@adep/cli 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +139 -0
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -6750,6 +6750,70 @@ var init_projects = __esm({
6750
6750
  }
6751
6751
  });
6752
6752
 
6753
+ // packages/cli/src/git.ts
6754
+ var git_exports = {};
6755
+ __export(git_exports, {
6756
+ gitBind: () => gitBind,
6757
+ gitStatus: () => gitStatus,
6758
+ gitSync: () => gitSync
6759
+ });
6760
+ async function resolveProjectId3(client, cwd, slug) {
6761
+ const resolvedSlug = await resolveSlug(cwd, slug);
6762
+ const listed = await client.request("/api/v1/projects", {}, "PROJECT_LIST_FAILED");
6763
+ const match = listed.projects.find((project2) => project2.slug === resolvedSlug);
6764
+ if (match === void 0) {
6765
+ throw new CliError(
6766
+ "PROJECT_NOT_FOUND",
6767
+ `\u5E73\u53F0\u9879\u76EE "${resolvedSlug}" \u4E0D\u5B58\u5728\u6216\u4F60\u6CA1\u6709\u8BBF\u95EE\u6743\u9650\uFF1A\u5148\u6267\u884C adep projects create ${resolvedSlug}`
6768
+ );
6769
+ }
6770
+ return { id: match.id, slug: match.slug };
6771
+ }
6772
+ async function gitBind(paths, options) {
6773
+ const client = await createClient(paths);
6774
+ const { id } = await resolveProjectId3(client, options.cwd, options.slug);
6775
+ const body = {
6776
+ repoUrl: options.repoUrl,
6777
+ branch: options.branch
6778
+ };
6779
+ if (options.functionRoot !== void 0) body.functionRoot = options.functionRoot;
6780
+ if (options.syncEnabled !== void 0) body.syncEnabled = options.syncEnabled;
6781
+ if (options.username !== void 0) body.authUsername = options.username;
6782
+ if (options.token !== void 0) body.authToken = options.token;
6783
+ const view = await client.request(
6784
+ `/api/v1/projects/${id}/gitsync/bind`,
6785
+ { body },
6786
+ "GIT_BIND_FAILED"
6787
+ );
6788
+ return view;
6789
+ }
6790
+ async function gitSync(paths, options) {
6791
+ const client = await createClient(paths);
6792
+ const { id } = await resolveProjectId3(client, options.cwd, options.slug);
6793
+ const result = await client.request(
6794
+ `/api/v1/projects/${id}/gitsync/sync`,
6795
+ { body: {} },
6796
+ "GIT_SYNC_FAILED"
6797
+ );
6798
+ return { jobId: result.jobId };
6799
+ }
6800
+ async function gitStatus(paths, options) {
6801
+ const client = await createClient(paths);
6802
+ const { id } = await resolveProjectId3(client, options.cwd, options.slug);
6803
+ return client.request(
6804
+ `/api/v1/projects/${id}/gitsync`,
6805
+ {},
6806
+ "GIT_STATUS_FAILED"
6807
+ );
6808
+ }
6809
+ var init_git = __esm({
6810
+ "packages/cli/src/git.ts"() {
6811
+ "use strict";
6812
+ init_auth();
6813
+ init_client();
6814
+ }
6815
+ });
6816
+
6753
6817
  // packages/cli/src/functions.ts
6754
6818
  var functions_exports = {};
6755
6819
  __export(functions_exports, {
@@ -9236,6 +9300,80 @@ function registerProjects(program2, ctx) {
9236
9300
  });
9237
9301
  }
9238
9302
 
9303
+ // packages/cli/src/commands/git.ts
9304
+ function registerGit(program2, ctx) {
9305
+ const git = program2.command("git").description("Git \u4ED3\u5E93\u7ED1\u5B9A\uFF1A\u7ED1\u5B9A / \u624B\u52A8\u540C\u6B65 / \u67E5\u770B\u72B6\u6001\uFF08push \u5230 main \u81EA\u52A8\u90E8\u7F72\uFF09");
9306
+ git.command("bind").description("\u7ED1\u5B9A/\u66F4\u65B0\u9879\u76EE Git \u4ED3\u5E93\uFF08\u6D45\u5C42 clone \u6821\u9A8C\u8FDE\u901A\u6027\uFF0C\u652F\u6301\u79C1\u6709\u4ED3\u5E93\u51ED\u636E\uFF09").argument("<repoUrl>", "\u4ED3\u5E93\u5730\u5740\uFF08https://\u2026\uFF0C\u79C1\u6709\u4ED3\u5E93\u4F20 --username/--token\uFF09").requiredOption("-b, --branch <branch>", "\u7ED1\u5B9A\u5206\u652F\uFF08\u7F3A\u7701 main\uFF09").option("--slug <slug>", "\u5E73\u53F0\u9879\u76EE slug\uFF08\u7F3A\u7701\u8BFB adep.config.ts / \u5F53\u524D\u76EE\u5F55\u540D\uFF09").option("--function-root <dir>", "legacy \u5E03\u5C40\u51FD\u6570\u6839\u76EE\u5F55\uFF08\u5E94\u7528\u5E03\u5C40\u65E0\u9700\u4F20\uFF09").option("--no-sync", "\u7ED1\u5B9A\u4F46\u4E0D\u542F\u7528\u81EA\u52A8\u540C\u6B65").option("-u, --username <username>", "\u79C1\u6709\u4ED3\u5E93\u7528\u6237\u540D").option("-t, --token <token>", "\u79C1\u6709\u4ED3\u5E93\u8BBF\u95EE\u4EE4\u724C\uFF08\u660E\u6587\u53EA\u5728\u8BF7\u6C42\u5185\u4F20\u8F93\uFF0C\u670D\u52A1\u7AEF\u52A0\u5BC6\u843D\u5E93\uFF09").action(
9307
+ async (repoUrl, flags) => {
9308
+ const command = ctx.io("git bind");
9309
+ await command.run(async () => {
9310
+ const { gitBind: gitBind2 } = await Promise.resolve().then(() => (init_git(), git_exports));
9311
+ const view = await gitBind2(ctx.paths, {
9312
+ cwd: ctx.cwd,
9313
+ repoUrl,
9314
+ branch: flags.branch,
9315
+ ...flags.slug === void 0 ? {} : { slug: flags.slug },
9316
+ ...flags.functionRoot === void 0 ? {} : { functionRoot: flags.functionRoot },
9317
+ ...flags.sync === void 0 ? {} : { syncEnabled: flags.sync },
9318
+ ...flags.username === void 0 ? {} : { username: flags.username },
9319
+ ...flags.token === void 0 ? {} : { token: flags.token }
9320
+ });
9321
+ command.ok(view, (data) => {
9322
+ const v = data;
9323
+ const auth = v.hasAuth ? "\u79C1\u6709\u51ED\u636E" : "\u516C\u5F00";
9324
+ const last = v.lastStatus === null ? "\u672A\u540C\u6B65" : `${v.lastStatus.state} \xB7 ${v.lastStatus.description}`;
9325
+ return [
9326
+ `\u2713 Git \u5DF2\u7ED1\u5B9A \xB7 ${v.repoUrl} \u2192 ${v.branch}\uFF08${auth}\uFF09`,
9327
+ ` \u81EA\u52A8\u540C\u6B65\uFF1A${v.syncEnabled ? "\u5F00\uFF08push \u540E \u226460s \u81EA\u52A8\u90E8\u7F72\uFF09" : "\u5173"}`,
9328
+ ` \u6700\u8FD1\u72B6\u6001\uFF1A${last}`
9329
+ ].join("\n");
9330
+ });
9331
+ });
9332
+ }
9333
+ );
9334
+ git.command("sync").description("\u624B\u52A8\u89E6\u53D1\u4E00\u6B21 Git \u540C\u6B65 + \u81EA\u52A8\u90E8\u7F72\uFF08\u672C\u5730\u5E73\u53F0\u65E0 webhook \u53EF\u8FBE\u65F6\u7528\uFF09").option("--slug <slug>", "\u5E73\u53F0\u9879\u76EE slug\uFF08\u7F3A\u7701\u8BFB adep.config.ts / \u5F53\u524D\u76EE\u5F55\u540D\uFF09").action(async (flags) => {
9335
+ const command = ctx.io("git sync");
9336
+ await command.run(async () => {
9337
+ const { gitSync: gitSync2 } = await Promise.resolve().then(() => (init_git(), git_exports));
9338
+ const result = await gitSync2(ctx.paths, {
9339
+ cwd: ctx.cwd,
9340
+ ...flags.slug === void 0 ? {} : { slug: flags.slug }
9341
+ });
9342
+ command.ok(
9343
+ result,
9344
+ (data) => `\u2713 \u5DF2\u89E6\u53D1 Git \u540C\u6B65 + \u90E8\u7F72\uFF08job ${data.jobId}\uFF09`
9345
+ );
9346
+ });
9347
+ });
9348
+ git.command("status").description("\u67E5\u770B\u7ED1\u5B9A\u4E0E\u6700\u8FD1\u4E00\u6B21\u540C\u6B65/\u90E8\u7F72\u72B6\u6001").option("--slug <slug>", "\u5E73\u53F0\u9879\u76EE slug\uFF08\u7F3A\u7701\u8BFB adep.config.ts / \u5F53\u524D\u76EE\u5F55\u540D\uFF09").action(async (flags) => {
9349
+ const command = ctx.io("git status");
9350
+ await command.run(async () => {
9351
+ const { gitStatus: gitStatus2 } = await Promise.resolve().then(() => (init_git(), git_exports));
9352
+ const view = await gitStatus2(ctx.paths, {
9353
+ cwd: ctx.cwd,
9354
+ ...flags.slug === void 0 ? {} : { slug: flags.slug }
9355
+ });
9356
+ if (view === null) {
9357
+ command.ok(null, () => "\u672A\u7ED1\u5B9A Git \u4ED3\u5E93\uFF1Aadep git bind <repoUrl> -b main");
9358
+ return;
9359
+ }
9360
+ command.ok(view, (data) => {
9361
+ const v = data;
9362
+ const auth = v.hasAuth ? "\u79C1\u6709\u51ED\u636E" : "\u516C\u5F00";
9363
+ const last = v.lastStatus === null ? "\u672A\u540C\u6B65" : `${v.lastStatus.state} \xB7 ${v.lastStatus.description}`;
9364
+ const commit = v.lastSyncedCommit === null ? "\u2014" : v.lastSyncedCommit.slice(0, 8);
9365
+ return [
9366
+ `\u4ED3\u5E93 ${v.repoUrl}`,
9367
+ `\u5206\u652F ${v.branch}\uFF08${auth}\uFF09`,
9368
+ `\u81EA\u52A8\u540C\u6B65 ${v.syncEnabled ? "\u5F00" : "\u5173"}`,
9369
+ `\u6700\u8FD1\u540C\u6B65 ${commit}`,
9370
+ `\u6700\u8FD1\u72B6\u6001 ${last}`
9371
+ ].join("\n");
9372
+ });
9373
+ });
9374
+ });
9375
+ }
9376
+
9239
9377
  // packages/cli/src/commands/functions.ts
9240
9378
  init_auth();
9241
9379
  function registerFunctions(program2, ctx) {
@@ -9401,6 +9539,7 @@ function buildProgram(options = {}) {
9401
9539
  registerDoctor(program2, ctx);
9402
9540
  registerAuth(program2, ctx);
9403
9541
  registerMcp(program2, ctx);
9542
+ registerGit(program2, ctx);
9404
9543
  registerDeploy(program2, ctx);
9405
9544
  registerProjects(program2, ctx);
9406
9545
  registerFunctions(program2, ctx);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adep/cli",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "type": "module",
5
5
  "description": "`adep` 命令行工具包位:登录 / 初始化 / 本地调试 / 部署 / 数据库维护 / 云存储 / 静态托管 / 微前端组件(widget),实现见任务单 CLI-001 ~ CLI-003 与 FE-002;子路径 `@adep/cli/vite` 提供云函数 vite 插件(CLI-014)",
6
6
  "bin": {
@@ -20,8 +20,8 @@
20
20
  "dependencies": {
21
21
  "commander": "14.0.2",
22
22
  "esbuild": "0.25.12",
23
- "@adep/vite-plugin": "0.1.2",
24
- "@adep/cf-compat": "0.1.1"
23
+ "@adep/cf-compat": "0.1.1",
24
+ "@adep/vite-plugin": "0.1.2"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@adep/runtime": "0.2.2",