@alchemy.run/docker 2.0.0-beta.84 → 2.0.0-beta.86

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 (98) hide show
  1. package/README.md +16 -0
  2. package/lib/Bootstrap.d.ts.map +1 -1
  3. package/lib/Bootstrap.js +2 -1
  4. package/lib/Bootstrap.js.map +1 -1
  5. package/lib/BuildCache.d.ts +87 -0
  6. package/lib/BuildCache.d.ts.map +1 -0
  7. package/lib/BuildCache.js +39 -0
  8. package/lib/BuildCache.js.map +1 -0
  9. package/lib/BuildHash.d.ts +20 -3
  10. package/lib/BuildHash.d.ts.map +1 -1
  11. package/lib/BuildHash.js +60 -21
  12. package/lib/BuildHash.js.map +1 -1
  13. package/lib/BuildPlan.d.ts +202 -0
  14. package/lib/BuildPlan.d.ts.map +1 -0
  15. package/lib/BuildPlan.js +514 -0
  16. package/lib/BuildPlan.js.map +1 -0
  17. package/lib/Container.d.ts +122 -1
  18. package/lib/Container.d.ts.map +1 -1
  19. package/lib/Container.js +232 -4
  20. package/lib/Container.js.map +1 -1
  21. package/lib/Context.d.ts +20 -1
  22. package/lib/Context.d.ts.map +1 -1
  23. package/lib/Context.js +15 -0
  24. package/lib/Context.js.map +1 -1
  25. package/lib/Docker.d.ts +113 -1
  26. package/lib/Docker.d.ts.map +1 -1
  27. package/lib/Docker.js +50 -8
  28. package/lib/Docker.js.map +1 -1
  29. package/lib/Dockerfile.d.ts +0 -2
  30. package/lib/Dockerfile.d.ts.map +1 -1
  31. package/lib/Dockerfile.js.map +1 -1
  32. package/lib/DockerfileParser.d.ts +125 -0
  33. package/lib/DockerfileParser.d.ts.map +1 -0
  34. package/lib/DockerfileParser.js +1040 -0
  35. package/lib/DockerfileParser.js.map +1 -0
  36. package/lib/HealthcheckCommand.d.ts.map +1 -1
  37. package/lib/HealthcheckCommand.js.map +1 -1
  38. package/lib/Image.d.ts +69 -13
  39. package/lib/Image.d.ts.map +1 -1
  40. package/lib/Image.js +59 -9
  41. package/lib/Image.js.map +1 -1
  42. package/lib/ImageArchive.d.ts +41 -0
  43. package/lib/ImageArchive.d.ts.map +1 -0
  44. package/lib/ImageArchive.js +54 -0
  45. package/lib/ImageArchive.js.map +1 -0
  46. package/lib/ImageSource.d.ts +151 -8
  47. package/lib/ImageSource.d.ts.map +1 -1
  48. package/lib/ImageSource.js +247 -72
  49. package/lib/ImageSource.js.map +1 -1
  50. package/lib/Network.d.ts +175 -3
  51. package/lib/Network.d.ts.map +1 -1
  52. package/lib/Network.js +296 -8
  53. package/lib/Network.js.map +1 -1
  54. package/lib/Providers.d.ts.map +1 -1
  55. package/lib/Providers.js.map +1 -1
  56. package/lib/Registry.d.ts.map +1 -1
  57. package/lib/Registry.js.map +1 -1
  58. package/lib/RegistryError.d.ts.map +1 -1
  59. package/lib/RegistryError.js.map +1 -1
  60. package/lib/RemoteImage.d.ts.map +1 -1
  61. package/lib/RemoteImage.js +1 -1
  62. package/lib/RemoteImage.js.map +1 -1
  63. package/lib/Service.d.ts +24 -3
  64. package/lib/Service.d.ts.map +1 -1
  65. package/lib/Service.js +154 -12
  66. package/lib/Service.js.map +1 -1
  67. package/lib/ServiceImage.d.ts.map +1 -1
  68. package/lib/ServiceImage.js.map +1 -1
  69. package/lib/ShellWord.d.ts +28 -0
  70. package/lib/ShellWord.d.ts.map +1 -0
  71. package/lib/ShellWord.js +301 -0
  72. package/lib/ShellWord.js.map +1 -0
  73. package/lib/Swarm.d.ts.map +1 -1
  74. package/lib/Swarm.js.map +1 -1
  75. package/lib/Volume.d.ts +24 -1
  76. package/lib/Volume.d.ts.map +1 -1
  77. package/lib/Volume.js +16 -0
  78. package/lib/Volume.js.map +1 -1
  79. package/lib/index.d.ts.map +1 -1
  80. package/lib/index.js.map +1 -1
  81. package/package.json +9 -9
  82. package/src/Bootstrap.ts +2 -0
  83. package/src/BuildCache.ts +111 -0
  84. package/src/BuildHash.ts +85 -26
  85. package/src/BuildPlan.ts +758 -0
  86. package/src/Container.ts +361 -5
  87. package/src/Context.ts +27 -1
  88. package/src/Docker.ts +157 -9
  89. package/src/Dockerfile.ts +0 -2
  90. package/src/DockerfileParser.ts +1152 -0
  91. package/src/Image.ts +75 -15
  92. package/src/ImageArchive.ts +77 -0
  93. package/src/ImageSource.ts +391 -99
  94. package/src/Network.ts +432 -10
  95. package/src/RemoteImage.ts +1 -1
  96. package/src/Service.ts +246 -62
  97. package/src/ShellWord.ts +326 -0
  98. package/src/Volume.ts +33 -1
