@cloudflare/containers-shared 0.16.5 → 0.18.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/dist/index.d.mts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { ComplianceConfig, Logger, FetchResultFetcher, FetchPagedListResultFetcher, Config, ContainerApp } from '@cloudflare/workers-utils';
2
+ import { ParsedInputContainerConfig } from '@cloudflare/config';
2
3
  import { ComplianceConfig as ComplianceConfig$1 } from '@cloudflare/workers-utils/compliance';
3
4
  import { StdioOptions } from 'node:child_process';
4
5
 
@@ -3374,6 +3375,7 @@ type BuiltImage = {
3374
3375
  type BuiltContainerImage = BuiltImage & {
3375
3376
  container: DockerfileContainerConfig;
3376
3377
  };
3378
+ declare function normalizeContainerImageRepositoryName(value: string): string;
3377
3379
  declare function isDockerfileContainerConfig(container: ContainerNormalizedConfig): container is DockerfileContainerConfig;
3378
3380
  /**
3379
3381
  * `{ remoteDigest: string }` implies the image was pushed to, or already exists in,
@@ -3502,6 +3504,20 @@ declare function dockerBuild(dockerPath: string, options: {
3502
3504
  ready: Promise<void>;
3503
3505
  }>;
3504
3506
 
3507
+ /**
3508
+ * Builds and writes the Container portion of the Build Output Specification.
3509
+ *
3510
+ * Registry references pass through unchanged. Locally built tags are retained
3511
+ * on success so a later deploy can resolve each emitted `localReference`.
3512
+ *
3513
+ * @param options - The validated Container configs and Docker build environment.
3514
+ */
3515
+ declare function buildAndWriteContainerOutput(options: {
3516
+ containers: ParsedInputContainerConfig[];
3517
+ root: string;
3518
+ pathToDocker: string;
3519
+ }): Promise<void>;
3520
+
3505
3521
  declare let logger: Logger;
3506
3522
  declare let fetchResult: FetchResultFetcher;
3507
3523
  declare let fetchPagedListResult: FetchPagedListResultFetcher;
@@ -3714,15 +3730,6 @@ declare const cleanupContainers: (dockerPath: string, imageTags: Set<string>) =>
3714
3730
  */
3715
3731
  declare function getContainerIdsByImageTags(dockerPath: string, imageTags: Set<string>): string[];
3716
3732
  declare const getContainerIdsFromImage: (dockerPath: string, ancestorImage: string) => string[];
3717
- /**
3718
- * While all ports are exposed in prod, a limitation of local dev with docker is that
3719
- * users will have to manually expose ports in their Dockerfile.
3720
- * We want to fail early and clearly if a user tries to develop with a container
3721
- * that has no ports exposed and is definitely not accessible.
3722
- *
3723
- * (A user could still use `getTCPPort()` on a port that is not exposed, but we leave that error for runtime.)
3724
- */
3725
- declare function checkExposedPorts(dockerPath: string, options: ContainerDevOptions): Promise<void>;
3726
3733
  /**
3727
3734
  * Generates a random container build id
3728
3735
  */
@@ -3788,9 +3795,8 @@ declare function pullImage(dockerPath: string, options: Exclude<ContainerDevOpti
3788
3795
  * will be called before starting the local development server, and by a rebuild
3789
3796
  * hotkey during development.
3790
3797
  *
3791
- * Because this runs when local dev starts, we also do some validation here,
3792
- * such as checking if the Docker CLI is installed, and if the container images
3793
- * expose any ports.
3798
+ * Because this runs when local dev starts, it also checks that the Docker CLI
3799
+ * is installed.
3794
3800
  *
3795
3801
  * @param args - Image preparation callbacks, Docker settings, and compliance configuration.
3796
3802
  * @returns Whether image preparation was aborted before completion.
@@ -3880,4 +3886,4 @@ type CreateContainerDevPlanOptions = {
3880
3886
  */
3881
3887
  declare function createContainerDevPlan(options: CreateContainerDevPlanOptions): ContainerDevPlan | undefined;
3882
3888
 
3883
- export { type AccountDefaults, type AccountID, type AccountLimit, type AccountLocation, type AccountLocationLimits, type AccountLocationLimitsAsProperty, type AccountRegistryToken, AccountService, type AddressAssignment, ApiError, type Application, type ApplicationAffinities, ApplicationAffinityColocation, ApplicationAffinityHardwareGeneration, type ApplicationConstraintPop, type ApplicationConstraints, type ApplicationHealth, type ApplicationHealthInstances, type ApplicationID, type ApplicationJob, type ApplicationJobsConfig, ApplicationMutationError, type ApplicationName, type ApplicationNotFoundError, type ApplicationObservability, type ApplicationPriorities, type ApplicationPriority, ApplicationRollout, type ApplicationRolloutActiveGracePeriod, type ApplicationRolloutProgress, type ApplicationSchedulingHint, type ApplicationStatus, ApplicationsService, AssignIPv4, AssignIPv6, type BadRequestError, BadRequestWithCodeError, type BuildArgs, type BuiltContainerImage, type BuiltImage, CancelError, CancelablePromise, type City, type Command, type CompleteAccountCustomer, type CompleteAccountLocationCustomer, type ContainerBuildCommandArgs, type ContainerDevOptions, type ContainerDevPlan, type ContainerDevRuntimeOptions, type ContainerImagePreparation, ContainerImagePreparationStatus, ContainerImagePreparationsService, ContainerNetworkMode, type ContainerNormalizedConfig, type ContainerPushCommandArgs, type ContainersSharedContext, type CreateApplicationBadRequest, type CreateApplicationJobBadRequest, type CreateApplicationJobRequest, type CreateApplicationRequest, CreateApplicationRolloutRequest, type CreateDeploymentBadRequest, type CreateDeploymentV2RequestBody, type CreateDurableObjectApplicationRequest, type CreateImageRegistryRequestBody, type CreateSSHPublicKeyError, type CreateSSHPublicKeyRequestBody, type CustomerImageRegistry, DEFAULT_CONTAINER_EGRESS_INTERCEPTOR_IMAGE, type DNSConfiguration, type DashApplication, type DashApplicationDurableObjectInstance, type DashApplicationInstance, type DashApplicationInstances, type DeleteDeploymentError, type DeleteImageRegistryResponse, type DeploymentAlreadyExists, type DeploymentCheck, type DeploymentCheckHTTP, type DeploymentCheckHTTPRequestBody, DeploymentCheckKind, type DeploymentCheckRequestBody, DeploymentCheckType, type DeploymentCreationError, type DeploymentID, type DeploymentListError, type DeploymentLocation, type DeploymentModificationError, DeploymentMutationError, DeploymentNotFoundError, DeploymentPlacementState, type DeploymentQueuedDetails, DeploymentQueuedReason, type DeploymentReplacementError, DeploymentSchedulingState, type DeploymentSecretMap, type DeploymentState, DeploymentType, type DeploymentV2, type DeploymentVersion, DeploymentsService, Diff, type Disk, type DiskMB, type DiskSizeWithUnit, type DockerfileConfig, type DockerfileContainerConfig, type Domain, type DurableObjectNamespace, DurableObjectStatusHealth, type DurableObjectsConfiguration, type Duration, type EmptyResponse, type Entrypoint, type EnvironmentVariable, type EnvironmentVariableName, type EnvironmentVariableValue, EventName, EventType, type ExecFormParam, ExternalRegistryKind, FUSE_CONTAINER_PRIVILEGES, type GenericErrorDetails, type GenericErrorResponseWithRequestID, type GenericMessageResponse, type GetDeploymentError, type GetPlacementError, HTTPMethod, type IP, type IPAllocation, type IPAllocationConfiguration, type IPAllocationsWithFilter, IPType, type IPV4, IPsService, type ISO8601Timestamp, type Identity, type Image, type ImageRef, ImageRegistriesService, ImageRegistryAlreadyExistsError, type ImageRegistryAuth, type ImageRegistryCredentialsConfiguration, ImageRegistryIsPublic, ImageRegistryNotAllowedError, ImageRegistryNotFoundError, ImageRegistryPermissions, type ImageRegistryProtoDomain, type ImageRegistryProtocol, ImageRegistryProtocolAlreadyExists, ImageRegistryProtocolIsReferencedError, ImageRegistryProtocolNotFound, type ImageRegistryProtocols, type ImageURIConfig, InstanceType, type InstanceTypeOrLimits, type InternalError, type JobEvents, type JobID, type JobNotFoundError, type JobSecretMap, type JobStatus, JobStatusHealth, type JobTimeoutSeconds, JobsService, type Label, type LabelName, type LabelValue, type ListApplications, type ListDeploymentsV2, type ListIPsIsAllocated, type ListPlacements, type ListPlacementsError, type ListSSHPublicKeys, type ListSSHPublicKeysError, type ListSecretsMetadata, type Location, type LocationID, MF_DEV_CONTAINER_PREFIX, type MemorySizeWithUnit, type ModifyApplicationBadRequest, type ModifyApplicationJobBadRequest, type ModifyApplicationJobRequest, type ModifyApplicationRequestBody, type ModifyDeploymentBadRequest, type ModifyDeploymentV2RequestBody, type ModifyMeRequestBody, type ModifySecretRequestBody, type ModifyUserDeploymentConfiguration, type Network, NetworkMode, type NetworkParameters, NodeGroup, type Observability, type ObservabilityLogs, OpenAPI, type OpenAPIConfig, type PaginatedResult, type Placement, type PlacementEvent, type PlacementEvents, type PlacementID, type PlacementNotFoundError, type PlacementStatus, PlacementStatusHealth, type PlacementWithEvents, PlacementsService, type PlainTextSecretValue, type Port, type PortRange, type PortRangeAllocation, type PrepareContainerImageRequestBody, ProvisionerConfiguration, type Ref, type Region, type ReplaceDeploymentRequestBody, type ResolvedContainerDeployment, type ResultInfo, type RolloutID, RolloutStep, type RolloutStepRequest, RolloutsService, type SSHPublicKey, type SSHPublicKeyID, type SSHPublicKeyItem, SSHPublicKeyNotFoundError, type SchedulerDeploymentConfiguration, SchedulingPolicy, type Secret, SecretAccessType, type SecretMap, type SecretMetadata, type SecretName, SecretNameAlreadyExists, SecretNotFound, SecretsService, type SecretsStoreRef, type SharedContainerConfig, SshPublicKeysService, type UnAuthorizedError, type UnixTimestamp, type UnknownAccount, UpdateApplicationRolloutRequest, type UpdateRolloutResponse, type UserDeploymentConfiguration, type UserSSHPublicKey, type VerifyDockerInstalledOptions, type ViteLogger, type WranglerLogger, type WranglerSSHConfig, type WranglerSSHResponse, apply, buildAndMaybePush, buildCommand, buildContainerImages, checkExposedPorts, cleanApplicationFromAPI, cleanForInstanceType, cleanupBuiltImages, cleanupContainers, configRolloutStepsToAPI, configureOpenAPIForContainerPull, containerPrivilegesAllowed, createContainerDevPlan, createDurableObjectNamespaceResolver, deployContainers, dockerBuild, dockerImageInspect, dockerLoginImageRegistry, ensureContainerLimits, ensureImageFitsLimits, fetchPagedListResult, fetchResult, formatError, generateContainerBuildId, getAndValidateRegistryType, getCloudflareContainerRegistry, getCloudflareRegistryWithAccountNamespace, getContainerAccount, getContainerIdsByImageTags, getContainerIdsFromImage, getContainerImageTag, getDevContainerImageName, getDockerHostFromEnv, getDockerSocketFromContext, getEgressInterceptorImage, getEgressInterceptorPlatform, getInstanceTypeUsage, inferInstanceType, initContainersSharedContext, isCloudflareRegistryImage, isDockerRunning, isDockerfileContainerConfig, listDurableObjects, logger, prepareContainerImagesForDev, promiseSpinner, pullEgressInterceptorImage, pullImage, pushBuiltContainerImage, pushCommand, pushImageIfChanged, request, requestPaginated, resolveDockerHost, resolveImageName, runDockerCmd, runDockerCmdWithOutput, sortObjectRecursive, startContainerBuild, stripUndefined, validateAndEncodeGarKey, verifyDockerInstalled };
3889
+ export { type AccountDefaults, type AccountID, type AccountLimit, type AccountLocation, type AccountLocationLimits, type AccountLocationLimitsAsProperty, type AccountRegistryToken, AccountService, type AddressAssignment, ApiError, type Application, type ApplicationAffinities, ApplicationAffinityColocation, ApplicationAffinityHardwareGeneration, type ApplicationConstraintPop, type ApplicationConstraints, type ApplicationHealth, type ApplicationHealthInstances, type ApplicationID, type ApplicationJob, type ApplicationJobsConfig, ApplicationMutationError, type ApplicationName, type ApplicationNotFoundError, type ApplicationObservability, type ApplicationPriorities, type ApplicationPriority, ApplicationRollout, type ApplicationRolloutActiveGracePeriod, type ApplicationRolloutProgress, type ApplicationSchedulingHint, type ApplicationStatus, ApplicationsService, AssignIPv4, AssignIPv6, type BadRequestError, BadRequestWithCodeError, type BuildArgs, type BuiltContainerImage, type BuiltImage, CancelError, CancelablePromise, type City, type Command, type CompleteAccountCustomer, type CompleteAccountLocationCustomer, type ContainerBuildCommandArgs, type ContainerDevOptions, type ContainerDevPlan, type ContainerDevRuntimeOptions, type ContainerImagePreparation, ContainerImagePreparationStatus, ContainerImagePreparationsService, ContainerNetworkMode, type ContainerNormalizedConfig, type ContainerPushCommandArgs, type ContainersSharedContext, type CreateApplicationBadRequest, type CreateApplicationJobBadRequest, type CreateApplicationJobRequest, type CreateApplicationRequest, CreateApplicationRolloutRequest, type CreateDeploymentBadRequest, type CreateDeploymentV2RequestBody, type CreateDurableObjectApplicationRequest, type CreateImageRegistryRequestBody, type CreateSSHPublicKeyError, type CreateSSHPublicKeyRequestBody, type CustomerImageRegistry, DEFAULT_CONTAINER_EGRESS_INTERCEPTOR_IMAGE, type DNSConfiguration, type DashApplication, type DashApplicationDurableObjectInstance, type DashApplicationInstance, type DashApplicationInstances, type DeleteDeploymentError, type DeleteImageRegistryResponse, type DeploymentAlreadyExists, type DeploymentCheck, type DeploymentCheckHTTP, type DeploymentCheckHTTPRequestBody, DeploymentCheckKind, type DeploymentCheckRequestBody, DeploymentCheckType, type DeploymentCreationError, type DeploymentID, type DeploymentListError, type DeploymentLocation, type DeploymentModificationError, DeploymentMutationError, DeploymentNotFoundError, DeploymentPlacementState, type DeploymentQueuedDetails, DeploymentQueuedReason, type DeploymentReplacementError, DeploymentSchedulingState, type DeploymentSecretMap, type DeploymentState, DeploymentType, type DeploymentV2, type DeploymentVersion, DeploymentsService, Diff, type Disk, type DiskMB, type DiskSizeWithUnit, type DockerfileConfig, type DockerfileContainerConfig, type Domain, type DurableObjectNamespace, DurableObjectStatusHealth, type DurableObjectsConfiguration, type Duration, type EmptyResponse, type Entrypoint, type EnvironmentVariable, type EnvironmentVariableName, type EnvironmentVariableValue, EventName, EventType, type ExecFormParam, ExternalRegistryKind, FUSE_CONTAINER_PRIVILEGES, type GenericErrorDetails, type GenericErrorResponseWithRequestID, type GenericMessageResponse, type GetDeploymentError, type GetPlacementError, HTTPMethod, type IP, type IPAllocation, type IPAllocationConfiguration, type IPAllocationsWithFilter, IPType, type IPV4, IPsService, type ISO8601Timestamp, type Identity, type Image, type ImageRef, ImageRegistriesService, ImageRegistryAlreadyExistsError, type ImageRegistryAuth, type ImageRegistryCredentialsConfiguration, ImageRegistryIsPublic, ImageRegistryNotAllowedError, ImageRegistryNotFoundError, ImageRegistryPermissions, type ImageRegistryProtoDomain, type ImageRegistryProtocol, ImageRegistryProtocolAlreadyExists, ImageRegistryProtocolIsReferencedError, ImageRegistryProtocolNotFound, type ImageRegistryProtocols, type ImageURIConfig, InstanceType, type InstanceTypeOrLimits, type InternalError, type JobEvents, type JobID, type JobNotFoundError, type JobSecretMap, type JobStatus, JobStatusHealth, type JobTimeoutSeconds, JobsService, type Label, type LabelName, type LabelValue, type ListApplications, type ListDeploymentsV2, type ListIPsIsAllocated, type ListPlacements, type ListPlacementsError, type ListSSHPublicKeys, type ListSSHPublicKeysError, type ListSecretsMetadata, type Location, type LocationID, MF_DEV_CONTAINER_PREFIX, type MemorySizeWithUnit, type ModifyApplicationBadRequest, type ModifyApplicationJobBadRequest, type ModifyApplicationJobRequest, type ModifyApplicationRequestBody, type ModifyDeploymentBadRequest, type ModifyDeploymentV2RequestBody, type ModifyMeRequestBody, type ModifySecretRequestBody, type ModifyUserDeploymentConfiguration, type Network, NetworkMode, type NetworkParameters, NodeGroup, type Observability, type ObservabilityLogs, OpenAPI, type OpenAPIConfig, type PaginatedResult, type Placement, type PlacementEvent, type PlacementEvents, type PlacementID, type PlacementNotFoundError, type PlacementStatus, PlacementStatusHealth, type PlacementWithEvents, PlacementsService, type PlainTextSecretValue, type Port, type PortRange, type PortRangeAllocation, type PrepareContainerImageRequestBody, ProvisionerConfiguration, type Ref, type Region, type ReplaceDeploymentRequestBody, type ResolvedContainerDeployment, type ResultInfo, type RolloutID, RolloutStep, type RolloutStepRequest, RolloutsService, type SSHPublicKey, type SSHPublicKeyID, type SSHPublicKeyItem, SSHPublicKeyNotFoundError, type SchedulerDeploymentConfiguration, SchedulingPolicy, type Secret, SecretAccessType, type SecretMap, type SecretMetadata, type SecretName, SecretNameAlreadyExists, SecretNotFound, SecretsService, type SecretsStoreRef, type SharedContainerConfig, SshPublicKeysService, type UnAuthorizedError, type UnixTimestamp, type UnknownAccount, UpdateApplicationRolloutRequest, type UpdateRolloutResponse, type UserDeploymentConfiguration, type UserSSHPublicKey, type VerifyDockerInstalledOptions, type ViteLogger, type WranglerLogger, type WranglerSSHConfig, type WranglerSSHResponse, apply, buildAndMaybePush, buildAndWriteContainerOutput, buildCommand, buildContainerImages, cleanApplicationFromAPI, cleanForInstanceType, cleanupBuiltImages, cleanupContainers, configRolloutStepsToAPI, configureOpenAPIForContainerPull, containerPrivilegesAllowed, createContainerDevPlan, createDurableObjectNamespaceResolver, deployContainers, dockerBuild, dockerImageInspect, dockerLoginImageRegistry, ensureContainerLimits, ensureImageFitsLimits, fetchPagedListResult, fetchResult, formatError, generateContainerBuildId, getAndValidateRegistryType, getCloudflareContainerRegistry, getCloudflareRegistryWithAccountNamespace, getContainerAccount, getContainerIdsByImageTags, getContainerIdsFromImage, getContainerImageTag, getDevContainerImageName, getDockerHostFromEnv, getDockerSocketFromContext, getEgressInterceptorImage, getEgressInterceptorPlatform, getInstanceTypeUsage, inferInstanceType, initContainersSharedContext, isCloudflareRegistryImage, isDockerRunning, isDockerfileContainerConfig, listDurableObjects, logger, normalizeContainerImageRepositoryName, prepareContainerImagesForDev, promiseSpinner, pullEgressInterceptorImage, pullImage, pushBuiltContainerImage, pushCommand, pushImageIfChanged, request, requestPaginated, resolveDockerHost, resolveImageName, runDockerCmd, runDockerCmdWithOutput, sortObjectRecursive, startContainerBuild, stripUndefined, validateAndEncodeGarKey, verifyDockerInstalled };
package/dist/index.mjs CHANGED
@@ -1,12 +1,13 @@
1
1
  import { spawn, execFileSync, execFile } from 'node:child_process';
2
- import crypto, { randomUUID, createHash } from 'node:crypto';
2
+ import crypto2, { randomUUID, createHash } from 'node:crypto';
3
3
  import { existsSync, readFileSync } from 'node:fs';
4
- import path, { join } from 'node:path';
4
+ import path2, { join } from 'node:path';
5
5
  import { getDockerPath } from '@cloudflare/workers-utils/docker-path';
6
6
  import { UserError, FatalError } from '@cloudflare/workers-utils/errors';
7
7
  import { isDirectory } from '@cloudflare/workers-utils/fs-helpers';
8
8
  import { COMPLIANCE_REGION_CONFIG_UNKNOWN, getComplianceRegionSubdomain } from '@cloudflare/workers-utils/compliance';
9
9
  import { release } from 'node:os';
10
+ import { writeContainerConfig, cleanBuildOutputDir, normalizeDirectoryName } from '@cloudflare/build-output-utils';
10
11
  import assert from 'node:assert';
11
12
  import { setTimeout } from 'node:timers/promises';
12
13
  import { log, startSection, newline, endSection, updateStatus, success, shapes } from '@cloudflare/cli-shared-helpers';
@@ -204,13 +205,13 @@ var getQueryString = /* @__PURE__ */ __name((params) => {
204
205
  }, "getQueryString");
205
206
  var getUrl = /* @__PURE__ */ __name((config, options) => {
206
207
  const encoder = config.ENCODE_PATH || encodeURI;
207
- const path2 = options.url.replace("{api-version}", config.VERSION).replace(/{(.*?)}/g, (substring, group) => {
208
+ const path3 = options.url.replace("{api-version}", config.VERSION).replace(/{(.*?)}/g, (substring, group) => {
208
209
  if (options.path?.hasOwnProperty(group)) {
209
210
  return encoder(String(options.path[group]));
210
211
  }
211
212
  return substring;
212
213
  });
213
- const url = `${config.BASE}${path2}`;
214
+ const url = `${config.BASE}${path3}`;
214
215
  if (options.query) {
215
216
  return `${url}${getQueryString(options.query)}`;
216
217
  }
@@ -2512,35 +2513,6 @@ async function dockerLoginImageRegistry(pathToDocker, domain) {
2512
2513
  });
2513
2514
  }
2514
2515
  __name(dockerLoginImageRegistry, "dockerLoginImageRegistry");
2515
- async function dockerImageInspect(dockerPath, options) {
2516
- return new Promise((resolve2, reject) => {
2517
- const proc = spawn(
2518
- dockerPath,
2519
- ["image", "inspect", options.imageTag, "--format", options.formatString],
2520
- {
2521
- stdio: ["ignore", "pipe", "pipe"]
2522
- }
2523
- );
2524
- let stdout = "";
2525
- let stderr = "";
2526
- proc.stdout.on("data", (chunk) => stdout += chunk);
2527
- proc.stderr.on("data", (chunk) => stderr += chunk);
2528
- proc.on("close", (code) => {
2529
- if (code !== 0) {
2530
- return reject(
2531
- new UserError(`failed inspecting image locally: ${stderr.trim()}`, {
2532
- telemetryMessage: false
2533
- })
2534
- );
2535
- }
2536
- resolve2(stdout.trim());
2537
- });
2538
- proc.on("error", (err) => reject(err));
2539
- });
2540
- }
2541
- __name(dockerImageInspect, "dockerImageInspect");
2542
-
2543
- // src/utils.ts
2544
2516
  var runDockerCmd = /* @__PURE__ */ __name((dockerPath, args, stdio) => {
2545
2517
  let aborted = false;
2546
2518
  let resolve2;
@@ -2756,22 +2728,6 @@ var getContainerIdsFromImage = /* @__PURE__ */ __name((dockerPath, ancestorImage
2756
2728
  ]);
2757
2729
  return output.split("\n").filter((line) => line.trim());
2758
2730
  }, "getContainerIdsFromImage");
2759
- async function checkExposedPorts(dockerPath, options) {
2760
- const output = await dockerImageInspect(dockerPath, {
2761
- imageTag: options.image_tag,
2762
- formatString: "{{ len .Config.ExposedPorts }}"
2763
- });
2764
- if (output === "0") {
2765
- const containerName = options.image_name === void 0 ? options.class_name : `${options.class_name}.${options.image_name}`;
2766
- throw new UserError(
2767
- `The container "${containerName}" does not expose any ports. In your Dockerfile, please expose any ports you intend to connect to.
2768
- For additional information please see: https://developers.cloudflare.com/containers/local-dev/#exposing-ports.
2769
- `,
2770
- { telemetryMessage: false }
2771
- );
2772
- }
2773
- }
2774
- __name(checkExposedPorts, "checkExposedPorts");
2775
2731
  function generateContainerBuildId() {
2776
2732
  return randomUUID().slice(0, 8);
2777
2733
  }
@@ -2939,7 +2895,6 @@ async function prepareContainerImagesForDev(args) {
2939
2895
  if (aborted) {
2940
2896
  break;
2941
2897
  }
2942
- await checkExposedPorts(dockerPath, options);
2943
2898
  }
2944
2899
  if (!aborted) {
2945
2900
  await pullEgressInterceptorImage(dockerPath);
@@ -3151,6 +3106,33 @@ function validateAndEncodeGarKey(rawKey, expectedEmail) {
3151
3106
  return base64Key;
3152
3107
  }
3153
3108
  __name(validateAndEncodeGarKey, "validateAndEncodeGarKey");
3109
+ async function dockerImageInspect(dockerPath, options) {
3110
+ return new Promise((resolve2, reject) => {
3111
+ const proc = spawn(
3112
+ dockerPath,
3113
+ ["image", "inspect", options.imageTag, "--format", options.formatString],
3114
+ {
3115
+ stdio: ["ignore", "pipe", "pipe"]
3116
+ }
3117
+ );
3118
+ let stdout = "";
3119
+ let stderr = "";
3120
+ proc.stdout.on("data", (chunk) => stdout += chunk);
3121
+ proc.stderr.on("data", (chunk) => stderr += chunk);
3122
+ proc.on("close", (code) => {
3123
+ if (code !== 0) {
3124
+ return reject(
3125
+ new UserError(`failed inspecting image locally: ${stderr.trim()}`, {
3126
+ telemetryMessage: false
3127
+ })
3128
+ );
3129
+ }
3130
+ resolve2(stdout.trim());
3131
+ });
3132
+ proc.on("error", (err) => reject(err));
3133
+ });
3134
+ }
3135
+ __name(dockerImageInspect, "dockerImageInspect");
3154
3136
  var MB = 1e3 * 1e3;
3155
3137
  var MiB = 1024 * 1024;
3156
3138
  var instanceTypes = {
@@ -3323,6 +3305,14 @@ async function getContainerAccount(accountId, complianceConfig) {
3323
3305
  __name(getContainerAccount, "getContainerAccount");
3324
3306
 
3325
3307
  // src/build.ts
3308
+ var MAX_DOCKER_REPOSITORY_NAME_LENGTH = 255;
3309
+ function normalizeContainerImageRepositoryName(value) {
3310
+ return value.toLowerCase().replace(/[^a-z0-9._-]+/g, "-").replace(
3311
+ /[._-]+/g,
3312
+ (separators) => separators === "." || separators === "_" || separators === "__" || /^-+$/.test(separators) ? separators : "-"
3313
+ ).replace(/^[._-]+|[._-]+$/g, "").slice(0, MAX_DOCKER_REPOSITORY_NAME_LENGTH).replace(/[._-]+$/g, "") || "container";
3314
+ }
3315
+ __name(normalizeContainerImageRepositoryName, "normalizeContainerImageRepositoryName");
3326
3316
  function isDockerfileContainerConfig(container) {
3327
3317
  return "dockerfile" in container;
3328
3318
  }
@@ -3693,7 +3683,7 @@ __name(buildAndMaybePush, "buildAndMaybePush");
3693
3683
  async function buildContainerImage(containerConfig, pathToDocker, verifyDockerIsRunning) {
3694
3684
  const localTag = `${getContainerImageRepositoryName(
3695
3685
  containerConfig
3696
- )}:wrangler-${crypto.randomUUID()}`;
3686
+ )}:wrangler-${crypto2.randomUUID()}`;
3697
3687
  logger.log("Building image", localTag);
3698
3688
  try {
3699
3689
  const build = await startContainerBuild({
@@ -3867,6 +3857,209 @@ async function dockerBuild(dockerPath, options) {
3867
3857
  };
3868
3858
  }
3869
3859
  __name(dockerBuild, "dockerBuild");
3860
+ var BUILD_OUTPUT_IMAGE_NAMESPACE = "cloudflare-build";
3861
+ var DOCKER_REPOSITORY_NAME_LENGTH = 255;
3862
+ async function buildAndWriteContainerOutput(options) {
3863
+ const localTags = /* @__PURE__ */ new Set();
3864
+ try {
3865
+ const containers = resolveContainerDirectories(options.containers);
3866
+ await cleanupPreviousBuildOutputImageTags({
3867
+ root: options.root,
3868
+ pathToDocker: options.pathToDocker
3869
+ });
3870
+ const buildId = createBuildId();
3871
+ const dockerfileCount = countDockerfiles(options.containers);
3872
+ if (dockerfileCount > 0) {
3873
+ await verifyDockerInstalled({
3874
+ dockerPath: options.pathToDocker,
3875
+ operation: "building the project",
3876
+ imageNoun: dockerfileCount === 1 ? "the configured image" : "the configured images"
3877
+ });
3878
+ }
3879
+ const outputConfigs = [];
3880
+ try {
3881
+ for (const { config, directoryName } of containers) {
3882
+ outputConfigs.push({
3883
+ root: options.root,
3884
+ directoryName,
3885
+ config: await buildContainerOutputConfig({
3886
+ config,
3887
+ root: options.root,
3888
+ pathToDocker: options.pathToDocker,
3889
+ buildId,
3890
+ localTags
3891
+ })
3892
+ });
3893
+ }
3894
+ } catch (error) {
3895
+ throwBuildError(error);
3896
+ }
3897
+ for (const outputConfig of outputConfigs) {
3898
+ await writeContainerConfig(outputConfig);
3899
+ }
3900
+ } catch (error) {
3901
+ await Promise.allSettled([
3902
+ cleanBuildOutputDir(options.root),
3903
+ cleanupBuiltImages(
3904
+ Array.from(localTags, (localTag) => ({ localTag })),
3905
+ options.pathToDocker
3906
+ )
3907
+ ]);
3908
+ throw error;
3909
+ }
3910
+ }
3911
+ __name(buildAndWriteContainerOutput, "buildAndWriteContainerOutput");
3912
+ function resolveContainerDirectories(containers) {
3913
+ const containerNameByDirectory = /* @__PURE__ */ new Map();
3914
+ return containers.map((config) => {
3915
+ const directoryName = normalizeDirectoryName(config.name);
3916
+ const conflictingName = containerNameByDirectory.get(directoryName);
3917
+ if (conflictingName !== void 0) {
3918
+ throw new UserError(
3919
+ `Container names ${JSON.stringify(conflictingName)} and ${JSON.stringify(config.name)} resolve to the same Build Output directory ${JSON.stringify(directoryName)}. Rename one of the Containers.`,
3920
+ { telemetryMessage: "container build output directory name conflict" }
3921
+ );
3922
+ }
3923
+ containerNameByDirectory.set(directoryName, config.name);
3924
+ return { config, directoryName };
3925
+ });
3926
+ }
3927
+ __name(resolveContainerDirectories, "resolveContainerDirectories");
3928
+ async function buildContainerOutputConfig(options) {
3929
+ if (options.config.schedulingPolicy === "durable-object") {
3930
+ if (options.config.images === void 0) {
3931
+ return { ...options.config, images: void 0 };
3932
+ }
3933
+ const images = {};
3934
+ for (const [imageName, image2] of Object.entries(options.config.images)) {
3935
+ images[imageName] = await buildContainerImage2({
3936
+ image: image2,
3937
+ repositoryName: `${options.config.name}-${imageName}`,
3938
+ root: options.root,
3939
+ pathToDocker: options.pathToDocker,
3940
+ buildId: options.buildId,
3941
+ localTags: options.localTags
3942
+ });
3943
+ }
3944
+ return { ...options.config, images };
3945
+ }
3946
+ const image = await buildContainerImage2({
3947
+ image: options.config.image,
3948
+ repositoryName: options.config.name,
3949
+ root: options.root,
3950
+ pathToDocker: options.pathToDocker,
3951
+ buildId: options.buildId,
3952
+ localTags: options.localTags
3953
+ });
3954
+ return { ...options.config, image };
3955
+ }
3956
+ __name(buildContainerOutputConfig, "buildContainerOutputConfig");
3957
+ async function buildContainerImage2(options) {
3958
+ if ("reference" in options.image) {
3959
+ return { reference: options.image.reference };
3960
+ }
3961
+ const pathToDockerfile = path2.resolve(options.root, options.image.dockerfile);
3962
+ const localTag = createBuildOutputImageTag({
3963
+ root: options.root,
3964
+ repositoryName: options.repositoryName,
3965
+ buildId: options.buildId
3966
+ });
3967
+ if (options.localTags.has(localTag)) {
3968
+ throw new UserError(
3969
+ `Container image name ${JSON.stringify(options.repositoryName)} conflicts with another image after Docker name normalization.`,
3970
+ { telemetryMessage: "container build output image name conflict" }
3971
+ );
3972
+ }
3973
+ const build = await startContainerBuild({
3974
+ build: {
3975
+ tag: localTag,
3976
+ pathToDockerfile,
3977
+ buildContext: options.image.buildContext === void 0 ? path2.dirname(pathToDockerfile) : path2.resolve(options.root, options.image.buildContext),
3978
+ args: options.image.buildVars,
3979
+ platform: "linux/amd64"
3980
+ },
3981
+ pathToDocker: options.pathToDocker,
3982
+ verifyDockerIsRunning: false
3983
+ });
3984
+ await build.ready;
3985
+ options.localTags.add(localTag);
3986
+ return { localReference: localTag };
3987
+ }
3988
+ __name(buildContainerImage2, "buildContainerImage");
3989
+ function createBuildOutputImageTag(options) {
3990
+ const repositoryPrefix = getBuildOutputImageRepositoryPrefix(options.root);
3991
+ const maxNameLength = DOCKER_REPOSITORY_NAME_LENGTH - repositoryPrefix.length;
3992
+ const repositoryName = normalizeContainerImageRepositoryName(
3993
+ options.repositoryName
3994
+ ).slice(0, maxNameLength).replace(/[._-]+$/g, "");
3995
+ return `${repositoryPrefix}${repositoryName}:${options.buildId}`;
3996
+ }
3997
+ __name(createBuildOutputImageTag, "createBuildOutputImageTag");
3998
+ async function cleanupPreviousBuildOutputImageTags(options) {
3999
+ const repositoryPrefix = getBuildOutputImageRepositoryPrefix(options.root);
4000
+ let existingTags;
4001
+ try {
4002
+ const output = runDockerCmdWithOutput(options.pathToDocker, [
4003
+ "image",
4004
+ "ls",
4005
+ "--filter",
4006
+ `reference=${repositoryPrefix}*`,
4007
+ "--format",
4008
+ "{{.Repository}}:{{.Tag}}"
4009
+ ]);
4010
+ existingTags = output === "" ? [] : output.split(/\r?\n/);
4011
+ } catch {
4012
+ return;
4013
+ }
4014
+ if (existingTags.length > 0) {
4015
+ await cleanupBuiltImages(
4016
+ existingTags.map((localTag) => ({ localTag })),
4017
+ options.pathToDocker
4018
+ );
4019
+ }
4020
+ }
4021
+ __name(cleanupPreviousBuildOutputImageTags, "cleanupPreviousBuildOutputImageTags");
4022
+ function getBuildOutputImageRepositoryPrefix(root) {
4023
+ return `${BUILD_OUTPUT_IMAGE_NAMESPACE}/${shortHash(path2.resolve(root))}/`;
4024
+ }
4025
+ __name(getBuildOutputImageRepositoryPrefix, "getBuildOutputImageRepositoryPrefix");
4026
+ function shortHash(value) {
4027
+ return crypto2.createHash("sha256").update(value).digest("hex").slice(0, 12);
4028
+ }
4029
+ __name(shortHash, "shortHash");
4030
+ function createBuildId() {
4031
+ return crypto2.randomUUID().replaceAll("-", "").slice(0, 12);
4032
+ }
4033
+ __name(createBuildId, "createBuildId");
4034
+ function countDockerfiles(containers) {
4035
+ let count = 0;
4036
+ for (const config of containers) {
4037
+ if (config.schedulingPolicy === "durable-object") {
4038
+ count += Object.values(config.images ?? {}).filter(
4039
+ (image) => "dockerfile" in image
4040
+ ).length;
4041
+ } else if ("dockerfile" in config.image) {
4042
+ count++;
4043
+ }
4044
+ }
4045
+ return count;
4046
+ }
4047
+ __name(countDockerfiles, "countDockerfiles");
4048
+ function throwBuildError(error) {
4049
+ if (error instanceof UserError) {
4050
+ throw error;
4051
+ }
4052
+ if (error instanceof Error) {
4053
+ throw new UserError(error.message, {
4054
+ cause: error,
4055
+ telemetryMessage: "container build image operation failed"
4056
+ });
4057
+ }
4058
+ throw new UserError("An unknown error occurred", {
4059
+ telemetryMessage: "container build unknown error"
4060
+ });
4061
+ }
4062
+ __name(throwBuildError, "throwBuildError");
3870
4063
  var Diff = class {
3871
4064
  static {
3872
4065
  __name(this, "Diff");
@@ -4089,11 +4282,11 @@ var Diff = class {
4089
4282
  }) {
4090
4283
  log(this.toString(options));
4091
4284
  }
4092
- #addToPath(path2, added, removed, oldPosInc) {
4093
- const last = path2.lastComponent;
4285
+ #addToPath(path3, added, removed, oldPosInc) {
4286
+ const last = path3.lastComponent;
4094
4287
  if (last && last.added === added && last.removed === removed) {
4095
4288
  return {
4096
- oldPos: path2.oldPos + oldPosInc,
4289
+ oldPos: path3.oldPos + oldPosInc,
4097
4290
  lastComponent: {
4098
4291
  count: last.count + 1,
4099
4292
  added,
@@ -4103,7 +4296,7 @@ var Diff = class {
4103
4296
  };
4104
4297
  }
4105
4298
  return {
4106
- oldPos: path2.oldPos + oldPosInc,
4299
+ oldPos: path3.oldPos + oldPosInc,
4107
4300
  lastComponent: {
4108
4301
  count: 1,
4109
4302
  added,
@@ -4954,8 +5147,8 @@ var configRolloutStepsToAPI = /* @__PURE__ */ __name((rolloutSteps) => {
4954
5147
  return { steps: output };
4955
5148
  }
4956
5149
  }, "configRolloutStepsToAPI");
4957
- var MAX_DOCKER_REPOSITORY_NAME_LENGTH = 255;
4958
- var MAX_NAMED_IMAGE_SLUG_LENGTH = MAX_DOCKER_REPOSITORY_NAME_LENGTH - MF_DEV_CONTAINER_PREFIX.length - 1;
5150
+ var MAX_DOCKER_REPOSITORY_NAME_LENGTH2 = 255;
5151
+ var MAX_NAMED_IMAGE_SLUG_LENGTH = MAX_DOCKER_REPOSITORY_NAME_LENGTH2 - MF_DEV_CONTAINER_PREFIX.length - 1;
4959
5152
  var IMAGE_ID_HASH_LENGTH = 12;
4960
5153
  function getNamedContainerImageTag(className, imageName, containerBuildId) {
4961
5154
  const identity = `${className}\0${imageName}`;
@@ -5007,7 +5200,7 @@ function createContainerDevPlan(options) {
5007
5200
  }
5008
5201
  const className2 = resolvedContainer.class_name;
5009
5202
  const namedOptions = [];
5010
- const baseDir = configPath ? path.dirname(configPath) : process.cwd();
5203
+ const baseDir = configPath ? path2.dirname(configPath) : process.cwd();
5011
5204
  for (const [imageName, image] of Object.entries(container.images ?? {})) {
5012
5205
  const imageTag2 = getNamedContainerImageTag(
5013
5206
  className2,
@@ -5015,10 +5208,10 @@ function createContainerDevPlan(options) {
5015
5208
  requireContainerBuildId(containerBuildId)
5016
5209
  );
5017
5210
  if (image.dockerfile !== void 0) {
5018
- const dockerfile = path.resolve(baseDir, image.dockerfile);
5211
+ const dockerfile = path2.resolve(baseDir, image.dockerfile);
5019
5212
  namedOptions.push({
5020
5213
  dockerfile,
5021
- image_build_context: image.build_context === void 0 ? path.dirname(dockerfile) : path.resolve(baseDir, image.build_context),
5214
+ image_build_context: image.build_context === void 0 ? path2.dirname(dockerfile) : path2.resolve(baseDir, image.build_context),
5022
5215
  image_vars: image.build_vars,
5023
5216
  class_name: className2,
5024
5217
  image_name: imageName,
@@ -5059,7 +5252,7 @@ function createContainerDevPlan(options) {
5059
5252
  if (isDockerfile(container.image, configPath)) {
5060
5253
  containerOptions.push({
5061
5254
  dockerfile: container.image,
5062
- image_build_context: container.image_build_context ?? path.dirname(container.image),
5255
+ image_build_context: container.image_build_context ?? path2.dirname(container.image),
5063
5256
  image_vars: container.image_vars,
5064
5257
  class_name: className,
5065
5258
  image_tag: imageTag
@@ -5076,4 +5269,4 @@ function createContainerDevPlan(options) {
5076
5269
  }
5077
5270
  __name(createContainerDevPlan, "createContainerDevPlan");
5078
5271
 
5079
- export { AccountService, ApiError, ApplicationAffinityColocation, ApplicationAffinityHardwareGeneration, ApplicationMutationError, ApplicationRollout, ApplicationsService, AssignIPv4, AssignIPv6, BadRequestWithCodeError, CancelError, CancelablePromise, ContainerImagePreparationStatus, ContainerImagePreparationsService, ContainerNetworkMode, CreateApplicationRolloutRequest, DEFAULT_CONTAINER_EGRESS_INTERCEPTOR_IMAGE, DeploymentCheckKind, DeploymentCheckType, DeploymentMutationError, DeploymentNotFoundError, DeploymentPlacementState, DeploymentQueuedReason, DeploymentSchedulingState, DeploymentType, DeploymentsService, Diff, DurableObjectStatusHealth, EventName, EventType, ExternalRegistryKind, FUSE_CONTAINER_PRIVILEGES, HTTPMethod, IPType, IPsService, ImageRegistriesService, ImageRegistryAlreadyExistsError, ImageRegistryIsPublic, ImageRegistryNotAllowedError, ImageRegistryNotFoundError, ImageRegistryPermissions, ImageRegistryProtocolAlreadyExists, ImageRegistryProtocolIsReferencedError, ImageRegistryProtocolNotFound, InstanceType, JobStatusHealth, JobsService, MF_DEV_CONTAINER_PREFIX, NetworkMode, NodeGroup, OpenAPI, PlacementStatusHealth, PlacementsService, ProvisionerConfiguration, RolloutStep, RolloutsService, SSHPublicKeyNotFoundError, SchedulingPolicy, SecretAccessType, SecretNameAlreadyExists, SecretNotFound, SecretsService, SshPublicKeysService, UpdateApplicationRolloutRequest, apply, buildAndMaybePush, buildCommand, buildContainerImages, checkExposedPorts, cleanApplicationFromAPI, cleanForInstanceType, cleanupBuiltImages, cleanupContainers, configRolloutStepsToAPI, configureOpenAPIForContainerPull, containerPrivilegesAllowed, createContainerDevPlan, createDurableObjectNamespaceResolver, deployContainers, dockerBuild, dockerImageInspect, dockerLoginImageRegistry, ensureContainerLimits, ensureImageFitsLimits, fetchPagedListResult, fetchResult, formatError, generateContainerBuildId, getAndValidateRegistryType, getCloudflareContainerRegistry, getCloudflareRegistryWithAccountNamespace, getContainerAccount, getContainerIdsByImageTags, getContainerIdsFromImage, getContainerImageTag, getDevContainerImageName, getDockerHostFromEnv, getDockerSocketFromContext, getEgressInterceptorImage, getEgressInterceptorPlatform, getInstanceTypeUsage, inferInstanceType, initContainersSharedContext, isCloudflareRegistryImage, isDockerRunning, isDockerfileContainerConfig, listDurableObjects, logger, prepareContainerImagesForDev, promiseSpinner, pullEgressInterceptorImage, pullImage, pushBuiltContainerImage, pushCommand, pushImageIfChanged, request, requestPaginated, resolveDockerHost, resolveImageName, runDockerCmd, runDockerCmdWithOutput, sortObjectRecursive, startContainerBuild, stripUndefined, validateAndEncodeGarKey, verifyDockerInstalled };
5272
+ export { AccountService, ApiError, ApplicationAffinityColocation, ApplicationAffinityHardwareGeneration, ApplicationMutationError, ApplicationRollout, ApplicationsService, AssignIPv4, AssignIPv6, BadRequestWithCodeError, CancelError, CancelablePromise, ContainerImagePreparationStatus, ContainerImagePreparationsService, ContainerNetworkMode, CreateApplicationRolloutRequest, DEFAULT_CONTAINER_EGRESS_INTERCEPTOR_IMAGE, DeploymentCheckKind, DeploymentCheckType, DeploymentMutationError, DeploymentNotFoundError, DeploymentPlacementState, DeploymentQueuedReason, DeploymentSchedulingState, DeploymentType, DeploymentsService, Diff, DurableObjectStatusHealth, EventName, EventType, ExternalRegistryKind, FUSE_CONTAINER_PRIVILEGES, HTTPMethod, IPType, IPsService, ImageRegistriesService, ImageRegistryAlreadyExistsError, ImageRegistryIsPublic, ImageRegistryNotAllowedError, ImageRegistryNotFoundError, ImageRegistryPermissions, ImageRegistryProtocolAlreadyExists, ImageRegistryProtocolIsReferencedError, ImageRegistryProtocolNotFound, InstanceType, JobStatusHealth, JobsService, MF_DEV_CONTAINER_PREFIX, NetworkMode, NodeGroup, OpenAPI, PlacementStatusHealth, PlacementsService, ProvisionerConfiguration, RolloutStep, RolloutsService, SSHPublicKeyNotFoundError, SchedulingPolicy, SecretAccessType, SecretNameAlreadyExists, SecretNotFound, SecretsService, SshPublicKeysService, UpdateApplicationRolloutRequest, apply, buildAndMaybePush, buildAndWriteContainerOutput, buildCommand, buildContainerImages, cleanApplicationFromAPI, cleanForInstanceType, cleanupBuiltImages, cleanupContainers, configRolloutStepsToAPI, configureOpenAPIForContainerPull, containerPrivilegesAllowed, createContainerDevPlan, createDurableObjectNamespaceResolver, deployContainers, dockerBuild, dockerImageInspect, dockerLoginImageRegistry, ensureContainerLimits, ensureImageFitsLimits, fetchPagedListResult, fetchResult, formatError, generateContainerBuildId, getAndValidateRegistryType, getCloudflareContainerRegistry, getCloudflareRegistryWithAccountNamespace, getContainerAccount, getContainerIdsByImageTags, getContainerIdsFromImage, getContainerImageTag, getDevContainerImageName, getDockerHostFromEnv, getDockerSocketFromContext, getEgressInterceptorImage, getEgressInterceptorPlatform, getInstanceTypeUsage, inferInstanceType, initContainersSharedContext, isCloudflareRegistryImage, isDockerRunning, isDockerfileContainerConfig, listDurableObjects, logger, normalizeContainerImageRepositoryName, prepareContainerImagesForDev, promiseSpinner, pullEgressInterceptorImage, pullImage, pushBuiltContainerImage, pushCommand, pushImageIfChanged, request, requestPaginated, resolveDockerHost, resolveImageName, runDockerCmd, runDockerCmdWithOutput, sortObjectRecursive, startContainerBuild, stripUndefined, validateAndEncodeGarKey, verifyDockerInstalled };
@@ -1 +1 @@
1
- {"inputs":{"src/client/core/ApiError.ts":{"bytes":686,"imports":[{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/core/CancelablePromise.ts":{"bytes":3230,"imports":[{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/core/OpenAPI.ts":{"bytes":896,"imports":[],"format":"esm"},"src/client/core/request.ts":{"bytes":12866,"imports":[{"path":"src/client/core/ApiError.ts","kind":"import-statement","original":"./ApiError"},{"path":"src/client/core/CancelablePromise.ts","kind":"import-statement","original":"./CancelablePromise"},{"path":"./OpenAPI","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/models/ApplicationAffinityColocation.ts":{"bytes":450,"imports":[],"format":"esm"},"src/client/models/ApplicationAffinityHardwareGeneration.ts":{"bytes":304,"imports":[],"format":"esm"},"src/client/models/ApplicationMutationError.ts":{"bytes":960,"imports":[],"format":"esm"},"src/client/models/ApplicationRollout.ts":{"bytes":2627,"imports":[],"format":"esm"},"src/client/models/AssignIPv4.ts":{"bytes":163,"imports":[],"format":"esm"},"src/client/models/AssignIPv6.ts":{"bytes":163,"imports":[],"format":"esm"},"src/client/models/BadRequestWithCodeError.ts":{"bytes":559,"imports":[],"format":"esm"},"src/client/models/ContainerNetworkMode.ts":{"bytes":679,"imports":[],"format":"esm"},"src/client/models/ContainerImagePreparationStatus.ts":{"bytes":176,"imports":[],"format":"esm"},"src/client/models/CreateApplicationRolloutRequest.ts":{"bytes":2341,"imports":[],"format":"esm"},"src/client/models/DeploymentCheckKind.ts":{"bytes":144,"imports":[],"format":"esm"},"src/client/models/DeploymentCheckType.ts":{"bytes":136,"imports":[],"format":"esm"},"src/client/models/DeploymentMutationError.ts":{"bytes":542,"imports":[],"format":"esm"},"src/client/models/DeploymentNotFoundError.ts":{"bytes":357,"imports":[],"format":"esm"},"src/client/models/DeploymentPlacementState.ts":{"bytes":258,"imports":[],"format":"esm"},"src/client/models/DeploymentQueuedReason.ts":{"bytes":246,"imports":[],"format":"esm"},"src/client/models/DeploymentSchedulingState.ts":{"bytes":212,"imports":[],"format":"esm"},"src/client/models/DeploymentType.ts":{"bytes":943,"imports":[],"format":"esm"},"src/client/models/DurableObjectStatusHealth.ts":{"bytes":426,"imports":[],"format":"esm"},"src/client/models/EventName.ts":{"bytes":2451,"imports":[],"format":"esm"},"src/client/models/EventType.ts":{"bytes":204,"imports":[],"format":"esm"},"src/client/models/ExternalRegistryKind.ts":{"bytes":229,"imports":[],"format":"esm"},"src/client/models/HTTPMethod.ts":{"bytes":284,"imports":[],"format":"esm"},"src/client/models/ImageRegistryAlreadyExistsError.ts":{"bytes":574,"imports":[],"format":"esm"},"src/client/models/ImageRegistryIsPublic.ts":{"bytes":364,"imports":[],"format":"esm"},"src/client/models/ImageRegistryNotAllowedError.ts":{"bytes":598,"imports":[],"format":"esm"},"src/client/models/ImageRegistryNotFoundError.ts":{"bytes":333,"imports":[],"format":"esm"},"src/client/models/ImageRegistryPermissions.ts":{"bytes":175,"imports":[],"format":"esm"},"src/client/models/ImageRegistryProtocolAlreadyExists.ts":{"bytes":340,"imports":[],"format":"esm"},"src/client/models/ImageRegistryProtocolIsReferencedError.ts":{"bytes":441,"imports":[],"format":"esm"},"src/client/models/ImageRegistryProtocolNotFound.ts":{"bytes":369,"imports":[],"format":"esm"},"src/client/models/InstanceType.ts":{"bytes":1084,"imports":[],"format":"esm"},"src/client/models/IPType.ts":{"bytes":171,"imports":[],"format":"esm"},"src/client/models/JobStatusHealth.ts":{"bytes":740,"imports":[],"format":"esm"},"src/client/models/NetworkMode.ts":{"bytes":204,"imports":[],"format":"esm"},"src/client/models/NodeGroup.ts":{"bytes":335,"imports":[],"format":"esm"},"src/client/models/PlacementStatusHealth.ts":{"bytes":569,"imports":[],"format":"esm"},"src/client/models/ProvisionerConfiguration.ts":{"bytes":389,"imports":[],"format":"esm"},"src/client/models/RolloutStep.ts":{"bytes":1016,"imports":[],"format":"esm"},"src/client/models/SchedulingPolicy.ts":{"bytes":304,"imports":[],"format":"esm"},"src/client/models/SecretAccessType.ts":{"bytes":239,"imports":[],"format":"esm"},"src/client/models/SecretNameAlreadyExists.ts":{"bytes":546,"imports":[],"format":"esm"},"src/client/models/SecretNotFound.ts":{"bytes":288,"imports":[],"format":"esm"},"src/client/models/SSHPublicKeyNotFoundError.ts":{"bytes":330,"imports":[],"format":"esm"},"src/client/models/UpdateApplicationRolloutRequest.ts":{"bytes":913,"imports":[],"format":"esm"},"src/client/services/AccountService.ts":{"bytes":1535,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/ApplicationsService.ts":{"bytes":17858,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/ContainerImagePreparationsService.ts":{"bytes":1064,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/DeploymentsService.ts":{"bytes":9316,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/ImageRegistriesService.ts":{"bytes":6457,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/IPsService.ts":{"bytes":1441,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/JobsService.ts":{"bytes":4599,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/PlacementsService.ts":{"bytes":2733,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/RolloutsService.ts":{"bytes":4854,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/SecretsService.ts":{"bytes":3305,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/SshPublicKeysService.ts":{"bytes":2261,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/index.ts":{"bytes":16133,"imports":[{"path":"src/client/core/ApiError.ts","kind":"import-statement","original":"./core/ApiError"},{"path":"src/client/core/CancelablePromise.ts","kind":"import-statement","original":"./core/CancelablePromise"},{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"./core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"./core/request"},{"path":"src/client/models/ApplicationAffinityColocation.ts","kind":"import-statement","original":"./models/ApplicationAffinityColocation"},{"path":"src/client/models/ApplicationAffinityHardwareGeneration.ts","kind":"import-statement","original":"./models/ApplicationAffinityHardwareGeneration"},{"path":"src/client/models/ApplicationMutationError.ts","kind":"import-statement","original":"./models/ApplicationMutationError"},{"path":"src/client/models/ApplicationRollout.ts","kind":"import-statement","original":"./models/ApplicationRollout"},{"path":"src/client/models/AssignIPv4.ts","kind":"import-statement","original":"./models/AssignIPv4"},{"path":"src/client/models/AssignIPv6.ts","kind":"import-statement","original":"./models/AssignIPv6"},{"path":"src/client/models/BadRequestWithCodeError.ts","kind":"import-statement","original":"./models/BadRequestWithCodeError"},{"path":"src/client/models/ContainerNetworkMode.ts","kind":"import-statement","original":"./models/ContainerNetworkMode"},{"path":"src/client/models/ContainerImagePreparationStatus.ts","kind":"import-statement","original":"./models/ContainerImagePreparationStatus"},{"path":"src/client/models/CreateApplicationRolloutRequest.ts","kind":"import-statement","original":"./models/CreateApplicationRolloutRequest"},{"path":"src/client/models/DeploymentCheckKind.ts","kind":"import-statement","original":"./models/DeploymentCheckKind"},{"path":"src/client/models/DeploymentCheckType.ts","kind":"import-statement","original":"./models/DeploymentCheckType"},{"path":"src/client/models/DeploymentMutationError.ts","kind":"import-statement","original":"./models/DeploymentMutationError"},{"path":"src/client/models/DeploymentNotFoundError.ts","kind":"import-statement","original":"./models/DeploymentNotFoundError"},{"path":"src/client/models/DeploymentPlacementState.ts","kind":"import-statement","original":"./models/DeploymentPlacementState"},{"path":"src/client/models/DeploymentQueuedReason.ts","kind":"import-statement","original":"./models/DeploymentQueuedReason"},{"path":"src/client/models/DeploymentSchedulingState.ts","kind":"import-statement","original":"./models/DeploymentSchedulingState"},{"path":"src/client/models/DeploymentType.ts","kind":"import-statement","original":"./models/DeploymentType"},{"path":"src/client/models/DurableObjectStatusHealth.ts","kind":"import-statement","original":"./models/DurableObjectStatusHealth"},{"path":"src/client/models/EventName.ts","kind":"import-statement","original":"./models/EventName"},{"path":"src/client/models/EventType.ts","kind":"import-statement","original":"./models/EventType"},{"path":"src/client/models/ExternalRegistryKind.ts","kind":"import-statement","original":"./models/ExternalRegistryKind"},{"path":"src/client/models/HTTPMethod.ts","kind":"import-statement","original":"./models/HTTPMethod"},{"path":"src/client/models/ImageRegistryAlreadyExistsError.ts","kind":"import-statement","original":"./models/ImageRegistryAlreadyExistsError"},{"path":"src/client/models/ImageRegistryIsPublic.ts","kind":"import-statement","original":"./models/ImageRegistryIsPublic"},{"path":"src/client/models/ImageRegistryNotAllowedError.ts","kind":"import-statement","original":"./models/ImageRegistryNotAllowedError"},{"path":"src/client/models/ImageRegistryNotFoundError.ts","kind":"import-statement","original":"./models/ImageRegistryNotFoundError"},{"path":"src/client/models/ImageRegistryPermissions.ts","kind":"import-statement","original":"./models/ImageRegistryPermissions"},{"path":"src/client/models/ImageRegistryProtocolAlreadyExists.ts","kind":"import-statement","original":"./models/ImageRegistryProtocolAlreadyExists"},{"path":"src/client/models/ImageRegistryProtocolIsReferencedError.ts","kind":"import-statement","original":"./models/ImageRegistryProtocolIsReferencedError"},{"path":"src/client/models/ImageRegistryProtocolNotFound.ts","kind":"import-statement","original":"./models/ImageRegistryProtocolNotFound"},{"path":"src/client/models/InstanceType.ts","kind":"import-statement","original":"./models/InstanceType"},{"path":"src/client/models/IPType.ts","kind":"import-statement","original":"./models/IPType"},{"path":"src/client/models/JobStatusHealth.ts","kind":"import-statement","original":"./models/JobStatusHealth"},{"path":"src/client/models/NetworkMode.ts","kind":"import-statement","original":"./models/NetworkMode"},{"path":"src/client/models/NodeGroup.ts","kind":"import-statement","original":"./models/NodeGroup"},{"path":"src/client/models/PlacementStatusHealth.ts","kind":"import-statement","original":"./models/PlacementStatusHealth"},{"path":"src/client/models/ProvisionerConfiguration.ts","kind":"import-statement","original":"./models/ProvisionerConfiguration"},{"path":"src/client/models/RolloutStep.ts","kind":"import-statement","original":"./models/RolloutStep"},{"path":"src/client/models/SchedulingPolicy.ts","kind":"import-statement","original":"./models/SchedulingPolicy"},{"path":"src/client/models/SecretAccessType.ts","kind":"import-statement","original":"./models/SecretAccessType"},{"path":"src/client/models/SecretNameAlreadyExists.ts","kind":"import-statement","original":"./models/SecretNameAlreadyExists"},{"path":"src/client/models/SecretNotFound.ts","kind":"import-statement","original":"./models/SecretNotFound"},{"path":"src/client/models/SSHPublicKeyNotFoundError.ts","kind":"import-statement","original":"./models/SSHPublicKeyNotFoundError"},{"path":"src/client/models/UpdateApplicationRolloutRequest.ts","kind":"import-statement","original":"./models/UpdateApplicationRolloutRequest"},{"path":"src/client/services/AccountService.ts","kind":"import-statement","original":"./services/AccountService"},{"path":"src/client/services/ApplicationsService.ts","kind":"import-statement","original":"./services/ApplicationsService"},{"path":"src/client/services/ContainerImagePreparationsService.ts","kind":"import-statement","original":"./services/ContainerImagePreparationsService"},{"path":"src/client/services/DeploymentsService.ts","kind":"import-statement","original":"./services/DeploymentsService"},{"path":"src/client/services/ImageRegistriesService.ts","kind":"import-statement","original":"./services/ImageRegistriesService"},{"path":"src/client/services/IPsService.ts","kind":"import-statement","original":"./services/IPsService"},{"path":"src/client/services/JobsService.ts","kind":"import-statement","original":"./services/JobsService"},{"path":"src/client/services/PlacementsService.ts","kind":"import-statement","original":"./services/PlacementsService"},{"path":"src/client/services/RolloutsService.ts","kind":"import-statement","original":"./services/RolloutsService"},{"path":"src/client/services/SecretsService.ts","kind":"import-statement","original":"./services/SecretsService"},{"path":"src/client/services/SshPublicKeysService.ts","kind":"import-statement","original":"./services/SshPublicKeysService"}],"format":"esm"},"src/context.ts":{"bytes":901,"imports":[{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/registry.ts":{"bytes":790,"imports":[{"path":"src/knobs.ts","kind":"import-statement","original":"./knobs"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/knobs.ts":{"bytes":1440,"imports":[{"path":"@cloudflare/workers-utils/compliance","kind":"import-statement","external":true},{"path":"src/registry.ts","kind":"import-statement","original":"./registry"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/login.ts":{"bytes":1747,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"./client"},{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"./client/core/OpenAPI"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/inspect.ts":{"bytes":886,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":14079,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"src/inspect.ts","kind":"import-statement","original":"./inspect"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/images.ts":{"bytes":15535,"imports":[{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"src/build.ts","kind":"import-statement","original":"./build"},{"path":"src/client/models/ExternalRegistryKind.ts","kind":"import-statement","original":"./client/models/ExternalRegistryKind"},{"path":"src/knobs.ts","kind":"import-statement","original":"./knobs"},{"path":"src/login.ts","kind":"import-statement","original":"./login"},{"path":"src/registry.ts","kind":"import-statement","original":"./registry"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/limits.ts":{"bytes":6884,"imports":[{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"./client"},{"path":"src/context.ts","kind":"import-statement","original":"./context"},{"path":"src/inspect.ts","kind":"import-statement","original":"./inspect"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/build.ts":{"bytes":24295,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/docker-path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/fs-helpers","kind":"import-statement","external":true},{"path":"src/context.ts","kind":"import-statement","original":"./context"},{"path":"src/images.ts","kind":"import-statement","original":"./images"},{"path":"src/inspect.ts","kind":"import-statement","original":"./inspect"},{"path":"src/knobs.ts","kind":"import-statement","original":"./knobs"},{"path":"src/limits.ts","kind":"import-statement","original":"./limits"},{"path":"src/login.ts","kind":"import-statement","original":"./login"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/diff.ts":{"bytes":15139,"imports":[{"path":"@cloudflare/cli-shared-helpers","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers/colors","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/object.ts":{"bytes":1435,"imports":[{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/spinner.ts":{"bytes":434,"imports":[{"path":"@cloudflare/cli-shared-helpers/interactive","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/deploy.ts":{"bytes":32106,"imports":[{"path":"node:assert","kind":"import-statement","external":true},{"path":"node:timers/promises","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers/colors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"./client"},{"path":"src/context.ts","kind":"import-statement","original":"./context"},{"path":"src/diff.ts","kind":"import-statement","original":"./diff"},{"path":"src/images.ts","kind":"import-statement","original":"./images"},{"path":"src/limits.ts","kind":"import-statement","original":"./limits"},{"path":"src/object.ts","kind":"import-statement","original":"./object"},{"path":"src/spinner.ts","kind":"import-statement","original":"./spinner"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/types.ts":{"bytes":3964,"imports":[],"format":"esm"},"src/dev-options.ts":{"bytes":5572,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils","kind":"import-statement","external":true},{"path":"src/knobs.ts","kind":"import-statement","original":"./knobs"},{"path":"src/registry.ts","kind":"import-statement","original":"./registry"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"index.ts":{"bytes":536,"imports":[{"path":"src/client/index.ts","kind":"import-statement","original":"./src/client"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"./src/client/core/request"},{"path":"src/build.ts","kind":"import-statement","original":"./src/build"},{"path":"src/context.ts","kind":"import-statement","original":"./src/context"},{"path":"src/deploy.ts","kind":"import-statement","original":"./src/deploy"},{"path":"src/diff.ts","kind":"import-statement","original":"./src/diff"},{"path":"src/login.ts","kind":"import-statement","original":"./src/login"},{"path":"src/knobs.ts","kind":"import-statement","original":"./src/knobs"},{"path":"src/limits.ts","kind":"import-statement","original":"./src/limits"},{"path":"src/object.ts","kind":"import-statement","original":"./src/object"},{"path":"src/utils.ts","kind":"import-statement","original":"./src/utils"},{"path":"src/types.ts","kind":"import-statement","original":"./src/types"},{"path":"src/inspect.ts","kind":"import-statement","original":"./src/inspect"},{"path":"src/registry.ts","kind":"import-statement","original":"./src/registry"},{"path":"src/images.ts","kind":"import-statement","original":"./src/images"},{"path":"src/spinner.ts","kind":"import-statement","original":"./src/spinner"},{"path":"src/dev-options.ts","kind":"import-statement","original":"./src/dev-options"}],"format":"esm"}},"outputs":{"dist/index.mjs":{"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/docker-path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/fs-helpers","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/compliance","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"node:assert","kind":"import-statement","external":true},{"path":"node:timers/promises","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers/colors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers/colors","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers/interactive","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils","kind":"import-statement","external":true}],"exports":["AccountService","ApiError","ApplicationAffinityColocation","ApplicationAffinityHardwareGeneration","ApplicationMutationError","ApplicationRollout","ApplicationsService","AssignIPv4","AssignIPv6","BadRequestWithCodeError","CancelError","CancelablePromise","ContainerImagePreparationStatus","ContainerImagePreparationsService","ContainerNetworkMode","CreateApplicationRolloutRequest","DEFAULT_CONTAINER_EGRESS_INTERCEPTOR_IMAGE","DeploymentCheckKind","DeploymentCheckType","DeploymentMutationError","DeploymentNotFoundError","DeploymentPlacementState","DeploymentQueuedReason","DeploymentSchedulingState","DeploymentType","DeploymentsService","Diff","DurableObjectStatusHealth","EventName","EventType","ExternalRegistryKind","FUSE_CONTAINER_PRIVILEGES","HTTPMethod","IPType","IPsService","ImageRegistriesService","ImageRegistryAlreadyExistsError","ImageRegistryIsPublic","ImageRegistryNotAllowedError","ImageRegistryNotFoundError","ImageRegistryPermissions","ImageRegistryProtocolAlreadyExists","ImageRegistryProtocolIsReferencedError","ImageRegistryProtocolNotFound","InstanceType","JobStatusHealth","JobsService","MF_DEV_CONTAINER_PREFIX","NetworkMode","NodeGroup","OpenAPI","PlacementStatusHealth","PlacementsService","ProvisionerConfiguration","RolloutStep","RolloutsService","SSHPublicKeyNotFoundError","SchedulingPolicy","SecretAccessType","SecretNameAlreadyExists","SecretNotFound","SecretsService","SshPublicKeysService","UpdateApplicationRolloutRequest","apply","buildAndMaybePush","buildCommand","buildContainerImages","checkExposedPorts","cleanApplicationFromAPI","cleanForInstanceType","cleanupBuiltImages","cleanupContainers","configRolloutStepsToAPI","configureOpenAPIForContainerPull","containerPrivilegesAllowed","createContainerDevPlan","createDurableObjectNamespaceResolver","deployContainers","dockerBuild","dockerImageInspect","dockerLoginImageRegistry","ensureContainerLimits","ensureImageFitsLimits","fetchPagedListResult","fetchResult","formatError","generateContainerBuildId","getAndValidateRegistryType","getCloudflareContainerRegistry","getCloudflareRegistryWithAccountNamespace","getContainerAccount","getContainerIdsByImageTags","getContainerIdsFromImage","getContainerImageTag","getDevContainerImageName","getDockerHostFromEnv","getDockerSocketFromContext","getEgressInterceptorImage","getEgressInterceptorPlatform","getInstanceTypeUsage","inferInstanceType","initContainersSharedContext","isCloudflareRegistryImage","isDockerRunning","isDockerfileContainerConfig","listDurableObjects","logger","prepareContainerImagesForDev","promiseSpinner","pullEgressInterceptorImage","pullImage","pushBuiltContainerImage","pushCommand","pushImageIfChanged","request","requestPaginated","resolveDockerHost","resolveImageName","runDockerCmd","runDockerCmdWithOutput","sortObjectRecursive","startContainerBuild","stripUndefined","validateAndEncodeGarKey","verifyDockerInstalled"],"entryPoint":"index.ts","inputs":{"src/client/core/ApiError.ts":{"bytesInOutput":399},"src/client/index.ts":{"bytesInOutput":0},"src/client/core/CancelablePromise.ts":{"bytesInOutput":2718},"src/client/core/OpenAPI.ts":{"bytesInOutput":220},"src/client/core/request.ts":{"bytesInOutput":10965},"src/client/models/ApplicationAffinityColocation.ts":{"bytesInOutput":236},"src/client/models/ApplicationAffinityHardwareGeneration.ts":{"bytesInOutput":310},"src/client/models/ApplicationMutationError.ts":{"bytesInOutput":1249},"src/client/models/ApplicationRollout.ts":{"bytesInOutput":815},"src/client/models/AssignIPv4.ts":{"bytesInOutput":211},"src/client/models/AssignIPv6.ts":{"bytesInOutput":211},"src/client/models/BadRequestWithCodeError.ts":{"bytesInOutput":291},"src/client/models/ContainerNetworkMode.ts":{"bytesInOutput":293},"src/client/models/ContainerImagePreparationStatus.ts":{"bytesInOutput":350},"src/client/models/CreateApplicationRolloutRequest.ts":{"bytesInOutput":1094},"src/client/models/DeploymentCheckKind.ts":{"bytesInOutput":221},"src/client/models/DeploymentCheckType.ts":{"bytesInOutput":213},"src/client/models/DeploymentMutationError.ts":{"bytesInOutput":643},"src/client/models/DeploymentNotFoundError.ts":{"bytesInOutput":303},"src/client/models/DeploymentPlacementState.ts":{"bytesInOutput":365},"src/client/models/DeploymentQueuedReason.ts":{"bytesInOutput":279},"src/client/models/DeploymentSchedulingState.ts":{"bytesInOutput":265},"src/client/models/DeploymentType.ts":{"bytesInOutput":247},"src/client/models/DurableObjectStatusHealth.ts":{"bytesInOutput":277},"src/client/models/EventName.ts":{"bytesInOutput":991},"src/client/models/EventType.ts":{"bytesInOutput":276},"src/client/models/ExternalRegistryKind.ts":{"bytesInOutput":270},"src/client/models/HTTPMethod.ts":{"bytesInOutput":329},"src/client/models/ImageRegistryAlreadyExistsError.ts":{"bytesInOutput":369},"src/client/models/ImageRegistryIsPublic.ts":{"bytesInOutput":299},"src/client/models/ImageRegistryNotAllowedError.ts":{"bytesInOutput":345},"src/client/models/ImageRegistryNotFoundError.ts":{"bytesInOutput":329},"src/client/models/ImageRegistryPermissions.ts":{"bytesInOutput":307},"src/client/models/ImageRegistryProtocolAlreadyExists.ts":{"bytesInOutput":405},"src/client/models/ImageRegistryProtocolIsReferencedError.ts":{"bytesInOutput":421},"src/client/models/ImageRegistryProtocolNotFound.ts":{"bytesInOutput":365},"src/client/models/InstanceType.ts":{"bytesInOutput":433},"src/client/models/IPType.ts":{"bytesInOutput":129},"src/client/models/JobStatusHealth.ts":{"bytesInOutput":332},"src/client/models/NetworkMode.ts":{"bytesInOutput":198},"src/client/models/NodeGroup.ts":{"bytesInOutput":173},"src/client/models/PlacementStatusHealth.ts":{"bytesInOutput":437},"src/client/models/ProvisionerConfiguration.ts":{"bytesInOutput":309},"src/client/models/RolloutStep.ts":{"bytesInOutput":373},"src/client/models/SchedulingPolicy.ts":{"bytesInOutput":395},"src/client/models/SecretAccessType.ts":{"bytesInOutput":157},"src/client/models/SecretNameAlreadyExists.ts":{"bytesInOutput":315},"src/client/models/SecretNotFound.ts":{"bytesInOutput":251},"src/client/models/SSHPublicKeyNotFoundError.ts":{"bytesInOutput":323},"src/client/models/UpdateApplicationRolloutRequest.ts":{"bytesInOutput":397},"src/client/services/AccountService.ts":{"bytesInOutput":1131},"src/client/services/ApplicationsService.ts":{"bytesInOutput":14854},"src/client/services/ContainerImagePreparationsService.ts":{"bytesInOutput":658},"src/client/services/DeploymentsService.ts":{"bytesInOutput":7677},"src/client/services/ImageRegistriesService.ts":{"bytesInOutput":5310},"src/client/services/IPsService.ts":{"bytesInOutput":844},"src/client/services/JobsService.ts":{"bytesInOutput":3741},"src/client/services/PlacementsService.ts":{"bytesInOutput":2069},"src/client/services/RolloutsService.ts":{"bytesInOutput":3924},"src/client/services/SecretsService.ts":{"bytesInOutput":2617},"src/client/services/SshPublicKeysService.ts":{"bytesInOutput":1693},"index.ts":{"bytesInOutput":0},"src/build.ts":{"bytesInOutput":17487},"src/context.ts":{"bytesInOutput":714},"src/images.ts":{"bytesInOutput":11463},"src/knobs.ts":{"bytesInOutput":1075},"src/registry.ts":{"bytesInOutput":292},"src/login.ts":{"bytesInOutput":1525},"src/utils.ts":{"bytesInOutput":9403},"src/inspect.ts":{"bytesInOutput":943},"src/limits.ts":{"bytesInOutput":5446},"src/deploy.ts":{"bytesInOutput":26931},"src/diff.ts":{"bytesInOutput":10090},"src/object.ts":{"bytesInOutput":984},"src/spinner.ts":{"bytesInOutput":422},"src/dev-options.ts":{"bytesInOutput":4838}},"bytes":173481}}}
1
+ {"inputs":{"src/client/core/ApiError.ts":{"bytes":686,"imports":[{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/core/CancelablePromise.ts":{"bytes":3230,"imports":[{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/core/OpenAPI.ts":{"bytes":896,"imports":[],"format":"esm"},"src/client/core/request.ts":{"bytes":12866,"imports":[{"path":"src/client/core/ApiError.ts","kind":"import-statement","original":"./ApiError"},{"path":"src/client/core/CancelablePromise.ts","kind":"import-statement","original":"./CancelablePromise"},{"path":"./OpenAPI","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/models/ApplicationAffinityColocation.ts":{"bytes":450,"imports":[],"format":"esm"},"src/client/models/ApplicationAffinityHardwareGeneration.ts":{"bytes":304,"imports":[],"format":"esm"},"src/client/models/ApplicationMutationError.ts":{"bytes":960,"imports":[],"format":"esm"},"src/client/models/ApplicationRollout.ts":{"bytes":2627,"imports":[],"format":"esm"},"src/client/models/AssignIPv4.ts":{"bytes":163,"imports":[],"format":"esm"},"src/client/models/AssignIPv6.ts":{"bytes":163,"imports":[],"format":"esm"},"src/client/models/BadRequestWithCodeError.ts":{"bytes":559,"imports":[],"format":"esm"},"src/client/models/ContainerNetworkMode.ts":{"bytes":679,"imports":[],"format":"esm"},"src/client/models/ContainerImagePreparationStatus.ts":{"bytes":176,"imports":[],"format":"esm"},"src/client/models/CreateApplicationRolloutRequest.ts":{"bytes":2341,"imports":[],"format":"esm"},"src/client/models/DeploymentCheckKind.ts":{"bytes":144,"imports":[],"format":"esm"},"src/client/models/DeploymentCheckType.ts":{"bytes":136,"imports":[],"format":"esm"},"src/client/models/DeploymentMutationError.ts":{"bytes":542,"imports":[],"format":"esm"},"src/client/models/DeploymentNotFoundError.ts":{"bytes":357,"imports":[],"format":"esm"},"src/client/models/DeploymentPlacementState.ts":{"bytes":258,"imports":[],"format":"esm"},"src/client/models/DeploymentQueuedReason.ts":{"bytes":246,"imports":[],"format":"esm"},"src/client/models/DeploymentSchedulingState.ts":{"bytes":212,"imports":[],"format":"esm"},"src/client/models/DeploymentType.ts":{"bytes":943,"imports":[],"format":"esm"},"src/client/models/DurableObjectStatusHealth.ts":{"bytes":426,"imports":[],"format":"esm"},"src/client/models/EventName.ts":{"bytes":2451,"imports":[],"format":"esm"},"src/client/models/EventType.ts":{"bytes":204,"imports":[],"format":"esm"},"src/client/models/ExternalRegistryKind.ts":{"bytes":229,"imports":[],"format":"esm"},"src/client/models/HTTPMethod.ts":{"bytes":284,"imports":[],"format":"esm"},"src/client/models/ImageRegistryAlreadyExistsError.ts":{"bytes":574,"imports":[],"format":"esm"},"src/client/models/ImageRegistryIsPublic.ts":{"bytes":364,"imports":[],"format":"esm"},"src/client/models/ImageRegistryNotAllowedError.ts":{"bytes":598,"imports":[],"format":"esm"},"src/client/models/ImageRegistryNotFoundError.ts":{"bytes":333,"imports":[],"format":"esm"},"src/client/models/ImageRegistryPermissions.ts":{"bytes":175,"imports":[],"format":"esm"},"src/client/models/ImageRegistryProtocolAlreadyExists.ts":{"bytes":340,"imports":[],"format":"esm"},"src/client/models/ImageRegistryProtocolIsReferencedError.ts":{"bytes":441,"imports":[],"format":"esm"},"src/client/models/ImageRegistryProtocolNotFound.ts":{"bytes":369,"imports":[],"format":"esm"},"src/client/models/InstanceType.ts":{"bytes":1084,"imports":[],"format":"esm"},"src/client/models/IPType.ts":{"bytes":171,"imports":[],"format":"esm"},"src/client/models/JobStatusHealth.ts":{"bytes":740,"imports":[],"format":"esm"},"src/client/models/NetworkMode.ts":{"bytes":204,"imports":[],"format":"esm"},"src/client/models/NodeGroup.ts":{"bytes":335,"imports":[],"format":"esm"},"src/client/models/PlacementStatusHealth.ts":{"bytes":569,"imports":[],"format":"esm"},"src/client/models/ProvisionerConfiguration.ts":{"bytes":389,"imports":[],"format":"esm"},"src/client/models/RolloutStep.ts":{"bytes":1016,"imports":[],"format":"esm"},"src/client/models/SchedulingPolicy.ts":{"bytes":304,"imports":[],"format":"esm"},"src/client/models/SecretAccessType.ts":{"bytes":239,"imports":[],"format":"esm"},"src/client/models/SecretNameAlreadyExists.ts":{"bytes":546,"imports":[],"format":"esm"},"src/client/models/SecretNotFound.ts":{"bytes":288,"imports":[],"format":"esm"},"src/client/models/SSHPublicKeyNotFoundError.ts":{"bytes":330,"imports":[],"format":"esm"},"src/client/models/UpdateApplicationRolloutRequest.ts":{"bytes":913,"imports":[],"format":"esm"},"src/client/services/AccountService.ts":{"bytes":1535,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/ApplicationsService.ts":{"bytes":17858,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/ContainerImagePreparationsService.ts":{"bytes":1064,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/DeploymentsService.ts":{"bytes":9316,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/ImageRegistriesService.ts":{"bytes":6457,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/IPsService.ts":{"bytes":1441,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/JobsService.ts":{"bytes":4599,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/PlacementsService.ts":{"bytes":2733,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/RolloutsService.ts":{"bytes":4854,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/SecretsService.ts":{"bytes":3305,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/services/SshPublicKeysService.ts":{"bytes":2261,"imports":[{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"../core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"../core/request"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/client/index.ts":{"bytes":16133,"imports":[{"path":"src/client/core/ApiError.ts","kind":"import-statement","original":"./core/ApiError"},{"path":"src/client/core/CancelablePromise.ts","kind":"import-statement","original":"./core/CancelablePromise"},{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"./core/OpenAPI"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"./core/request"},{"path":"src/client/models/ApplicationAffinityColocation.ts","kind":"import-statement","original":"./models/ApplicationAffinityColocation"},{"path":"src/client/models/ApplicationAffinityHardwareGeneration.ts","kind":"import-statement","original":"./models/ApplicationAffinityHardwareGeneration"},{"path":"src/client/models/ApplicationMutationError.ts","kind":"import-statement","original":"./models/ApplicationMutationError"},{"path":"src/client/models/ApplicationRollout.ts","kind":"import-statement","original":"./models/ApplicationRollout"},{"path":"src/client/models/AssignIPv4.ts","kind":"import-statement","original":"./models/AssignIPv4"},{"path":"src/client/models/AssignIPv6.ts","kind":"import-statement","original":"./models/AssignIPv6"},{"path":"src/client/models/BadRequestWithCodeError.ts","kind":"import-statement","original":"./models/BadRequestWithCodeError"},{"path":"src/client/models/ContainerNetworkMode.ts","kind":"import-statement","original":"./models/ContainerNetworkMode"},{"path":"src/client/models/ContainerImagePreparationStatus.ts","kind":"import-statement","original":"./models/ContainerImagePreparationStatus"},{"path":"src/client/models/CreateApplicationRolloutRequest.ts","kind":"import-statement","original":"./models/CreateApplicationRolloutRequest"},{"path":"src/client/models/DeploymentCheckKind.ts","kind":"import-statement","original":"./models/DeploymentCheckKind"},{"path":"src/client/models/DeploymentCheckType.ts","kind":"import-statement","original":"./models/DeploymentCheckType"},{"path":"src/client/models/DeploymentMutationError.ts","kind":"import-statement","original":"./models/DeploymentMutationError"},{"path":"src/client/models/DeploymentNotFoundError.ts","kind":"import-statement","original":"./models/DeploymentNotFoundError"},{"path":"src/client/models/DeploymentPlacementState.ts","kind":"import-statement","original":"./models/DeploymentPlacementState"},{"path":"src/client/models/DeploymentQueuedReason.ts","kind":"import-statement","original":"./models/DeploymentQueuedReason"},{"path":"src/client/models/DeploymentSchedulingState.ts","kind":"import-statement","original":"./models/DeploymentSchedulingState"},{"path":"src/client/models/DeploymentType.ts","kind":"import-statement","original":"./models/DeploymentType"},{"path":"src/client/models/DurableObjectStatusHealth.ts","kind":"import-statement","original":"./models/DurableObjectStatusHealth"},{"path":"src/client/models/EventName.ts","kind":"import-statement","original":"./models/EventName"},{"path":"src/client/models/EventType.ts","kind":"import-statement","original":"./models/EventType"},{"path":"src/client/models/ExternalRegistryKind.ts","kind":"import-statement","original":"./models/ExternalRegistryKind"},{"path":"src/client/models/HTTPMethod.ts","kind":"import-statement","original":"./models/HTTPMethod"},{"path":"src/client/models/ImageRegistryAlreadyExistsError.ts","kind":"import-statement","original":"./models/ImageRegistryAlreadyExistsError"},{"path":"src/client/models/ImageRegistryIsPublic.ts","kind":"import-statement","original":"./models/ImageRegistryIsPublic"},{"path":"src/client/models/ImageRegistryNotAllowedError.ts","kind":"import-statement","original":"./models/ImageRegistryNotAllowedError"},{"path":"src/client/models/ImageRegistryNotFoundError.ts","kind":"import-statement","original":"./models/ImageRegistryNotFoundError"},{"path":"src/client/models/ImageRegistryPermissions.ts","kind":"import-statement","original":"./models/ImageRegistryPermissions"},{"path":"src/client/models/ImageRegistryProtocolAlreadyExists.ts","kind":"import-statement","original":"./models/ImageRegistryProtocolAlreadyExists"},{"path":"src/client/models/ImageRegistryProtocolIsReferencedError.ts","kind":"import-statement","original":"./models/ImageRegistryProtocolIsReferencedError"},{"path":"src/client/models/ImageRegistryProtocolNotFound.ts","kind":"import-statement","original":"./models/ImageRegistryProtocolNotFound"},{"path":"src/client/models/InstanceType.ts","kind":"import-statement","original":"./models/InstanceType"},{"path":"src/client/models/IPType.ts","kind":"import-statement","original":"./models/IPType"},{"path":"src/client/models/JobStatusHealth.ts","kind":"import-statement","original":"./models/JobStatusHealth"},{"path":"src/client/models/NetworkMode.ts","kind":"import-statement","original":"./models/NetworkMode"},{"path":"src/client/models/NodeGroup.ts","kind":"import-statement","original":"./models/NodeGroup"},{"path":"src/client/models/PlacementStatusHealth.ts","kind":"import-statement","original":"./models/PlacementStatusHealth"},{"path":"src/client/models/ProvisionerConfiguration.ts","kind":"import-statement","original":"./models/ProvisionerConfiguration"},{"path":"src/client/models/RolloutStep.ts","kind":"import-statement","original":"./models/RolloutStep"},{"path":"src/client/models/SchedulingPolicy.ts","kind":"import-statement","original":"./models/SchedulingPolicy"},{"path":"src/client/models/SecretAccessType.ts","kind":"import-statement","original":"./models/SecretAccessType"},{"path":"src/client/models/SecretNameAlreadyExists.ts","kind":"import-statement","original":"./models/SecretNameAlreadyExists"},{"path":"src/client/models/SecretNotFound.ts","kind":"import-statement","original":"./models/SecretNotFound"},{"path":"src/client/models/SSHPublicKeyNotFoundError.ts","kind":"import-statement","original":"./models/SSHPublicKeyNotFoundError"},{"path":"src/client/models/UpdateApplicationRolloutRequest.ts","kind":"import-statement","original":"./models/UpdateApplicationRolloutRequest"},{"path":"src/client/services/AccountService.ts","kind":"import-statement","original":"./services/AccountService"},{"path":"src/client/services/ApplicationsService.ts","kind":"import-statement","original":"./services/ApplicationsService"},{"path":"src/client/services/ContainerImagePreparationsService.ts","kind":"import-statement","original":"./services/ContainerImagePreparationsService"},{"path":"src/client/services/DeploymentsService.ts","kind":"import-statement","original":"./services/DeploymentsService"},{"path":"src/client/services/ImageRegistriesService.ts","kind":"import-statement","original":"./services/ImageRegistriesService"},{"path":"src/client/services/IPsService.ts","kind":"import-statement","original":"./services/IPsService"},{"path":"src/client/services/JobsService.ts","kind":"import-statement","original":"./services/JobsService"},{"path":"src/client/services/PlacementsService.ts","kind":"import-statement","original":"./services/PlacementsService"},{"path":"src/client/services/RolloutsService.ts","kind":"import-statement","original":"./services/RolloutsService"},{"path":"src/client/services/SecretsService.ts","kind":"import-statement","original":"./services/SecretsService"},{"path":"src/client/services/SshPublicKeysService.ts","kind":"import-statement","original":"./services/SshPublicKeysService"}],"format":"esm"},"src/context.ts":{"bytes":901,"imports":[{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/registry.ts":{"bytes":790,"imports":[{"path":"src/knobs.ts","kind":"import-statement","original":"./knobs"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/knobs.ts":{"bytes":1440,"imports":[{"path":"@cloudflare/workers-utils/compliance","kind":"import-statement","external":true},{"path":"src/registry.ts","kind":"import-statement","original":"./registry"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/login.ts":{"bytes":1747,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"./client"},{"path":"src/client/core/OpenAPI.ts","kind":"import-statement","original":"./client/core/OpenAPI"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":12840,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/images.ts":{"bytes":15382,"imports":[{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"src/build.ts","kind":"import-statement","original":"./build"},{"path":"src/client/models/ExternalRegistryKind.ts","kind":"import-statement","original":"./client/models/ExternalRegistryKind"},{"path":"src/knobs.ts","kind":"import-statement","original":"./knobs"},{"path":"src/login.ts","kind":"import-statement","original":"./login"},{"path":"src/registry.ts","kind":"import-statement","original":"./registry"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/inspect.ts":{"bytes":886,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/limits.ts":{"bytes":6884,"imports":[{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"./client"},{"path":"src/context.ts","kind":"import-statement","original":"./context"},{"path":"src/inspect.ts","kind":"import-statement","original":"./inspect"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/build.ts":{"bytes":24807,"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/docker-path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/fs-helpers","kind":"import-statement","external":true},{"path":"src/context.ts","kind":"import-statement","original":"./context"},{"path":"src/images.ts","kind":"import-statement","original":"./images"},{"path":"src/inspect.ts","kind":"import-statement","original":"./inspect"},{"path":"src/knobs.ts","kind":"import-statement","original":"./knobs"},{"path":"src/limits.ts","kind":"import-statement","original":"./limits"},{"path":"src/login.ts","kind":"import-statement","original":"./login"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/build-output.ts":{"bytes":8390,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@cloudflare/build-output-utils","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"src/build.ts","kind":"import-statement","original":"./build"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/diff.ts":{"bytes":15139,"imports":[{"path":"@cloudflare/cli-shared-helpers","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers/colors","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/object.ts":{"bytes":1435,"imports":[{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/spinner.ts":{"bytes":434,"imports":[{"path":"@cloudflare/cli-shared-helpers/interactive","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/deploy.ts":{"bytes":32106,"imports":[{"path":"node:assert","kind":"import-statement","external":true},{"path":"node:timers/promises","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers/colors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"./client"},{"path":"src/context.ts","kind":"import-statement","original":"./context"},{"path":"src/diff.ts","kind":"import-statement","original":"./diff"},{"path":"src/images.ts","kind":"import-statement","original":"./images"},{"path":"src/limits.ts","kind":"import-statement","original":"./limits"},{"path":"src/object.ts","kind":"import-statement","original":"./object"},{"path":"src/spinner.ts","kind":"import-statement","original":"./spinner"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/types.ts":{"bytes":3964,"imports":[],"format":"esm"},"src/dev-options.ts":{"bytes":5572,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils","kind":"import-statement","external":true},{"path":"src/knobs.ts","kind":"import-statement","original":"./knobs"},{"path":"src/registry.ts","kind":"import-statement","original":"./registry"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"index.ts":{"bytes":572,"imports":[{"path":"src/client/index.ts","kind":"import-statement","original":"./src/client"},{"path":"src/client/core/request.ts","kind":"import-statement","original":"./src/client/core/request"},{"path":"src/build.ts","kind":"import-statement","original":"./src/build"},{"path":"src/build-output.ts","kind":"import-statement","original":"./src/build-output"},{"path":"src/context.ts","kind":"import-statement","original":"./src/context"},{"path":"src/deploy.ts","kind":"import-statement","original":"./src/deploy"},{"path":"src/diff.ts","kind":"import-statement","original":"./src/diff"},{"path":"src/login.ts","kind":"import-statement","original":"./src/login"},{"path":"src/knobs.ts","kind":"import-statement","original":"./src/knobs"},{"path":"src/limits.ts","kind":"import-statement","original":"./src/limits"},{"path":"src/object.ts","kind":"import-statement","original":"./src/object"},{"path":"src/utils.ts","kind":"import-statement","original":"./src/utils"},{"path":"src/types.ts","kind":"import-statement","original":"./src/types"},{"path":"src/inspect.ts","kind":"import-statement","original":"./src/inspect"},{"path":"src/registry.ts","kind":"import-statement","original":"./src/registry"},{"path":"src/images.ts","kind":"import-statement","original":"./src/images"},{"path":"src/spinner.ts","kind":"import-statement","original":"./src/spinner"},{"path":"src/dev-options.ts","kind":"import-statement","original":"./src/dev-options"}],"format":"esm"}},"outputs":{"dist/index.mjs":{"imports":[{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/docker-path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/fs-helpers","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/compliance","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"node:child_process","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@cloudflare/build-output-utils","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"node:assert","kind":"import-statement","external":true},{"path":"node:timers/promises","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers/colors","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils/errors","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers/colors","kind":"import-statement","external":true},{"path":"@cloudflare/cli-shared-helpers/interactive","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@cloudflare/workers-utils","kind":"import-statement","external":true}],"exports":["AccountService","ApiError","ApplicationAffinityColocation","ApplicationAffinityHardwareGeneration","ApplicationMutationError","ApplicationRollout","ApplicationsService","AssignIPv4","AssignIPv6","BadRequestWithCodeError","CancelError","CancelablePromise","ContainerImagePreparationStatus","ContainerImagePreparationsService","ContainerNetworkMode","CreateApplicationRolloutRequest","DEFAULT_CONTAINER_EGRESS_INTERCEPTOR_IMAGE","DeploymentCheckKind","DeploymentCheckType","DeploymentMutationError","DeploymentNotFoundError","DeploymentPlacementState","DeploymentQueuedReason","DeploymentSchedulingState","DeploymentType","DeploymentsService","Diff","DurableObjectStatusHealth","EventName","EventType","ExternalRegistryKind","FUSE_CONTAINER_PRIVILEGES","HTTPMethod","IPType","IPsService","ImageRegistriesService","ImageRegistryAlreadyExistsError","ImageRegistryIsPublic","ImageRegistryNotAllowedError","ImageRegistryNotFoundError","ImageRegistryPermissions","ImageRegistryProtocolAlreadyExists","ImageRegistryProtocolIsReferencedError","ImageRegistryProtocolNotFound","InstanceType","JobStatusHealth","JobsService","MF_DEV_CONTAINER_PREFIX","NetworkMode","NodeGroup","OpenAPI","PlacementStatusHealth","PlacementsService","ProvisionerConfiguration","RolloutStep","RolloutsService","SSHPublicKeyNotFoundError","SchedulingPolicy","SecretAccessType","SecretNameAlreadyExists","SecretNotFound","SecretsService","SshPublicKeysService","UpdateApplicationRolloutRequest","apply","buildAndMaybePush","buildAndWriteContainerOutput","buildCommand","buildContainerImages","cleanApplicationFromAPI","cleanForInstanceType","cleanupBuiltImages","cleanupContainers","configRolloutStepsToAPI","configureOpenAPIForContainerPull","containerPrivilegesAllowed","createContainerDevPlan","createDurableObjectNamespaceResolver","deployContainers","dockerBuild","dockerImageInspect","dockerLoginImageRegistry","ensureContainerLimits","ensureImageFitsLimits","fetchPagedListResult","fetchResult","formatError","generateContainerBuildId","getAndValidateRegistryType","getCloudflareContainerRegistry","getCloudflareRegistryWithAccountNamespace","getContainerAccount","getContainerIdsByImageTags","getContainerIdsFromImage","getContainerImageTag","getDevContainerImageName","getDockerHostFromEnv","getDockerSocketFromContext","getEgressInterceptorImage","getEgressInterceptorPlatform","getInstanceTypeUsage","inferInstanceType","initContainersSharedContext","isCloudflareRegistryImage","isDockerRunning","isDockerfileContainerConfig","listDurableObjects","logger","normalizeContainerImageRepositoryName","prepareContainerImagesForDev","promiseSpinner","pullEgressInterceptorImage","pullImage","pushBuiltContainerImage","pushCommand","pushImageIfChanged","request","requestPaginated","resolveDockerHost","resolveImageName","runDockerCmd","runDockerCmdWithOutput","sortObjectRecursive","startContainerBuild","stripUndefined","validateAndEncodeGarKey","verifyDockerInstalled"],"entryPoint":"index.ts","inputs":{"src/client/core/ApiError.ts":{"bytesInOutput":399},"src/client/index.ts":{"bytesInOutput":0},"src/client/core/CancelablePromise.ts":{"bytesInOutput":2718},"src/client/core/OpenAPI.ts":{"bytesInOutput":220},"src/client/core/request.ts":{"bytesInOutput":10965},"src/client/models/ApplicationAffinityColocation.ts":{"bytesInOutput":236},"src/client/models/ApplicationAffinityHardwareGeneration.ts":{"bytesInOutput":310},"src/client/models/ApplicationMutationError.ts":{"bytesInOutput":1249},"src/client/models/ApplicationRollout.ts":{"bytesInOutput":815},"src/client/models/AssignIPv4.ts":{"bytesInOutput":211},"src/client/models/AssignIPv6.ts":{"bytesInOutput":211},"src/client/models/BadRequestWithCodeError.ts":{"bytesInOutput":291},"src/client/models/ContainerNetworkMode.ts":{"bytesInOutput":293},"src/client/models/ContainerImagePreparationStatus.ts":{"bytesInOutput":350},"src/client/models/CreateApplicationRolloutRequest.ts":{"bytesInOutput":1094},"src/client/models/DeploymentCheckKind.ts":{"bytesInOutput":221},"src/client/models/DeploymentCheckType.ts":{"bytesInOutput":213},"src/client/models/DeploymentMutationError.ts":{"bytesInOutput":643},"src/client/models/DeploymentNotFoundError.ts":{"bytesInOutput":303},"src/client/models/DeploymentPlacementState.ts":{"bytesInOutput":365},"src/client/models/DeploymentQueuedReason.ts":{"bytesInOutput":279},"src/client/models/DeploymentSchedulingState.ts":{"bytesInOutput":265},"src/client/models/DeploymentType.ts":{"bytesInOutput":247},"src/client/models/DurableObjectStatusHealth.ts":{"bytesInOutput":277},"src/client/models/EventName.ts":{"bytesInOutput":991},"src/client/models/EventType.ts":{"bytesInOutput":276},"src/client/models/ExternalRegistryKind.ts":{"bytesInOutput":270},"src/client/models/HTTPMethod.ts":{"bytesInOutput":329},"src/client/models/ImageRegistryAlreadyExistsError.ts":{"bytesInOutput":369},"src/client/models/ImageRegistryIsPublic.ts":{"bytesInOutput":299},"src/client/models/ImageRegistryNotAllowedError.ts":{"bytesInOutput":345},"src/client/models/ImageRegistryNotFoundError.ts":{"bytesInOutput":329},"src/client/models/ImageRegistryPermissions.ts":{"bytesInOutput":307},"src/client/models/ImageRegistryProtocolAlreadyExists.ts":{"bytesInOutput":405},"src/client/models/ImageRegistryProtocolIsReferencedError.ts":{"bytesInOutput":421},"src/client/models/ImageRegistryProtocolNotFound.ts":{"bytesInOutput":365},"src/client/models/InstanceType.ts":{"bytesInOutput":433},"src/client/models/IPType.ts":{"bytesInOutput":129},"src/client/models/JobStatusHealth.ts":{"bytesInOutput":332},"src/client/models/NetworkMode.ts":{"bytesInOutput":198},"src/client/models/NodeGroup.ts":{"bytesInOutput":173},"src/client/models/PlacementStatusHealth.ts":{"bytesInOutput":437},"src/client/models/ProvisionerConfiguration.ts":{"bytesInOutput":309},"src/client/models/RolloutStep.ts":{"bytesInOutput":373},"src/client/models/SchedulingPolicy.ts":{"bytesInOutput":395},"src/client/models/SecretAccessType.ts":{"bytesInOutput":157},"src/client/models/SecretNameAlreadyExists.ts":{"bytesInOutput":315},"src/client/models/SecretNotFound.ts":{"bytesInOutput":251},"src/client/models/SSHPublicKeyNotFoundError.ts":{"bytesInOutput":323},"src/client/models/UpdateApplicationRolloutRequest.ts":{"bytesInOutput":397},"src/client/services/AccountService.ts":{"bytesInOutput":1131},"src/client/services/ApplicationsService.ts":{"bytesInOutput":14854},"src/client/services/ContainerImagePreparationsService.ts":{"bytesInOutput":658},"src/client/services/DeploymentsService.ts":{"bytesInOutput":7677},"src/client/services/ImageRegistriesService.ts":{"bytesInOutput":5310},"src/client/services/IPsService.ts":{"bytesInOutput":844},"src/client/services/JobsService.ts":{"bytesInOutput":3741},"src/client/services/PlacementsService.ts":{"bytesInOutput":2069},"src/client/services/RolloutsService.ts":{"bytesInOutput":3924},"src/client/services/SecretsService.ts":{"bytesInOutput":2617},"src/client/services/SshPublicKeysService.ts":{"bytesInOutput":1693},"index.ts":{"bytesInOutput":0},"src/build.ts":{"bytesInOutput":18012},"src/context.ts":{"bytesInOutput":714},"src/images.ts":{"bytesInOutput":11413},"src/knobs.ts":{"bytesInOutput":1075},"src/registry.ts":{"bytesInOutput":292},"src/login.ts":{"bytesInOutput":1525},"src/utils.ts":{"bytesInOutput":8679},"src/inspect.ts":{"bytesInOutput":943},"src/limits.ts":{"bytesInOutput":5446},"src/build-output.ts":{"bytesInOutput":7487},"src/deploy.ts":{"bytesInOutput":26931},"src/diff.ts":{"bytesInOutput":10090},"src/object.ts":{"bytesInOutput":984},"src/spinner.ts":{"bytesInOutput":422},"src/dev-options.ts":{"bytesInOutput":4846}},"bytes":180786}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudflare/containers-shared",
3
- "version": "0.16.5",
3
+ "version": "0.18.0",
4
4
  "description": "Internal-only shared container helpers for workers-sdk. Do not use directly; APIs are unstable and may change or disappear without notice.",
5
5
  "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/containers-shared#readme",
6
6
  "bugs": {
@@ -24,8 +24,10 @@
24
24
  }
25
25
  },
26
26
  "dependencies": {
27
- "@cloudflare/cli-shared-helpers": "0.1.33",
28
- "@cloudflare/workers-utils": "0.40.0"
27
+ "@cloudflare/build-output-utils": "0.7.0",
28
+ "@cloudflare/config": "0.16.0",
29
+ "@cloudflare/workers-utils": "0.41.0",
30
+ "@cloudflare/cli-shared-helpers": "0.1.35"
29
31
  },
30
32
  "devDependencies": {
31
33
  "@types/node": "22.15.17",