@effect/platform-node 4.0.0-beta.7 → 4.0.0-beta.71

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 (123) hide show
  1. package/dist/Mime.d.ts +9 -3
  2. package/dist/Mime.d.ts.map +1 -1
  3. package/dist/Mime.js +9 -3
  4. package/dist/Mime.js.map +1 -1
  5. package/dist/NodeChildProcessSpawner.d.ts +1 -1
  6. package/dist/NodeChildProcessSpawner.js +1 -1
  7. package/dist/NodeClusterHttp.d.ts +49 -7
  8. package/dist/NodeClusterHttp.d.ts.map +1 -1
  9. package/dist/NodeClusterHttp.js +20 -10
  10. package/dist/NodeClusterHttp.js.map +1 -1
  11. package/dist/NodeClusterSocket.d.ts +57 -11
  12. package/dist/NodeClusterSocket.d.ts.map +1 -1
  13. package/dist/NodeClusterSocket.js +57 -11
  14. package/dist/NodeClusterSocket.js.map +1 -1
  15. package/dist/NodeCrypto.d.ts +10 -0
  16. package/dist/NodeCrypto.d.ts.map +1 -0
  17. package/dist/NodeCrypto.js +22 -0
  18. package/dist/NodeCrypto.js.map +1 -0
  19. package/dist/NodeFileSystem.d.ts +4 -2
  20. package/dist/NodeFileSystem.d.ts.map +1 -1
  21. package/dist/NodeFileSystem.js +30 -3
  22. package/dist/NodeFileSystem.js.map +1 -1
  23. package/dist/NodeHttpClient.d.ts +111 -24
  24. package/dist/NodeHttpClient.d.ts.map +1 -1
  25. package/dist/NodeHttpClient.js +133 -28
  26. package/dist/NodeHttpClient.js.map +1 -1
  27. package/dist/NodeHttpIncomingMessage.d.ts +43 -9
  28. package/dist/NodeHttpIncomingMessage.d.ts.map +1 -1
  29. package/dist/NodeHttpIncomingMessage.js +47 -8
  30. package/dist/NodeHttpIncomingMessage.js.map +1 -1
  31. package/dist/NodeHttpPlatform.d.ts +10 -4
  32. package/dist/NodeHttpPlatform.d.ts.map +1 -1
  33. package/dist/NodeHttpPlatform.js +34 -7
  34. package/dist/NodeHttpPlatform.js.map +1 -1
  35. package/dist/NodeHttpServer.d.ts +56 -16
  36. package/dist/NodeHttpServer.d.ts.map +1 -1
  37. package/dist/NodeHttpServer.js +117 -49
  38. package/dist/NodeHttpServer.js.map +1 -1
  39. package/dist/NodeHttpServerRequest.d.ts +29 -3
  40. package/dist/NodeHttpServerRequest.d.ts.map +1 -1
  41. package/dist/NodeHttpServerRequest.js +9 -2
  42. package/dist/NodeHttpServerRequest.js.map +1 -1
  43. package/dist/NodeMultipart.d.ts +47 -4
  44. package/dist/NodeMultipart.d.ts.map +1 -1
  45. package/dist/NodeMultipart.js +47 -4
  46. package/dist/NodeMultipart.js.map +1 -1
  47. package/dist/NodePath.d.ts +15 -6
  48. package/dist/NodePath.d.ts.map +1 -1
  49. package/dist/NodePath.js +43 -7
  50. package/dist/NodePath.js.map +1 -1
  51. package/dist/NodeRedis.d.ts +56 -9
  52. package/dist/NodeRedis.d.ts.map +1 -1
  53. package/dist/NodeRedis.js +59 -12
  54. package/dist/NodeRedis.js.map +1 -1
  55. package/dist/NodeRuntime.d.ts +27 -36
  56. package/dist/NodeRuntime.d.ts.map +1 -1
  57. package/dist/NodeRuntime.js +38 -13
  58. package/dist/NodeRuntime.js.map +1 -1
  59. package/dist/NodeServices.d.ts +44 -5
  60. package/dist/NodeServices.d.ts.map +1 -1
  61. package/dist/NodeServices.js +7 -3
  62. package/dist/NodeServices.js.map +1 -1
  63. package/dist/NodeSink.d.ts +2 -2
  64. package/dist/NodeSink.js +2 -2
  65. package/dist/NodeSocket.d.ts +18 -3
  66. package/dist/NodeSocket.d.ts.map +1 -1
  67. package/dist/NodeSocket.js +51 -4
  68. package/dist/NodeSocket.js.map +1 -1
  69. package/dist/NodeSocketServer.d.ts +2 -2
  70. package/dist/NodeSocketServer.js +2 -2
  71. package/dist/NodeStdio.d.ts +5 -2
  72. package/dist/NodeStdio.d.ts.map +1 -1
  73. package/dist/NodeStdio.js +30 -3
  74. package/dist/NodeStdio.js.map +1 -1
  75. package/dist/NodeStream.d.ts +2 -2
  76. package/dist/NodeStream.js +2 -2
  77. package/dist/NodeTerminal.d.ts +8 -2
  78. package/dist/NodeTerminal.d.ts.map +1 -1
  79. package/dist/NodeTerminal.js +29 -3
  80. package/dist/NodeTerminal.js.map +1 -1
  81. package/dist/NodeWorker.d.ts +9 -2
  82. package/dist/NodeWorker.d.ts.map +1 -1
  83. package/dist/NodeWorker.js +45 -6
  84. package/dist/NodeWorker.js.map +1 -1
  85. package/dist/NodeWorkerRunner.d.ts +5 -1
  86. package/dist/NodeWorkerRunner.d.ts.map +1 -1
  87. package/dist/NodeWorkerRunner.js +47 -5
  88. package/dist/NodeWorkerRunner.js.map +1 -1
  89. package/dist/Undici.d.ts +16 -3
  90. package/dist/Undici.d.ts.map +1 -1
  91. package/dist/Undici.js +16 -3
  92. package/dist/Undici.js.map +1 -1
  93. package/dist/index.d.ts +28 -26
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +28 -26
  96. package/dist/index.js.map +1 -1
  97. package/package.json +9 -9
  98. package/src/Mime.ts +10 -3
  99. package/src/NodeChildProcessSpawner.ts +1 -1
  100. package/src/NodeClusterHttp.ts +54 -11
  101. package/src/NodeClusterSocket.ts +57 -11
  102. package/src/NodeCrypto.ts +24 -0
  103. package/src/NodeFileSystem.ts +30 -3
  104. package/src/NodeHttpClient.ts +141 -33
  105. package/src/NodeHttpIncomingMessage.ts +55 -12
  106. package/src/NodeHttpPlatform.ts +35 -6
  107. package/src/NodeHttpServer.ts +139 -53
  108. package/src/NodeHttpServerRequest.ts +29 -3
  109. package/src/NodeMultipart.ts +47 -4
  110. package/src/NodePath.ts +43 -7
  111. package/src/NodeRedis.ts +61 -14
  112. package/src/NodeRuntime.ts +56 -37
  113. package/src/NodeServices.ts +46 -5
  114. package/src/NodeSink.ts +2 -2
  115. package/src/NodeSocket.ts +56 -4
  116. package/src/NodeSocketServer.ts +2 -2
  117. package/src/NodeStdio.ts +30 -3
  118. package/src/NodeStream.ts +2 -2
  119. package/src/NodeTerminal.ts +29 -3
  120. package/src/NodeWorker.ts +45 -6
  121. package/src/NodeWorkerRunner.ts +47 -5
  122. package/src/Undici.ts +16 -3
  123. package/src/index.ts +29 -26
