@percher/core 0.3.0 → 0.4.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/dist/commands/account.d.ts +24 -14
- package/dist/commands/account.d.ts.map +1 -1
- package/dist/commands/account.js +17 -4
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/admin-reconcile-routes.d.ts +18 -0
- package/dist/commands/admin-reconcile-routes.d.ts.map +1 -0
- package/dist/commands/admin-reconcile-routes.js +22 -0
- package/dist/commands/admin-reconcile-routes.js.map +1 -0
- package/dist/commands/ai-files.d.ts +5 -17
- package/dist/commands/ai-files.d.ts.map +1 -1
- package/dist/commands/ai-files.js +3 -4
- package/dist/commands/ai-files.js.map +1 -1
- package/dist/commands/alerts.d.ts +69 -0
- package/dist/commands/alerts.d.ts.map +1 -0
- package/dist/commands/alerts.js +80 -0
- package/dist/commands/alerts.js.map +1 -0
- package/dist/commands/app-resources.d.ts +30 -0
- package/dist/commands/app-resources.d.ts.map +1 -0
- package/dist/commands/app-resources.js +34 -0
- package/dist/commands/app-resources.js.map +1 -0
- package/dist/commands/app-topology.d.ts +18 -0
- package/dist/commands/app-topology.d.ts.map +1 -0
- package/dist/commands/app-topology.js +25 -0
- package/dist/commands/app-topology.js.map +1 -0
- package/dist/commands/billing.d.ts +8 -8
- package/dist/commands/billing.d.ts.map +1 -1
- package/dist/commands/billing.js +1 -1
- package/dist/commands/billing.js.map +1 -1
- package/dist/commands/continue.d.ts +1 -1
- package/dist/commands/create.d.ts +2 -12
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +1 -1
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/dashboard.d.ts +2 -8
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +1 -1
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/data-export.d.ts +2 -8
- package/dist/commands/data-export.d.ts.map +1 -1
- package/dist/commands/data-export.js +1 -1
- package/dist/commands/data-export.js.map +1 -1
- package/dist/commands/data.d.ts +2 -8
- package/dist/commands/data.d.ts.map +1 -1
- package/dist/commands/data.js +1 -1
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/delete.d.ts +2 -8
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +1 -1
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/deploys.d.ts +4 -28
- package/dist/commands/deploys.d.ts.map +1 -1
- package/dist/commands/deploys.js +1 -1
- package/dist/commands/deploys.js.map +1 -1
- package/dist/commands/dev.d.ts +2 -6
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +3 -2
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/diagnose.d.ts +2 -22
- package/dist/commands/diagnose.d.ts.map +1 -1
- package/dist/commands/diagnose.js +1 -1
- package/dist/commands/diagnose.js.map +1 -1
- package/dist/commands/doctor.d.ts +20 -35
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +42 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/domains.d.ts +5 -27
- package/dist/commands/domains.d.ts.map +1 -1
- package/dist/commands/domains.js +1 -1
- package/dist/commands/domains.js.map +1 -1
- package/dist/commands/env-scan.js +1 -1
- package/dist/commands/env-scan.js.map +1 -1
- package/dist/commands/env.d.ts +4 -20
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +1 -1
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/export.d.ts +1 -1
- package/dist/commands/forgejo.d.ts +45 -0
- package/dist/commands/forgejo.d.ts.map +1 -0
- package/dist/commands/forgejo.js +125 -0
- package/dist/commands/forgejo.js.map +1 -0
- package/dist/commands/generate.d.ts +2 -6
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +1 -1
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/github.d.ts +4 -15
- package/dist/commands/github.d.ts.map +1 -1
- package/dist/commands/github.js +17 -1
- package/dist/commands/github.js.map +1 -1
- package/dist/commands/import-project.d.ts +13 -9
- package/dist/commands/import-project.d.ts.map +1 -1
- package/dist/commands/import-project.js +73 -22
- package/dist/commands/import-project.js.map +1 -1
- package/dist/commands/init.d.ts +26 -11
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +103 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/insights.d.ts +2 -6
- package/dist/commands/insights.d.ts.map +1 -1
- package/dist/commands/insights.js +1 -1
- package/dist/commands/insights.js.map +1 -1
- package/dist/commands/login.d.ts +2 -8
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +22 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logs.d.ts +25 -10
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +65 -5
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/mcp.d.ts +2 -2
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +1 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/migrate-supabase-map.d.ts +171 -0
- package/dist/commands/migrate-supabase-map.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-map.js +452 -0
- package/dist/commands/migrate-supabase-map.js.map +1 -0
- package/dist/commands/migrate-supabase-schema.d.ts +67 -0
- package/dist/commands/migrate-supabase-schema.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-schema.js +321 -0
- package/dist/commands/migrate-supabase-schema.js.map +1 -0
- package/dist/commands/migrate-supabase-scripts.d.ts +64 -0
- package/dist/commands/migrate-supabase-scripts.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-scripts.js +564 -0
- package/dist/commands/migrate-supabase-scripts.js.map +1 -0
- package/dist/commands/migrate-supabase-sdk.d.ts +133 -0
- package/dist/commands/migrate-supabase-sdk.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-sdk.js +1119 -0
- package/dist/commands/migrate-supabase-sdk.js.map +1 -0
- package/dist/commands/migrate-supabase-walker.d.ts +93 -0
- package/dist/commands/migrate-supabase-walker.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-walker.js +413 -0
- package/dist/commands/migrate-supabase-walker.js.map +1 -0
- package/dist/commands/migrate-supabase.d.ts +81 -0
- package/dist/commands/migrate-supabase.d.ts.map +1 -0
- package/dist/commands/migrate-supabase.js +579 -0
- package/dist/commands/migrate-supabase.js.map +1 -0
- package/dist/commands/open.d.ts +2 -6
- package/dist/commands/open.d.ts.map +1 -1
- package/dist/commands/open.js +1 -1
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/publish-api-error.d.ts +46 -0
- package/dist/commands/publish-api-error.d.ts.map +1 -0
- package/dist/commands/publish-api-error.js +307 -0
- package/dist/commands/publish-api-error.js.map +1 -0
- package/dist/commands/publish-failure.d.ts.map +1 -1
- package/dist/commands/publish-failure.js +11 -3
- package/dist/commands/publish-failure.js.map +1 -1
- package/dist/commands/publish-node.d.ts +5 -2
- package/dist/commands/publish-node.d.ts.map +1 -1
- package/dist/commands/publish-node.js +7 -3
- package/dist/commands/publish-node.js.map +1 -1
- package/dist/commands/publish.d.ts +58 -17
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +407 -145
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/push.d.ts +2 -12
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +25 -7
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/redeploy.d.ts +2 -8
- package/dist/commands/redeploy.d.ts.map +1 -1
- package/dist/commands/redeploy.js +20 -16
- package/dist/commands/redeploy.js.map +1 -1
- package/dist/commands/rename.d.ts +2 -8
- package/dist/commands/rename.d.ts.map +1 -1
- package/dist/commands/rename.js +1 -1
- package/dist/commands/rename.js.map +1 -1
- package/dist/commands/reproduce.d.ts +2 -8
- package/dist/commands/reproduce.d.ts.map +1 -1
- package/dist/commands/reproduce.js +1 -1
- package/dist/commands/reproduce.js.map +1 -1
- package/dist/commands/reset-superuser.d.ts +2 -16
- package/dist/commands/reset-superuser.d.ts.map +1 -1
- package/dist/commands/reset-superuser.js +1 -1
- package/dist/commands/reset-superuser.js.map +1 -1
- package/dist/commands/restore.d.ts +7 -22
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +1 -1
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/resume.d.ts +2 -6
- package/dist/commands/resume.d.ts.map +1 -1
- package/dist/commands/resume.js +1 -1
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/rollback.d.ts +4 -9
- package/dist/commands/rollback.d.ts.map +1 -1
- package/dist/commands/rollback.js +3 -2
- package/dist/commands/rollback.js.map +1 -1
- package/dist/commands/sharing.d.ts +48 -0
- package/dist/commands/sharing.d.ts.map +1 -0
- package/dist/commands/sharing.js +85 -0
- package/dist/commands/sharing.js.map +1 -0
- package/dist/commands/status.d.ts +29 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +48 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/transfers.d.ts +34 -0
- package/dist/commands/transfers.d.ts.map +1 -0
- package/dist/commands/transfers.js +62 -0
- package/dist/commands/transfers.js.map +1 -0
- package/dist/commands/unsuspend.d.ts +2 -6
- package/dist/commands/unsuspend.d.ts.map +1 -1
- package/dist/commands/unsuspend.js +1 -1
- package/dist/commands/unsuspend.js.map +1 -1
- package/dist/commands/versions.d.ts +2 -6
- package/dist/commands/versions.d.ts.map +1 -1
- package/dist/commands/versions.js +1 -1
- package/dist/commands/versions.js.map +1 -1
- package/dist/commands/wait-deploy.d.ts +2 -12
- package/dist/commands/wait-deploy.d.ts.map +1 -1
- package/dist/commands/wait-deploy.js +5 -4
- package/dist/commands/wait-deploy.js.map +1 -1
- package/dist/context.d.ts +15 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/detect.d.ts +11 -0
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +31 -8
- package/dist/detect.js.map +1 -1
- package/dist/env-scan-source.js +1 -1
- package/dist/env-scan-source.js.map +1 -1
- package/dist/error-classifier.d.ts +17 -0
- package/dist/error-classifier.d.ts.map +1 -1
- package/dist/error-classifier.js +95 -9
- package/dist/error-classifier.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/event-renderer.d.ts +17 -0
- package/dist/event-renderer.d.ts.map +1 -0
- package/dist/event-renderer.js +130 -0
- package/dist/event-renderer.js.map +1 -0
- package/dist/index.d.ts +63 -47
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -40
- package/dist/index.js.map +1 -1
- package/dist/plans.d.ts +70 -5
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +83 -18
- package/dist/plans.js.map +1 -1
- package/dist/poll-deployment.d.ts +13 -1
- package/dist/poll-deployment.d.ts.map +1 -1
- package/dist/poll-deployment.js +37 -1
- package/dist/poll-deployment.js.map +1 -1
- package/dist/publish-retry.d.ts +29 -0
- package/dist/publish-retry.d.ts.map +1 -0
- package/dist/publish-retry.js +224 -0
- package/dist/publish-retry.js.map +1 -0
- package/dist/recovery.d.ts +60 -3
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +24 -1
- package/dist/recovery.js.map +1 -1
- package/dist/static-docker.d.ts +77 -0
- package/dist/static-docker.d.ts.map +1 -0
- package/dist/static-docker.js +105 -0
- package/dist/static-docker.js.map +1 -0
- package/dist/structured-error-codes.d.ts +30 -0
- package/dist/structured-error-codes.d.ts.map +1 -0
- package/dist/structured-error-codes.js +86 -0
- package/dist/structured-error-codes.js.map +1 -0
- package/dist/tarball.d.ts +11 -0
- package/dist/tarball.d.ts.map +1 -1
- package/dist/tarball.js +31 -10
- package/dist/tarball.js.map +1 -1
- package/dist/templates/ai-files/cursor-percher-mdc.d.ts.map +1 -1
- package/dist/templates/ai-files/cursor-percher-mdc.js +12 -9
- package/dist/templates/ai-files/cursor-percher-mdc.js.map +1 -1
- package/dist/templates.js +11 -11
- package/dist/templates.js.map +1 -1
- package/dist/watcher.js +1 -1
- package/dist/watcher.js.map +1 -1
- package/package.json +7 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BackupSidecar, RestoreJob } from "@percher/client";
|
|
2
|
-
import { z } from "zod
|
|
2
|
+
import { z } from "zod";
|
|
3
3
|
import type { Context } from "../context";
|
|
4
4
|
/**
|
|
5
5
|
* Per-app restore (B.2 — CLI/MCP entry point on top of B.1.4).
|
|
@@ -15,11 +15,7 @@ import type { Context } from "../context";
|
|
|
15
15
|
*/
|
|
16
16
|
export declare const listBackupsInputSchema: z.ZodObject<{
|
|
17
17
|
app: z.ZodOptional<z.ZodString>;
|
|
18
|
-
},
|
|
19
|
-
app?: string | undefined;
|
|
20
|
-
}, {
|
|
21
|
-
app?: string | undefined;
|
|
22
|
-
}>;
|
|
18
|
+
}, z.core.$strip>;
|
|
23
19
|
export type ListBackupsInput = z.infer<typeof listBackupsInputSchema>;
|
|
24
20
|
export declare function listBackups(ctx: Context, input: ListBackupsInput): Promise<{
|
|
25
21
|
backups: BackupSidecar[];
|
|
@@ -39,24 +35,13 @@ export declare function listBackups(ctx: Context, input: ListBackupsInput): Prom
|
|
|
39
35
|
*/
|
|
40
36
|
export declare const restoreInputSchema: z.ZodObject<{
|
|
41
37
|
app: z.ZodOptional<z.ZodString>;
|
|
42
|
-
/** "latest" | "YYYY-MM-DD" | "<backup_id>" — passed through to API. */
|
|
43
38
|
source: z.ZodString;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
components: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
40
|
+
pocketbase: "pocketbase";
|
|
41
|
+
appdata: "appdata";
|
|
42
|
+
}>>>;
|
|
48
43
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
49
|
-
},
|
|
50
|
-
dryRun: boolean;
|
|
51
|
-
source: string;
|
|
52
|
-
app?: string | undefined;
|
|
53
|
-
components?: ("pocketbase" | "appdata")[] | undefined;
|
|
54
|
-
}, {
|
|
55
|
-
source: string;
|
|
56
|
-
app?: string | undefined;
|
|
57
|
-
dryRun?: boolean | undefined;
|
|
58
|
-
components?: ("pocketbase" | "appdata")[] | undefined;
|
|
59
|
-
}>;
|
|
44
|
+
}, z.core.$strip>;
|
|
60
45
|
export type RestoreInput = z.infer<typeof restoreInputSchema>;
|
|
61
46
|
/**
|
|
62
47
|
* Internal-only knobs for tests + future automation. NOT part of the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAS7F;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;iBAS7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,aAAa,CAAC;IAC9B,UAAU,EAAE,CAAC,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC;CAC1C;AAED,wBAAsB,OAAO,CAC3B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,SAAS,GAAE,gBAAqB,GAC/B,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,CAiFpC"}
|
package/dist/commands/restore.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/commands/restore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import { z } from "zod
|
|
1
|
+
import { z } from "zod";
|
|
2
2
|
import type { Context } from "../context";
|
|
3
3
|
export declare const resumeInputSchema: z.ZodObject<{
|
|
4
4
|
app: z.ZodOptional<z.ZodString>;
|
|
5
|
-
},
|
|
6
|
-
app?: string | undefined;
|
|
7
|
-
}, {
|
|
8
|
-
app?: string | undefined;
|
|
9
|
-
}>;
|
|
5
|
+
}, z.core.$strip>;
|
|
10
6
|
export type ResumeInput = z.infer<typeof resumeInputSchema>;
|
|
11
7
|
export declare function resume(ctx: Context, input?: ResumeInput): Promise<{
|
|
12
8
|
status: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,wBAAsB,MAAM,CAC1B,GAAG,EAAE,OAAO,EACZ,KAAK,GAAE,WAAgB,GACtB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAS9C"}
|
package/dist/commands/resume.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC;AAGH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,GAAY,EACZ,QAAqB,EAAE;IAEvB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,gBAAgB,CAAC,4CAA4C,EAAE;YACvE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,6DAA6D;SACpE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Deployment } from "@percher/client";
|
|
2
|
-
import { z } from "zod
|
|
2
|
+
import { z } from "zod";
|
|
3
3
|
import type { Context } from "../context";
|
|
4
4
|
/**
|
|
5
5
|
* Public input — surfaces in MCP `inputSchema` for AI assistants + on
|
|
@@ -11,13 +11,7 @@ import type { Context } from "../context";
|
|
|
11
11
|
export declare const rollbackInputSchema: z.ZodObject<{
|
|
12
12
|
app: z.ZodOptional<z.ZodString>;
|
|
13
13
|
commitSha: z.ZodString;
|
|
14
|
-
},
|
|
15
|
-
commitSha: string;
|
|
16
|
-
app?: string | undefined;
|
|
17
|
-
}, {
|
|
18
|
-
commitSha: string;
|
|
19
|
-
app?: string | undefined;
|
|
20
|
-
}>;
|
|
14
|
+
}, z.core.$strip>;
|
|
21
15
|
export type RollbackInput = z.infer<typeof rollbackInputSchema>;
|
|
22
16
|
/**
|
|
23
17
|
* Internal-only knobs for tests + future automation. NOT part of the
|
|
@@ -27,7 +21,8 @@ export type RollbackInput = z.infer<typeof rollbackInputSchema>;
|
|
|
27
21
|
export interface RollbackInternals {
|
|
28
22
|
/** Poll cadence between deployment status checks (ms). Default 2000. */
|
|
29
23
|
pollIntervalMs?: number;
|
|
30
|
-
/** Hard cap before throwing push.deploy-timeout (ms). Default
|
|
24
|
+
/** Hard cap before throwing push.deploy-timeout (ms). Default tracks
|
|
25
|
+
* the shared `clientPublishPoll` budget (Phase 7.1). */
|
|
31
26
|
timeoutMs?: number;
|
|
32
27
|
}
|
|
33
28
|
export declare function rollback(ctx: Context, input: RollbackInput, internals?: RollbackInternals): Promise<Deployment>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;6DACyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,aAAa,EACpB,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,UAAU,CAAC,CAkCrB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TIMEOUTS } from "@percher/shared/timeouts";
|
|
2
|
+
import { z } from "zod";
|
|
2
3
|
import { readPercherTomlAppName } from "../app-name";
|
|
3
4
|
import { PercherCoreError } from "../errors";
|
|
4
5
|
/**
|
|
@@ -22,7 +23,7 @@ export async function rollback(ctx, input, internals = {}) {
|
|
|
22
23
|
}
|
|
23
24
|
let deployment = await ctx.client.apps.rollback(name, input.commitSha);
|
|
24
25
|
const pollInterval = internals.pollIntervalMs ?? 2000;
|
|
25
|
-
const timeoutMs = internals.timeoutMs ??
|
|
26
|
+
const timeoutMs = internals.timeoutMs ?? TIMEOUTS.clientPublishPoll;
|
|
26
27
|
const startedAt = Date.now();
|
|
27
28
|
while (deployment.status !== "live" && deployment.status !== "failed") {
|
|
28
29
|
if (Date.now() - startedAt > timeoutMs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAgBH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAY,EACZ,KAAoB,EACpB,YAA+B,EAAE;IAEjC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,gBAAgB,CAAC,4CAA4C,EAAE;YACvE,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,8DAA8D;SACrE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC;IACtD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,QAAQ,CAAC,iBAAiB,CAAC;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,UAAU,CAAC,MAAM,KAAK,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE;gBAC/C,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,0CAA0C;aACjD,CAAC,CAAC;QACL,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;QACtC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QACtD,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,gBAAgB,CAAC,iBAAiB,EAAE;YAC5C,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,4CAA4C;SACnD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { AcceptedInvite, CreatedShare, PendingInvite, ShareRow } from "@percher/client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import type { Context } from "../context";
|
|
4
|
+
export declare const shareListInputSchema: z.ZodObject<{
|
|
5
|
+
app: z.ZodOptional<z.ZodString>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export type ShareListInput = z.infer<typeof shareListInputSchema>;
|
|
8
|
+
export declare const shareInviteInputSchema: z.ZodObject<{
|
|
9
|
+
app: z.ZodOptional<z.ZodString>;
|
|
10
|
+
email: z.ZodString;
|
|
11
|
+
role: z.ZodDefault<z.ZodEnum<{
|
|
12
|
+
viewer: "viewer";
|
|
13
|
+
admin: "admin";
|
|
14
|
+
}>>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export type ShareInviteInput = z.infer<typeof shareInviteInputSchema>;
|
|
17
|
+
export declare const shareSetRoleInputSchema: z.ZodObject<{
|
|
18
|
+
app: z.ZodOptional<z.ZodString>;
|
|
19
|
+
shareId: z.ZodString;
|
|
20
|
+
role: z.ZodEnum<{
|
|
21
|
+
viewer: "viewer";
|
|
22
|
+
admin: "admin";
|
|
23
|
+
}>;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export type ShareSetRoleInput = z.infer<typeof shareSetRoleInputSchema>;
|
|
26
|
+
export declare const shareRevokeInputSchema: z.ZodObject<{
|
|
27
|
+
app: z.ZodOptional<z.ZodString>;
|
|
28
|
+
shareId: z.ZodString;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type ShareRevokeInput = z.infer<typeof shareRevokeInputSchema>;
|
|
31
|
+
export declare function shareList(ctx: Context, input?: ShareListInput): Promise<ShareRow[]>;
|
|
32
|
+
export declare function shareInvite(ctx: Context, input: ShareInviteInput): Promise<CreatedShare>;
|
|
33
|
+
export declare function shareSetRole(ctx: Context, input: ShareSetRoleInput): Promise<ShareRow>;
|
|
34
|
+
export declare function shareRevoke(ctx: Context, input: ShareRevokeInput): Promise<void>;
|
|
35
|
+
export declare const invitesListInputSchema: z.ZodObject<{}, z.core.$strip>;
|
|
36
|
+
export type InvitesListInput = z.infer<typeof invitesListInputSchema>;
|
|
37
|
+
export declare const invitesAcceptInputSchema: z.ZodObject<{
|
|
38
|
+
shareId: z.ZodString;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export type InvitesAcceptInput = z.infer<typeof invitesAcceptInputSchema>;
|
|
41
|
+
export declare const invitesDeclineInputSchema: z.ZodObject<{
|
|
42
|
+
shareId: z.ZodString;
|
|
43
|
+
}, z.core.$strip>;
|
|
44
|
+
export type InvitesDeclineInput = z.infer<typeof invitesDeclineInputSchema>;
|
|
45
|
+
export declare function invitesList(ctx: Context, _input?: InvitesListInput): Promise<PendingInvite[]>;
|
|
46
|
+
export declare function invitesAccept(ctx: Context, input: InvitesAcceptInput): Promise<AcceptedInvite>;
|
|
47
|
+
export declare function invitesDecline(ctx: Context, input: InvitesDeclineInput): Promise<void>;
|
|
48
|
+
//# sourceMappingURL=sharing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharing.d.ts","sourceRoot":"","sources":["../../src/commands/sharing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAsC1C,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,sBAAsB;;;;;;;iBAIjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;;;;iBAIlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAG7F;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAG9F;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAG5F;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtF;AAID,eAAO,MAAM,sBAAsB,gCAAe,CAAC;AACnD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB;;iBAEnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,gBAAqB,GAC5B,OAAO,CAAC,aAAa,EAAE,CAAC,CAE1B;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { readPercherTomlAppName } from "../app-name";
|
|
3
|
+
import { PercherCoreError } from "../errors";
|
|
4
|
+
/**
|
|
5
|
+
* FUTURE15 Fas C — pure-function command layer for the sharing +
|
|
6
|
+
* invites HTTP surface. CLI and MCP both wrap these; keeping the
|
|
7
|
+
* logic here means a future bug-fix lands in one place and both
|
|
8
|
+
* surfaces inherit it.
|
|
9
|
+
*
|
|
10
|
+
* Two URL families on the API map to two command families here:
|
|
11
|
+
*
|
|
12
|
+
* - share.* — owner-managed per-app invites
|
|
13
|
+
* (POST /apps/:ref/share, GET, PATCH role, DELETE)
|
|
14
|
+
* - invites.* — recipient-managed across-app pending invites
|
|
15
|
+
* (GET /share/invites, POST :id/accept, DELETE :id)
|
|
16
|
+
*
|
|
17
|
+
* `app` is optional on share.* commands: if omitted we read it from
|
|
18
|
+
* percher.toml in the cwd, same convention the env/domains commands
|
|
19
|
+
* follow. `invites.*` commands have no app context — they operate on
|
|
20
|
+
* whatever the authenticated user's normalized email matches on the
|
|
21
|
+
* server, so app names don't enter the picture.
|
|
22
|
+
*/
|
|
23
|
+
const ShareRoleSchema = z.enum(["viewer", "admin"]);
|
|
24
|
+
function resolveApp(ctx, app) {
|
|
25
|
+
const name = app ?? readPercherTomlAppName(ctx.cwd);
|
|
26
|
+
if (!name) {
|
|
27
|
+
throw new PercherCoreError("No app specified and no percher.toml found", {
|
|
28
|
+
code: "env.no-app",
|
|
29
|
+
hint: "Pass an app name or run from a directory with percher.toml.",
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return name;
|
|
33
|
+
}
|
|
34
|
+
// ─── Owner-managed: share invites for one app ───────────────────────────
|
|
35
|
+
export const shareListInputSchema = z.object({
|
|
36
|
+
app: z.string().optional(),
|
|
37
|
+
});
|
|
38
|
+
export const shareInviteInputSchema = z.object({
|
|
39
|
+
app: z.string().optional(),
|
|
40
|
+
email: z.string().email("Must be a valid email address"),
|
|
41
|
+
role: ShareRoleSchema.default("viewer"),
|
|
42
|
+
});
|
|
43
|
+
export const shareSetRoleInputSchema = z.object({
|
|
44
|
+
app: z.string().optional(),
|
|
45
|
+
shareId: z.string().min(1, "shareId is required"),
|
|
46
|
+
role: ShareRoleSchema,
|
|
47
|
+
});
|
|
48
|
+
export const shareRevokeInputSchema = z.object({
|
|
49
|
+
app: z.string().optional(),
|
|
50
|
+
shareId: z.string().min(1, "shareId is required"),
|
|
51
|
+
});
|
|
52
|
+
export async function shareList(ctx, input = {}) {
|
|
53
|
+
const appRef = resolveApp(ctx, input.app);
|
|
54
|
+
return ctx.client.sharing.list(appRef);
|
|
55
|
+
}
|
|
56
|
+
export async function shareInvite(ctx, input) {
|
|
57
|
+
const appRef = resolveApp(ctx, input.app);
|
|
58
|
+
return ctx.client.sharing.create(appRef, { email: input.email, role: input.role });
|
|
59
|
+
}
|
|
60
|
+
export async function shareSetRole(ctx, input) {
|
|
61
|
+
const appRef = resolveApp(ctx, input.app);
|
|
62
|
+
return ctx.client.sharing.setRole(appRef, input.shareId, input.role);
|
|
63
|
+
}
|
|
64
|
+
export async function shareRevoke(ctx, input) {
|
|
65
|
+
const appRef = resolveApp(ctx, input.app);
|
|
66
|
+
await ctx.client.sharing.revoke(appRef, input.shareId);
|
|
67
|
+
}
|
|
68
|
+
// ─── Recipient-managed: pending invites across apps ────────────────────
|
|
69
|
+
export const invitesListInputSchema = z.object({});
|
|
70
|
+
export const invitesAcceptInputSchema = z.object({
|
|
71
|
+
shareId: z.string().min(1, "shareId is required"),
|
|
72
|
+
});
|
|
73
|
+
export const invitesDeclineInputSchema = z.object({
|
|
74
|
+
shareId: z.string().min(1, "shareId is required"),
|
|
75
|
+
});
|
|
76
|
+
export async function invitesList(ctx, _input = {}) {
|
|
77
|
+
return ctx.client.invites.list();
|
|
78
|
+
}
|
|
79
|
+
export async function invitesAccept(ctx, input) {
|
|
80
|
+
return ctx.client.invites.accept(input.shareId);
|
|
81
|
+
}
|
|
82
|
+
export async function invitesDecline(ctx, input) {
|
|
83
|
+
await ctx.client.invites.decline(input.shareId);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=sharing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharing.js","sourceRoot":"","sources":["../../src/commands/sharing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { PlatformHealth } from "@percher/client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import type { Context } from "../context";
|
|
4
|
+
export declare const statusInputSchema: z.ZodObject<{
|
|
5
|
+
json: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export type StatusInput = z.infer<typeof statusInputSchema>;
|
|
8
|
+
/**
|
|
9
|
+
* Phase 6.3 — derived top-line state for `percher status`. The CLI
|
|
10
|
+
* folds the API response (which always returns `status: "ok"` if it's
|
|
11
|
+
* answering at all) into one of three buckets the user actually
|
|
12
|
+
* cares about: everything green, the worker degraded but the API
|
|
13
|
+
* still serving reads, or the API itself unreachable.
|
|
14
|
+
*/
|
|
15
|
+
export type StatusVerdict = "operational" | "worker-degraded" | "unreachable";
|
|
16
|
+
export interface StatusResult {
|
|
17
|
+
verdict: StatusVerdict;
|
|
18
|
+
/**
|
|
19
|
+
* Human-readable summary line. Mirrors what the CLI prints.
|
|
20
|
+
*/
|
|
21
|
+
summary: string;
|
|
22
|
+
/** Raw `/health` response, when reachable. */
|
|
23
|
+
health: PlatformHealth | null;
|
|
24
|
+
/** Underlying error message when verdict === "unreachable". */
|
|
25
|
+
reachError?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function status(ctx: Context, _input?: StatusInput): Promise<StatusResult>;
|
|
28
|
+
export declare function deriveVerdict(health: PlatformHealth): StatusVerdict;
|
|
29
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmB1F;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAKnE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const statusInputSchema = z.object({
|
|
3
|
+
json: z.boolean().optional(),
|
|
4
|
+
});
|
|
5
|
+
export async function status(ctx, _input = {}) {
|
|
6
|
+
let health;
|
|
7
|
+
try {
|
|
8
|
+
health = await ctx.client.platform.health();
|
|
9
|
+
}
|
|
10
|
+
catch (err) {
|
|
11
|
+
return {
|
|
12
|
+
verdict: "unreachable",
|
|
13
|
+
summary: `API unreachable (${err.message})`,
|
|
14
|
+
health: null,
|
|
15
|
+
reachError: err.message,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const verdict = deriveVerdict(health);
|
|
19
|
+
return {
|
|
20
|
+
verdict,
|
|
21
|
+
summary: summarize(verdict, health),
|
|
22
|
+
health,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function deriveVerdict(health) {
|
|
26
|
+
if (health.status !== "ok")
|
|
27
|
+
return "worker-degraded";
|
|
28
|
+
if (health.worker?.circuitBreaker?.open)
|
|
29
|
+
return "worker-degraded";
|
|
30
|
+
if (health.worker?.health && health.worker.health.ok === false)
|
|
31
|
+
return "worker-degraded";
|
|
32
|
+
return "operational";
|
|
33
|
+
}
|
|
34
|
+
function summarize(verdict, health) {
|
|
35
|
+
if (verdict === "operational")
|
|
36
|
+
return "All systems operational";
|
|
37
|
+
const breaker = health.worker?.circuitBreaker;
|
|
38
|
+
const workerHealth = health.worker?.health;
|
|
39
|
+
if (breaker?.open) {
|
|
40
|
+
return `Worker circuit breaker open (${breaker.failuresInWindow}/${breaker.threshold} failures in last ${Math.round(breaker.windowMs / 1000)}s) — deploys will fail fast until it recovers`;
|
|
41
|
+
}
|
|
42
|
+
if (workerHealth && workerHealth.ok === false) {
|
|
43
|
+
const lastErr = workerHealth.lastErr ? ` — last error: ${workerHealth.lastErr}` : "";
|
|
44
|
+
return `Worker unreachable (${workerHealth.consecutiveErrs} consecutive failed health checks)${lastErr}`;
|
|
45
|
+
}
|
|
46
|
+
return "API responded but reported a non-ok status";
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAwBH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAY,EAAE,SAAsB,EAAE;IACjE,IAAI,MAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,oBAAqB,GAAa,CAAC,OAAO,GAAG;YACtD,MAAM,EAAE,IAAI;YACZ,UAAU,EAAG,GAAa,CAAC,OAAO;SACnC,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO;QACL,OAAO;QACP,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;QACnC,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAsB;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,iBAAiB,CAAC;IACrD,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI;QAAE,OAAO,iBAAiB,CAAC;IAClE,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK;QAAE,OAAO,iBAAiB,CAAC;IACzF,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,SAAS,CAAC,OAAsB,EAAE,MAAsB;IAC/D,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,yBAAyB,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3C,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,OAAO,gCAAgC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,SAAS,qBAAqB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,+CAA+C,CAAC;IAC9L,CAAC;IACD,IAAI,YAAY,IAAI,YAAY,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,uBAAuB,YAAY,CAAC,eAAe,qCAAqC,OAAO,EAAE,CAAC;IAC3G,CAAC;IACD,OAAO,4CAA4C,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { AcceptedTransfer, IncomingTransfer, InitiatedTransfer, TransferRow } from "@percher/client";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import type { Context } from "../context";
|
|
4
|
+
export declare const transferInitiateInputSchema: z.ZodObject<{
|
|
5
|
+
app: z.ZodOptional<z.ZodString>;
|
|
6
|
+
email: z.ZodString;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
export type TransferInitiateInput = z.infer<typeof transferInitiateInputSchema>;
|
|
9
|
+
export declare const transferCancelInputSchema: z.ZodObject<{
|
|
10
|
+
app: z.ZodOptional<z.ZodString>;
|
|
11
|
+
transferId: z.ZodString;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export type TransferCancelInput = z.infer<typeof transferCancelInputSchema>;
|
|
14
|
+
export declare const transferListForAppInputSchema: z.ZodObject<{
|
|
15
|
+
app: z.ZodOptional<z.ZodString>;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
export type TransferListForAppInput = z.infer<typeof transferListForAppInputSchema>;
|
|
18
|
+
export declare function transferInitiate(ctx: Context, input: TransferInitiateInput): Promise<InitiatedTransfer>;
|
|
19
|
+
export declare function transferCancel(ctx: Context, input: TransferCancelInput): Promise<void>;
|
|
20
|
+
export declare function transferListForApp(ctx: Context, input?: TransferListForAppInput): Promise<TransferRow[]>;
|
|
21
|
+
export declare const transfersIncomingInputSchema: z.ZodObject<{}, z.core.$strip>;
|
|
22
|
+
export type TransfersIncomingInput = z.infer<typeof transfersIncomingInputSchema>;
|
|
23
|
+
export declare const transfersAcceptInputSchema: z.ZodObject<{
|
|
24
|
+
transferId: z.ZodString;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
export type TransfersAcceptInput = z.infer<typeof transfersAcceptInputSchema>;
|
|
27
|
+
export declare const transfersDeclineInputSchema: z.ZodObject<{
|
|
28
|
+
transferId: z.ZodString;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type TransfersDeclineInput = z.infer<typeof transfersDeclineInputSchema>;
|
|
31
|
+
export declare function transfersIncoming(ctx: Context, _input?: TransfersIncomingInput): Promise<IncomingTransfer[]>;
|
|
32
|
+
export declare function transfersAccept(ctx: Context, input: TransfersAcceptInput): Promise<AcceptedTransfer>;
|
|
33
|
+
export declare function transfersDecline(ctx: Context, input: TransfersDeclineInput): Promise<void>;
|
|
34
|
+
//# sourceMappingURL=transfers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfers.d.ts","sourceRoot":"","sources":["../../src/commands/transfers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAwB1C,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,6BAA6B;;iBAExC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAG5B;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5F;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,OAAO,EACZ,KAAK,GAAE,uBAA4B,GAClC,OAAO,CAAC,WAAW,EAAE,CAAC,CAGxB;AAID,eAAO,MAAM,4BAA4B,gCAAe,CAAC;AACzD,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,2BAA2B;;iBAEtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,sBAA2B,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAE7B;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhG"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { readPercherTomlAppName } from "../app-name";
|
|
3
|
+
import { PercherCoreError } from "../errors";
|
|
4
|
+
/**
|
|
5
|
+
* FUTURE15 Fas D — pure-function command layer for ownership
|
|
6
|
+
* transfer. Mirrors the share/invites split:
|
|
7
|
+
*
|
|
8
|
+
* transfer.* — owner-managed per-app (initiate/cancel/list)
|
|
9
|
+
* transfersIn.* — recipient-managed (list/accept/decline)
|
|
10
|
+
*/
|
|
11
|
+
function resolveApp(ctx, app) {
|
|
12
|
+
const name = app ?? readPercherTomlAppName(ctx.cwd);
|
|
13
|
+
if (!name) {
|
|
14
|
+
throw new PercherCoreError("No app specified and no percher.toml found", {
|
|
15
|
+
code: "env.no-app",
|
|
16
|
+
hint: "Pass an app name or run from a directory with percher.toml.",
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return name;
|
|
20
|
+
}
|
|
21
|
+
// ─── Owner-managed (app-scoped) ─────────────────────────────────────────
|
|
22
|
+
export const transferInitiateInputSchema = z.object({
|
|
23
|
+
app: z.string().optional(),
|
|
24
|
+
email: z.string().email("Must be a valid email address"),
|
|
25
|
+
});
|
|
26
|
+
export const transferCancelInputSchema = z.object({
|
|
27
|
+
app: z.string().optional(),
|
|
28
|
+
transferId: z.string().min(1, "transferId is required"),
|
|
29
|
+
});
|
|
30
|
+
export const transferListForAppInputSchema = z.object({
|
|
31
|
+
app: z.string().optional(),
|
|
32
|
+
});
|
|
33
|
+
export async function transferInitiate(ctx, input) {
|
|
34
|
+
const appRef = resolveApp(ctx, input.app);
|
|
35
|
+
return ctx.client.transfers.initiate(appRef, { email: input.email });
|
|
36
|
+
}
|
|
37
|
+
export async function transferCancel(ctx, input) {
|
|
38
|
+
const appRef = resolveApp(ctx, input.app);
|
|
39
|
+
await ctx.client.transfers.cancel(appRef, input.transferId);
|
|
40
|
+
}
|
|
41
|
+
export async function transferListForApp(ctx, input = {}) {
|
|
42
|
+
const appRef = resolveApp(ctx, input.app);
|
|
43
|
+
return ctx.client.transfers.listForApp(appRef);
|
|
44
|
+
}
|
|
45
|
+
// ─── Recipient-managed (user-scoped) ────────────────────────────────────
|
|
46
|
+
export const transfersIncomingInputSchema = z.object({});
|
|
47
|
+
export const transfersAcceptInputSchema = z.object({
|
|
48
|
+
transferId: z.string().min(1, "transferId is required"),
|
|
49
|
+
});
|
|
50
|
+
export const transfersDeclineInputSchema = z.object({
|
|
51
|
+
transferId: z.string().min(1, "transferId is required"),
|
|
52
|
+
});
|
|
53
|
+
export async function transfersIncoming(ctx, _input = {}) {
|
|
54
|
+
return ctx.client.transfers.listIncoming();
|
|
55
|
+
}
|
|
56
|
+
export async function transfersAccept(ctx, input) {
|
|
57
|
+
return ctx.client.transfers.accept(input.transferId);
|
|
58
|
+
}
|
|
59
|
+
export async function transfersDecline(ctx, input) {
|
|
60
|
+
await ctx.client.transfers.decline(input.transferId);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=transfers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfers.js","sourceRoot":"","sources":["../../src/commands/transfers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import { z } from "zod
|
|
1
|
+
import { z } from "zod";
|
|
2
2
|
import type { Context } from "../context";
|
|
3
3
|
export declare const unsuspendInputSchema: z.ZodObject<{
|
|
4
4
|
app: z.ZodString;
|
|
5
|
-
},
|
|
6
|
-
app: string;
|
|
7
|
-
}, {
|
|
8
|
-
app: string;
|
|
9
|
-
}>;
|
|
5
|
+
}, z.core.$strip>;
|
|
10
6
|
export type UnsuspendInput = z.infer<typeof unsuspendInputSchema>;
|
|
11
7
|
export interface UnsuspendResult {
|
|
12
8
|
ok: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsuspend.d.ts","sourceRoot":"","sources":["../../src/commands/unsuspend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"unsuspend.d.ts","sourceRoot":"","sources":["../../src/commands/unsuspend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,IAAI,CAAC;IACT,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD;4DACwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAU7F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsuspend.js","sourceRoot":"","sources":["../../src/commands/unsuspend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"unsuspend.js","sourceRoot":"","sources":["../../src/commands/unsuspend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CAC/D,CAAC,CAAC;AAYH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAY,EAAE,KAAqB;IACjE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,OAAO;QACL,EAAE,EAAE,IAAI;QACR,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACrB,CAAC,CAAC,eAAe,MAAM,CAAC,GAAG,CAAC,IAAI,iIAAiI;YACjK,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,kCAAkC;KACzD,CAAC;AACJ,CAAC"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import { z } from "zod
|
|
1
|
+
import { z } from "zod";
|
|
2
2
|
import type { Context } from "../context";
|
|
3
3
|
export declare const versionsInputSchema: z.ZodObject<{
|
|
4
4
|
app: z.ZodOptional<z.ZodString>;
|
|
5
|
-
},
|
|
6
|
-
app?: string | undefined;
|
|
7
|
-
}, {
|
|
8
|
-
app?: string | undefined;
|
|
9
|
-
}>;
|
|
5
|
+
}, z.core.$strip>;
|
|
10
6
|
export type VersionsInput = z.infer<typeof versionsInputSchema>;
|
|
11
7
|
export interface AppVersion {
|
|
12
8
|
sha: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../src/commands/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../src/commands/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,eAAO,MAAM,mBAAmB;;iBAA2C,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,aAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAS7F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/commands/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/commands/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAS5E,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAY,EAAE,QAAuB,EAAE;IACpE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,gBAAgB,CAAC,4CAA4C,EAAE;YACvE,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,6DAA6D;SACpE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
|