@prisma/compute-sdk 0.23.0 → 0.25.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.
@@ -0,0 +1,212 @@
1
+ import { access, readdir, readFile, stat } from "node:fs/promises";
2
+ import path from "node:path";
3
+ const SKIPPED_DIRECTORIES = new Set([
4
+ ".git",
5
+ ".next",
6
+ ".nuxt",
7
+ ".output",
8
+ ".prisma",
9
+ ".turbo",
10
+ ".vercel",
11
+ ".wrangler",
12
+ "build",
13
+ "coverage",
14
+ "dist",
15
+ "node_modules",
16
+ "out",
17
+ ]);
18
+ const MAX_SCAN_DEPTH = 6;
19
+ const MAX_SCAN_FILES = 1_000;
20
+ const MAX_TEXT_FILE_BYTES = 1024 * 1024;
21
+ /**
22
+ * Walks `appPath` for a Prisma ORM schema or Prisma Next config and returns
23
+ * the migration command that should run against it. Returns a `null` schema
24
+ * when none is found, and reports a non-Postgres schema under `unsupported`
25
+ * so callers can decide how to surface it.
26
+ */
27
+ export async function detectAppSchema(appPath, signal) {
28
+ const state = {
29
+ filesVisited: 0,
30
+ schemaCandidates: [],
31
+ prismaNextConfigCandidates: [],
32
+ };
33
+ await scanDirectory(appPath, 0, state, signal);
34
+ const prismaNextConfigs = await Promise.all(state.prismaNextConfigCandidates.map((configPath) => classifyPrismaNextConfig(configPath, signal)));
35
+ const supportedPrismaNextConfig = selectPrismaNextConfig(appPath, prismaNextConfigs, "supported");
36
+ const unsupportedPrismaNextConfig = selectPrismaNextConfig(appPath, prismaNextConfigs, "unsupported");
37
+ const selectedPrismaOrmSchema = await selectPrismaOrmSchema(appPath, state.schemaCandidates, signal);
38
+ const schema = supportedPrismaNextConfig
39
+ ? {
40
+ engine: "prisma-next",
41
+ path: supportedPrismaNextConfig.path,
42
+ hasMigrations: false,
43
+ command: "prisma-next-init",
44
+ target: supportedPrismaNextConfig.target,
45
+ }
46
+ : selectedPrismaOrmSchema.schema;
47
+ const unsupported = schema
48
+ ? null
49
+ : unsupportedPrismaNextConfig
50
+ ? {
51
+ engine: "prisma-next",
52
+ path: unsupportedPrismaNextConfig.path,
53
+ target: unsupportedPrismaNextConfig.target,
54
+ }
55
+ : selectedPrismaOrmSchema.unsupported;
56
+ return { schema, unsupported };
57
+ }
58
+ async function scanDirectory(directory, depth, state, signal) {
59
+ signal?.throwIfAborted();
60
+ if (depth > MAX_SCAN_DEPTH || state.filesVisited >= MAX_SCAN_FILES) {
61
+ return;
62
+ }
63
+ let entries;
64
+ try {
65
+ entries = await readdir(directory, { withFileTypes: true });
66
+ }
67
+ catch (error) {
68
+ if (error.code === "ENOENT") {
69
+ return;
70
+ }
71
+ throw error;
72
+ }
73
+ entries.sort((left, right) => left.name.localeCompare(right.name));
74
+ for (const entry of entries) {
75
+ signal?.throwIfAborted();
76
+ if (state.filesVisited >= MAX_SCAN_FILES) {
77
+ return;
78
+ }
79
+ const entryPath = path.join(directory, entry.name);
80
+ if (entry.isDirectory()) {
81
+ if (!SKIPPED_DIRECTORIES.has(entry.name)) {
82
+ await scanDirectory(entryPath, depth + 1, state, signal);
83
+ }
84
+ continue;
85
+ }
86
+ if (!entry.isFile()) {
87
+ continue;
88
+ }
89
+ state.filesVisited += 1;
90
+ if (entry.name === "schema.prisma") {
91
+ state.schemaCandidates.push(entryPath);
92
+ }
93
+ if (isPrismaNextConfigFile(entry.name)) {
94
+ state.prismaNextConfigCandidates.push(entryPath);
95
+ }
96
+ }
97
+ }
98
+ async function selectPrismaOrmSchema(appPath, candidates, signal) {
99
+ const sorted = sortByPreferredRelativePath(appPath, candidates, "schema.prisma");
100
+ for (const schemaPath of sorted) {
101
+ const target = await classifyPrismaOrmSchemaTarget(schemaPath, signal);
102
+ if (target === "postgresql" || target === "unknown") {
103
+ const hasMigrations = await hasMigrationsDirectory(path.dirname(schemaPath), signal);
104
+ return {
105
+ schema: {
106
+ engine: "prisma-orm",
107
+ path: schemaPath,
108
+ hasMigrations,
109
+ command: hasMigrations ? "migrate-deploy" : "db-push",
110
+ target,
111
+ },
112
+ unsupported: null,
113
+ };
114
+ }
115
+ return {
116
+ schema: null,
117
+ unsupported: { engine: "prisma-orm", path: schemaPath, target },
118
+ };
119
+ }
120
+ return { schema: null, unsupported: null };
121
+ }
122
+ function selectPrismaNextConfig(appPath, candidates, mode) {
123
+ const matches = candidates.filter((candidate) => {
124
+ const isSupported = candidate.target === "postgresql" || candidate.target === "unknown";
125
+ return mode === "supported" ? isSupported : !isSupported;
126
+ });
127
+ return (sortByPreferredRelativePath(appPath, matches.map((candidate) => candidate.path), "prisma-next.config.ts")
128
+ .map((candidatePath) => matches.find((candidate) => candidate.path === candidatePath))
129
+ .find((candidate) => Boolean(candidate)) ?? null);
130
+ }
131
+ function sortByPreferredRelativePath(appPath, candidates, preferredRootFile) {
132
+ return candidates
133
+ .map((candidate) => ({
134
+ absolute: candidate,
135
+ relative: path.relative(appPath, candidate) || preferredRootFile,
136
+ }))
137
+ .sort((left, right) => {
138
+ if (left.relative === preferredRootFile)
139
+ return -1;
140
+ if (right.relative === preferredRootFile)
141
+ return 1;
142
+ return (left.relative.length - right.relative.length ||
143
+ left.relative.localeCompare(right.relative));
144
+ })
145
+ .map((candidate) => candidate.absolute);
146
+ }
147
+ async function hasMigrationsDirectory(schemaDirectory, signal) {
148
+ signal?.throwIfAborted();
149
+ const migrationsPath = path.join(schemaDirectory, "migrations");
150
+ try {
151
+ await access(migrationsPath);
152
+ const entries = await readdir(migrationsPath);
153
+ return entries.length > 0;
154
+ }
155
+ catch (error) {
156
+ if (error.code === "ENOENT") {
157
+ return false;
158
+ }
159
+ throw error;
160
+ }
161
+ }
162
+ async function classifyPrismaNextConfig(configPath, signal) {
163
+ const content = await readTextFileIfSmall(configPath, signal);
164
+ if (!content) {
165
+ return { path: configPath, target: "unknown" };
166
+ }
167
+ if (content.includes("@prisma-next/postgres/config")) {
168
+ return { path: configPath, target: "postgresql" };
169
+ }
170
+ if (content.includes("@prisma-next/mongo/config")) {
171
+ return { path: configPath, target: "mongodb" };
172
+ }
173
+ if (content.includes("@prisma-next/sqlite/config")) {
174
+ return { path: configPath, target: "sqlite" };
175
+ }
176
+ return { path: configPath, target: "unknown" };
177
+ }
178
+ async function classifyPrismaOrmSchemaTarget(schemaPath, signal) {
179
+ const content = await readTextFileIfSmall(schemaPath, signal);
180
+ const provider = content?.match(/\bprovider\s*=\s*"([^"]+)"/)?.[1] ?? null;
181
+ switch (provider) {
182
+ case "postgresql":
183
+ return "postgresql";
184
+ case "mongodb":
185
+ return "mongodb";
186
+ case "mysql":
187
+ return "mysql";
188
+ case "sqlite":
189
+ return "sqlite";
190
+ case "sqlserver":
191
+ return "sqlserver";
192
+ case "cockroachdb":
193
+ return "cockroachdb";
194
+ default:
195
+ return "unknown";
196
+ }
197
+ }
198
+ function isPrismaNextConfigFile(fileName) {
199
+ if (!fileName.startsWith("prisma-next.config.")) {
200
+ return false;
201
+ }
202
+ return [".cjs", ".cts", ".js", ".mjs", ".mts", ".ts"].some((extension) => fileName.endsWith(extension));
203
+ }
204
+ async function readTextFileIfSmall(filePath, signal) {
205
+ signal?.throwIfAborted();
206
+ const info = await stat(filePath);
207
+ if (info.size > MAX_TEXT_FILE_BYTES) {
208
+ return null;
209
+ }
210
+ return readFile(filePath, { encoding: "utf8", signal });
211
+ }
212
+ //# sourceMappingURL=detect-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-schema.js","sourceRoot":"","sources":["../src/detect-schema.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export { Err, matchError, matchErrorPartial, Ok, type Result, TaggedError, } from "better-result";
2
+ export type { ApplyMigrationsOptions, ApplyMigrationsResult, } from "./apply-migrations.ts";
3
+ export { applyMigrations } from "./apply-migrations.ts";
2
4
  export { createArchive } from "./archive.ts";
