@effect/platform-bun 4.0.0-beta.66 → 4.0.0-beta.68

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 (108) hide show
  1. package/dist/BunChildProcessSpawner.d.ts +1 -1
  2. package/dist/BunChildProcessSpawner.js +1 -1
  3. package/dist/BunClusterHttp.d.ts +44 -7
  4. package/dist/BunClusterHttp.d.ts.map +1 -1
  5. package/dist/BunClusterHttp.js +10 -6
  6. package/dist/BunClusterHttp.js.map +1 -1
  7. package/dist/BunClusterSocket.d.ts +48 -9
  8. package/dist/BunClusterSocket.d.ts.map +1 -1
  9. package/dist/BunClusterSocket.js +48 -9
  10. package/dist/BunClusterSocket.js.map +1 -1
  11. package/dist/BunCrypto.d.ts +10 -0
  12. package/dist/BunCrypto.d.ts.map +1 -0
  13. package/dist/BunCrypto.js +14 -0
  14. package/dist/BunCrypto.js.map +1 -0
  15. package/dist/BunFileSystem.d.ts +4 -2
  16. package/dist/BunFileSystem.d.ts.map +1 -1
  17. package/dist/BunFileSystem.js +27 -3
  18. package/dist/BunFileSystem.js.map +1 -1
  19. package/dist/BunHttpClient.d.ts +2 -2
  20. package/dist/BunHttpClient.js +2 -2
  21. package/dist/BunHttpPlatform.d.ts +4 -2
  22. package/dist/BunHttpPlatform.d.ts.map +1 -1
  23. package/dist/BunHttpPlatform.js +5 -3
  24. package/dist/BunHttpPlatform.js.map +1 -1
  25. package/dist/BunHttpServer.d.ts +59 -14
  26. package/dist/BunHttpServer.d.ts.map +1 -1
  27. package/dist/BunHttpServer.js +24 -12
  28. package/dist/BunHttpServer.js.map +1 -1
  29. package/dist/BunHttpServerRequest.d.ts +26 -2
  30. package/dist/BunHttpServerRequest.d.ts.map +1 -1
  31. package/dist/BunHttpServerRequest.js +3 -1
  32. package/dist/BunHttpServerRequest.js.map +1 -1
  33. package/dist/BunMultipart.d.ts +28 -5
  34. package/dist/BunMultipart.d.ts.map +1 -1
  35. package/dist/BunMultipart.js +8 -4
  36. package/dist/BunMultipart.js.map +1 -1
  37. package/dist/BunPath.d.ts +12 -6
  38. package/dist/BunPath.d.ts.map +1 -1
  39. package/dist/BunPath.js +30 -7
  40. package/dist/BunPath.js.map +1 -1
  41. package/dist/BunRedis.d.ts +37 -7
  42. package/dist/BunRedis.d.ts.map +1 -1
  43. package/dist/BunRedis.js +37 -7
  44. package/dist/BunRedis.js.map +1 -1
  45. package/dist/BunRuntime.d.ts +6 -6
  46. package/dist/BunRuntime.d.ts.map +1 -1
  47. package/dist/BunRuntime.js +19 -3
  48. package/dist/BunRuntime.js.map +1 -1
  49. package/dist/BunServices.d.ts +32 -5
  50. package/dist/BunServices.d.ts.map +1 -1
  51. package/dist/BunServices.js +7 -3
  52. package/dist/BunServices.js.map +1 -1
  53. package/dist/BunSink.d.ts +2 -2
  54. package/dist/BunSink.js +2 -2
  55. package/dist/BunSocket.d.ts +30 -4
  56. package/dist/BunSocket.d.ts.map +1 -1
  57. package/dist/BunSocket.js +10 -3
  58. package/dist/BunSocket.js.map +1 -1
  59. package/dist/BunSocketServer.d.ts +2 -2
  60. package/dist/BunSocketServer.js +2 -2
  61. package/dist/BunStdio.d.ts +5 -2
  62. package/dist/BunStdio.d.ts.map +1 -1
  63. package/dist/BunStdio.js +24 -3
  64. package/dist/BunStdio.js.map +1 -1
  65. package/dist/BunStream.d.ts +3 -2
  66. package/dist/BunStream.d.ts.map +1 -1
  67. package/dist/BunStream.js +25 -3
  68. package/dist/BunStream.js.map +1 -1
  69. package/dist/BunTerminal.d.ts +8 -2
  70. package/dist/BunTerminal.d.ts.map +1 -1
  71. package/dist/BunTerminal.js +23 -3
  72. package/dist/BunTerminal.js.map +1 -1
  73. package/dist/BunWorker.d.ts +9 -2
  74. package/dist/BunWorker.d.ts.map +1 -1
  75. package/dist/BunWorker.js +28 -3
  76. package/dist/BunWorker.js.map +1 -1
  77. package/dist/BunWorkerRunner.d.ts +5 -1
  78. package/dist/BunWorkerRunner.d.ts.map +1 -1
  79. package/dist/BunWorkerRunner.js +24 -2
  80. package/dist/BunWorkerRunner.js.map +1 -1
  81. package/dist/index.d.ts +396 -21
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +396 -21
  84. package/dist/index.js.map +1 -1
  85. package/package.json +5 -5
  86. package/src/BunChildProcessSpawner.ts +1 -1
  87. package/src/BunClusterHttp.ts +44 -7
  88. package/src/BunClusterSocket.ts +48 -9
  89. package/src/BunCrypto.ts +16 -0
  90. package/src/BunFileSystem.ts +27 -3
  91. package/src/BunHttpClient.ts +2 -2
  92. package/src/BunHttpPlatform.ts +28 -4
  93. package/src/BunHttpServer.ts +59 -14
  94. package/src/BunHttpServerRequest.ts +26 -2
  95. package/src/BunMultipart.ts +28 -5
  96. package/src/BunPath.ts +30 -7
  97. package/src/BunRedis.ts +37 -7
  98. package/src/BunRuntime.ts +23 -7
  99. package/src/BunServices.ts +34 -5
  100. package/src/BunSink.ts +2 -2
  101. package/src/BunSocket.ts +30 -4
  102. package/src/BunSocketServer.ts +2 -2
  103. package/src/BunStdio.ts +24 -3
  104. package/src/BunStream.ts +25 -3
  105. package/src/BunTerminal.ts +23 -3
  106. package/src/BunWorker.ts +28 -3
  107. package/src/BunWorkerRunner.ts +24 -2
  108. package/src/index.ts +397 -21
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Node.js implementation of `ChildProcessSpawner`.
3
3
  *
