alchemy 0.76.0 → 0.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/alchemy.js +111 -30
- package/bin/services/execute-alchemy.ts +10 -1
- package/lib/aws/ec2/index.d.ts +1 -0
- package/lib/aws/ec2/index.d.ts.map +1 -1
- package/lib/aws/ec2/index.js +1 -0
- package/lib/aws/ec2/index.js.map +1 -1
- package/lib/aws/index.d.ts +1 -7
- package/lib/aws/index.d.ts.map +1 -1
- package/lib/aws/index.js +1 -8
- package/lib/aws/index.js.map +1 -1
- package/lib/cloudflare/auth.d.ts.map +1 -1
- package/lib/cloudflare/auth.js +1 -0
- package/lib/cloudflare/auth.js.map +1 -1
- package/lib/cloudflare/bucket-custom-domain.d.ts +90 -0
- package/lib/cloudflare/bucket-custom-domain.d.ts.map +1 -0
- package/lib/cloudflare/bucket-custom-domain.js +81 -0
- package/lib/cloudflare/bucket-custom-domain.js.map +1 -0
- package/lib/cloudflare/bucket.d.ts +28 -4
- package/lib/cloudflare/bucket.d.ts.map +1 -1
- package/lib/cloudflare/bucket.js +41 -14
- package/lib/cloudflare/bucket.js.map +1 -1
- package/lib/cloudflare/cloudflare-env-proxy.d.ts.map +1 -1
- package/lib/cloudflare/cloudflare-env-proxy.js +0 -3
- package/lib/cloudflare/cloudflare-env-proxy.js.map +1 -1
- package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
- package/lib/cloudflare/compatibility-date.gen.js +1 -1
- package/lib/cloudflare/index.d.ts +1 -0
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +1 -0
- package/lib/cloudflare/index.js.map +1 -1
- package/lib/cloudflare/miniflare/build-worker-options.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/build-worker-options.js +3 -1
- package/lib/cloudflare/miniflare/build-worker-options.js.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.js +73 -9
- package/lib/cloudflare/miniflare/remote-binding-proxy.js.map +1 -1
- package/lib/cloudflare/react-router/plugin.d.ts +2 -1
- package/lib/cloudflare/react-router/plugin.d.ts.map +1 -1
- package/lib/cloudflare/react-router/plugin.js +6 -14
- package/lib/cloudflare/react-router/plugin.js.map +1 -1
- package/lib/cloudflare/vite/plugin.d.ts.map +1 -1
- package/lib/cloudflare/vite/plugin.js +0 -3
- package/lib/cloudflare/vite/plugin.js.map +1 -1
- package/lib/cloudflare/worker-bundle.d.ts.map +1 -1
- package/lib/cloudflare/worker-bundle.js +17 -0
- package/lib/cloudflare/worker-bundle.js.map +1 -1
- package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
- package/lib/cloudflare/worker-metadata.js +6 -4
- package/lib/cloudflare/worker-metadata.js.map +1 -1
- package/lib/cloudflare/worker-subdomain.d.ts.map +1 -1
- package/lib/cloudflare/worker-subdomain.js +0 -1
- package/lib/cloudflare/worker-subdomain.js.map +1 -1
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +28 -38
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/cloudflare/wrangler.json.d.ts +2 -281
- package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
- package/lib/cloudflare/wrangler.json.js +23 -11
- package/lib/cloudflare/wrangler.json.js.map +1 -1
- package/lib/encrypt.d.ts +28 -3
- package/lib/encrypt.d.ts.map +1 -1
- package/lib/encrypt.js +77 -3
- package/lib/encrypt.js.map +1 -1
- package/lib/planetscale/role.d.ts +9 -0
- package/lib/planetscale/role.d.ts.map +1 -1
- package/lib/planetscale/role.js +18 -3
- package/lib/planetscale/role.js.map +1 -1
- package/lib/prisma-postgres/api.d.ts.map +1 -1
- package/lib/prisma-postgres/api.js +1 -0
- package/lib/prisma-postgres/api.js.map +1 -1
- package/lib/scope.d.ts +5 -0
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +23 -0
- package/lib/scope.js.map +1 -1
- package/lib/serde.js +1 -1
- package/lib/serde.js.map +1 -1
- package/lib/util/telemetry.js +4 -0
- package/lib/util/telemetry.js.map +1 -1
- package/package.json +12 -10
- package/src/aws/ec2/index.ts +1 -0
- package/src/aws/index.ts +1 -9
- package/src/cloudflare/auth.ts +1 -0
- package/src/cloudflare/bucket-custom-domain.ts +281 -0
- package/src/cloudflare/bucket.ts +85 -18
- package/src/cloudflare/cloudflare-env-proxy.ts +0 -3
- package/src/cloudflare/compatibility-date.gen.ts +1 -1
- package/src/cloudflare/index.ts +1 -0
- package/src/cloudflare/miniflare/build-worker-options.ts +3 -1
- package/src/cloudflare/miniflare/remote-binding-proxy.ts +80 -9
- package/src/cloudflare/react-router/plugin.ts +9 -21
- package/src/cloudflare/vite/plugin.ts +0 -3
- package/src/cloudflare/worker-bundle.ts +28 -1
- package/src/cloudflare/worker-metadata.ts +8 -4
- package/src/cloudflare/worker-subdomain.ts +0 -1
- package/src/cloudflare/worker.ts +32 -45
- package/src/cloudflare/wrangler.json.ts +62 -397
- package/src/encrypt.ts +115 -3
- package/src/planetscale/role.ts +30 -3
- package/src/prisma-postgres/api.ts +1 -0
- package/src/scope.ts +27 -0
- package/src/serde.ts +1 -1
- package/src/util/telemetry.ts +5 -0
- package/workers/cloudflare-state-store.js +4802 -8
- package/workers/dofs-state-store.js +632 -2
- package/workers/remote-binding-proxy.js +1929 -3
- package/workers/tunnel-proxy.js +58 -6
- package/workers/tunnel-proxy.ts +1 -1
package/workers/tunnel-proxy.js
CHANGED
|
@@ -1,4 +1,53 @@
|
|
|
1
|
-
|
|
1
|
+
//#region workers/tunnel-proxy.ts
|
|
2
|
+
var tunnel_proxy_default = { async fetch(request, env) {
|
|
3
|
+
const url = new URL(request.url);
|
|
4
|
+
url.host = env.TUNNEL_HOST;
|
|
5
|
+
const headers = new Headers(request.headers);
|
|
6
|
+
headers.set("alchemy-worker-name", env.WORKER_NAME);
|
|
7
|
+
const response = await fetch(url, {
|
|
8
|
+
method: request.method,
|
|
9
|
+
headers,
|
|
10
|
+
body: request.body,
|
|
11
|
+
redirect: "manual"
|
|
12
|
+
});
|
|
13
|
+
if (response.status === 530) {
|
|
14
|
+
const error = await extractResponseError(response);
|
|
15
|
+
const headers$1 = new Headers(response.headers);
|
|
16
|
+
headers$1.set("Content-Type", "text/html");
|
|
17
|
+
return new Response(renderErrorHtml({
|
|
18
|
+
name: env.WORKER_NAME,
|
|
19
|
+
error,
|
|
20
|
+
rayId: response.headers.get("cf-ray") ?? "Unknown"
|
|
21
|
+
}), {
|
|
22
|
+
status: 530,
|
|
23
|
+
headers: headers$1
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return response;
|
|
27
|
+
} };
|
|
28
|
+
const extractResponseError = async (response) => {
|
|
29
|
+
const error = response.headers.get("Alchemy-Error");
|
|
30
|
+
if (error) return error;
|
|
31
|
+
let code;
|
|
32
|
+
let message;
|
|
33
|
+
const { promise, resolve } = Promise.withResolvers();
|
|
34
|
+
const rewriter = new HTMLRewriter();
|
|
35
|
+
rewriter.on("h1", { text(text) {
|
|
36
|
+
if (code) return;
|
|
37
|
+
const match = text.text.match(/(\d+)/);
|
|
38
|
+
if (match) code = match[1];
|
|
39
|
+
} });
|
|
40
|
+
rewriter.on("h2", { text(text) {
|
|
41
|
+
if (message) return;
|
|
42
|
+
message = text.text;
|
|
43
|
+
} });
|
|
44
|
+
rewriter.onDocument({ end() {
|
|
45
|
+
resolve([code, message].filter(Boolean).join(": ") || "Unknown");
|
|
46
|
+
} });
|
|
47
|
+
await rewriter.transform(response).text();
|
|
48
|
+
return promise;
|
|
49
|
+
};
|
|
50
|
+
const renderErrorHtml = (props) => `
|
|
2
51
|
<!DOCTYPE html>
|
|
3
52
|
<html lang="en">
|
|
4
53
|
|
|
@@ -14,18 +63,18 @@ var h={async fetch(e,r){let n=new URL(e.url);n.host=r.TUNNEL_HOST;let l=new Head
|
|
|
14
63
|
<div class="flex flex-col items-center justify-center h-screen">
|
|
15
64
|
<div class="border-t-3 border-red-600 px-5 py-7 bg-white gap-3 flex flex-col w-full max-w-lg">
|
|
16
65
|
<h1 class="text-2xl font-semibold">530: Tunnel Error</h1>
|
|
17
|
-
<p class="text-slate-800">The worker "${
|
|
66
|
+
<p class="text-slate-800">The worker "${props.name}" could not be reached.</p>
|
|
18
67
|
<p class="text-slate-800">Please ensure that <code
|
|
19
68
|
class="bg-slate-100 text-slate-800 p-1 rounded-md text-sm">alchemy dev</code>
|
|
20
69
|
is running and tunnel mode is enabled for the worker.</p>
|
|
21
70
|
<div class="flex flex-col gap-2 border-l-2 border-slate-300 pl-3 my-1.5">
|
|
22
71
|
<div class="text-sm flex flex-col gap-1">
|
|
23
72
|
<div class="text-slate-500">Error:</div>
|
|
24
|
-
<div class="text-slate-800 font-mono">${
|
|
73
|
+
<div class="text-slate-800 font-mono">${props.error}</div>
|
|
25
74
|
</div>
|
|
26
75
|
<div class="text-sm flex flex-col gap-1">
|
|
27
76
|
<div class="text-slate-500">Ray ID:</div>
|
|
28
|
-
<div class="text-slate-800 font-mono">${
|
|
77
|
+
<div class="text-slate-800 font-mono">${props.rayId}</div>
|
|
29
78
|
</div>
|
|
30
79
|
</div>
|
|
31
80
|
<p class="text-slate-800"><a href="https://alchemy.run/docs/guides/cloudflare-tunnel"
|
|
@@ -34,10 +83,13 @@ var h={async fetch(e,r){let n=new URL(e.url);n.host=r.TUNNEL_HOST;let l=new Head
|
|
|
34
83
|
Alchemy</a>.</p>
|
|
35
84
|
</div>
|
|
36
85
|
<div class="bg-slate-200 px-5 py-3 flex flex-col w-full max-w-lg">
|
|
37
|
-
<p class="text-sm text-slate-500">Alchemy 0.
|
|
86
|
+
<p class="text-sm text-slate-500">Alchemy 0.77.0</p>
|
|
38
87
|
</div>
|
|
39
88
|
</div>
|
|
40
89
|
</body>
|
|
41
90
|
|
|
42
91
|
</html>
|
|
43
|
-
`;
|
|
92
|
+
`;
|
|
93
|
+
|
|
94
|
+
//#endregion
|
|
95
|
+
export { tunnel_proxy_default as default };
|
package/workers/tunnel-proxy.ts
CHANGED