alchemy-convex 0.0.1

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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +244 -0
  3. package/dist/AuthProvider.d.ts +35 -0
  4. package/dist/AuthProvider.d.ts.map +1 -0
  5. package/dist/AuthProvider.js +127 -0
  6. package/dist/AuthProvider.js.map +1 -0
  7. package/dist/Credentials.d.ts +13 -0
  8. package/dist/Credentials.d.ts.map +1 -0
  9. package/dist/Credentials.js +23 -0
  10. package/dist/Credentials.js.map +1 -0
  11. package/dist/Deployment.d.ts +45 -0
  12. package/dist/Deployment.d.ts.map +1 -0
  13. package/dist/Deployment.js +175 -0
  14. package/dist/Deployment.js.map +1 -0
  15. package/dist/ManagementApi.d.ts +108 -0
  16. package/dist/ManagementApi.d.ts.map +1 -0
  17. package/dist/ManagementApi.js +312 -0
  18. package/dist/ManagementApi.js.map +1 -0
  19. package/dist/OAuthClient.d.ts +38 -0
  20. package/dist/OAuthClient.d.ts.map +1 -0
  21. package/dist/OAuthClient.js +154 -0
  22. package/dist/OAuthClient.js.map +1 -0
  23. package/dist/Project.d.ts +34 -0
  24. package/dist/Project.d.ts.map +1 -0
  25. package/dist/Project.js +75 -0
  26. package/dist/Project.js.map +1 -0
  27. package/dist/ProjectHash.d.ts +25 -0
  28. package/dist/ProjectHash.d.ts.map +1 -0
  29. package/dist/ProjectHash.js +59 -0
  30. package/dist/ProjectHash.js.map +1 -0
  31. package/dist/Providers.d.ts +15 -0
  32. package/dist/Providers.d.ts.map +1 -0
  33. package/dist/Providers.js +24 -0
  34. package/dist/Providers.js.map +1 -0
  35. package/dist/Runtime.d.ts +61 -0
  36. package/dist/Runtime.d.ts.map +1 -0
  37. package/dist/Runtime.js +208 -0
  38. package/dist/Runtime.js.map +1 -0
  39. package/dist/index.d.ts +10 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +10 -0
  42. package/dist/index.js.map +1 -0
  43. package/package.json +55 -0
