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.
- package/LICENSE +21 -0
- package/README.md +42 -0
- package/dist/src/agent-helpers.d.ts +59 -0
- package/dist/src/agent-helpers.js +84 -0
- package/dist/src/agent-helpers.js.map +1 -0
- package/dist/src/configs.d.ts +105 -0
- package/dist/src/configs.js +29 -0
- package/dist/src/configs.js.map +1 -0
- package/dist/src/containers.d.ts +611 -0
- package/dist/src/containers.js +82 -0
- package/dist/src/containers.js.map +1 -0
- package/dist/src/custom-helpers.d.ts +23 -0
- package/dist/src/custom-helpers.js +41 -0
- package/dist/src/custom-helpers.js.map +1 -0
- package/dist/src/distribution.d.ts +28 -0
- package/dist/src/distribution.js +21 -0
- package/dist/src/distribution.js.map +1 -0
- package/dist/src/execs.d.ts +69 -0
- package/dist/src/execs.js +26 -0
- package/dist/src/execs.js.map +1 -0
- package/dist/src/images.d.ts +657 -0
- package/dist/src/images.js +61 -0
- package/dist/src/images.js.map +1 -0
- package/dist/src/index.d.ts +38 -0
- package/dist/src/index.js +38 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/networks.d.ts +151 -0
- package/dist/src/networks.js +40 -0
- package/dist/src/networks.js.map +1 -0
- package/dist/src/nodes.d.ts +99 -0
- package/dist/src/nodes.js +27 -0
- package/dist/src/nodes.js.map +1 -0
- package/dist/src/plugins.d.ts +253 -0
- package/dist/src/plugins.js +47 -0
- package/dist/src/plugins.js.map +1 -0
- package/dist/src/request-helpers.d.ts +6 -0
- package/dist/src/request-helpers.js +15 -0
- package/dist/src/request-helpers.js.map +1 -0
- package/dist/src/schemas.d.ts +7279 -0
- package/dist/src/schemas.js +3772 -0
- package/dist/src/schemas.js.map +1 -0
- package/dist/src/secrets.d.ts +100 -0
- package/dist/src/secrets.js +29 -0
- package/dist/src/secrets.js.map +1 -0
- package/dist/src/services.d.ts +185 -0
- package/dist/src/services.js +32 -0
- package/dist/src/services.js.map +1 -0
- package/dist/src/session.d.ts +29 -0
- package/dist/src/session.js +20 -0
- package/dist/src/session.js.map +1 -0
- package/dist/src/swarm.d.ts +80 -0
- package/dist/src/swarm.js +39 -0
- package/dist/src/swarm.js.map +1 -0
- package/dist/src/system.d.ts +100 -0
- package/dist/src/system.js +40 -0
- package/dist/src/system.js.map +1 -0
- package/dist/src/tasks.d.ts +102 -0
- package/dist/src/tasks.js +26 -0
- package/dist/src/tasks.js.map +1 -0
- package/dist/src/volumes.d.ts +143 -0
- package/dist/src/volumes.js +29 -0
- package/dist/src/volumes.js.map +1 -0
- 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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"}
|