@forge/cli-shared

8.15.1-next.88.15.1-next.9
out/tunnel/docker-compose-lifecycle.js
~out/tunnel/docker-compose-lifecycle.jsModified
+21−1
Index: package/out/tunnel/docker-compose-lifecycle.js
===================================================================
--- package/out/tunnel/docker-compose-lifecycle.js
+++ package/out/tunnel/docker-compose-lifecycle.js
@@ -1,7 +1,7 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.stopDockerComposeStack = exports.startDockerComposeStack = exports.deleteDockerComposeFile = exports.generateContainersDockerComposeFile = exports.CannotUseBothImageAndBuildContextError = exports.MissingImageOrBuildContextError = exports.DockerUnableToStartError = exports.DockerUnableToPullProxySidecarImage = exports.InvalidContainerServicePort = exports.K8S_AUTH_TOKEN_FILENAME = exports.CONTAINER_SERVICE_ASSETS = exports.PROXY_SIDECAR_VOLUME_DIR = void 0;
+exports.processDockerAuthentication = exports.stopDockerComposeStack = exports.startDockerComposeStack = exports.deleteDockerComposeFile = exports.generateContainersDockerComposeFile = exports.DockerAuthenticationError = exports.CannotUseBothImageAndBuildContextError = exports.MissingImageOrBuildContextError = exports.DockerUnableToStartError = exports.DockerUnableToPullProxySidecarImage = exports.InvalidContainerServicePort = exports.K8S_AUTH_TOKEN_FILENAME = exports.CONTAINER_SERVICE_ASSETS = exports.PROXY_SIDECAR_VOLUME_DIR = void 0;
 const tslib_1 = require("tslib");
 const fs = tslib_1.__importStar(require("fs"));
 const path = tslib_1.__importStar(require("path"));
 const yaml = tslib_1.__importStar(require("yaml"));
@@ -43,8 +43,14 @@
         super(text_1.Text.tunnel.cannotUseBothImageAndBuildContext(containerKey));
     }
 }
 exports.CannotUseBothImageAndBuildContextError = CannotUseBothImageAndBuildContextError;
+class DockerAuthenticationError extends shared_1.UserError {
+    constructor(errCode) {
+        super(text_1.Text.tunnel.unableToAuthenticateDocker(errCode));
+    }
+}
+exports.DockerAuthenticationError = DockerAuthenticationError;
 const generateContainersDockerComposeFile = async (services, appId, envId) => {
     const filesGenerated = {};
     for (const service of services) {
         const { key: serviceKey, containers } = service;
@@ -193,8 +199,22 @@
     }));
     deleteContainerServiceAssetsDir();
 };
 exports.stopDockerComposeStack = stopDockerComposeStack;
+const processDockerAuthentication = async (childProcess) => {
+    await new Promise((resolve, reject) => {
+        childProcess.on('close', (code) => {
+            if (code === 0) {
+                resolve();
+            }
+            else {
+                reject(new DockerAuthenticationError(code?.toString() || 'unknown'));
+            }
+        });
+        childProcess.on('error', reject);
+    });
+};
+exports.processDockerAuthentication = processDockerAuthentication;
 const deleteContainerServiceAssetsDir = () => {
     const dirPath = path.join(process.cwd(), exports.CONTAINER_SERVICE_ASSETS);
     if (fs.existsSync(dirPath)) {
         const tokenFilePath = path.join(dirPath, exports.K8S_AUTH_TOKEN_FILENAME);