@@ -0,0 +1,208 @@
1
+ import { spawn } from "node:child_process";
2
+ import { mkdtemp, rm, writeFile } from "node:fs/promises";
3
+ import { createRequire } from "node:module";
4
+ import { dirname, join, resolve } from "node:path";
5
+ import { tmpdir } from "node:os";
6
+ import * as Output from "alchemy/Output";
7
+ import * as Context from "effect/Context";
8
+ import * as Data from "effect/Data";
9
+ import * as Effect from "effect/Effect";
10
+ import * as Layer from "effect/Layer";
11
+ import * as Redacted from "effect/Redacted";
12
+ export class ConvexCliError extends Data.TaggedError("ConvexCliError") {
13
+ }
14
+ export class ConvexCli extends Context.Service()("alchemy-convex/ConvexCli") {
15
+ }
16
+ const plainValue = (value) => Redacted.isRedacted(value) ? Redacted.value(value) : value;
17
+ const serializeEnvironment = (environment) => Object.entries(environment)
18
+ .sort(([a], [b]) => a.localeCompare(b))
19
+ .map(([key, value]) => `${key}=${JSON.stringify(plainValue(value))}`)
20
+ .join("\n");
21
+ const deploymentTypeFromKey = (deployKey) => {
22
+ if (deployKey.startsWith("preview:"))
23
+ return "preview";
24
+ if (deployKey.startsWith("prod:"))
25
+ return "prod";
26
+ if (deployKey.startsWith("dev:"))
27
+ return "dev";
28
+ return "unknown";
29
+ };
30
+ const deploymentNameFromKey = (deployKey) => {
31
+ const identity = deployKey.slice(0, deployKey.indexOf("|"));
32
+ if (identity.startsWith("prod:") || identity.startsWith("dev:")) {
33
+ return identity.slice(identity.indexOf(":") + 1);
34
+ }
35
+ if (identity.startsWith("preview:") && identity.split(":").length === 2) {
36
+ return identity.slice("preview:".length);
37
+ }
38
+ if (!identity.includes(":"))
39
+ return identity;
40
+ return undefined;
41
+ };
42
+ const urlPattern = /https:\/\/[a-z0-9-]+(?:\.[a-z0-9-]+)?\.convex\.cloud\b/gi;
43
+ export const deploymentMetadata = (deployKey, output) => {
44
+ const urls = output.match(urlPattern);
45
+ const nameFromKey = deploymentNameFromKey(deployKey);
46
+ const url = urls?.at(-1) ??
47
+ (nameFromKey ? `https://${nameFromKey}.convex.cloud` : undefined);
48
+ if (!url) {
49
+ throw new ConvexCliError({
50
+ operation: "deploy",
51
+ message: "Convex deployed successfully but its deployment URL could not be determined from the CLI output.",
52
+ });
53
+ }
54
+ const deploymentName = new URL(url).hostname.split(".")[0];
55
+ return {
56
+ deploymentName,
57
+ deploymentType: deploymentTypeFromKey(deployKey),
58
+ url,
59
+ httpActionsUrl: url.replace(/\.convex\.cloud$/, ".convex.site"),
60
+ };
61
+ };
62
+ const resolveInvocation = (cwd, args, binary) => {
63
+ if (binary)
64
+ return { command: binary, args };
65
+ try {
66
+ const require = createRequire(join(cwd, "__alchemy_convex__.cjs"));
67
+ const packageJson = require.resolve("convex/package.json");
68
+ return {
69
+ command: process.execPath,
70
+ args: [join(dirname(packageJson), "bin", "main.js"), ...args],
71
+ };
72
+ }
73
+ catch (cause) {
74
+ throw new ConvexCliError({
75
+ operation: "resolve",
76
+ message: `Could not resolve the local Convex CLI from ${cwd}. Install convex in the project or configure providers({ binary }).`,
77
+ cause,
78
+ });
79
+ }
80
+ };
81
+ const runProcess = (command, args, options) => new Promise((resolvePromise, reject) => {
82
+ const child = spawn(command, args, {
83
+ cwd: options.cwd,
84
+ env: options.env,
85
+ shell: false,
86
+ stdio: ["ignore", "pipe", "pipe"],
87
+ });
88
+ let stdout = "";
89
+ let stderr = "";
90
+ child.stdout.setEncoding("utf8");
91
+ child.stderr.setEncoding("utf8");
92
+ child.stdout.on("data", (chunk) => (stdout += chunk));
93
+ child.stderr.on("data", (chunk) => (stderr += chunk));
94
+ child.on("error", reject);
95
+ child.on("close", (code) => resolvePromise({ exitCode: code ?? 1, stdout, stderr }));
96
+ });
97
+ export const ConvexCliLive = (options = {}) => Layer.succeed(ConvexCli, ConvexCli.of({
98
+ deploy: (request) => {
99
+ const cwd = resolve(request.projectDir);
100
+ const deployKey = Redacted.value(request.deployKey);
101
+ const childEnv = {
102
+ ...process.env,
103
+ ...options.extraEnv,
104
+ CONVEX_DEPLOY_KEY: deployKey,
105
+ };
106
+ const execute = (operation, args) => Effect.tryPromise({
107
+ try: () => {
108
+ const invocation = resolveInvocation(cwd, args, options.binary);
109
+ return runProcess(invocation.command, invocation.args, {
110
+ cwd,
111
+ env: childEnv,
112
+ });
113
+ },
114
+ catch: (cause) => cause instanceof ConvexCliError
115
+ ? cause
116
+ : new ConvexCliError({
117
+ operation,
118
+ message: `Failed to start Convex CLI operation ${operation}`,
119
+ cause,
120
+ }),
121
+ }).pipe(Effect.flatMap((result) => result.exitCode === 0
122
+ ? Effect.succeed(result)
123
+ : Effect.fail(new ConvexCliError({
124
+ operation,
125
+ message: `Convex CLI operation ${operation} exited with code ${result.exitCode}`,
126
+ exitCode: result.exitCode,
127
+ stderr: result.stderr,
128
+ }))));
129
+ const desiredKeys = Object.keys(request.environment).sort();
130
+ const invalidKey = desiredKeys.find((key) => !/^[A-Za-z_][A-Za-z0-9_]*$/.test(key));
131
+ const validationError = invalidKey
132
+ ? new ConvexCliError({
133
+ operation: "env set",
134
+ message: `Invalid Convex environment variable name: ${JSON.stringify(invalidKey)}`,
135
+ })
136
+ : undefined;
137
+ const validateEnvironment = validationError
138
+ ? Effect.fail(validationError)
139
+ : Effect.void;
140
+ const removedKeys = request.previousEnvironmentKeys.filter((key) => !desiredKeys.includes(key));
141
+ const removeOldEnvironment = Effect.forEach(removedKeys, (key) => execute(`env remove ${key}`, ["env", "remove", key]), { discard: true });
142
+ const setEnvironment = desiredKeys.length === 0
143
+ ? Effect.void
144
+ : Effect.acquireUseRelease(Effect.tryPromise({
145
+ try: async () => {
146
+ const directory = await mkdtemp(join(tmpdir(), "alchemy-convex-"));
147
+ const file = join(directory, "environment.env");
148
+ await writeFile(file, serializeEnvironment(request.environment), { encoding: "utf8", mode: 0o600 });
149
+ return { directory, file };
150
+ },
151
+ catch: (cause) => new ConvexCliError({
152
+ operation: "env set",
153
+ message: "Failed to prepare a temporary Convex environment file",
154
+ cause,
155
+ }),
156
+ }), ({ file }) => execute("env set", [
157
+ "env",
158
+ "set",
159
+ "--force",
160
+ "--from-file",
161
+ file,
162
+ ]), ({ directory }) => Effect.promise(() => rm(directory, { recursive: true, force: true }))).pipe(Effect.asVoid);
163
+ const deployArgs = [
164
+ "deploy",
165
+ "--yes",
166
+ "--typecheck",
167
+ request.typecheck,
168
+ "--codegen",
169
+ request.codegen ? "enable" : "disable",
170
+ ];
171
+ if (request.message)
172
+ deployArgs.push("--message", request.message);
173
+ return validateEnvironment.pipe(Effect.andThen(removeOldEnvironment), Effect.andThen(setEnvironment), Effect.andThen(execute("deploy", deployArgs)), Effect.flatMap((result) => Effect.try({
174
+ try: () => ({
175
+ ...deploymentMetadata(deployKey, `${result.stdout}\n${result.stderr}`),
176
+ stdout: result.stdout,
177
+ stderr: result.stderr,
178
+ }),
179
+ catch: (cause) => cause instanceof ConvexCliError
180
+ ? cause
181
+ : new ConvexCliError({
182
+ operation: "deploy",
183
+ message: "Failed to read Convex deployment metadata",
184
+ cause,
185
+ }),
186
+ })));
187
+ },
188
+ }));
189
+ /**
190
+ * Runtime context used by Alchemy's `Platform` constructor. Convex owns the
191
+ * actual function runtime; this context captures Alchemy Outputs as Convex
192
+ * environment variables during the plan phase.
193
+ */
194
+ export const createConvexRuntimeContext = (type, id) => {
195
+ const env = {};
196
+ return {
197
+ Type: type,
198
+ id,
199
+ env,
200
+ set: (bindingId, output) => Effect.sync(() => {
201
+ const key = bindingId.replaceAll(/[^a-zA-Z0-9]/g, "_");
202
+ env[key] = output;
203
+ return key;
204
+ }),
205
+ get: (key) => Effect.sync(() => process.env[key]),
206
+ };
207
+ };
208
+ //# sourceMappingURL=Runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Runtime.js","sourceRoot":"","sources":["../src/Runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export * from "./AuthProvider.js";
2
+ export * from "./Credentials.js";
3
+ export * from "./Deployment.js";
4
+ export * from "./ManagementApi.js";
5
+ export * from "./OAuthClient.js";
6
+ export * from "./ProjectHash.js";
7
+ export * from "./Project.js";
8
+ export * from "./Providers.js";
9
+ export * from "./Runtime.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ export * from "./AuthProvider.js";
2
+ export * from "./Credentials.js";
3
+ export * from "./Deployment.js";
4
+ export * from "./ManagementApi.js";
5
+ export * from "./OAuthClient.js";
6
+ export * from "./ProjectHash.js";
7
+ export * from "./Project.js";
8
+ export * from "./Providers.js";
9
+ export * from "./Runtime.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "alchemy-convex",
3
+ "version": "0.0.1",
4
+ "description": "Effect-native Convex project resources for Alchemy v2",
5
+ "keywords": [
6
+ "alchemy",
7
+ "convex",
8
+ "effect",
9
+ "infrastructure-as-code"
10
+ ],
11
+ "license": "MIT",
12
+ "files": [
13
+ "dist",
14
+ "README.md",
15
+ "LICENSE"
16
+ ],
17
+ "type": "module",
18
+ "sideEffects": false,
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "import": "./dist/index.js"
23
+ },
24
+ "./Runtime": {
25
+ "types": "./dist/Runtime.d.ts",
26
+ "import": "./dist/Runtime.js"
27
+ }
28
+ },
29
+ "scripts": {
30
+ "build": "tsc -p tsconfig.build.json",
31
+ "check": "tsc -p tsconfig.json --noEmit",
32
+ "test": "vitest run",
33
+ "test:watch": "vitest",
34
+ "prepublishOnly": "bun run check && bun run test && bun run build"
35
+ },
36
+ "dependencies": {
37
+ "fast-glob": "^3.3.3"
38
+ },
39
+ "devDependencies": {
40
+ "@effect/platform-bun": "4.0.0-beta.99",
41
+ "@effect/platform-node": "4.0.0-beta.99",
42
+ "@effect/vitest": "4.0.0-beta.99",
43
+ "@types/node": "^24.0.0",
44
+ "alchemy": "2.0.0-beta.63",
45
+ "convex": "1.42.3",
46
+ "effect": "4.0.0-beta.99",
47
+ "typescript": "^7.0.2",
48
+ "vitest": "^4.1.10"
49
+ },
50
+ "peerDependencies": {
51
+ "alchemy": ">=2.0.0-beta.63 <3",
52
+ "convex": ">=1.42.3 <2",
53
+ "effect": ">=4.0.0-beta.97 <5"
54
+ }
55
+ }