@alchemy.run/turso 2.0.0-beta.84 → 2.0.0-beta.86

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 (62) hide show
  1. package/lib/ApiToken.d.ts +9 -0
  2. package/lib/ApiToken.d.ts.map +1 -1
  3. package/lib/ApiToken.js +10 -2
  4. package/lib/ApiToken.js.map +1 -1
  5. package/lib/AuthProvider.d.ts +1 -1
  6. package/lib/AuthProvider.d.ts.map +1 -1
  7. package/lib/AuthProvider.js +1 -1
  8. package/lib/AuthProvider.js.map +1 -1
  9. package/lib/Connect.d.ts.map +1 -1
  10. package/lib/Connect.js.map +1 -1
  11. package/lib/Contributions.d.ts +1 -1
  12. package/lib/Contributions.d.ts.map +1 -1
  13. package/lib/Contributions.js.map +1 -1
  14. package/lib/Credentials.d.ts +1 -1
  15. package/lib/Credentials.d.ts.map +1 -1
  16. package/lib/Credentials.js +11 -15
  17. package/lib/Credentials.js.map +1 -1
  18. package/lib/Database.d.ts +36 -1
  19. package/lib/Database.d.ts.map +1 -1
  20. package/lib/Database.js +49 -20
  21. package/lib/Database.js.map +1 -1
  22. package/lib/DatabaseToken.d.ts +9 -0
  23. package/lib/DatabaseToken.d.ts.map +1 -1
  24. package/lib/DatabaseToken.js +6 -1
  25. package/lib/DatabaseToken.js.map +1 -1
  26. package/lib/Group.d.ts +29 -1
  27. package/lib/Group.d.ts.map +1 -1
  28. package/lib/Group.js +30 -5
  29. package/lib/Group.js.map +1 -1
  30. package/lib/GroupToken.d.ts +9 -0
  31. package/lib/GroupToken.d.ts.map +1 -1
  32. package/lib/GroupToken.js +6 -1
  33. package/lib/GroupToken.js.map +1 -1
  34. package/lib/Hrana.d.ts.map +1 -1
  35. package/lib/Hrana.js +5 -1
  36. package/lib/Hrana.js.map +1 -1
  37. package/lib/ManageDatabases.d.ts.map +1 -1
  38. package/lib/ManageDatabases.js +1 -1
  39. package/lib/ManageDatabases.js.map +1 -1
  40. package/lib/OrganizationInvite.d.ts.map +1 -1
  41. package/lib/OrganizationInvite.js.map +1 -1
  42. package/lib/OrganizationMember.d.ts.map +1 -1
  43. package/lib/OrganizationMember.js +1 -1
  44. package/lib/OrganizationMember.js.map +1 -1
  45. package/lib/OrganizationSettings.d.ts.map +1 -1
  46. package/lib/OrganizationSettings.js.map +1 -1
  47. package/lib/Providers.d.ts +1 -1
  48. package/lib/Providers.d.ts.map +1 -1
  49. package/lib/Providers.js.map +1 -1
  50. package/lib/index.d.ts.map +1 -1
  51. package/lib/index.js.map +1 -1
  52. package/package.json +9 -9
  53. package/src/ApiToken.ts +12 -2
  54. package/src/AuthProvider.ts +1 -1
  55. package/src/Credentials.ts +22 -49
  56. package/src/Database.ts +79 -24
  57. package/src/DatabaseToken.ts +11 -1
  58. package/src/Group.ts +52 -6
  59. package/src/GroupToken.ts +9 -1
  60. package/src/Hrana.ts +3 -1
  61. package/src/ManageDatabases.ts +1 -1
  62. package/src/OrganizationMember.ts +1 -1
package/lib/ApiToken.d.ts CHANGED
@@ -3,6 +3,14 @@ import * as Provider from "alchemy/Provider";
3
3
  import { Resource } from "alchemy/Resource";
4
4
  import * as Redacted from "effect/Redacted";
5
5
  import type { Providers } from "./Providers.ts";
6
+ declare const ApiTokenUnexpectedResponse_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
7
+ readonly _tag: "ApiTokenUnexpectedResponse";
8
+ } & Readonly<A>;
9
+ export declare class ApiTokenUnexpectedResponse extends ApiTokenUnexpectedResponse_base<{
10
+ readonly message: string;
11
+ readonly cause?: unknown;
12
+ }> {
13
+ }
6
14
  /**
7
15
  * A permission granted to a group-scoped API token. `read-only` and
8
16
  * `full-access` are presets that expand to individual scopes.
@@ -70,4 +78,5 @@ export type ApiToken = Resource<"Turso.ApiToken", ApiTokenProps, ApiTokenAttribu
70
78
  */
