@prisma/compute-sdk 0.2.0 → 0.4.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.
@@ -1,7 +1,7 @@
1
1
  import type { ManagementApiClient, paths } from "@prisma/management-api-sdk";
2
2
  import { Result } from "better-result";
3
- import { ApiError, AuthenticationError } from "./errors.ts";
4
- export type ApiClientError = AuthenticationError | ApiError;
3
+ import { ApiError, AuthenticationError, CancelledError } from "./errors.ts";
4
+ export type ApiClientError = CancelledError | AuthenticationError | ApiError;
5
5
  /**
6
6
  * Lean internal wrapper around ManagementApiClient.
7
7
  *
@@ -25,7 +25,7 @@ export declare class InternalApiClient {
25
25
  name: string;
26
26
  };
27
27
  }[], ApiClientError>>;
28
- getProject(id: string, signal?: AbortSignal): Promise<import("better-result").Ok<{
28
+ createProject(body: CreateProjectBody, signal?: AbortSignal): Promise<import("better-result").Ok<{
29
29
  id: string;
30
30
  type: "project";
31
31
  url: string;
@@ -37,6 +37,99 @@ export declare class InternalApiClient {
37
37
  url: string;
38
38
  name: string;
39
39
  };
40
+ database: {
41
+ id: string;
42
+ type: "database";
43
+ url: string;
44
+ name: string;
45
+ status: "provisioning" | "ready";
46
+ createdAt: string;
47
+ isDefault: boolean;
48
+ defaultConnectionId: string | null;
49
+ connections: {
50
+ id: string;
51
+ type: "connection";
52
+ url: string;
53
+ name: string;
54
+ createdAt: string;
55
+ kind: "postgres" | "accelerate";
56
+ endpoints: {
57
+ direct?: {
58
+ host: string;
59
+ port: number;
60
+ connectionString?: string;
61
+ };
62
+ pooled?: {
63
+ host: string;
64
+ port: number;
65
+ connectionString?: string;
66
+ };
67
+ accelerate?: {
68
+ host: string;
69
+ port: number;
70
+ connectionString?: string;
71
+ };
72
+ };
73
+ directConnection?: {
74
+ host: string;
75
+ pass: string;
76
+ user: string;
77
+ } | null;
78
+ database: {
79
+ id: string;
80
+ url: string;
81
+ name: string;
82
+ };
83
+ }[];
84
+ region: {
85
+ id: string;
86
+ name: string;
87
+ };
88
+ source: {
89
+ type: "empty";
90
+ } | {
91
+ type: "backup";
92
+ databaseId: string;
93
+ backupId: string;
94
+ } | {
95
+ type: "database";
96
+ databaseId: string;
97
+ } | null;
98
+ apiKeys: {
99
+ id: string;
100
+ type: "connection";
101
+ url: string;
102
+ name: string;
103
+ createdAt: string;
104
+ kind: "postgres" | "accelerate";
105
+ endpoints: {
106
+ direct?: {
107
+ host: string;
108
+ port: number;
109
+ };
110
+ pooled?: {
111
+ host: string;
112
+ port: number;
113
+ };
114
+ accelerate?: {
115
+ host: string;
116
+ port: number;
117
+ };
118
+ };
119
+ connectionString: string;
120
+ directConnection?: {
121
+ host: string;
122
+ pass: string;
123
+ user: string;
124
+ } | null;
125
+ }[];
126
+ connectionString: string | null;
127
+ directConnection: {
128
+ host: string;
129
+ pass: string;
130
+ user: string;
131
+ } | null;
132
+ } | null;
40
133
  }, ApiClientError> | import("better-result").Err<{
41
134
  id: string;
42
135
  type: "project";
@@ -49,6 +142,124 @@ export declare class InternalApiClient {
49
142
  url: string;
50
143
  name: string;
51
144
  };
145
+ database: {
146
+ id: string;
147
+ type: "database";
148
+ url: string;
149
+ name: string;
150
+ status: "provisioning" | "ready";
151
+ createdAt: string;
152
+ isDefault: boolean;
153
+ defaultConnectionId: string | null;
154
+ connections: {
155
+ id: string;
156
+ type: "connection";
157
+ url: string;
158
+ name: string;
159
+ createdAt: string;
160
+ kind: "postgres" | "accelerate";
161
+ endpoints: {
162
+ direct?: {
163
+ host: string;
164
+ port: number;
165
+ connectionString?: string;
166
+ };
167
+ pooled?: {
168
+ host: string;
169
+ port: number;
170
+ connectionString?: string;
171
+ };
172
+ accelerate?: {
173
+ host: string;
174
+ port: number;
175
+ connectionString?: string;
176
+ };
177
+ };
178
+ directConnection?: {
179
+ host: string;
180
+ pass: string;
181
+ user: string;
182
+ } | null;
183
+ database: {
184
+ id: string;
185
+ url: string;
186
+ name: string;
187
+ };
188
+ }[];
189
+ region: {
190
+ id: string;
191
+ name: string;
192
+ };
193
+ source: {
194
+ type: "empty";
195
+ } | {
196
+ type: "backup";
197
+ databaseId: string;
198
+ backupId: string;
199
+ } | {
200
+ type: "database";
201
+ databaseId: string;
202
+ } | null;
203
+ apiKeys: {
204
+ id: string;
205
+ type: "connection";
206
+ url: string;
207
+ name: string;
208
+ createdAt: string;
209
+ kind: "postgres" | "accelerate";
210
+ endpoints: {
211
+ direct?: {
212
+ host: string;
213
+ port: number;
214
+ };
215
+ pooled?: {
216
+ host: string;
217
+ port: number;
218
+ };
219
+ accelerate?: {
220
+ host: string;
221
+ port: number;
222
+ };
223
+ };
224
+ connectionString: string;
225
+ directConnection?: {
226
+ host: string;
227
+ pass: string;
228
+ user: string;
229
+ } | null;
230
+ }[];
231
+ connectionString: string | null;
232
+ directConnection: {
233
+ host: string;
234
+ pass: string;
235
+ user: string;
236
+ } | null;
237
+ } | null;
238
+ }, ApiClientError>>;
239
+ getProject(id: string, signal?: AbortSignal): Promise<import("better-result").Err<{
240
+ id: string;
241
+ type: "project";
242
+ url: string;
243
+ name: string;
244
+ createdAt: string;
245
+ defaultRegion: string | null;
246
+ workspace: {
247
+ id: string;
248
+ url: string;
249
+ name: string;
250
+ };
251
+ }, ApiClientError> | import("better-result").Ok<{
252
+ id: string;
253
+ type: "project";
254
+ url: string;
255
+ name: string;
256
+ createdAt: string;
257
+ defaultRegion: string | null;
258
+ workspace: {
259
+ id: string;
260
+ url: string;
261
+ name: string;
262
+ };
52
263
  }, ApiClientError>>;
53
264
  listProjectServices(projectId: string, signal?: AbortSignal): Promise<Result<{
54
265
  id: string;
@@ -61,6 +272,7 @@ export declare class InternalApiClient {
61
272
  };
62
273
  projectId: string;
63
274
  latestVersionId: string | null;
275
+ serviceEndpointDomain: string;
64
276
  createdAt: string;
65
277
  }[], ApiClientError>>;
66
278
  createProjectService(projectId: string, body: CreateProjectServiceBody, signal?: AbortSignal): Promise<import("better-result").Err<{
@@ -74,6 +286,7 @@ export declare class InternalApiClient {
74
286
  };
75
287
  projectId: string;
76
288
  latestVersionId: string | null;
289
+ serviceEndpointDomain: string;
77
290
  createdAt: string;
78
291
  }, ApiClientError> | import("better-result").Ok<{
79
292
  id: string;
@@ -86,6 +299,7 @@ export declare class InternalApiClient {
86
299
  };
87
300
  projectId: string;
88
301
  latestVersionId: string | null;
302
+ serviceEndpointDomain: string;
89
303
  createdAt: string;
90
304
  }, ApiClientError>>;
91
305
  getService(computeServiceId: string, signal?: AbortSignal): Promise<import("better-result").Err<{
@@ -99,6 +313,7 @@ export declare class InternalApiClient {
99
313
  };
100
314
  projectId: string;
101
315
  latestVersionId: string | null;
316
+ serviceEndpointDomain: string;
102
317
  createdAt: string;
103
318
  }, ApiClientError> | import("better-result").Ok<{
104
319
  id: string;
@@ -111,6 +326,7 @@ export declare class InternalApiClient {
111
326
  };
112
327
  projectId: string;
113
328
  latestVersionId: string | null;
329
+ serviceEndpointDomain: string;
114
330
  createdAt: string;
115
331
  }, ApiClientError>>;
116
332
  deleteService(computeServiceId: string, signal?: AbortSignal): Promise<Result<void, ApiClientError>>;
@@ -144,6 +360,9 @@ export declare class InternalApiClient {
144
360
  envVars?: {
145
361
  [key: string]: string;
146
362
  };
363
+ portMapping?: {
364
+ http?: number;
365
+ };
147
366
  createdAt: string;
148
367
  }, ApiClientError> | import("better-result").Ok<{
149
368
  id: string;
@@ -155,6 +374,9 @@ export declare class InternalApiClient {
155
374
  envVars?: {
156
375
  [key: string]: string;
157
376
  };
377
+ portMapping?: {
378
+ http?: number;
379
+ };
158
380
  createdAt: string;
159
381
  }, ApiClientError>>;
160
382
  startVersion(versionId: string, signal?: AbortSignal): Promise<import("better-result").Err<{
@@ -165,6 +387,10 @@ export declare class InternalApiClient {
165
387
  stopVersion(versionId: string, signal?: AbortSignal): Promise<Result<void, ApiClientError>>;
166
388
  deleteVersion(versionId: string, signal?: AbortSignal): Promise<Result<void, ApiClientError>>;
167
389
  }
390
+ type SdkCreateProjectBody = NonNullable<paths["/v1/projects"]["post"]["requestBody"]>["content"]["application/json"];
391
+ type CreateProjectBody = Omit<SdkCreateProjectBody, "region"> & {
392
+ region?: string;
393
+ };
168
394
  type SdkCreateProjectServiceBody = NonNullable<paths["/v1/projects/{projectId}/compute-services"]["post"]["requestBody"]>["content"]["application/json"];
169
395
  type CreateProjectServiceBody = Omit<SdkCreateProjectServiceBody, "regionId"> & {
170
396
  regionId?: string;
@@ -173,7 +399,6 @@ export type CreateServiceVersionBody = NonNullable<paths["/v1/compute-services/{
173
399
  /** Extract the upload URL from a version creation response. */
