alchemy 0.81.3 → 0.82.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.
package/bin/alchemy.js CHANGED
@@ -37096,7 +37096,7 @@ function envPaths(name$1, { suffix = "nodejs" } = {}) {
37096
37096
  //#endregion
37097
37097
  //#region package.json
37098
37098
  var name = "alchemy";
37099
- var version = "0.81.3";
37099
+ var version = "0.82.0";
37100
37100
  var license = "Apache-2.0";
37101
37101
  var author = "Sam Goodwin <sam@alchemy.run>";
37102
37102
  var homepage = "https://alchemy.run";
@@ -233377,7 +233377,8 @@ const CLOUDFLARE_OAUTH_SCOPES_TO_PERMISSION_GROUP_NAMES = {
233377
233377
  "Workers KV Storage Read",
233378
233378
  "Workers KV Storage Write",
233379
233379
  "Workers R2 Storage Write",
233380
- "Workers R2 Storage Read"
233380
+ "Workers R2 Storage Read",
233381
+ "Hyperdrive Write"
233381
233382
  ],
233382
233383
  "workers_builds:read": ["Workers CI Read"],
233383
233384
  "workers_builds:write": ["Workers CI Write"],
@@ -233406,7 +233407,8 @@ const CLOUDFLARE_OAUTH_SCOPES_TO_PERMISSION_GROUP_NAMES = {
233406
233407
  "Workers Scripts Read",
233407
233408
  "Workers KV Storage Read",
233408
233409
  "Workers R2 Storage Read",
233409
- "Workers Routes Read"
233410
+ "Workers Routes Read",
233411
+ "Hyperdrive Read"
233410
233412
  ]
233411
233413
  };
233412
233414
 
@@ -402,6 +402,7 @@ export const CLOUDFLARE_OAUTH_SCOPES_TO_PERMISSION_GROUP_NAMES: Record<
402
402
  "Workers KV Storage Write",
403
403
  "Workers R2 Storage Write",
404
404
  "Workers R2 Storage Read",
405
+ "Hyperdrive Write",
405
406
  ],
406
407
  "workers_builds:read": ["Workers CI Read"],
407
408
  "workers_builds:write": ["Workers CI Write"],
@@ -429,5 +430,6 @@ export const CLOUDFLARE_OAUTH_SCOPES_TO_PERMISSION_GROUP_NAMES: Record<
429
430
  "Workers KV Storage Read",
430
431
  "Workers R2 Storage Read",
431
432
  "Workers Routes Read",
433
+ "Hyperdrive Read",
432
434
  ],
433
435
  };
