@prisma/compute-sdk 0.1.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.
Files changed (52) hide show
  1. package/README.md +638 -0
  2. package/dist/api-client.d.ts +181 -0
  3. package/dist/api-client.d.ts.map +1 -0
  4. package/dist/api-client.js +193 -0
  5. package/dist/api-client.js.map +1 -0
  6. package/dist/archive.d.ts +11 -0
  7. package/dist/archive.d.ts.map +1 -0
  8. package/dist/archive.js +80 -0
  9. package/dist/archive.js.map +1 -0
  10. package/dist/build-strategy.d.ts +34 -0
  11. package/dist/build-strategy.d.ts.map +1 -0
  12. package/dist/build-strategy.js +33 -0
  13. package/dist/build-strategy.js.map +1 -0
  14. package/dist/bun-build.d.ts +14 -0
  15. package/dist/bun-build.d.ts.map +1 -0
  16. package/dist/bun-build.js +128 -0
  17. package/dist/bun-build.js.map +1 -0
  18. package/dist/callbacks.d.ts +44 -0
  19. package/dist/callbacks.d.ts.map +1 -0
  20. package/dist/callbacks.js +2 -0
  21. package/dist/callbacks.js.map +1 -0
  22. package/dist/compute-client.d.ts +136 -0
  23. package/dist/compute-client.d.ts.map +1 -0
  24. package/dist/compute-client.js +562 -0
  25. package/dist/compute-client.js.map +1 -0
  26. package/dist/errors.d.ts +101 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +56 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/index.d.ts +12 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +10 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/polling.d.ts +22 -0
  35. package/dist/polling.d.ts.map +1 -0
  36. package/dist/polling.js +64 -0
  37. package/dist/polling.js.map +1 -0
  38. package/dist/types.d.ts +46 -0
  39. package/dist/types.d.ts.map +1 -0
  40. package/dist/types.js +17 -0
  41. package/dist/types.js.map +1 -0
  42. package/package.json +43 -0
  43. package/src/api-client.ts +330 -0
  44. package/src/archive.ts +111 -0
  45. package/src/build-strategy.ts +66 -0
  46. package/src/bun-build.ts +184 -0
  47. package/src/callbacks.ts +50 -0
  48. package/src/compute-client.ts +985 -0
  49. package/src/errors.ts +148 -0
  50. package/src/index.ts +75 -0
  51. package/src/polling.ts +108 -0
  52. package/src/types.ts +65 -0
