alchemy 0.71.1 → 0.72.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 (37) hide show
  1. package/bin/alchemy.js +1 -1
  2. package/lib/planetscale/api.d.ts +0 -4
  3. package/lib/planetscale/api.d.ts.map +1 -1
  4. package/lib/planetscale/api.js.map +1 -1
  5. package/lib/planetscale/branch.d.ts +12 -11
  6. package/lib/planetscale/branch.d.ts.map +1 -1
  7. package/lib/planetscale/branch.js +40 -23
  8. package/lib/planetscale/branch.js.map +1 -1
  9. package/lib/planetscale/database.d.ts +10 -5
  10. package/lib/planetscale/database.d.ts.map +1 -1
  11. package/lib/planetscale/database.js +30 -18
  12. package/lib/planetscale/database.js.map +1 -1
  13. package/lib/planetscale/index.d.ts +1 -0
  14. package/lib/planetscale/index.d.ts.map +1 -1
  15. package/lib/planetscale/index.js +1 -0
  16. package/lib/planetscale/index.js.map +1 -1
  17. package/lib/planetscale/organization.d.ts +5 -0
  18. package/lib/planetscale/organization.d.ts.map +1 -0
  19. package/lib/planetscale/organization.js +11 -0
  20. package/lib/planetscale/organization.js.map +1 -0
  21. package/lib/planetscale/password.d.ts +10 -9
  22. package/lib/planetscale/password.d.ts.map +1 -1
  23. package/lib/planetscale/password.js +28 -13
  24. package/lib/planetscale/password.js.map +1 -1
  25. package/lib/planetscale/role.d.ts +2 -1
  26. package/lib/planetscale/role.d.ts.map +1 -1
  27. package/lib/planetscale/role.js +11 -8
  28. package/lib/planetscale/role.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/planetscale/api.ts +0 -4
  31. package/src/planetscale/branch.ts +51 -35
  32. package/src/planetscale/database.ts +40 -20
  33. package/src/planetscale/index.ts +1 -0
  34. package/src/planetscale/organization.ts +17 -0
  35. package/src/planetscale/password.ts +34 -16
  36. package/src/planetscale/role.ts +16 -9
  37. package/workers/tunnel-proxy.js +1 -1