3
5
  export { normalizeArtifactSymlinks } from "./artifact-postprocess.ts";
4
6
  export { AstroBuild } from "./astro-build.ts";
@@ -9,6 +11,8 @@ export { BunBuild } from "./bun-build.ts";
9
11
  export type { DeployInteraction, DeployProgress, DestroyServiceProgress, DestroyVersionInteraction, DestroyVersionProgress, PromoteProgress, UpdateEnvProgress, } from "./callbacks.ts";
10
12
  export type { CreateProjectOptions, CreateServiceOptions, DeleteServiceOptions, DeleteVersionOptions, DeployOptions, DeployResult, DestroyServiceOptions, DestroyServiceResult, DestroyVersionOptions, DestroyVersionResult, ListProjectsOptions, ListServicesOptions, ListVersionsOptions, PromoteOptions, PromoteResult, ShowServiceOptions, ShowVersionOptions, StartVersionOptions, StopVersionOptions, UpdateEnvOptions, UpdateEnvResult, } from "./compute-client.ts";
11
13
  export { ComputeClient } from "./compute-client.ts";
14
+ export type { DetectedSchema, MigrationCommand, SchemaDetection, SchemaEngine, UnsupportedSchema, UnsupportedSchemaTarget, } from "./detect-schema.ts";
15
+ export { detectAppSchema } from "./detect-schema.ts";
12
16
  export type { ApiRequestError, DeployError, DestroyServiceError, DestroyVersionError, PromoteError, UpdateEnvError, VersionOperationError, } from "./errors.ts";