@@ -148,6 +148,11 @@ export interface HyperdriveProps extends CloudflareApiOptions {
148
148
  * @default false
149
149
  */
150
150
  adopt?: boolean;
151
+ /**
152
+ * Whether to delete the hyperdrive config when the resource is deleted
153
+ * @default true
154
+ */
155
+ delete?: boolean;
151
156
  dev?: {
152
157
  /**
153
158
  * The database connection origin configuration for local development
@@ -1 +1 @@
1
- {"version":3,"file":"hyperdrive.d.ts","sourceRoot":"","sources":["../../src/cloudflare/hyperdrive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hyperdrive.d.ts","sourceRoot":"","sources":["../../src/cloudflare/hyperdrive.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,10 @@ const _Hyperdrive = Resource("cloudflare::Hyperdrive", async function (id, props
114
114
  }
115
115
  const api = await createCloudflareApi(props);
116
116
  if (this.phase === "delete") {
117
+ if (props.delete === false) {
118
+ logger.warn(`Delete is disabled for hyperdrive "${name}" (${id}), removing from state`);
119
+ return this.destroy();
120
+ }
117
121
  if (!hyperdriveId) {
118
122
  logger.warn(`No hyperdriveId found for ${id}, skipping delete`);
119
123
  return this.destroy();
@@ -1 +1 @@
1
- {"version":3,"file":"hyperdrive.js","sourceRoot":"","sources":["../../src/cloudflare/hyperdrive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hyperdrive.js","sourceRoot":"","sources":["../../src/cloudflare/hyperdrive.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,10 @@ export interface NeonBranchProps extends NeonApiOptions {
33
33
  * The timestamp must be provided in ISO 8601 format; for example: `2024-02-26T12:00:00Z`.
34
34
  */
35
35
  parentTimestamp?: string;
36
+ /**
37
+ * When `true`, will adopt an existing branch by `name`.
38
+ */
39
+ adopt?: boolean;
36
40
  /**
37
41
  * The timestamp when the branch is scheduled to expire and be automatically deleted.
38
42
  * Must be set by the client following the [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6) format with precision up to seconds (such as 2025-06-09T18:02:16Z).
@@ -136,22 +140,11 @@ export interface NeonBranch {
136
140
  */
137
141
  connectionUris: NeonConnectionUri[];
138
142
  }
139
- export declare const NeonBranch: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<NeonBranch>, id: string, props: NeonBranchProps) => Promise<{
140
- id: string;
141
- name: string;
143
+ export declare const NeonBranch: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<NeonBranch>, id: string, props: NeonBranchProps) => Promise<NeonBranch>);
144
+ export interface NeonConnectionUriProps extends NeonApiOptions {
142
145
  projectId: string;
143
- protected: boolean;
144
- default: boolean;
145
- parentBranchId: string | undefined;
146
- parentLsn: string | undefined;
147
- parentTimestamp: string | undefined;
148
- initSource: "schema-only" | "parent-data" | undefined;
149
- createdAt: Date;
150
- updatedAt: Date;
151
- expiresAt: Date | undefined;
152
- endpoints: neon.Endpoint[];
153
- databases: neon.Database[];
154
- roles: NeonRole[];
155
- connectionUris: NeonConnectionUri[];
156
- }>);
146
+ branchId: string;
147
+ databaseName: string;
148
+ roleName: string;
149
+ }
157
150
  //# sourceMappingURL=branch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"branch.d.ts","sourceRoot":"","sources":["../../src/neon/branch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;IACjD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;IAC3C;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,EAAE,IAAI,CAAC,kCAAkC,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;OAGG;IACH,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,UAAU,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC;IACtD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAChB;;;;OAIG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;IAC5B;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B;;OAEG;IACH,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB;;OAEG;IACH,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,UAAU,yFAGb,OAAO,CAAC,UAAU,CAAC,MACrB,MAAM,SACH,eAAe;;;;;;;;;gBA0EZ,aAAa,GACb,aAAa,GACb,SAAS;;;;;;;;GAiDtB,CAAC"}