@@ -55,6 +55,57 @@ export interface ContainerProps {
55
55
  networkMode?: Container.NetworkMode;
56
56
  /** Linux capabilities to add, for example `SYS_ADMIN`. */
57
57
  capAdd?: string[];
58
+ /** Linux capabilities to drop, for example `["ALL"]`. */
59
+ capDrop?: string[];
60
+ /** Hard memory limit in Docker's byte-suffix format, e.g. `"512m"`. */
61
+ memory?: string;
62
+ /**
63
+ * Combined memory-plus-swap limit in Docker's byte-suffix format.
64
+ * Requires `memory`. Set to the same value to disable swap, or `"-1"`
65
+ * to allow unlimited swap (subject to the host).
66
+ */
67
+ memorySwap?: string;
68
+ /** Soft memory limit under contention, e.g. `"256m"`. */
69
+ memoryReservation?: string;
70
+ /** CPU quota, in cores (e.g. `0.5` limits to half a CPU). */
71
+ cpus?: number;
72
+ /** Maximum number of processes and threads in the container. */
73
+ pidsLimit?: number;
74
+ /** Mount the container's root filesystem read-only. Writable paths need a volume or tmpfs. */
75
+ readOnlyRootFilesystem?: boolean;
76
+ /** Prevent processes from gaining additional privileges through exec. */
77
+ noNewPrivileges?: boolean;
78
+ /** Run Docker's init process to forward signals and reap child processes. */
79
+ init?: boolean;
80
+ /** Runtime user, e.g. `"1000:1000"` or `"app"`. Omit to keep the image's user. */
81
+ user?: string;
82
+ /**
83
+ * Seccomp JSON profile path on the Docker CLI host, or `"builtin"` to
84
+ * select Docker's default policy. `"unconfined"` explicitly disables it.
85
+ * Changes to a profile file's contents recreate the container.
86
+ */
87
+ seccompProfile?: string;
88
+ /**
89
+ * Name of a preloaded AppArmor profile, e.g. `"docker-default"`.
90
+ * Requires AppArmor support on the target host. `"unconfined"` disables it.
91
+ */
92
+ appArmorProfile?: string;
93
+ /** Docker user-namespace mode. `"host"` opts out of daemon user remapping. */
94
+ userNamespace?: string;
95
+ /** Supplementary Linux group names or numeric GIDs. */
96
+ groupAdd?: string[];
97
+ /** Per-process resource limits. `-1` represents unlimited. */
98
+ ulimits?: Record<string, Container.Ulimit>;
99
+ /** Docker log driver, e.g. `"local"`, `"json-file"`, or `"none"`. */
100
+ logDriver?: string;
101
+ /** Driver-specific settings, such as `{ "max-size": "10m", "max-file": "3" }`. */
102
+ logOptions?: Record<string, string>;
103
+ /** Relative OOM score adjustment on Linux, from -1000 to 1000. */
104
+ oomScoreAdjustment?: number;
105
+ /** Stop signal, e.g. `"SIGTERM"` or `"SIGINT"`. */
106
+ stopSignal?: string;
107
+ /** Writable in-memory mounts, including size and POSIX mode controls. */
108
+ tmpfs?: Container.TmpfsMount[];
58
109
  /** Host devices to expose to the container. */
59
110
  devices?: Container.DeviceMapping[];
60
111
  /**
@@ -98,6 +149,20 @@ export declare namespace Container {
98
149
  /** Mount read-only. @default false */
99
150
  readOnly?: boolean;
100
151
  }
152
+ interface TmpfsMount {
153
+ /** Absolute mount target in the container, e.g. `"/tmp"`. */
154
+ path: string;
155
+ /** Docker byte-suffix size, e.g. `"32m"`. Omit for the engine default. */
156
+ size?: string;
157
+ /** POSIX mode as a number, e.g. `0o1777` for a sticky world-writable directory. */
158
+ mode?: number;
159
+ }
160
+ interface Ulimit {
161
+ /** Process soft limit. `-1` means unlimited. */
162
+ soft: number;
163
+ /** Process hard limit. `-1` means unlimited. */
164
+ hard: number;
165
+ }
101
166
  interface NetworkMapping {
102
167
  /** Network name or ID. */
103
168
  name: string;
@@ -157,7 +222,20 @@ export interface Container extends Resource<"Docker.Container", ContainerProps,
157
222
  capAdd?: string[];
158
223
  /** Configured host devices, when reported by Docker. */
159
224
  devices?: Container.DeviceMapping[];
160
- }, never, Providers> {
225
+ }, never, Providers, ContainerLookup> {
226
+ }
227
+ /**
228
+ * Props for {@link Container.lookup}: find a container this stack
229
+ * doesn't manage by its name.
230
+ */
231
+ export interface ContainerLookup {
232
+ /** Container name. */
233
+ name: string;
234
+ /**
235
+ * Docker context the engine is reached through.
236
+ * @default the current context
237
+ */
238
+ context?: string;
161
239
  }