13
17
  export { ApiError, ArtifactError, AuthenticationError, BuildError, CancelledError, DestroyAggregateError, InvalidOptionsError, LogStreamError, MissingArgumentError, NoExistingVersionError, NoVersionsFoundError, TimeoutError, VersionFailedError, } from "./errors.ts";
14
18
  export type { LogRecord, LogStreamOptions, StreamLogsError, StreamRecord, StreamResult, TerminalRecord, } from "./log-stream.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,UAAU,EACV,iBAAiB,EACjB,EAAE,EACF,KAAK,MAAM,EACX,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,UAAU,EACV,iBAAiB,EACjB,EAAE,EACF,KAAK,MAAM,EACX,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // Re-export Result utilities so consumers don't need a direct better-result dependency
2
2
  export { Err, matchError, matchErrorPartial, Ok, TaggedError, } from "better-result";
3
+ export { applyMigrations } from "./apply-migrations.js";
3
4
  export { createArchive } from "./archive.js";
4
5
  export { normalizeArtifactSymlinks } from "./artifact-postprocess.js";
5
6
  export { AstroBuild } from "./astro-build.js";
@@ -7,6 +8,7 @@ export { AutoBuild } from "./auto-build.js";
7
8
  export { PreBuilt } from "./build-strategy.js";
8
9
  export { BunBuild } from "./bun-build.js";
9
10
  export { ComputeClient } from "./compute-client.js";
11
+ export { detectAppSchema } from "./detect-schema.js";
10
12
  export { ApiError, ArtifactError, AuthenticationError, BuildError, CancelledError, DestroyAggregateError, InvalidOptionsError, LogStreamError, MissingArgumentError, NoExistingVersionError, NoVersionsFoundError, TimeoutError, VersionFailedError, } from "./errors.js";
11
13
  export { streamLogs } from "./log-stream.js";
12
14
  export { NextjsBuild } from "./nextjs-build.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EACL,GAAG,EACH,UAAU,EACV,iBAAiB,EACjB,EAAE,EAEF,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAiC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUpD,OAAO,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AASrB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAa/D,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EACL,GAAG,EACH,UAAU,EACV,iBAAiB,EACjB,EAAE,EAEF,WAAW,GACZ,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAiC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUrD,OAAO,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AASrB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAa/D,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/compute-sdk",
3
- "version": "0.23.0",
3
+ "version": "0.25.0",
4
4
  "description": "TypeScript SDK for deploying and managing applications on Prisma Compute",
5
5
  "license": "Apache-2.0",
6
6
  "repository": "prisma/project-compute",