package/dist/Mime.d.ts CHANGED
@@ -1,15 +1,21 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Re-exports the `mime` package through the `@effect/platform-node/Mime`
3
+ * module and the `Mime` namespace in the package barrel.
4
+ *
5
+ * @since 4.0.0
6
+ */
7
+ /**
8
+ * @since 4.0.0
3
9
  */
4
10
  import Mime from "mime";
5
11
  /**
6
- * @since 1.0.0
7
12
  * @category re-exports
13
+ * @since 4.0.0
8
14
  */
9
15
  export * from "mime";
10
16
  /**
11
- * @since 1.0.0
12
17
  * @category re-exports
18
+ * @since 4.0.0
13
19
  */
14
20
  export default Mime;
15
21
  //# sourceMappingURL=Mime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Mime.d.ts","sourceRoot":"","sources":["../src/Mime.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB;;;GAGG;AACH,cAAc,MAAM,CAAA;AAEpB;;;GAGG;AACH,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Mime.d.ts","sourceRoot":"","sources":["../src/Mime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB;;;GAGG;AACH,cAAc,MAAM,CAAA;AAEpB;;;GAGG;AACH,eAAe,IAAI,CAAA"}
package/dist/Mime.js CHANGED
@@ -1,16 +1,22 @@
1
+ /**
2
+ * Re-exports the `mime` package through the `@effect/platform-node/Mime`
3
+ * module and the `Mime` namespace in the package barrel.
4
+ *
5
+ * @since 4.0.0
6
+ */
1
7
  /* oxlint-disable no-named-as-default */
2
8
  /**
3
- * @since 1.0.0
9
+ * @since 4.0.0
4
10
  */
5
11
  import Mime from "mime";
6
12
  /**
7
- * @since 1.0.0
8
13
  * @category re-exports
14
+ * @since 4.0.0
9
15
  */
10
16
  export * from "mime";
11
17
  /**
12
- * @since 1.0.0
13
18
  * @category re-exports
19
+ * @since 4.0.0
14
20
  */
15
21
  export default Mime;
16
22
  //# sourceMappingURL=Mime.js.map