174
400
  export declare function readUploadUrl(data: {
175
401
  uploadUrl?: string | null;
176
- artifactUploadUrl?: string | null;
177
402
  }): string | null;
178
403
  /** Normalize a preview domain to a clickable https URL. */
179
404
  export declare function toDeploymentUrl(value: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,QAAQ,CAAC;AAE5D;;;;;;GAMG;AACH,qBAAa,iBAAiB;;gBAGhB,MAAM,EAAE,mBAAmB;IAIjC,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;;;;IAWjC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;IAU3C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;;;;IAW3D,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,wBAAwB,EAC9B,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;IAYhB,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;IAUzD,aAAa,CACjB,gBAAgB,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IASlC,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;;;;;;;IAclE,oBAAoB,CACxB,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,wBAAwB,EAC/B,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;;;;IAYhB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;IAUlD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;;;;;IAUpD,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IASlC,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;CAiEzC;AAMD,KAAK,2BAA2B,GAAG,WAAW,CAC5C,KAAK,CAAC,2CAA2C,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAC1E,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAEjC,KAAK,wBAAwB,GAAG,IAAI,CAClC,2BAA2B,EAC3B,UAAU,CACX,GAAG;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAChD,KAAK,CAAC,kDAAkD,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CACjF,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAoEjC,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,GAAG,MAAM,GAAG,IAAI,CAWhB;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrD"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Result } from "better-result";
2
- import { ApiError, AuthenticationError } from "./errors.js";
2
+ import { ApiError, AuthenticationError, CancelledError } from "./errors.js";
3
3
  /**
4
4
  * Lean internal wrapper around ManagementApiClient.
5
5
  *
@@ -16,38 +16,44 @@ export class InternalApiClient {
16
16
  return this.#requestPaginated((cursor) => this.#client.GET("/v1/projects", {
17
17
  params: { query: cursor ? { cursor } : {} },
18
18
  signal,
19
- }), "/v1/projects");
19
+ }), "/v1/projects", signal);
20
+ }
21
+ async createProject(body, signal) {
22
+ return this.#request(this.#client.POST("/v1/projects", {
23
+ body: body,
24
+ signal,
25
+ }), "/v1/projects", signal).then((r) => r.map((body) => body.data));
20
26
  }
21
27
  async getProject(id, signal) {
22
28
  return this.#request(this.#client.GET("/v1/projects/{id}", {
23
29
  params: { path: { id } },
24
30
  signal,
25
- }), "/v1/projects/{id}").then((r) => r.map((body) => body.data));
31
+ }), "/v1/projects/{id}", signal).then((r) => r.map((body) => body.data));
26
32
  }
27
33
  async listProjectServices(projectId, signal) {
28
34
  return this.#requestPaginated((cursor) => this.#client.GET("/v1/projects/{projectId}/compute-services", {
29
35
  params: { path: { projectId }, query: cursor ? { cursor } : {} },
30
36
  signal,
31
- }), "/v1/projects/{projectId}/compute-services");
37
+ }), "/v1/projects/{projectId}/compute-services", signal);
32
38
  }
33
39
  async createProjectService(projectId, body, signal) {
34
40
  return this.#request(this.#client.POST("/v1/projects/{projectId}/compute-services", {
35
41
  params: { path: { projectId } },
36
42
  body: body,
37
43
  signal,
38
- }), "/v1/projects/{projectId}/compute-services").then((r) => r.map((body) => body.data));
44
+ }), "/v1/projects/{projectId}/compute-services", signal).then((r) => r.map((body) => body.data));
39
45
  }
40
46
  async getService(computeServiceId, signal) {
41
47
  return this.#request(this.#client.GET("/v1/compute-services/{computeServiceId}", {
42
48
  params: { path: { computeServiceId } },
43
49
  signal,
44
- }), "/v1/compute-services/{computeServiceId}").then((r) => r.map((body) => body.data));
50
+ }), "/v1/compute-services/{computeServiceId}", signal).then((r) => r.map((body) => body.data));
45
51
  }
46
52
  async deleteService(computeServiceId, signal) {
47
53
  return this.#unwrapVoid(this.#client.DELETE("/v1/compute-services/{computeServiceId}", {
48
54
  params: { path: { computeServiceId } },
49
55
  signal,
50
- }));
56
+ }), signal);
51
57
  }
52
58
  async listServiceVersions(computeServiceId, signal) {
53
59
  return this.#requestPaginated((cursor) => this.#client.GET("/v1/compute-services/{computeServiceId}/versions", {
@@ -56,55 +62,61 @@ export class InternalApiClient {
56
62
  query: cursor ? { cursor } : {},
57
63
  },
58
64
  signal,
59
- }), "/v1/compute-services/{computeServiceId}/versions");
65
+ }), "/v1/compute-services/{computeServiceId}/versions", signal);
60
66
  }
61
67
  async createServiceVersion(computeServiceId, body, signal) {
62
68
  return this.#request(this.#client.POST("/v1/compute-services/{computeServiceId}/versions", {
63
69
  params: { path: { computeServiceId } },
64
70
  body,
65
71
  signal,
66
- }), "/v1/compute-services/{computeServiceId}/versions").then((r) => r.map((body) => body.data));
72
+ }), "/v1/compute-services/{computeServiceId}/versions", signal).then((r) => r.map((body) => body.data));
67
73
  }
68
74
  async getVersion(versionId, signal) {
69
75
  return this.#request(this.#client.GET("/v1/compute-services/versions/{versionId}", {
70
76
  params: { path: { versionId } },
71
77
  signal,
72
- }), "/v1/compute-services/versions/{versionId}").then((r) => r.map((body) => body.data));
78
+ }), "/v1/compute-services/versions/{versionId}", signal).then((r) => r.map((body) => body.data));
73
79
  }
74
80
  async startVersion(versionId, signal) {
75
81
  return this.#request(this.#client.POST("/v1/compute-services/versions/{versionId}/start", {
76
82
  params: { path: { versionId } },
77
83
  signal,
78
- }), "/v1/compute-services/versions/{versionId}/start").then((r) => r.map((body) => body.data));
84
+ }), "/v1/compute-services/versions/{versionId}/start", signal).then((r) => r.map((body) => body.data));
79
85
  }
80
86
  async stopVersion(versionId, signal) {
81
87
  return this.#unwrapVoid(this.#client.POST("/v1/compute-services/versions/{versionId}/stop", {
82
88
  params: { path: { versionId } },
83
89
  signal,
84
- }));
90
+ }), signal);
85
91
  }
86
92
  async deleteVersion(versionId, signal) {
87
93
  return this.#unwrapVoid(this.#client.DELETE("/v1/compute-services/versions/{versionId}", {
88
94
  params: { path: { versionId } },
89
95
  signal,
90
- }));
96
+ }), signal);
91
97
  }
92
- async #request(request, endpoint) {
93
- const result = await request;
98
+ async #request(request, endpoint, signal) {
99
+ let result;
100
+ try {
101
+ result = await request;
102
+ }
103
+ catch (error) {
104
+ return Result.err(parseRequestError(error, undefined, signal));
105
+ }
94
106
  if (result.error) {
95
- return Result.err(parseApiError(result.error, result.response));
107
+ return Result.err(parseRequestError(result.error, result.response, signal));
96
108
  }
97
109
  const body = result.data;
98
110
  if (body == null) {
99
- return Result.err(parseApiError(undefined, undefined, `Management API returned an empty response body for ${endpoint}`));
111
+ return Result.err(parseRequestError(undefined, undefined, signal, `Management API returned an empty response body for ${endpoint}`));
100
112
  }
101
113
  return Result.ok(body);
102
114
  }
103
- async #requestPaginated(makeRequest, endpoint) {
115
+ async #requestPaginated(makeRequest, endpoint, signal) {
104
116
  const allItems = [];
105
117
  let cursor;
106
118
  for (;;) {
107
- const result = await this.#request(makeRequest(cursor), endpoint);
119
+ const result = await this.#request(makeRequest(cursor), endpoint, signal);
108
120
  if (result.isErr())
109
121
  return result;
110
122
  allItems.push(...result.value.data);
@@ -115,10 +127,16 @@ export class InternalApiClient {
115
127
  }
116
128
  return Result.ok(allItems);
117
129
  }
118
- async #unwrapVoid(request) {
119
- const result = await request;
130
+ async #unwrapVoid(request, signal) {
131
+ let result;
132
+ try {
133
+ result = await request;
134
+ }
135
+ catch (error) {
136
+ return Result.err(parseRequestError(error, undefined, signal));
137
+ }
120
138
  if (result.error) {
121
- return Result.err(parseApiError(result.error, result.response));
139
+ return Result.err(parseRequestError(result.error, result.response, signal));
122
140
  }
123
141
  return Result.ok(undefined);
124
142
  }
@@ -168,15 +186,17 @@ function parseApiError(error, response, fallbackMessage) {
168
186
  traceHeaders,
169
187
  });
170
188
  }
189
+ function parseRequestError(error, response, signal, fallbackMessage) {
190
+ if (signal?.aborted) {
191
+ return new CancelledError();
192
+ }
193
+ return parseApiError(error, response, fallbackMessage);
194
+ }
171
195
  /** Extract the upload URL from a version creation response. */
172
196
  export function readUploadUrl(data) {
173
197
  if (typeof data.uploadUrl === "string" && data.uploadUrl.length > 0) {
174
198
  return data.uploadUrl;
175
199
  }
176
- if (typeof data.artifactUploadUrl === "string" &&
177
- data.artifactUploadUrl.length > 0) {
178
- return data.artifactUploadUrl;
179
- }
180
200
  return null;
181
201
  }
182
202
  /** Normalize a preview domain to a clickable https URL. */
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAsBrB"}
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAuBrB"}
package/dist/archive.js CHANGED
@@ -14,8 +14,9 @@ const COMPUTE_MANIFEST_VERSION = "1";
14
14
  */
15
15
  export async function createArchive(directory, entrypoint) {
16
16
  const packer = pack();
17
+ const rootPath = path.resolve(directory);
17
18
  // Walk the directory and add all files
18
- await addDirectory(packer, directory, "bundle");
19
+ await addDirectory(packer, rootPath, rootPath, "bundle");
19
20
  // Inject the manifest as a synthetic entry
20
21
  const manifest = JSON.stringify({
21
22
  manifestVersion: COMPUTE_MANIFEST_VERSION,
@@ -27,34 +28,36 @@ export async function createArchive(directory, entrypoint) {
27
28
  // Pipe through gzip and collect into buffer
28
29
  return await collectGzipped(packer);
29
30
  }
30
- async function addDirectory(packer, fsPath, tarPrefix) {
31
- const entries = await readdir(fsPath, { withFileTypes: true });
31
+ async function addDirectory(packer, rootPath, fsPath, tarPrefix) {
32
+ const directoryPath = resolvePathWithinRoot(rootPath, fsPath);
33
+ const entries = await readdir(directoryPath, { withFileTypes: true });
32
34
  for (const entry of entries) {
33
- const fullPath = path.join(fsPath, entry.name);
35
+ const fullPath = path.join(directoryPath, entry.name);
34
36
  const tarPath = `${tarPrefix}/${entry.name}`;
35
37
  if (entry.isSymbolicLink()) {
36
38
  // Dereference symlinks: stat the target and add accordingly
37
39
  const target = await readlink(fullPath);
38
- const resolvedPath = path.resolve(fsPath, target);
40
+ const resolvedPath = resolvePathWithinRoot(rootPath, path.resolve(directoryPath, target));
39
41
  const resolvedStat = await stat(resolvedPath);
40
42
  if (resolvedStat.isDirectory()) {
41
- await addDirectory(packer, resolvedPath, tarPath);
43
+ await addDirectory(packer, rootPath, resolvedPath, tarPath);
42
44
  }
43
45
  else if (resolvedStat.isFile()) {
44
- await addFile(packer, resolvedPath, tarPath, resolvedStat);
46
+ await addFile(packer, rootPath, resolvedPath, tarPath, resolvedStat);
45
47
  }
46
48
  }
47
49
  else if (entry.isDirectory()) {
48
- await addDirectory(packer, fullPath, tarPath);
50
+ await addDirectory(packer, rootPath, fullPath, tarPath);
49
51
  }
50
52
  else if (entry.isFile()) {
51
53
  const fileStat = await lstat(fullPath);
52
- await addFile(packer, fullPath, tarPath, fileStat);
54
+ await addFile(packer, rootPath, fullPath, tarPath, fileStat);
53
55
  }
54
56
  }
55
57
  }
56
- async function addFile(packer, fsPath, tarPath, fileStat) {
57
- const content = await readFile(fsPath);
58
+ async function addFile(packer, rootPath, fsPath, tarPath, fileStat) {
59
+ const filePath = resolvePathWithinRoot(rootPath, fsPath);
60
+ const content = await readFile(filePath);
58
61
  packer.entry({
59
62
  name: tarPath,
60
63
  size: content.length,
@@ -62,6 +65,17 @@ async function addFile(packer, fsPath, tarPath, fileStat) {
62
65
  mtime: fileStat.mtime,
63
66
  }, content);
64
67
  }
68
+ function resolvePathWithinRoot(rootPath, fsPath) {
69
+ const normalizedRootPath = path.resolve(rootPath);
70
+ const resolvedPath = path.resolve(fsPath);
71
+ const relativePath = path.relative(normalizedRootPath, resolvedPath);
72
+ if (relativePath === ".." ||
73
+ relativePath.startsWith(`..${path.sep}`) ||
74
+ path.isAbsolute(relativePath)) {
75
+ throw new Error(`Symlink target escapes archive root: ${resolvedPath}`);
76
+ }
77
+ return resolvedPath;
78
+ }
65
79
  function collectGzipped(packer) {
66
80
  return new Promise((resolve, reject) => {
67
81
  const chunks = [];
@@ -1 +1 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAa,IAAI,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,wBAAwB,GAAG,GAAY,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,UAAkB;IAElB,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEzC,uCAAuC;IACvC,MAAM,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEzD,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC7B;QACE,eAAe,EAAE,wBAAwB;QACzC,UAAU,EAAE,UAAU,UAAU,EAAE;KACnC,EACD,IAAI,EACJ,CAAC,CACF,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE1D,wBAAwB;IACxB,MAAM,CAAC,QAAQ,EAAE,CAAC;IAElB,4CAA4C;IAC5C,OAAO,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,MAAY,EACZ,QAAgB,EAChB,MAAc,EACd,SAAiB;IAEjB,MAAM,aAAa,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAE7C,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,4DAA4D;YAC5D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,qBAAqB,CACxC,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CACpC,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;YAE9C,IAAI,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/B,MAAM,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAC9D,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;gBACjC,MAAM,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/B,MAAM,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,MAAY,EACZ,QAAgB,EAChB,MAAc,EACd,OAAe,EACf,QAAqD;IAErD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,CACV;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO,CAAC,MAAM;QACpB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB,EAAE,MAAc;IAC7D,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;IAErE,IACE,YAAY,KAAK,IAAI;QACrB,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAC7B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,cAAc,CAAC,MAAY;IAClC,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAE1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC"}