162
240
  /**
163
241
  * A Docker container managed through the active Docker context.
@@ -266,6 +344,39 @@ export interface Container extends Resource<"Docker.Container", ContainerProps,
266
344
  * ```
267
345
  *
268
346
  * ### Runtime Options
347
+ * **Example:** Contain a background worker
348
+ * ```typescript
349
+ * const worker = yield* Docker.Container("worker", {
350
+ * image: "oven/bun:1",
351
+ * memory: "512m",
352
+ * memorySwap: "512m",
353
+ * memoryReservation: "256m",
354
+ * cpus: 0.5,
355
+ * pidsLimit: 128,
356
+ * readOnlyRootFilesystem: true,
357
+ * capDrop: ["ALL"],
358
+ * noNewPrivileges: true,
359
+ * init: true,
360
+ * user: "1000:1000",
361
+ * tmpfs: [{ path: "/tmp", size: "32m", mode: 0o1777 }],
362
+ * });
363
+ * ```
364
+ *
365
+ * **Example:** Customize confinement, process limits, and log rotation
366
+ * ```typescript
367
+ * const api = yield* Docker.Container("api", {
368
+ * image: "ghcr.io/acme/api:latest",
369
+ * seccompProfile: "./security/api-seccomp.json", // client-side JSON; edits roll the container
370
+ * appArmorProfile: "my-loaded-profile", // must already be loaded on the host
371
+ * groupAdd: ["1000"],
372
+ * ulimits: { nofile: { soft: 1024, hard: 4096 } },
373
+ * logDriver: "local",
374
+ * logOptions: { "max-size": "10m", "max-file": "3" },
375
+ * oomScoreAdjustment: 200,
376
+ * stopSignal: "SIGTERM",
377
+ * });
378
+ * ```
379
+ *
269
380
  * **Example:** Share a donor container's network namespace
270
381
  * ```typescript
271
382
  * const donor = yield* Docker.Container("donor", { image: "redis:alpine" });
@@ -324,6 +435,16 @@ export interface Container extends Resource<"Docker.Container", ContainerProps,
324
435
  * });
325
436
  * ```
326
437
  *
438
+ * ### Looking up an existing container
439
+ * `Container.lookup` references a container Alchemy doesn't manage (created with
440
+ * the Docker CLI, Compose or another stack). It is read during plan/deploy,
441
+ * never created, updated or removed.
442
+ *
443
+ * **Example:** Reference an existing container
444
+ * ```typescript
445
+ * const db = Docker.Container.lookup({ name: "postgres" });
446
+ * ```
447
+ *
327
448
  * @resource
328
449
  * @product Container
329
450
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../src/Container.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK5C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAyC,MAAM,aAAa,CAAC;AAE5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;IACvB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oCAAoC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;IAChC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC;IACpC,sBAAsB;IACtB,OAAO,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,YAAY,GAAG,gBAAgB,CAAC;IAC5D;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC;IACtC,yFAAyF;IACzF,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;IACpC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC;IACpC;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/F,KAAK,KAAK,GAAG,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,UAAU,WAAW;QACnB,iCAAiC;QACjC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;QAC1B,0CAA0C;QAC1C,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;QAC1B,oDAAoD;QACpD,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;KAC1B;IACD,UAAU,aAAa;QACrB,wCAAwC;QACxC,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,sCAAsC;QACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB;IACD,UAAU,cAAc;QACtB,0BAA0B;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,yCAAyC;QACzC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB;IACD,KAAK,WAAW,GAAG,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,UAAU,aAAa;QACrB,wBAAwB;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,6BAA6B;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,yCAAyC;QACzC,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IACD,UAAU,WAAW;QACnB;;;;;WAKG;QACH,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACvB,2BAA2B;QAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;QAC1B,oCAAoC;QACpC,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;QACzB,6CAA6C;QAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,4BAA4B;QAC5B,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;QAC7B,gEAAgE;QAChE,aAAa,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;KAChC;CACF;AAED,MAAM,WAAW,SAAU,SAAQ,QAAQ,CACzC,kBAAkB,EAClB,cAAc,EACd;IACE,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;IACzB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wDAAwD;IACxD,OAAO,CAAC,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC;CACrC,EACD,KAAK,EACL,SAAS,CACV;CAAG;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuKG;AACH,eAAO,MAAM,SAAS,qDAA0C,CAAC;AAEjE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,SACrB,MAAM,YACF,MAAM,CAAC,UAAU,KAC1B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,MAAM,CAI5D,CAAC;AAEJ,eAAO,MAAM,iBAAiB,qLAuO3B,CAAC;;;;AA4GJ;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,6BAA4C;IACvF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG"}
1
+ {"version":3,"file":"Container.d.ts","sources":["../src/Container.ts"],"names":[],"mappings":"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"}
package/lib/Container.js CHANGED
@@ -122,6 +122,39 @@ const CREATE_CONFIG_HASH_LABEL = "alchemy::container-config";
122
122
  * ```
123
123
  *
124
124
  * ### Runtime Options
125
+ * **Example:** Contain a background worker
126
+ * ```typescript
127
+ * const worker = yield* Docker.Container("worker", {
128
+ * image: "oven/bun:1",
129
+ * memory: "512m",
130
+ * memorySwap: "512m",
131
+ * memoryReservation: "256m",
132
+ * cpus: 0.5,
133
+ * pidsLimit: 128,
134
+ * readOnlyRootFilesystem: true,
135
+ * capDrop: ["ALL"],
136
+ * noNewPrivileges: true,
137
+ * init: true,
138
+ * user: "1000:1000",
139
+ * tmpfs: [{ path: "/tmp", size: "32m", mode: 0o1777 }],
140
+ * });
141
+ * ```
142
+ *
143
+ * **Example:** Customize confinement, process limits, and log rotation
144
+ * ```typescript
145
+ * const api = yield* Docker.Container("api", {
146
+ * image: "ghcr.io/acme/api:latest",
147
+ * seccompProfile: "./security/api-seccomp.json", // client-side JSON; edits roll the container
148
+ * appArmorProfile: "my-loaded-profile", // must already be loaded on the host
149
+ * groupAdd: ["1000"],
150
+ * ulimits: { nofile: { soft: 1024, hard: 4096 } },
151
+ * logDriver: "local",
152
+ * logOptions: { "max-size": "10m", "max-file": "3" },
153
+ * oomScoreAdjustment: 200,
154
+ * stopSignal: "SIGTERM",
155
+ * });
156
+ * ```
157
+ *
125
158
  * **Example:** Share a donor container's network namespace
126
159
  * ```typescript
127
160
  * const donor = yield* Docker.Container("donor", { image: "redis:alpine" });
@@ -180,6 +213,16 @@ const CREATE_CONFIG_HASH_LABEL = "alchemy::container-config";
180
213
  * });
181
214
  * ```
182
215
  *
216
+ * ### Looking up an existing container
217
+ * `Container.lookup` references a container Alchemy doesn't manage (created with
218
+ * the Docker CLI, Compose or another stack). It is read during plan/deploy,
219
+ * never created, updated or removed.
220
+ *
221
+ * **Example:** Reference an existing container
222
+ * ```typescript
223
+ * const db = Docker.Container.lookup({ name: "postgres" });
224
+ * ```
225
+ *
183
226
  * @resource
184
227
  * @product Container
185
228
  */