package/dist/Mime.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Mime.js","names":["Mime"],"sources":["../src/Mime.ts"],"sourcesContent":[null],"mappings":"AAAA;AAEA;;;AAGA,OAAOA,IAAI,MAAM,MAAM;AAEvB;;;;AAIA,cAAc,MAAM;AAEpB;;;;AAIA,eAAeA,IAAI","ignoreList":[]}
1
+ {"version":3,"file":"Mime.js","names":["Mime"],"sources":["../src/Mime.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;AAOA;AAEA;;;AAGA,OAAOA,IAAI,MAAM,MAAM;AAEvB;;;;AAIA,cAAc,MAAM;AAEpB;;;;AAIA,eAAeA,IAAI","ignoreList":[]}
@@ -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=NodeChildProcessSpawner.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=NodeChildProcessSpawner.js.map
@@ -1,5 +1,38 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * The `NodeClusterHttp` module provides the Node.js HTTP and WebSocket
3
+ * transports for Effect Cluster runners. It wires `HttpRunner` to the Node HTTP
4
+ * server, supplies Undici and 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 Node 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";
@@ -16,13 +49,19 @@ import type { SqlClient } from "effect/unstable/sql/SqlClient";
16
49
  import type { NodeServices } from "./NodeServices.ts";
17
50
  export {
18
51
  /**
19
- * @since 1.0.0
20
- * @category Re-exports
52
+ * Provides the Kubernetes HTTP client layer used by Kubernetes runner health checks.
53
+ *
54
+ * @category re-exports
55
+ * @since 4.0.0
21
56
  */
22
57
  layerK8sHttpClient } from "./NodeClusterSocket.ts";
23
58
  /**
24
- * @since 1.0.0
25
- * @category Layers
59
+ * Builds the Node cluster HTTP/WebSocket sharding layer, configuring runner
60
+ * transport, RPC serialization, message storage, runner health checks, and
61
+ * optional client-only mode.
62
+ *
63
+ * @category layers
64
+ * @since 4.0.0
26
65
  */
27
66
  export declare const layer: <const ClientOnly extends boolean = false, const Storage extends "local" | "sql" | "byo" = never>(options: {
28
67
  readonly transport: "http" | "websocket";
@@ -37,8 +76,11 @@ export declare const layer: <const ClientOnly extends boolean = false, const Sto
37
76
  readonly shardingConfig?: Partial<ShardingConfig.ShardingConfig["Service"]> | undefined;
38
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), ServeError | Config.ConfigError, "local" extends Storage ? never : "byo" extends Storage ? (MessageStorage.MessageStorage | RunnerStorage.RunnerStorage) : SqlClient>;
39
78
  /**
40
- * @since 1.0.0
41
- * @category Layers
79
+ * Provides the HTTP server and Node HTTP services used by cluster runners,
80
+ * listening on `ShardingConfig.runnerListenAddress` or `runnerAddress`.
81
+ *
82
+ * @category layers
83
+ * @since 4.0.0
42
84
  */
43
85
  export declare const layerHttpServer: Layer.Layer<HttpPlatform | Etag.Generator | NodeServices | HttpServer, ServeError, ShardingConfig.ShardingConfig>;
44
86
  //# sourceMappingURL=NodeClusterHttp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterHttp.d.ts","sourceRoot":"","sources":["../src/NodeClusterHttp.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,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;AACtD,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;AAK9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,OAAO;AACL;;;GAGG;AACH,kBAAkB,EACnB,MAAM,wBAAwB,CAAA;AAE/B;;;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,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,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;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,KAAK,CACrC,YAAY,GACZ,IAAI,CAAC,SAAS,GACd,YAAY,GACZ,UAAU,EACZ,UAAU,EACV,cAAc,CAAC,cAAc,CAQV,CAAA"}
1
+ {"version":3,"file":"NodeClusterHttp.d.ts","sourceRoot":"","sources":["../src/NodeClusterHttp.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Layer from "effect/Layer";
3
+ import * as Option from "effect/Option";
3
4
  import * as HttpRunner from "effect/unstable/cluster/HttpRunner";
4
5
  import * as MessageStorage from "effect/unstable/cluster/MessageStorage";
5
6
  import * as RunnerHealth from "effect/unstable/cluster/RunnerHealth";
@@ -16,13 +17,19 @@ import * as NodeHttpServer from "./NodeHttpServer.js";
16
17
  import * as NodeSocket from "./NodeSocket.js";
17
18
  export {
18
19
  /**
19
- * @since 1.0.0
20
- * @category Re-exports
20
+ * Provides the Kubernetes HTTP client layer used by Kubernetes runner health checks.
21
+ *
22
+ * @category re-exports
23
+ * @since 4.0.0
21
24
  */
22
25
  layerK8sHttpClient } from "./NodeClusterSocket.js";
23
26
  /**
24
- * @since 1.0.0
25
- * @category Layers
27
+ * Builds the Node cluster HTTP/WebSocket sharding layer, configuring runner
28
+ * transport, RPC serialization, message storage, runner health checks, and
29
+ * optional client-only mode.
30
+ *
31
+ * @category layers
32
+ * @since 4.0.0
26
33
  */
27
34
  export const layer = options => {
28
35
  const layer = options.clientOnly
@@ -34,15 +41,18 @@ export const layer = options => {
34
41
  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));
35
42
  };
36
43
  /**
37
- * @since 1.0.0
38
- * @category Layers
44
+ * Provides the HTTP server and Node HTTP services used by cluster runners,
45
+ * listening on `ShardingConfig.runnerListenAddress` or `runnerAddress`.
46
+ *
47
+ * @category layers
48
+ * @since 4.0.0
39
49
  */
40
50
  export const layerHttpServer = /*#__PURE__*/Effect.gen(function* () {
41
51
  const config = yield* ShardingConfig.ShardingConfig;
42
- const listenAddress = config.runnerListenAddress ?? config.runnerAddress;
43
- if (listenAddress === undefined) {
44
- return yield* Effect.die("NodeClusterHttp.layerHttpServer: ShardingConfig.runnerAddress is undefined");
52
+ const listenAddress = Option.orElse(config.runnerListenAddress, () => config.runnerAddress);
53
+ if (Option.isNone(listenAddress)) {
54
+ return yield* Effect.die("NodeClusterHttp.layerHttpServer: ShardingConfig.runnerAddress is None");
45
55
  }
46
- return NodeHttpServer.layer(createServer, listenAddress);
56
+ return NodeHttpServer.layer(createServer, listenAddress.value);
47
57
  }).pipe(Layer.unwrap);
48
58
  //# sourceMappingURL=NodeClusterHttp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterHttp.js","names":["Effect","Layer","HttpRunner","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SqlMessageStorage","SqlRunnerStorage","RpcSerialization","createServer","layerK8sHttpClient","NodeHttpClient","NodeHttpServer","NodeSocket","layer","options","clientOnly","transport","provide","layerHttpClientOnly","layerUndici","layerWebsocketClientOnly","layerWebSocketConstructor","layerHttp","layerHttpServer","layerWebsocket","runnerHealth","empty","layerK8s","runnerHealthK8s","pipe","layerPing","layerRpc","layerClientProtocolHttpDefault","layerClientProtocolWebsocketDefault","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack","gen","config","listenAddress","runnerListenAddress","runnerAddress","undefined","die","unwrap"],"sources":["../src/NodeClusterHttp.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,UAAU,MAAM,oCAAoC;AAChE,OAAO,KAAKC,cAAc,MAAM,wCAAwC;AACxE,OAAO,KAAKC,YAAY,MAAM,sCAAsC;AACpE,OAAO,KAAKC,OAAO,MAAM,iCAAiC;AAC1D,OAAO,KAAKC,aAAa,MAAM,uCAAuC;AAEtE,OAAO,KAAKC,cAAc,MAAM,wCAAwC;AACxE,OAAO,KAAKC,iBAAiB,MAAM,2CAA2C;AAC9E,OAAO,KAAKC,gBAAgB,MAAM,0CAA0C;AAK5E,OAAO,KAAKC,gBAAgB,MAAM,sCAAsC;AAExE,SAASC,YAAY,QAAQ,WAAW;AACxC,SAASC,kBAAkB,QAAQ,wBAAwB;AAC3D,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AACrD,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;AACE;;;;AAIAH,kBAAkB,QACb,wBAAwB;AAE/B;;;;AAIA,OAAO,MAAMI,KAAK,GAGhBC,OAWD,IAaK;EAEJ,MAAMD,KAAK,GAA+BC,OAAO,CAACC;EAChD;EAAA,EACED,OAAO,CAACE,SAAS,KAAK,MAAM,GAC1BlB,KAAK,CAACmB,OAAO,CAAClB,UAAU,CAACmB,mBAAmB,EAAER,cAAc,CAACS,WAAW,CAAC,GACzErB,KAAK,CAACmB,OAAO,CAAClB,UAAU,CAACqB,wBAAwB,EAAER,UAAU,CAACS,yBAAyB;EAC3F;EAAA,EACEP,OAAO,CAACE,SAAS,KAAK,MAAM,GAC5BlB,KAAK,CAACmB,OAAO,CAAClB,UAAU,CAACuB,SAAS,EAAE,CAACC,eAAe,EAAEb,cAAc,CAACS,WAAW,CAAC,CAAC,GAClFrB,KAAK,CAACmB,OAAO,CAAClB,UAAU,CAACyB,cAAc,EAAE,CAACD,eAAe,EAAEX,UAAU,CAACS,yBAAyB,CAAC,CAAC;EAErG,MAAMI,YAAY,GAA+BX,OAAO,EAAEC,UAAU,GAChEjB,KAAK,CAAC4B,KAAY,GAClBZ,OAAO,EAAEW,YAAY,KAAK,KAAK,GAC/BxB,YAAY,CAAC0B,QAAQ,CAACb,OAAO,CAACc,eAAe,CAAC,CAACC,IAAI,CACnD/B,KAAK,CAACmB,OAAO,CAACR,kBAAkB,CAAC,CAClC,GACCR,YAAY,CAAC6B,SAAS,CAACD,IAAI,CAC3B/B,KAAK,CAACmB,OAAO,CAACf,OAAO,CAAC6B,QAAQ,CAAC,EAC/BjC,KAAK,CAACmB,OAAO,CACXH,OAAO,CAACE,SAAS,KAAK,MAAM,GACxBjB,UAAU,CAACiC,8BAA8B,CAACH,IAAI,CAAC/B,KAAK,CAACmB,OAAO,CAACP,cAAc,CAACS,WAAW,CAAC,CAAC,GACzFpB,UAAU,CAACkC,mCAAmC,CAACJ,IAAI,CAAC/B,KAAK,CAACmB,OAAO,CAACL,UAAU,CAACS,yBAAyB,CAAC,CAAC,CAC7G,CACF;EAEH,OAAOR,KAAK,CAACgB,IAAI,CACf/B,KAAK,CAACmB,OAAO,CAACQ,YAAY,CAAC,EAC3B3B,KAAK,CAACoC,YAAY,CAChBpB,OAAO,EAAEqB,OAAO,KAAK,OAAO,GACxBnC,cAAc,CAACoC,SAAS,GACxBtB,OAAO,EAAEqB,OAAO,KAAK,KAAK,GAC1BrC,KAAK,CAAC4B,KAAK,GACX5B,KAAK,CAACuC,KAAK,CAAChC,iBAAiB,CAACQ,KAAK,CAAC,CACzC,EACDf,KAAK,CAACmB,OAAO,CACXH,OAAO,EAAEqB,OAAO,KAAK,OAAO,GACxBhC,aAAa,CAACmC,WAAW,GACzBxB,OAAO,EAAEqB,OAAO,KAAK,KAAK,GAC1BrC,KAAK,CAAC4B,KAAK,GACX5B,KAAK,CAACuC,KAAK,CAAC/B,gBAAgB,CAACO,KAAK,CAAC,CACxC,EACDf,KAAK,CAACmB,OAAO,CAACb,cAAc,CAACmC,YAAY,CAACzB,OAAO,EAAE0B,cAAc,CAAC,CAAC,EACnE1C,KAAK,CAACmB,OAAO,CACXH,OAAO,EAAE2B,aAAa,KAAK,QAAQ,GAAGlC,gBAAgB,CAACmC,WAAW,GAAGnC,gBAAgB,CAACoC,YAAY,CACnG,CACK;AACV,CAAC;AAED;;;;AAIA,OAAO,MAAMpB,eAAe,gBAOxB1B,MAAM,CAAC+C,GAAG,CAAC,aAAS;EACtB,MAAMC,MAAM,GAAG,OAAOzC,cAAc,CAACA,cAAc;EACnD,MAAM0C,aAAa,GAAGD,MAAM,CAACE,mBAAmB,IAAIF,MAAM,CAACG,aAAa;EACxE,IAAIF,aAAa,KAAKG,SAAS,EAAE;IAC/B,OAAO,OAAOpD,MAAM,CAACqD,GAAG,CAAC,4EAA4E,CAAC;EACxG;EACA,OAAOvC,cAAc,CAACE,KAAK,CAACL,YAAY,EAAEsC,aAAa,CAAC;AAC1D,CAAC,CAAC,CAACjB,IAAI,CAAC/B,KAAK,CAACqD,MAAM,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"NodeClusterHttp.js","names":["Effect","Layer","Option","HttpRunner","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SqlMessageStorage","SqlRunnerStorage","RpcSerialization","createServer","layerK8sHttpClient","NodeHttpClient","NodeHttpServer","NodeSocket","layer","options","clientOnly","transport","provide","layerHttpClientOnly","layerUndici","layerWebsocketClientOnly","layerWebSocketConstructor","layerHttp","layerHttpServer","layerWebsocket","runnerHealth","empty","layerK8s","runnerHealthK8s","pipe","layerPing","layerRpc","layerClientProtocolHttpDefault","layerClientProtocolWebsocketDefault","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack","gen","config","listenAddress","orElse","runnerListenAddress","runnerAddress","isNone","die","value","unwrap"],"sources":["../src/NodeClusterHttp.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,34 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * The `NodeClusterSocket` module provides the Node.js socket transport for
3
+ * Effect Cluster runners. It wires `SocketRunner` to Node TCP sockets, supplies
4
+ * RPC client and server protocol layers, and builds a complete sharding layer
5
+ * with serialization, runner health, runner storage, and message storage.
6
+ *
7
+ * **Common tasks**
8
+ *
9
+ * - Run a Node process as a cluster runner over raw TCP sockets with
10
+ * {@link layer}
11
+ * - Connect a client-only process to an existing socket cluster without
12
+ * starting a runner server
13
+ * - Use SQL-backed storage for durable multi-process clusters, `local` storage
14
+ * for short-lived development, or `byo` storage when the deployment owns the
15
+ * persistence boundary
16
+ * - Check runner health with socket pings or Kubernetes pod readiness through
17
+ * {@link layerK8sHttpClient}
18
+ *
19
+ * **Gotchas**
20
+ *
21
+ * - `runnerAddress` is the host and port advertised to other runners; set
22
+ * `runnerListenAddress` when the local bind address differs from the
23
+ * externally reachable address
24
+ * - The socket transport is point-to-point RPC, not cluster gossip: runner
25
+ * membership, shard ownership, and persisted delivery are coordinated through
26
+ * `RunnerStorage`, `MessageStorage`, and `RunnerHealth`
27
+ * - `clientOnly` does not start a socket server or receive shard assignments
28
+ * - Ping health checks use the same socket protocol, so unreachable ports,
29
+ * firewalls, or serialization mismatches can make a runner appear unhealthy
30
+ *
31
+ * @since 4.0.0
3
32
  */
4
33
  import { layerClientProtocol, layerSocketServer } from "@effect/platform-node-shared/NodeClusterSocket";
5
34
  import type { ConfigError } from "effect/Config";
@@ -15,18 +44,28 @@ import type { SqlClient } from "effect/unstable/sql/SqlClient";
15
44
  import * as NodeHttpClient from "./NodeHttpClient.ts";
16
45
  export {
17
46
  /**
18
- * @since 1.0.0
19
- * @category Re-exports
47
+ * Provides the cluster `RpcClientProtocol` using the shared socket client
48
+ * implementation.
49
+ *
50
+ * @category re-exports
51
+ * @since 4.0.0
20
52
  */
21
53
  layerClientProtocol,
22
54
  /**
23
- * @since 1.0.0
24
- * @category Re-exports
55
+ * Provides the socket server used by Node cluster runners through the shared
56
+ * socket server implementation.
57
+ *
58
+ * @category re-exports
59
+ * @since 4.0.0
25
60
  */
26
61
  layerSocketServer };
27
62
  /**
28
- * @since 1.0.0
29
- * @category Layers
63
+ * Builds the Node cluster socket sharding layer, configuring RPC
64
+ * serialization, message storage, runner health checks, and optional
65
+ * client-only mode.
66
+ *
67
+ * @category layers
68
+ * @since 4.0.0
30
69
  */
31
70
  export declare const layer: <const ClientOnly extends boolean = false, const Storage extends "local" | "sql" | "byo" = never>(options?: {
32
71
  readonly serialization?: "msgpack" | "ndjson" | undefined;
@@ -40,13 +79,20 @@ export declare const layer: <const ClientOnly extends boolean = false, const Sto
40
79
  readonly shardingConfig?: Partial<ShardingConfig.ShardingConfig["Service"]> | undefined;
41
80
  }) => ClientOnly extends true ? Layer.Layer<Sharding | Runners.Runners | ("byo" extends Storage ? never : MessageStorage.MessageStorage), 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 | ConfigError, "local" extends Storage ? never : "byo" extends Storage ? (MessageStorage.MessageStorage | RunnerStorage.RunnerStorage) : SqlClient>;
42
81
  /**
43
- * @since 1.0.0
44
- * @category Layers
82
+ * Provides an Undici dispatcher for Kubernetes API calls, using the service
83
+ * account CA certificate when it is available and falling back to the default
84
+ * dispatcher otherwise.
85
+ *
86
+ * @category layers
87
+ * @since 4.0.0
45
88
  */
46
89
  export declare const layerDispatcherK8s: Layer.Layer<NodeHttpClient.Dispatcher>;
47
90
  /**
48
- * @since 1.0.0
49
- * @category Layers
91
+ * Provides a `K8sHttpClient` backed by the Undici HTTP client and the
92
+ * Kubernetes-aware dispatcher.
93
+ *
94
+ * @category layers
95
+ * @since 4.0.0
50
96
  */
51
97
  export declare const layerK8sHttpClient: Layer.Layer<K8sHttpClient.K8sHttpClient>;
52
98
  //# sourceMappingURL=NodeClusterSocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterSocket.d.ts","sourceRoot":"","sources":["../src/NodeClusterSocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAA;AACvG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,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;AAKxE,OAAO,KAAK,KAAK,YAAY,MAAM,qCAAqC,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAGrD,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,WAAW,EACX,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,WAAW,EAC5C,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,cAAc,CAAC,UAAU,CAuBrE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAIvE,CAAA"}
1
+ {"version":3,"file":"NodeClusterSocket.d.ts","sourceRoot":"","sources":["../src/NodeClusterSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAA;AACvG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,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;AAKxE,OAAO,KAAK,KAAK,YAAY,MAAM,qCAAqC,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAGrD,OAAO;AACL;;;;;;GAMG;AACH,mBAAmB;AACnB;;;;;;GAMG;AACH,iBAAiB,EAClB,CAAA;AAED;;;;;;;GAOG;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,WAAW,EACX,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,WAAW,EAC5C,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CAyChB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAuBrE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAIvE,CAAA"}
@@ -1,5 +1,34 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * The `NodeClusterSocket` module provides the Node.js socket transport for
3
+ * Effect Cluster runners. It wires `SocketRunner` to Node TCP sockets, supplies
4
+ * RPC client and server protocol layers, and builds a complete sharding layer
5
+ * with serialization, runner health, runner storage, and message storage.
6
+ *
7
+ * **Common tasks**
8
+ *
9
+ * - Run a Node process as a cluster runner over raw TCP sockets with
10
+ * {@link layer}
11
+ * - Connect a client-only process to an existing socket cluster without
12
+ * starting a runner server
13
+ * - Use SQL-backed storage for durable multi-process clusters, `local` storage
14
+ * for short-lived development, or `byo` storage when the deployment owns the
15
+ * persistence boundary
16
+ * - Check runner health with socket pings or Kubernetes pod readiness through
17
+ * {@link layerK8sHttpClient}
18
+ *
19
+ * **Gotchas**
20
+ *
21
+ * - `runnerAddress` is the host and port advertised to other runners; set
22
+ * `runnerListenAddress` when the local bind address differs from the
23
+ * externally reachable address
24
+ * - The socket transport is point-to-point RPC, not cluster gossip: runner
25
+ * membership, shard ownership, and persisted delivery are coordinated through
26
+ * `RunnerStorage`, `MessageStorage`, and `RunnerHealth`
27
+ * - `clientOnly` does not start a socket server or receive shard assignments
28
+ * - Ping health checks use the same socket protocol, so unreachable ports,
29
+ * firewalls, or serialization mismatches can make a runner appear unhealthy
30
+ *
31
+ * @since 4.0.0
3
32
  */
4
33
  import { layerClientProtocol, layerSocketServer } from "@effect/platform-node-shared/NodeClusterSocket";
5
34
  import * as Effect from "effect/Effect";
@@ -20,18 +49,28 @@ import * as NodeHttpClient from "./NodeHttpClient.js";
20
49
  import * as Undici from "./Undici.js";
21
50
  export {
22
51
  /**
23
- * @since 1.0.0
24
- * @category Re-exports
52
+ * Provides the cluster `RpcClientProtocol` using the shared socket client
53
+ * implementation.
54
+ *
55
+ * @category re-exports
56
+ * @since 4.0.0
25
57
  */
26
58
  layerClientProtocol,
27
59
  /**
28
- * @since 1.0.0
29
- * @category Re-exports
60
+ * Provides the socket server used by Node cluster runners through the shared
61
+ * socket server implementation.
62
+ *
63
+ * @category re-exports
64
+ * @since 4.0.0
30
65
  */
31
66
  layerSocketServer };
32
67
  /**
33
- * @since 1.0.0
34
- * @category Layers
68
+ * Builds the Node cluster socket sharding layer, configuring RPC
69
+ * serialization, message storage, runner health checks, and optional
70
+ * client-only mode.
71
+ *
72
+ * @category layers
73
+ * @since 4.0.0
35
74
  */
36
75
  export const layer = options => {
37
76
  const layer = options?.clientOnly
@@ -43,8 +82,12 @@ export const layer = options => {
43
82
  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));
44
83
  };
45
84
  /**
46
- * @since 1.0.0
47
- * @category Layers
85
+ * Provides an Undici dispatcher for Kubernetes API calls, using the service
86
+ * account CA certificate when it is available and falling back to the default
87
+ * dispatcher otherwise.
88
+ *
89
+ * @category layers
90
+ * @since 4.0.0
48
91
  */
49
92
  export const layerDispatcherK8s = /*#__PURE__*/Layer.effect(NodeHttpClient.Dispatcher)(Effect.gen(function* () {
50
93
  const fs = yield* FileSystem.FileSystem;
@@ -59,8 +102,11 @@ export const layerDispatcherK8s = /*#__PURE__*/Layer.effect(NodeHttpClient.Dispa
59
102
  return yield* NodeHttpClient.makeDispatcher;
60
103
  })).pipe(/*#__PURE__*/Layer.provide(NodeFileSystem.layer));
61
104
  /**
62
- * @since 1.0.0
63
- * @category Layers
105
+ * Provides a `K8sHttpClient` backed by the Undici HTTP client and the
106
+ * Kubernetes-aware dispatcher.
107
+ *
108
+ * @category layers
109
+ * @since 4.0.0
64
110
  */
65
111
  export const layerK8sHttpClient = /*#__PURE__*/K8sHttpClient.layer.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.fresh(NodeHttpClient.layerUndiciNoDispatcher)), /*#__PURE__*/Layer.provide(layerDispatcherK8s), /*#__PURE__*/Layer.provide(NodeFileSystem.layer));
66
112
  //# sourceMappingURL=NodeClusterSocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterSocket.js","names":["layerClientProtocol","layerSocketServer","Effect","FileSystem","Layer","K8sHttpClient","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SocketRunner","SqlMessageStorage","SqlRunnerStorage","RpcSerialization","NodeFileSystem","NodeHttpClient","Undici","layer","options","clientOnly","provide","layerClientOnly","runnerHealth","empty","layerK8s","runnerHealthK8s","pipe","layerK8sHttpClient","layerPing","layerRpc","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack","layerDispatcherK8s","effect","Dispatcher","gen","fs","caCertOption","readFileString","option","_tag","acquireRelease","sync","Agent","connect","ca","value","agent","promise","destroy","makeDispatcher","fresh","layerUndiciNoDispatcher"],"sources":["../src/NodeClusterSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NodeClusterSocket.js","names":["layerClientProtocol","layerSocketServer","Effect","FileSystem","Layer","K8sHttpClient","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SocketRunner","SqlMessageStorage","SqlRunnerStorage","RpcSerialization","NodeFileSystem","NodeHttpClient","Undici","layer","options","clientOnly","provide","layerClientOnly","runnerHealth","empty","layerK8s","runnerHealthK8s","pipe","layerK8sHttpClient","layerPing","layerRpc","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack","layerDispatcherK8s","effect","Dispatcher","gen","fs","caCertOption","readFileString","option","_tag","acquireRelease","sync","Agent","connect","ca","value","agent","promise","destroy","makeDispatcher","fresh","layerUndiciNoDispatcher"],"sources":["../src/NodeClusterSocket.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 Node.js Crypto service implementation.
5
+ *
6
+ * @category layers
7
+ * @since 1.0.0
8
+ */
9
+ export declare const layer: Layer.Layer<Crypto.Crypto>;
10
+ //# sourceMappingURL=NodeCrypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeCrypto.d.ts","sourceRoot":"","sources":["../src/NodeCrypto.ts"],"names":[],"mappings":"AAcA,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,22 @@
1
+ /**
2
+ * The `NodeCrypto` module provides the Node.js `Crypto` service layer for
3
+ * Effect programs. Provide {@link layer} at the edge of a Node application,
4
+ * CLI, script, or test to satisfy `effect/Crypto` with Node's `node:crypto`
5
+ * implementation for secure random bytes, UUID generation, random values, and
6
+ * SHA digest operations.
7
+ *
8
+ * This module is the public Node adapter around the shared Node-compatible
9
+ * implementation. Digest failures are reported as platform errors, and SHA-1
10
+ * remains available only for interoperability with existing protocols.
11
+ *
12
+ * @since 1.0.0
13
+ */
14
+ import * as NodeCrypto from "@effect/platform-node-shared/NodeCrypto";
15
+ /**
16
+ * A layer that provides the Node.js Crypto service implementation.
17
+ *
18
+ * @category layers
19
+ * @since 1.0.0
20
+ */
21
+ export const layer = NodeCrypto.layer;
22
+ //# sourceMappingURL=NodeCrypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeCrypto.js","names":["NodeCrypto","layer"],"sources":["../src/NodeCrypto.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;AAaA,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
+ * Provides the `FileSystem` service backed by Node filesystem APIs.
5
+ *
6
+ * @category layers
7
+ * @since 4.0.0
6
8
  */
7
9
  export declare const layer: Layer.Layer<FileSystem>;
8
10
  //# sourceMappingURL=NodeFileSystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeFileSystem.d.ts","sourceRoot":"","sources":["../src/NodeFileSystem.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,CAAwB,CAAA"}
1
+ {"version":3,"file":"NodeFileSystem.d.ts","sourceRoot":"","sources":["../src/NodeFileSystem.ts"],"names":[],"mappings":"AA6BA,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,CAAwB,CAAA"}
@@ -1,10 +1,37 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Node.js `FileSystem` layer for programs that perform real filesystem I/O.
3
+ *
4
+ * The exported layer satisfies the platform-independent `FileSystem` service
5
+ * with Node-backed operations for files, directories, metadata, permissions,
6
+ * links, temporary paths, and path watching. Effects still call the service from
7
+ * `effect/FileSystem`; this module only chooses the Node implementation.
8
+ *
9
+ * **Mental model**
10
+ *
11
+ * Provide `NodeFileSystem.layer` at the process boundary when filesystem
12
+ * effects should touch the host filesystem. Use `NodeServices.layer` instead
13
+ * when the same program also needs the standard Node path, stdio, terminal,
14
+ * crypto, and child process services. Tests that need isolation can provide a
15
+ * different `FileSystem` layer without changing the code that performs the
16
+ * reads and writes.
17
+ *
18
+ * **Gotchas**
19
+ *
20
+ * Paths are interpreted by Node, so relative paths resolve against the current
21
+ * working directory and platform-specific path rules apply. Filesystem failures
22
+ * are reported through Effect platform errors rather than thrown exceptions.
23
+ * File watching uses `FileSystem.WatchBackend` when one is available; otherwise
24
+ * it follows `node:fs.watch`, whose recursive support, event batching, and
25
+ * reported path names vary across operating systems.
26
+ *
27
+ * @since 4.0.0
3
28
  */
4
29
  import * as NodeFileSystem from "@effect/platform-node-shared/NodeFileSystem";
5
30
  /**
6
- * @since 1.0.0
7
- * @category layer
31
+ * Provides the `FileSystem` service backed by Node filesystem APIs.
32
+ *
33
+ * @category layers
34
+ * @since 4.0.0
8
35
  */
9
36
  export const layer = NodeFileSystem.layer;
10
37
  //# sourceMappingURL=NodeFileSystem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeFileSystem.js","names":["NodeFileSystem","layer"],"sources":["../src/NodeFileSystem.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,cAAc,MAAM,6CAA6C;AAI7E;;;;AAIA,OAAO,MAAMC,KAAK,GAA4BD,cAAc,CAACC,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"NodeFileSystem.js","names":["NodeFileSystem","layer"],"sources":["../src/NodeFileSystem.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,OAAO,KAAKA,cAAc,MAAM,6CAA6C;AAI7E;;;;;;AAMA,OAAO,MAAMC,KAAK,GAA4BD,cAAc,CAACC,KAAK","ignoreList":[]}