@percher/core 0.4.8 → 0.4.9
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/export.d.ts +4 -5
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +17 -24
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/reproduce.d.ts +12 -0
- package/dist/commands/reproduce.d.ts.map +1 -1
- package/dist/commands/reproduce.js +9 -8
- package/dist/commands/reproduce.js.map +1 -1
- package/package.json +3 -1
|
@@ -38,11 +38,10 @@ export interface ExportResult {
|
|
|
38
38
|
*/
|
|
39
39
|
export declare function exportApp(ctx: Context, input: ExportInput): Promise<ExportResult>;
|
|
40
40
|
/**
|
|
41
|
-
* Owner-only git-bundle export
|
|
42
|
-
* `
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* deploy history that re-clones with `git clone <file>`.
|
|
41
|
+
* Owner-only git-bundle export: stream `GET /apps/:app/export/git` to a
|
|
42
|
+
* `.bundle` file. No token-mint step (the endpoint is bearer-authed and
|
|
43
|
+
* owner-gated server-side); it streams a `git bundle` of the whole deploy
|
|
44
|
+
* history that re-clones with `git clone <file>`.
|
|
46
45
|
*/
|
|
47
46
|
export declare function exportGitBundle(ctx: Context, input: ExportGitInput): Promise<GitExportResult>;
|
|
48
47
|
//# sourceMappingURL=export.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,eAAO,MAAM,iBAAiB;;;;;;;iBAQ5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,oBAAoB;;;iBAI/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,eAAe,EAAE,KAAK,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,eAAO,MAAM,iBAAiB;;;;;;;iBAQ5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,oBAAoB;;;iBAI/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,eAAe,EAAE,KAAK,CAAC;CACxB;AAqGD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAyBvF;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC,CAkB1B"}
|
package/dist/commands/export.js
CHANGED
|
@@ -30,18 +30,14 @@ function resolveAppName(ctx, provided) {
|
|
|
30
30
|
return name;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Stream the response body
|
|
34
|
-
*
|
|
33
|
+
* Stream the response body to disk with constant memory (no full-archive
|
|
34
|
+
* buffering). Uses `node:fs` streams, NOT `Bun.file`, so the CLI/MCP work under
|
|
35
|
+
* Node (built `--target node`, where `Bun` is undefined); reads the web stream
|
|
36
|
+
* manually with backpressure, propagating source- and write-side errors.
|
|
35
37
|
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* source- and write-side errors.
|
|
40
|
-
*
|
|
41
|
-
* Writes to a temporary sibling and atomically renames into place only on
|
|
42
|
-
* success, so a mid-stream failure can never clobber an existing file at
|
|
43
|
-
* `outPath` (e.g. `--out` pointing at a file the user wants to keep). The temp
|
|
44
|
-
* file is a sibling so the rename stays on one filesystem (atomic).
|
|
38
|
+
* Writes to a unique sibling temp and renames into place only on success, so a
|
|
39
|
+
* mid-stream failure can't clobber an existing `--out` file. Sibling temp =
|
|
40
|
+
* same filesystem = atomic rename.
|
|
45
41
|
*/
|
|
46
42
|
async function streamToFile(outPath, source) {
|
|
47
43
|
// A unique sibling temp so concurrent exports to the same destination can't
|
|
@@ -65,7 +61,7 @@ async function streamToFile(outPath, source) {
|
|
|
65
61
|
try {
|
|
66
62
|
for (;;) {
|
|
67
63
|
// `reader.read()` rejects if the SOURCE stream errors (e.g. the download
|
|
68
|
-
// drops)
|
|
64
|
+
// drops), so a mid-stream failure surfaces here instead of hanging.
|
|
69
65
|
const { done, value } = await Promise.race([reader.read(), writeFailed]);
|
|
70
66
|
if (done)
|
|
71
67
|
break;
|
|
@@ -88,18 +84,16 @@ async function streamToFile(outPath, source) {
|
|
|
88
84
|
await closed; // fd fully released before the rename below
|
|
89
85
|
}
|
|
90
86
|
catch (err) {
|
|
91
|
-
// Remove ONLY the temp
|
|
92
|
-
//
|
|
93
|
-
// handle to close first, or the unlink no-ops on Windows and strands it.
|
|
87
|
+
// Remove ONLY the temp; the destination is untouched, so an existing file
|
|
88
|
+
// survives. Wait for close first, or the unlink no-ops on Windows.
|
|
94
89
|
out.destroy();
|
|
95
90
|
await closed;
|
|
96
91
|
await unlink(tmpPath).catch(() => { });
|
|
97
92
|
throw err;
|
|
98
93
|
}
|
|
99
|
-
// Atomic publish: rename
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
// permission error), drop the finished temp so it isn't stranded.
|
|
94
|
+
// Atomic publish: rename replaces the destination in one step (on every
|
|
95
|
+
// platform), so readers never see a half-written file. Drop the temp if the
|
|
96
|
+
// rename itself fails (Windows file lock, permission error).
|
|
103
97
|
try {
|
|
104
98
|
await rename(tmpPath, outPath);
|
|
105
99
|
}
|
|
@@ -150,11 +144,10 @@ export async function exportApp(ctx, input) {
|
|
|
150
144
|
};
|
|
151
145
|
}
|
|
152
146
|
/**
|
|
153
|
-
* Owner-only git-bundle export
|
|
154
|
-
* `
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
* deploy history that re-clones with `git clone <file>`.
|
|
147
|
+
* Owner-only git-bundle export: stream `GET /apps/:app/export/git` to a
|
|
148
|
+
* `.bundle` file. No token-mint step (the endpoint is bearer-authed and
|
|
149
|
+
* owner-gated server-side); it streams a `git bundle` of the whole deploy
|
|
150
|
+
* history that re-clones with `git clone <file>`.
|
|
158
151
|
*/
|
|
159
152
|
export async function exportGitBundle(ctx, input) {
|
|
160
153
|
const name = resolveAppName(ctx, input.app);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,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;IAC1B;;6BAEyB;IACzB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,yEAAyE;IACzE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;CACpD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,0EAA0E;IAC1E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC;AAwBH,SAAS,cAAc,CAAC,GAAY,EAAE,QAAiB;IACrD,MAAM,IAAI,GAAG,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,gBAAgB,CAAC,4CAA4C,EAAE;YACvE,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,8DAA8D;SACrE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { Context } from "../context";
|
|
3
|
+
/**
|
|
4
|
+
* Run a subprocess and resolve with its exit code. Uses `cross-spawn`, not
|
|
5
|
+
* `node:child_process` (and not `Bun.spawn`), so it works under Node and
|
|
6
|
+
* resolves Windows `.cmd` shims like `nixpacks.cmd` that Node's bare `spawn`
|
|
7
|
+
* ENOENTs on. No `shell: true`, so the validated `deployId` in argv can't
|
|
8
|
+
* inject. Rejects on a spawn error; callers treat any failure as "tool
|
|
9
|
+
* unavailable".
|
|
10
|
+
*/
|
|
11
|
+
export declare function runProcessExit(cmd: string, args: string[], opts?: {
|
|
12
|
+
cwd?: string;
|
|
13
|
+
inherit?: boolean;
|
|
14
|
+
}): Promise<number>;
|
|
3
15
|
export declare const reproduceInputSchema: z.ZodObject<{
|
|
4
16
|
app: z.ZodOptional<z.ZodString>;
|
|
5
17
|
deployId: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reproduce.d.ts","sourceRoot":"","sources":["../../src/commands/reproduce.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"reproduce.d.ts","sourceRoot":"","sources":["../../src/commands/reproduce.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7C,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,eAAO,MAAM,oBAAoB;;;iBAU/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,GAAG,qBAAqB,GAAG,aAAa,GAAG,QAAQ,CAAC;IACvE,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;oCAEgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;sDACkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;6DAGyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAuL7F"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
1
|
import { mkdtempSync, writeFileSync } from "node:fs";
|
|
3
2
|
import { tmpdir } from "node:os";
|
|
4
3
|
import { join } from "node:path";
|
|
5
4
|
import { PercherApiError } from "@percher/client";
|
|
5
|
+
import crossSpawn from "cross-spawn";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import { readPercherTomlAppName } from "../app-name";
|
|
8
8
|
/**
|
|
9
|
-
* Run a subprocess and resolve with its exit code. Uses `
|
|
10
|
-
* (
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* any failure as "tool
|
|
9
|
+
* Run a subprocess and resolve with its exit code. Uses `cross-spawn`, not
|
|
10
|
+
* `node:child_process` (and not `Bun.spawn`), so it works under Node and
|
|
11
|
+
* resolves Windows `.cmd` shims like `nixpacks.cmd` that Node's bare `spawn`
|
|
12
|
+
* ENOENTs on. No `shell: true`, so the validated `deployId` in argv can't
|
|
13
|
+
* inject. Rejects on a spawn error; callers treat any failure as "tool
|
|
14
|
+
* unavailable".
|
|
14
15
|
*/
|
|
15
|
-
function runProcessExit(cmd, args, opts = {}) {
|
|
16
|
+
export function runProcessExit(cmd, args, opts = {}) {
|
|
16
17
|
return new Promise((resolve, reject) => {
|
|
17
|
-
const child =
|
|
18
|
+
const child = crossSpawn(cmd, args, {
|
|
18
19
|
cwd: opts.cwd,
|
|
19
20
|
stdio: opts.inherit ? "inherit" : "ignore",
|
|
20
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reproduce.js","sourceRoot":"","sources":["../../src/commands/reproduce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reproduce.js","sourceRoot":"","sources":["../../src/commands/reproduce.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@percher/core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.9",
|
|
4
4
|
"description": "Core logic and CLI commands for the Percher hosting platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -35,12 +35,14 @@
|
|
|
35
35
|
"@percher/shared": "^0.1.4",
|
|
36
36
|
"@percher/toml": "^0.1.5",
|
|
37
37
|
"@types/jscodeshift": "17.3.0",
|
|
38
|
+
"cross-spawn": "^7.0.6",
|
|
38
39
|
"ignore": "^7.0.5",
|
|
39
40
|
"jscodeshift": "17.3.0",
|
|
40
41
|
"tar-stream": "^3.1.7",
|
|
41
42
|
"zod": "^4.3.6"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
45
|
+
"@types/cross-spawn": "^6.0.6",
|
|
44
46
|
"@types/tar-stream": "^3.1.3",
|
|
45
47
|
"bun-types": "^1.1.0"
|
|
46
48
|
},
|