@@ -205,14 +248,24 @@ export const ContainerProvider = () => Provider.effect(Container, Effect.gen(fun
205
248
  const digests = yield* Effect.forEach(envFiles, (file) => fs.readFile(path.resolve(file)).pipe(Effect.flatMap(sha256), Effect.map((digest) => `${file}\0${digest}`)));
206
249
  return yield* sha256(digests.join("\n"));
207
250
  });
251
+ // Docker CLI loads seccomp profiles from client-side files at create
252
+ // time. Hash the contents as well as the path so policy edits are never
253
+ // silently ignored on subsequent deploys.
254
+ const seccompProfileDigest = Effect.fn(function* (profile) {
255
+ if (!isCustomSeccompProfile(profile))
256
+ return undefined;
257
+ return yield* fs.readFile(path.resolve(profile)).pipe(Effect.flatMap(sha256));
258
+ });
208
259
  // Without env files the hash input is unchanged from before they were
209
260
  // supported, so existing containers keep their label and are not rolled.
210
261
  const desiredConfigHash = Effect.fn(function* (args, news) {
211
262
  const envFiles = yield* envFilesDigest(news.envFiles);
263
+ const seccompProfile = yield* seccompProfileDigest(news.seccompProfile);
212
264
  return yield* sha256Object({
213
265
  ...args,
214
266
  imageId: normalizeImageId(news.image),
215
267
  ...(envFiles === undefined ? {} : { envFiles }),
268
+ ...(seccompProfile === undefined ? {} : { seccompProfile }),
216
269
  });
217
270
  });
