rampway 0.5.0 → 0.5.2
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/README.md +31 -1
- package/build/src/cli.d.ts.map +1 -1
- package/build/src/cli.js +10 -5
- package/build/src/cli.js.map +1 -1
- package/build/src/commands/context.d.ts +12 -0
- package/build/src/commands/context.d.ts.map +1 -1
- package/build/src/commands/context.js +13 -2
- package/build/src/commands/context.js.map +1 -1
- package/build/src/commands/deploy.d.ts.map +1 -1
- package/build/src/commands/deploy.js +61 -1
- package/build/src/commands/deploy.js.map +1 -1
- package/build/src/commands/plan.js +1 -1
- package/build/src/commands/plan.js.map +1 -1
- package/build/src/config/validate-config.d.ts.map +1 -1
- package/build/src/config/validate-config.js +84 -0
- package/build/src/config/validate-config.js.map +1 -1
- package/build/src/runtimes/compose-runtime.d.ts +49 -0
- package/build/src/runtimes/compose-runtime.d.ts.map +1 -0
- package/build/src/runtimes/compose-runtime.js +106 -0
- package/build/src/runtimes/compose-runtime.js.map +1 -0
- package/build/src/runtimes/index.d.ts.map +1 -1
- package/build/src/runtimes/index.js +2 -1
- package/build/src/runtimes/index.js.map +1 -1
- package/build/src/types.d.ts +49 -0
- package/build/src/types.d.ts.map +1 -1
- package/build/src/velocious/client.d.ts +146 -0
- package/build/src/velocious/client.d.ts.map +1 -0
- package/build/src/velocious/client.js +292 -0
- package/build/src/velocious/client.js.map +1 -0
- package/docs/config-reference.md +106 -0
- package/docs/velocious-deployment-api.md +37 -0
- package/package.json +1 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
export class ComposeRuntime {
|
|
4
|
+
/** @type {"compose"} */
|
|
5
|
+
static type = "compose";
|
|
6
|
+
/** @type {true} */
|
|
7
|
+
requiresStableState = true;
|
|
8
|
+
/** @returns {"compose"} */
|
|
9
|
+
get type() {
|
|
10
|
+
return "compose";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @param {import("#types").ComposeRuntimeConfig} config
|
|
14
|
+
*/
|
|
15
|
+
constructor(config) {
|
|
16
|
+
/** @type {import("#types").ComposeRuntimeConfig} */
|
|
17
|
+
this.config = { ...config, type: "compose" };
|
|
18
|
+
}
|
|
19
|
+
/** @returns {string[]} */
|
|
20
|
+
plan() {
|
|
21
|
+
return ["run configured Compose handoff", "run configured Compose health check"];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Runtime state deliberately records only a hash of trusted commands. The
|
|
25
|
+
* commands themselves may reference credentials through their environment.
|
|
26
|
+
*
|
|
27
|
+
* @returns {Promise<import("#types").RuntimeSnapshot>}
|
|
28
|
+
*/
|
|
29
|
+
async prepare() {
|
|
30
|
+
return {
|
|
31
|
+
schemaVersion: 1,
|
|
32
|
+
type: "compose",
|
|
33
|
+
contractDigest: `sha256:${this.contractDigest()}`,
|
|
34
|
+
composeRoot: this.config.composeRoot
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @param {import("#types").RuntimeSnapshot} snapshot
|
|
39
|
+
* @returns {void}
|
|
40
|
+
*/
|
|
41
|
+
validateSnapshot(snapshot) {
|
|
42
|
+
if (snapshot.type !== "compose")
|
|
43
|
+
throw new Error("Stored Compose runtime state has an invalid runtime type.");
|
|
44
|
+
if (!/^sha256:[0-9a-f]{64}$/u.test(snapshot.contractDigest ?? "")) {
|
|
45
|
+
throw new Error("Stored Compose runtime state is missing a valid known-good contract digest.");
|
|
46
|
+
}
|
|
47
|
+
if (typeof snapshot.composeRoot !== "string" || !isAbsolutePath(snapshot.composeRoot)) {
|
|
48
|
+
throw new Error("Stored Compose runtime state has an unsafe absolute compose root.");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @param {import("#types").Transport} transport
|
|
53
|
+
* @param {{currentSnapshot?: import("#types").RuntimeSnapshot, releaseId?: string, releasePath?: string, targetSnapshot?: import("#types").RuntimeSnapshot}} opts
|
|
54
|
+
* @returns {Promise<{status: string}>}
|
|
55
|
+
*/
|
|
56
|
+
async deploy(transport, { currentSnapshot, releaseId, releasePath, targetSnapshot } = {}) {
|
|
57
|
+
if (currentSnapshot)
|
|
58
|
+
this.assertConfiguredContract(currentSnapshot);
|
|
59
|
+
if (targetSnapshot)
|
|
60
|
+
this.assertConfiguredContract(targetSnapshot);
|
|
61
|
+
const env = {
|
|
62
|
+
RAMPWAY_RELEASE_ID: String(releaseId ?? ""),
|
|
63
|
+
RAMPWAY_RELEASE_PATH: String(releasePath ?? "")
|
|
64
|
+
};
|
|
65
|
+
try {
|
|
66
|
+
await transport.run(this.config.handoffCommand, { cwd: this.config.composeRoot, env });
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
throw new Error(`Compose handoff failed: ${ /** @type {Error} */(error).message}`);
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
await transport.run(this.config.healthCommand, { cwd: this.config.composeRoot, env });
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
throw new Error(`Compose health check failed: ${ /** @type {Error} */(error).message}`);
|
|
76
|
+
}
|
|
77
|
+
return { status: "deployed" };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @param {import("#types").RuntimeSnapshot} snapshot
|
|
81
|
+
* @returns {void}
|
|
82
|
+
*/
|
|
83
|
+
assertConfiguredContract(snapshot) {
|
|
84
|
+
this.validateSnapshot(snapshot);
|
|
85
|
+
if (snapshot.composeRoot !== this.config.composeRoot || snapshot.contractDigest !== `sha256:${this.contractDigest()}`) {
|
|
86
|
+
throw new Error("Stored Compose runtime state does not match the configured Compose contract.");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** @returns {string} */
|
|
90
|
+
contractDigest() {
|
|
91
|
+
return createHash("sha256").update(JSON.stringify({
|
|
92
|
+
type: "compose",
|
|
93
|
+
composeRoot: this.config.composeRoot,
|
|
94
|
+
handoffCommand: this.config.handoffCommand,
|
|
95
|
+
healthCommand: this.config.healthCommand
|
|
96
|
+
})).digest("hex");
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* @param {string} value
|
|
101
|
+
* @returns {boolean}
|
|
102
|
+
*/
|
|
103
|
+
function isAbsolutePath(value) {
|
|
104
|
+
return path.posix.isAbsolute(value) || path.win32.isAbsolute(value);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=compose-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-runtime.js","sourceRoot":"","sources":["../../../src/runtimes/compose-runtime.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/index.js"],"names":[],"mappings":"AAwCA;;;GAGG;AACH,gDAHW,KAAK,CAAC,WAAS,CAAC,MAAM,EAAE,OAAO,QAAQ,EAAE,eAAe,CAAC,CAAC,GACxD;IAAC,QAAQ,WAAW;IAAC,UAAU,WAAW;IAAC,SAAS,WAAU;CAAC,CAmC3E;AAED;;;GAGG;AACH,6CAHW,MAAM,WAAS,YACf,OAAO,QAAQ,EAAE,eAAe,QAI1C;AAED;;;GAGG;AACH,kCAHW,OAAO,QAAQ,EAAE,WAAW,GAC1B,OAAO,QAAQ,EAAE,cAAc,CAI3C;AAED;;GAEG;AACH,oCAFa,MAAM,EAAE,CAIpB;AAhGD;IACE;;OAEG;IACH,qBAFW,OAAO,CAAC,OAAO,QAAQ,EAAE,aAAa,CAAC,EAKjD;IAFC,6CAA6C;IAC7C,QADW,OAAO,QAAQ,EAAE,aAAa,CAC8C;IAGzF,wBAAwB;IACxB,YADc,MAAM,CAGnB;IAED;;OAEG;IACH,QAFa,MAAM,EAAE,CAIpB;IAED;;OAEG;IACH,UAFa,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrC;IAED;;OAEG;IACH,UAFa,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAInD;CACF;AAiGD;;;;EAA6G"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ComposeRuntime } from "./compose-runtime.js";
|
|
1
2
|
import { NoneRuntime } from "./none-runtime.js";
|
|
2
3
|
import { RollbridgeRuntime } from "./rollbridge-runtime.js";
|
|
3
4
|
export class BaseRuntime {
|
|
@@ -128,5 +129,5 @@ function runtimeForStage(stage, factories) {
|
|
|
128
129
|
runtime.plan = () => [];
|
|
129
130
|
return runtime;
|
|
130
131
|
}
|
|
131
|
-
export const defaultRuntimeRegistry = createRuntimeRegistry([NoneRuntime, RollbridgeRuntime]);
|
|
132
|
+
export const defaultRuntimeRegistry = createRuntimeRegistry([ComposeRuntime, NoneRuntime, RollbridgeRuntime]);
|
|
132
133
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/index.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/index.js"],"names":[],"mappings":"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"}
|
package/build/src/types.d.ts
CHANGED
|
@@ -7,6 +7,32 @@ export type TransportConfig = {
|
|
|
7
7
|
sshOptions?: string[] | undefined;
|
|
8
8
|
extra?: Record<string, unknown> | undefined;
|
|
9
9
|
};
|
|
10
|
+
export type HttpTransportConfig = {
|
|
11
|
+
/**
|
|
12
|
+
* - Base URL of the mounted control plane, e.g. `https://app.example/rampway/deployments`.
|
|
13
|
+
*/
|
|
14
|
+
endpoint: string;
|
|
15
|
+
/**
|
|
16
|
+
* - Bearer token for the control plane.
|
|
17
|
+
*/
|
|
18
|
+
accessToken?: string | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* - Environment variable holding the bearer token, when `accessToken` is not inline.
|
|
21
|
+
*/
|
|
22
|
+
accessTokenEnv?: string | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* - Control-plane project identifier; defaults to the stage application.
|
|
25
|
+
*/
|
|
26
|
+
project?: string | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* - Polling interval while waiting for a run to finish.
|
|
29
|
+
*/
|
|
30
|
+
pollIntervalMs?: number | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* - Maximum time to wait for a run to reach a terminal status.
|
|
33
|
+
*/
|
|
34
|
+
timeoutMs?: number | undefined;
|
|
35
|
+
};
|
|
10
36
|
export type LinkedEntry = {
|
|
11
37
|
path: string;
|
|
12
38
|
required: boolean;
|
|
@@ -27,6 +53,9 @@ export type RuntimeConfig = {
|
|
|
27
53
|
socketPath?: string | undefined;
|
|
28
54
|
versionPath?: string | undefined;
|
|
29
55
|
env?: Record<string, string> | undefined;
|
|
56
|
+
composeRoot?: string | undefined;
|
|
57
|
+
handoffCommand?: string | undefined;
|
|
58
|
+
healthCommand?: string | undefined;
|
|
30
59
|
};
|
|
31
60
|
export type TaskEntry = {
|
|
32
61
|
name?: string | undefined;
|
|
@@ -67,6 +96,7 @@ export type StageConfig = {
|
|
|
67
96
|
deployTo: string;
|
|
68
97
|
strategy: "local-copy" | "remote-git" | "archive-upload";
|
|
69
98
|
transport: TransportConfig;
|
|
99
|
+
http?: HttpTransportConfig | undefined;
|
|
70
100
|
hosts?: {
|
|
71
101
|
host: string;
|
|
72
102
|
user?: string;
|
|
@@ -109,6 +139,7 @@ export type RuntimeSnapshot = {
|
|
|
109
139
|
socketPath?: string | undefined;
|
|
110
140
|
versionPath?: string | undefined;
|
|
111
141
|
envNames?: string[] | undefined;
|
|
142
|
+
composeRoot?: string | undefined;
|
|
112
143
|
};
|
|
113
144
|
export type RuntimeRelease = {
|
|
114
145
|
releaseId: string;
|
|
@@ -139,6 +170,14 @@ export type DeployReport = {
|
|
|
139
170
|
healthChecks?: string | undefined;
|
|
140
171
|
runtime?: object | undefined;
|
|
141
172
|
cleanupRemoved?: string[] | undefined;
|
|
173
|
+
/**
|
|
174
|
+
* - Control-plane run identifier, when deployed over HTTP.
|
|
175
|
+
*/
|
|
176
|
+
runId?: string | undefined;
|
|
177
|
+
/**
|
|
178
|
+
* - Transport actually used for the deploy.
|
|
179
|
+
*/
|
|
180
|
+
transport?: "local" | "ssh" | "http" | undefined;
|
|
142
181
|
};
|
|
143
182
|
export type RollbackReport = {
|
|
144
183
|
application: string;
|
|
@@ -250,6 +289,10 @@ export type CommandOptions = {
|
|
|
250
289
|
to?: string | undefined;
|
|
251
290
|
releasePath?: string | undefined;
|
|
252
291
|
dir?: string | undefined;
|
|
292
|
+
/**
|
|
293
|
+
* - Deploy transport selection. `auto` (default) tries the HTTP control plane first and falls back to the direct transport only when the endpoint is unavailable or not deployed.
|
|
294
|
+
*/
|
|
295
|
+
transport?: "ssh" | "http" | "auto" | undefined;
|
|
253
296
|
};
|
|
254
297
|
export type CommandArgs = {
|
|
255
298
|
stageName: string;
|
|
@@ -385,6 +428,12 @@ export type RollbridgeRuntimeConfig = {
|
|
|
385
428
|
versionPath?: string | undefined;
|
|
386
429
|
env?: Record<string, string> | undefined;
|
|
387
430
|
};
|
|
431
|
+
export type ComposeRuntimeConfig = {
|
|
432
|
+
type: "compose";
|
|
433
|
+
composeRoot: string;
|
|
434
|
+
handoffCommand: string;
|
|
435
|
+
healthCommand: string;
|
|
436
|
+
};
|
|
388
437
|
export type SpawnResult = {
|
|
389
438
|
code: number;
|
|
390
439
|
output: string;
|
package/build/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.js"],"names":[],"mappings":";UAYc,OAAO,GAAC,KAAK
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a control-plane failure is eligible for the SSH/direct fallback.
|
|
3
|
+
*
|
|
4
|
+
* The control plane is tried first only while it is unavailable or not
|
|
5
|
+
* deployed; authentication and validation decisions (401/403/409/422) and any
|
|
6
|
+
* failure after a run was admitted are always surfaced instead.
|
|
7
|
+
*
|
|
8
|
+
* @param {unknown} error
|
|
9
|
+
* @returns {boolean}
|
|
10
|
+
*/
|
|
11
|
+
export function isFallbackEligible(error: unknown): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* @param {unknown} value
|
|
14
|
+
* @returns {value is string} Whether the value is a full 40-character commit SHA.
|
|
15
|
+
*/
|
|
16
|
+
export function isFullCommitSha(value: unknown): value is string;
|
|
17
|
+
/**
|
|
18
|
+
* Resolves the immutable revision a control-plane deploy requires. A full
|
|
19
|
+
* 40-character SHA is used as-is; otherwise the configured release branch is
|
|
20
|
+
* resolved to its current tip with `git ls-remote`.
|
|
21
|
+
*
|
|
22
|
+
* @param {{repo?: string, revision?: string, branch?: string}} args
|
|
23
|
+
* @returns {Promise<string>} Full commit SHA.
|
|
24
|
+
*/
|
|
25
|
+
export function resolveControlPlaneRevision({ repo, revision, branch }: {
|
|
26
|
+
repo?: string;
|
|
27
|
+
revision?: string;
|
|
28
|
+
branch?: string;
|
|
29
|
+
}): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a deployment run on the control plane and classifies the outcome.
|
|
32
|
+
*
|
|
33
|
+
* @param {{endpoint: string, accessToken: string, project: string, stage: string, revision: string, idempotencyKey: string, fetchImpl?: typeof fetch}} args
|
|
34
|
+
* @returns {Promise<{run: DeploymentRun, replayed: boolean}>}
|
|
35
|
+
*/
|
|
36
|
+
export function createDeploymentRun({ endpoint, accessToken, project, stage, revision, idempotencyKey, fetchImpl }: {
|
|
37
|
+
endpoint: string;
|
|
38
|
+
accessToken: string;
|
|
39
|
+
project: string;
|
|
40
|
+
stage: string;
|
|
41
|
+
revision: string;
|
|
42
|
+
idempotencyKey: string;
|
|
43
|
+
fetchImpl?: typeof fetch;
|
|
44
|
+
}): Promise<{
|
|
45
|
+
run: DeploymentRun;
|
|
46
|
+
replayed: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Polls a control-plane run until it reaches a terminal status. Any failure
|
|
50
|
+
* after admission (including lost contact) is a hard error: the run exists on
|
|
51
|
+
* the control plane, so there is nothing left to fall back to.
|
|
52
|
+
*
|
|
53
|
+
* @param {{endpoint: string, accessToken: string, runId: string, pollIntervalMs?: number, timeoutMs?: number, fetchImpl?: typeof fetch, now?: () => number, reporter?: Reporter}} args
|
|
54
|
+
* @returns {Promise<DeploymentRun>}
|
|
55
|
+
*/
|
|
56
|
+
export function pollDeploymentRun({ endpoint, accessToken, runId, pollIntervalMs, timeoutMs, fetchImpl, now, reporter }: {
|
|
57
|
+
endpoint: string;
|
|
58
|
+
accessToken: string;
|
|
59
|
+
runId: string;
|
|
60
|
+
pollIntervalMs?: number;
|
|
61
|
+
timeoutMs?: number;
|
|
62
|
+
fetchImpl?: typeof fetch;
|
|
63
|
+
now?: () => number;
|
|
64
|
+
reporter?: Reporter;
|
|
65
|
+
}): Promise<DeploymentRun>;
|
|
66
|
+
/**
|
|
67
|
+
* Deploys a stage through the mounted control plane: resolves the immutable
|
|
68
|
+
* revision, creates an idempotent run, polls it to completion, and returns the
|
|
69
|
+
* control-plane deploy report annotated with the run identifier.
|
|
70
|
+
*
|
|
71
|
+
* @param {{stage: import('#types').StageConfig, httpConfig: import('#types').HttpTransportConfig, revision?: string, reporter?: Reporter, fetchImpl?: typeof fetch}} args
|
|
72
|
+
* @returns {Promise<import('#types').DeployReport>}
|
|
73
|
+
*/
|
|
74
|
+
export function deployViaControlPlane({ stage, httpConfig, revision, reporter, fetchImpl }: {
|
|
75
|
+
stage: import("#types").StageConfig;
|
|
76
|
+
httpConfig: import("#types").HttpTransportConfig;
|
|
77
|
+
revision?: string;
|
|
78
|
+
reporter?: Reporter;
|
|
79
|
+
fetchImpl?: typeof fetch;
|
|
80
|
+
}): Promise<import("#types").DeployReport>;
|
|
81
|
+
/**
|
|
82
|
+
* Builds a client-generated idempotency key that is stable per invocation, so
|
|
83
|
+
* retrying the same command replays an existing admitted run instead of
|
|
84
|
+
* creating a duplicate.
|
|
85
|
+
*
|
|
86
|
+
* @param {string} project
|
|
87
|
+
* @param {string} stage
|
|
88
|
+
* @param {string} revision
|
|
89
|
+
* @returns {string}
|
|
90
|
+
*/
|
|
91
|
+
export function controlPlaneIdempotencyKey(project: string, stage: string, revision: string): string;
|
|
92
|
+
/**
|
|
93
|
+
* @name DeploymentRun
|
|
94
|
+
* @description Public representation of a control-plane deployment run.
|
|
95
|
+
* @typedef {object} DeploymentRun
|
|
96
|
+
* @property {string} id
|
|
97
|
+
* @property {string} status
|
|
98
|
+
* @property {Record<string, any>} [result]
|
|
99
|
+
* @property {{message?: string, recovery?: any}} [error]
|
|
100
|
+
*/
|
|
101
|
+
/**
|
|
102
|
+
* Control-plane failure that must not trigger a transport fallback: an
|
|
103
|
+
* authenticated admission decision (401/403/409/422), a 5xx that already
|
|
104
|
+
* admitted a run, or an interruption after a run was admitted.
|
|
105
|
+
*/
|
|
106
|
+
export class ControlPlaneError extends Error {
|
|
107
|
+
/**
|
|
108
|
+
* @param {string} message
|
|
109
|
+
* @param {{status?: number, cause?: unknown, runId?: string|null}} [opts]
|
|
110
|
+
*/
|
|
111
|
+
constructor(message: string, { status, cause, runId }?: {
|
|
112
|
+
status?: number;
|
|
113
|
+
cause?: unknown;
|
|
114
|
+
runId?: string | null;
|
|
115
|
+
});
|
|
116
|
+
/** @type {number|null} */
|
|
117
|
+
status: number | null;
|
|
118
|
+
/** @type {string|null} */
|
|
119
|
+
runId: string | null;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Control-plane unavailability that may fall back to the direct transport:
|
|
123
|
+
* network-level failure, a not-deployed endpoint/target (404), or a 5xx
|
|
124
|
+
* without any admitted run.
|
|
125
|
+
*/
|
|
126
|
+
export class ControlPlaneUnavailableError extends ControlPlaneError {
|
|
127
|
+
/**
|
|
128
|
+
* @param {string} message
|
|
129
|
+
* @param {{status?: number, cause?: unknown}} [opts]
|
|
130
|
+
*/
|
|
131
|
+
constructor(message: string, { status, cause }?: {
|
|
132
|
+
status?: number;
|
|
133
|
+
cause?: unknown;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
export type DeploymentRun = {
|
|
137
|
+
id: string;
|
|
138
|
+
status: string;
|
|
139
|
+
result?: Record<string, any> | undefined;
|
|
140
|
+
error?: {
|
|
141
|
+
message?: string;
|
|
142
|
+
recovery?: any;
|
|
143
|
+
} | undefined;
|
|
144
|
+
};
|
|
145
|
+
import { Reporter } from "../core/reporter.js";
|
|
146
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/velocious/client.js"],"names":[],"mappings":"AA2DA;;;;;;;;;GASG;AACH,0CAHW,OAAO,GACL,OAAO,CAInB;AAED;;;GAGG;AACH,uCAHW,OAAO,GACL,KAAK,IAAI,MAAM,CAI3B;AAED;;;;;;;GAOG;AACH,wEAHW;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,GACjD,OAAO,CAAC,MAAM,CAAC,CAe3B;AAED;;;;;GAKG;AACH,oHAHW;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAC,GACzI,OAAO,CAAC;IAAC,GAAG,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAC,CAAC,CAmC5D;AAED;;;;;;;GAOG;AACH,yHAHW;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAC,GACpK,OAAO,CAAC,aAAa,CAAC,CA6BlC;AAED;;;;;;;GAOG;AACH,4FAHW;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,OAAO,QAAQ,EAAE,mBAAmB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAC,GACvJ,OAAO,CAAC,OAAO,QAAQ,EAAE,YAAY,CAAC,CAgClD;AAED;;;;;;;;;GASG;AACH,oDALW,MAAM,SACN,MAAM,YACN,MAAM,GACJ,MAAM,CAIlB;AA3ND;;;;;;;;GAQG;AAEH;;;;GAIG;AACH;IACE;;;OAGG;IACH,qBAHW,MAAM,6BACN;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAC,IAAI,CAAA;KAAC,EAQjE;IAJC,0BAA0B;IAC1B,QADW,MAAM,GAAC,IAAI,CACM;IAC5B,0BAA0B;IAC1B,OADW,MAAM,GAAC,IAAI,CACJ;CAErB;AAED;;;;GAIG;AACH;IACE;;;OAGG;IACH,qBAHW,MAAM,sBACN;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAC,EAI5C;CACF;;QAtCa,MAAM;YACN,MAAM;;;kBAEK,MAAM;mBAAa,GAAG;;;yBAhBxB,qBAAqB"}
|