percher 0.5.24 → 1.0.0
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/LICENSE +132 -0
- package/THIRD-PARTY-NOTICES.txt +1228 -0
- package/dist/bin/percher.js +64485 -72730
- package/dist/package.json +10 -8
- package/dist/src/commands/account.js +5 -5
- package/dist/src/commands/account.js.map +1 -1
- package/dist/src/commands/admin.d.ts.map +1 -1
- package/dist/src/commands/admin.js +180 -15
- package/dist/src/commands/admin.js.map +1 -1
- package/dist/src/commands/analytics.js +1 -1
- package/dist/src/commands/apps.js +2 -2
- package/dist/src/commands/auth.js +1 -1
- package/dist/src/commands/data.js +1 -1
- package/dist/src/commands/deploys.d.ts.map +1 -1
- package/dist/src/commands/deploys.js +24 -2
- package/dist/src/commands/deploys.js.map +1 -1
- package/dist/src/commands/env.js +3 -3
- package/dist/src/commands/export.js +1 -1
- package/dist/src/commands/github.js +1 -1
- package/dist/src/commands/hooks.js +1 -1
- package/dist/src/commands/migrate.js +1 -1
- package/dist/src/commands/sharing.js +1 -1
- package/dist/src/commands/status.js +1 -1
- package/dist/src/commands/token.js +1 -1
- package/dist/src/commands/transfers.js +1 -1
- package/dist/src/context.js +3 -3
- package/dist/src/index.js +21 -21
- package/dist/src/version-check.d.ts +2 -0
- package/dist/src/version-check.d.ts.map +1 -1
- package/dist/src/version-check.js +23 -2
- package/dist/src/version-check.js.map +1 -1
- package/dist/templates/LICENSE +14 -0
- package/dist/templates/astro/Dockerfile +51 -35
- package/dist/templates/astro/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/bun/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/capsule/Dockerfile +30 -12
- package/dist/templates/capsule/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/django/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/django/percher.toml +1 -0
- package/dist/templates/dotnet/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/eleventy/Dockerfile +51 -35
- package/dist/templates/eleventy/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/elysia/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/express/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/express/package.json +2 -1
- package/dist/templates/fastify/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/fastify/package.json +2 -1
- package/dist/templates/flask/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/flask/percher.toml +1 -0
- package/dist/templates/flask/requirements.txt +1 -0
- package/dist/templates/go/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/hono/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/hono/index.ts +4 -2
- package/dist/templates/hono/package.json +3 -1
- package/dist/templates/htmx/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/htmx/package.json +1 -1
- package/dist/templates/hugo/Dockerfile +49 -33
- package/dist/templates/hugo/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/java/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/laravel/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/nextjs/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/node/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/nuxt/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/phoenix/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/preact/Dockerfile +51 -35
- package/dist/templates/preact/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/python/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/rails/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/remix/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/remix/app/routes/health.tsx +3 -1
- package/dist/templates/rust/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/solid/Dockerfile +51 -35
- package/dist/templates/solid/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/static/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/sveltekit/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/sveltekit/package.json +1 -1
- package/dist/templates/vite-react/Dockerfile +51 -35
- package/dist/templates/vite-react/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/dist/templates/vite-vue/Dockerfile +51 -35
- package/dist/templates/vite-vue/PERCHER-TEMPLATE-LICENSE.txt +14 -0
- package/package.json +10 -8
- package/dist/context.d.ts +0 -3
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -31
- package/dist/context.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -385
- package/dist/index.js.map +0 -1
- package/dist/open.d.ts +0 -2
- package/dist/open.d.ts.map +0 -1
- package/dist/open.js +0 -16
- package/dist/open.js.map +0 -1
- package/dist/output.d.ts +0 -2
- package/dist/output.d.ts.map +0 -1
- package/dist/output.js +0 -44
- package/dist/output.js.map +0 -1
- package/dist/prompt.d.ts +0 -4
- package/dist/prompt.d.ts.map +0 -1
- package/dist/prompt.js +0 -14
- package/dist/prompt.js.map +0 -1
package/dist/index.js
DELETED
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
import * as core from "@percher/core";
|
|
2
|
-
import cac from "cac";
|
|
3
|
-
import pc from "picocolors";
|
|
4
|
-
import { createCliContext } from "./context";
|
|
5
|
-
import { renderError } from "./output";
|
|
6
|
-
const VERSION = "0.0.1";
|
|
7
|
-
/** Thrown after doctor output is printed, to signal non-zero exit without an error message. */
|
|
8
|
-
class DoctorFailedError {
|
|
9
|
-
failCount;
|
|
10
|
-
constructor(failCount) {
|
|
11
|
-
this.failCount = failCount;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
function parseKeyValue(pairs) {
|
|
15
|
-
const out = {};
|
|
16
|
-
for (const p of pairs) {
|
|
17
|
-
const idx = p.indexOf("=");
|
|
18
|
-
if (idx === -1)
|
|
19
|
-
throw new Error(`Expected KEY=VALUE, got "${p}"`);
|
|
20
|
-
out[p.slice(0, idx)] = p.slice(idx + 1);
|
|
21
|
-
}
|
|
22
|
-
return out;
|
|
23
|
-
}
|
|
24
|
-
async function writeLine(ctx, line) {
|
|
25
|
-
const writer = ctx.stdout.getWriter();
|
|
26
|
-
try {
|
|
27
|
-
await writer.write(new TextEncoder().encode(`${line}\n`));
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
writer.releaseLock();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
export async function run(argv, ctxOverride) {
|
|
34
|
-
const cli = cac("percher");
|
|
35
|
-
cli
|
|
36
|
-
.command("init", "Generate percher.toml for this project")
|
|
37
|
-
.option("--force", "Overwrite existing percher.toml")
|
|
38
|
-
.option("--name <name>", "Override detected app name")
|
|
39
|
-
.action(async (options) => {
|
|
40
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
41
|
-
const result = await core.init(ctx, { force: options.force, name: options.name });
|
|
42
|
-
await writeLine(ctx, `${pc.green("✓")} wrote ${result.path}`);
|
|
43
|
-
});
|
|
44
|
-
cli
|
|
45
|
-
.command("push", "Package and deploy this project")
|
|
46
|
-
.option("--dry-run", "Show what would be deployed, don't upload")
|
|
47
|
-
.option("--force", "Skip size warnings")
|
|
48
|
-
.option("--preview", "Deploy as preview (does not replace the live version)")
|
|
49
|
-
.action(async (options) => {
|
|
50
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
51
|
-
const result = await core.push(ctx, {
|
|
52
|
-
dryRun: options.dryRun,
|
|
53
|
-
force: options.force,
|
|
54
|
-
preview: options.preview,
|
|
55
|
-
});
|
|
56
|
-
if (result.dryRun) {
|
|
57
|
-
await writeLine(ctx, `Dry run: ${result.fileCount} files, ${(result.bytes / 1024).toFixed(1)} KB`);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
await writeLine(ctx, `${pc.green("✓")} deployed to ${result.deployment?.url ?? result.app.url}`);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
cli
|
|
64
|
-
.command("logs [app]", "Stream application logs")
|
|
65
|
-
.option("--tail <n>", "Return the last N lines and exit", { type: [Number] })
|
|
66
|
-
.option("--no-follow", "Don't stream new lines")
|
|
67
|
-
.action(async (app, options) => {
|
|
68
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
69
|
-
await core.logs(ctx, {
|
|
70
|
-
app,
|
|
71
|
-
tail: options.tail ? Number(options.tail) : undefined,
|
|
72
|
-
follow: options.follow !== false,
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
cli
|
|
76
|
-
.command("env <action> [...args]", "Manage env vars (set KEY=VALUE | unset KEY | list)")
|
|
77
|
-
.option("--app <name>", "App name (overrides percher.toml)")
|
|
78
|
-
.action(async (action, args, options) => {
|
|
79
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
80
|
-
if (action === "set") {
|
|
81
|
-
await core.envSet(ctx, { app: options.app, values: parseKeyValue(args) });
|
|
82
|
-
await writeLine(ctx, `${pc.green("✓")} env vars updated`);
|
|
83
|
-
}
|
|
84
|
-
else if (action === "unset") {
|
|
85
|
-
const key = args[0];
|
|
86
|
-
if (!key)
|
|
87
|
-
throw new Error("Expected key to unset");
|
|
88
|
-
await core.envUnset(ctx, { app: options.app, key });
|
|
89
|
-
await writeLine(ctx, `${pc.green("✓")} unset ${key}`);
|
|
90
|
-
}
|
|
91
|
-
else if (action === "list") {
|
|
92
|
-
const env = await core.envList(ctx, { app: options.app });
|
|
93
|
-
for (const [k, v] of Object.entries(env)) {
|
|
94
|
-
await writeLine(ctx, `${k}=${v}`);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
throw new Error(`Unknown env action "${action}". Use set | unset | list.`);
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
cli
|
|
102
|
-
.command("open [app]", "Open the app URL in your browser")
|
|
103
|
-
.action(async (app) => {
|
|
104
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
105
|
-
const url = await core.open(ctx, { app });
|
|
106
|
-
await writeLine(ctx, url);
|
|
107
|
-
});
|
|
108
|
-
cli
|
|
109
|
-
.command("login", "Authenticate with Percher")
|
|
110
|
-
.option("--token <token>", "Dev: skip browser, use a token")
|
|
111
|
-
.option("--api-url <url>", "Override API URL")
|
|
112
|
-
.action(async (options) => {
|
|
113
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
114
|
-
await core.login(ctx, { token: options.token, apiUrl: options.apiUrl });
|
|
115
|
-
});
|
|
116
|
-
cli
|
|
117
|
-
.command("versions [app]", "List deployed versions for an app")
|
|
118
|
-
.action(async (app) => {
|
|
119
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
120
|
-
const list = await core.versions(ctx, { app });
|
|
121
|
-
for (const v of list) {
|
|
122
|
-
await writeLine(ctx, `${v.sha.slice(0, 10)} ${v.timestamp} ${v.message}`);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
cli
|
|
126
|
-
.command("rollback <sha> [app]", "Roll back to a previous version")
|
|
127
|
-
.action(async (sha, app) => {
|
|
128
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
129
|
-
const result = await core.rollback(ctx, { app, commitSha: sha });
|
|
130
|
-
await writeLine(ctx, `${pc.green("✓")} rolled back to ${sha.slice(0, 10)} (status: ${result.status})`);
|
|
131
|
-
});
|
|
132
|
-
cli
|
|
133
|
-
.command("generate", "Generate .env.example and TypeScript types from percher.toml")
|
|
134
|
-
.action(async () => {
|
|
135
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
136
|
-
const result = await core.generate(ctx);
|
|
137
|
-
for (const f of result.files) {
|
|
138
|
-
await writeLine(ctx, `${pc.green("✓")} ${f}`);
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
cli
|
|
142
|
-
.command("data [app]", "Show app data status and collections")
|
|
143
|
-
.option("--json", "Output as JSON")
|
|
144
|
-
.action(async (app, options) => {
|
|
145
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
146
|
-
const result = await core.data(ctx, { app, json: options.json });
|
|
147
|
-
if (options.json) {
|
|
148
|
-
await writeLine(ctx, JSON.stringify(result, null, 2));
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
await writeLine(ctx, `${pc.bold("Data")} Mode: ${result.mode} Status: ${result.status}`);
|
|
152
|
-
await writeLine(ctx, "");
|
|
153
|
-
if (result.collections.length > 0) {
|
|
154
|
-
await writeLine(ctx, pc.bold("Collections"));
|
|
155
|
-
for (const col of result.collections) {
|
|
156
|
-
await writeLine(ctx, ` ${col.name.padEnd(20)} ${pc.dim(col.type)}`);
|
|
157
|
-
}
|
|
158
|
-
await writeLine(ctx, "");
|
|
159
|
-
}
|
|
160
|
-
await writeLine(ctx, `Collections: ${result.stats.collections} Records: ${result.stats.totalRecords}`);
|
|
161
|
-
if (result.adminUrl) {
|
|
162
|
-
await writeLine(ctx, "");
|
|
163
|
-
await writeLine(ctx, `Admin: ${result.adminUrl}`);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
cli
|
|
168
|
-
.command("dev [app]", "Watch files and deploy on changes")
|
|
169
|
-
.option("--confirm", "Prompt before each push (default: auto-push)")
|
|
170
|
-
.action(async (app, options) => {
|
|
171
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
172
|
-
const controller = new AbortController();
|
|
173
|
-
// Handle Ctrl+C gracefully
|
|
174
|
-
const onSignal = () => controller.abort();
|
|
175
|
-
process.on("SIGINT", onSignal);
|
|
176
|
-
process.on("SIGTERM", onSignal);
|
|
177
|
-
await writeLine(ctx, pc.bold("Percher Dev"));
|
|
178
|
-
await writeLine(ctx, "───────────");
|
|
179
|
-
await writeLine(ctx, "");
|
|
180
|
-
try {
|
|
181
|
-
await core.dev(ctx, { app }, {
|
|
182
|
-
signal: controller.signal,
|
|
183
|
-
async writeLine(line) {
|
|
184
|
-
const timestamp = new Date().toLocaleTimeString("sv-SE", { hour12: false });
|
|
185
|
-
await writeLine(ctx, `${pc.dim(`[${timestamp}]`)} ${line}`);
|
|
186
|
-
},
|
|
187
|
-
async onFilesChanged(_files) {
|
|
188
|
-
if (options.confirm) {
|
|
189
|
-
const answer = await ctx.prompt("Push changes? [Y/n]", { default: "y" });
|
|
190
|
-
return /^y(es)?$|^$/i.test(answer.trim());
|
|
191
|
-
}
|
|
192
|
-
return true; // auto-push by default
|
|
193
|
-
},
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
finally {
|
|
197
|
-
process.removeListener("SIGINT", onSignal);
|
|
198
|
-
process.removeListener("SIGTERM", onSignal);
|
|
199
|
-
}
|
|
200
|
-
await writeLine(ctx, "");
|
|
201
|
-
await writeLine(ctx, pc.dim("Dev session ended."));
|
|
202
|
-
});
|
|
203
|
-
cli
|
|
204
|
-
.command("doctor [app]", "Check app health and connectivity")
|
|
205
|
-
.option("--json", "Output as JSON")
|
|
206
|
-
.action(async (app, options) => {
|
|
207
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
208
|
-
const result = await core.doctor(ctx, { app, json: options.json });
|
|
209
|
-
if (options.json) {
|
|
210
|
-
await writeLine(ctx, JSON.stringify(result, null, 2));
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
await writeLine(ctx, `${pc.bold("Percher Doctor")}`);
|
|
214
|
-
await writeLine(ctx, "──────────────");
|
|
215
|
-
await writeLine(ctx, "");
|
|
216
|
-
for (const check of result.checks) {
|
|
217
|
-
const icon = check.status === "pass"
|
|
218
|
-
? pc.green("✓")
|
|
219
|
-
: check.status === "fail"
|
|
220
|
-
? pc.red("✗")
|
|
221
|
-
: check.status === "warn"
|
|
222
|
-
? pc.yellow("!")
|
|
223
|
-
: pc.dim("—");
|
|
224
|
-
await writeLine(ctx, `${icon} ${pc.bold(check.name.padEnd(20))} ${check.message}`);
|
|
225
|
-
}
|
|
226
|
-
await writeLine(ctx, "");
|
|
227
|
-
const summary = `${result.passed}/${result.total} checks passed`;
|
|
228
|
-
if (result.failed > 0) {
|
|
229
|
-
await writeLine(ctx, pc.red(summary));
|
|
230
|
-
}
|
|
231
|
-
else if (result.warned > 0) {
|
|
232
|
-
await writeLine(ctx, pc.yellow(summary));
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
await writeLine(ctx, pc.green(summary));
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
// Signal non-zero exit for CI/agent use
|
|
239
|
-
if (result.failed > 0) {
|
|
240
|
-
throw new DoctorFailedError(result.failed);
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
cli
|
|
244
|
-
.command("create [name]", "Create a new app from a template")
|
|
245
|
-
.option("--template <template>", "Template to use (node, python, static, nextjs, hono, express)")
|
|
246
|
-
.option("--force", "Overwrite existing files in target directory")
|
|
247
|
-
.option("--list-templates", "List available templates")
|
|
248
|
-
.action(async (name, options) => {
|
|
249
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
250
|
-
if (options.listTemplates) {
|
|
251
|
-
const templates = core.listTemplates();
|
|
252
|
-
await writeLine(ctx, pc.bold("Available templates:"));
|
|
253
|
-
for (const t of templates) {
|
|
254
|
-
await writeLine(ctx, ` ${t}`);
|
|
255
|
-
}
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
if (!name) {
|
|
259
|
-
throw new Error("App name is required. Usage: percher create <name> --template <template>");
|
|
260
|
-
}
|
|
261
|
-
if (!options.template) {
|
|
262
|
-
const templates = core.listTemplates();
|
|
263
|
-
await writeLine(ctx, `${pc.red("✗")} --template is required. Available: ${templates.join(", ")}`);
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
const result = await core.create(ctx, {
|
|
267
|
-
name,
|
|
268
|
-
template: options.template,
|
|
269
|
-
force: options.force,
|
|
270
|
-
});
|
|
271
|
-
await writeLine(ctx, `${pc.green("✓")} created ${result.name} from ${result.template}`);
|
|
272
|
-
for (const f of result.files) {
|
|
273
|
-
await writeLine(ctx, ` ${pc.dim(f)}`);
|
|
274
|
-
}
|
|
275
|
-
await writeLine(ctx, "");
|
|
276
|
-
await writeLine(ctx, "Next steps:");
|
|
277
|
-
await writeLine(ctx, ` cd ${result.name}`);
|
|
278
|
-
await writeLine(ctx, " bunx percher push");
|
|
279
|
-
});
|
|
280
|
-
cli
|
|
281
|
-
.command("preview <action> [deployId]", "Manage preview deploys (promote | discard)")
|
|
282
|
-
.option("--app <name>", "App name (overrides percher.toml)")
|
|
283
|
-
.action(async (action, deployId, options) => {
|
|
284
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
285
|
-
const appRef = options.app ?? core.readPercherTomlAppName(ctx.cwd);
|
|
286
|
-
if (!appRef)
|
|
287
|
-
throw new Error("App name required. Use --app or run from a project directory.");
|
|
288
|
-
if (action === "promote") {
|
|
289
|
-
if (!deployId)
|
|
290
|
-
throw new Error("Deploy ID required. Usage: percher preview promote <id>");
|
|
291
|
-
const result = await ctx.client.apps.promotePreview(appRef, deployId);
|
|
292
|
-
await writeLine(ctx, `${pc.green("✓")} Preview promoted to live. Status: ${result.status}`);
|
|
293
|
-
}
|
|
294
|
-
else if (action === "discard") {
|
|
295
|
-
if (!deployId)
|
|
296
|
-
throw new Error("Deploy ID required. Usage: percher preview discard <id>");
|
|
297
|
-
await ctx.client.apps.discardPreview(appRef, deployId);
|
|
298
|
-
await writeLine(ctx, `${pc.green("✓")} Preview discarded.`);
|
|
299
|
-
}
|
|
300
|
-
else {
|
|
301
|
-
throw new Error(`Unknown preview action "${action}". Use promote | discard.`);
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
cli
|
|
305
|
-
.command("domains <action> [domain]", "Manage custom domains (add | verify | list | remove)")
|
|
306
|
-
.option("--app <name>", "App name (overrides percher.toml)")
|
|
307
|
-
.action(async (action, domain, options) => {
|
|
308
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
309
|
-
if (action === "add") {
|
|
310
|
-
if (!domain)
|
|
311
|
-
throw new Error("Domain is required. Usage: percher domains add <domain>");
|
|
312
|
-
const result = await core.domainAdd(ctx, { app: options.app, domain });
|
|
313
|
-
await writeLine(ctx, `${pc.green("✓")} Domain ${result.domain} added.`);
|
|
314
|
-
await writeLine(ctx, "");
|
|
315
|
-
await writeLine(ctx, "Add these DNS records:");
|
|
316
|
-
await writeLine(ctx, ` TXT ${result.dnsInstructions.txt.name} ${result.dnsInstructions.txt.value}`);
|
|
317
|
-
await writeLine(ctx, ` CNAME ${result.domain} ${result.dnsInstructions.cname.value}`);
|
|
318
|
-
if (result.dnsInstructions.a) {
|
|
319
|
-
await writeLine(ctx, ` A ${result.domain} ${result.dnsInstructions.a.values.join(", ")}`);
|
|
320
|
-
}
|
|
321
|
-
await writeLine(ctx, "");
|
|
322
|
-
await writeLine(ctx, "Then run:");
|
|
323
|
-
await writeLine(ctx, ` percher domains verify ${result.domain}${options.app ? ` --app ${options.app}` : ""}`);
|
|
324
|
-
}
|
|
325
|
-
else if (action === "verify") {
|
|
326
|
-
if (!domain)
|
|
327
|
-
throw new Error("Domain is required. Usage: percher domains verify <domain>");
|
|
328
|
-
const result = await core.domainVerify(ctx, { app: options.app, domain });
|
|
329
|
-
if (result.status === "verified") {
|
|
330
|
-
await writeLine(ctx, `${pc.green("✓")} Domain verified. ${result.domain} is now live.`);
|
|
331
|
-
}
|
|
332
|
-
else {
|
|
333
|
-
await writeLine(ctx, `${pc.yellow("!")} ${result.domain}: ${result.failureReason}`);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
else if (action === "list") {
|
|
337
|
-
const list = await core.domainList(ctx, { app: options.app });
|
|
338
|
-
if (list.length === 0) {
|
|
339
|
-
await writeLine(ctx, "No custom domains.");
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
for (const d of list) {
|
|
343
|
-
await writeLine(ctx, `${d.domain.padEnd(40)} ${d.status}`);
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
else if (action === "remove") {
|
|
348
|
-
if (!domain)
|
|
349
|
-
throw new Error("Domain is required. Usage: percher domains remove <domain>");
|
|
350
|
-
await core.domainRemove(ctx, { app: options.app, domain });
|
|
351
|
-
await writeLine(ctx, `${pc.green("✓")} Domain removed.`);
|
|
352
|
-
}
|
|
353
|
-
else {
|
|
354
|
-
throw new Error(`Unknown domains action "${action}". Use add | verify | list | remove.`);
|
|
355
|
-
}
|
|
356
|
-
});
|
|
357
|
-
cli
|
|
358
|
-
.command("resume [app]", "Resume an app suspended for inactivity")
|
|
359
|
-
.action(async (app) => {
|
|
360
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
361
|
-
const result = await core.resume(ctx, { app });
|
|
362
|
-
await writeLine(ctx, `${pc.green("✓")} ${result.message}`);
|
|
363
|
-
});
|
|
364
|
-
cli.command("whoami", "Show the signed-in user").action(async () => {
|
|
365
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
366
|
-
const me = await core.whoami(ctx);
|
|
367
|
-
await writeLine(ctx, `Signed in as ${me.email} (${me.userId})`);
|
|
368
|
-
});
|
|
369
|
-
cli.help();
|
|
370
|
-
cli.version(VERSION);
|
|
371
|
-
try {
|
|
372
|
-
cli.parse(["percher", "percher", ...argv], { run: false });
|
|
373
|
-
await cli.runMatchedCommand();
|
|
374
|
-
return 0;
|
|
375
|
-
}
|
|
376
|
-
catch (err) {
|
|
377
|
-
// Doctor prints its own output — just exit 1 without extra error message
|
|
378
|
-
if (err instanceof DoctorFailedError)
|
|
379
|
-
return 1;
|
|
380
|
-
const ctx = ctxOverride ?? (await createCliContext());
|
|
381
|
-
await renderError(ctx.stderr, err);
|
|
382
|
-
return 1;
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAEtC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,+FAA+F;AAC/F,MAAM,iBAAiB;IACA;IAArB,YAAqB,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;CAC3C;AAED,SAAS,aAAa,CAAC,KAAe;IACpC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAClE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAY,EAAE,IAAY;IACjD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,WAAqB;IAC7D,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IAE3B,GAAG;SACA,OAAO,CAAC,MAAM,EAAE,wCAAwC,CAAC;SACzD,MAAM,CAAC,SAAS,EAAE,iCAAiC,CAAC;SACpD,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAClF,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,MAAM,EAAE,iCAAiC,CAAC;SAClD,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;SAChE,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC;SACvC,MAAM,CAAC,WAAW,EAAE,uDAAuD,CAAC;SAC5E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,SAAS,CACb,GAAG,EACH,YAAY,MAAM,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC7E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CACb,GAAG,EACH,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,YAAY,EAAE,yBAAyB,CAAC;SAChD,MAAM,CAAC,YAAY,EAAE,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;SAC5E,MAAM,CAAC,aAAa,EAAE,wBAAwB,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACnB,GAAG;YACH,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACrD,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,wBAAwB,EAAE,oDAAoD,CAAC;SACvF,MAAM,CAAC,cAAc,EAAE,mCAAmC,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAc,EAAE,OAAO,EAAE,EAAE;QACxD,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1E,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACpD,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,4BAA4B,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,YAAY,EAAE,kCAAkC,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,GAAuB,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1C,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,OAAO,EAAE,2BAA2B,CAAC;SAC7C,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;SAC3D,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;SAC7C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,gBAAgB,EAAE,mCAAmC,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,GAAuB,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,sBAAsB,EAAE,iCAAiC,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,GAAuB,EAAE,EAAE;QACrD,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACjE,MAAM,SAAS,CACb,GAAG,EACH,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,MAAM,CAAC,MAAM,GAAG,CACjF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,UAAU,EAAE,8DAA8D,CAAC;SACnF,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,YAAY,EAAE,sCAAsC,CAAC;SAC7D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,GAAuB,EAAE,OAAO,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3F,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAEzB,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACrC,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3B,CAAC;YAED,MAAM,SAAS,CACb,GAAG,EACH,gBAAgB,MAAM,CAAC,KAAK,CAAC,WAAW,cAAc,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAClF,CAAC;YAEF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzB,MAAM,SAAS,CAAC,GAAG,EAAE,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,WAAW,EAAE,mCAAmC,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,8CAA8C,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,GAAuB,EAAE,OAA8B,EAAE,EAAE;QACxE,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QAEzC,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEhC,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QACpC,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CACZ,GAAG,EACH,EAAE,GAAG,EAAE,EACP;gBACE,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,KAAK,CAAC,SAAS,CAAC,IAAI;oBAClB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC5E,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,KAAK,CAAC,cAAc,CAAC,MAAM;oBACzB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACpB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;wBACzE,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBACD,OAAO,IAAI,CAAC,CAAC,uBAAuB;gBACtC,CAAC;aACF,CACF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC3C,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,cAAc,EAAE,mCAAmC,CAAC;SAC5D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,GAAuB,EAAE,OAAO,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAEnE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACrD,MAAM,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YACvC,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,IAAI,GACR,KAAK,CAAC,MAAM,KAAK,MAAM;oBACrB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;oBACf,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM;wBACvB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;wBACb,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM;4BACvB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;4BAChB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,gBAAgB,CAAC;YACjE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,eAAe,EAAE,kCAAkC,CAAC;SAC5D,MAAM,CACL,uBAAuB,EACvB,+DAA+D,CAChE;SACA,MAAM,CAAC,SAAS,EAAE,8CAA8C,CAAC;SACjE,MAAM,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAAO,EAAE,EAAE;QAClD,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACtD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,SAAS,CACb,GAAG,EACH,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,uCAAuC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACpC,IAAI;YACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QACpC,MAAM,SAAS,CAAC,GAAG,EAAE,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,SAAS,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,6BAA6B,EAAE,4CAA4C,CAAC;SACpF,MAAM,CAAC,cAAc,EAAE,mCAAmC,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,QAA4B,EAAE,OAAO,EAAE,EAAE;QACtE,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAE9F,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC1F,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACtE,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9F,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC1F,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACvD,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,2BAA2B,CAAC,CAAC;QAChF,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,2BAA2B,EAAE,sDAAsD,CAAC;SAC5F,MAAM,CAAC,cAAc,EAAE,mCAAmC,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,MAA0B,EAAE,OAAO,EAAE,EAAE;QACpE,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACxF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;YACxE,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,SAAS,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;YAC/C,MAAM,SAAS,CACb,GAAG,EACH,YAAY,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,CACrF,CAAC;YACF,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3F,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;gBAC7B,MAAM,SAAS,CACb,GAAG,EACH,YAAY,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAClC,MAAM,SAAS,CACb,GAAG,EACH,4BAA4B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACzF,CAAC;QACJ,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,eAAe,CAAC,CAAC;YAC1F,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,SAAS,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACrB,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC3F,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3D,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,sCAAsC,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,cAAc,EAAE,wCAAwC,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,GAAuB,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/C,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEL,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjE,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAErB,IAAI,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,MAAM,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,yEAAyE;QACzE,IAAI,GAAG,YAAY,iBAAiB;YAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtD,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
|
package/dist/open.d.ts
DELETED
package/dist/open.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../src/open.ts"],"names":[],"mappings":"AAEA,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxD"}
|
package/dist/open.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
export async function openUrl(url) {
|
|
3
|
-
const platform = process.platform;
|
|
4
|
-
try {
|
|
5
|
-
if (platform === "darwin")
|
|
6
|
-
spawn("open", [url], { detached: true, stdio: "ignore" }).unref();
|
|
7
|
-
else if (platform === "win32")
|
|
8
|
-
spawn("cmd", ["/c", "start", "", url], { detached: true, stdio: "ignore" }).unref();
|
|
9
|
-
else
|
|
10
|
-
spawn("xdg-open", [url], { detached: true, stdio: "ignore" }).unref();
|
|
11
|
-
}
|
|
12
|
-
catch {
|
|
13
|
-
// Silently swallow — the caller should have printed the URL already.
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=open.js.map
|
package/dist/open.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"open.js","sourceRoot":"","sources":["../src/open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,QAAQ;YAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;aACxF,IAAI,QAAQ,KAAK,OAAO;YAC3B,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;;YACjF,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;AACH,CAAC"}
|
package/dist/output.d.ts
DELETED
package/dist/output.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAgCf"}
|
package/dist/output.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { PercherApiError } from "@percher/client";
|
|
2
|
-
import { PercherCoreError } from "@percher/core";
|
|
3
|
-
import { PercherTomlError } from "@percher/toml";
|
|
4
|
-
import pc from "picocolors";
|
|
5
|
-
export async function renderError(stderr, error) {
|
|
6
|
-
const writer = stderr.getWriter();
|
|
7
|
-
const encoder = new TextEncoder();
|
|
8
|
-
const lines = [];
|
|
9
|
-
if (error instanceof PercherTomlError) {
|
|
10
|
-
lines.push(`${pc.red(`error (${error.code}):`)} ${error.message}`);
|
|
11
|
-
if (error.tomlLine !== undefined) {
|
|
12
|
-
lines.push(pc.dim(` at percher.toml line ${error.tomlLine}`));
|
|
13
|
-
}
|
|
14
|
-
for (const issue of error.issues ?? []) {
|
|
15
|
-
lines.push(`${pc.dim(" · ") + pc.yellow(issue.path.join("."))}: ${issue.message}`);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
else if (error instanceof PercherApiError) {
|
|
19
|
-
lines.push(`${pc.red("error:")} ${error.message}`);
|
|
20
|
-
lines.push(pc.dim(` ${error.code} (HTTP ${error.status})`));
|
|
21
|
-
if (error.requestId)
|
|
22
|
-
lines.push(pc.dim(` request: ${error.requestId}`));
|
|
23
|
-
}
|
|
24
|
-
else if (error instanceof PercherCoreError) {
|
|
25
|
-
lines.push(`${pc.red(`error (${error.code}):`)} ${error.message}`);
|
|
26
|
-
if (error.hint)
|
|
27
|
-
lines.push(pc.dim(` ${error.hint}`));
|
|
28
|
-
}
|
|
29
|
-
else if (error instanceof Error) {
|
|
30
|
-
lines.push(`${pc.red("unexpected error:")} ${error.message}`);
|
|
31
|
-
if (error.stack)
|
|
32
|
-
lines.push(pc.dim(error.stack.split("\n").slice(1, 4).join("\n")));
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
lines.push(`${pc.red("unexpected error:")} ${String(error)}`);
|
|
36
|
-
}
|
|
37
|
-
try {
|
|
38
|
-
await writer.write(encoder.encode(`${lines.join("\n")}\n`));
|
|
39
|
-
}
|
|
40
|
-
finally {
|
|
41
|
-
writer.releaseLock();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=output.js.map
|
package/dist/output.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt.d.ts
DELETED
package/dist/prompt.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAGA,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAS9F"}
|
package/dist/prompt.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { stdin as input, stdout as output } from "node:process";
|
|
2
|
-
import { createInterface } from "node:readline/promises";
|
|
3
|
-
export async function prompt(question, options) {
|
|
4
|
-
const rl = createInterface({ input, output });
|
|
5
|
-
try {
|
|
6
|
-
const suffix = options?.default ? ` [${options.default}]` : "";
|
|
7
|
-
const answer = await rl.question(`${question}${suffix} `);
|
|
8
|
-
return answer.trim() || options?.default || "";
|
|
9
|
-
}
|
|
10
|
-
finally {
|
|
11
|
-
rl.close();
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=prompt.js.map
|
package/dist/prompt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE,OAA8B;IAC3E,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;IACjD,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|