the-moby-effect 1.43.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +42 -0
  3. package/dist/src/agent-helpers.d.ts +59 -0
  4. package/dist/src/agent-helpers.js +84 -0
  5. package/dist/src/agent-helpers.js.map +1 -0
  6. package/dist/src/configs.d.ts +105 -0
  7. package/dist/src/configs.js +29 -0
  8. package/dist/src/configs.js.map +1 -0
  9. package/dist/src/containers.d.ts +611 -0
  10. package/dist/src/containers.js +82 -0
  11. package/dist/src/containers.js.map +1 -0
  12. package/dist/src/custom-helpers.d.ts +23 -0
  13. package/dist/src/custom-helpers.js +41 -0
  14. package/dist/src/custom-helpers.js.map +1 -0
  15. package/dist/src/distribution.d.ts +28 -0
  16. package/dist/src/distribution.js +21 -0
  17. package/dist/src/distribution.js.map +1 -0
  18. package/dist/src/execs.d.ts +69 -0
  19. package/dist/src/execs.js +26 -0
  20. package/dist/src/execs.js.map +1 -0
  21. package/dist/src/images.d.ts +657 -0
  22. package/dist/src/images.js +61 -0
  23. package/dist/src/images.js.map +1 -0
  24. package/dist/src/index.d.ts +38 -0
  25. package/dist/src/index.js +38 -0
  26. package/dist/src/index.js.map +1 -0
  27. package/dist/src/networks.d.ts +151 -0
  28. package/dist/src/networks.js +40 -0
  29. package/dist/src/networks.js.map +1 -0
  30. package/dist/src/nodes.d.ts +99 -0
  31. package/dist/src/nodes.js +27 -0
  32. package/dist/src/nodes.js.map +1 -0
  33. package/dist/src/plugins.d.ts +253 -0
  34. package/dist/src/plugins.js +47 -0
  35. package/dist/src/plugins.js.map +1 -0
  36. package/dist/src/request-helpers.d.ts +6 -0
  37. package/dist/src/request-helpers.js +15 -0
  38. package/dist/src/request-helpers.js.map +1 -0
  39. package/dist/src/schemas.d.ts +7279 -0
  40. package/dist/src/schemas.js +3772 -0
  41. package/dist/src/schemas.js.map +1 -0
  42. package/dist/src/secrets.d.ts +100 -0
  43. package/dist/src/secrets.js +29 -0
  44. package/dist/src/secrets.js.map +1 -0
  45. package/dist/src/services.d.ts +185 -0
  46. package/dist/src/services.js +32 -0
  47. package/dist/src/services.js.map +1 -0
  48. package/dist/src/session.d.ts +29 -0
  49. package/dist/src/session.js +20 -0
  50. package/dist/src/session.js.map +1 -0
  51. package/dist/src/swarm.d.ts +80 -0
  52. package/dist/src/swarm.js +39 -0
  53. package/dist/src/swarm.js.map +1 -0
  54. package/dist/src/system.d.ts +100 -0
  55. package/dist/src/system.js +40 -0
  56. package/dist/src/system.js.map +1 -0
  57. package/dist/src/tasks.d.ts +102 -0
  58. package/dist/src/tasks.js +26 -0
  59. package/dist/src/tasks.js.map +1 -0
  60. package/dist/src/volumes.d.ts +143 -0
  61. package/dist/src/volumes.js +29 -0
  62. package/dist/src/volumes.js.map +1 -0
  63. package/package.json +66 -0
