@percher/core 0.4.14 → 0.4.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,30 @@
1
+ import { z } from "zod";
2
+ import type { Context } from "../context.js";
3
+ export declare const dataOauthInputSchema: z.ZodObject<{
4
+ app: z.ZodOptional<z.ZodString>;
5
+ provider: z.ZodDefault<z.ZodString>;
6
+ clientId: z.ZodOptional<z.ZodString>;
7
+ clientSecret: z.ZodOptional<z.ZodString>;
8
+ remove: z.ZodOptional<z.ZodBoolean>;
9
+ json: z.ZodOptional<z.ZodBoolean>;
10
+ }, z.core.$strip>;
11
+ export type DataOauthInput = z.infer<typeof dataOauthInputSchema>;
12
+ export interface DataOauthResult {
13
+ action: "set" | "removed" | "status";
14
+ provider: string;
15
+ /** Providers currently configured (status/after set) — names + client ids. */
16
+ providers?: Array<{
17
+ provider: string;
18
+ clientId: string;
19
+ }>;
20
+ redirectUri?: string;
21
+ note?: string;
22
+ }
23
+ /**
24
+ * Configure (Tier A: bring-your-own client) / rotate / remove / inspect an
25
+ * OAuth2 provider on the app's capsule PocketBase. Sets the secret into PB +
26
+ * platform-only encrypted storage and prints the redirect URI the user must
27
+ * paste into the provider console — Tier A is NOT self-sufficient.
28
+ */
29
+ export declare function dataOauth(ctx: Context, input?: DataOauthInput): Promise<DataOauthResult>;
30
+ //# sourceMappingURL=data-oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-oauth.d.ts","sourceRoot":"","sources":["../../src/commands/data-oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,eAAO,MAAM,oBAAoB;;;;;;;iBAS/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,OAAO,EACZ,KAAK,GAAE,cAAuC,GAC7C,OAAO,CAAC,eAAe,CAAC,CAqC1B"}
@@ -0,0 +1,55 @@
1
+ import { z } from "zod";
2
+ import { readPercherTomlAppName } from "../app-name.js";
3
+ import { PercherCoreError } from "../errors.js";
4
+ export const dataOauthInputSchema = z.object({
5
+ app: z.string().optional(),
6
+ /** Provider name; Google is the only Tier-A provider today. */
7
+ provider: z.string().default("google"),
8
+ clientId: z.string().optional(),
9
+ clientSecret: z.string().optional(),
10
+ /** Remove the provider instead of setting it. */
11
+ remove: z.boolean().optional(),
12
+ json: z.boolean().optional(),
13
+ });
14
+ /**
15
+ * Configure (Tier A: bring-your-own client) / rotate / remove / inspect an
16
+ * OAuth2 provider on the app's capsule PocketBase. Sets the secret into PB +
17
+ * platform-only encrypted storage and prints the redirect URI the user must
18
+ * paste into the provider console — Tier A is NOT self-sufficient.
19
+ */
20
+ export async function dataOauth(ctx, input = { provider: "google" }) {
21
+ const name = input.app ?? readPercherTomlAppName(ctx.cwd);
22
+ if (!name) {
23
+ throw new PercherCoreError("No app specified and no percher.toml found", {
24
+ code: "data.no-app",
25
+ hint: "Pass an app name or run from a directory with percher.toml.",
26
+ });
27
+ }
28
+ const provider = input.provider || "google";
29
+ if (input.remove) {
30
+ await ctx.client.data.removeOAuthProvider(name, provider);
31
+ return { action: "removed", provider };
32
+ }
33
+ if (input.clientId && input.clientSecret) {
34
+ const res = await ctx.client.data.setOAuthProvider(name, {
35
+ provider,
36
+ clientId: input.clientId,
37
+ clientSecret: input.clientSecret,
38
+ });
39
+ return {
40
+ action: "set",
41
+ provider: res.provider,
42
+ redirectUri: res.redirectUri,
43
+ note: res.note,
44
+ };
45
+ }
46
+ // No credentials + not removing → show status.
47
+ const status = await ctx.client.data.getOAuthStatus(name);
48
+ return {
49
+ action: "status",
50
+ provider,
51
+ providers: status.providers,
52
+ redirectUri: status.redirectUri,
53
+ };
54
+ }
55
+ //# sourceMappingURL=data-oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-oauth.js","sourceRoot":"","sources":["../../src/commands/data-oauth.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,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,iDAAiD;IACjD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAYH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAY,EACZ,QAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAE9C,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,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAE5C,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;YACvD,QAAQ;YACR,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,QAAQ;QACR,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,aAAa,EAAa,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,KAAK,iBAAiB,EAAqC,MAAM,WAAW,CAAC;AAItF;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAU1D;AA6BD,eAAO,MAAM,eAAe;;;;;;;;;;iBAU1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAQD,wBAAsB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,SAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAgHnF"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,aAAa,EAAa,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,WAAW,CAAC;AAInB;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAU1D;AAaD,eAAO,MAAM,eAAe;;;;;;;;;;iBAU1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAQD,wBAAsB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,SAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAiGnF"}
@@ -2,7 +2,7 @@ import { existsSync, writeFileSync } from "node:fs";
2
2
  import { basename, join } from "node:path";