1
+ {"version":3,"file":"branch.d.ts","sourceRoot":"","sources":["../../src/neon/branch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAE9D,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;IACjD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;IAC3C;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,EAAE,IAAI,CAAC,kCAAkC,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;OAGG;IACH,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,UAAU,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC;IACtD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAChB;;;;OAIG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;IAC5B;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B;;OAEG;IACH,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB;;OAEG;IACH,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,UAAU,yFAGb,OAAO,CAAC,UAAU,CAAC,MACrB,MAAM,SACH,eAAe,yBAuIzB,CAAC;AA2GF,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -1,3 +1,4 @@
1
+ import { alchemy } from "../alchemy.js";
1
2
  import { Resource } from "../resource.js";
2
3
  import { createNeonApi } from "./api.js";
3
4
  import { formatConnectionUri, formatRole, waitForOperations, } from "./utils.js";
@@ -27,6 +28,17 @@ export const NeonBranch = Resource("neon::Branch", async function (id, props) {
27
28
  return this.destroy();
28
29
  }
29
30
  case "create": {
31
+ if (this.scope.adopt || props.adopt) {
32
+ try {
33
+ return await fetchBranch(api, { ...props, projectId, name });
34
+ }
35
+ catch (error) {
36
+ if (!(error instanceof NeonBranchNotFound)) {
37
+ throw error;
38
+ }
39
+ // branch not found, continue with creation
40
+ }
41
+ }
30
42
  const { data } = await api.createProjectBranch({
31
43
  path: {
32
44
  project_id: projectId,
@@ -109,4 +121,93 @@ export const NeonBranch = Resource("neon::Branch", async function (id, props) {
109
121
  }
110
122
  }
111
123
  });
124
+ async function fetchBranch(api, props) {
125
+ const branchList = [];
126
+ let branchesResponse = await api.listProjectBranches({
127
+ path: { project_id: props.projectId },
128
+ query: {
129
+ search: props.name,
130
+ },
131
+ });
132
+ branchList.push(...(branchesResponse.data?.branches ?? []));
133
+ while (branchesResponse.data?.pagination?.next) {
134
+ branchesResponse = await api.listProjectBranches({
135
+ path: { project_id: props.projectId },
136
+ query: {
137
+ search: props.name,
138
+ cursor: branchesResponse.data.pagination.next,
139
+ },
140
+ });
141
+ branchList.push(...(branchesResponse.data?.branches ?? []));
142
+ }
143
+ const branchesMatchingName = branchList.filter((b) => b.name === props.name);
144
+ if (branchesMatchingName.length === 0) {
145
+ throw new NeonBranchNotFound(props.name);
146
+ }
147
+ if (branchesMatchingName.length > 1) {
148
+ throw new Error(`Multiple branches found with name "${props.name}". Name must be unique when adopting a branch.`);
149
+ }
150
+ const branch = branchesMatchingName[0];
151
+ const databases = await api.listProjectBranchDatabases({
152
+ path: {
153
+ branch_id: branch.id,
154
+ project_id: props.projectId,
155
+ },
156
+ });
157
+ const endpoints = await api.listProjectBranchEndpoints({
158
+ path: { project_id: props.projectId, branch_id: branch.id },
159
+ });
160
+ const roles = await api.listProjectBranchRoles({
161
+ path: {
162
+ project_id: props.projectId,
163
+ branch_id: branch.id,
164
+ },
165
+ });
166
+ const connectionUris = await Promise.all(databases.data.databases.map((database) => api
167
+ .getConnectionUri({
168
+ path: { project_id: props.projectId },
169
+ query: {
170
+ branch_id: branch.id,
171
+ database_name: database.name,
172
+ role_name: database.owner_name,
173
+ pooled: false,
174
+ },
175
+ })
176
+ .then((res) => {
177
+ const url = new URL(res.data.uri);
178
+ return {
179
+ connection_uri: alchemy.secret(res.data.uri),
180
+ connection_parameters: {
181
+ database: database.name,
182
+ host: url.host,
183
+ port: 5432,
184
+ user: url.username,
185
+ password: alchemy.secret(url.password),
186
+ },
187
+ };
188
+ })));
189
+ return {
190
+ id: branch.id,
191
+ projectId: branch.project_id,
192
+ createdAt: new Date(branch.created_at),
193
+ updatedAt: new Date(branch.updated_at),
194
+ expiresAt: branch.expires_at ? new Date(branch.expires_at) : undefined,
195
+ initSource: branch.init_source,
196
+ name: branch.name,
197
+ protected: branch.protected,
198
+ default: branch.default,
199
+ parentBranchId: branch.parent_id,
200
+ parentTimestamp: branch.parent_timestamp,
201
+ parentLsn: branch.parent_lsn,
202
+ roles: roles.data.roles.map(formatRole),
203
+ endpoints: endpoints.data.endpoints,
204
+ databases: databases.data.databases,
205
+ connectionUris,
206
+ };
207
+ }
208
+ class NeonBranchNotFound extends Error {
209
+ constructor(name) {
210
+ super(`Branch ${name} not found`);
211
+ }
212
+ }
112
213
  //# sourceMappingURL=branch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../src/neon/branch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../src/neon/branch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alchemy",
3
- "version": "0.81.3",
3
+ "version": "0.82.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Sam Goodwin <sam@alchemy.run>",
6
6
  "homepage": "https://alchemy.run",
@@ -198,6 +198,12 @@ export interface HyperdriveProps extends CloudflareApiOptions {
198
198
  */
199
199
  adopt?: boolean;
200
200
 
201
+ /**
202
+ * Whether to delete the hyperdrive config when the resource is deleted
203
+ * @default true
204
+ */
205
+ delete?: boolean;
206
+
201
207
  dev?: {
202
208
  /**
203
209
  * The database connection origin configuration for local development
@@ -361,6 +367,7 @@ interface InternalHyperdriveProps extends CloudflareApiOptions {
361
367
  force?: boolean;
362
368
  };
363
369
  adopt?: boolean;
370
+ delete?: boolean;
364
371
  }
365
372
 
366
373
  const _Hyperdrive = Resource(
@@ -390,6 +397,12 @@ const _Hyperdrive = Resource(
390
397
  const api = await createCloudflareApi(props);
391
398
 
392
399
  if (this.phase === "delete") {
400
+ if (props.delete === false) {
401
+ logger.warn(
402
+ `Delete is disabled for hyperdrive "${name}" (${id}), removing from state`,
403
+ );
404
+ return this.destroy();
405
+ }
393
406
  if (!hyperdriveId) {
394
407
  logger.warn(`No hyperdriveId found for ${id}, skipping delete`);
395
408
  return this.destroy();
@@ -1,6 +1,8 @@
1
+ import { alchemy } from "../alchemy.ts";
1
2
  import type { Context } from "../context.ts";
2
3
  import { Resource } from "../resource.ts";
3
4
  import { createNeonApi, type NeonApiOptions } from "./api.ts";
5
+ import type { NeonClient } from "./api/sdk.gen.ts";
4
6
  import type * as neon from "./api/types.gen.ts";
5
7
  import type { NeonProject } from "./project.ts";
6
8
  import {
@@ -41,6 +43,10 @@ export interface NeonBranchProps extends NeonApiOptions {
41
43
  * The timestamp must be provided in ISO 8601 format; for example: `2024-02-26T12:00:00Z`.
42
44
  */
43
45
  parentTimestamp?: string;
46
+ /**
47
+ * When `true`, will adopt an existing branch by `name`.
48
+ */
49
+ adopt?: boolean;
44
50
  /**
45
51
  * The timestamp when the branch is scheduled to expire and be automatically deleted.
46
52
  * Must be set by the client following the [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6) format with precision up to seconds (such as 2025-06-09T18:02:16Z).
@@ -182,6 +188,16 @@ export const NeonBranch = Resource(
182
188
  return this.destroy();
183
189
  }
184
190
  case "create": {
191
+ if (this.scope.adopt || props.adopt) {
192
+ try {
193
+ return await fetchBranch(api, { ...props, projectId, name });
194
+ } catch (error) {
195
+ if (!(error instanceof NeonBranchNotFound)) {
196
+ throw error;
197
+ }
198
+ // branch not found, continue with creation
199
+ }
200
+ }
185
201
  const { data } = await api.createProjectBranch({
186
202
  path: {
187
203
  project_id: projectId,
@@ -277,3 +293,121 @@ export const NeonBranch = Resource(
277
293
  }
278
294
  },
279
295
  );
296
+
297
+ async function fetchBranch(
298
+ api: NeonClient,
299
+ props: NeonBranchProps & { name: string; projectId: string },
300
+ ): Promise<NeonBranch> {
301
+ const branchList: neon.Branch[] = [];
302
+
303
+ let branchesResponse = await api.listProjectBranches({
304
+ path: { project_id: props.projectId },
305
+ query: {
306
+ search: props.name,
307
+ },
308
+ });
309
+ branchList.push(...(branchesResponse.data?.branches ?? []));
310
+
311
+ while (branchesResponse.data?.pagination?.next) {
312
+ branchesResponse = await api.listProjectBranches({
313
+ path: { project_id: props.projectId },
314
+ query: {
315
+ search: props.name,
316
+ cursor: branchesResponse.data.pagination.next,
317
+ },
318
+ });
319
+ branchList.push(...(branchesResponse.data?.branches ?? []));
320
+ }
321
+
322
+ const branchesMatchingName = branchList.filter((b) => b.name === props.name);
323
+
324
+ if (branchesMatchingName.length === 0) {
325
+ throw new NeonBranchNotFound(props.name);
326
+ }
327
+
328
+ if (branchesMatchingName.length > 1) {
329
+ throw new Error(
330
+ `Multiple branches found with name "${props.name}". Name must be unique when adopting a branch.`,
331
+ );
332
+ }
333
+
334
+ const branch = branchesMatchingName[0];
335
+
336
+ const databases = await api.listProjectBranchDatabases({
337
+ path: {
338
+ branch_id: branch.id,
339
+ project_id: props.projectId,
340
+ },
341
+ });
342
+
343
+ const endpoints = await api.listProjectBranchEndpoints({
344
+ path: { project_id: props.projectId, branch_id: branch.id },
345
+ });
346
+
347
+ const roles = await api.listProjectBranchRoles({
348
+ path: {
349
+ project_id: props.projectId,
350
+ branch_id: branch.id,
351
+ },
352
+ });
353
+
354
+ const connectionUris: NeonConnectionUri[] = await Promise.all(
355
+ databases.data.databases.map((database) =>
356
+ api
357
+ .getConnectionUri({
358
+ path: { project_id: props.projectId },
359
+ query: {
360
+ branch_id: branch.id,
361
+ database_name: database.name,
362
+ role_name: database.owner_name,
363
+ pooled: false,
364
+ },
365
+ })
366
+ .then((res) => {
367
+ const url = new URL(res.data.uri);
368
+ return {
369
+ connection_uri: alchemy.secret(res.data.uri),
370
+ connection_parameters: {
371
+ database: database.name,
372
+ host: url.host,
373
+ port: 5432,
374
+ user: url.username,
375
+ password: alchemy.secret(url.password),
376
+ },
377
+ };
378
+ }),
379
+ ),
380
+ );
381
+
382
+ return {
383
+ id: branch.id,
384
+ projectId: branch.project_id,
385
+ createdAt: new Date(branch.created_at),
386
+ updatedAt: new Date(branch.updated_at),
387
+ expiresAt: branch.expires_at ? new Date(branch.expires_at) : undefined,
388
+ initSource: branch.init_source as "schema-only" | "parent-data" | undefined,
389
+ name: branch.name,
390
+ protected: branch.protected,
391
+ default: branch.default,
392
+ parentBranchId: branch.parent_id,
393
+ parentTimestamp: branch.parent_timestamp,
394
+ parentLsn: branch.parent_lsn,
395
+ roles: roles.data.roles.map(formatRole),
396
+ endpoints: endpoints.data.endpoints,
397
+ databases: databases.data.databases,
398
+ connectionUris,
399
+ };
400
+ }
401
+
402
+ export interface NeonConnectionUriProps extends NeonApiOptions {
403
+ projectId: string;
404
+ branchId: string;
405
+ databaseName: string;
406
+ roleName: string;
407
+ }
408
+
409
+ class NeonBranchNotFound extends Error {
410
+ constructor(name: string) {
411
+ super(`Branch ${name} not found`);
412
+ }
413
+ }
@@ -83,7 +83,7 @@ const renderErrorHtml = (props) => `
83
83
  Alchemy</a>.</p>
84
84
  </div>
85
85
  <div class="bg-slate-200 px-5 py-3 flex flex-col w-full max-w-lg">
86
- <p class="text-sm text-slate-500">Alchemy 0.81.3</p>
86
+ <p class="text-sm text-slate-500">Alchemy 0.82.0</p>
87
87
  </div>
88
88
  </div>
89
89
  </body>