71
79
  export declare const ApiToken: import("alchemy/Resource").ResourceClass<ApiToken>;
72
80
  export declare const ApiTokenProvider: () => import("effect/Layer").Layer<Provider.Provider<ApiToken>, never, import("./Credentials.ts").Organization | import("alchemy/Stack").Stack | import("alchemy/Stage").Stage | turso.TursoOpContext>;
81
+ export {};
73
82
  //# sourceMappingURL=ApiToken.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiToken.d.ts","sourceRoot":"","sources":["../src/ApiToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAC;AAItD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,WAAW,GACX,WAAW,GACX,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,WAAW,GACX,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,mDAAmD;IACnD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uEAAuE;IACvE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAC7B,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,QAAQ,oDAAuC,CAAC;AAK7D,eAAO,MAAM,gBAAgB,wMA8F1B,CAAC"}
1
+ {"version":3,"file":"ApiToken.d.ts","sources":["../src/ApiToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAC;AAItD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;AAEhD,qBAAa,0BAA2B,SAAQ,gCAA+C;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,WAAW,GACX,WAAW,GACX,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,WAAW,GACX,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,mDAAmD;IACnD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uEAAuE;IACvE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAC7B,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,QAAQ,oDAAuC,CAAC;AAK7D,eAAO,MAAM,gBAAgB,wMAkG1B,CAAC"}
package/lib/ApiToken.js CHANGED
@@ -4,9 +4,12 @@ import { deepEqual, isResolved } from "alchemy/Diff";
4
4
  import { createPhysicalName } from "alchemy/PhysicalName";
5
5
  import * as Provider from "alchemy/Provider";
6
6
  import { Resource } from "alchemy/Resource";
7
+ import * as Data from "effect/Data";
7
8
  import * as Effect from "effect/Effect";
8
9
  import * as Redacted from "effect/Redacted";
9
10
  import { organization } from "./Credentials.js";
11
+ export class ApiTokenUnexpectedResponse extends Data.TaggedError("ApiTokenUnexpectedResponse") {
12
+ }
10
13
  /**
11
14
  * A Turso API token. It lets an app create and delete groups and databases.
12
15
  * To run SQL, use a {@link DatabaseToken} instead. Limit it to one group
@@ -58,13 +61,16 @@ export const ApiTokenProvider = () => Provider.effect(ApiToken, Effect.gen(funct
58
61
  };
59
62
  }
60
63
  }),
61
- read: Effect.fn(function* ({ id, olds, output }) {
64
+ read: Effect.fn(function* ({ id, olds, output, previous }) {
62
65
  const name = output?.name ?? (yield* tokenName(id, olds?.name));
63
66
  const observed = yield* observe(name);
64
67
  if (!observed)
65
68
  return undefined;
66
69
  if (output !== undefined && output.id === observed.id)
67
70
  return output;
71
+ // The generation a delete-first replacement is about to revoke.
72
+ if (previous !== undefined && previous.id === observed.id)
73
+ return previous;
68
74
  // The secret is only revealed at creation, so a token we have no
69
75
  // state for can't be adopted with its value — reconcile re-mints.
70
76
  return Unowned({
@@ -100,7 +106,9 @@ export const ApiTokenProvider = () => Provider.effect(ApiToken, Effect.gen(funct
100
106
  scopes: news.scopes,
101
107
  });
102
108
  if (!created.token || !created.id) {
103
- return yield* Effect.fail(new Error(`Turso returned no token for ${name}`));
109
+ return yield* new ApiTokenUnexpectedResponse({
110
+ message: `Turso returned no token for ${name}`,
111
+ });
104
112
  }
105
113
  const minted = yield* observe(name);
106
114
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"ApiToken.js","sourceRoot":"","sources":["../src/ApiToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApiToken.js","sources":["../src/ApiToken.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export interface TursoResolvedCredentials {
29
29
  * registry when built. Included in `Turso.providers()` so the alchemy CLI
30
30
  * (`alchemy profile edit`) can configure it.
31
31
  */
32
- export declare const TursoAuth: import("effect/Layer").Layer<never, never, import("alchemy/Auth/AuthProvider").AuthProviders | import("effect/FileSystem").FileSystem | import("effect/Path").Path>;
32
+ export declare const TursoAuth: import("effect/Layer").Layer<never, never, import("alchemy/Auth/Registry").AuthProviders | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("effect/crypto/SecureRandom").SecureRandom>;
33
33
  /** Schema of Turso's inline API-token values. */
34
34
  export declare const TursoStoredCredentials: import("effect/Schema").Codec<import("alchemy/Auth/StoredAuthProvider").StoredValues, import("alchemy/Auth/StoredAuthProvider").StoredValues, never, never>;
35
35
  export type TursoStoredCredentials = typeof TursoStoredCredentials.Type;
@@ -1 +1 @@
1
- {"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../src/AuthProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE;QAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvE;AAqED;;;;GAIG;AACH,eAAO,MAAM,SAAS,qKAAkB,CAAC;AAEzC,iDAAiD;AACjD,eAAO,MAAM,sBAAsB,6JAAyB,CAAC;AAC7D,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"AuthProvider.d.ts","sources":["../src/AuthProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE;QAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvE;AAqED;;;;GAIG;AACH,eAAO,MAAM,SAAS,qNAAkB,CAAC;AAEzC,iDAAiD;AACjD,eAAO,MAAM,sBAAsB,6JAAyB,CAAC;AAC7D,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAC"}
@@ -14,7 +14,7 @@ const readEnvironment = Effect.gen(function* () {
14
14
  const apiKey = yield* getEnvRedacted("TURSO_API_KEY");
15
15
  const token = apiToken ?? apiKey;
16
16
  if (token === undefined || Redacted.value(token).trim().length === 0) {
17
- return yield* new AuthError({
17
+ return yield* AuthError.make({
18
18
  message: "Turso CI credentials not found. Set TURSO_API_TOKEN or TURSO_API_KEY.",
19
19
  });
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AuthProvider.js","sourceRoot":"","sources":["../src/AuthProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthProvider.js","sources":["../src/AuthProvider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Connect.d.ts","sourceRoot":"","sources":["../src/Connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAClD,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;CAC5E;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,WAAW,OAAQ,SAAQ,OAAO,CAAC,OAAO,CAC9C,OAAO,EACP,eAAe,EACf,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAC/E;CAAG;AAEJ,eAAO,MAAM,OAAO,SAA4C,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,WAAW,oCAiBvB,CAAC"}
1
+ {"version":3,"file":"Connect.d.ts","sources":["../src/Connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAClD,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;CAC5E;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,WAAW,OAAQ,SAAQ,OAAO,CAAC,OAAO,CAC9C,OAAO,EACP,eAAe,EACf,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAC/E;CAAG;AAEJ,eAAO,MAAM,OAAO,SAA4C,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,WAAW,oCAiBvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Connect.js","sourceRoot":"","sources":["../src/Connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAyE5E,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAU,eAAe,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CACrC,OAAO,EACP,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC;IACnC,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAkB,EAAE,OAAwB;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACjC,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,aAAa,CAAC;QAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CACxB,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,GAAG,QAAQ,CAAC,SAAS,GAAG,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EACtG,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,CAC3C,CAAC;QACF,OAAO;YACL,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG;YACxB,SAAS,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK;SACN,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"Connect.js","sources":["../src/Connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAyE5E,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAU,eAAe,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CACrC,OAAO,EACP,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC;IACnC,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAkB,EAAE,OAAwB;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACjC,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,aAAa,CAAC;QAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CACxB,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,GAAG,QAAQ,CAAC,SAAS,GAAG,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EACtG,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,CAC3C,CAAC;QACF,OAAO;YACL,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG;YACxB,SAAS,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK;SACN,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import * as Contributions from "alchemy/Contributions";
2
2
  declare const _default: {
3
3
  readonly name: "turso";
4
- readonly auth: Contributions.Lazy<import("effect/Layer").Layer<never, never, import("alchemy/Auth/AuthProvider").AuthProviders | import("effect/FileSystem").FileSystem | import("effect/Path").Path>>;
4
+ readonly auth: Contributions.Lazy<import("effect/Layer").Layer<never, never, import("alchemy/Auth/Registry").AuthProviders | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("effect/crypto/SecureRandom").SecureRandom>>;
5
5
  };
6
6
  export default _default;
7
7
  //# sourceMappingURL=Contributions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Contributions.d.ts","sourceRoot":"","sources":["../src/Contributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;;;;;AAEvD,wBAMG"}
1
+ {"version":3,"file":"Contributions.d.ts","sources":["../src/Contributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;;;;;AAEvD,wBAMG"}
@@ -1 +1 @@
1
- {"version":3,"file":"Contributions.js","sourceRoot":"","sources":["../src/Contributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;AAEvD,eAAe,aAAa,CAAC,IAAI,CAAC;IAChC,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,aAAa,CAAC,IAAI,CACtB,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,EACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAC7B;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"Contributions.js","sources":["../src/Contributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;AAEvD,eAAe,aAAa,CAAC,IAAI,CAAC;IAChC,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,aAAa,CAAC,IAAI,CACtB,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,EACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAC7B;CACF,CAAC,CAAC"}
@@ -35,5 +35,5 @@ export declare const fromToken: (input: {
35
35
  * present, otherwise the selected profile. Resolution is deferred until the
36
36
  * first API call, so building the provider layers never needs a profile.
37
37
  */
38
- export declare const fromAuthProvider: () => Layer.Layer<Credentials | Organization, never, import("alchemy/Auth/AuthProvider").AuthProviders | HttpClient.HttpClient | import("alchemy/Auth/Profile").ProfileStore>;
38
+ export declare const fromAuthProvider: () => Layer.Layer<Credentials | Organization, never, import("alchemy/Auth/Registry").AuthProviders | HttpClient.HttpClient | import("alchemy/Auth/Profile").ProfileStore>;
39
39
  //# sourceMappingURL=Credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Credentials.d.ts","sourceRoot":"","sources":["../src/Credentials.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAGZ,MAAM,oCAAoC,CAAC;AAO5C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAO5C,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;;AAE5C;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,iBAEjC;CAAG;AAEJ,+DAA+D;AAC/D,eAAO,MAAM,YAAY,4CAEvB,CAAC;AA6CH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,UAAW;IAC/B,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,0EAYE,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,+KAmB1B,CAAC"}
1
+ {"version":3,"file":"Credentials.d.ts","sources":["../src/Credentials.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAwB,MAAM,oCAAoC,CAAC;AAGvF,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;;AAE5C;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,iBAEjC;CAAG;AAEJ,+DAA+D;AAC/D,eAAO,MAAM,YAAY,4CAEvB,CAAC;AAgDH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,UAAW;IAC/B,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,0EAOmC,CAAC;AAErC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,2KAM1B,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { ConfigError } from "@distilled.cloud/core/errors";
2
- import { Credentials, DEFAULT_API_BASE_URL, } from "@distilled.cloud/turso/Credentials";
2
+ import { Credentials, DEFAULT_API_BASE_URL } from "@distilled.cloud/turso/Credentials";
3
3
  import * as turso from "@distilled.cloud/turso/turso";
4
- import { deferUntilFirstUse, orDieCredentialsUnavailable, resolveProviderConfig, } from "alchemy/Auth/Resolve";
4
+ import { lazyCredentials, orDieCredentialsUnavailable } from "alchemy/Auth/Resolve";
5
5
  import * as Context from "effect/Context";
6
6
  import * as Effect from "effect/Effect";
7
7
  import * as HttpClient from "effect/http/HttpClient";
8
8
  import * as Layer from "effect/Layer";
9
9
  import * as Redacted from "effect/Redacted";
10
- import { TURSO_AUTH_PROVIDER_NAME, } from "./AuthProvider.js";
10
+ import { TURSO_AUTH_PROVIDER_NAME } from "./AuthProvider.js";
11
11
  export { Credentials, CredentialsFromEnv, DEFAULT_API_BASE_URL, } from "@distilled.cloud/turso/Credentials";
12
12
  /**
13
13
  * The Turso organization slug every org-scoped Platform API call targets.
@@ -39,14 +39,15 @@ const discoverOrganization = Effect.gen(function* () {
39
39
  });
40
40
  const make = (resolve) => Effect.gen(function* () {
41
41
  const http = yield* HttpClient.HttpClient;
42
- const cached = yield* Effect.cached(resolve);
43
- const credentials = Effect.map(cached, (creds) => ({
42
+ const credentials = Effect.map(resolve, (creds) => ({
44
43
  apiKey: creds.apiToken,
45
44
  apiBaseUrl: creds.apiBaseUrl,
46
45
  }));
47
- const organization = yield* Effect.cached(Effect.flatMap(cached, (creds) => creds.organization !== undefined && creds.organization.length > 0
46
+ // `Organization` is typed as never failing, so a credentials failure dies
47
+ // here; the engine still reports it as `CredentialsRequired`.
48
+ const organization = yield* resolve.pipe(Effect.orDie, Effect.flatMap((creds) => creds.organization !== undefined && creds.organization.length > 0
48
49
  ? Effect.succeed(creds.organization)
49
- : discoverOrganization.pipe(Effect.provideService(Credentials, credentials), Effect.provideService(HttpClient.HttpClient, http), orDieCredentialsUnavailable(TURSO_AUTH_PROVIDER_NAME))));
50
+ : discoverOrganization.pipe(Effect.provideService(Credentials, credentials), Effect.provideService(HttpClient.HttpClient, http), orDieCredentialsUnavailable(TURSO_AUTH_PROVIDER_NAME))), Effect.cached);
50
51
  return Context.make(Credentials, credentials).pipe(Context.add(Organization, organization));
51
52
  });
52
53
  /**
@@ -58,23 +59,18 @@ const make = (resolve) => Effect.gen(function* () {
58
59
  * Effect.provide(Turso.fromToken({ apiToken: "...", organization: "my-org" }))
59
60
  * ```
60
61
  */
61
- export const fromToken = (input) => Layer.effectContext(make(Effect.succeed({
62
+ export const fromToken = (input) => Effect.succeed({
62
63
  type: "apiToken",
63
64
  apiToken: typeof input.apiToken === "string" ? Redacted.make(input.apiToken) : input.apiToken,
64
65
  apiBaseUrl: input.apiBaseUrl ?? DEFAULT_API_BASE_URL,
65
66
  organization: input.organization,
66
67
  source: { type: "stored" },
67
- })));
68
+ }).pipe(make, Layer.effectContext);
68
69
  /**
69
70
  * Build Turso `Credentials` + `Organization` that resolve through the
70
71
  * Alchemy AuthProvider: environment credentials (`TURSO_API_TOKEN`) when
71
72
  * present, otherwise the selected profile. Resolution is deferred until the
72
73
  * first API call, so building the provider layers never needs a profile.
73
74
  */
74
- export const fromAuthProvider = () => Layer.effectContext(Effect.gen(function* () {
75
- const resolve = yield* resolveProviderConfig(TURSO_AUTH_PROVIDER_NAME).pipe(Effect.flatMap(({ profileName, resolve }) => Effect.mapError(resolve, (e) => new ConfigError({
76
- message: `Failed to resolve Turso credentials from ${profileName === undefined ? "the environment" : `profile '${profileName}'`}: ${e.message}`,
77
- }))), deferUntilFirstUse);
78
- return yield* make(resolve.pipe(orDieCredentialsUnavailable(TURSO_AUTH_PROVIDER_NAME)));
79
- }));
75
+ export const fromAuthProvider = () => Layer.effectContext(lazyCredentials()(TURSO_AUTH_PROVIDER_NAME, (creds) => creds).pipe(Effect.flatMap(make)));
80
76
  //# sourceMappingURL=Credentials.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Credentials.js","sourceRoot":"","sources":["../src/Credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Credentials.js","sources":["../src/Credentials.ts"],"names":[],"mappings":"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"}
package/lib/Database.d.ts CHANGED
@@ -4,6 +4,14 @@ import * as Provider from "alchemy/Provider";
4
4
  import { Resource } from "alchemy/Resource";
5
5
  import * as Redacted from "effect/Redacted";
6
6
  import type { Providers } from "./Providers.ts";
7
+ declare const DatabaseUnexpectedResponse_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
8
+ readonly _tag: "DatabaseUnexpectedResponse";
9
+ } & Readonly<A>;
10
+ export declare class DatabaseUnexpectedResponse extends DatabaseUnexpectedResponse_base<{
11
+ readonly message: string;
12
+ readonly cause?: unknown;
13
+ }> {
14
+ }
7
15
  export interface DatabaseSeed {
8
16
  /**
9
17
  * `"database"` copies an existing database (optionally at a point in
@@ -100,6 +108,13 @@ export interface DatabaseProps {
100
108
  * Bookkeeping lives in Alchemy's `__alchemy_migrations` table. A database
101
109
  * previously migrated by drizzle-kit is adopted by a one-way conversion on
102
110
  * first deploy.
111
+ *
112
+ * History is forward-only and linear. A new file must sort after every
113
+ * applied one, or the deploy fails with `NonLinearMigrationHistoryError`;
114
+ * an edited or deleted applied file fails with
115
+ * `RewrittenMigrationHistoryError`. Renaming an applied file without
116
+ * changing its contents keeps it applied. See
117
+ * [Migrations](https://alchemy.run/sql/effect-sql/migrations#change-migration-history-safely).
103
118
  */
104
119
  migrations?: MigrationsInput;
105
120
  /**
@@ -150,7 +165,15 @@ export interface DatabaseAttributes {
150
165
  /** Content hashes for the last applied import files. */
151
166
  importHashes: Record<string, string>;
152
167
  }
153
- export type Database = Resource<"Turso.Database", DatabaseProps, DatabaseAttributes, never, Providers>;
168
+ export type Database = Resource<"Turso.Database", DatabaseProps, DatabaseAttributes, never, Providers, DatabaseLookup>;
169
+ /**
170
+ * Props for {@link Database.lookup}: find a database this stack
171
+ * doesn't manage by its name, in the credentialed organization.
172
+ */
173
+ export interface DatabaseLookup {
174
+ /** Database name. */
175
+ name: string;
176
+ }
154
177
  /**
155
178
  * A Turso database: a SQLite database that lives in a {@link Group}.
156
179
  * Connect to it from a Worker or Lambda with {@link Connect}, or create a
@@ -209,9 +232,21 @@ export type Database = Resource<"Turso.Database", DatabaseProps, DatabaseAttribu
209
232
  * const db = yield* Drizzle.LibSQL(conn);
210
233
  * ```
211
234
  *
235
+ * ### Looking up an existing database
236
+ * `Database.lookup` references a database Alchemy doesn't manage (created with
237
+ * the Turso CLI or by another stack). It is read during plan/deploy, never
238
+ * created, updated or deleted.
239
+ *
240
+ * **Example:** Mint a token for an existing database
241
+ * ```typescript
242
+ * const db = Turso.Database.lookup({ name: "app" });
243
+ * const token = yield* Turso.DatabaseToken("AppToken", { database: db.name });
244
+ * ```
245
+ *
212
246
  * @resource
213
247
  * @product Database
214
248
  */
215
249
  export declare const Database: import("alchemy/Resource").ResourceClass<Database>;
216
250
  export declare const DatabaseProvider: () => import("effect/Layer").Layer<Provider.Provider<Database>, never, import("effect/FileSystem").FileSystem | import("./Credentials.ts").Organization | import("effect/Path").Path | import("alchemy/Stack").Stack | import("alchemy/Stage").Stage | turso.TursoOpContext>;
251
+ export {};
217
252
  //# sourceMappingURL=Database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Database.d.ts","sources":["../src/Database.ts"],"names":[],"mappings":"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"}
package/lib/Database.js CHANGED
@@ -1,16 +1,19 @@
1
1
  import { diffMigrations, migrationsAttrs, migrationsInputOf, runMigrations, stampedOf, } from "@alchemy.run/sql/Migrations";
2
- import { hashImports, readSqlFile, splitSqlStatements } from "@alchemy.run/sql/SqlFile";
2
+ import { applySqlImports, hashImports, splitSqlStatements } from "@alchemy.run/sql/SqlFile";
3
3
  import * as turso from "@distilled.cloud/turso/turso";
4
4
  import { Unowned } from "alchemy/AdoptPolicy";
5
5
  import { deepEqual, isResolved } from "alchemy/Diff";
6
6
  import { createPhysicalName } from "alchemy/PhysicalName";
7
7
  import * as Provider from "alchemy/Provider";
8
8
  import { Resource } from "alchemy/Resource";
9
+ import * as Data from "effect/Data";
9
10
  import * as Effect from "effect/Effect";
10
11
  import * as HttpClient from "effect/http/HttpClient";
11
12
  import * as Redacted from "effect/Redacted";
12
13
  import { organization } from "./Credentials.js";
13
14
  import * as Hrana from "./Hrana.js";
15
+ export class DatabaseUnexpectedResponse extends Data.TaggedError("DatabaseUnexpectedResponse") {
16
+ }
14
17
  /**
15
18
  * A Turso database: a SQLite database that lives in a {@link Group}.
16
19
  * Connect to it from a Worker or Lambda with {@link Connect}, or create a
@@ -69,6 +72,17 @@ import * as Hrana from "./Hrana.js";
69
72
  * const db = yield* Drizzle.LibSQL(conn);
70
73
  * ```
71
74
  *
75
+ * ### Looking up an existing database
76
+ * `Database.lookup` references a database Alchemy doesn't manage (created with
77
+ * the Turso CLI or by another stack). It is read during plan/deploy, never
78
+ * created, updated or deleted.
79
+ *
80
+ * **Example:** Mint a token for an existing database
81
+ * ```typescript
82
+ * const db = Turso.Database.lookup({ name: "app" });
83
+ * const token = yield* Turso.DatabaseToken("AppToken", { database: db.name });
84
+ * ```
85
+ *
72
86
  * @resource
73
87
  * @product Database
74
88
  */
@@ -90,12 +104,14 @@ const withConnection = (org, database, use) => Effect.gen(function* () {
90
104
  authorization: "full-access",
91
105
  });
92
106
  if (!jwt) {
93
- return yield* Effect.fail(new Error(`Turso returned no token for ${database.name}`));
107
+ return yield* new DatabaseUnexpectedResponse({
108
+ message: `Turso returned no token for ${database.name}`,
109
+ });
94
110
  }
95
111
  return yield* use({ url: `https://${database.hostname}`, authToken: jwt }, client);
96
112
  });
97
113
  export const DatabaseProvider = () => Provider.effect(Database, Effect.gen(function* () {
98
- const observe = (org, name) => turso.getDatabase({ organizationSlug: org, databaseName: name }).pipe(Effect.map((res) => res.database), Effect.catchTag("NotFound", () => Effect.succeed(undefined)));
114
+ const observe = (org, name) => turso.getDatabase({ organizationSlug: org, databaseName: name }).pipe(Effect.map((res) => res.database), Effect.catchTag("NotFound", () => Effect.undefined));
99
115
  const toAttrs = (org, db, config, rest) => ({
100
116
  dbId: db.DbId ?? "",
101
117
  name: db.Name,
@@ -144,7 +160,19 @@ export const DatabaseProvider = () => Provider.effect(Database, Effect.gen(funct
144
160
  }
145
161
  }
146
162
  }),
147
- read: Effect.fn(function* ({ id, olds, output }) {
163
+ lookup: Effect.fn(function* ({ name }) {
164
+ const org = yield* organization;
165
+ const db = yield* observe(org, name);
166
+ if (!db)
167
+ return undefined;
168
+ return toAttrs(org, db, yield* getConfig(org, name), {
169
+ migrationsDir: undefined,
170
+ migrationsTable: undefined,
171
+ migrationsHashes: {},
172
+ importHashes: {},
173
+ });
174
+ }),
175
+ read: Effect.fn(function* ({ id, olds, output, previous }) {
148
176
  const org = output?.organization ?? (yield* organization);
149
177
  const name = output?.name ?? (yield* databaseName(id, olds?.name));
150
178
  const db = yield* observe(org, name);
@@ -157,8 +185,12 @@ export const DatabaseProvider = () => Provider.effect(Database, Effect.gen(funct
157
185
  importHashes: output?.importHashes ?? {},
158
186
  });
159
187
  // Turso has no tags: a database found under an explicit,
160
- // user-chosen name without prior state may belong to someone else.
161
- return output === undefined && olds?.name !== undefined ? Unowned(attrs) : attrs;
188
+ // user-chosen name without prior state may belong to someone else — unless it
189
+ // is the generation a delete-first replacement is about to free.
190
+ const ours = output !== undefined ||
191
+ olds?.name === undefined ||
192
+ (previous?.organization === org && previous.name === name);
193
+ return ours ? attrs : Unowned(attrs);
162
194
  }),
163
195
  reconcile: Effect.fn(function* ({ id, news, output, session }) {
164
196
  const org = output?.organization ?? (yield* organization);
@@ -185,7 +217,9 @@ export const DatabaseProvider = () => Provider.effect(Database, Effect.gen(funct
185
217
  .pipe(Effect.catchTag("Conflict", () => Effect.void));
186
218
  db = yield* observe(org, name);
187
219
  if (!db) {
188
- return yield* Effect.fail(new Error(`Turso database ${name} vanished after create`));
220
+ return yield* new DatabaseUnexpectedResponse({
221
+ message: `Turso database ${name} vanished after create`,
222
+ });
189
223
  }
190
224
  }
191
225
  // Sync configuration — diff observed settings against desired
@@ -226,19 +260,14 @@ export const DatabaseProvider = () => Provider.effect(Database, Effect.gen(funct
226
260
  withExecutor: (apply) => withConnection(org, target, (connection, client) => apply(Hrana.makeMigrationExecutor(connection, client))),
227
261
  })
228
262
  : undefined;
229
- const previousImports = output?.importHashes ?? {};
230
- const importHashes = {};
231
- if (news.importFiles?.length) {
232
- const root = yield* rootDir;
233
- for (const filePath of news.importFiles) {
234
- const file = yield* readSqlFile(root, filePath);
235
- if (previousImports[filePath] !== file.hash) {
236
- yield* session.note(`Importing ${filePath}...`);
237
- yield* withConnection(org, target, (connection, client) => Hrana.transaction(connection, splitSqlStatements(file.sql)).pipe(Effect.provideService(HttpClient.HttpClient, client)));
238
- }
239
- importHashes[filePath] = file.hash;
240
- }
241
- }
263
+ const importHashes = yield* applySqlImports({
264
+ importFiles: news.importFiles,
265
+ rootDir: yield* rootDir,
266
+ previous: output?.importHashes,
267
+ apply: (file) => session
268
+ .note(`Importing ${file.id}...`)
269
+ .pipe(Effect.andThen(withConnection(org, target, (connection, client) => Hrana.transaction(connection, splitSqlStatements(file.sql)).pipe(Effect.provideService(HttpClient.HttpClient, client))))),
270
+ });
242
271
  return toAttrs(org, db, config, {
243
272
  ...migrationsAttrs({ input: migrationsInput, run: migrations, output }),
244
273
  importHashes,
@@ -1 +1 @@
1
- {"version":3,"file":"Database.js","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Database.js","sources":["../src/Database.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,14 @@ import { Resource } from "alchemy/Resource";
4
4
  import * as Effect from "effect/Effect";
5
5
  import * as Redacted from "effect/Redacted";
6
6
  import type { Providers } from "./Providers.ts";
7
+ declare const DatabaseTokenUnexpectedResponse_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
8
+ readonly _tag: "DatabaseTokenUnexpectedResponse";
9
+ } & Readonly<A>;
10
+ export declare class DatabaseTokenUnexpectedResponse extends DatabaseTokenUnexpectedResponse_base<{
11
+ readonly message: string;
12
+ readonly cause?: unknown;
13
+ }> {
14
+ }
7
15
  /** Access level of a Turso SQL auth token. */
8
16
  export type TokenAuthorization = "full-access" | "read-only";
9
17
  /** Props shared by {@link DatabaseToken} and {@link GroupToken}. */
@@ -92,4 +100,5 @@ export declare const diffSqlToken: (args_0: {
92
100
  /** Whether a previously minted token can be kept as-is. */
93
101
  export declare const isTokenCurrent: (output: SqlTokenAttributes | undefined, olds: SqlTokenProps | undefined, news: SqlTokenProps) => Effect.Effect<boolean, never, never>;
94
102
  export declare const DatabaseTokenProvider: () => import("effect/Layer").Layer<Provider.Provider<DatabaseToken>, never, import("./Credentials.ts").Organization | turso.TursoOpContext>;
103
+ export {};
95
104
  //# sourceMappingURL=DatabaseToken.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseToken.d.ts","sourceRoot":"","sources":["../src/DatabaseToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAC;AAEtD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,8CAA8C;AAC9C,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,WAAW,CAAC;AAE7D,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,aAAa,EAAE,kBAAkB,CAAC;IAClC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa,yDAAiD,CAAC;AAE5E,wEAAwE;AACxE,eAAO,MAAM,WAAW,UAAW,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAG,MAAM,GAAG,SAWvE,CAAC;AAKF;;;GAGG;AACH,eAAO,MAAM,YAAY;YAGf,kBAAkB,GAAG,SAAS;;qBAIwB,QAAQ;4BACtE,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,cAAc,wIAkBzB,CAAC;AAEH,eAAO,MAAM,qBAAqB,6IAqD/B,CAAC"}
1
+ {"version":3,"file":"DatabaseToken.d.ts","sources":["../src/DatabaseToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAC;AAEtD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;AAEhD,qBAAa,+BAAgC,SAAQ,qCAEnD;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,8CAA8C;AAC9C,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,WAAW,CAAC;AAE7D,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,aAAa,EAAE,kBAAkB,CAAC;IAClC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa,yDAAiD,CAAC;AAE5E,wEAAwE;AACxE,eAAO,MAAM,WAAW,UAAW,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAG,MAAM,GAAG,SAWvE,CAAC;AAKF;;;GAGG;AACH,eAAO,MAAM,YAAY;YAGf,kBAAkB,GAAG,SAAS;;qBAIwB,QAAQ;4BACtE,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,cAAc,wIAkBzB,CAAC;AAEH,eAAO,MAAM,qBAAqB,6IAuD/B,CAAC"}
@@ -3,9 +3,12 @@ import { deepEqual } from "alchemy/Diff";
3
3
  import * as Provider from "alchemy/Provider";
4
4
  import { Resource } from "alchemy/Resource";
5
5
  import * as Clock from "effect/Clock";
6
+ import * as Data from "effect/Data";
6
7
  import * as Effect from "effect/Effect";
7
8
  import * as Redacted from "effect/Redacted";
8
9
  import { organization } from "./Credentials.js";
10
+ export class DatabaseTokenUnexpectedResponse extends Data.TaggedError("DatabaseTokenUnexpectedResponse") {
11
+ }
9
12
  /**
10
13
  * A token that lets an app run SQL on one Turso database. Workers and
11
14
  * Lambdas should use {@link Connect}, which creates one for you. Use
@@ -110,7 +113,9 @@ export const DatabaseTokenProvider = () => Provider.effect(DatabaseToken, Effect
110
113
  : undefined,
111
114
  });
112
115
  if (!jwt) {
113
- return yield* Effect.fail(new Error(`Turso returned no token for ${news.database}`));
116
+ return yield* new DatabaseTokenUnexpectedResponse({
117
+ message: `Turso returned no token for ${news.database}`,
118
+ });
114
119
  }
115
120
  return {
116
121
  token: jwt,