3
3
  import { generateName, serialize } from "@percher/toml";
4
4
  import { z } from "zod";
5
- import { detectFramework, refineBunRuntime } from "../detect.js";
5
+ import { configFromDetection, detectFramework, refineBunRuntime, } from "../detect.js";
6
6
  import { PercherCoreError } from "../errors.js";
7
7
  import { renderStaticFrameworkCaddyfile, renderStaticFrameworkDockerfile } from "../static-docker.js";
8
8
  /**
@@ -38,21 +38,6 @@ export function isSuspiciousAutoName(name) {
38
38
  function detectInteractive() {
39
39
  return process.stdin?.isTTY === true && process.stdout?.isTTY === true;
40
40
  }
41
- function buildDataConfig(mode) {
42
- if (mode === "convex") {
43
- return {
44
- mode: "convex",
45
- convex: { deployment_url: "https://your-project.convex.cloud" },
46
- };
47
- }
48
- if (mode === "supabase") {
49
- return {
50
- mode: "supabase",
51
- supabase: { url: "https://your-project.supabase.co" },
52
- };
53
- }
54
- return { mode: mode };
55
- }
56
41
  export const initInputSchema = z.object({
57
42
  force: z.boolean().optional(),
58
43
  name: z.string().optional(),
@@ -111,22 +96,7 @@ export async function init(ctx, input = {}) {
111
96
  name = suggestion;
112
97
  }
113
98
  }
114
- const config = {
115
- app: {
116
- name,
117
- runtime: detected?.runtime ?? "node",
118
- ...(detected?.framework
119
- ? { framework: detected.framework }
120
- : {}),
121
- },
122
- ...(detected?.build ? { build: detected.build } : {}),
123
- ...(detected?.web ? { web: detected.web } : {}),
124
- ...(detected?.data || input.dataMode
125
- ? {
126
- data: buildDataConfig(input.dataMode ?? detected?.data?.mode ?? "none"),
127
- }
128
- : {}),
129
- };
99
+ const config = configFromDetection(name, detected, input.dataMode);
130
100
  const envVars = scanEnvVars(ctx.cwd);
131
101
  if (Object.keys(envVars).length > 0) {
132
102
  config.env = envVars;
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ import type { Context } from "../context.js";
3
+ import type { PublishResult } from "./publish.js";
4
+ export declare const publishFromRepoInputSchema: z.ZodObject<{
5
+ url: z.ZodString;
6
+ name: z.ZodOptional<z.ZodString>;
7
+ branch: z.ZodOptional<z.ZodString>;
8
+ note: z.ZodOptional<z.ZodString>;
9
+ waitForLive: z.ZodOptional<z.ZodBoolean>;
10
+ }, z.core.$strip>;
11
+ export type PublishFromRepoInput = z.infer<typeof publishFromRepoInputSchema>;
12
+ /**
13
+ * Hosted "publish from a public repo URL" — one-shot clone + deploy of a PUBLIC
14
+ * repo, the URL counterpart to `publishInline`. The server clones the tracked
15
+ * branch HEAD once, reads the repo's percher.toml for the app name + runtime,
16
+ * creates-or-gets the app, and deploys — no persistent connection/webhook is
17
+ * set up (that stays the owner-only `import/*` path). Returns the same
18
+ * PublishResult shape + recovery contract as `publishInline` / `deployRepo`, so
19
+ * the `wait_deploy` chain works identically.
20
+ */
21
+ export declare function publishFromRepo(ctx: Context, input: PublishFromRepoInput): Promise<PublishResult>;
22
+ //# sourceMappingURL=publish-from-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-from-repo.d.ts","sourceRoot":"","sources":["../../src/commands/publish-from-repo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,WAAW,CAAC;AAG7D,eAAO,MAAM,0BAA0B;;;;;;iBAmBrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAgMxB"}
@@ -0,0 +1,236 @@
1
+ import { PercherApiError } from "@percher/client";
2
+ import { TIMEOUTS } from "@percher/shared/timeouts";
3
+ import { z } from "zod";
4
+ import { pollDeployment } from "../poll-deployment.js";
5
+ import { RECOVERY_NEEDS_LOGIN, RECOVERY_NONE, recoveryAsk, recoveryWait } from "../recovery.js";
6
+ import { classifyDeploymentFailure } from "./publish-failure.js";
7
+ export const publishFromRepoInputSchema = z.object({
8
+ url: z
9
+ .string()
10
+ .min(1)
11
+ .describe("Public https git repo URL to clone and deploy (one-shot — no webhook is created)."),
12
+ name: z
13
+ .string()
14
+ .optional()
15
+ .describe("App name. Overrides the repo's percher.toml [app].name; required if the repo omits it."),
16
+ branch: z.string().optional().describe("Branch to deploy. Defaults to main."),
17
+ note: z.string().optional().describe("Optional note recorded against the deploy."),
18
+ waitForLive: z
19
+ .boolean()
20
+ .optional()
21
+ .describe("If false (default on the hosted connector), returns once the deploy is queued — resume with percher_wait_for_deploy. If true, block until live or failed."),
22
+ });
23
+ /**
24
+ * Hosted "publish from a public repo URL" — one-shot clone + deploy of a PUBLIC
25
+ * repo, the URL counterpart to `publishInline`. The server clones the tracked
26
+ * branch HEAD once, reads the repo's percher.toml for the app name + runtime,
27
+ * creates-or-gets the app, and deploys — no persistent connection/webhook is
28
+ * set up (that stays the owner-only `import/*` path). Returns the same
29
+ * PublishResult shape + recovery contract as `publishInline` / `deployRepo`, so
30
+ * the `wait_deploy` chain works identically.
31
+ */
32
+ export async function publishFromRepo(ctx, input) {
33
+ const t0 = Date.now();
34
+ ctx.status(`Cloning ${input.url} ...`);
35
+ let initial;
36
+ try {
37
+ initial = await ctx.client.apps.publishFromGit({
38
+ url: input.url,
39
+ ...(input.name ? { name: input.name } : {}),
40
+ ...(input.branch ? { branch: input.branch } : {}),
41
+ ...(input.note ? { note: input.note } : {}),
42
+ });
43
+ }
44
+ catch (err) {
45
+ if (err instanceof PercherApiError) {
46
+ if (err.status === 401) {
47
+ return {
48
+ status: "needs_login",
49
+ fileCount: 0,
50
+ bytes: 0,
51
+ recovery: RECOVERY_NEEDS_LOGIN,
52
+ summary: "Not logged in — run `bunx percher login` first.",
53
+ configPath: "",
54
+ bundle: { fileCount: 0, bytes: 0 },
55
+ };
56
+ }
57
+ // Per-user clone rate limit (publish-from-repo.ts) — retryable.
58
+ if (err.status === 429) {
59
+ const retryAfterSec = err.extra?.retryAfterSec ?? 60;
60
+ return {
61
+ status: "failed",
62
+ fileCount: 0,
63
+ bytes: 0,
64
+ error: {
65
+ title: "Repo-publish rate limit reached",
66
+ explanation: err.message,
67
+ suggestion: `Wait ${retryAfterSec}s and try again — this is a short-window per-account limit.`,
68
+ },
69
+ recovery: recoveryAsk({
70
+ prompt: `Repo-publish rate limit reached. Wait ${retryAfterSec}s and try again.`,
71
+ reasonCode: "infra_transient",
72
+ retryable: true,
73
+ }),
74
+ summary: `Repo-publish rate limit hit. Retry in ${retryAfterSec}s.`,
75
+ configPath: "",
76
+ bundle: { fileCount: 0, bytes: 0 },
77
+ };
78
+ }
79
+ switch (err.code) {
80
+ case "INVALID_REPO_URL":
81
+ case "DNS_DRIFT":
82
+ case "CLONE_FAILED":
83
+ case "CLONE_TIMEOUT":
84
+ case "IMPORT_TOO_LARGE":
85
+ case "TARBALL_FAILED":
86
+ case "REPO_MISSING_CONFIG":
87
+ case "REPO_INVALID_CONFIG":
88
+ case "NAME_BLOCKED":
89
+ case "VALIDATION_ERROR":
90
+ case "APP_LIMIT_REACHED":
91
+ case "ACCOUNT_SUSPENDED":
92
+ case "APP_SUSPENDED":
93
+ case "EMAIL_NOT_VERIFIED":
94
+ return failureResult({
95
+ title: err.message,
96
+ explanation: err.message,
97
+ suggestion: "Fix the issue described above (repo URL / percher.toml / plan limit), then re-run. Surface this to the user.",
98
+ });
99
+ }
100
+ }
101
+ throw err;
102
+ }
103
+ // Fetch the (possibly newly-created) app for the live URL + result shape.
104
+ // Best-effort: fall back to a minimal app synthesized from the deployment.
105
+ let app;
106
+ try {
107
+ app = await ctx.client.apps.get(initial.appId);
108
+ }
109
+ catch {
110
+ app = {
111
+ id: initial.appId,
112
+ name: input.name ?? initial.appId,
113
+ url: initial.url ?? `https://${input.name ?? initial.appId}.percher.run`,
114
+ };
115
+ }
116
+ // Async opt-in: hand control back as soon as the deploy is queued so the
117
+ // agent can resume with percher_wait_for_deploy instead of blocking on the
118
+ // build. (The clone already happened server-side during publishFromGit.)
119
+ if (input.waitForLive === false) {
120
+ return {
121
+ status: "queued",
122
+ app,
123
+ deployment: initial,
124
+ fileCount: 0,
125
+ bytes: 0,
126
+ recovery: recoveryWait({
127
+ app: app.name,
128
+ deployId: initial.id,
129
+ reasonCode: "deploy_queued",
130
+ }),
131
+ summary: `${app.name} deploy ${initial.id} queued (cloned ${input.url}) — resume with percher_wait_for_deploy.`,
132
+ configPath: "",
133
+ bundle: { fileCount: 0, bytes: 0 },
134
+ };
135
+ }
136
+ // Synchronous: poll the new deployment to terminal status (mirror deployRepo).
137
+ const buildStart = Date.now();
138
+ const timeoutMs = TIMEOUTS.clientPublishPoll;
139
+ let lastStatus;
140
+ let nextHeartbeatMs = 15_000;
141
+ let deployment = initial;
142
+ let timedOut = null;
143
+ try {
144
+ deployment = await pollDeployment({
145
+ ctx,
146
+ appId: app.id,
147
+ initial,
148
+ intervalMs: 2000,
149
+ timeoutMs,
150
+ appName: app.name,
151
+ onTick: (d) => {
152
+ const elapsedMs = Date.now() - buildStart;
153
+ if (d.status !== lastStatus) {
154
+ ctx.status(`${d.status}...`);
155
+ lastStatus = d.status;
156
+ nextHeartbeatMs = elapsedMs + 15_000;
157
+ }
158
+ else if (elapsedMs >= nextHeartbeatMs) {
159
+ ctx.status(`${d.status}... (${Math.round(elapsedMs / 1000)}s elapsed)`);
160
+ nextHeartbeatMs = elapsedMs + 15_000;
161
+ }
162
+ },
163
+ onTimeout: (d) => {
164
+ timedOut = { deployment: d };
165
+ throw new (class PollTimeoutSentinel extends Error {
166
+ })("__poll_timeout__");
167
+ },
168
+ });
169
+ }
170
+ catch (err) {
171
+ if (!timedOut) {
172
+ return failureResult({
173
+ title: "Deploy did not complete",
174
+ explanation: err instanceof Error
175
+ ? err.message
176
+ : "The deploy stopped responding before reaching a terminal state.",
177
+ suggestion: `Inspect with \`bunx percher deploys inspect ${initial.id}\`.`,
178
+ });
179
+ }
180
+ }
181
+ if (timedOut) {
182
+ const stuck = timedOut.deployment;
183
+ return failureResult({
184
+ title: "Deploy timed out",
185
+ explanation: "The deploy did not complete within 5 minutes.",
186
+ suggestion: `Inspect with \`bunx percher deploys inspect ${stuck.id}\`.`,
187
+ });
188
+ }
189
+ const totalSeconds = (Date.now() - t0) / 1000;
190
+ const url = deployment.previewUrl ?? deployment.url ?? app.url;
191
+ if (deployment.status === "failed") {
192
+ const { error, recovery, summary } = await classifyDeploymentFailure({ ctx, app, deployment });
193
+ return {
194
+ status: "failed",
195
+ app,
196
+ deployment,
197
+ fileCount: 0,
198
+ bytes: 0,
199
+ error,
200
+ recovery,
201
+ summary,
202
+ configPath: "",
203
+ bundle: { fileCount: 0, bytes: 0 },
204
+ };
205
+ }
206
+ ctx.status(`Live at ${url} (${totalSeconds.toFixed(0)}s)`);
207
+ return {
208
+ status: "live",
209
+ app,
210
+ deployment,
211
+ url,
212
+ timing: { totalSeconds, packageMs: 0, uploadMs: 0, buildMs: Date.now() - buildStart },
213
+ fileCount: 0,
214
+ bytes: 0,
215
+ recovery: RECOVERY_NONE,
216
+ summary: `${app.name} deployed from ${input.url} (${totalSeconds.toFixed(0)}s) → ${url}`,
217
+ configPath: "",
218
+ bundle: { fileCount: 0, bytes: 0 },
219
+ };
220
+ }
221
+ function failureResult(error) {
222
+ return {
223
+ status: "failed",
224
+ fileCount: 0,
225
+ bytes: 0,
226
+ error,
227
+ recovery: recoveryAsk({
228
+ prompt: `${error.title}: ${error.explanation} ${error.suggestion}`.trim(),
229
+ reasonCode: "unknown",
230
+ }),
231
+ summary: error.title,
232
+ configPath: "",
233
+ bundle: { fileCount: 0, bytes: 0 },
234
+ };
235
+ }
236
+ //# sourceMappingURL=publish-from-repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-from-repo.js","sourceRoot":"","sources":["../../src/commands/publish-from-repo.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,10 @@ export declare const publishInlineInputSchema: z.ZodObject<{
6
6
  files: z.ZodArray<z.ZodObject<{
7
7
  path: z.ZodString;
8
8
  content: z.ZodString;
9
+ encoding: z.ZodOptional<z.ZodEnum<{
10
+ base64: "base64";
11
+ utf8: "utf8";
12
+ }>>;
9
13
  }, z.core.$strip>>;
10
14
  preview: z.ZodOptional<z.ZodBoolean>;
11
15
  message: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"publish-inline.d.ts","sourceRoot":"","sources":["../../src/commands/publish-inline.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAU1C,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/D,eAAO,MAAM,wBAAwB;;;;;;;;;;iBA4BnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAW1E;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,aAAa,CAAC,CA6BxB"}
1
+ {"version":3,"file":"publish-inline.d.ts","sourceRoot":"","sources":["../../src/commands/publish-inline.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAW1C,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;iBAwCnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AA0B1E;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,aAAa,CAAC,CA6BxB"}