218
271
  const reconcileNetworks = Effect.fn(function* (live, news, olds) {
@@ -254,6 +307,10 @@ export const ContainerProvider = () => Provider.effect(Container, Effect.gen(fun
254
307
  const remove = (name, context) => docker.container.stop(name, context).pipe(Effect.andThen(docker.container.remove(name, true, context)), Effect.catchReason("PlatformError", "NotFound", () => Effect.void));
255
308
  return Container.Provider.of({
256
309
  list: () => Effect.succeed([]),
310
+ lookup: Effect.fn(function* ({ name, context }) {
311
+ const info = yield* inspect(name, context);
312
+ return info ? toContainerAttributes(info, info.Config.Image) : undefined;
313
+ }),
257
314
  read: Effect.fn(function* ({ id, instanceId, olds, output }) {
258
315
  const context = dockerContextName(olds.context);
259
316
  const name = yield* dockerPhysicalName(id, olds, instanceId);
@@ -291,9 +348,9 @@ export const ContainerProvider = () => Provider.effect(Container, Effect.gen(fun
291
348
  (olds.start ?? false) !== (news.start ?? false)) {
292
349
  return { action: "update" };
293
350
  }
294
- // Same env file paths, possibly new contents: compare against the
295
- // hash stamped on the running container.
296
- if (news.envFiles?.length) {
351
+ // File-backed inputs can change without changing their paths.
352
+ // Compare their digests against the live config hash.
353
+ if (news.envFiles?.length || isCustomSeccompProfile(news.seccompProfile)) {
297
354
  const live = yield* inspect(newArgs.name, dockerContextName(news.context));
298
355
  const applied = live?.Config.Labels?.[CREATE_CONFIG_HASH_LABEL];
299
356
  if (applied !== undefined && applied !== (yield* desiredConfigHash(newArgs, news))) {
@@ -329,7 +386,12 @@ export const ContainerProvider = () => Provider.effect(Container, Effect.gen(fun
329
386
  !matchesLegacyConfig(live, args, news.image) ||
330
387
  // Env file contents can't be compared without a label (e.g. an
331
388
  // adopted container); recreate once so later edits are tracked.
332
- (news.envFiles?.length ?? 0) > 0
389
+ (news.envFiles?.length ?? 0) > 0 ||
390
+ isCustomSeccompProfile(news.seccompProfile) ||
391
+ // A legacy/adopted container has no stamped config hash.
392
+ // Do not retain it without proof that the requested security
393
+ // restrictions were applied.
394
+ hasHardeningOptions(news)
333
395
  : live.Config.Labels[CREATE_CONFIG_HASH_LABEL] !== configHash);
334
396
  if (recreate) {
335
397
  yield* remove(live.Id, context);
@@ -400,6 +462,30 @@ const makeCreateArgs = (id, news, instanceId) => dockerPhysicalName(id, news, in
400
462
  "add-host": news.extraHosts,
401
463
  network: normalizeNetworkMode(news.networkMode),
402
464
  "cap-add": normalizeCapabilities(news.capAdd),
465
+ ...(news.capDrop?.length ? { "cap-drop": normalizeCapabilities(news.capDrop) } : {}),
466
+ ...(news.memory !== undefined ? { memory: news.memory } : {}),
467
+ ...(news.memorySwap !== undefined ? { "memory-swap": news.memorySwap } : {}),
468
+ ...(news.memoryReservation !== undefined
469
+ ? { "memory-reservation": news.memoryReservation }
470
+ : {}),
471
+ ...(news.cpus !== undefined ? { cpus: news.cpus } : {}),
472
+ ...(news.pidsLimit !== undefined ? { "pids-limit": news.pidsLimit } : {}),
473
+ ...(news.readOnlyRootFilesystem ? { "read-only": true } : {}),
474
+ ...(normalizeSecurityOptions(news) ? { "security-opt": normalizeSecurityOptions(news) } : {}),
475
+ ...(news.userNamespace !== undefined ? { userns: news.userNamespace } : {}),
476
+ ...(news.groupAdd?.length ? { "group-add": normalizeGroups(news.groupAdd) } : {}),
477
+ ...(Object.keys(news.ulimits ?? {}).length ? { ulimit: normalizeUlimits(news.ulimits) } : {}),
478
+ ...(news.logDriver !== undefined ? { "log-driver": news.logDriver } : {}),
479
+ ...(Object.keys(news.logOptions ?? {}).length
480
+ ? { "log-opt": normalizeLogOptions(news.logOptions) }
481
+ : {}),
482
+ ...(news.oomScoreAdjustment !== undefined
483
+ ? { "oom-score-adj": news.oomScoreAdjustment }
484
+ : {}),
485
+ ...(news.stopSignal !== undefined ? { "stop-signal": news.stopSignal } : {}),
486
+ ...(news.init ? { init: true } : {}),
487
+ ...(news.user !== undefined ? { user: news.user } : {}),
488
+ ...(news.tmpfs?.length ? { tmpfs: normalizeTmpfs(news.tmpfs) } : {}),
403
489
  device: normalizeDevices(news.devices),
404
490
  restart: news.restart ?? "no",
405
491
  label: news.labels,
@@ -447,6 +533,51 @@ const normalizeCapabilities = (capAdd) => {
447
533
  return undefined;
448
534
  return [...new Set(capAdd.map((capability) => capability.trim()).filter(Boolean))].sort();
449
535
  };
536
+ const isCustomSeccompProfile = (profile) => profile !== undefined && profile !== "builtin" && profile !== "unconfined";
537
+ const normalizeSecurityOptions = (props) => {
538
+ const options = [
539
+ ...(props.noNewPrivileges ? ["no-new-privileges"] : []),
540
+ ...(props.seccompProfile ? [`seccomp=${props.seccompProfile}`] : []),
541
+ ...(props.appArmorProfile ? [`apparmor=${props.appArmorProfile}`] : []),
542
+ ];
543
+ return options.length ? options : undefined;
544
+ };
545
+ const normalizeGroups = (groups) => [...new Set(groups.map((group) => group.trim()))].sort();
546
+ const normalizeUlimits = (limits) => Object.entries(limits ?? {})
547
+ .sort(([left], [right]) => left.localeCompare(right))
548
+ .map(([name, { soft, hard }]) => `${name}=${soft}:${hard}`);
549
+ const normalizeLogOptions = (options) => Object.entries(options ?? {})
550
+ .sort(([left], [right]) => left.localeCompare(right))
551
+ .map(([name, value]) => `${name}=${value}`);
552
+ const normalizeTmpfs = (mounts) => [...mounts]
553
+ .sort((a, b) => a.path.localeCompare(b.path))
554
+ .map(({ path, size, mode }) => {
555
+ const options = [
556
+ ...(size !== undefined ? [`size=${size}`] : []),
557
+ ...(mode !== undefined ? [`mode=${mode.toString(8)}`] : []),
558
+ ];
559
+ return options.length > 0 ? `${path}:${options.join(",")}` : path;
560
+ });
561
+ const hasHardeningOptions = (props) => (props.capDrop?.length ?? 0) > 0 ||
562
+ props.memory !== undefined ||
563
+ props.memorySwap !== undefined ||
564
+ props.memoryReservation !== undefined ||
565
+ props.cpus !== undefined ||
566
+ props.pidsLimit !== undefined ||
567
+ props.readOnlyRootFilesystem === true ||
568
+ props.noNewPrivileges === true ||
569
+ props.seccompProfile !== undefined ||
570
+ props.appArmorProfile !== undefined ||
571
+ props.userNamespace !== undefined ||
572
+ (props.groupAdd?.length ?? 0) > 0 ||
573
+ Object.keys(props.ulimits ?? {}).length > 0 ||
574
+ props.logDriver !== undefined ||
575
+ Object.keys(props.logOptions ?? {}).length > 0 ||
576
+ props.oomScoreAdjustment !== undefined ||
577
+ props.stopSignal !== undefined ||
578
+ props.init === true ||
579
+ props.user !== undefined ||
580
+ (props.tmpfs?.length ?? 0) > 0;
450
581
  const normalizeDevices = (devices) => {
451
582
  if (!devices?.length)
452
583
  return undefined;
@@ -461,6 +592,78 @@ const normalizeDevices = (devices) => {
461
592
  export class InvalidContainerOptions extends Data.TaggedError("InvalidContainerOptions") {
462
593
  }
463
594
  const validateContainerOptions = (news) => {
595
+ // The CLI formatter omits empty strings. Reject them instead of silently
596
+ // dropping user-specified resource and security restrictions.
597
+ for (const option of [
598
+ "memory",
599
+ "memorySwap",
600
+ "memoryReservation",
601
+ "user",
602
+ "seccompProfile",
603
+ "appArmorProfile",
604
+ "userNamespace",
605
+ "logDriver",
606
+ "stopSignal",
607
+ ]) {
608
+ if (news[option] !== undefined && news[option].trim().length === 0) {
609
+ return Effect.fail(new InvalidContainerOptions({
610
+ message: `Docker.Container ${option} cannot be empty`,
611
+ }));
612
+ }
613
+ }
614
+ if (news.capDrop?.some((capability) => capability.trim().length === 0)) {
615
+ return Effect.fail(new InvalidContainerOptions({
616
+ message: "Docker.Container capDrop cannot contain empty capabilities",
617
+ }));
618
+ }
619
+ if (news.groupAdd?.some((group) => group.trim().length === 0)) {
620
+ return Effect.fail(new InvalidContainerOptions({
621
+ message: "Docker.Container groupAdd cannot contain empty groups",
622
+ }));
623
+ }
624
+ for (const [name, limit] of Object.entries(news.ulimits ?? {})) {
625
+ if (!/^[a-z][a-z0-9_-]*$/.test(name) ||
626
+ !Number.isSafeInteger(limit.soft) ||
627
+ !Number.isSafeInteger(limit.hard) ||
628
+ limit.soft < -1 ||
629
+ limit.hard < -1 ||
630
+ (limit.hard !== -1 && (limit.soft === -1 || limit.soft > limit.hard))) {
631
+ return Effect.fail(new InvalidContainerOptions({
632
+ message: `Docker.Container ulimits contains an invalid soft/hard limit for ${name}`,
633
+ }));
634
+ }
635
+ }
636
+ for (const [name, value] of Object.entries(news.logOptions ?? {})) {
637
+ if (!name.trim() || name.includes("=") || !value.trim()) {
638
+ return Effect.fail(new InvalidContainerOptions({
639
+ message: `Docker.Container logOptions contains an invalid option: ${name}`,
640
+ }));
641
+ }
642
+ }
643
+ if (news.oomScoreAdjustment !== undefined &&
644
+ (!Number.isInteger(news.oomScoreAdjustment) ||
645
+ news.oomScoreAdjustment < -1000 ||
646
+ news.oomScoreAdjustment > 1000)) {
647
+ return Effect.fail(new InvalidContainerOptions({
648
+ message: "Docker.Container oomScoreAdjustment must be an integer from -1000 to 1000",
649
+ }));
650
+ }
651
+ if (news.memorySwap !== undefined && news.memory === undefined) {
652
+ return Effect.fail(new InvalidContainerOptions({
653
+ message: "Docker.Container memorySwap requires memory to be set",
654
+ }));
655
+ }
656
+ if (news.cpus !== undefined && (!Number.isFinite(news.cpus) || news.cpus <= 0)) {
657
+ return Effect.fail(new InvalidContainerOptions({
658
+ message: "Docker.Container cpus must be a finite, positive number",
659
+ }));
660
+ }
661
+ if (news.pidsLimit !== undefined &&
662
+ (!Number.isInteger(news.pidsLimit) || (news.pidsLimit <= 0 && news.pidsLimit !== -1))) {
663
+ return Effect.fail(new InvalidContainerOptions({
664
+ message: "Docker.Container pidsLimit must be a positive integer or -1 (unlimited)",
665
+ }));
666
+ }
464
667
  if (isContainerNetworkMode(news.networkMode) &&
465
668
  ((news.ports?.length ?? 0) > 0 || (news.networks?.length ?? 0) > 0)) {
466
669
  return Effect.fail(new InvalidContainerOptions({
@@ -476,6 +679,31 @@ const validateContainerOptions = (news) => {
476
679
  }
477
680
  targets.add(device.containerPath);
478
681
  }
682
+ const tmpfsTargets = new Set();
683
+ for (const mount of news.tmpfs ?? []) {
684
+ if (mount.size !== undefined && mount.size.trim().length === 0) {
685
+ return Effect.fail(new InvalidContainerOptions({
686
+ message: `Docker.Container tmpfs size cannot be empty for ${mount.path}`,
687
+ }));
688
+ }
689
+ if (!mount.path.startsWith("/") || mount.path.includes(":") || mount.path.includes(",")) {
690
+ return Effect.fail(new InvalidContainerOptions({
691
+ message: `Docker.Container tmpfs target must be an absolute path: ${mount.path}`,
692
+ }));
693
+ }
694
+ if (tmpfsTargets.has(mount.path)) {
695
+ return Effect.fail(new InvalidContainerOptions({
696
+ message: `Docker.Container tmpfs contains duplicate target ${mount.path}`,
697
+ }));
698
+ }
699
+ if (mount.mode !== undefined &&
700
+ (!Number.isInteger(mount.mode) || mount.mode < 0 || mount.mode > 0o7777)) {
701
+ return Effect.fail(new InvalidContainerOptions({
702
+ message: `Docker.Container tmpfs mode is not a valid POSIX mode for ${mount.path}`,
703
+ }));
704
+ }
705
+ tmpfsTargets.add(mount.path);
706
+ }
479
707
  return Effect.void;
480
708
  };
481
709
  const isContainerNetworkMode = (mode) => typeof mode === "string" ? mode.startsWith("container:") : mode !== undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../src/Container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGpF,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AA4J7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAY,kBAAkB,CAAC,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,OAA2B,EACoC,EAAE,CACjE,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EACtF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACpF,CAAC;AAEJ,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CACpC,QAAQ,CAAC,MAAM,CACb,SAAS,EACT,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;IAC7B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAE9B,oEAAoE;IACpE,sEAAsE;IACtE,oEAAoE;IACpE,yEAAyE;IACzE,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,QAA2C;QACrF,IAAI,CAAC,QAAQ,EAAE,MAAM;YAAE,OAAO,SAAS,CAAC;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CACvD,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EACtB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC,CAC7C,CACF,CAAC;QACF,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,yEAAyE;IACzE,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAC3C,IAA6D,EAC7D,IAAoB;QAEpB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC;YACzB,GAAG,IAAI;YACP,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;SAChD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAC3C,IAAsB,EACtB,IAAoB,EACpB,IAAgC;QAEhC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACnC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,qEAAqE;QACrE,mEAAmE;QACnE,oEAAoE;QACpE,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChF,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,UAAU,EACV,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAChF,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;QACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,OAAO,CAAC,MAAM,EAAE,EAChB,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,OAAO,CAAC,IAAI;YACrB,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,KAAK,EAAE,OAAO,CAAC,OAAO;YACtB,OAAO;SACR,CAAC,EACJ,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAE,EAAE,CACjD,MAAM,CAAC,SAAS;SACb,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAEnF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAE,EAAE,CAChD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CACvC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAC5D,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CACnE,CAAC;IAEJ,OAAO,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;YACzD,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAC;YAC5B,4DAA4D;YAC5D,gEAAgE;YAChE,iCAAiC;YACjC,MAAM,KAAK,GAAG,qBAAqB,CACjC,IAAI,EACJ,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAC7E,CAAC;YACF,IAAI,MAAM;gBAAE,OAAO,KAAK,CAAC;YACzB,+DAA+D;YAC/D,iEAAiE;YACjE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;YACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACxC,8DAA8D;YAC9D,mEAAmE;YACnE,oEAAoE;YACpE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC/C,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxE,OAAO,EAAE,MAAM,EAAE,SAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAC3D,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACpC,OAAO,EAAE,MAAM,EAAE,SAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAC3D,CAAC;YACD,IACE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACvD,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,EAC/C,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC;YACvC,CAAC;YACD,kEAAkE;YAClE,yCAAyC;YACzC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3E,MAAM,OAAO,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,wBAAwB,CAAC,CAAC;gBAChE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;oBACnF,OAAO,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;YACpE,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxD,6DAA6D;YAC7D,kDAAkD;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACpE,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,UAAU,KAAK,OAAO,CAAC;gBAC7D,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC;gBACzC,CAAC,CAAC,SAAS,CAAC;YAChB,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,EAAE,EAAE,KAAK,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;YAExE,MAAM,OAAO,GACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,wBAAwB,CAAC,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;gBACjF,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CACnB,EAAE,EACF;oBACE,GAAG,IAAI;oBACP,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC,KAAK;iBACpD,EACD,UAAU,CACX;gBACH,CAAC,CAAC,SAAS,CAAC;YAChB,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS;gBAClB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,wBAAwB,CAAC,KAAK,SAAS;oBAC3D,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;wBACvD,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;wBAC9D,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;wBAC5C,+DAA+D;wBAC/D,gEAAgE;wBAChE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;oBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,KAAK,UAAU,CAAC,CAAC;YACnE,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAClC,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;oBAC7D,GAAG,IAAI;oBACP,OAAO;oBACP,KAAK,EAAE;wBACL,GAAG,IAAI,CAAC,KAAK;wBACb,GAAG,YAAY;wBACf,CAAC,wBAAwB,CAAC,EAAE,UAAU;qBACvC;iBACF,CAAC,CAAC;gBACH,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,IAAI,CAAC,QAAQ,IAAI,EAAE,EACnB,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;oBACrB,OAAO,EAAE,OAAO,CAAC,IAAI;oBACrB,SAAS,EAAE,WAAW;oBACtB,KAAK,EAAE,OAAO,CAAC,OAAO;oBACtB,OAAO;iBACR,CAAC,EACJ,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;gBACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBACtD,CAAC;gBACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBACnE,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;YAED,KAAK,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACrD,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7D,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS;iBAC3B,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;iBAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CACrC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CACrD;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,iBAAiB,GAAG,CAAC,KAAsB,EAAU,EAAE,CAC3D,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;AAErD,MAAM,gBAAgB,GAAG,CAAC,KAAkC,EAAE,EAAE,CAC9D,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC;AAIzD,6EAA6E;AAC7E,8EAA8E;AAC9E,0DAA0D;AAC1D,MAAM,mBAAmB,GAAG,CAAC,IAAsB,EAAE,OAAmB,EAAE,KAAsB,EAAE,EAAE,CAClG,CAAC,gBAAgB,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,CAAC;IACxC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;IACxC,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjF,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACvD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAC7C,CAAC;AAEJ,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,IAAoB,EAAE,UAAkB,EAAE,EAAE,CAC9E,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAChD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAA2D,EAAE,CAAC,CAAC;IAC7E,IAAI;IACJ,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;IACpC,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,GAAG,EAAE,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC;IAC3C,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;IAC7D,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACpE;IACD,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC5D,oEAAoE;QACpE,oEAAoE;QACpE,mEAAmE;QACnE,aAAa;QACb,OAAO,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC;IACjF,CAAC,CAAC;IACF,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC;IAC/C,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;IAC7B,KAAK,EAAE,IAAI,CAAC,MAAM;IAClB,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE;IACvD,EAAE,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK;IAC9B,GAAG,CAAC,IAAI,CAAC,WAAW;QAClB,CAAC,CAAC;YACE,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YACtD,0DAA0D;YAC1D,sDAAsD;YACtD,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,iBAAiB,EAAE,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC/D,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAC7D,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC;YAC/C,qBAAqB,EAAE,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YACtE,uBAAuB,EAAE,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;SAC3E;QACH,CAAC,CAAC;YACE,YAAY,EAAE,SAAS;YACvB,iBAAiB,EAAE,SAAS;YAC5B,gBAAgB,EAAE,SAAS;YAC3B,gBAAgB,EAAE,SAAS;YAC3B,qBAAqB,EAAE,SAAS;YAChC,uBAAuB,EAAE,SAAS;SACnC,CAAC;CACP,CAAC,CAAC,CACJ,CAAC;AAEJ,MAAM,qBAAqB,GAAG,CAC5B,IAAsB,EACtB,QAAgB,EACS,EAAE,CAAC,CAAC;IAC7B,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;IAC5E,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;IACzB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;IACjD,QAAQ;IACR,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAC7B,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;IACxC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS;IAC3C,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,QAAQ,EAAE,MAAM,CAAC,UAAU;QAC3B,aAAa,EAAE,MAAM,CAAC,eAAe;QACrC,WAAW,EAAE,MAAM,CAAC,iBAAiB;KACtC,CAAC,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,IAAuC,EAAsB,EAAE,CAC3F,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,EAAE,CAAC;AAEnG,MAAM,qBAAqB,GAAG,CAAC,MAA4B,EAAwB,EAAE;IACnF,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5F,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,OAA8C,EAAwB,EAAE;IAChG,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAC5B,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,WAAW,IAAI,KAAK,EAAE,CACxF,CAAC;IACF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAErF;CAAG;AAEL,MAAM,wBAAwB,GAAG,CAAC,IAAoB,EAAE,EAAE;IACxD,IACE,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EACnE,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,uBAAuB,CAAC;YAC1B,OAAO,EAAE,kFAAkF;SAC5F,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,uBAAuB,CAAC;gBAC1B,OAAO,EAAE,4DAA4D,MAAM,CAAC,aAAa,EAAE;aAC5F,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,IAAuC,EAAW,EAAE,CAClF,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;AAEhF,8DAA8D;AAC9D,MAAM,aAAa,GAAG,CACpB,QAAiE,EAC7C,EAAE;IACtB,KAAK,MAAM,OAAO,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,SAAS;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,gBAAgB,GAAG,CAAC,IAAsB,EAA0B,EAAE;IAC1E,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QACtF,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACjD,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,oEAAoE;AACpE,MAAM,gBAAgB,GAAG,CAAC,QAAyB,EAAW,EAAE,CAC9D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAE9C,MAAM,oBAAoB,GAAG,CAC3B,WAA2E,EACnD,EAAE,CAC1B,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IACtD,GAAG;IACH,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;CAC3D,CAAC,CACH,CAAC;AAEJ,MAAM,iBAAiB,GAAG,CAAC,KAAiC,EAAsB,EAAE;IAClF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACjD,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC5D,CAAC,CAAC"}
1
+ {"version":3,"file":"Container.js","sources":["../src/Container.ts"],"names":[],"mappings":"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"}
package/lib/Context.d.ts CHANGED
@@ -31,7 +31,15 @@ export interface Context extends Resource<"Docker.Context", ContextProps, {
31
31
  description: string;
32
32
  /** Docker endpoint the context targets. */
33
33
  docker?: string;
34
- }, never, Providers> {
34
+ }, never, Providers, ContextLookup> {
35
+ }
36
+ /**
37
+ * Props for {@link Context.lookup}: find a Docker context this
38
+ * stack doesn't manage by its name.
39
+ */
40
+ export interface ContextLookup {
41
+ /** Context name. */
42
+ name: string;
35
43
  }
36
44
  /**
37
45
  * A named Docker CLI context — a pointer to a Docker engine (local socket,
@@ -78,6 +86,17 @@ export interface Context extends Resource<"Docker.Context", ContextProps, {
78
86
  * });
79
87
  * ```
80
88
  *
89
+ * ### Looking up an existing context
90
+ * `Context.lookup` references a context Alchemy doesn't manage (created with
91
+ * the Docker CLI, Compose or another stack). It is read during plan/deploy,
92
+ * never created, updated or removed.
93
+ *
94
+ * **Example:** Deploy to an existing context
95
+ * ```typescript
96
+ * const remote = Docker.Context.lookup({ name: "prod-host" });
97
+ * const api = yield* Docker.Container("Api", { image: "nginx:alpine", context: remote });
98
+ * ```
99
+ *
81
100
  * @resource
82
101
  * @product Context
83
102
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../src/Context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ,CACvC,gBAAgB,EAChB,YAAY,EACZ;IACE,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,EACD,KAAK,EACL,SAAS,CACV;CAAG;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,OAAO,mDAAsC,CAAC;AAE3D,eAAO,MAAM,eAAe,+IA8FzB,CAAC"}
1
+ {"version":3,"file":"Context.d.ts","sources":["../src/Context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ,CACvC,gBAAgB,EAChB,YAAY,EACZ;IACE,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,EACD,KAAK,EACL,SAAS,EACT,aAAa,CACd;CAAG;AAEJ;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,OAAO,mDAAsC,CAAC;AAE3D,eAAO,MAAM,eAAe,+IAmGzB,CAAC"}