@@ -16,8 +16,9 @@ export interface PasswordProps extends PlanetScaleProps {
16
16
  /**
17
17
  * The organization ID where the password will be created
18
18
  * Required when using string database name, optional when using Database or Branch resource
19
+ * @default process.env.PLANETSCALE_ORGANIZATION
19
20
  */
20
- organizationId?: string;
21
+ organization?: string;
21
22
  /**
22
23
  * The database where the password will be created
23
24
  * Can be either a database name (string) or Database resource
@@ -94,7 +95,7 @@ export interface Password extends PasswordProps {
94
95
  *
95
96
  * const readerPassword = await Password("app-reader", {
96
97
  * name: "app-reader",
97
- * organizationId: "my-org",
98
+ * organization: "my-org",
98
99
  * database: "my-app-db",
99
100
  * branch: "main",
100
101
  * role: "reader"
@@ -116,7 +117,7 @@ export interface Password extends PasswordProps {
116
117
  *
117
118
  * const writerPassword = await Password("app-writer", {
118
119
  * name: "app-writer",
119
- * organizationId: "my-org",
120
+ * organization: "my-org",
120
121
  * database: "my-app-db",
121
122
  * branch: "development",
122
123
  * role: "writer",
@@ -137,7 +138,7 @@ export interface Password extends PasswordProps {
137
138
  *
138
139
  * const adminPassword = await Password("admin-access", {
139
140
  * name: "admin-access",
140
- * organizationId: "my-org",
141
+ * organization: "my-org",
141
142
  * database: "my-app-db",
142
143
  * branch: "main",
143
144
  * role: "admin",
@@ -156,7 +157,7 @@ export interface Password extends PasswordProps {
156
157
  *
157
158
  * const password = await Password("custom-auth", {
158
159
  * name: "custom-auth",
159
- * organizationId: "my-org",
160
+ * organization: "my-org",
160
161
  * database: "my-app-db",
161
162
  * branch: "main",
162
163
  * role: "readwriter",
@@ -174,7 +175,7 @@ export interface Password extends PasswordProps {
174
175
  *
175
176
  * const replicaPassword = await Password("replica-reader", {
176
177
  * name: "replica-reader",
177
- * organizationId: "my-org",
178
+ * organization: "my-org",
178
179
  * database: "my-app-db",
179
180
  * branch: "main",
180
181
  * role: "reader",
@@ -191,7 +192,7 @@ export interface Password extends PasswordProps {
191
192
  *
192
193
  * const database = await Database("my-db", {
193
194
  * name: "my-app-db",
194
- * organizationId: "my-org",
195
+ * organization: "my-org",
195
196
  * clusterSize: "PS_10"
196
197
  * });
197
198
  *
@@ -212,13 +213,13 @@ export interface Password extends PasswordProps {
212
213
  *
213
214
  * const database = await Database("my-db", {
214
215
  * name: "my-app-db",
215
- * organizationId: "my-org",
216
+ * organization: "my-org",
216
217
  * clusterSize: "PS_10"
217
218
  * });
218
219
  *
219
220
  * const branch = await Branch("feature-branch", {
220
221
  * name: "feature-branch",
221
- * organizationId: "my-org",
222
+ * organization: "my-org",
222
223
  * databaseName: "my-app-db",
223
224
  * parentBranch: "main",
224
225
  * isProduction: false
@@ -1 +1 @@
1
- {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/planetscale/password.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IAEnD;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,aAAa;IAC7C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyJG;AACH,eAAO,MAAM,QAAQ,yFAGX,OAAO,CAAC,QAAQ,CAAC,MACnB,MAAM,SACH,aAAa,KACnB,OAAO,CAAC,QAAQ,CAAC,CAiGrB,CAAC"}
1
+ {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/planetscale/password.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IAEnD;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,aAAa;IAC7C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyJG;AACH,eAAO,MAAM,QAAQ,yFAGX,OAAO,CAAC,QAAQ,CAAC,MACnB,MAAM,SACH,aAAa,KACnB,OAAO,CAAC,QAAQ,CAAC,CAkHrB,CAAC"}
@@ -18,7 +18,7 @@ import { createPlanetScaleClient } from "./api.js";
18
18
  *
19
19
  * const readerPassword = await Password("app-reader", {
20
20
  * name: "app-reader",
21
- * organizationId: "my-org",
21
+ * organization: "my-org",
22
22
  * database: "my-app-db",
23
23
  * branch: "main",
24
24
  * role: "reader"
@@ -40,7 +40,7 @@ import { createPlanetScaleClient } from "./api.js";
40
40
  *
41
41
  * const writerPassword = await Password("app-writer", {
42
42
  * name: "app-writer",
43
- * organizationId: "my-org",
43
+ * organization: "my-org",
44
44
  * database: "my-app-db",
45
45
  * branch: "development",
46
46
  * role: "writer",
@@ -61,7 +61,7 @@ import { createPlanetScaleClient } from "./api.js";
61
61
  *
62
62
  * const adminPassword = await Password("admin-access", {
63
63
  * name: "admin-access",
64
- * organizationId: "my-org",
64
+ * organization: "my-org",
65
65
  * database: "my-app-db",
66
66
  * branch: "main",
67
67
  * role: "admin",
@@ -80,7 +80,7 @@ import { createPlanetScaleClient } from "./api.js";
80
80
  *
81
81
  * const password = await Password("custom-auth", {
82
82
  * name: "custom-auth",
83
- * organizationId: "my-org",
83
+ * organization: "my-org",
84
84
  * database: "my-app-db",
85
85
  * branch: "main",
86
86
  * role: "readwriter",
@@ -98,7 +98,7 @@ import { createPlanetScaleClient } from "./api.js";
98
98
  *
99
99
  * const replicaPassword = await Password("replica-reader", {
100
100
  * name: "replica-reader",
101
- * organizationId: "my-org",
101
+ * organization: "my-org",
102
102
  * database: "my-app-db",
103
103
  * branch: "main",
104
104
  * role: "reader",
@@ -115,7 +115,7 @@ import { createPlanetScaleClient } from "./api.js";
115
115
  *
116
116
  * const database = await Database("my-db", {
117
117
  * name: "my-app-db",
118
- * organizationId: "my-org",
118
+ * organization: "my-org",
119
119
  * clusterSize: "PS_10"
120
120
  * });
121
121
  *
@@ -136,13 +136,13 @@ import { createPlanetScaleClient } from "./api.js";
136
136
  *
137
137
  * const database = await Database("my-db", {
138
138
  * name: "my-app-db",
139
- * organizationId: "my-org",
139
+ * organization: "my-org",
140
140
  * clusterSize: "PS_10"
141
141
  * });
142
142
  *
143
143
  * const branch = await Branch("feature-branch", {
144
144
  * name: "feature-branch",
145
- * organizationId: "my-org",
145
+ * organization: "my-org",
146
146
  * databaseName: "my-app-db",
147
147
  * parentBranch: "main",
148
148
  * isProduction: false
@@ -163,15 +163,30 @@ export const Password = Resource("planetscale::Password", async function (id, pr
163
163
  : (this.output?.nameSlug ?? lowercaseId());
164
164
  const name = `${(props.name ?? this.output?.name ?? this.scope.createPhysicalName(id)).toLowerCase()}-${nameSlug}`;
165
165
  const api = createPlanetScaleClient(props);
166
- const database = typeof props.database === "string" ? props.database : props.database.name;
166
+ if (!props.organization && typeof props.database === "string") {
167
+ throw new Error("Organization ID is required when using string database name");
168
+ }
169
+ const organization =
170
+ // @ts-expect-error - organizationId is a legacy thing, we keep this so we can destroy
171
+ this.output?.organizationId ??
172
+ props.organization ??
173
+ (typeof props.database !== "string"
174
+ ? props.database.organization
175
+ : typeof props.branch !== "string" && props.branch
176
+ ? props.branch.organization
177
+ : (process.env.PLANETSCALE_ORGANIZATION ??
178
+ process.env.PLANETSCALE_ORG_ID));
179
+ const database =
180
+ // @ts-expect-error - databaseName is a legacy thing, we keep this so we can destroy
181
+ this.output?.databaseName ??
182
+ (typeof props.database === "string"
183
+ ? props.database
184
+ : props.database.name);
167
185
  const branch = typeof props.branch === "string"
168
186
  ? props.branch
169
187
  : (props.branch?.name ?? "main");
170
- const organization = props.organizationId ??
171
- ((typeof props.branch !== "string" && props.branch?.organizationId) ||
172
- (typeof props.database !== "string" && props.database.organizationId));
173
188
  if (!organization) {
174
- throw new Error("Organization ID is required");
189
+ throw new Error("PlanetScale organization is required. Please set the `organization` property or the `PLANETSCALE_ORGANIZATION` environment variable.");
175
190
  }
176
191
  if (this.phase === "delete") {
177
192
  if (this.output?.id) {
@@ -1 +1 @@
1
- {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/planetscale/password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAyB,MAAM,UAAU,CAAC;AA+F1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyJG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAC9B,uBAAuB,EACvB,KAAK,WAEH,EAAU,EACV,KAAoB;IAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa;QACjC,CAAC,CAAC,WAAW,EAAE;QACf,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC;IAEnH,MAAM,GAAG,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,QAAQ,GACZ,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5E,MAAM,MAAM,GACV,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAC9B,CAAC,CAAC,KAAK,CAAC,MAAM;QACd,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;IACrC,MAAM,YAAY,GAChB,KAAK,CAAC,cAAc;QACpB,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;YACjE,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IAE3E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC;gBACnC,IAAI,EAAE;oBACJ,YAAY;oBACZ,QAAQ;oBACR,MAAM;oBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;iBACnB;gBACD,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,GAAG,EAAE;oBACrD,KAAK,EAAE,GAAG,CAAC,KAAK;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,yFAAyF;QACzF,IACE,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAC9C,EACD,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,GAAG,CAAC,cAAc,CAAC;YACvB,IAAI,EAAE;gBACJ,YAAY;gBACZ,QAAQ;gBACR,MAAM;gBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;aACnB;YACD,IAAI,EAAE;gBACJ,IAAI;gBACJ,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB;SACF,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,IAAI,CAAC,MAAM;YACd,GAAG,KAAK;YACR,IAAI;SACL,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC;QACxC,IAAI,EAAE;YACJ,YAAY;YACZ,QAAQ;YACR,MAAM;SACP;QACD,IAAI,EAAE;YACJ,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB;KACF,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,SAAS,EAAE,IAAI,CAAC,UAAU;QAC1B,IAAI,EAAE,IAAI,CAAC,eAAe;QAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACzC,QAAQ;QACR,GAAG,KAAK;QACR,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE;KAClC,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/planetscale/password.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,9 @@ export interface RoleProps extends PlanetScaleProps {
10
10
  /**
11
11
  * The organization ID where the role will be created
12
12
  * Required when using string database name, optional when using Database resource
13
+ * @default process.env.PLANETSCALE_ORGANIZATION
13
14
  */
14
- organizationId?: string;
15
+ organization?: string;
15
16
  /**
16
17
  * The database where the role will be created
17
18
  * Can be either a database name (string) or Database resource
@@ -1 +1 @@
1
- {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/planetscale/role.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,eAAe,GACf,wBAAwB,GACxB,aAAa,GACb,YAAY,GACZ,kBAAkB,GAClB,sBAAsB,GACtB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,6BAA6B,GAC7B,mBAAmB,GACnB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,IAAK,SAAQ,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC7D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE9B;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEpC;;OAEG;IACH,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,IAAI,yFAGP,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,MAC1B,MAAM,SACH,SAAS,KACf,OAAO,CAAC,IAAI,CAAC,CAiHjB,CAAC"}
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/planetscale/role.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,eAAe,GACf,wBAAwB,GACxB,aAAa,GACb,YAAY,GACZ,kBAAkB,GAClB,sBAAsB,GACtB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,6BAA6B,GAC7B,mBAAmB,GACnB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,IAAK,SAAQ,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC7D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE9B;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEpC;;OAEG;IACH,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,IAAI,yFAGP,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,MAC1B,MAAM,SACH,SAAS,KACf,OAAO,CAAC,IAAI,CAAC,CAuHjB,CAAC"}
@@ -44,11 +44,17 @@ import { waitForBranchReady } from "./utils.js";
44
44
  */
45
45
  export const Role = Resource("planetscale::Role", async function (id, props) {
46
46
  const api = createPlanetScaleClient(props);
47
- const organization = typeof props.branch === "object"
48
- ? props.branch.organizationId
49
- : typeof props.database === "object"
50
- ? props.database.organizationId
51
- : props.organizationId;
47
+ const organization =
48
+ // @ts-expect-error - organizationId is a legacy thing, we keep this so we can destroy
49
+ this.output?.organizationId ??
50
+ props.organization ??
51
+ (typeof props.database !== "string"
52
+ ? props.database.organization
53
+ : (process.env.PLANETSCALE_ORGANIZATION ??
54
+ process.env.PLANETSCALE_ORG_ID));
55
+ if (!organization) {
56
+ throw new Error("PlanetScale organization is required. Please set the `organization` property or the `PLANETSCALE_ORGANIZATION` environment variable.");
57
+ }
52
58
  const database = typeof props.database === "string" ? props.database : props.database.name;
53
59
  const branch = typeof props.branch === "string"
54
60
  ? props.branch
@@ -56,9 +62,6 @@ export const Role = Resource("planetscale::Role", async function (id, props) {
56
62
  const inheritedRoles = Array.isArray(props.inheritedRoles)
57
63
  ? props.inheritedRoles
58
64
  : props.inheritedRoles.inheritedRoles;
59
- if (!organization) {
60
- throw new Error("Organization ID is required");
61
- }
62
65
  switch (this.phase) {
63
66
  case "delete": {
64
67
  if (this.output?.id) {
@@ -1 +1 @@
1
- {"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/planetscale/role.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/planetscale/role.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alchemy",
3
- "version": "0.71.1",
3
+ "version": "0.72.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Sam Goodwin <sam@alchemy.run>",
6
6
  "homepage": "https://alchemy.run",
@@ -28,10 +28,6 @@ export interface PlanetScaleProps {
28
28
  * @deprecated Use serviceTokenId and serviceToken instead.
29
29
  */
30
30
  apiKey?: Secret;
31
- /**
32
- * The organization to use for authentication. Defaults to the value of the PLANETSCALE_ORGANIZATION or PLANETSCALE_ORG_ID environment variable.
33
- */
34
- organizationId?: string;
35
31
  }
36
32
 
37
33
  export class PlanetScaleError extends Error {
@@ -1,6 +1,7 @@
1
1
  import type { Context } from "../context.ts";
2
2
  import { Resource } from "../resource.ts";
3
3
  import { createPlanetScaleClient, type PlanetScaleProps } from "./api.ts";
4
+ import type { Database } from "./database.ts";
4
5
  import {
5
6
  ensureProductionBranchClusterSize,
6
7
  sanitizeClusterSize,
@@ -20,14 +21,14 @@ export interface BranchProps extends PlanetScaleProps {
20
21
  name?: string;
21
22
 
22
23
  /**
23
- * The organization ID
24
+ * The organization name. Automatically inferred from the database if the database is provided as an object.
24
25
  */
25
- organizationId: string;
26
+ organization?: string;
26
27
 
27
28
  /**
28
29
  * The database name
29
30
  */
30
- databaseName: string;
31
+ database: string | Database;
31
32
 
32
33
  /**
33
34
  * Whether or not the branch should be set to a production branch or not.
@@ -114,8 +115,8 @@ export interface Branch extends BranchProps {
114
115
  * // Create a branch from 'main'
115
116
  * const branch = await Branch("feature-123", {
116
117
  * name: "feature-123",
117
- * organizationId: "my-org",
118
- * databaseName: "my-database",
118
+ * organization: "my-org",
119
+ * database: "my-database",
119
120
  * parentBranch: "main"
120
121
  * });
121
122
  *
@@ -123,15 +124,15 @@ export interface Branch extends BranchProps {
123
124
  * // Create a branch from another branch object
124
125
  * const parentBranch = await Branch("staging", {
125
126
  * name: "staging",
126
- * organizationId: "my-org",
127
- * databaseName: "my-database",
127
+ * organization: "my-org",
128
+ * database: "my-database",
128
129
  * parentBranch: "main"
129
130
  * });
130
131
  *
131
132
  * const featureBranch = await Branch("feature-456", {
132
133
  * name: "feature-456",
133
- * organizationId: "my-org",
134
- * databaseName: "my-database",
134
+ * organization: "my-org",
135
+ * database: "my-database",
135
136
  * parentBranch: parentBranch // Using Branch object instead of string
136
137
  * });
137
138
  *
@@ -139,8 +140,8 @@ export interface Branch extends BranchProps {
139
140
  * // Create a branch from a backup
140
141
  * const branch = await Branch("restored-branch", {
141
142
  * name: "restored-branch",
142
- * organizationId: "my-org",
143
- * databaseName: "my-database",
143
+ * organization: "my-org",
144
+ * database: "my-database",
144
145
  * parentBranch: "main",
145
146
  * backupId: "backup-123",
146
147
  * clusterSize: "PS_10"
@@ -164,6 +165,26 @@ export const Branch = Resource(
164
165
  : typeof props.parentBranch === "string"
165
166
  ? props.parentBranch
166
167
  : props.parentBranch.name;
168
+ const organization =
169
+ // @ts-expect-error - organizationId is a legacy thing, we keep this so we can destroy
170
+ this.output?.organizationId ??
171
+ props.organization ??
172
+ (typeof props.database !== "string"
173
+ ? props.database.organization
174
+ : (process.env.PLANETSCALE_ORGANIZATION ??
175
+ process.env.PLANETSCALE_ORG_ID));
176
+ const database =
177
+ // @ts-expect-error - databaseName is a legacy thing, we keep this so we can destroy
178
+ this.output?.databaseName ??
179
+ (typeof props.database === "string"
180
+ ? props.database
181
+ : props.database.name);
182
+
183
+ if (!organization) {
184
+ throw new Error(
185
+ "PlanetScale organization is required. Please set the `organization` property or the `PLANETSCALE_ORGANIZATION` environment variable.",
186
+ );
187
+ }
167
188
 
168
189
  if (this.phase === "update" && this.output.name !== branchName) {
169
190
  // TODO(sam): maybe we don't need to replace? just branch again? or rename?
@@ -174,8 +195,8 @@ export const Branch = Resource(
174
195
  if (this.output?.name) {
175
196
  const response = await api.deleteBranch({
176
197
  path: {
177
- organization: props.organizationId,
178
- database: props.databaseName,
198
+ organization,
199
+ database,
179
200
  name: this.output.name,
180
201
  },
181
202
  throwOnError: false,
@@ -196,8 +217,8 @@ export const Branch = Resource(
196
217
  if (typeof props.parentBranch !== "string" && props.parentBranch) {
197
218
  await waitForBranchReady(
198
219
  api,
199
- props.organizationId,
200
- props.databaseName,
220
+ organization,
221
+ database,
201
222
  props.parentBranch.name,
202
223
  );
203
224
  }
@@ -205,8 +226,8 @@ export const Branch = Resource(
205
226
  // Check if branch exists
206
227
  const getResponse = await api.getBranch({
207
228
  path: {
208
- organization: props.organizationId,
209
- database: props.databaseName,
229
+ organization,
230
+ database,
210
231
  name: branchName,
211
232
  },
212
233
  throwOnError: false,
@@ -256,8 +277,8 @@ export const Branch = Resource(
256
277
  : "disableSafeMigrations"
257
278
  ]({
258
279
  path: {
259
- organization: props.organizationId,
260
- database: props.databaseName,
280
+ organization,
281
+ database,
261
282
  name: branchName,
262
283
  },
263
284
  });
@@ -279,8 +300,8 @@ export const Branch = Resource(
279
300
  }
280
301
  await ensureProductionBranchClusterSize(
281
302
  api,
282
- props.organizationId,
283
- props.databaseName,
303
+ organization,
304
+ database,
284
305
  branchName,
285
306
  data.kind,
286
307
  clusterSize,
@@ -299,8 +320,8 @@ export const Branch = Resource(
299
320
  let clusterSize: string | undefined;
300
321
  const parent = await waitForBranchReady(
301
322
  api,
302
- props.organizationId,
303
- props.databaseName,
323
+ organization,
324
+ database,
304
325
  parentBranchName,
305
326
  );
306
327
  if (props.clusterSize) {
@@ -315,8 +336,8 @@ export const Branch = Resource(
315
336
  // Branch doesn't exist, create it
316
337
  const { data } = await api.createBranch({
317
338
  path: {
318
- organization: props.organizationId,
319
- database: props.databaseName,
339
+ organization,
340
+ database,
320
341
  },
321
342
  body: {
322
343
  name: branchName,
@@ -331,18 +352,13 @@ export const Branch = Resource(
331
352
  // Handle safe migrations if specified
332
353
  if (props.safeMigrations !== undefined) {
333
354
  // We can't change the migrations mode if the branch is not ready
334
- await waitForBranchReady(
335
- api,
336
- props.organizationId,
337
- props.databaseName,
338
- branchName,
339
- );
355
+ await waitForBranchReady(api, organization, database, branchName);
340
356
  await api[
341
357
  props.safeMigrations ? "enableSafeMigrations" : "disableSafeMigrations"
342
358
  ]({
343
359
  path: {
344
- organization: props.organizationId,
345
- database: props.databaseName,
360
+ organization,
361
+ database,
346
362
  name: branchName,
347
363
  },
348
364
  });
@@ -352,8 +368,8 @@ export const Branch = Resource(
352
368
  if (clusterSize) {
353
369
  await ensureProductionBranchClusterSize(
354
370
  api,
355
- props.organizationId,
356
- props.databaseName,
371
+ organization,
372
+ database,
357
373
  branchName,
358
374
  data.kind,
359
375
  clusterSize,