@keystrokehq/hosting 0.1.9 → 0.1.10
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/index.cjs +116 -57
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +15 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +116 -57
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.d.cts
CHANGED
|
@@ -54,6 +54,11 @@ type ProjectRuntimeDestroyInput = {
|
|
|
54
54
|
runtimeId: string;
|
|
55
55
|
hosting?: ProjectRuntimeHosting;
|
|
56
56
|
};
|
|
57
|
+
type ProjectRuntimeReconcileInput = {
|
|
58
|
+
organizationId: string; /** The runtime to keep — every other runtime belonging to this org should be destroyed. */
|
|
59
|
+
keepRuntimeId: string;
|
|
60
|
+
hosting?: ProjectRuntimeHosting;
|
|
61
|
+
};
|
|
57
62
|
type ProjectRuntimeResult = {
|
|
58
63
|
runtimeId: string;
|
|
59
64
|
baseUrl: string;
|
|
@@ -61,6 +66,13 @@ type ProjectRuntimeResult = {
|
|
|
61
66
|
type ProjectRuntime = {
|
|
62
67
|
start(input: ProjectRuntimeInput): Promise<ProjectRuntimeResult>;
|
|
63
68
|
destroy?(input: ProjectRuntimeDestroyInput): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Sweep away every runtime for this org except `keepRuntimeId`, retrying
|
|
71
|
+
* transient failures instead of giving up after one attempt. This catches
|
|
72
|
+
* orphans that a single {@link destroy} call missed (e.g. a previous deploy's
|
|
73
|
+
* destroy failed silently), not just the one runtime recorded as "previous."
|
|
74
|
+
*/
|
|
75
|
+
reconcile?(input: ProjectRuntimeReconcileInput): Promise<void>;
|
|
64
76
|
};
|
|
65
77
|
type ProjectPingTarget = {
|
|
66
78
|
baseUrl: string | null;
|
|
@@ -114,7 +126,8 @@ type WorkspacesMount = {
|
|
|
114
126
|
};
|
|
115
127
|
type DockerPluginOptions = HostingOptions & {
|
|
116
128
|
docker?: Docker; /** Bind a shared host workspace dir into dev workers (VM sandbox proxy mount path). */
|
|
117
|
-
workspacesMount?: WorkspacesMount;
|
|
129
|
+
workspacesMount?: WorkspacesMount; /** Additional Docker bind mounts (`host:container[:options]`). */
|
|
130
|
+
extraBinds?: string[];
|
|
118
131
|
};
|
|
119
132
|
//#endregion
|
|
120
133
|
//#region src/docker/plugin.d.ts
|
|
@@ -204,5 +217,5 @@ type FetchDeployStatusOptions = {
|
|
|
204
217
|
*/
|
|
205
218
|
declare function fetchDeployStatus(baseUrl: string, options?: FetchDeployStatusOptions): Promise<DeployStatusResponse | undefined>;
|
|
206
219
|
//#endregion
|
|
207
|
-
export { DEV_PLATFORM_WORKER_TOKEN, type DeployStatusResponse, type DockerPluginOptions, type FetchDeployStatusOptions, type HostingOptions, type HostingPlugin, type OrgArtifactSpec, type OrgProjectDeploy, type OrganizationHostingInput, type OrganizationHostingResult, PROJECT_DATABASE_ENV_KEYS, PROJECT_SERVER_DEPLOY_STATUS, PROJECT_SERVER_FRAMEWORK_NODE_MODULES, PROJECT_SERVER_FRAMEWORK_ROOT, PROJECT_SERVER_HEALTH, PROJECT_SERVER_IMAGE, PROJECT_SERVER_PORT, PROJECT_SERVER_ROOT, type PingProjectOptions, type ProjectDeployStatus, type ProjectPingTarget, type ProjectRuntime, type ProjectRuntimeDatabase, type ProjectRuntimeDestroyInput, type ProjectRuntimeHosting, type ProjectRuntimeInput, type ProjectRuntimeResult, RUNTIME_PING_TIMEOUT_MS, type RuntimeLaunchSpec, type WaitForHealthOptions, type WorkerRuntimeConfig, WorkerRuntimeConfigError, buildRuntimeEnv, canPingProjectTarget, defaultHostingPlugin, dockerPlugin, encodeOrgArtifacts, fetchDeployStatus, formatDockerEnv, parseOrgArtifactsFromEnv, pingProject, pingProjectTarget, projectDatabaseRuntimeEnv, resolvePlatformWorkerToken, resolveProjectServerImage, resolveRuntimeLaunch, resolveWorkerPlatformUrl, resolveWorkerRuntimeConfig, rewriteLoopbackHost, rewriteLoopbackUrl, waitForHealth };
|
|
220
|
+
export { DEV_PLATFORM_WORKER_TOKEN, type DeployStatusResponse, type DockerPluginOptions, type FetchDeployStatusOptions, type HostingOptions, type HostingPlugin, type OrgArtifactSpec, type OrgProjectDeploy, type OrganizationHostingInput, type OrganizationHostingResult, PROJECT_DATABASE_ENV_KEYS, PROJECT_SERVER_DEPLOY_STATUS, PROJECT_SERVER_FRAMEWORK_NODE_MODULES, PROJECT_SERVER_FRAMEWORK_ROOT, PROJECT_SERVER_HEALTH, PROJECT_SERVER_IMAGE, PROJECT_SERVER_PORT, PROJECT_SERVER_ROOT, type PingProjectOptions, type ProjectDeployStatus, type ProjectPingTarget, type ProjectRuntime, type ProjectRuntimeDatabase, type ProjectRuntimeDestroyInput, type ProjectRuntimeHosting, type ProjectRuntimeInput, type ProjectRuntimeReconcileInput, type ProjectRuntimeResult, RUNTIME_PING_TIMEOUT_MS, type RuntimeLaunchSpec, type WaitForHealthOptions, type WorkerRuntimeConfig, WorkerRuntimeConfigError, buildRuntimeEnv, canPingProjectTarget, defaultHostingPlugin, dockerPlugin, encodeOrgArtifacts, fetchDeployStatus, formatDockerEnv, parseOrgArtifactsFromEnv, pingProject, pingProjectTarget, projectDatabaseRuntimeEnv, resolvePlatformWorkerToken, resolveProjectServerImage, resolveRuntimeLaunch, resolveWorkerPlatformUrl, resolveWorkerRuntimeConfig, rewriteLoopbackHost, rewriteLoopbackUrl, waitForHealth };
|
|
208
221
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/constants.ts","../src/runtime.ts","../src/worker-runtime-config.ts","../src/plugin.ts","../src/docker/create-docker-runtime.ts","../src/docker/plugin.ts","../src/default-plugin.ts","../src/runtime-env.ts","../src/wait-for-health.ts","../src/runtime-constants.ts","../src/ping-project.ts","../src/ping-project-target.ts","../src/deploy-status.ts"],"mappings":";;;cAAa,oBAAA;AAAA,cAEA,mBAAA;AAAA,cAEA,mBAAA;AAAA,cAEA,6BAAA;AAAA,cAEA,qCAAA;AAAA,cAEA,qBAAA;EAAA,SAGH,IAAA;EAAA,SAAA,IAAA;AAAA;AAAA,cAEG,4BAAA;EAAA,SAGH,IAAA;EAAA,SAAA,IAAA;AAAA;;;KClBE,sBAAA;EACV,IAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EACA,UAAA;EACA,cAAA,UDLW;ECOX,SAAA;AAAA;AAAA,KAGU,gBAAA;EACV,SAAA;EACA,IAAA;EACA,UAAA;EACA,kBAAA;AAAA;AAAA,KAGU,eAAA;EACV,SAAA;EACA,kBAAkB;AAAA;AAAA,KAGR,qBAAA;EACV,OAAO;AAAA;AAAA,KAGG,mBAAA;EACV,cAAA;EACA,QAAA,EAAU,gBAAA;EACV,QAAA,EAAU,sBAAA;EACV,OAAA,GAAU,qBAAA,EDnBF;ECqBR,GAAA,GAAM,MAAA,kBDrBE;ECuBR,iBAAA;AAAA;;iBAIc,kBAAA,CAAmB,SAA4B,EAAjB,eAAe;AAAA,iBAI7C,wBAAA,CACd,GAAA,GAAK,MAAA,CAAO,UAAA,GACX,eAAe;AAAA,KAyBN,0BAAA;EACV,SAAA;EACA,OAAA,GAAU,qBAAqB;AAAA;AAAA,KAGrB,oBAAA;EACV,SAAA;EACA,OAAO;AAAA;AAAA,KAGG,cAAA;EACV,KAAA,CAAM,KAAA,EAAO,mBAAA,GAAsB,OAAA,CAAQ,oBAAA;EAC3C,OAAA,EAAS,KAAA,EAAO,0BAAA,GAA6B,OAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/constants.ts","../src/runtime.ts","../src/worker-runtime-config.ts","../src/plugin.ts","../src/docker/create-docker-runtime.ts","../src/docker/plugin.ts","../src/default-plugin.ts","../src/runtime-env.ts","../src/wait-for-health.ts","../src/runtime-constants.ts","../src/ping-project.ts","../src/ping-project-target.ts","../src/deploy-status.ts"],"mappings":";;;cAAa,oBAAA;AAAA,cAEA,mBAAA;AAAA,cAEA,mBAAA;AAAA,cAEA,6BAAA;AAAA,cAEA,qCAAA;AAAA,cAEA,qBAAA;EAAA,SAGH,IAAA;EAAA,SAAA,IAAA;AAAA;AAAA,cAEG,4BAAA;EAAA,SAGH,IAAA;EAAA,SAAA,IAAA;AAAA;;;KClBE,sBAAA;EACV,IAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EACA,UAAA;EACA,cAAA,UDLW;ECOX,SAAA;AAAA;AAAA,KAGU,gBAAA;EACV,SAAA;EACA,IAAA;EACA,UAAA;EACA,kBAAA;AAAA;AAAA,KAGU,eAAA;EACV,SAAA;EACA,kBAAkB;AAAA;AAAA,KAGR,qBAAA;EACV,OAAO;AAAA;AAAA,KAGG,mBAAA;EACV,cAAA;EACA,QAAA,EAAU,gBAAA;EACV,QAAA,EAAU,sBAAA;EACV,OAAA,GAAU,qBAAA,EDnBF;ECqBR,GAAA,GAAM,MAAA,kBDrBE;ECuBR,iBAAA;AAAA;;iBAIc,kBAAA,CAAmB,SAA4B,EAAjB,eAAe;AAAA,iBAI7C,wBAAA,CACd,GAAA,GAAK,MAAA,CAAO,UAAA,GACX,eAAe;AAAA,KAyBN,0BAAA;EACV,SAAA;EACA,OAAA,GAAU,qBAAqB;AAAA;AAAA,KAGrB,4BAAA;EACV,cAAA;EAEA,aAAA;EACA,OAAA,GAAU,qBAAqB;AAAA;AAAA,KAGrB,oBAAA;EACV,SAAA;EACA,OAAO;AAAA;AAAA,KAGG,cAAA;EACV,KAAA,CAAM,KAAA,EAAO,mBAAA,GAAsB,OAAA,CAAQ,oBAAA;EAC3C,OAAA,EAAS,KAAA,EAAO,0BAAA,GAA6B,OAAA;EAjFpC;AAGX;;;;;EAqFE,SAAA,EAAW,KAAA,EAAO,4BAAA,GAA+B,OAAA;AAAA;AAAA,KAGvC,iBAAA;EACV,OAAA;EACA,SAAS;AAAA;;;;KCnGC,mBAAA;yEAEV,WAAA,UFL+B;EEO/B,WAAW;AAAA;AAAA,cAGA,wBAAA,SAAiC,KAAK;EAAA,SACxC,OAAA;cAEG,OAAA;AAAA;;iBAWE,0BAAA,CACd,MAAA,GAAQ,MAAA,CAAO,UAAA,GACd,mBAAmB;;;KCvBV,cAAA;EACV,KAAA;EACA,GAAA,GAAM,MAAA,CAAO,UAAA;EACb,SAAA,UAAmB,KAAK;EACxB,eAAA;AAAA;AAAA,KAGU,wBAAA;EACV,cAAA;EACA,IAAI;AAAA;AAAA,KAGM,yBAAA;EACV,OAAO;AAAA;AAAA,KAGG,aAAA;EACV,IAAA,UHhB8B;EGkB9B,aAAA,EAAe,mBAAA;EACf,aAAA,IAAiB,cAAA;EACjB,qBAAA,EAAuB,KAAA,EAAO,wBAAA,GAA2B,OAAA,CAAQ,yBAAA;EACjE,uBAAA,EAAyB,MAAA,EAAQ,yBAAA,GAA4B,OAAA;EAC7D,aAAA,EACE,MAAA,EAAQ,iBAAA,GACP,MAAA;IAAY,OAAA;IAAiB,SAAA;EAAA;EAChC,kBAAA,EAAoB,SAAA,kBAA2B,MAAA;AAAA;;;KCpBrC,eAAA;EACV,QAAA;EACA,aAAa;AAAA;AAAA,KAGH,mBAAA,GAAsB,cAAA;EAChC,MAAA,GAAS,MAAA,EJbqB;EIe9B,eAAA,GAAkB,eAAA,EJfY;EIiB9B,UAAA;AAAA;;;iBCXc,YAAA,CAAa,OAAA,GAAS,mBAAA,GAA2B,aAAa;;;;iBCJ9D,oBAAA,CAAqB,OAAA,GAAS,mBAAA,GAA2B,aAAa;;;;cC8BzE,yBAAA;AAAA,cAEA,yBAAA;AAAA,KASD,iBAAA;EACV,KAAA;EACA,GAAA,EAAK,MAAA;EACL,IAAA;EACA,MAAA,SAAe,qBAAqB;AAAA;AP7CtC;AAAA,iBOiDgB,yBAAA,CACd,QAAA,EAAU,sBAAA,GACT,MAAA,SAAe,yBAAA;;;APnDc;AAEhC;iBOgEgB,oBAAA,CACd,OAAA,EAAS,cAAA,EACT,SAAA,EAAW,eAAA,IACX,QAAA,EAAU,sBAAA,EACV,QAAA,GAAW,MAAA,mBACV,iBAAA;;iBA+Ba,eAAA,CACd,MAAA,EAAQ,MAAA,CAAO,UAAA,EACf,SAAA,EAAW,eAAA,IACX,QAAA,EAAU,sBAAA,EACV,QAAA,GAAW,MAAA,mBACV,MAAA;AAAA,iBAkDa,0BAAA,CACd,MAAA,GAAQ,MAAA,CAAO,UAAwB;AP1JS;AAAA,iBOyKlC,wBAAA,CACd,MAAA,GAAQ,MAAA,CAAO,UAAwB;;iBAczB,mBAAA,CAAoB,IAAY;AAAA,iBAQhC,kBAAA,CAAmB,GAAW;;iBAW9B,eAAA,CAAgB,GAA2B,EAAtB,MAAM;AAAA,iBAI3B,yBAAA,CACd,GAAA,GAAK,MAAA,CAAO,UAAwB,EACpC,QAAA;;;KCpNU,oBAAA;EACV,SAAA;EACA,UAAA;EACA,SAAA,UAAmB,KAAK;AAAA;AAAA,iBAGJ,aAAA,CACpB,OAAA,UACA,OAAA,GAAS,oBAAA,GACR,OAAO;;;;cCbG,uBAAA;;;KCGD,kBAAA;EACV,SAAA;EACA,SAAA,UAAmB,KAAA;EACnB,SAAA;EACA,MAAA,GAAS,IAAA,CAAK,aAAA;AAAA;AAAA,iBAGM,WAAA,CACpB,OAAA,UACA,OAAA,GAAS,kBAAA,GACR,OAAO;;;iBCVM,oBAAA,CACd,MAAA,EAAQ,iBAAA,EACR,MAAA,GAAS,IAAA,CAAK,aAAA,qBACb,MAAA;EAAY,OAAA;EAAiB,SAAA;AAAA;AAAA,iBAQV,iBAAA,CACpB,MAAA,EAAQ,iBAAA,EACR,OAAA,GAAS,kBAAA;EACP,MAAA,GAAS,IAAA,CAAK,aAAA;AAAA,IAEf,OAAA;;;;KChBS,mBAAA;EACV,SAAA;EACA,EAAA;EACA,KAAA;AAAA;AAAA,KAGU,oBAAA;EACV,QAAA,EAAU,mBAAmB;AAAA;AAAA,KAGnB,wBAAA;EACV,SAAA,UAAmB,KAAK;EACxB,SAAA;AAAA;AZZF;;;;AAAgC;AAAhC,iBYoBsB,iBAAA,CACpB,OAAA,UACA,OAAA,GAAS,wBAAA,GACR,OAAA,CAAQ,oBAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -54,6 +54,11 @@ type ProjectRuntimeDestroyInput = {
|
|
|
54
54
|
runtimeId: string;
|
|
55
55
|
hosting?: ProjectRuntimeHosting;
|
|
56
56
|
};
|
|
57
|
+
type ProjectRuntimeReconcileInput = {
|
|
58
|
+
organizationId: string; /** The runtime to keep — every other runtime belonging to this org should be destroyed. */
|
|
59
|
+
keepRuntimeId: string;
|
|
60
|
+
hosting?: ProjectRuntimeHosting;
|
|
61
|
+
};
|
|
57
62
|
type ProjectRuntimeResult = {
|
|
58
63
|
runtimeId: string;
|
|
59
64
|
baseUrl: string;
|
|
@@ -61,6 +66,13 @@ type ProjectRuntimeResult = {
|
|
|
61
66
|
type ProjectRuntime = {
|
|
62
67
|
start(input: ProjectRuntimeInput): Promise<ProjectRuntimeResult>;
|
|
63
68
|
destroy?(input: ProjectRuntimeDestroyInput): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Sweep away every runtime for this org except `keepRuntimeId`, retrying
|
|
71
|
+
* transient failures instead of giving up after one attempt. This catches
|
|
72
|
+
* orphans that a single {@link destroy} call missed (e.g. a previous deploy's
|
|
73
|
+
* destroy failed silently), not just the one runtime recorded as "previous."
|
|
74
|
+
*/
|
|
75
|
+
reconcile?(input: ProjectRuntimeReconcileInput): Promise<void>;
|
|
64
76
|
};
|
|
65
77
|
type ProjectPingTarget = {
|
|
66
78
|
baseUrl: string | null;
|
|
@@ -114,7 +126,8 @@ type WorkspacesMount = {
|
|
|
114
126
|
};
|
|
115
127
|
type DockerPluginOptions = HostingOptions & {
|
|
116
128
|
docker?: Docker; /** Bind a shared host workspace dir into dev workers (VM sandbox proxy mount path). */
|
|
117
|
-
workspacesMount?: WorkspacesMount;
|
|
129
|
+
workspacesMount?: WorkspacesMount; /** Additional Docker bind mounts (`host:container[:options]`). */
|
|
130
|
+
extraBinds?: string[];
|
|
118
131
|
};
|
|
119
132
|
//#endregion
|
|
120
133
|
//#region src/docker/plugin.d.ts
|
|
@@ -204,5 +217,5 @@ type FetchDeployStatusOptions = {
|
|
|
204
217
|
*/
|
|
205
218
|
declare function fetchDeployStatus(baseUrl: string, options?: FetchDeployStatusOptions): Promise<DeployStatusResponse | undefined>;
|
|
206
219
|
//#endregion
|
|
207
|
-
export { DEV_PLATFORM_WORKER_TOKEN, type DeployStatusResponse, type DockerPluginOptions, type FetchDeployStatusOptions, type HostingOptions, type HostingPlugin, type OrgArtifactSpec, type OrgProjectDeploy, type OrganizationHostingInput, type OrganizationHostingResult, PROJECT_DATABASE_ENV_KEYS, PROJECT_SERVER_DEPLOY_STATUS, PROJECT_SERVER_FRAMEWORK_NODE_MODULES, PROJECT_SERVER_FRAMEWORK_ROOT, PROJECT_SERVER_HEALTH, PROJECT_SERVER_IMAGE, PROJECT_SERVER_PORT, PROJECT_SERVER_ROOT, type PingProjectOptions, type ProjectDeployStatus, type ProjectPingTarget, type ProjectRuntime, type ProjectRuntimeDatabase, type ProjectRuntimeDestroyInput, type ProjectRuntimeHosting, type ProjectRuntimeInput, type ProjectRuntimeResult, RUNTIME_PING_TIMEOUT_MS, type RuntimeLaunchSpec, type WaitForHealthOptions, type WorkerRuntimeConfig, WorkerRuntimeConfigError, buildRuntimeEnv, canPingProjectTarget, defaultHostingPlugin, dockerPlugin, encodeOrgArtifacts, fetchDeployStatus, formatDockerEnv, parseOrgArtifactsFromEnv, pingProject, pingProjectTarget, projectDatabaseRuntimeEnv, resolvePlatformWorkerToken, resolveProjectServerImage, resolveRuntimeLaunch, resolveWorkerPlatformUrl, resolveWorkerRuntimeConfig, rewriteLoopbackHost, rewriteLoopbackUrl, waitForHealth };
|
|
220
|
+
export { DEV_PLATFORM_WORKER_TOKEN, type DeployStatusResponse, type DockerPluginOptions, type FetchDeployStatusOptions, type HostingOptions, type HostingPlugin, type OrgArtifactSpec, type OrgProjectDeploy, type OrganizationHostingInput, type OrganizationHostingResult, PROJECT_DATABASE_ENV_KEYS, PROJECT_SERVER_DEPLOY_STATUS, PROJECT_SERVER_FRAMEWORK_NODE_MODULES, PROJECT_SERVER_FRAMEWORK_ROOT, PROJECT_SERVER_HEALTH, PROJECT_SERVER_IMAGE, PROJECT_SERVER_PORT, PROJECT_SERVER_ROOT, type PingProjectOptions, type ProjectDeployStatus, type ProjectPingTarget, type ProjectRuntime, type ProjectRuntimeDatabase, type ProjectRuntimeDestroyInput, type ProjectRuntimeHosting, type ProjectRuntimeInput, type ProjectRuntimeReconcileInput, type ProjectRuntimeResult, RUNTIME_PING_TIMEOUT_MS, type RuntimeLaunchSpec, type WaitForHealthOptions, type WorkerRuntimeConfig, WorkerRuntimeConfigError, buildRuntimeEnv, canPingProjectTarget, defaultHostingPlugin, dockerPlugin, encodeOrgArtifacts, fetchDeployStatus, formatDockerEnv, parseOrgArtifactsFromEnv, pingProject, pingProjectTarget, projectDatabaseRuntimeEnv, resolvePlatformWorkerToken, resolveProjectServerImage, resolveRuntimeLaunch, resolveWorkerPlatformUrl, resolveWorkerRuntimeConfig, rewriteLoopbackHost, rewriteLoopbackUrl, waitForHealth };
|
|
208
221
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/runtime.ts","../src/worker-runtime-config.ts","../src/plugin.ts","../src/docker/create-docker-runtime.ts","../src/docker/plugin.ts","../src/default-plugin.ts","../src/runtime-env.ts","../src/wait-for-health.ts","../src/runtime-constants.ts","../src/ping-project.ts","../src/ping-project-target.ts","../src/deploy-status.ts"],"mappings":";;;cAAa,oBAAA;AAAA,cAEA,mBAAA;AAAA,cAEA,mBAAA;AAAA,cAEA,6BAAA;AAAA,cAEA,qCAAA;AAAA,cAEA,qBAAA;EAAA,SAGH,IAAA;EAAA,SAAA,IAAA;AAAA;AAAA,cAEG,4BAAA;EAAA,SAGH,IAAA;EAAA,SAAA,IAAA;AAAA;;;KClBE,sBAAA;EACV,IAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EACA,UAAA;EACA,cAAA,UDLW;ECOX,SAAA;AAAA;AAAA,KAGU,gBAAA;EACV,SAAA;EACA,IAAA;EACA,UAAA;EACA,kBAAA;AAAA;AAAA,KAGU,eAAA;EACV,SAAA;EACA,kBAAkB;AAAA;AAAA,KAGR,qBAAA;EACV,OAAO;AAAA;AAAA,KAGG,mBAAA;EACV,cAAA;EACA,QAAA,EAAU,gBAAA;EACV,QAAA,EAAU,sBAAA;EACV,OAAA,GAAU,qBAAA,EDnBF;ECqBR,GAAA,GAAM,MAAA,kBDrBE;ECuBR,iBAAA;AAAA;;iBAIc,kBAAA,CAAmB,SAA4B,EAAjB,eAAe;AAAA,iBAI7C,wBAAA,CACd,GAAA,GAAK,MAAA,CAAO,UAAA,GACX,eAAe;AAAA,KAyBN,0BAAA;EACV,SAAA;EACA,OAAA,GAAU,qBAAqB;AAAA;AAAA,KAGrB,oBAAA;EACV,SAAA;EACA,OAAO;AAAA;AAAA,KAGG,cAAA;EACV,KAAA,CAAM,KAAA,EAAO,mBAAA,GAAsB,OAAA,CAAQ,oBAAA;EAC3C,OAAA,EAAS,KAAA,EAAO,0BAAA,GAA6B,OAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/runtime.ts","../src/worker-runtime-config.ts","../src/plugin.ts","../src/docker/create-docker-runtime.ts","../src/docker/plugin.ts","../src/default-plugin.ts","../src/runtime-env.ts","../src/wait-for-health.ts","../src/runtime-constants.ts","../src/ping-project.ts","../src/ping-project-target.ts","../src/deploy-status.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -621,6 +621,7 @@ const string$1 = (params) => {
|
|
|
621
621
|
const integer = /^-?\d+$/;
|
|
622
622
|
const number$2 = /^-?\d+(?:\.\d+)?$/;
|
|
623
623
|
const boolean$1 = /^(?:true|false)$/i;
|
|
624
|
+
const _null$2 = /^null$/i;
|
|
624
625
|
const lowercase = /^[^A-Z]*$/;
|
|
625
626
|
const uppercase = /^[^a-z]*$/;
|
|
626
627
|
//#endregion
|
|
@@ -1433,6 +1434,22 @@ const $ZodBoolean = /* @__PURE__ */ $constructor("$ZodBoolean", (inst, def) => {
|
|
|
1433
1434
|
return payload;
|
|
1434
1435
|
};
|
|
1435
1436
|
});
|
|
1437
|
+
const $ZodNull = /* @__PURE__ */ $constructor("$ZodNull", (inst, def) => {
|
|
1438
|
+
$ZodType.init(inst, def);
|
|
1439
|
+
inst._zod.pattern = _null$2;
|
|
1440
|
+
inst._zod.values = new Set([null]);
|
|
1441
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
1442
|
+
const input = payload.value;
|
|
1443
|
+
if (input === null) return payload;
|
|
1444
|
+
payload.issues.push({
|
|
1445
|
+
expected: "null",
|
|
1446
|
+
code: "invalid_type",
|
|
1447
|
+
input,
|
|
1448
|
+
inst
|
|
1449
|
+
});
|
|
1450
|
+
return payload;
|
|
1451
|
+
};
|
|
1452
|
+
});
|
|
1436
1453
|
const $ZodUnknown = /* @__PURE__ */ $constructor("$ZodUnknown", (inst, def) => {
|
|
1437
1454
|
$ZodType.init(inst, def);
|
|
1438
1455
|
inst._zod.parse = (payload) => payload;
|
|
@@ -2679,6 +2696,13 @@ function _boolean(Class, params) {
|
|
|
2679
2696
|
});
|
|
2680
2697
|
}
|
|
2681
2698
|
/* @__NO_SIDE_EFFECTS__ */
|
|
2699
|
+
function _null$1(Class, params) {
|
|
2700
|
+
return new Class({
|
|
2701
|
+
type: "null",
|
|
2702
|
+
...normalizeParams(params)
|
|
2703
|
+
});
|
|
2704
|
+
}
|
|
2705
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
2682
2706
|
function _unknown(Class) {
|
|
2683
2707
|
return new Class({ type: "unknown" });
|
|
2684
2708
|
}
|
|
@@ -3227,6 +3251,13 @@ const numberProcessor = (schema, ctx, _json, _params) => {
|
|
|
3227
3251
|
const booleanProcessor = (_schema, _ctx, json, _params) => {
|
|
3228
3252
|
json.type = "boolean";
|
|
3229
3253
|
};
|
|
3254
|
+
const nullProcessor = (_schema, ctx, json, _params) => {
|
|
3255
|
+
if (ctx.target === "openapi-3.0") {
|
|
3256
|
+
json.type = "string";
|
|
3257
|
+
json.nullable = true;
|
|
3258
|
+
json.enum = [null];
|
|
3259
|
+
} else json.type = "null";
|
|
3260
|
+
};
|
|
3230
3261
|
const neverProcessor = (_schema, _ctx, json, _params) => {
|
|
3231
3262
|
json.not = {};
|
|
3232
3263
|
};
|
|
@@ -3926,6 +3957,14 @@ const ZodBoolean = /* @__PURE__ */ $constructor("ZodBoolean", (inst, def) => {
|
|
|
3926
3957
|
function boolean(params) {
|
|
3927
3958
|
return /* @__PURE__ */ _boolean(ZodBoolean, params);
|
|
3928
3959
|
}
|
|
3960
|
+
const ZodNull = /* @__PURE__ */ $constructor("ZodNull", (inst, def) => {
|
|
3961
|
+
$ZodNull.init(inst, def);
|
|
3962
|
+
ZodType.init(inst, def);
|
|
3963
|
+
inst._zod.processJSONSchema = (ctx, json, params) => nullProcessor(inst, ctx, json, params);
|
|
3964
|
+
});
|
|
3965
|
+
function _null(params) {
|
|
3966
|
+
return /* @__PURE__ */ _null$1(ZodNull, params);
|
|
3967
|
+
}
|
|
3929
3968
|
const ZodUnknown = /* @__PURE__ */ $constructor("ZodUnknown", (inst, def) => {
|
|
3930
3969
|
$ZodUnknown.init(inst, def);
|
|
3931
3970
|
ZodType.init(inst, def);
|
|
@@ -6923,6 +6962,14 @@ object({
|
|
|
6923
6962
|
uploadUrl: url(),
|
|
6924
6963
|
storageKey: string().min(1)
|
|
6925
6964
|
});
|
|
6965
|
+
function isValidIanaTimezone(value) {
|
|
6966
|
+
try {
|
|
6967
|
+
Intl.DateTimeFormat(void 0, { timeZone: value });
|
|
6968
|
+
return true;
|
|
6969
|
+
} catch {
|
|
6970
|
+
return false;
|
|
6971
|
+
}
|
|
6972
|
+
}
|
|
6926
6973
|
const UserInterfaceThemeSchema = _enum([
|
|
6927
6974
|
"system",
|
|
6928
6975
|
"light",
|
|
@@ -6942,22 +6989,25 @@ const UserWorkspaceFavoriteSchema = object({
|
|
|
6942
6989
|
]),
|
|
6943
6990
|
resourceId: string().min(1)
|
|
6944
6991
|
});
|
|
6992
|
+
const UserSidebarPreferencesSchema = object({
|
|
6993
|
+
navIconVisibility: UserSidebarNavIconVisibilitySchema,
|
|
6994
|
+
footerChatRowVisibility: UserSidebarFooterChatRowVisibilitySchema,
|
|
6995
|
+
hiddenNavItemIds: array(string()),
|
|
6996
|
+
topNavItemOrderIds: array(string()),
|
|
6997
|
+
workspaceNavItemOrderIds: array(string())
|
|
6998
|
+
});
|
|
6999
|
+
const UserTimezoneSchema = string().refine(isValidIanaTimezone, { message: "Invalid IANA timezone" });
|
|
6945
7000
|
object({
|
|
6946
7001
|
interfaceTheme: UserInterfaceThemeSchema,
|
|
6947
7002
|
surfaceContrast: UserSurfaceContrastSchema,
|
|
6948
7003
|
layoutMode: UserWorkspaceLayoutModeSchema,
|
|
6949
7004
|
fontSize: UserWorkspaceFontSizeSchema,
|
|
6950
|
-
sidebar:
|
|
6951
|
-
navIconVisibility: UserSidebarNavIconVisibilitySchema,
|
|
6952
|
-
footerChatRowVisibility: UserSidebarFooterChatRowVisibilitySchema,
|
|
6953
|
-
hiddenNavItemIds: array(string()),
|
|
6954
|
-
topNavItemOrderIds: array(string()),
|
|
6955
|
-
workspaceNavItemOrderIds: array(string())
|
|
6956
|
-
}),
|
|
7005
|
+
sidebar: UserSidebarPreferencesSchema,
|
|
6957
7006
|
favorites: array(UserWorkspaceFavoriteSchema),
|
|
6958
7007
|
projectOrderIds: array(string()),
|
|
6959
7008
|
projectDotColors: record(string(), string()),
|
|
6960
|
-
onboardingTabVisible: boolean()
|
|
7009
|
+
onboardingTabVisible: boolean(),
|
|
7010
|
+
timezone: union([UserTimezoneSchema, _null()])
|
|
6961
7011
|
});
|
|
6962
7012
|
const UserSidebarPreferencesPatchSchema = object({
|
|
6963
7013
|
navIconVisibility: UserSidebarNavIconVisibilitySchema.optional(),
|
|
@@ -6975,8 +7025,9 @@ object({
|
|
|
6975
7025
|
favorites: array(UserWorkspaceFavoriteSchema).optional(),
|
|
6976
7026
|
projectOrderIds: array(string()).optional(),
|
|
6977
7027
|
projectDotColors: record(string(), string()).optional(),
|
|
6978
|
-
onboardingTabVisible: boolean().optional()
|
|
6979
|
-
|
|
7028
|
+
onboardingTabVisible: boolean().optional(),
|
|
7029
|
+
timezone: union([UserTimezoneSchema, _null()]).optional()
|
|
7030
|
+
}).refine((value) => value.interfaceTheme !== void 0 || value.surfaceContrast !== void 0 || value.layoutMode !== void 0 || value.fontSize !== void 0 || value.sidebar !== void 0 || value.favorites !== void 0 || value.projectOrderIds !== void 0 || value.projectDotColors !== void 0 || value.onboardingTabVisible !== void 0 || value.timezone !== void 0, { message: "At least one preference field is required" });
|
|
6980
7031
|
const OrganizationLogoVariantSchema = _enum(["light", "dark"]);
|
|
6981
7032
|
object({
|
|
6982
7033
|
customLogoEnabled: boolean(),
|
|
@@ -7605,55 +7656,63 @@ function sleep(ms) {
|
|
|
7605
7656
|
const MINIO_DOCKER_NETWORK = process.env.MINIO_DOCKER_NETWORK ?? "keystroke";
|
|
7606
7657
|
function createDockerRuntime(options = {}) {
|
|
7607
7658
|
const docker = options.docker ?? new Docker();
|
|
7608
|
-
return {
|
|
7609
|
-
|
|
7610
|
-
|
|
7611
|
-
|
|
7612
|
-
|
|
7613
|
-
|
|
7614
|
-
|
|
7615
|
-
|
|
7616
|
-
|
|
7617
|
-
|
|
7618
|
-
|
|
7619
|
-
|
|
7620
|
-
|
|
7621
|
-
|
|
7622
|
-
|
|
7659
|
+
return {
|
|
7660
|
+
async start(input) {
|
|
7661
|
+
if (input.projects.length === 0) throw new Error("Docker org runtime requires at least one project deploy");
|
|
7662
|
+
let launch = resolveRuntimeLaunch(options, input.projects.map((project) => ({
|
|
7663
|
+
projectId: project.projectId,
|
|
7664
|
+
artifactStorageKey: project.artifactStorageKey
|
|
7665
|
+
})), input.database, input.env);
|
|
7666
|
+
if (options.workspacesMount) {
|
|
7667
|
+
const { hostPath, containerPath } = options.workspacesMount;
|
|
7668
|
+
await mkdir(hostPath, { recursive: true });
|
|
7669
|
+
launch = {
|
|
7670
|
+
...launch,
|
|
7671
|
+
env: {
|
|
7672
|
+
...launch.env,
|
|
7673
|
+
KEYSTROKE_WORKSPACES_ROOT: containerPath
|
|
7674
|
+
}
|
|
7675
|
+
};
|
|
7676
|
+
}
|
|
7677
|
+
await ensureImage(docker, launch.image);
|
|
7678
|
+
await removeExistingContainer(docker, input.organizationId);
|
|
7679
|
+
const binds = [...options.workspacesMount ? [`${options.workspacesMount.hostPath}:${options.workspacesMount.containerPath}`] : [], ...options.extraBinds ?? []];
|
|
7680
|
+
const container = await docker.createContainer({
|
|
7681
|
+
Image: launch.image,
|
|
7682
|
+
name: containerName(input.organizationId),
|
|
7683
|
+
Labels: {
|
|
7684
|
+
"keystroke.organization.id": input.organizationId,
|
|
7685
|
+
"keystroke.project.ids": input.projects.map((project) => project.projectId).join(",")
|
|
7686
|
+
},
|
|
7687
|
+
ExposedPorts: { [`${launch.port}/tcp`]: {} },
|
|
7688
|
+
HostConfig: {
|
|
7689
|
+
ExtraHosts: ["host.docker.internal:host-gateway"],
|
|
7690
|
+
PortBindings: { [`${launch.port}/tcp`]: [{ HostPort: "0" }] },
|
|
7691
|
+
...binds.length > 0 ? { Binds: binds } : {}
|
|
7692
|
+
},
|
|
7693
|
+
NetworkingConfig: { EndpointsConfig: { [MINIO_DOCKER_NETWORK]: {} } },
|
|
7694
|
+
Env: formatDockerEnv(launch.env)
|
|
7695
|
+
});
|
|
7696
|
+
await container.start();
|
|
7697
|
+
const inspect = await container.inspect();
|
|
7698
|
+
const binding = inspect.NetworkSettings.Ports?.[`${launch.port}/tcp`]?.[0];
|
|
7699
|
+
if (!binding?.HostPort) throw new Error("Failed to resolve org container host port");
|
|
7700
|
+
const baseUrl = `http://127.0.0.1:${binding.HostPort}`;
|
|
7701
|
+
await waitForHealth(baseUrl, {
|
|
7702
|
+
fetchImpl: options.fetchImpl,
|
|
7703
|
+
timeoutMs: options.healthTimeoutMs
|
|
7704
|
+
});
|
|
7705
|
+
return {
|
|
7706
|
+
runtimeId: inspect.Id,
|
|
7707
|
+
baseUrl
|
|
7623
7708
|
};
|
|
7709
|
+
},
|
|
7710
|
+
async destroy(input) {
|
|
7711
|
+
try {
|
|
7712
|
+
await docker.getContainer(input.runtimeId).remove({ force: true });
|
|
7713
|
+
} catch {}
|
|
7624
7714
|
}
|
|
7625
|
-
|
|
7626
|
-
await removeExistingContainer(docker, input.organizationId);
|
|
7627
|
-
const container = await docker.createContainer({
|
|
7628
|
-
Image: launch.image,
|
|
7629
|
-
name: containerName(input.organizationId),
|
|
7630
|
-
Labels: {
|
|
7631
|
-
"keystroke.organization.id": input.organizationId,
|
|
7632
|
-
"keystroke.project.ids": input.projects.map((project) => project.projectId).join(",")
|
|
7633
|
-
},
|
|
7634
|
-
ExposedPorts: { [`${launch.port}/tcp`]: {} },
|
|
7635
|
-
HostConfig: {
|
|
7636
|
-
ExtraHosts: ["host.docker.internal:host-gateway"],
|
|
7637
|
-
PortBindings: { [`${launch.port}/tcp`]: [{ HostPort: "0" }] },
|
|
7638
|
-
...options.workspacesMount ? { Binds: [`${options.workspacesMount.hostPath}:${options.workspacesMount.containerPath}`] } : {}
|
|
7639
|
-
},
|
|
7640
|
-
NetworkingConfig: { EndpointsConfig: { [MINIO_DOCKER_NETWORK]: {} } },
|
|
7641
|
-
Env: formatDockerEnv(launch.env)
|
|
7642
|
-
});
|
|
7643
|
-
await container.start();
|
|
7644
|
-
const inspect = await container.inspect();
|
|
7645
|
-
const binding = inspect.NetworkSettings.Ports?.[`${launch.port}/tcp`]?.[0];
|
|
7646
|
-
if (!binding?.HostPort) throw new Error("Failed to resolve org container host port");
|
|
7647
|
-
const baseUrl = `http://127.0.0.1:${binding.HostPort}`;
|
|
7648
|
-
await waitForHealth(baseUrl, {
|
|
7649
|
-
fetchImpl: options.fetchImpl,
|
|
7650
|
-
timeoutMs: options.healthTimeoutMs
|
|
7651
|
-
});
|
|
7652
|
-
return {
|
|
7653
|
-
runtimeId: inspect.Id,
|
|
7654
|
-
baseUrl
|
|
7655
|
-
};
|
|
7656
|
-
} };
|
|
7715
|
+
};
|
|
7657
7716
|
}
|
|
7658
7717
|
function containerName(organizationId) {
|
|
7659
7718
|
return `keystroke-org-${organizationId}`;
|