alchemy 0.47.0 → 0.48.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.
- package/bin/alchemy.mjs +63 -56
- package/lib/alchemy.d.ts +9 -3
- package/lib/alchemy.d.ts.map +1 -1
- package/lib/alchemy.js +19 -39
- package/lib/alchemy.js.map +1 -1
- package/lib/cloudflare/astro.d.ts.map +1 -1
- package/lib/cloudflare/astro.js +3 -0
- package/lib/cloudflare/astro.js.map +1 -1
- package/lib/cloudflare/compatibility-date.gen.d.ts +5 -0
- package/lib/cloudflare/compatibility-date.gen.d.ts.map +1 -0
- package/lib/cloudflare/compatibility-date.gen.js +7 -0
- package/lib/cloudflare/compatibility-date.gen.js.map +1 -0
- package/lib/cloudflare/container.js +1 -1
- package/lib/cloudflare/container.js.map +1 -1
- package/lib/cloudflare/d1-migrations.d.ts.map +1 -1
- package/lib/cloudflare/d1-migrations.js +6 -11
- package/lib/cloudflare/d1-migrations.js.map +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/miniflare-worker-options.d.ts +2 -2
- package/lib/cloudflare/miniflare/miniflare-worker-options.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-worker-options.js +11 -2
- package/lib/cloudflare/miniflare/miniflare-worker-options.js.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts +20 -0
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts.map +1 -0
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +80 -0
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -0
- package/lib/cloudflare/miniflare/miniflare.d.ts +6 -6
- package/lib/cloudflare/miniflare/miniflare.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/miniflare.js +25 -16
- package/lib/cloudflare/miniflare/miniflare.js.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts +10 -10
- package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.js +34 -44
- package/lib/cloudflare/miniflare/remote-binding-proxy.js.map +1 -1
- package/lib/cloudflare/nuxt.d.ts.map +1 -1
- package/lib/cloudflare/nuxt.js +3 -0
- package/lib/cloudflare/nuxt.js.map +1 -1
- package/lib/cloudflare/oauth.js +3 -3
- package/lib/cloudflare/oauth.js.map +1 -1
- package/lib/cloudflare/pipeline.d.ts.map +1 -1
- package/lib/cloudflare/pipeline.js +1 -3
- package/lib/cloudflare/pipeline.js.map +1 -1
- package/lib/cloudflare/react-router.d.ts.map +1 -1
- package/lib/cloudflare/react-router.js +3 -0
- package/lib/cloudflare/react-router.js.map +1 -1
- package/lib/cloudflare/vite.d.ts.map +1 -1
- package/lib/cloudflare/vite.js +0 -1
- package/lib/cloudflare/vite.js.map +1 -1
- package/lib/cloudflare/website.d.ts +0 -1
- package/lib/cloudflare/website.d.ts.map +1 -1
- package/lib/cloudflare/website.js +15 -8
- package/lib/cloudflare/website.js.map +1 -1
- package/lib/cloudflare/worker.d.ts +8 -4
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +82 -72
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/scope.d.ts +14 -2
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +8 -3
- package/lib/scope.js.map +1 -1
- package/lib/state/cloudflare-state-store.d.ts.map +1 -1
- package/lib/state/cloudflare-state-store.js +2 -2
- package/lib/state/cloudflare-state-store.js.map +1 -1
- package/lib/util/http.d.ts +13 -0
- package/lib/util/http.d.ts.map +1 -0
- package/lib/util/http.js +78 -0
- package/lib/util/http.js.map +1 -0
- package/lib/util/safe-fetch.d.ts.map +1 -1
- package/lib/util/safe-fetch.js +1 -0
- package/lib/util/safe-fetch.js.map +1 -1
- package/package.json +5 -4
- package/src/alchemy.ts +28 -49
- package/src/cloudflare/astro.ts +3 -0
- package/src/cloudflare/compatibility-date.gen.ts +7 -0
- package/src/cloudflare/container.ts +1 -1
- package/src/cloudflare/d1-migrations.ts +8 -21
- package/src/cloudflare/index.ts +1 -0
- package/src/cloudflare/miniflare/miniflare-worker-options.ts +13 -1
- package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +97 -0
- package/src/cloudflare/miniflare/miniflare.ts +30 -21
- package/src/cloudflare/miniflare/remote-binding-proxy.ts +40 -52
- package/src/cloudflare/nuxt.ts +3 -0
- package/src/cloudflare/oauth.ts +3 -3
- package/src/cloudflare/pipeline.ts +1 -3
- package/src/cloudflare/react-router.ts +3 -0
- package/src/cloudflare/vite.ts +0 -1
- package/src/cloudflare/website.ts +16 -14
- package/src/cloudflare/worker.ts +104 -106
- package/src/scope.ts +21 -4
- package/src/state/cloudflare-state-store.ts +2 -2
- package/src/util/http.ts +94 -0
- package/src/util/safe-fetch.ts +1 -0
- package/templates/react-router/package.json +1 -1
- package/templates/react-router/tsconfig.cloudflare.json +5 -1
- package/templates/react-router/tsconfig.json +0 -3
- package/templates/react-router/tsconfig.node.json +0 -4
- package/lib/build-date.d.ts +0 -6
- package/lib/build-date.d.ts.map +0 -1
- package/lib/build-date.js +0 -8
- package/lib/build-date.js.map +0 -1
- package/lib/util/http-server.d.ts +0 -14
- package/lib/util/http-server.d.ts.map +0 -1
- package/lib/util/http-server.js +0 -71
- package/lib/util/http-server.js.map +0 -1
- package/src/build-date.ts +0 -8
- package/src/util/http-server.ts +0 -84
package/lib/util/http-server.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import http from "node:http";
|
|
2
|
-
import { Readable } from "node:stream";
|
|
3
|
-
import { promiseWithResolvers } from "./promise-with-resolvers.js";
|
|
4
|
-
export class HTTPServer {
|
|
5
|
-
server;
|
|
6
|
-
ready;
|
|
7
|
-
constructor(options) {
|
|
8
|
-
const { promise, resolve } = promiseWithResolvers();
|
|
9
|
-
this.ready = promise;
|
|
10
|
-
this.server = http
|
|
11
|
-
.createServer(async (req, res) => {
|
|
12
|
-
const response = await options.fetch(toWebRequest(req));
|
|
13
|
-
await writeNodeResponse(res, response);
|
|
14
|
-
})
|
|
15
|
-
.listen(options.port, resolve);
|
|
16
|
-
}
|
|
17
|
-
get port() {
|
|
18
|
-
return this.server.address().port;
|
|
19
|
-
}
|
|
20
|
-
get hostname() {
|
|
21
|
-
const address = this.server.address()?.address;
|
|
22
|
-
if (address === "::") {
|
|
23
|
-
return "localhost";
|
|
24
|
-
}
|
|
25
|
-
return address;
|
|
26
|
-
}
|
|
27
|
-
get url() {
|
|
28
|
-
return `http://${this.hostname}:${this.port}`;
|
|
29
|
-
}
|
|
30
|
-
stop() {
|
|
31
|
-
return new Promise((resolve, reject) => {
|
|
32
|
-
this.server.close((err) => {
|
|
33
|
-
if (err) {
|
|
34
|
-
reject(err);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
resolve(undefined);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function toWebRequest(request) {
|
|
44
|
-
const method = request.method ?? "GET";
|
|
45
|
-
return new Request(`http://${request.headers.host}${request.url ?? "/"}`, {
|
|
46
|
-
method,
|
|
47
|
-
headers: request.headers,
|
|
48
|
-
body: ["GET", "HEAD", "OPTIONS"].includes(method) || !request.readable
|
|
49
|
-
? undefined
|
|
50
|
-
: Readable.toWeb(request),
|
|
51
|
-
// TODO: why is Cloudflare's request type showing up here?
|
|
52
|
-
// @ts-expect-error - `duplex` not present on Cloudflare Workers request type, but valid for Node
|
|
53
|
-
duplex: "half",
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
async function writeNodeResponse(res, response) {
|
|
57
|
-
res.statusCode = response.status;
|
|
58
|
-
response.headers.forEach((value, key) => {
|
|
59
|
-
res.setHeader(key, value);
|
|
60
|
-
});
|
|
61
|
-
await response.body?.pipeTo(new WritableStream({
|
|
62
|
-
write(chunk) {
|
|
63
|
-
res.write(chunk);
|
|
64
|
-
},
|
|
65
|
-
close() {
|
|
66
|
-
res.end();
|
|
67
|
-
},
|
|
68
|
-
}));
|
|
69
|
-
res.end();
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=http-server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../src/util/http-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,OAAO,UAAU;IACrB,MAAM,CAAc;IACpB,KAAK,CAAgB;IAErB,YAAY,OAGX;QACC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,oBAAoB,EAAQ,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI;aACf,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,IAAI;QACN,OAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAkB,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,IAAI,QAAQ;QACV,MAAM,OAAO,GAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAkB,EAAE,OAAO,CAAC;QAChE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,UAAU,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,IAAI;QACF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,YAAY,CAAC,OAA6B;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE;QACxE,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,OAAiC;QAClD,IAAI,EACF,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC9D,CAAC,CAAC,SAAS;YACX,CAAC,CAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAyB;QACtD,0DAA0D;QAC1D,iGAAiG;QACjG,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAwB,EAAE,QAAkB;IAC3E,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CACzB,IAAI,cAAc,CAAC;QACjB,KAAK,CAAC,KAAK;YACT,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;QACD,KAAK;YACH,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;KACF,CAAC,CACH,CAAC;IACF,GAAG,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC"}
|
package/src/build-date.ts
DELETED
package/src/util/http-server.ts
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import http from "node:http";
|
|
2
|
-
import type { AddressInfo } from "node:net";
|
|
3
|
-
import { Readable } from "node:stream";
|
|
4
|
-
import { promiseWithResolvers } from "./promise-with-resolvers.ts";
|
|
5
|
-
|
|
6
|
-
export class HTTPServer {
|
|
7
|
-
server: http.Server;
|
|
8
|
-
ready: Promise<void>;
|
|
9
|
-
|
|
10
|
-
constructor(options: {
|
|
11
|
-
port?: number;
|
|
12
|
-
fetch: (request: Request) => Promise<Response>;
|
|
13
|
-
}) {
|
|
14
|
-
const { promise, resolve } = promiseWithResolvers<void>();
|
|
15
|
-
this.ready = promise;
|
|
16
|
-
this.server = http
|
|
17
|
-
.createServer(async (req, res) => {
|
|
18
|
-
const response = await options.fetch(toWebRequest(req));
|
|
19
|
-
await writeNodeResponse(res, response);
|
|
20
|
-
})
|
|
21
|
-
.listen(options.port, resolve);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
get port() {
|
|
25
|
-
return (this.server.address() as AddressInfo).port;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
get hostname() {
|
|
29
|
-
const address = (this.server.address() as AddressInfo)?.address;
|
|
30
|
-
if (address === "::") {
|
|
31
|
-
return "localhost";
|
|
32
|
-
}
|
|
33
|
-
return address;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
get url() {
|
|
37
|
-
return `http://${this.hostname}:${this.port}`;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
stop() {
|
|
41
|
-
return new Promise((resolve, reject) => {
|
|
42
|
-
this.server.close((err) => {
|
|
43
|
-
if (err) {
|
|
44
|
-
reject(err);
|
|
45
|
-
} else {
|
|
46
|
-
resolve(undefined);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function toWebRequest(request: http.IncomingMessage): Request {
|
|
54
|
-
const method = request.method ?? "GET";
|
|
55
|
-
return new Request(`http://${request.headers.host}${request.url ?? "/"}`, {
|
|
56
|
-
method,
|
|
57
|
-
headers: request.headers as Record<string, string>,
|
|
58
|
-
body:
|
|
59
|
-
["GET", "HEAD", "OPTIONS"].includes(method) || !request.readable
|
|
60
|
-
? undefined
|
|
61
|
-
: (Readable.toWeb(request) as unknown as BodyInit),
|
|
62
|
-
// TODO: why is Cloudflare's request type showing up here?
|
|
63
|
-
// @ts-expect-error - `duplex` not present on Cloudflare Workers request type, but valid for Node
|
|
64
|
-
duplex: "half",
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
async function writeNodeResponse(res: http.ServerResponse, response: Response) {
|
|
69
|
-
res.statusCode = response.status;
|
|
70
|
-
response.headers.forEach((value, key) => {
|
|
71
|
-
res.setHeader(key, value);
|
|
72
|
-
});
|
|
73
|
-
await response.body?.pipeTo(
|
|
74
|
-
new WritableStream({
|
|
75
|
-
write(chunk) {
|
|
76
|
-
res.write(chunk);
|
|
77
|
-
},
|
|
78
|
-
close() {
|
|
79
|
-
res.end();
|
|
80
|
-
},
|
|
81
|
-
}),
|
|
82
|
-
);
|
|
83
|
-
res.end();
|
|
84
|
-
}
|