@effect/platform-bun 4.0.0-beta.8 → 4.0.0-beta.81
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/dist/BunChildProcessSpawner.d.ts +1 -1
- package/dist/BunChildProcessSpawner.js +1 -1
- package/dist/BunClusterHttp.d.ts +44 -7
- package/dist/BunClusterHttp.d.ts.map +1 -1
- package/dist/BunClusterHttp.js +41 -10
- package/dist/BunClusterHttp.js.map +1 -1
- package/dist/BunClusterSocket.d.ts +27 -9
- package/dist/BunClusterSocket.d.ts.map +1 -1
- package/dist/BunClusterSocket.js +27 -9
- package/dist/BunClusterSocket.js.map +1 -1
- package/dist/BunCrypto.d.ts +10 -0
- package/dist/BunCrypto.d.ts.map +1 -0
- package/dist/BunCrypto.js +22 -0
- package/dist/BunCrypto.js.map +1 -0
- package/dist/BunFileSystem.d.ts +4 -2
- package/dist/BunFileSystem.d.ts.map +1 -1
- package/dist/BunFileSystem.js +11 -3
- package/dist/BunFileSystem.js.map +1 -1
- package/dist/BunHttpClient.d.ts +2 -2
- package/dist/BunHttpClient.js +2 -2
- package/dist/BunHttpPlatform.d.ts +4 -2
- package/dist/BunHttpPlatform.d.ts.map +1 -1
- package/dist/BunHttpPlatform.js +5 -3
- package/dist/BunHttpPlatform.js.map +1 -1
- package/dist/BunHttpServer.d.ts +57 -20
- package/dist/BunHttpServer.d.ts.map +1 -1
- package/dist/BunHttpServer.js +63 -36
- package/dist/BunHttpServer.js.map +1 -1
- package/dist/BunHttpServerRequest.d.ts +11 -3
- package/dist/BunHttpServerRequest.d.ts.map +1 -1
- package/dist/BunHttpServerRequest.js +4 -2
- package/dist/BunHttpServerRequest.js.map +1 -1
- package/dist/BunMultipart.d.ts +16 -5
- package/dist/BunMultipart.d.ts.map +1 -1
- package/dist/BunMultipart.js +15 -5
- package/dist/BunMultipart.js.map +1 -1
- package/dist/BunPath.d.ts +12 -6
- package/dist/BunPath.d.ts.map +1 -1
- package/dist/BunPath.js +20 -7
- package/dist/BunPath.js.map +1 -1
- package/dist/BunRedis.d.ts +23 -9
- package/dist/BunRedis.d.ts.map +1 -1
- package/dist/BunRedis.js +26 -12
- package/dist/BunRedis.js.map +1 -1
- package/dist/BunRuntime.d.ts +21 -30
- package/dist/BunRuntime.d.ts.map +1 -1
- package/dist/BunRuntime.js +14 -11
- package/dist/BunRuntime.js.map +1 -1
- package/dist/BunServices.d.ts +19 -5
- package/dist/BunServices.d.ts.map +1 -1
- package/dist/BunServices.js +7 -3
- package/dist/BunServices.js.map +1 -1
- package/dist/BunSink.d.ts +2 -2
- package/dist/BunSink.js +2 -2
- package/dist/BunSocket.d.ts +18 -4
- package/dist/BunSocket.d.ts.map +1 -1
- package/dist/BunSocket.js +10 -3
- package/dist/BunSocket.js.map +1 -1
- package/dist/BunSocketServer.d.ts +2 -2
- package/dist/BunSocketServer.js +2 -2
- package/dist/BunStdio.d.ts +5 -2
- package/dist/BunStdio.d.ts.map +1 -1
- package/dist/BunStdio.js +13 -3
- package/dist/BunStdio.js.map +1 -1
- package/dist/BunStream.d.ts +5 -4
- package/dist/BunStream.d.ts.map +1 -1
- package/dist/BunStream.js +14 -5
- package/dist/BunStream.js.map +1 -1
- package/dist/BunTerminal.d.ts +8 -2
- package/dist/BunTerminal.d.ts.map +1 -1
- package/dist/BunTerminal.js +15 -3
- package/dist/BunTerminal.js.map +1 -1
- package/dist/BunWorker.d.ts +9 -2
- package/dist/BunWorker.d.ts.map +1 -1
- package/dist/BunWorker.js +20 -4
- package/dist/BunWorker.js.map +1 -1
- package/dist/BunWorkerRunner.d.ts +5 -1
- package/dist/BunWorkerRunner.d.ts.map +1 -1
- package/dist/BunWorkerRunner.js +17 -5
- package/dist/BunWorkerRunner.js.map +1 -1
- package/dist/index.d.ts +25 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -23
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/src/BunChildProcessSpawner.ts +1 -1
- package/src/BunClusterHttp.ts +49 -11
- package/src/BunClusterSocket.ts +27 -9
- package/src/BunCrypto.ts +24 -0
- package/src/BunFileSystem.ts +11 -3
- package/src/BunHttpClient.ts +2 -2
- package/src/BunHttpPlatform.ts +14 -4
- package/src/BunHttpServer.ts +108 -57
- package/src/BunHttpServerRequest.ts +11 -3
- package/src/BunMultipart.ts +24 -6
- package/src/BunPath.ts +20 -7
- package/src/BunRedis.ts +28 -14
- package/src/BunRuntime.ts +28 -31
- package/src/BunServices.ts +21 -5
- package/src/BunSink.ts +2 -2
- package/src/BunSocket.ts +18 -4
- package/src/BunSocketServer.ts +2 -2
- package/src/BunStdio.ts +13 -3
- package/src/BunStream.ts +14 -5
- package/src/BunTerminal.ts +15 -3
- package/src/BunWorker.ts +20 -4
- package/src/BunWorkerRunner.ts +17 -5
- package/src/index.ts +26 -23
package/dist/BunHttpServer.d.ts
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Bun implementation of the Effect `HttpServer`.
|
|
3
|
+
*
|
|
4
|
+
* `make` creates a scoped HTTP server from `Bun.serve`, converting Bun
|
|
5
|
+
* `Request` values into `HttpServerRequest` values and Effect
|
|
6
|
+
* `HttpServerResponse` values back into Web `Response` values. The server
|
|
7
|
+
* supports streaming bodies, multipart requests, file responses through
|
|
8
|
+
* `BunHttpPlatform`, and WebSocket upgrades. This module also provides layers
|
|
9
|
+
* for the server alone, the Bun HTTP support services, the combined server,
|
|
10
|
+
* configurable server options, and a test server with an HTTP client.
|
|
11
|
+
*
|
|
12
|
+
* @since 4.0.0
|
|
3
13
|
*/
|
|
4
14
|
import type { ServerWebSocket } from "bun";
|
|
5
15
|
import * as Config from "effect/Config";
|
|
6
16
|
import type { ConfigError } from "effect/Config";
|
|
7
17
|
import * as Deferred from "effect/Deferred";
|
|
18
|
+
import * as Duration from "effect/Duration";
|
|
8
19
|
import * as Effect from "effect/Effect";
|
|
9
20
|
import type * as FileSystem from "effect/FileSystem";
|
|
10
21
|
import * as Layer from "effect/Layer";
|
|
11
22
|
import type * as Path from "effect/Path";
|
|
12
|
-
import
|
|
23
|
+
import * as Scope from "effect/Scope";
|
|
13
24
|
import * as Etag from "effect/unstable/http/Etag";
|
|
14
25
|
import type { HttpClient } from "effect/unstable/http/HttpClient";
|
|
15
26
|
import type { HttpPlatform } from "effect/unstable/http/HttpPlatform";
|
|
@@ -19,17 +30,24 @@ import type * as ServerResponse from "effect/unstable/http/HttpServerResponse";
|
|
|
19
30
|
import * as Socket from "effect/unstable/socket/Socket";
|
|
20
31
|
import * as BunServices from "./BunServices.ts";
|
|
21
32
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
33
|
+
* Bun serve options accepted by the HTTP server, extended with typed route definitions.
|
|
34
|
+
*
|
|
35
|
+
* @category options
|
|
36
|
+
* @since 4.0.0
|
|
24
37
|
*/
|
|
25
38
|
export type ServeOptions<R extends string> = (Bun.Serve.UnixServeOptions<WebSocketContext> | Bun.Serve.HostnamePortServeOptions<WebSocketContext>) & {
|
|
26
39
|
readonly routes?: Bun.Serve.Routes<WebSocketContext, R>;
|
|
27
40
|
};
|
|
28
41
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
42
|
+
* Creates a scoped Bun `HttpServer` from `Bun.serve` options, stopping the server on scope finalization with optional graceful shutdown settings.
|
|
43
|
+
*
|
|
44
|
+
* @category constructors
|
|
45
|
+
* @since 4.0.0
|
|
31
46
|
*/
|
|
32
|
-
export declare const make: <R extends string>(options: ServeOptions<R>
|
|
47
|
+
export declare const make: <R extends string>(options: ServeOptions<R> & {
|
|
48
|
+
readonly disablePreemptiveShutdown?: boolean | undefined;
|
|
49
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined;
|
|
50
|
+
}) => Effect.Effect<{
|
|
33
51
|
readonly serve: {
|
|
34
52
|
<E, R_1>(effect: Effect.Effect<ServerResponse.HttpServerResponse, E, R_1>): Effect.Effect<void, never, Exclude<R_1, ServerRequest.HttpServerRequest> | Scope.Scope>;
|
|
35
53
|
<E, R_2, App extends Effect.Effect<ServerResponse.HttpServerResponse, any, any>>(effect: Effect.Effect<ServerResponse.HttpServerResponse, E, R_2>, middleware: import("effect/unstable/http/HttpMiddleware").HttpMiddleware.Applied<App, E, R_2>): Effect.Effect<void, never, Exclude<R_2, ServerRequest.HttpServerRequest> | Scope.Scope>;
|
|
@@ -37,30 +55,49 @@ export declare const make: <R extends string>(options: ServeOptions<R>) => Effec
|
|
|
37
55
|
readonly address: Server.Address;
|
|
38
56
|
}, never, Scope.Scope>;
|
|
39
57
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
58
|
+
* Layer that provides only `HttpServer` by constructing a scoped Bun server from the supplied serve options.
|
|
59
|
+
*
|
|
60
|
+
* @category layers
|
|
61
|
+
* @since 4.0.0
|
|
42
62
|
*/
|
|
43
|
-
export declare const layerServer: <R extends string>(options: ServeOptions<R>
|
|
63
|
+
export declare const layerServer: <R extends string>(options: ServeOptions<R> & {
|
|
64
|
+
readonly disablePreemptiveShutdown?: boolean | undefined;
|
|
65
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined;
|
|
66
|
+
}) => Layer.Layer<Server.HttpServer>;
|
|
44
67
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
68
|
+
* Layer that provides Bun HTTP support services: `HttpPlatform`, weak ETag generation, and `BunServices`.
|
|
69
|
+
*
|
|
70
|
+
* @category layers
|
|
71
|
+
* @since 4.0.0
|
|
47
72
|
*/
|
|
48
73
|
export declare const layerHttpServices: Layer.Layer<HttpPlatform | Etag.Generator | BunServices.BunServices>;
|
|
49
74
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
75
|
+
* Layer that provides a Bun `HttpServer` together with the Bun HTTP platform, ETag generator, and Bun services.
|
|
76
|
+
*
|
|
77
|
+
* @category layers
|
|
78
|
+
* @since 4.0.0
|
|
52
79
|
*/
|
|
53
|
-
export declare const layer: <R extends string>(options: ServeOptions<R>
|
|
80
|
+
export declare const layer: <R extends string>(options: ServeOptions<R> & {
|
|
81
|
+
readonly disablePreemptiveShutdown?: boolean | undefined;
|
|
82
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined;
|
|
83
|
+
}) => Layer.Layer<Server.HttpServer | HttpPlatform | Etag.Generator | BunServices.BunServices>;
|
|
54
84
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
85
|
+
* Layer that starts a Bun HTTP server on an ephemeral port for tests.
|
|
86
|
+
*
|
|
87
|
+
* @category layers
|
|
88
|
+
* @since 4.0.0
|
|
57
89
|
*/
|
|
58
90
|
export declare const layerTest: Layer.Layer<Server.HttpServer | HttpPlatform | FileSystem.FileSystem | Etag.Generator | Path.Path | HttpClient>;
|
|
59
91
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
92
|
+
* Creates the Bun HTTP server and support-services layer from configurable serve options.
|
|
93
|
+
*
|
|
94
|
+
* @category layers
|
|
95
|
+
* @since 4.0.0
|
|
62
96
|
*/
|
|
63
|
-
export declare const layerConfig: <R extends string>(options: Config.Wrap<ServeOptions<R
|
|
97
|
+
export declare const layerConfig: <R extends string>(options: Config.Wrap<ServeOptions<R> & {
|
|
98
|
+
readonly disablePreemptiveShutdown?: boolean | undefined;
|
|
99
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined;
|
|
100
|
+
}>) => Layer.Layer<Server.HttpServer | HttpPlatform | FileSystem.FileSystem | Etag.Generator | Path.Path, ConfigError>;
|
|
64
101
|
interface WebSocketContext {
|
|
65
102
|
readonly deferred: Deferred.Deferred<ServerWebSocket<WebSocketContext>>;
|
|
66
103
|
readonly closeDeferred: Deferred.Deferred<void, Socket.SocketError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunHttpServer.d.ts","sourceRoot":"","sources":["../src/BunHttpServer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"BunHttpServer.d.ts","sourceRoot":"","sources":["../src/BunHttpServer.ts"],"names":[],"mappings":"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"}
|
package/dist/BunHttpServer.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as Config from "effect/Config";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
2
3
|
import * as Deferred from "effect/Deferred";
|
|
4
|
+
import * as Duration from "effect/Duration";
|
|
3
5
|
import * as Effect from "effect/Effect";
|
|
4
6
|
import * as Exit from "effect/Exit";
|
|
5
7
|
import * as Fiber from "effect/Fiber";
|
|
@@ -7,8 +9,9 @@ import * as FiberSet from "effect/FiberSet";
|
|
|
7
9
|
import { flow } from "effect/Function";
|
|
8
10
|
import * as Inspectable from "effect/Inspectable";
|
|
9
11
|
import * as Layer from "effect/Layer";
|
|
12
|
+
import * as Option from "effect/Option";
|
|
13
|
+
import * as Scope from "effect/Scope";
|
|
10
14
|
import * as Semaphore from "effect/Semaphore";
|
|
11
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
12
15
|
import * as Stream from "effect/Stream";
|
|
13
16
|
import * as Cookies from "effect/unstable/http/Cookies";
|
|
14
17
|
import * as Etag from "effect/unstable/http/Etag";
|
|
@@ -26,10 +29,13 @@ import * as BunMultipart from "./BunMultipart.js";
|
|
|
26
29
|
import * as BunServices from "./BunServices.js";
|
|
27
30
|
import * as BunStream from "./BunStream.js";
|
|
28
31
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
32
|
+
* Creates a scoped Bun `HttpServer` from `Bun.serve` options, stopping the server on scope finalization with optional graceful shutdown settings.
|
|
33
|
+
*
|
|
34
|
+
* @category constructors
|
|
35
|
+
* @since 4.0.0
|
|
31
36
|
*/
|
|
32
37
|
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
38
|
+
const scope = yield* Effect.scope;
|
|
33
39
|
const handlerStack = [function (_request, _server) {
|
|
34
40
|
return new Response("not found", {
|
|
35
41
|
status: 404
|
|
@@ -46,6 +52,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
46
52
|
ws.data.run(message);
|
|
47
53
|
},
|
|
48
54
|
close(ws, code, closeReason) {
|
|
55
|
+
code = typeof code === "number" ? code : 1001;
|
|
49
56
|
Deferred.doneUnsafe(ws.data.closeDeferred, Socket.defaultCloseCodeIsError(code) ? Exit.fail(new Socket.SocketError({
|
|
50
57
|
reason: new Socket.SocketCloseError({
|
|
51
58
|
code,
|
|
@@ -55,7 +62,12 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
55
62
|
}
|
|
56
63
|
}
|
|
57
64
|
});
|
|
58
|
-
yield* Effect.
|
|
65
|
+
const shutdown = yield* Effect.promise(() => server.stop()).pipe(Effect.cached);
|
|
66
|
+
const preemptiveShutdown = options.disablePreemptiveShutdown ? Effect.void : Effect.timeoutOrElse(shutdown, {
|
|
67
|
+
duration: options.gracefulShutdownTimeout ?? Duration.seconds(20),
|
|
68
|
+
orElse: () => Effect.void
|
|
69
|
+
});
|
|
70
|
+
yield* Scope.addFinalizer(scope, shutdown);
|
|
59
71
|
return Server.make({
|
|
60
72
|
address: {
|
|
61
73
|
_tag: "TcpAddress",
|
|
@@ -63,8 +75,10 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
63
75
|
hostname: server.hostname
|
|
64
76
|
},
|
|
65
77
|
serve: Effect.fnUntraced(function* (httpApp, middleware) {
|
|
66
|
-
const
|
|
67
|
-
const services =
|
|
78
|
+
const parent = yield* Effect.fiber;
|
|
79
|
+
const services = parent.context;
|
|
80
|
+
const serveScope = Context.getUnsafe(services, Scope.Scope);
|
|
81
|
+
const scope = Scope.forkUnsafe(serveScope, "parallel");
|
|
68
82
|
const httpEffect = HttpEffect.toHandled(httpApp, (request, response) => Effect.sync(() => {
|
|
69
83
|
;
|
|
70
84
|
request.resolve(makeResponse(request, response, services, scope));
|
|
@@ -73,29 +87,29 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
73
87
|
return new Promise((resolve, _reject) => {
|
|
74
88
|
const map = new Map(services.mapUnsafe);
|
|
75
89
|
map.set(ServerRequest.HttpServerRequest.key, new BunServerRequest(request, resolve, removeHost(request.url), server));
|
|
76
|
-
const fiber = Fiber.runIn(Effect.runForkWith(
|
|
90
|
+
const fiber = Fiber.runIn(Effect.runForkWith(Context.makeUnsafe(map))(httpEffect), scope);
|
|
77
91
|
request.signal.addEventListener("abort", () => {
|
|
78
|
-
fiber.interruptUnsafe(Error.
|
|
92
|
+
fiber.interruptUnsafe(parent.id, Error.ClientAbort.annotation);
|
|
79
93
|
}, {
|
|
80
94
|
once: true
|
|
81
95
|
});
|
|
82
96
|
});
|
|
83
97
|
}
|
|
84
|
-
yield*
|
|
85
|
-
handlerStack.push(handler);
|
|
86
|
-
server.reload({
|
|
87
|
-
fetch: handler
|
|
88
|
-
});
|
|
89
|
-
}), () => Effect.sync(() => {
|
|
98
|
+
yield* Scope.addFinalizerExit(serveScope, () => {
|
|
90
99
|
handlerStack.pop();
|
|
91
100
|
server.reload({
|
|
92
101
|
fetch: handlerStack[handlerStack.length - 1]
|
|
93
102
|
});
|
|
94
|
-
|
|
103
|
+
return preemptiveShutdown;
|
|
104
|
+
});
|
|
105
|
+
handlerStack.push(handler);
|
|
106
|
+
server.reload({
|
|
107
|
+
fetch: handler
|
|
108
|
+
});
|
|
95
109
|
})
|
|
96
110
|
});
|
|
97
111
|
});
|
|
98
|
-
const makeResponse = (request, response,
|
|
112
|
+
const makeResponse = (request, response, context, scope) => {
|
|
99
113
|
const fields = {
|
|
100
114
|
headers: new globalThis.Headers(response.headers),
|
|
101
115
|
status: response.status
|
|
@@ -138,28 +152,36 @@ const makeResponse = (request, response, services, scope) => {
|
|
|
138
152
|
return new Response(Stream.toReadableStreamWith(Stream.unwrap(Effect.withFiber(fiber => {
|
|
139
153
|
Fiber.runIn(fiber, scope);
|
|
140
154
|
return Effect.succeed(body.stream);
|
|
141
|
-
})),
|
|
155
|
+
})), context), fields);
|
|
142
156
|
}
|
|
143
157
|
}
|
|
144
158
|
};
|
|
145
159
|
/**
|
|
146
|
-
*
|
|
147
|
-
*
|
|
160
|
+
* Layer that provides only `HttpServer` by constructing a scoped Bun server from the supplied serve options.
|
|
161
|
+
*
|
|
162
|
+
* @category layers
|
|
163
|
+
* @since 4.0.0
|
|
148
164
|
*/
|
|
149
165
|
export const layerServer = /*#__PURE__*/flow(make, /*#__PURE__*/Layer.effect(Server.HttpServer));
|
|
150
166
|
/**
|
|
151
|
-
*
|
|
152
|
-
*
|
|
167
|
+
* Layer that provides Bun HTTP support services: `HttpPlatform`, weak ETag generation, and `BunServices`.
|
|
168
|
+
*
|
|
169
|
+
* @category layers
|
|
170
|
+
* @since 4.0.0
|
|
153
171
|
*/
|
|
154
172
|
export const layerHttpServices = /*#__PURE__*/Layer.mergeAll(Platform.layer, Etag.layerWeak, BunServices.layer);
|
|
155
173
|
/**
|
|
156
|
-
*
|
|
157
|
-
*
|
|
174
|
+
* Layer that provides a Bun `HttpServer` together with the Bun HTTP platform, ETag generator, and Bun services.
|
|
175
|
+
*
|
|
176
|
+
* @category layers
|
|
177
|
+
* @since 4.0.0
|
|
158
178
|
*/
|
|
159
179
|
export const layer = options => Layer.mergeAll(layerServer(options), layerHttpServices);
|
|
160
180
|
/**
|
|
161
|
-
*
|
|
162
|
-
*
|
|
181
|
+
* Layer that starts a Bun HTTP server on an ephemeral port for tests.
|
|
182
|
+
*
|
|
183
|
+
* @category layers
|
|
184
|
+
* @since 4.0.0
|
|
163
185
|
*/
|
|
164
186
|
export const layerTest = /*#__PURE__*/Server.layerTestClient.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/FetchHttpClient.layer.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.succeed(FetchHttpClient.RequestInit)({
|
|
165
187
|
keepalive: false
|
|
@@ -167,10 +189,12 @@ export const layerTest = /*#__PURE__*/Server.layerTestClient.pipe(/*#__PURE__*/L
|
|
|
167
189
|
port: 0
|
|
168
190
|
})));
|
|
169
191
|
/**
|
|
170
|
-
*
|
|
171
|
-
*
|
|
192
|
+
* Creates the Bun HTTP server and support-services layer from configurable serve options.
|
|
193
|
+
*
|
|
194
|
+
* @category layers
|
|
195
|
+
* @since 4.0.0
|
|
172
196
|
*/
|
|
173
|
-
export const layerConfig = options => Layer.mergeAll(Layer.effect(Server.HttpServer)(Effect.flatMap(Config.unwrap(options)
|
|
197
|
+
export const layerConfig = options => Layer.mergeAll(Layer.effect(Server.HttpServer)(Effect.flatMap(Config.unwrap(options), make)), layerHttpServices);
|
|
174
198
|
function wsDefaultRun(_) {
|
|
175
199
|
this.buffer.push(_);
|
|
176
200
|
}
|
|
@@ -202,7 +226,7 @@ class BunServerRequest extends Inspectable.Class {
|
|
|
202
226
|
});
|
|
203
227
|
}
|
|
204
228
|
modify(options) {
|
|
205
|
-
return new BunServerRequest(this.source, this.resolve, options.url ?? this.url, this.bunServer, options.headers ?? this.headersOverride, options.remoteAddress
|
|
229
|
+
return new BunServerRequest(this.source, this.resolve, options.url ?? this.url, this.bunServer, options.headers ?? this.headersOverride, "remoteAddress" in options ? options.remoteAddress : this.remoteAddressOverride);
|
|
206
230
|
}
|
|
207
231
|
get method() {
|
|
208
232
|
return this.source.method.toUpperCase();
|
|
@@ -211,7 +235,7 @@ class BunServerRequest extends Inspectable.Class {
|
|
|
211
235
|
return this.source.url;
|
|
212
236
|
}
|
|
213
237
|
get remoteAddress() {
|
|
214
|
-
return this.remoteAddressOverride ?? this.bunServer.requestIP(this.source)?.address;
|
|
238
|
+
return this.remoteAddressOverride ?? Option.fromNullishOr(this.bunServer.requestIP(this.source)?.address);
|
|
215
239
|
}
|
|
216
240
|
get headers() {
|
|
217
241
|
this.headersOverride ??= Headers.fromInput(this.source.headers);
|
|
@@ -226,7 +250,7 @@ class BunServerRequest extends Inspectable.Class {
|
|
|
226
250
|
}
|
|
227
251
|
get stream() {
|
|
228
252
|
return this.source.body ? BunStream.fromReadableStream({
|
|
229
|
-
evaluate: () => this.source.body,
|
|
253
|
+
evaluate: () => this.source.body ?? emptyReadbleStream,
|
|
230
254
|
onError: cause => new Error.HttpServerError({
|
|
231
255
|
reason: new Error.RequestParseError({
|
|
232
256
|
request: this,
|
|
@@ -303,6 +327,7 @@ class BunServerRequest extends Inspectable.Class {
|
|
|
303
327
|
})
|
|
304
328
|
})
|
|
305
329
|
})));
|
|
330
|
+
this.textEffect = Effect.map(this.arrayBufferEffect, _ => new TextDecoder().decode(_));
|
|
306
331
|
return this.arrayBufferEffect;
|
|
307
332
|
}
|
|
308
333
|
get upgrade() {
|
|
@@ -354,11 +379,7 @@ class BunServerRequest extends Inspectable.Class {
|
|
|
354
379
|
if (opts?.onOpen) yield* opts.onOpen;
|
|
355
380
|
return yield* FiberSet.join(set);
|
|
356
381
|
}, Effect.scoped, Effect.onExit(exit => Effect.sync(() => ws.close(exit._tag === "Success" ? 1000 : 1011))), Effect.raceFirst(Deferred.await(closeDeferred)), semaphore.withPermits(1));
|
|
357
|
-
|
|
358
|
-
const run = (handler, opts) => runRaw(data => typeof data === "string" ? handler(encoder.encode(data)) : handler(data), opts);
|
|
359
|
-
return Socket.Socket.of({
|
|
360
|
-
[Socket.TypeId]: Socket.TypeId,
|
|
361
|
-
run,
|
|
382
|
+
return Socket.make({
|
|
362
383
|
runRaw,
|
|
363
384
|
writer
|
|
364
385
|
});
|
|
@@ -366,6 +387,12 @@ class BunServerRequest extends Inspectable.Class {
|
|
|
366
387
|
});
|
|
367
388
|
}
|
|
368
389
|
}
|
|
390
|
+
const emptyReadbleStream = /*#__PURE__*/new ReadableStream({
|
|
391
|
+
start(controller) {
|
|
392
|
+
controller.enqueue(new Uint8Array());
|
|
393
|
+
controller.close();
|
|
394
|
+
}
|
|
395
|
+
});
|
|
369
396
|
const removeHost = url => {
|
|
370
397
|
if (url[0] === "/") {
|
|
371
398
|
return url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunHttpServer.js","names":["Config","Deferred","Effect","Exit","Fiber","FiberSet","flow","Inspectable","Layer","Semaphore","ServiceMap","Stream","Cookies","Etag","FetchHttpClient","Headers","HttpEffect","IncomingMessage","Server","Error","ServerRequest","UrlParams","Socket","Platform","BunMultipart","BunServices","BunStream","make","fnUntraced","options","handlerStack","_request","_server","Response","status","server","Bun","serve","fetch","websocket","open","ws","doneUnsafe","data","deferred","succeed","message","run","close","code","closeReason","closeDeferred","defaultCloseCodeIsError","fail","SocketError","reason","SocketCloseError","void","addFinalizer","promise","stop","address","_tag","port","hostname","httpApp","middleware","scope","services","httpEffect","toHandled","request","response","sync","resolve","makeResponse","handler","Promise","_reject","map","Map","mapUnsafe","set","HttpServerRequest","key","BunServerRequest","removeHost","url","fiber","runIn","runForkWith","makeUnsafe","signal","addEventListener","interruptUnsafe","clientAbortFiberId","once","acquireRelease","push","reload","pop","length","fields","headers","globalThis","isEmpty","cookies","header","toSetCookieHeaders","append","statusText","undefined","method","scopeTransferToStream","body","value","entries","formData","toReadableStreamWith","unwrap","withFiber","stream","layerServer","effect","HttpServer","layerHttpServices","mergeAll","layer","layerWeak","layerTest","layerTestClient","pipe","provide","RequestInit","keepalive","provideMerge","layerConfig","flatMap","asEffect","wsDefaultRun","_","buffer","Class","TypeId","source","bunServer","headersOverride","remoteAddressOverride","constructor","toJSON","inspect","_id","originalUrl","modify","remoteAddress","toUpperCase","requestIP","fromInput","cachedCookies","parseHeader","cookie","fromReadableStream","evaluate","onError","cause","HttpServerError","RequestParseError","description","textEffect","text","runSync","cached","tryPromise","try","catch","json","JSON","parse","urlParamsBody","URLSearchParams","multipartEffect","multipart","persisted","multipartStream","arrayBufferEffect","arrayBuffer","upgrade","callback","resume","semaphore","success","await","write","chunk","sendText","isCloseEvent","sendBinary","writer","runRaw","opts","runtime","result","isEffect","forEach","onOpen","join","scoped","onExit","exit","raceFirst","withPermits","encoder","TextEncoder","encode","of","index","indexOf","slice"],"sources":["../src/BunHttpServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BunHttpServer.js","names":["Config","Context","Deferred","Duration","Effect","Exit","Fiber","FiberSet","flow","Inspectable","Layer","Option","Scope","Semaphore","Stream","Cookies","Etag","FetchHttpClient","Headers","HttpEffect","IncomingMessage","Server","Error","ServerRequest","UrlParams","Socket","Platform","BunMultipart","BunServices","BunStream","make","fnUntraced","options","scope","handlerStack","_request","_server","Response","status","server","Bun","serve","fetch","websocket","open","ws","doneUnsafe","data","deferred","succeed","message","run","close","code","closeReason","closeDeferred","defaultCloseCodeIsError","fail","SocketError","reason","SocketCloseError","void","shutdown","promise","stop","pipe","cached","preemptiveShutdown","disablePreemptiveShutdown","timeoutOrElse","duration","gracefulShutdownTimeout","seconds","orElse","addFinalizer","address","_tag","port","hostname","httpApp","middleware","parent","fiber","services","context","serveScope","getUnsafe","forkUnsafe","httpEffect","toHandled","request","response","sync","resolve","makeResponse","handler","Promise","_reject","map","Map","mapUnsafe","set","HttpServerRequest","key","BunServerRequest","removeHost","url","runIn","runForkWith","makeUnsafe","signal","addEventListener","interruptUnsafe","id","ClientAbort","annotation","once","addFinalizerExit","pop","reload","length","push","fields","headers","globalThis","isEmpty","cookies","header","toSetCookieHeaders","append","statusText","undefined","method","scopeTransferToStream","body","value","entries","formData","toReadableStreamWith","unwrap","withFiber","stream","layerServer","effect","HttpServer","layerHttpServices","mergeAll","layer","layerWeak","layerTest","layerTestClient","provide","RequestInit","keepalive","provideMerge","layerConfig","flatMap","wsDefaultRun","_","buffer","Class","TypeId","source","bunServer","headersOverride","remoteAddressOverride","constructor","toJSON","inspect","_id","originalUrl","modify","remoteAddress","toUpperCase","fromNullishOr","requestIP","fromInput","cachedCookies","parseHeader","cookie","fromReadableStream","evaluate","emptyReadbleStream","onError","cause","HttpServerError","RequestParseError","description","textEffect","text","runSync","tryPromise","try","catch","json","JSON","parse","urlParamsBody","URLSearchParams","multipartEffect","multipart","persisted","multipartStream","arrayBufferEffect","arrayBuffer","TextDecoder","decode","upgrade","callback","resume","semaphore","success","await","write","chunk","sendText","isCloseEvent","sendBinary","writer","runRaw","opts","runtime","result","isEffect","forEach","onOpen","join","scoped","onExit","exit","raceFirst","withPermits","ReadableStream","start","controller","enqueue","Uint8Array","index","indexOf","slice"],"sources":["../src/BunHttpServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Accessor for the Bun request behind an Effect HTTP server request.
|
|
3
|
+
*
|
|
4
|
+
* This module exports `toBunServerRequest`, which returns the underlying
|
|
5
|
+
* `Bun.BunRequest` stored inside a Bun-backed `HttpServerRequest`. It is meant
|
|
6
|
+
* for code that needs to interoperate with Bun-specific request APIs.
|
|
7
|
+
*
|
|
8
|
+
* @since 4.0.0
|
|
3
9
|
*/
|
|
4
10
|
import type { HttpServerRequest } from "effect/unstable/http/HttpServerRequest";
|
|
5
11
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
12
|
+
* Returns the underlying `Bun.BunRequest` from an Effect `HttpServerRequest`.
|
|
13
|
+
*
|
|
14
|
+
* @category accessors
|
|
15
|
+
* @since 4.0.0
|
|
8
16
|
*/
|
|
9
17
|
export declare const toBunServerRequest: <T extends string = string>(self: HttpServerRequest) => Bun.BunRequest<T>;
|
|
10
18
|
//# sourceMappingURL=BunHttpServerRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunHttpServerRequest.d.ts","sourceRoot":"","sources":["../src/BunHttpServerRequest.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"BunHttpServerRequest.d.ts","sourceRoot":"","sources":["../src/BunHttpServerRequest.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,iBAAiB,KAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAClF,CAAA"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Returns the underlying `Bun.BunRequest` from an Effect `HttpServerRequest`.
|
|
3
|
+
*
|
|
4
|
+
* @category accessors
|
|
5
|
+
* @since 4.0.0
|
|
4
6
|
*/
|
|
5
7
|
export const toBunServerRequest = self => self.source;
|
|
6
8
|
//# sourceMappingURL=BunHttpServerRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunHttpServerRequest.js","names":["toBunServerRequest","self","source"],"sources":["../src/BunHttpServerRequest.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"BunHttpServerRequest.js","names":["toBunServerRequest","self","source"],"sources":["../src/BunHttpServerRequest.ts"],"sourcesContent":[null],"mappings":"AAWA;;;;;;AAMA,OAAO,MAAMA,kBAAkB,GAA+BC,IAAuB,IAClFA,IAAY,CAACC,MAAM","ignoreList":[]}
|
package/dist/BunMultipart.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Bun-specific helpers for parsing HTTP `multipart/form-data` request bodies.
|
|
3
|
+
*
|
|
4
|
+
* This module adapts a Bun `Request` body and headers into the shared
|
|
5
|
+
* `Multipart` model. `stream` returns multipart parts as a `Stream`, while
|
|
6
|
+
* `persisted` collects the form and writes file parts to scoped temporary files
|
|
7
|
+
* through the current `FileSystem`, `Path`, and `Scope` services.
|
|
8
|
+
*
|
|
9
|
+
* @since 4.0.0
|
|
3
10
|
*/
|
|
4
11
|
import type * as Effect from "effect/Effect";
|
|
5
12
|
import type { FileSystem } from "effect/FileSystem";
|
|
@@ -8,13 +15,17 @@ import type * as Scope from "effect/Scope";
|
|
|
8
15
|
import * as Stream from "effect/Stream";
|
|
9
16
|
import * as Multipart from "effect/unstable/http/Multipart";
|
|
10
17
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
18
|
+
* Parses a Bun `Request` body as multipart data and returns a stream of multipart parts.
|
|
19
|
+
*
|
|
20
|
+
* @category constructors
|
|
21
|
+
* @since 4.0.0
|
|
13
22
|
*/
|
|
14
23
|
export declare const stream: (source: Request) => Stream.Stream<Multipart.Part, Multipart.MultipartError>;
|
|
15
24
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
25
|
+
* Parses and persists multipart data from a Bun `Request`, requiring file-system, path, and scope services.
|
|
26
|
+
*
|
|
27
|
+
* @category constructors
|
|
28
|
+
* @since 4.0.0
|
|
18
29
|
*/
|
|
19
30
|
export declare const persisted: (source: Request) => Effect.Effect<Multipart.Persisted, Multipart.MultipartError, FileSystem | Path | Scope.Scope>;
|
|
20
31
|
//# sourceMappingURL=BunMultipart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunMultipart.d.ts","sourceRoot":"","sources":["../src/BunMultipart.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"BunMultipart.d.ts","sourceRoot":"","sources":["../src/BunMultipart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAA;AAG3D;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,cAAc,CAM5F,CAAA;AASH;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GACpB,QAAQ,OAAO,KACd,MAAM,CAAC,MAAM,CACd,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,cAAc,EACtB,UAAU,GACV,IAAI,GACJ,KAAK,CAAC,KAAK,CAC2B,CAAA"}
|
package/dist/BunMultipart.js
CHANGED
|
@@ -2,16 +2,26 @@ import * as Stream from "effect/Stream";
|
|
|
2
2
|
import * as Multipart from "effect/unstable/http/Multipart";
|
|
3
3
|
import * as BunStream from "./BunStream.js";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Parses a Bun `Request` body as multipart data and returns a stream of multipart parts.
|
|
6
|
+
*
|
|
7
|
+
* @category constructors
|
|
8
|
+
* @since 4.0.0
|
|
7
9
|
*/
|
|
8
10
|
export const stream = source => BunStream.fromReadableStream({
|
|
9
|
-
evaluate: () => source.body,
|
|
11
|
+
evaluate: () => source.body ?? emptyReadbleStream,
|
|
10
12
|
onError: cause => Multipart.MultipartError.fromReason("InternalError", cause)
|
|
11
13
|
}).pipe(Stream.pipeThroughChannel(Multipart.makeChannel(Object.fromEntries(source.headers))));
|
|
14
|
+
const emptyReadbleStream = /*#__PURE__*/new ReadableStream({
|
|
15
|
+
start(controller) {
|
|
16
|
+
controller.enqueue(new Uint8Array());
|
|
17
|
+
controller.close();
|
|
18
|
+
}
|
|
19
|
+
});
|
|
12
20
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
21
|
+
* Parses and persists multipart data from a Bun `Request`, requiring file-system, path, and scope services.
|
|
22
|
+
*
|
|
23
|
+
* @category constructors
|
|
24
|
+
* @since 4.0.0
|
|
15
25
|
*/
|
|
16
26
|
export const persisted = source => Multipart.toPersisted(stream(source));
|
|
17
27
|
//# sourceMappingURL=BunMultipart.js.map
|
package/dist/BunMultipart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunMultipart.js","names":["Stream","Multipart","BunStream","stream","source","fromReadableStream","evaluate","body","onError","cause","MultipartError","fromReason","pipe","pipeThroughChannel","makeChannel","Object","fromEntries","headers","persisted","toPersisted"],"sources":["../src/BunMultipart.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"BunMultipart.js","names":["Stream","Multipart","BunStream","stream","source","fromReadableStream","evaluate","body","emptyReadbleStream","onError","cause","MultipartError","fromReason","pipe","pipeThroughChannel","makeChannel","Object","fromEntries","headers","ReadableStream","start","controller","enqueue","Uint8Array","close","persisted","toPersisted"],"sources":["../src/BunMultipart.ts"],"sourcesContent":[null],"mappings":"AAcA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,SAAS,MAAM,gCAAgC;AAC3D,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;;;;AAMA,OAAO,MAAMC,MAAM,GAAIC,MAAe,IACpCF,SAAS,CAACG,kBAAkB,CAAC;EAC3BC,QAAQ,EAAEA,CAAA,KAAMF,MAAM,CAACG,IAAI,IAAIC,kBAAkB;EACjDC,OAAO,EAAGC,KAAK,IAAKT,SAAS,CAACU,cAAc,CAACC,UAAU,CAAC,eAAe,EAAEF,KAAK;CAC/E,CAAC,CAACG,IAAI,CACLb,MAAM,CAACc,kBAAkB,CAACb,SAAS,CAACc,WAAW,CAACC,MAAM,CAACC,WAAW,CAACb,MAAM,CAACc,OAAO,CAAC,CAAC,CAAC,CACrF;AAEH,MAAMV,kBAAkB,gBAAG,IAAIW,cAAc,CAAC;EAC5CC,KAAKA,CAACC,UAAU;IACdA,UAAU,CAACC,OAAO,CAAC,IAAIC,UAAU,EAAE,CAAC;IACpCF,UAAU,CAACG,KAAK,EAAE;EACpB;CACD,CAAC;AAEF;;;;;;AAMA,OAAO,MAAMC,SAAS,GACpBrB,MAAe,IAOZH,SAAS,CAACyB,WAAW,CAACvB,MAAM,CAACC,MAAM,CAAC,CAAC","ignoreList":[]}
|
package/dist/BunPath.d.ts
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import type * as Layer from "effect/Layer";
|
|
2
2
|
import type { Path } from "effect/Path";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Layer that provides the default `Path` service for Bun using the shared Node path implementation.
|
|
5
|
+
*
|
|
6
|
+
* @category layers
|
|
7
|
+
* @since 4.0.0
|
|
6
8
|
*/
|
|
7
9
|
export declare const layer: Layer.Layer<Path>;
|
|
8
10
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
+
* Layer that provides the POSIX `Path` service for Bun using the shared Node path implementation.
|
|
12
|
+
*
|
|
13
|
+
* @category layers
|
|
14
|
+
* @since 4.0.0
|
|
11
15
|
*/
|
|
12
16
|
export declare const layerPosix: Layer.Layer<Path>;
|
|
13
17
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
18
|
+
* Layer that provides the Win32 `Path` service for Bun using the shared Node path implementation.
|
|
19
|
+
*
|
|
20
|
+
* @category layers
|
|
21
|
+
* @since 4.0.0
|
|
16
22
|
*/
|
|
17
23
|
export declare const layerWin32: Layer.Layer<Path>;
|
|
18
24
|
//# sourceMappingURL=BunPath.d.ts.map
|
package/dist/BunPath.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunPath.d.ts","sourceRoot":"","sources":["../src/BunPath.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BunPath.d.ts","sourceRoot":"","sources":["../src/BunPath.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAA;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAA;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAA"}
|