@@ -0,0 +1,128 @@
1
+ import { execFile } from "node:child_process";
2
+ import { access, mkdir, mkdtemp, readdir, readFile, rm, } from "node:fs/promises";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ /**
6
+ * Build strategy that runs `bun build` CLI and manages its own temp output directory.
7
+ * Owns entrypoint resolution from explicit arg or package.json main field.
8
+ */
9
+ export class BunBuild {
10
+ #appPath;
11
+ #entrypoint;
12
+ constructor(options) {
13
+ this.#appPath = options.appPath;
14
+ this.#entrypoint = options.entrypoint;
15
+ }
16
+ async execute() {
17
+ const entrypoint = await this.#resolveEntrypoint();
18
+ const outDir = await mkdtemp(path.join(os.tmpdir(), "compute-build-"));
19
+ const bundleDir = path.join(outDir, "bundle");
20
+ await mkdir(bundleDir, { recursive: true });
21
+ const absoluteEntrypoint = path.join(this.#appPath, entrypoint);
22
+ try {
23
+ await this.#runBuild(absoluteEntrypoint, bundleDir);
24
+ }
25
+ catch (error) {
26
+ await rm(outDir, { recursive: true, force: true });
27
+ throw error;
28
+ }
29
+ const outputFiles = await readdir(bundleDir);
30
+ const jsOutputs = outputFiles
31
+ .filter((f) => f.endsWith(".js"))
32
+ .map((f) => path.join(bundleDir, f));
33
+ const runtimeEntrypoint = this.#selectRuntimeEntrypoint(jsOutputs, bundleDir, absoluteEntrypoint);
34
+ return {
35
+ directory: bundleDir,
36
+ entrypoint: runtimeEntrypoint,
37
+ cleanup: () => rm(outDir, { recursive: true, force: true }),
38
+ };
39
+ }
40
+ async #resolveEntrypoint() {
41
+ const candidate = this.#entrypoint ?? (await this.#readPackageJsonMain());
42
+ if (!candidate) {
43
+ throw new Error("Entrypoint is required. Pass --entrypoint or define package.json main");
44
+ }
45
+ if (path.isAbsolute(candidate)) {
46
+ throw new Error("Entrypoint must be a relative path");
47
+ }
48
+ const normalized = path.normalize(candidate);
49
+ if (normalized.startsWith("..") ||
50
+ path.isAbsolute(normalized) ||
51
+ normalized.includes(`${path.sep}..${path.sep}`)) {
52
+ throw new Error("Entrypoint must not escape the app directory");
53
+ }
54
+ const entrypointPath = path.join(this.#appPath, normalized);
55
+ try {
56
+ await access(entrypointPath);
57
+ }
58
+ catch {
59
+ throw new Error(`Entrypoint file does not exist: ${entrypointPath}`);
60
+ }
61
+ return normalized.split(path.sep).join("/");
62
+ }
63
+ async #readPackageJsonMain() {
64
+ const packageJsonPath = path.join(this.#appPath, "package.json");
65
+ let content;
66
+ try {
67
+ content = await readFile(packageJsonPath, "utf-8");
68
+ }
69
+ catch (error) {
70
+ if (error instanceof Error &&
71
+ "code" in error &&
72
+ error.code === "ENOENT") {
73
+ return undefined;
74
+ }
75
+ throw new Error(`Failed to read ${packageJsonPath}: ${error instanceof Error ? error.message : String(error)}`);
76
+ }
77
+ let parsed;
78
+ try {
79
+ parsed = JSON.parse(content);
80
+ }
81
+ catch (error) {
82
+ throw new Error(`Failed to parse ${packageJsonPath}: ${error instanceof Error ? error.message : String(error)}`);
83
+ }
84
+ return typeof parsed.main === "string" ? parsed.main : undefined;
85
+ }
86
+ #runBuild(absoluteEntrypoint, bundleDir) {
87
+ return new Promise((resolve, reject) => {
88
+ execFile("bun", [
89
+ "build",
90
+ absoluteEntrypoint,
91
+ "--outdir",
92
+ bundleDir,
93
+ "--target",
94
+ "bun",
95
+ "--sourcemap=external",
96
+ ], (error, _stdout, stderr) => {
97
+ if (error) {
98
+ if ("code" in error && error.code === "ENOENT") {
99
+ reject(new Error("Bun is required to build the application but was not found. Install it from https://bun.sh"));
100
+ return;
101
+ }
102
+ const message = stderr.trim() || error.message;
103
+ reject(new Error(`Bun build failed:\n${message}`));
104
+ return;
105
+ }
106
+ resolve();
107
+ });
108
+ });
109
+ }
110
+ #selectRuntimeEntrypoint(outputPaths, bundleDir, absoluteEntrypoint) {
111
+ const jsOutputs = outputPaths.filter((output) => output.endsWith(".js"));
112
+ if (jsOutputs.length === 0) {
113
+ throw new Error("Bun build produced no JavaScript output");
114
+ }
115
+ const expectedBasename = `${path.basename(absoluteEntrypoint, path.extname(absoluteEntrypoint))}.js`;
116
+ const matchingByName = jsOutputs.find((output) => path.basename(output) === expectedBasename);
117
+ const selected = matchingByName ?? jsOutputs[0];
118
+ if (!selected) {
119
+ throw new Error("Unable to determine built entrypoint");
120
+ }
121
+ const relative = path.relative(bundleDir, selected);
122
+ if (relative.startsWith("..") || path.isAbsolute(relative)) {
123
+ throw new Error("Built entrypoint is outside the bundle directory");
124
+ }
125
+ return relative.split(path.sep).join("/");
126
+ }
127
+ }
128
+ //# sourceMappingURL=bun-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bun-build.js","sourceRoot":"","sources":["../src/bun-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { BuildArtifact } from "./build-strategy.ts";
2
+ import type { ProjectInfo, RegionInfo, ServiceInfo, VersionInfo } from "./types.ts";
3
+ export interface DeployProgress {
4
+ onBuildStart?(): void;
5
+ onBuildComplete?(artifact: BuildArtifact): void;
6
+ onArchiveCreating?(): void;
7
+ onArchiveReady?(sizeBytes: number): void;
8
+ onVersionCreated?(versionId: string): void;
9
+ onUploadStart?(): void;
10
+ onUploadComplete?(): void;
11
+ onStartRequested?(): void;
12
+ onStatusChange?(status: string): void;
13
+ onRunning?(deploymentUrl: string): void;
14
+ }
15
+ export interface DeployInteraction {
16
+ selectProject?(projects: ProjectInfo[]): Promise<string>;
17
+ selectService?(services: ServiceInfo[]): Promise<string | null>;
18
+ provideServiceName?(): Promise<string>;
19
+ selectRegion?(regions: RegionInfo[]): Promise<string>;
20
+ }
21
+ export interface UpdateEnvProgress {
22
+ onVersionCreated?(versionId: string): void;
23
+ onStartRequested?(): void;
24
+ onStatusChange?(status: string): void;
25
+ onRunning?(deploymentUrl: string): void;
26
+ }
27
+ export interface DestroyVersionInteraction {
28
+ selectVersion?(versions: VersionInfo[]): Promise<string>;
29
+ }
30
+ export interface DestroyVersionProgress {
31
+ onStopRequested?(versionId: string): void;
32
+ onStopped?(versionId: string): void;
33
+ onDeleted?(versionId: string): void;
34
+ }
35
+ export interface DestroyServiceProgress {
36
+ onStoppingVersions?(versionIds: string[]): void;
37
+ onVersionStopped?(versionId: string): void;
38
+ onAllVersionsStopped?(): void;
39
+ onDeletingVersions?(versionIds: string[]): void;
40
+ onVersionDeleted?(versionId: string): void;
41
+ onAllVersionsDeleted?(): void;
42
+ onServiceDeleted?(serviceId: string): void;
43
+ }
44
+ //# sourceMappingURL=callbacks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbacks.d.ts","sourceRoot":"","sources":["../src/callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,IAAI,IAAI,CAAC;IACtB,eAAe,CAAC,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAChD,iBAAiB,CAAC,IAAI,IAAI,CAAC;IAC3B,cAAc,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,aAAa,CAAC,IAAI,IAAI,CAAC;IACvB,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAC1B,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAC1B,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,aAAa,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChE,kBAAkB,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,YAAY,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD;AACD,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAC1B,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AACD,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,SAAS,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AACD,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChD,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,oBAAoB,CAAC,IAAI,IAAI,CAAC;IAC9B,kBAAkB,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChD,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,oBAAoB,CAAC,IAAI,IAAI,CAAC;IAC9B,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=callbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../src/callbacks.ts"],"names":[],"mappings":""}
@@ -0,0 +1,136 @@
1
+ import type { ManagementApiClient } from "@prisma/management-api-sdk";
2
+ import { Result } from "better-result";
3
+ import type { BuildStrategy } from "./build-strategy.ts";
4
+ import type { DeployInteraction, DeployProgress, DestroyServiceProgress, DestroyVersionInteraction, DestroyVersionProgress, UpdateEnvProgress } from "./callbacks.ts";
5
+ import type { ComputeError } from "./errors.ts";
6
+ import type { PortMapping, ProjectInfo, ResolvedConfig, ServiceDetail, ServiceInfo, VersionDetail, VersionInfo } from "./types.ts";
7
+ export interface DeployOptions {
8
+ strategy: BuildStrategy;
9
+ projectId?: string;
10
+ serviceId?: string;
11
+ serviceName?: string;
12
+ region?: string;
13
+ envVars?: Record<string, string>;
14
+ portMapping?: PortMapping;
15
+ timeoutSeconds?: number;
16
+ pollIntervalMs?: number;
17
+ signal?: AbortSignal;
18
+ interaction?: DeployInteraction;
19
+ progress?: DeployProgress;
20
+ }
21
+ export interface UpdateEnvOptions {
22
+ projectId?: string;
23
+ serviceId?: string;
24
+ envVars?: Record<string, string>;
25
+ portMapping?: PortMapping;
26
+ timeoutSeconds?: number;
27
+ pollIntervalMs?: number;
28
+ signal?: AbortSignal;
29
+ interaction?: DeployInteraction;
30
+ progress?: UpdateEnvProgress;
31
+ }
32
+ export interface DestroyVersionOptions {
33
+ versionId?: string;
34
+ serviceId?: string;
35
+ projectId?: string;
36
+ timeoutSeconds?: number;
37
+ pollIntervalMs?: number;
38
+ signal?: AbortSignal;
39
+ interaction?: DestroyVersionInteraction;
40
+ progress?: DestroyVersionProgress;
41
+ }
42
+ export interface DestroyServiceOptions {
43
+ serviceId: string;
44
+ keepService?: boolean;
45
+ timeoutSeconds?: number;
46
+ pollIntervalMs?: number;
47
+ signal?: AbortSignal;
48
+ progress?: DestroyServiceProgress;
49
+ }
50
+ export interface ListServicesOptions {
51
+ projectId: string;
52
+ signal?: AbortSignal;
53
+ }
54
+ export interface CreateServiceOptions {
55
+ projectId: string;
56
+ serviceName: string;
57
+ region: string;
58
+ signal?: AbortSignal;
59
+ }
60
+ export interface ShowServiceOptions {
61
+ serviceId: string;
62
+ signal?: AbortSignal;
63
+ }
64
+ export interface DeleteServiceOptions {
65
+ serviceId: string;
66
+ signal?: AbortSignal;
67
+ }
68
+ export interface ListProjectsOptions {
69
+ signal?: AbortSignal;
70
+ }
71
+ export interface ListVersionsOptions {
72
+ serviceId: string;
73
+ signal?: AbortSignal;
74
+ }
75
+ export interface ShowVersionOptions {
76
+ versionId: string;
77
+ signal?: AbortSignal;
78
+ }
79
+ export interface StartVersionOptions {
80
+ versionId: string;
81
+ signal?: AbortSignal;
82
+ }
83
+ export interface StopVersionOptions {
84
+ versionId: string;
85
+ signal?: AbortSignal;
86
+ }
87
+ export interface DeleteVersionOptions {
88
+ versionId: string;
89
+ signal?: AbortSignal;
90
+ }
91
+ export interface DeployResult {
92
+ projectId: string;
93
+ serviceId: string;
94
+ serviceName: string;
95
+ region: string;
96
+ versionId: string;
97
+ deploymentUrl: string;
98
+ resolvedConfig: ResolvedConfig;
99
+ }
100
+ export interface UpdateEnvResult {
101
+ projectId: string;
102
+ serviceId: string;
103
+ versionId: string;
104
+ deploymentUrl: string;
105
+ resolvedConfig: ResolvedConfig;
106
+ }
107
+ export interface DestroyVersionResult {
108
+ versionId: string;
109
+ previousStatus: string;
110
+ stopped: boolean;
111
+ deleted: boolean;
112
+ }
113
+ export interface DestroyServiceResult {
114
+ serviceId: string;
115
+ deletedVersionIds: string[];
116
+ serviceDeleted: boolean;
117
+ }
118
+ export declare class ComputeClient {
119
+ #private;
120
+ constructor(managementApiClient: ManagementApiClient);
121
+ deploy(options: DeployOptions): Promise<Result<DeployResult, ComputeError>>;
122
+ updateEnv(options: UpdateEnvOptions): Promise<Result<UpdateEnvResult, ComputeError>>;
123
+ destroyVersion(options: DestroyVersionOptions): Promise<Result<DestroyVersionResult, ComputeError>>;
124
+ destroyService(options: DestroyServiceOptions): Promise<Result<DestroyServiceResult, ComputeError>>;
125
+ listProjects(options?: ListProjectsOptions): Promise<Result<ProjectInfo[], ComputeError>>;
126
+ listServices(options: ListServicesOptions): Promise<Result<ServiceInfo[], ComputeError>>;
127
+ createService(options: CreateServiceOptions): Promise<Result<ServiceInfo, ComputeError>>;
128
+ showService(options: ShowServiceOptions): Promise<Result<ServiceDetail, ComputeError>>;
129
+ deleteService(options: DeleteServiceOptions): Promise<Result<void, ComputeError>>;
130
+ listVersions(options: ListVersionsOptions): Promise<Result<VersionInfo[], ComputeError>>;
131
+ showVersion(options: ShowVersionOptions): Promise<Result<VersionDetail, ComputeError>>;
132
+ startVersion(options: StartVersionOptions): Promise<Result<void, ComputeError>>;
133
+ stopVersion(options: StopVersionOptions): Promise<Result<void, ComputeError>>;
134
+ deleteVersion(options: DeleteVersionOptions): Promise<Result<void, ComputeError>>;
135
+ }
136
+ //# sourceMappingURL=compute-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute-client.d.ts","sourceRoot":"","sources":["../src/compute-client.ts"],"names":[],"mappings":"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"}