@@ -0,0 +1,61 @@
1
+ import * as NodeHttp from "@effect/platform-node/HttpClient";
2
+ import * as Schema from "@effect/schema/Schema";
3
+ import { Context, Data, Effect, Layer, Stream, pipe } from "effect";
4
+ import { MobyConnectionAgent, MobyHttpClientLive, getAgent, } from "./agent-helpers.js";
5
+ import { addQueryParameter, responseErrorHandler, streamErrorHandler } from "./request-helpers.js";
6
+ import { BuildPruneResponse, ContainerConfig, HistoryResponseItem, IdResponse, ImageDeleteResponseItem, ImageInspect, ImagePruneResponse, ImageSearchResponseItem, ImageSummary, } from "./schemas.js";
7
+ export class ImagesError extends Data.TaggedError("ImagesError") {
8
+ }
9
+ const make = Effect.gen(function* (_) {
10
+ const agent = yield* _(MobyConnectionAgent);
11
+ const defaultClient = yield* _(NodeHttp.client.Client);
12
+ const client = defaultClient.pipe(NodeHttp.client.mapRequest(NodeHttp.request.prependUrl(`${agent.nodeRequestUrl}/images`)), NodeHttp.client.filterStatusOk);
13
+ const voidClient = client.pipe(NodeHttp.client.transform(Effect.asUnit));
14
+ const IdResponseClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(IdResponse)));
15
+ const ImageInspectClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(ImageInspect)));
16
+ const ImageSummariesClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(Schema.array(ImageSummary))));
17
+ const BuildPruneResponseClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(BuildPruneResponse)));
18
+ const HistoryResponseItemsClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(HistoryResponseItem)));
19
+ const ImageDeleteResponseItemsClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(Schema.array(ImageDeleteResponseItem))));
20
+ const ImageSearchResponseItemsClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(ImageSearchResponseItem)));
21
+ const ImagePruneResponseClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(ImagePruneResponse)));
22
+ const streamHandler = (method) => streamErrorHandler((message) => new ImagesError({ method, message }));
23
+ const responseHandler = (method) => responseErrorHandler((message) => new ImagesError({ method, message }));
24
+ const list_ = (options) => pipe(NodeHttp.request.get("/json"), addQueryParameter("all", options?.all), addQueryParameter("filters", options?.filters), addQueryParameter("shared-size", options?.["shared-size"]), addQueryParameter("digests", options?.digests), ImageSummariesClient, Effect.catchAll(responseHandler("list")));
25
+ const build_ = (options) => pipe(NodeHttp.request.post(`${agent.nodeRequestUrl}/build`), NodeHttp.request.setHeader("Content-type", ""), NodeHttp.request.setHeader("X-Registry-Config", ""), addQueryParameter("dockerfile", options.dockerfile), addQueryParameter("t", options.t), addQueryParameter("extrahosts", options.extrahosts), addQueryParameter("remote", options.remote), addQueryParameter("q", options.q), addQueryParameter("nocache", options.nocache), addQueryParameter("cachefrom", options.cachefrom), addQueryParameter("pull", options.pull), addQueryParameter("rm", options.rm), addQueryParameter("forcerm", options.forcerm), addQueryParameter("memory", options.memory), addQueryParameter("memswap", options.memswap), addQueryParameter("cpushares", options.cpushares), addQueryParameter("cpusetcpus", options.cpusetcpus), addQueryParameter("cpuperiod", options.cpuperiod), addQueryParameter("cpuquota", options.cpuquota)).pipe(addQueryParameter("buildargs", options.buildargs), addQueryParameter("shmsize", options.shmsize), addQueryParameter("squash", options.squash), addQueryParameter("labels", options.labels), addQueryParameter("networkmode", options.networkmode), addQueryParameter("platform", options.platform), addQueryParameter("target", options.target), addQueryParameter("outputs", options.outputs), NodeHttp.request.streamBody(options.stream), defaultClient.pipe(NodeHttp.client.filterStatusOk), Effect.map((response) => response.stream), Effect.map(Stream.decodeText("utf8")), Effect.map(Stream.catchAll(streamHandler("build"))), Effect.catchAll(responseHandler("build")));
26
+ const buildPrune_ = (options) => pipe(NodeHttp.request.post("/build/prune"), addQueryParameter("keep-storage", options["keep-storage"]), addQueryParameter("all", options.all), addQueryParameter("filters", options.filters), BuildPruneResponseClient, Effect.catchAll(responseHandler("buildPrune")));
27
+ const create_ = (options) => pipe(NodeHttp.request.post("/create"), NodeHttp.request.setHeader("X-Registry-Auth", options["X-Registry-Auth"] || ""), addQueryParameter("fromImage", options.fromImage), addQueryParameter("fromSrc", options.fromSrc), addQueryParameter("repo", options.repo), addQueryParameter("tag", options.tag), addQueryParameter("message", options.message), addQueryParameter("changes", options.changes), addQueryParameter("platform", options.platform), NodeHttp.request.schemaBody(Schema.string)(options.inputImage ?? ""), Effect.flatMap(client), Effect.map((response) => response.stream), Effect.map(Stream.decodeText("utf8")), Effect.map(Stream.catchAll(streamHandler("create"))), Effect.catchAll(responseHandler("create")));
28
+ const inspect_ = (options) => pipe(NodeHttp.request.get("/{name}/json".replace("{name}", encodeURIComponent(options.name))), ImageInspectClient, Effect.catchAll(responseHandler("inspect")));
29
+ const history_ = (options) => pipe(NodeHttp.request.get("/{name}/history".replace("{name}", encodeURIComponent(options.name))), HistoryResponseItemsClient, Effect.catchAll(responseHandler("history")));
30
+ const push_ = (options) => pipe(NodeHttp.request.post("/{name}/push".replace("{name}", encodeURIComponent(options.name))), NodeHttp.request.setHeader("X-Registry-Auth", options["X-Registry-Auth"]), addQueryParameter("tag", options.tag), client, Effect.map((response) => response.stream), Effect.map(Stream.decodeText("utf8")), Effect.map(Stream.catchAll(streamHandler("push"))), Effect.catchAll(responseHandler("push")));
31
+ const tag_ = (options) => pipe(NodeHttp.request.post("/{name}/tag".replace("{name}", encodeURIComponent(options.name))), addQueryParameter("repo", options.repo), addQueryParameter("tag", options.tag), voidClient, Effect.catchAll(responseHandler("tag")));
32
+ const delete_ = (options) => pipe(NodeHttp.request.del("/{name}".replace("{name}", encodeURIComponent(options.name))), addQueryParameter("force", options.force), addQueryParameter("noprune", options.noprune), ImageDeleteResponseItemsClient, Effect.catchAll(responseHandler("delete")));
33
+ const search_ = (options) => pipe(NodeHttp.request.get("/search"), addQueryParameter("term", options.term), addQueryParameter("limit", options.limit), addQueryParameter("filters", options.filters), ImageSearchResponseItemsClient, Effect.catchAll(responseHandler("search")));
34
+ const prune_ = (options) => pipe(NodeHttp.request.post("/prune"), addQueryParameter("filters", JSON.stringify(options?.filters)), ImagePruneResponseClient, Effect.catchAll(responseHandler("prune")));
35
+ const commit_ = (options) => pipe(NodeHttp.request.post("/commit"), addQueryParameter("container", options.container), addQueryParameter("repo", options.repo), addQueryParameter("tag", options.tag), addQueryParameter("comment", options.comment), addQueryParameter("author", options.author), addQueryParameter("pause", options.pause), addQueryParameter("changes", options.changes), NodeHttp.request.schemaBody(ContainerConfig)(options.containerConfig), Effect.flatMap(IdResponseClient), Effect.catchAll(responseHandler("commit")));
36
+ const get_ = (options) => pipe(NodeHttp.request.get("/{name}/get".replace("{name}", encodeURIComponent(options.name))), client, Effect.map((response) => response.stream), Effect.map(Stream.decodeText("utf8")), Effect.map(Stream.catchAll(streamHandler("get"))), Effect.catchAll(responseHandler("get")));
37
+ const getall_ = (options) => pipe(NodeHttp.request.get("/get"), addQueryParameter("names", options.names), client, Effect.map((response) => response.stream), Effect.map(Stream.decodeText("utf8")), Effect.map(Stream.catchAll(streamHandler("getall"))), Effect.catchAll(responseHandler("getall")));
38
+ const load_ = (options) => pipe(NodeHttp.request.post("/load"), addQueryParameter("quiet", options.quiet), NodeHttp.request.streamBody(options.imagesTarball), voidClient, Effect.catchAll(responseHandler("load")));
39
+ return {
40
+ list: list_,
41
+ build: build_,
42
+ buildPrune: buildPrune_,
43
+ create: create_,
44
+ inspect: inspect_,
45
+ history: history_,
46
+ push: push_,
47
+ tag: tag_,
48
+ delete: delete_,
49
+ search: search_,
50
+ prune: prune_,
51
+ commit: commit_,
52
+ get: get_,
53
+ getall: getall_,
54
+ load: load_,
55
+ };
56
+ });
57
+ export const Images = Context.Tag("the-moby-effect/Images");
58
+ export const layer = Layer.effect(Images, make).pipe(Layer.provide(MobyHttpClientLive));
59
+ export const fromAgent = (agent) => layer.pipe(Layer.provide(Layer.scoped(MobyConnectionAgent, agent)));
60
+ export const fromConnectionOptions = (connectionOptions) => fromAgent(getAgent(connectionOptions));
61
+ //# sourceMappingURL=images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/images.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { Effect, Layer, Scope } from "effect";
2
+ import * as AgentHelpers from "./agent-helpers.js";
3
+ import * as Configs from "./configs.js";
4
+ import * as Containers from "./containers.js";
5
+ import * as Distributions from "./distribution.js";
6
+ import * as Execs from "./execs.js";
7
+ import * as Images from "./images.js";
8
+ import * as Networks from "./networks.js";
9
+ import * as Nodes from "./nodes.js";
10
+ import * as Plugins from "./plugins.js";
11
+ import * as Secrets from "./secrets.js";
12
+ import * as Services from "./services.js";
13
+ import * as Sessions from "./session.js";
14
+ import * as Swarm from "./swarm.js";
15
+ import * as System from "./system.js";
16
+ import * as Tasks from "./tasks.js";
17
+ import * as Volumes from "./volumes.js";
18
+ export type { MobyConnectionOptions } from "./agent-helpers.js";
19
+ export { run } from "./custom-helpers.js";
20
+ export * as Configs from "./configs.js";
21
+ export * as Containers from "./containers.js";
22
+ export * as Distributions from "./distribution.js";
23
+ export * as Execs from "./execs.js";
24
+ export * as Images from "./images.js";
25
+ export * as Networks from "./networks.js";
26
+ export * as Nodes from "./nodes.js";
27
+ export * as Plugins from "./plugins.js";
28
+ export * as Schemas from "./schemas.js";
29
+ export * as Secrets from "./secrets.js";
30
+ export * as Services from "./services.js";
31
+ export * as Sessions from "./session.js";
32
+ export * as Swarm from "./swarm.js";
33
+ export * as System from "./system.js";
34
+ export * as Tasks from "./tasks.js";
35
+ export * as Volumes from "./volumes.js";
36
+ export type MobyApi = Layer.Layer<never, never, Configs.Configs | Containers.Containers | Distributions.Distributions | Execs.Execs | Images.Images | Networks.Networks | Nodes.Nodes | Plugins.Plugins | Secrets.Secrets | Services.Services | Sessions.Sessions | Swarm.Swarms | System.Systems | Tasks.Tasks | Volumes.Volumes>;
37
+ export declare const fromAgent: (agent: Effect.Effect<Scope.Scope, never, AgentHelpers.IMobyConnectionAgent>) => MobyApi;
38
+ export declare const fromConnectionOptions: (connectionOptions: AgentHelpers.MobyConnectionOptions) => MobyApi;
@@ -0,0 +1,38 @@
1
+ import { Layer } from "effect";
2
+ import * as AgentHelpers from "./agent-helpers.js";
3
+ import * as Configs from "./configs.js";
4
+ import * as Containers from "./containers.js";
5
+ import * as Distributions from "./distribution.js";
6
+ import * as Execs from "./execs.js";
7
+ import * as Images from "./images.js";
8
+ import * as Networks from "./networks.js";
9
+ import * as Nodes from "./nodes.js";
10
+ import * as Plugins from "./plugins.js";
11
+ import * as Secrets from "./secrets.js";
12
+ import * as Services from "./services.js";
13
+ import * as Sessions from "./session.js";
14
+ import * as Swarm from "./swarm.js";
15
+ import * as System from "./system.js";
16
+ import * as Tasks from "./tasks.js";
17
+ import * as Volumes from "./volumes.js";
18
+ export { run } from "./custom-helpers.js";
19
+ export * as Configs from "./configs.js";
20
+ export * as Containers from "./containers.js";
21
+ export * as Distributions from "./distribution.js";
22
+ export * as Execs from "./execs.js";
23
+ export * as Images from "./images.js";
24
+ export * as Networks from "./networks.js";
25
+ export * as Nodes from "./nodes.js";
26
+ export * as Plugins from "./plugins.js";
27
+ export * as Schemas from "./schemas.js";
28
+ export * as Secrets from "./secrets.js";
29
+ export * as Services from "./services.js";
30
+ export * as Sessions from "./session.js";
31
+ export * as Swarm from "./swarm.js";
32
+ export * as System from "./system.js";
33
+ export * as Tasks from "./tasks.js";
34
+ export * as Volumes from "./volumes.js";
35
+ const layer = Layer.mergeAll(Configs.layer, Containers.layer, Distributions.layer, Execs.layer, Images.layer, Networks.layer, Nodes.layer, Plugins.layer, Secrets.layer, Services.layer, Sessions.layer, Swarm.layer, System.layer, Tasks.layer, Volumes.layer);
36
+ export const fromAgent = (agent) => layer.pipe(Layer.provide(Layer.scoped(AgentHelpers.MobyConnectionAgent, agent)));
37
+ export const fromConnectionOptions = (connectionOptions) => fromAgent(AgentHelpers.getAgent(connectionOptions));
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAS,MAAM,QAAQ,CAAC;AAE9C,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAGxC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAsBxC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CACxB,OAAO,CAAC,KAAK,EACb,UAAU,CAAC,KAAK,EAChB,aAAa,CAAC,KAAK,EACnB,KAAK,CAAC,KAAK,EACX,MAAM,CAAC,KAAK,EACZ,QAAQ,CAAC,KAAK,EACd,KAAK,CAAC,KAAK,EACX,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,EACb,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,KAAK,EACd,KAAK,CAAC,KAAK,EACX,MAAM,CAAC,KAAK,EACZ,KAAK,CAAC,KAAK,EACX,OAAO,CAAC,KAAK,CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAA2E,EAAW,EAAE,CAC9G,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,iBAAqD,EAAW,EAAE,CACpG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,151 @@
1
+ import { Context, Effect, Layer, Scope } from "effect";
2
+ import { IMobyConnectionAgent, MobyConnectionOptions } from "./agent-helpers.js";
3
+ import { Network, NetworkConnectRequest, NetworkCreateRequest, NetworkCreateResponse, NetworkDisconnectRequest, NetworkPruneResponse } from "./schemas.js";
4
+ declare const NetworksError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/Equal").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect/Equal").Equal ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
5
+ readonly _tag: "NetworksError";
6
+ } & Readonly<A>;
7
+ export declare class NetworksError extends NetworksError_base<{
8
+ method: string;
9
+ message: string;
10
+ }> {
11
+ }
12
+ export interface NetworkListOptions {
13
+ /**
14
+ * JSON encoded value of the filters (a `map[string][]string`) to process on
15
+ * the networks list.
16
+ *
17
+ * Available filters:
18
+ *
19
+ * - `dangling=<boolean>` When set to `true` (or `1`), returns all networks
20
+ * that are not in use by a container. When set to `false` (or `0`), only
21
+ * networks that are in use by one or more containers are returned.
22
+ * - `driver=<driver-name>` Matches a network's driver.
23
+ * - `id=<network-id>` Matches all or part of a network ID.
24
+ * - `label=<key>` or `label=<key>=<value>` of a network label.
25
+ * - `name=<network-name>` Matches all or part of a network name.
26
+ * - `scope=["swarm"|"global"|"local"]` Filters networks by scope (`swarm`,
27
+ * `global`, or `local`).
28
+ * - `type=["custom"|"builtin"]` Filters networks by type. The `custom`
29
+ * keyword returns all user-defined networks.
30
+ */
31
+ readonly filters?: string;
32
+ }
33
+ export interface NetworkDeleteOptions {
34
+ /** Network ID or name */
35
+ readonly id: string;
36
+ }
37
+ export interface NetworkInspectOptions {
38
+ /** Network ID or name */
39
+ readonly id: string;
40
+ /** Detailed inspect output for troubleshooting */
41
+ readonly verbose?: boolean;
42
+ /** Filter the network by scope (swarm, global, or local) */
43
+ readonly scope?: string;
44
+ }
45
+ export interface NetworkConnectOptions {
46
+ /** Network ID or name */
47
+ readonly id: string;
48
+ readonly container: NetworkConnectRequest;
49
+ }
50
+ export interface NetworkDisconnectOptions {
51
+ /** Network ID or name */
52
+ readonly id: string;
53
+ readonly container: NetworkDisconnectRequest;
54
+ }
55
+ export interface NetworkPruneOptions {
56
+ /**
57
+ * Filters to process on the prune list, encoded as JSON (a
58
+ * `map[string][]string`).
59
+ *
60
+ * Available filters:
61
+ *
62
+ * - `until=<timestamp>` Prune networks created before this timestamp. The
63
+ * `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go
64
+ * duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon
65
+ * machine’s time.
66
+ * - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or
67
+ * `label!=<key>=<value>`) Prune networks with (or without, in case
68
+ * `label!=...` is used) the specified labels.
69
+ */
70
+ readonly filters?: string;
71
+ }
72
+ export interface Networks {
73
+ /**
74
+ * List networks
75
+ *
76
+ * @param filters - JSON encoded value of the filters (a
77
+ * `map[string][]string`) to process on the networks list.
78
+ *
79
+ * Available filters:
80
+ *
81
+ * - `dangling=<boolean>` When set to `true` (or `1`), returns all networks
82
+ * that are not in use by a container. When set to `false` (or `0`),
83
+ * only networks that are in use by one or more containers are
84
+ * returned.
85
+ * - `driver=<driver-name>` Matches a network's driver.
86
+ * - `id=<network-id>` Matches all or part of a network ID.
87
+ * - `label=<key>` or `label=<key>=<value>` of a network label.
88
+ * - `name=<network-name>` Matches all or part of a network name.
89
+ * - `scope=["swarm"|"global"|"local"]` Filters networks by scope (`swarm`,
90
+ * `global`, or `local`).
91
+ * - `type=["custom"|"builtin"]` Filters networks by type. The `custom`
92
+ * keyword returns all user-defined networks.
93
+ */
94
+ readonly list: (options?: NetworkListOptions | undefined) => Effect.Effect<never, NetworksError, Readonly<Array<Network>>>;
95
+ /**
96
+ * Remove a network
97
+ *
98
+ * @param id - Network ID or name
99
+ */
100
+ readonly delete: (options: NetworkDeleteOptions) => Effect.Effect<never, NetworksError, void>;
101
+ /**
102
+ * Inspect a network
103
+ *
104
+ * @param id - Network ID or name
105
+ * @param verbose - Detailed inspect output for troubleshooting
106
+ * @param scope - Filter the network by scope (swarm, global, or local)
107
+ */
108
+ readonly inspect: (options: NetworkInspectOptions) => Effect.Effect<never, NetworksError, Readonly<Network>>;
109
+ /**
110
+ * Create a network
111
+ *
112
+ * @param networkConfig - Network configuration
113
+ */
114
+ readonly create: (options: NetworkCreateRequest) => Effect.Effect<never, NetworksError, NetworkCreateResponse>;
115
+ /**
116
+ * Connect a container to a network
117
+ *
118
+ * @param id - Network ID or name
119
+ * @param container -
120
+ */
121
+ readonly connect: (options: NetworkConnectOptions) => Effect.Effect<never, NetworksError, void>;
122
+ /**
123
+ * Disconnect a container from a network
124
+ *
125
+ * @param id - Network ID or name
126
+ * @param container -
127
+ */
128
+ readonly disconnect: (options: NetworkDisconnectOptions) => Effect.Effect<never, NetworksError, void>;
129
+ /**
130
+ * Delete unused networks
131
+ *
132
+ * @param filters - Filters to process on the prune list, encoded as JSON (a
133
+ * `map[string][]string`).
134
+ *
135
+ * Available filters:
136
+ *
137
+ * - `until=<timestamp>` Prune networks created before this timestamp. The
138
+ * `<timestamp>` can be Unix timestamps, date formatted timestamps, or
139
+ * Go duration strings (e.g. `10m`, `1h30m`) computed relative to the
140
+ * daemon machine’s time.
141
+ * - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or
142
+ * `label!=<key>=<value>`) Prune networks with (or without, in case
143
+ * `label!=...` is used) the specified labels.
144
+ */
145
+ readonly prune: (options: NetworkPruneOptions) => Effect.Effect<never, NetworksError, NetworkPruneResponse>;
146
+ }
147
+ export declare const Networks: Context.Tag<Networks, Networks>;
148
+ export declare const layer: Layer.Layer<IMobyConnectionAgent, never, Networks>;
149
+ export declare const fromAgent: (agent: Effect.Effect<Scope.Scope, never, IMobyConnectionAgent>) => Layer.Layer<never, never, Networks>;
150
+ export declare const fromConnectionOptions: (connectionOptions: MobyConnectionOptions) => Layer.Layer<never, never, Networks>;
151
+ export {};
@@ -0,0 +1,40 @@
1
+ import * as NodeHttp from "@effect/platform-node/HttpClient";
2
+ import * as Schema from "@effect/schema/Schema";
3
+ import { Context, Data, Effect, Layer, pipe } from "effect";
4
+ import { MobyConnectionAgent, MobyHttpClientLive, getAgent, } from "./agent-helpers.js";
5
+ import { addQueryParameter, responseErrorHandler } from "./request-helpers.js";
6
+ import { Network, NetworkConnectRequest, NetworkCreateRequest, NetworkCreateResponse, NetworkDisconnectRequest, NetworkPruneResponse, } from "./schemas.js";
7
+ export class NetworksError extends Data.TaggedError("NetworksError") {
8
+ }
9
+ const make = Effect.gen(function* (_) {
10
+ const agent = yield* _(MobyConnectionAgent);
11
+ const defaultClient = yield* _(NodeHttp.client.Client);
12
+ const client = defaultClient.pipe(NodeHttp.client.mapRequest(NodeHttp.request.prependUrl(`${agent.nodeRequestUrl}/networks`)), NodeHttp.client.filterStatusOk);
13
+ const voidClient = client.pipe(NodeHttp.client.transform(Effect.asUnit));
14
+ const NetworksClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(Schema.array(Network))));
15
+ const NetworkClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(Network)));
16
+ const NetworkCreateResponseClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(NetworkCreateResponse)));
17
+ const NetworkPruneResponseClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(NetworkPruneResponse)));
18
+ const responseHandler = (method) => responseErrorHandler((message) => new NetworksError({ method, message }));
19
+ const list_ = (options) => pipe(NodeHttp.request.get(""), addQueryParameter("filters", JSON.stringify(options?.filters)), NetworksClient, Effect.catchAll(responseHandler("list")));
20
+ const delete_ = (options) => pipe(NodeHttp.request.del("/{id}".replace("{id}", encodeURIComponent(options.id))), voidClient, Effect.catchAll(responseHandler("delete")));
21
+ const inspect_ = (options) => pipe(NodeHttp.request.get("/{id}".replace("{id}", encodeURIComponent(options.id))), addQueryParameter("verbose", options.verbose), addQueryParameter("scope", options.scope), NetworkClient, Effect.catchAll(responseHandler("inspect")));
22
+ const create_ = (options) => pipe(NodeHttp.request.post("/create"), NodeHttp.request.schemaBody(NetworkCreateRequest)(options), Effect.flatMap(NetworkCreateResponseClient), Effect.catchAll(responseHandler("create")));
23
+ const connect_ = (options) => pipe(NodeHttp.request.post("/{id}/connect".replace("{id}", encodeURIComponent(options.id))), NodeHttp.request.schemaBody(NetworkConnectRequest)(options.container), Effect.flatMap(voidClient), Effect.catchAll(responseHandler("connect")));
24
+ const disconnect_ = (options) => pipe(NodeHttp.request.post("/{id}/disconnect".replace("{id}", encodeURIComponent(options.id))), NodeHttp.request.schemaBody(NetworkDisconnectRequest)(options.container ?? new NetworkDisconnectRequest({})), Effect.flatMap(voidClient), Effect.catchAll(responseHandler("disconnect")));
25
+ const prune_ = (options) => pipe(NodeHttp.request.post("/prune"), addQueryParameter("filters", options.filters), NetworkPruneResponseClient, Effect.catchAll(responseHandler("prune")));
26
+ return {
27
+ list: list_,
28
+ delete: delete_,
29
+ inspect: inspect_,
30
+ create: create_,
31
+ connect: connect_,
32
+ disconnect: disconnect_,
33
+ prune: prune_,
34
+ };
35
+ });
36
+ export const Networks = Context.Tag("the-moby-effect/Networks");
37
+ export const layer = Layer.effect(Networks, make).pipe(Layer.provide(MobyHttpClientLive));
38
+ export const fromAgent = (agent) => layer.pipe(Layer.provide(Layer.scoped(MobyConnectionAgent, agent)));
39
+ export const fromConnectionOptions = (connectionOptions) => fromAgent(getAgent(connectionOptions));
40
+ //# sourceMappingURL=networks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networks.js","sourceRoot":"","sources":["../../src/networks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import { Context, Effect, Layer, Scope } from "effect";
2
+ import { IMobyConnectionAgent, MobyConnectionOptions } from "./agent-helpers.js";
3
+ import { Node, NodeSpec } from "./schemas.js";
4
+ declare const NodesError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/Equal").Equal>, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" | keyof import("effect/Equal").Equal ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
5
+ readonly _tag: "NodesError";
6
+ } & Readonly<A>;
7
+ export declare class NodesError extends NodesError_base<{
8
+ method: string;
9
+ message: string;
10
+ }> {
11
+ }
12
+ export interface NodeListOptions {
13
+ /**
14
+ * Filters to process on the nodes list, encoded as JSON (a
15
+ * `map[string][]string`).
16
+ *
17
+ * Available filters:
18
+ *
19
+ * - `id=<node id>`
20
+ * - `label=<engine label>`
21
+ * - `membership=`(`accepted`|`pending`)`
22
+ * - `name=<node name>`
23
+ * - `node.label=<node label>`
24
+ * - `role=`(`manager`|`worker`)`
25
+ */
26
+ readonly filters?: {
27
+ id?: [string] | undefined;
28
+ label?: [string] | undefined;
29
+ membership?: ["accepted" | "pending"] | undefined;
30
+ name?: [string] | undefined;
31
+ "node.label"?: [string] | undefined;
32
+ role?: ["manager" | "worker"] | undefined;
33
+ };
34
+ }
35
+ export interface NodeDeleteOptions {
36
+ /** The ID or name of the node */
37
+ readonly id: string;
38
+ /** Force remove a node from the swarm */
39
+ readonly force?: boolean;
40
+ }
41
+ export interface NodeInspectOptions {
42
+ /** The ID or name of the node */
43
+ readonly id: string;
44
+ }
45
+ export interface NodeUpdateOptions {
46
+ /** The ID of the node */
47
+ readonly id: string;
48
+ readonly body: NodeSpec;
49
+ /**
50
+ * The version number of the node object being updated. This is required to
51
+ * avoid conflicting writes.
52
+ */
53
+ readonly version: number;
54
+ }
55
+ export interface Nodes {
56
+ /**
57
+ * List nodes
58
+ *
59
+ * @param filters - Filters to process on the nodes list, encoded as JSON (a
60
+ * `map[string][]string`).
61
+ *
62
+ * Available filters:
63
+ *
64
+ * - `id=<node id>`
65
+ * - `label=<engine label>`
66
+ * - `membership=`(`accepted`|`pending`)`
67
+ * - `name=<node name>`
68
+ * - `node.label=<node label>`
69
+ * - `role=`(`manager`|`worker`)`
70
+ */
71
+ readonly list: (options?: NodeListOptions | undefined) => Effect.Effect<never, NodesError, Readonly<Array<Node>>>;
72
+ /**
73
+ * Delete a node
74
+ *
75
+ * @param id - The ID or name of the node
76
+ * @param force - Force remove a node from the swarm
77
+ */
78
+ readonly delete: (options: NodeDeleteOptions) => Effect.Effect<never, NodesError, void>;
79
+ /**
80
+ * Inspect a node
81
+ *
82
+ * @param id - The ID or name of the node
83
+ */
84
+ readonly inspect: (options: NodeInspectOptions) => Effect.Effect<never, NodesError, Readonly<Node>>;
85
+ /**
86
+ * Update a node
87
+ *
88
+ * @param id - The ID of the node
89
+ * @param body -
90
+ * @param version - The version number of the node object being updated.
91
+ * This is required to avoid conflicting writes.
92
+ */
93
+ readonly update: (options: NodeUpdateOptions) => Effect.Effect<never, NodesError, void>;
94
+ }
95
+ export declare const Nodes: Context.Tag<Nodes, Nodes>;
96
+ export declare const layer: Layer.Layer<IMobyConnectionAgent, never, Nodes>;
97
+ export declare const fromAgent: (agent: Effect.Effect<Scope.Scope, never, IMobyConnectionAgent>) => Layer.Layer<never, never, Nodes>;
98
+ export declare const fromConnectionOptions: (connectionOptions: MobyConnectionOptions) => Layer.Layer<never, never, Nodes>;
99
+ export {};
@@ -0,0 +1,27 @@
1
+ import * as NodeHttp from "@effect/platform-node/HttpClient";
2
+ import * as Schema from "@effect/schema/Schema";
3
+ import { Context, Data, Effect, Layer, pipe } from "effect";
4
+ import { MobyConnectionAgent, MobyHttpClientLive, getAgent, } from "./agent-helpers.js";
5
+ import { addQueryParameter, responseErrorHandler } from "./request-helpers.js";
6
+ import { Node, NodeSpec } from "./schemas.js";
7
+ export class NodesError extends Data.TaggedError("NodesError") {
8
+ }
9
+ const make = Effect.gen(function* (_) {
10
+ const agent = yield* _(MobyConnectionAgent);
11
+ const defaultClient = yield* _(NodeHttp.client.Client);
12
+ const client = defaultClient.pipe(NodeHttp.client.mapRequest(NodeHttp.request.prependUrl(`${agent.nodeRequestUrl}/nodes`)), NodeHttp.client.filterStatusOk);
13
+ const voidClient = client.pipe(NodeHttp.client.transform(Effect.asUnit));
14
+ const NodesClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(Schema.array(Node))));
15
+ const NodeClient = client.pipe(NodeHttp.client.mapEffect(NodeHttp.response.schemaBodyJson(Node)));
16
+ const responseHandler = (method) => responseErrorHandler((message) => new NodesError({ method, message }));
17
+ const list_ = (options) => pipe(NodeHttp.request.get(""), addQueryParameter("filters", options?.filters), NodesClient, Effect.catchAll(responseHandler("list")));
18
+ const delete_ = (options) => pipe(NodeHttp.request.del("/{id}".replace("{id}", encodeURIComponent(options.id))), addQueryParameter("force", options.force), voidClient, Effect.catchAll(responseHandler("delete")));
19
+ const inspect_ = (options) => pipe(NodeHttp.request.get("/{id}".replace("{id}", encodeURIComponent(options.id))), NodeClient, Effect.catchAll(responseHandler("inspect")));
20
+ const update_ = (options) => pipe(NodeHttp.request.post("/{id}/update".replace("{id}", encodeURIComponent(options.id))), addQueryParameter("version", options.version), NodeHttp.request.schemaBody(NodeSpec)(options.body), Effect.flatMap(voidClient), Effect.catchAll(responseHandler("update")));
21
+ return { list: list_, delete: delete_, inspect: inspect_, update: update_ };
22
+ });
23
+ export const Nodes = Context.Tag("the-moby-effect/Nodes");
24
+ export const layer = Layer.effect(Nodes, make).pipe(Layer.provide(MobyHttpClientLive));
25
+ export const fromAgent = (agent) => layer.pipe(Layer.provide(Layer.scoped(MobyConnectionAgent, agent)));
26
+ export const fromConnectionOptions = (connectionOptions) => fromAgent(getAgent(connectionOptions));
27
+ //# sourceMappingURL=nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/nodes.ts"],"names":[],"mappings":"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"}