4
- * @since 1.0.0
4
+ * @since 4.0.0
5
5
  */
6
6
  export * from "@effect/platform-node-shared/NodeChildProcessSpawner";
7
7
  //# sourceMappingURL=BunChildProcessSpawner.d.ts.map
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Node.js implementation of `ChildProcessSpawner`.
3
3
  *
4
- * @since 1.0.0
4
+ * @since 4.0.0
5
5
  */
6
6
  export * from "@effect/platform-node-shared/NodeChildProcessSpawner";
7
7
  //# sourceMappingURL=BunChildProcessSpawner.js.map
@@ -1,5 +1,38 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * The `BunClusterHttp` module provides the Bun HTTP and WebSocket transports
3
+ * for Effect Cluster runners. It wires `HttpRunner` to the Bun HTTP server,
4
+ * supplies Fetch and Bun WebSocket client protocols, and builds a complete
5
+ * sharding layer with serialization, runner health, runner storage, and message
6
+ * storage.
7
+ *
8
+ * **Common tasks**
9
+ *
10
+ * - Run a Bun process as a cluster runner over HTTP or WebSocket with
11
+ * {@link layer}
12
+ * - Connect a client-only process to an existing HTTP cluster without starting
13
+ * a runner server
14
+ * - Use SQL-backed storage for durable multi-process clusters, `local` storage
15
+ * for short-lived development, or `byo` storage when the deployment owns the
16
+ * persistence boundary
17
+ * - Check runner health with protocol pings or Kubernetes pod readiness through
18
+ * {@link layerK8sHttpClient}
19
+ *
20
+ * **Gotchas**
21
+ *
22
+ * - `runnerAddress` is the host and port advertised to other runners; set
23
+ * `runnerListenAddress` when the local bind address differs from the
24
+ * externally reachable address
25
+ * - The HTTP and WebSocket transports serve runner RPCs at the default
26
+ * `HttpRunner` route, so proxies and load balancers must preserve the path
27
+ * and allow WebSocket upgrades when `transport` is `"websocket"`
28
+ * - `clientOnly` does not start an HTTP server or receive shard assignments
29
+ * - SQL storage is the default; `local` storage is in-memory/noop and `byo`
30
+ * requires the surrounding application to provide both runner and message
31
+ * storage services
32
+ * - Ping health checks use the selected transport and serialization, so route,
33
+ * port, proxy, or codec mismatches can make a runner appear unhealthy
34
+ *
35
+ * @since 4.0.0
3
36
  */
4
37
  import type * as Config from "effect/Config";
5
38
  import * as Layer from "effect/Layer";
@@ -17,18 +50,22 @@ import { layerK8sHttpClient } from "./BunClusterSocket.ts";
17
50
  import type { BunServices } from "./BunServices.ts";
18
51
  export {
19
52
  /**
20
- * @since 1.0.0
21
- * @category Re-exports
53
+ * @category re-exports
54
+ * @since 4.0.0
22
55
  */
23
56
  layerK8sHttpClient };
24
57
  /**
25
- * @since 1.0.0
26
- * @category Layers
58
+ * Bun HTTP server layer for cluster runners, using `ShardingConfig.runnerListenAddress` or `runnerAddress` as the listen address.
59
+ *
60
+ * @category layers
61
+ * @since 4.0.0
27
62
  */
