@alchemy.run/turso 2.0.0-beta.84 → 2.0.0-beta.85
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/lib/ApiToken.d.ts +9 -0
- package/lib/ApiToken.d.ts.map +1 -1
- package/lib/ApiToken.js +10 -2
- package/lib/ApiToken.js.map +1 -1
- package/lib/AuthProvider.d.ts +1 -1
- package/lib/AuthProvider.d.ts.map +1 -1
- package/lib/AuthProvider.js +1 -1
- package/lib/AuthProvider.js.map +1 -1
- package/lib/Contributions.d.ts +1 -1
- package/lib/Credentials.d.ts +1 -1
- package/lib/Credentials.d.ts.map +1 -1
- package/lib/Credentials.js +11 -15
- package/lib/Credentials.js.map +1 -1
- package/lib/Database.d.ts +9 -0
- package/lib/Database.d.ts.map +1 -1
- package/lib/Database.js +26 -20
- package/lib/Database.js.map +1 -1
- package/lib/DatabaseToken.d.ts +9 -0
- package/lib/DatabaseToken.d.ts.map +1 -1
- package/lib/DatabaseToken.js +6 -1
- package/lib/DatabaseToken.js.map +1 -1
- package/lib/Group.d.ts +9 -0
- package/lib/Group.d.ts.map +1 -1
- package/lib/Group.js +14 -5
- package/lib/Group.js.map +1 -1
- package/lib/GroupToken.d.ts +9 -0
- package/lib/GroupToken.d.ts.map +1 -1
- package/lib/GroupToken.js +6 -1
- package/lib/GroupToken.js.map +1 -1
- package/lib/Hrana.d.ts.map +1 -1
- package/lib/Hrana.js +5 -1
- package/lib/Hrana.js.map +1 -1
- package/lib/ManageDatabases.js +1 -1
- package/lib/ManageDatabases.js.map +1 -1
- package/lib/OrganizationMember.js +1 -1
- package/lib/OrganizationMember.js.map +1 -1
- package/lib/Providers.d.ts +1 -1
- package/lib/Providers.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/ApiToken.ts +12 -2
- package/src/AuthProvider.ts +1 -1
- package/src/Credentials.ts +22 -49
- package/src/Database.ts +38 -23
- package/src/DatabaseToken.ts +11 -1
- package/src/Group.ts +18 -5
- package/src/GroupToken.ts +9 -1
- package/src/Hrana.ts +3 -1
- package/src/ManageDatabases.ts +1 -1
- 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
|
package/lib/ApiToken.d.ts.map
CHANGED
|
@@ -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;
|
|
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;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*
|
|
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 {
|
package/lib/ApiToken.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiToken.js","sourceRoot":"","sources":["../src/ApiToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ApiToken.js","sourceRoot":"","sources":["../src/ApiToken.ts"],"names":[],"mappings":"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"}
|
package/lib/AuthProvider.d.ts
CHANGED
|
@@ -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/
|
|
32
|
+
export declare const TursoAuth: import("effect/Layer").Layer<never, never, import("alchemy/Auth/Registry").AuthProviders | import("effect/FileSystem").FileSystem | import("effect/Path").Path>;
|
|
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,
|
|
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,iKAAkB,CAAC;AAEzC,iDAAiD;AACjD,eAAO,MAAM,sBAAsB,6JAAyB,CAAC;AAC7D,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAC"}
|
package/lib/AuthProvider.js
CHANGED
|
@@ -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*
|
|
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
|
}
|
package/lib/AuthProvider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthProvider.js","sourceRoot":"","sources":["../src/AuthProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAoBhD,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,QAAQ,IAAI,MAAM,CAAC;IACjC,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"AuthProvider.js","sourceRoot":"","sources":["../src/AuthProvider.ts"],"names":[],"mappings":"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"}
|
package/lib/Contributions.d.ts
CHANGED
|
@@ -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/
|
|
4
|
+
readonly auth: Contributions.Lazy<import("effect/Layer").Layer<never, never, import("alchemy/Auth/Registry").AuthProviders | import("effect/FileSystem").FileSystem | import("effect/Path").Path>>;
|
|
5
5
|
};
|
|
6
6
|
export default _default;
|
|
7
7
|
//# sourceMappingURL=Contributions.d.ts.map
|
package/lib/Credentials.d.ts
CHANGED
|
@@ -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/
|
|
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
|
package/lib/Credentials.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Credentials.d.ts","sourceRoot":"","sources":["../src/Credentials.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"Credentials.d.ts","sourceRoot":"","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"}
|
package/lib/Credentials.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ConfigError } from "@distilled.cloud/core/errors";
|
|
2
|
-
import { Credentials, DEFAULT_API_BASE_URL
|
|
2
|
+
import { Credentials, DEFAULT_API_BASE_URL } from "@distilled.cloud/turso/Credentials";
|
|
3
3
|
import * as turso from "@distilled.cloud/turso/turso";
|
|
4
|
-
import {
|
|
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
|
|
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
|
|
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
|
-
|
|
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) =>
|
|
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(
|
|
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
|
package/lib/Credentials.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Credentials.js","sourceRoot":"","sources":["../src/Credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"Credentials.js","sourceRoot":"","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
|
|
@@ -214,4 +222,5 @@ export type Database = Resource<"Turso.Database", DatabaseProps, DatabaseAttribu
|
|
|
214
222
|
*/
|
|
215
223
|
export declare const Database: import("alchemy/Resource").ResourceClass<Database>;
|
|
216
224
|
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>;
|
|
225
|
+
export {};
|
|
217
226
|
//# sourceMappingURL=Database.d.ts.map
|
package/lib/Database.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAC;AAItD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Database.d.ts","sourceRoot":"","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 {
|
|
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
|
|
@@ -90,12 +93,14 @@ const withConnection = (org, database, use) => Effect.gen(function* () {
|
|
|
90
93
|
authorization: "full-access",
|
|
91
94
|
});
|
|
92
95
|
if (!jwt) {
|
|
93
|
-
return yield*
|
|
96
|
+
return yield* new DatabaseUnexpectedResponse({
|
|
97
|
+
message: `Turso returned no token for ${database.name}`,
|
|
98
|
+
});
|
|
94
99
|
}
|
|
95
100
|
return yield* use({ url: `https://${database.hostname}`, authToken: jwt }, client);
|
|
96
101
|
});
|
|
97
102
|
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.
|
|
103
|
+
const observe = (org, name) => turso.getDatabase({ organizationSlug: org, databaseName: name }).pipe(Effect.map((res) => res.database), Effect.catchTag("NotFound", () => Effect.undefined));
|
|
99
104
|
const toAttrs = (org, db, config, rest) => ({
|
|
100
105
|
dbId: db.DbId ?? "",
|
|
101
106
|
name: db.Name,
|
|
@@ -144,7 +149,7 @@ export const DatabaseProvider = () => Provider.effect(Database, Effect.gen(funct
|
|
|
144
149
|
}
|
|
145
150
|
}
|
|
146
151
|
}),
|
|
147
|
-
read: Effect.fn(function* ({ id, olds, output }) {
|
|
152
|
+
read: Effect.fn(function* ({ id, olds, output, previous }) {
|
|
148
153
|
const org = output?.organization ?? (yield* organization);
|
|
149
154
|
const name = output?.name ?? (yield* databaseName(id, olds?.name));
|
|
150
155
|
const db = yield* observe(org, name);
|
|
@@ -157,8 +162,12 @@ export const DatabaseProvider = () => Provider.effect(Database, Effect.gen(funct
|
|
|
157
162
|
importHashes: output?.importHashes ?? {},
|
|
158
163
|
});
|
|
159
164
|
// Turso has no tags: a database found under an explicit,
|
|
160
|
-
// user-chosen name without prior state may belong to someone else
|
|
161
|
-
|
|
165
|
+
// user-chosen name without prior state may belong to someone else — unless it
|
|
166
|
+
// is the generation a delete-first replacement is about to free.
|
|
167
|
+
const ours = output !== undefined ||
|
|
168
|
+
olds?.name === undefined ||
|
|
169
|
+
(previous?.organization === org && previous.name === name);
|
|
170
|
+
return ours ? attrs : Unowned(attrs);
|
|
162
171
|
}),
|
|
163
172
|
reconcile: Effect.fn(function* ({ id, news, output, session }) {
|
|
164
173
|
const org = output?.organization ?? (yield* organization);
|
|
@@ -185,7 +194,9 @@ export const DatabaseProvider = () => Provider.effect(Database, Effect.gen(funct
|
|
|
185
194
|
.pipe(Effect.catchTag("Conflict", () => Effect.void));
|
|
186
195
|
db = yield* observe(org, name);
|
|
187
196
|
if (!db) {
|
|
188
|
-
return yield*
|
|
197
|
+
return yield* new DatabaseUnexpectedResponse({
|
|
198
|
+
message: `Turso database ${name} vanished after create`,
|
|
199
|
+
});
|
|
189
200
|
}
|
|
190
201
|
}
|
|
191
202
|
// Sync configuration — diff observed settings against desired
|
|
@@ -226,19 +237,14 @@ export const DatabaseProvider = () => Provider.effect(Database, Effect.gen(funct
|
|
|
226
237
|
withExecutor: (apply) => withConnection(org, target, (connection, client) => apply(Hrana.makeMigrationExecutor(connection, client))),
|
|
227
238
|
})
|
|
228
239
|
: undefined;
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
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
|
-
}
|
|
240
|
+
const importHashes = yield* applySqlImports({
|
|
241
|
+
importFiles: news.importFiles,
|
|
242
|
+
rootDir: yield* rootDir,
|
|
243
|
+
previous: output?.importHashes,
|
|
244
|
+
apply: (file) => session
|
|
245
|
+
.note(`Importing ${file.id}...`)
|
|
246
|
+
.pipe(Effect.andThen(withConnection(org, target, (connection, client) => Hrana.transaction(connection, splitSqlStatements(file.sql)).pipe(Effect.provideService(HttpClient.HttpClient, client))))),
|
|
247
|
+
});
|
|
242
248
|
return toAttrs(org, db, config, {
|
|
243
249
|
...migrationsAttrs({ input: migrationsInput, run: migrations, output }),
|
|
244
250
|
importHashes,
|
package/lib/Database.js.map
CHANGED
|
@@ -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","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"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"}
|
package/lib/DatabaseToken.d.ts
CHANGED
|
@@ -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;
|
|
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;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"}
|
package/lib/DatabaseToken.js
CHANGED
|
@@ -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*
|
|
116
|
+
return yield* new DatabaseTokenUnexpectedResponse({
|
|
117
|
+
message: `Turso returned no token for ${news.database}`,
|
|
118
|
+
});
|
|
114
119
|
}
|
|
115
120
|
return {
|
|
116
121
|
token: jwt,
|
package/lib/DatabaseToken.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseToken.js","sourceRoot":"","sources":["../src/DatabaseToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"DatabaseToken.js","sourceRoot":"","sources":["../src/DatabaseToken.ts"],"names":[],"mappings":"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"}
|
package/lib/Group.d.ts
CHANGED
|
@@ -2,6 +2,14 @@ import * as turso from "@distilled.cloud/turso/turso";
|
|
|
2
2
|
import * as Provider from "alchemy/Provider";
|
|
3
3
|
import { Resource } from "alchemy/Resource";
|
|
4
4
|
import type { Providers } from "./Providers.ts";
|
|
5
|
+
declare const GroupUnexpectedResponse_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 & {
|
|
6
|
+
readonly _tag: "GroupUnexpectedResponse";
|
|
7
|
+
} & Readonly<A>;
|
|
8
|
+
export declare class GroupUnexpectedResponse extends GroupUnexpectedResponse_base<{
|
|
9
|
+
readonly message: string;
|
|
10
|
+
readonly cause?: unknown;
|
|
11
|
+
}> {
|
|
12
|
+
}
|
|
5
13
|
/**
|
|
6
14
|
* A Turso location code, e.g. `"aws-us-east-1"`. List the locations
|
|
7
15
|
* available to your organization with `turso db locations`.
|
|
@@ -90,4 +98,5 @@ export type Group = Resource<"Turso.Group", GroupProps, GroupAttributes, never,
|
|
|
90
98
|
*/
|
|
91
99
|
export declare const Group: import("alchemy/Resource").ResourceClass<Group>;
|
|
92
100
|
export declare const GroupProvider: () => import("effect/Layer").Layer<Provider.Provider<Group>, never, import("./Credentials.ts").Organization | import("alchemy/Stack").Stack | import("alchemy/Stage").Stage | turso.TursoOpContext>;
|
|
101
|
+
export {};
|
|
93
102
|
//# sourceMappingURL=Group.d.ts.map
|
package/lib/Group.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../src/Group.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;
|
|
1
|
+
{"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../src/Group.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;AAI5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;AAEhD,qBAAa,uBAAwB,SAAQ,6BAA4C;IACvF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAChB,oBAAoB,GACpB,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,GACf,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC;IAC9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,KAAK,iDAAiC,CAAC;AAIpD,eAAO,MAAM,aAAa,qMAmJvB,CAAC"}
|
package/lib/Group.js
CHANGED
|
@@ -4,8 +4,11 @@ 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 { organization } from "./Credentials.js";
|
|
10
|
+
export class GroupUnexpectedResponse extends Data.TaggedError("GroupUnexpectedResponse") {
|
|
11
|
+
}
|
|
9
12
|
/**
|
|
10
13
|
* A Turso group. Every Turso database belongs to one group, and the group
|
|
11
14
|
* decides where its databases run.
|
|
@@ -44,7 +47,7 @@ export const GroupProvider = () => Provider.effect(Group, Effect.gen(function* (
|
|
|
44
47
|
const groupName = (id, name) => name
|
|
45
48
|
? Effect.succeed(name)
|
|
46
49
|
: createPhysicalName({ id, lowercase: true, maxLength: 32, delimiter: "-" });
|
|
47
|
-
const observe = (org, name) => turso.getGroup({ organizationSlug: org, groupName: name }).pipe(Effect.map((res) => res.group), Effect.catchTag("NotFound", () => Effect.
|
|
50
|
+
const observe = (org, name) => turso.getGroup({ organizationSlug: org, groupName: name }).pipe(Effect.map((res) => res.group), Effect.catchTag("NotFound", () => Effect.undefined));
|
|
48
51
|
const toAttrs = (org, group, deleteProtection) => ({
|
|
49
52
|
name: group.name,
|
|
50
53
|
uuid: group.uuid ?? "",
|
|
@@ -70,7 +73,7 @@ export const GroupProvider = () => Provider.effect(Group, Effect.gen(function* (
|
|
|
70
73
|
return { action: "replace", deleteFirst: news.name !== undefined };
|
|
71
74
|
}
|
|
72
75
|
}),
|
|
73
|
-
read: Effect.fn(function* ({ id, olds, output }) {
|
|
76
|
+
read: Effect.fn(function* ({ id, olds, output, previous }) {
|
|
74
77
|
const org = output?.organization ?? (yield* organization);
|
|
75
78
|
const name = output?.name ?? (yield* groupName(id, olds?.name));
|
|
76
79
|
const group = yield* observe(org, name);
|
|
@@ -78,8 +81,12 @@ export const GroupProvider = () => Provider.effect(Group, Effect.gen(function* (
|
|
|
78
81
|
return undefined;
|
|
79
82
|
const attrs = toAttrs(org, group, group.delete_protection ?? false);
|
|
80
83
|
// Turso has no tags: a group found under an explicit, user-chosen
|
|
81
|
-
// name without prior state may belong to someone else
|
|
82
|
-
|
|
84
|
+
// name without prior state may belong to someone else — unless it
|
|
85
|
+
// is the generation a delete-first replacement is about to free.
|
|
86
|
+
const ours = output !== undefined ||
|
|
87
|
+
olds?.name === undefined ||
|
|
88
|
+
(previous?.organization === org && previous.name === name);
|
|
89
|
+
return ours ? attrs : Unowned(attrs);
|
|
83
90
|
}),
|
|
84
91
|
reconcile: Effect.fn(function* ({ id, news, output, session }) {
|
|
85
92
|
const org = output?.organization ?? (yield* organization);
|
|
@@ -99,7 +106,9 @@ export const GroupProvider = () => Provider.effect(Group, Effect.gen(function* (
|
|
|
99
106
|
})
|
|
100
107
|
.pipe(Effect.map((res) => res.group), Effect.catchTag("Conflict", () => observe(org, name)));
|
|
101
108
|
if (!group) {
|
|
102
|
-
return yield*
|
|
109
|
+
return yield* new GroupUnexpectedResponse({
|
|
110
|
+
message: `Turso group ${name} vanished after create`,
|
|
111
|
+
});
|
|
103
112
|
}
|
|
104
113
|
}
|
|
105
114
|
// Sync replica locations against the observed set.
|