28
63
  export declare const layerHttpServer: Layer.Layer<HttpPlatform | Etag.Generator | BunServices | HttpServer, ServeError, ShardingConfig.ShardingConfig>;
29
64
  /**
30
- * @since 1.0.0
31
- * @category Layers
65
+ * Creates Bun cluster layers for HTTP or WebSocket transport, configuring serialization, storage, runner health, and optional client-only mode.
66
+ *
67
+ * @category layers
68
+ * @since 4.0.0
32
69
  */
33
70
  export declare const layer: <const ClientOnly extends boolean = false, const Storage extends "local" | "sql" | "byo" = never>(options: {
34
71
  readonly transport: "http" | "websocket";
@@ -1 +1 @@
1
- {"version":3,"file":"BunClusterHttp.d.ts","sourceRoot":"","sources":["../src/BunClusterHttp.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAGxE,OAAO,KAAK,KAAK,IAAI,MAAM,2BAA2B,CAAA;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGnD,OAAO;AACL;;;GAGG;AACH,kBAAkB,EACnB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,KAAK,CACrC,YAAY,GACZ,IAAI,CAAC,SAAS,GACd,WAAW,GACX,UAAU,EACZ,UAAU,EACV,cAAc,CAAC,cAAc,CAQV,CAAA;AAErB;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,UAAU,SAAS,OAAO,GAAG,KAAK,EACxC,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EACrD,SAAS;IACT,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;CACxF,KAAG,UAAU,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,CACrC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,MAAM,CAAC,WAAW,EAClB,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CACd,GACD,KAAK,CAAC,KAAK,CACT,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,cAAc,CAAC,cAAc,EAC1D,UAAU,GAAG,MAAM,CAAC,WAAW,EAC/B,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CAiDhB,CAAA"}
1
+ {"version":3,"file":"BunClusterHttp.d.ts","sourceRoot":"","sources":["../src/BunClusterHttp.ts"],"names":[],"mappings":"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"}
@@ -17,13 +17,15 @@ import * as BunHttpServer from "./BunHttpServer.js";
17
17
  import * as BunSocket from "./BunSocket.js";
18
18
  export {
19
19
  /**
20
- * @since 1.0.0
21
- * @category Re-exports
20
+ * @category re-exports
21
+ * @since 4.0.0
22
22
  */
23
23
  layerK8sHttpClient };
24
24
  /**
25
- * @since 1.0.0
26
- * @category Layers
25
+ * Bun HTTP server layer for cluster runners, using `ShardingConfig.runnerListenAddress` or `runnerAddress` as the listen address.
26
+ *
27
+ * @category layers
28
+ * @since 4.0.0
27
29
  */
28
30
  export const layerHttpServer = /*#__PURE__*/Effect.gen(function* () {
29
31
  const config = yield* ShardingConfig.ShardingConfig;
@@ -34,8 +36,10 @@ export const layerHttpServer = /*#__PURE__*/Effect.gen(function* () {
34
36
  return BunHttpServer.layer(listenAddress.value);
35
37
  }).pipe(Layer.unwrap);
36
38
  /**
37
- * @since 1.0.0
38
- * @category Layers
39
+ * Creates Bun cluster layers for HTTP or WebSocket transport, configuring serialization, storage, runner health, and optional client-only mode.
40
+ *
41
+ * @category layers
42
+ * @since 4.0.0
39
43
  */
40
44
  export const layer = options => {
41
45
  const layer = options.clientOnly
@@ -1 +1 @@
1
- {"version":3,"file":"BunClusterHttp.js","names":["Effect","Layer","Option","HttpRunner","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SqlMessageStorage","SqlRunnerStorage","FetchHttpClient","RpcSerialization","layerK8sHttpClient","BunFileSystem","BunHttpServer","BunSocket","layerHttpServer","gen","config","listenAddress","orElse","runnerListenAddress","runnerAddress","isNone","die","layer","value","pipe","unwrap","options","clientOnly","transport","provide","layerHttpClientOnly","layerWebsocketClientOnly","layerWebSocketConstructor","layerHttp","layerWebsocket","runnerHealth","empty","layerK8s","runnerHealthK8s","layerPing","layerRpc","layerClientProtocolHttpDefault","layerClientProtocolWebsocketDefault","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack"],"sources":["../src/BunClusterHttp.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BunClusterHttp.js","names":["Effect","Layer","Option","HttpRunner","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SqlMessageStorage","SqlRunnerStorage","FetchHttpClient","RpcSerialization","layerK8sHttpClient","BunFileSystem","BunHttpServer","BunSocket","layerHttpServer","gen","config","listenAddress","orElse","runnerListenAddress","runnerAddress","isNone","die","layer","value","pipe","unwrap","options","clientOnly","transport","provide","layerHttpClientOnly","layerWebsocketClientOnly","layerWebSocketConstructor","layerHttp","layerWebsocket","runnerHealth","empty","layerK8s","runnerHealthK8s","layerPing","layerRpc","layerClientProtocolHttpDefault","layerClientProtocolWebsocketDefault","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack"],"sources":["../src/BunClusterHttp.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,40 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * The `BunClusterSocket` module provides the Bun socket transport for Effect
3
+ * Cluster runners. It wires `SocketRunner` to Bun-compatible TCP sockets,
4
+ * supplies RPC client and server protocol layers, and builds a complete
5
+ * sharding layer with serialization, runner health, runner storage, and message
6
+ * storage.
7
+ *
8
+ * **Common tasks**
9
+ *
10
+ * - Run a Bun process as a cluster runner over raw TCP sockets with
11
+ * {@link layer}
12
+ * - Connect a client-only process to an existing socket cluster without
13
+ * starting a runner server
14
+ * - Use SQL-backed storage for durable multi-process clusters, `local` storage
15
+ * for short-lived development, or `byo` storage when the deployment owns the
16
+ * persistence boundary
17
+ * - Check runner health with socket pings or Kubernetes pod readiness through
18
+ * {@link layerK8sHttpClient}
19
+ *
20
+ * **Gotchas**
21
+ *
22
+ * - `runnerAddress` is the host and port advertised to other runners; set
23
+ * `runnerListenAddress` when the local bind address differs from the
24
+ * externally reachable address
25
+ * - The socket transport is point-to-point RPC, not cluster gossip: runner
26
+ * membership, shard ownership, and persisted delivery are coordinated through
27
+ * `RunnerStorage`, `MessageStorage`, and `RunnerHealth`
28
+ * - `clientOnly` does not start a socket server or receive shard assignments
29
+ * - SQL storage is the default; `local` storage is in-memory/noop and `byo`
30
+ * requires the surrounding application to provide both runner and message
31
+ * storage services
32
+ * - Ping health checks use the same socket protocol, so unreachable ports,
33
+ * firewalls, or serialization mismatches can make a runner appear unhealthy
34
+ * - Kubernetes health checks use Bun's Fetch-backed HTTP client and the service
35
+ * account CA certificate when it is available
36
+ *
37
+ * @since 4.0.0
3
38
  */
4
39
  import { layerClientProtocol, layerSocketServer } from "@effect/platform-node-shared/NodeClusterSocket";
5
40
  import type * as Config from "effect/Config";
@@ -14,18 +49,20 @@ import type * as SocketServer from "effect/unstable/socket/SocketServer";
14
49
  import type { SqlClient } from "effect/unstable/sql/SqlClient";
15
50
  export {
16
51
  /**
17
- * @since 1.0.0
18
- * @category Re-exports
52
+ * @category re-exports
53
+ * @since 4.0.0
19
54
  */
20
55
  layerClientProtocol,
21
56
  /**
22
- * @since 1.0.0
23
- * @category Re-exports
57
+ * @category re-exports
58
+ * @since 4.0.0
24
59
  */
25
60
  layerSocketServer };
26
61
  /**
27
- * @since 1.0.0
28
- * @category Layers
62
+ * Creates Bun socket cluster layers, configuring serialization, storage, runner health, and optional client-only mode.
63
+ *
64
+ * @category layers
65
+ * @since 4.0.0
29
66
  */
30
67
  export declare const layer: <const ClientOnly extends boolean = false, const Storage extends "local" | "sql" | "byo" = never>(options?: {
31
68
  readonly serialization?: "msgpack" | "ndjson" | undefined;
@@ -39,8 +76,10 @@ export declare const layer: <const ClientOnly extends boolean = false, const Sto
39
76
  readonly shardingConfig?: Partial<ShardingConfig.ShardingConfig["Service"]> | undefined;
40
77
  }) => ClientOnly extends true ? Layer.Layer<Sharding | Runners.Runners | ("byo" extends Storage ? never : MessageStorage.MessageStorage), Config.ConfigError, "local" extends Storage ? never : "byo" extends Storage ? (MessageStorage.MessageStorage | RunnerStorage.RunnerStorage) : SqlClient> : Layer.Layer<Sharding | Runners.Runners | ("byo" extends Storage ? never : MessageStorage.MessageStorage), SocketServer.SocketServerError | Config.ConfigError, "local" extends Storage ? never : "byo" extends Storage ? (MessageStorage.MessageStorage | RunnerStorage.RunnerStorage) : SqlClient>;
41
78
  /**
42
- * @since 1.0.0
43
- * @category Layers
79
+ * Layer that provides `K8sHttpClient`, using the Kubernetes service-account CA certificate when it is available.
80
+ *
81
+ * @category layers
82
+ * @since 4.0.0
44
83
  */
45
84
  export declare const layerK8sHttpClient: Layer.Layer<K8sHttpClient.K8sHttpClient>;
46
85
  //# sourceMappingURL=BunClusterSocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BunClusterSocket.d.ts","sourceRoot":"","sources":["../src/BunClusterSocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAA;AACvG,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAG5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAMxE,OAAO,KAAK,KAAK,YAAY,MAAM,qCAAqC,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAG9D,OAAO;AACL;;;GAGG;AACH,mBAAmB;AACnB;;;GAGG;AACH,iBAAiB,EAClB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,UAAU,SAAS,OAAO,GAAG,KAAK,EACxC,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAErD,UAAU;IACR,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;CACxF,KACA,UAAU,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,CACpC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,MAAM,CAAC,WAAW,EAClB,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CACd,GACD,KAAK,CAAC,KAAK,CACT,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,YAAY,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,EACnD,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CAyChB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAmBvE,CAAA"}
1
+ {"version":3,"file":"BunClusterSocket.d.ts","sourceRoot":"","sources":["../src/BunClusterSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAA;AACvG,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAG5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAMxE,OAAO,KAAK,KAAK,YAAY,MAAM,qCAAqC,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAG9D,OAAO;AACL;;;GAGG;AACH,mBAAmB;AACnB;;;GAGG;AACH,iBAAiB,EAClB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,UAAU,SAAS,OAAO,GAAG,KAAK,EACxC,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAErD,UAAU;IACR,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;CACxF,KACA,UAAU,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,CACpC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,MAAM,CAAC,WAAW,EAClB,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CACd,GACD,KAAK,CAAC,KAAK,CACT,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,YAAY,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,EACnD,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CAyChB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAmBvE,CAAA"}
@@ -1,5 +1,40 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * The `BunClusterSocket` module provides the Bun socket transport for Effect
3
+ * Cluster runners. It wires `SocketRunner` to Bun-compatible TCP sockets,
4
+ * supplies RPC client and server protocol layers, and builds a complete
5
+ * sharding layer with serialization, runner health, runner storage, and message
6
+ * storage.
7
+ *
8
+ * **Common tasks**
9
+ *
10
+ * - Run a Bun process as a cluster runner over raw TCP sockets with
11
+ * {@link layer}
12
+ * - Connect a client-only process to an existing socket cluster without
13
+ * starting a runner server
14
+ * - Use SQL-backed storage for durable multi-process clusters, `local` storage
15
+ * for short-lived development, or `byo` storage when the deployment owns the
16
+ * persistence boundary
17
+ * - Check runner health with socket pings or Kubernetes pod readiness through
18
+ * {@link layerK8sHttpClient}
19
+ *
20
+ * **Gotchas**
21
+ *
22
+ * - `runnerAddress` is the host and port advertised to other runners; set
23
+ * `runnerListenAddress` when the local bind address differs from the
24
+ * externally reachable address
25
+ * - The socket transport is point-to-point RPC, not cluster gossip: runner
26
+ * membership, shard ownership, and persisted delivery are coordinated through
27
+ * `RunnerStorage`, `MessageStorage`, and `RunnerHealth`
28
+ * - `clientOnly` does not start a socket server or receive shard assignments
29
+ * - SQL storage is the default; `local` storage is in-memory/noop and `byo`
30
+ * requires the surrounding application to provide both runner and message
31
+ * storage services
32
+ * - Ping health checks use the same socket protocol, so unreachable ports,
33
+ * firewalls, or serialization mismatches can make a runner appear unhealthy
34
+ * - Kubernetes health checks use Bun's Fetch-backed HTTP client and the service
35
+ * account CA certificate when it is available
36
+ *
37
+ * @since 4.0.0
3
38
  */
4
39
  import { layerClientProtocol, layerSocketServer } from "@effect/platform-node-shared/NodeClusterSocket";
5
40
  import * as Effect from "effect/Effect";
@@ -19,18 +54,20 @@ import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
19
54
  import * as BunFileSystem from "./BunFileSystem.js";
20
55
  export {
21
56
  /**
22
- * @since 1.0.0
23
- * @category Re-exports
57
+ * @category re-exports
58
+ * @since 4.0.0
24
59
  */
25
60
  layerClientProtocol,
26
61
  /**
27
- * @since 1.0.0
28
- * @category Re-exports
62
+ * @category re-exports
63
+ * @since 4.0.0
29
64
  */
30
65
  layerSocketServer };
31
66
  /**
32
- * @since 1.0.0
33
- * @category Layers
67
+ * Creates Bun socket cluster layers, configuring serialization, storage, runner health, and optional client-only mode.
68
+ *
69
+ * @category layers
70
+ * @since 4.0.0
34
71
  */
35
72
  export const layer = options => {
36
73
  const layer = options?.clientOnly
@@ -42,8 +79,10 @@ export const layer = options => {
42
79
  return layer.pipe(Layer.provide(runnerHealth), Layer.provideMerge(options?.storage === "local" ? MessageStorage.layerNoop : options?.storage === "byo" ? Layer.empty : Layer.orDie(SqlMessageStorage.layer)), Layer.provide(options?.storage === "local" ? RunnerStorage.layerMemory : options?.storage === "byo" ? Layer.empty : Layer.orDie(SqlRunnerStorage.layer)), Layer.provide(ShardingConfig.layerFromEnv(options?.shardingConfig)), Layer.provide(options?.serialization === "ndjson" ? RpcSerialization.layerNdjson : RpcSerialization.layerMsgPack));
43
80
  };
44
81
  /**
45
- * @since 1.0.0
46
- * @category Layers
82
+ * Layer that provides `K8sHttpClient`, using the Kubernetes service-account CA certificate when it is available.
83
+ *
84
+ * @category layers
85
+ * @since 4.0.0
47
86
  */
48
87
  export const layerK8sHttpClient = /*#__PURE__*/K8sHttpClient.layer.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.unwrap(/*#__PURE__*/Effect.gen(function* () {
49
88
  const fs = yield* FileSystem.FileSystem;
@@ -1 +1 @@
1
- {"version":3,"file":"BunClusterSocket.js","names":["layerClientProtocol","layerSocketServer","Effect","FileSystem","Layer","K8sHttpClient","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SocketRunner","SqlMessageStorage","SqlRunnerStorage","FetchHttpClient","RpcSerialization","BunFileSystem","layer","options","clientOnly","provide","layerClientOnly","runnerHealth","empty","layerK8s","runnerHealthK8s","pipe","layerK8sHttpClient","layerPing","layerRpc","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack","unwrap","gen","fs","caCertOption","readFile","option","_tag","fresh","succeed","RequestInit","tls","ca","value"],"sources":["../src/BunClusterSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BunClusterSocket.js","names":["layerClientProtocol","layerSocketServer","Effect","FileSystem","Layer","K8sHttpClient","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SocketRunner","SqlMessageStorage","SqlRunnerStorage","FetchHttpClient","RpcSerialization","BunFileSystem","layer","options","clientOnly","provide","layerClientOnly","runnerHealth","empty","layerK8s","runnerHealthK8s","pipe","layerK8sHttpClient","layerPing","layerRpc","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack","unwrap","gen","fs","caCertOption","readFile","option","_tag","fresh","succeed","RequestInit","tls","ca","value"],"sources":["../src/BunClusterSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import type * as Crypto from "effect/Crypto";
2
+ import type * as Layer from "effect/Layer";
3
+ /**
4
+ * A layer that provides the Bun Crypto service implementation.
5
+ *
6
+ * @category layers
7
+ * @since 1.0.0
8
+ */
9
+ export declare const layer: Layer.Layer<Crypto.Crypto>;
10
+ //# sourceMappingURL=BunCrypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BunCrypto.d.ts","sourceRoot":"","sources":["../src/BunCrypto.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAoB,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Bun platform Crypto service layer.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ import * as NodeCrypto from "@effect/platform-node-shared/NodeCrypto";
7
+ /**
8
+ * A layer that provides the Bun Crypto service implementation.
9
+ *
10
+ * @category layers
11
+ * @since 1.0.0
12
+ */
13
+ export const layer = NodeCrypto.layer;
14
+ //# sourceMappingURL=BunCrypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BunCrypto.js","names":["NodeCrypto","layer"],"sources":["../src/BunCrypto.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,OAAO,KAAKA,UAAU,MAAM,yCAAyC;AAIrE;;;;;;AAMA,OAAO,MAAMC,KAAK,GAA+BD,UAAU,CAACC,KAAK","ignoreList":[]}
@@ -1,8 +1,10 @@
1
1
  import type { FileSystem } from "effect/FileSystem";
2
2
  import type * as Layer from "effect/Layer";
3
3
  /**
4
- * @since 1.0.0
5
- * @category layer
4
+ * Layer that provides the `FileSystem` service for Bun using the shared Node file-system implementation.
5
+ *
6
+ * @category layers
7
+ * @since 4.0.0
6
8
  */
7
9
  export declare const layer: Layer.Layer<FileSystem, never, never>;
8
10
  //# sourceMappingURL=BunFileSystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BunFileSystem.d.ts","sourceRoot":"","sources":["../src/BunFileSystem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAwB,CAAA"}
1
+ {"version":3,"file":"BunFileSystem.d.ts","sourceRoot":"","sources":["../src/BunFileSystem.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAwB,CAAA"}
@@ -1,10 +1,34 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Bun layer for Effect's `FileSystem` service.
3
+ *
4
+ * Use this module at the edge of Bun applications, CLIs, scripts, and tests
5
+ * that need real local filesystem access through `effect/FileSystem`: reading
6
+ * and writing files, creating directories and temporary files, inspecting
7
+ * metadata, managing links, or watching paths for changes. It exposes only the
8
+ * Bun `FileSystem` layer; the operations themselves are accessed from the
9
+ * `FileSystem` service once the layer is provided, or from `BunServices.layer`
10
+ * when the program also needs the standard Bun path, stdio, terminal, and child
11
+ * process services.
12
+ *
13
+ * Bun supports Node-compatible filesystem APIs, so this layer reuses the shared
14
+ * Node filesystem implementation. Paths therefore follow the current process and
15
+ * host platform rules: relative paths are resolved from the current working
16
+ * directory, separators and drive/UNC behavior are platform-dependent, and
17
+ * request URLs should be decoded and validated before being mapped to local
18
+ * paths. The service works with bytes, scoped file handles, and Effect
19
+ * streams/sinks; use `FileSystem.stream` for large files instead of
20
+ * `readFile`, and remember that stream offsets and lengths are byte positions.
21
+ * Bun `File` and `Blob` values are not filesystem handles here; path-based HTTP
22
+ * file responses are handled by the Bun HTTP platform adapter with `Bun.file`.
23
+ *
24
+ * @since 4.0.0
3
25
  */
4
26
  import * as NodeFileSystem from "@effect/platform-node-shared/NodeFileSystem";
5
27
  /**
6
- * @since 1.0.0
7
- * @category layer
28
+ * Layer that provides the `FileSystem` service for Bun using the shared Node file-system implementation.
29
+ *
30
+ * @category layers
31
+ * @since 4.0.0
8
32
  */
9
33
  export const layer = NodeFileSystem.layer;
10
34
  //# sourceMappingURL=BunFileSystem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BunFileSystem.js","names":["NodeFileSystem","layer"],"sources":["../src/BunFileSystem.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,cAAc,MAAM,6CAA6C;AAI7E;;;;AAIA,OAAO,MAAMC,KAAK,GAA0CD,cAAc,CAACC,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"BunFileSystem.js","names":["NodeFileSystem","layer"],"sources":["../src/BunFileSystem.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,KAAKA,cAAc,MAAM,6CAA6C;AAI7E;;;;;;AAMA,OAAO,MAAMC,KAAK,GAA0CD,cAAc,CAACC,KAAK","ignoreList":[]}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  /**
5
- * @since 1.0.0
6
5
  * @category re-exports
6
+ * @since 4.0.0
7
7
  */
8
8
  export * from "effect/unstable/http/FetchHttpClient";
9
9
  //# sourceMappingURL=BunHttpClient.d.ts.map
@@ -1,9 +1,9 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  /**
5
- * @since 1.0.0
6
5
  * @category re-exports
6
+ * @since 4.0.0
7
7
  */
8
8
  export * from "effect/unstable/http/FetchHttpClient";
9
9
  //# sourceMappingURL=BunHttpClient.js.map
@@ -1,8 +1,10 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import * as Platform from "effect/unstable/http/HttpPlatform";
3
3
  /**
4
- * @since 1.0.0
5
- * @category Layers
4
+ * Layer that provides the Bun `HttpPlatform`, including file responses backed by `Bun.file`.
5
+ *
6
+ * @category layers
7
+ * @since 4.0.0
6
8
  */
7
9
  export declare const layer: Layer.Layer<Platform.HttpPlatform, never, never>;
8
10
  //# sourceMappingURL=BunHttpPlatform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BunHttpPlatform.d.ts","sourceRoot":"","sources":["../src/BunHttpPlatform.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,MAAM,mCAAmC,CAAA;AAyB7D;;;GAGG;AACH,eAAO,MAAM,KAAK,kDAGjB,CAAA"}
1
+ {"version":3,"file":"BunHttpPlatform.d.ts","sourceRoot":"","sources":["../src/BunHttpPlatform.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,MAAM,mCAAmC,CAAA;AAyB7D;;;;;GAKG;AACH,eAAO,MAAM,KAAK,kDAGjB,CAAA"}
@@ -4,8 +4,8 @@ import * as Platform from "effect/unstable/http/HttpPlatform";
4
4
  import * as Response from "effect/unstable/http/HttpServerResponse";
5
5
  import * as BunFileSystem from "./BunFileSystem.js";
6
6
  /**
7
- * @since 1.0.0
8
7
  * @category constructors
8
+ * @since 4.0.0
9
9
  */
10
10
  const make = /*#__PURE__*/Platform.make({
11
11
  fileResponse(path, status, statusText, headers, start, end, _contentLength) {
@@ -28,8 +28,10 @@ const make = /*#__PURE__*/Platform.make({
28
28
  }
29
29
  });
30
30
  /**
31
- * @since 1.0.0
32
- * @category Layers
31
+ * Layer that provides the Bun `HttpPlatform`, including file responses backed by `Bun.file`.
32
+ *
33
+ * @category layers
34
+ * @since 4.0.0
33
35
  */
34
36
  export const layer = /*#__PURE__*/Layer.effect(Platform.HttpPlatform)(make).pipe(/*#__PURE__*/Layer.provide(BunFileSystem.layer), /*#__PURE__*/Layer.provide(Etag.layer));
35
37
  //# sourceMappingURL=BunHttpPlatform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BunHttpPlatform.js","names":["Layer","Etag","Platform","Response","BunFileSystem","make","fileResponse","path","status","statusText","headers","start","end","_contentLength","file","Bun","undefined","slice","raw","fileWebResponse","_options","layer","effect","HttpPlatform","pipe","provide"],"sources":["../src/BunHttpPlatform.ts"],"sourcesContent":[null],"mappings":"AAKA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,IAAI,MAAM,2BAA2B;AACjD,OAAO,KAAKC,QAAQ,MAAM,mCAAmC;AAC7D,OAAO,KAAKC,QAAQ,MAAM,yCAAyC;AACnE,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;;AAIA,MAAMC,IAAI,gBAINH,QAAQ,CAACG,IAAI,CAAC;EAChBC,YAAYA,CAACC,IAAI,EAAEC,MAAM,EAAEC,UAAU,EAAEC,OAAO,EAAEC,KAAK,EAAEC,GAAG,EAAEC,cAAc;IACxE,IAAIC,IAAI,GAAGC,GAAG,CAACD,IAAI,CAACP,IAAI,CAAC;IACzB,IAAII,KAAK,GAAG,CAAC,IAAIC,GAAG,KAAKI,SAAS,EAAE;MAClCF,IAAI,GAAGA,IAAI,CAACG,KAAK,CAACN,KAAK,EAAEC,GAAG,CAAC;IAC/B;IACA,OAAOT,QAAQ,CAACe,GAAG,CAACJ,IAAI,EAAE;MAAEJ,OAAO;MAAEF,MAAM;MAAEC;IAAU,CAAE,CAAC;EAC5D,CAAC;EACDU,eAAeA,CAACL,IAAI,EAAEN,MAAM,EAAEC,UAAU,EAAEC,OAAO,EAAEU,QAAQ;IACzD,OAAOjB,QAAQ,CAACe,GAAG,CAACJ,IAAI,EAAE;MAAEJ,OAAO;MAAEF,MAAM;MAAEC;IAAU,CAAE,CAAC;EAC5D;CACD,CAAC;AAEF;;;;AAIA,OAAO,MAAMY,KAAK,gBAAGrB,KAAK,CAACsB,MAAM,CAACpB,QAAQ,CAACqB,YAAY,CAAC,CAAClB,IAAI,CAAC,CAACmB,IAAI,cACjExB,KAAK,CAACyB,OAAO,CAACrB,aAAa,CAACiB,KAAK,CAAC,eAClCrB,KAAK,CAACyB,OAAO,CAACxB,IAAI,CAACoB,KAAK,CAAC,CAC1B","ignoreList":[]}
1
+ {"version":3,"file":"BunHttpPlatform.js","names":["Layer","Etag","Platform","Response","BunFileSystem","make","fileResponse","path","status","statusText","headers","start","end","_contentLength","file","Bun","undefined","slice","raw","fileWebResponse","_options","layer","effect","HttpPlatform","pipe","provide"],"sources":["../src/BunHttpPlatform.ts"],"sourcesContent":[null],"mappings":"AA2BA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,IAAI,MAAM,2BAA2B;AACjD,OAAO,KAAKC,QAAQ,MAAM,mCAAmC;AAC7D,OAAO,KAAKC,QAAQ,MAAM,yCAAyC;AACnE,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;;AAIA,MAAMC,IAAI,gBAINH,QAAQ,CAACG,IAAI,CAAC;EAChBC,YAAYA,CAACC,IAAI,EAAEC,MAAM,EAAEC,UAAU,EAAEC,OAAO,EAAEC,KAAK,EAAEC,GAAG,EAAEC,cAAc;IACxE,IAAIC,IAAI,GAAGC,GAAG,CAACD,IAAI,CAACP,IAAI,CAAC;IACzB,IAAII,KAAK,GAAG,CAAC,IAAIC,GAAG,KAAKI,SAAS,EAAE;MAClCF,IAAI,GAAGA,IAAI,CAACG,KAAK,CAACN,KAAK,EAAEC,GAAG,CAAC;IAC/B;IACA,OAAOT,QAAQ,CAACe,GAAG,CAACJ,IAAI,EAAE;MAAEJ,OAAO;MAAEF,MAAM;MAAEC;IAAU,CAAE,CAAC;EAC5D,CAAC;EACDU,eAAeA,CAACL,IAAI,EAAEN,MAAM,EAAEC,UAAU,EAAEC,OAAO,EAAEU,QAAQ;IACzD,OAAOjB,QAAQ,CAACe,GAAG,CAACJ,IAAI,EAAE;MAAEJ,OAAO;MAAEF,MAAM;MAAEC;IAAU,CAAE,CAAC;EAC5D;CACD,CAAC;AAEF;;;;;;AAMA,OAAO,MAAMY,KAAK,gBAAGrB,KAAK,CAACsB,MAAM,CAACpB,QAAQ,CAACqB,YAAY,CAAC,CAAClB,IAAI,CAAC,CAACmB,IAAI,cACjExB,KAAK,CAACyB,OAAO,CAACrB,aAAa,CAACiB,KAAK,CAAC,eAClCrB,KAAK,CAACyB,OAAO,CAACxB,IAAI,CAACoB,KAAK,CAAC,CAC1B","ignoreList":[]}