@forge/cli

13.4.1-next.7-experimental-d47700213.4.1-next.9-experimental-e16d59f
out/command-line/register-log-commands.js
~out/command-line/register-log-commands.jsModified
+46−20
Index: package/out/command-line/register-log-commands.js
===================================================================
--- package/out/command-line/register-log-commands.js
+++ package/out/command-line/register-log-commands.js
@@ -1,8 +1,9 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
 exports.registerCommands = exports.LogsCommandError = void 0;
 exports.parseSinceDateTime = parseSinceDateTime;
+exports.logInvocation = logInvocation;
 const tslib_1 = require("tslib");
 const cli_table3_1 = tslib_1.__importDefault(require("cli-table3"));
 const cli_shared_1 = require("@forge/cli-shared");
 const cli_shared_2 = require("@forge/cli-shared");
@@ -38,66 +39,91 @@
     else {
         return [message];
     }
 }
+const FRONTEND_LOG_METADATA = [
+    ['logSource', cli_shared_3.Text.logs.metadata.logSource],
+    ['browserName', cli_shared_3.Text.logs.metadata.browserName],
+    ['browserVersion', cli_shared_3.Text.logs.metadata.browserVersion],
+    ['osName', cli_shared_3.Text.logs.metadata.operatingSystem],
+    ['errorType', cli_shared_3.Text.logs.metadata.errorType],
+    ['extensionType', cli_shared_3.Text.logs.metadata.extensionType],
+    ['installationId', cli_shared_3.Text.logs.metadata.installationId],
+    ['renderType', cli_shared_3.Text.logs.metadata.renderType],
+    ['userAgent', cli_shared_3.Text.logs.metadata.userAgent]
+];
+function logFrontendMetadata(logger, log) {
+    FRONTEND_LOG_METADATA.forEach(([key, label]) => {
+        const value = log[key];
+        if (typeof value === 'string' && value) {
+            const displayValue = key === 'logSource' ? cli_shared_3.Text.logs.displayLogSource(value) : value;
+            logger.debug(cli_shared_3.Text.logs.metadataLine(label, displayValue));
+        }
+    });
+}
 function logFlat(logger, { id, appVersion, function: fn, trigger, logs }, containers) {
-    logs.forEach(({ timestamp, level, message, other }) => {
+    logs.forEach((log) => {
+        const { timestamp, level, message, other, logSource } = log;
+        const invocationId = logSource ? '' : ` ${id}`;
         if (containers) {
-            logger.info(timestamp + ' ' + id + ' ' + (0, cli_shared_2.formatRuntimeLogArgs)(combineLogParts(message, other)));
+            logger.info(timestamp + invocationId + ' ' + (0, cli_shared_2.formatRuntimeLogArgs)(combineLogParts(message, other)));
         }
         else {
             logger.info((0, cli_shared_2.formatRuntimeLogLevel)(level) +
                 ' ' +
                 timestamp +
+                invocationId +
                 ' ' +
-                id +
-                ' ' +
                 (0, cli_shared_2.formatRuntimeLogArgs)(combineLogParts(message, other)));
         }
         if (!containers) {
-            logger.debug(`    App version: ${appVersion}`);
+            logger.debug(cli_shared_3.Text.logs.metadataLine(cli_shared_3.Text.logs.metadata.appVersion, appVersion));
         }
         if (fn) {
-            logger.debug(`    Function name: ${fn}`);
+            logger.debug(cli_shared_3.Text.logs.metadataLine(cli_shared_3.Text.logs.metadata.functionName, fn));
         }
         if (trigger) {
-            logger.debug(`    Function trigger: ${trigger}`);
+            logger.debug(cli_shared_3.Text.logs.metadataLine(cli_shared_3.Text.logs.metadata.functionTrigger, trigger));
         }
+        logFrontendMetadata(logger, log);
     });
 }
 function logGrouped(logger, { id, appVersion, function: fn, trigger, logs }) {
-    if (logger.debugEnabled) {
+    const isFrontendInvocation = logs.length > 0 && logs.every(({ logSource }) => Boolean(logSource));
+    if (logger.debugEnabled && !isFrontendInvocation) {
         const table = new cli_table3_1.default(cli_shared_1.TableStyle.runtimeLog);
-        table.push({ 'App version': appVersion });
-        table.push({ 'Invocation ID': id });
+        table.push({ [cli_shared_3.Text.logs.metadata.appVersion]: appVersion });
+        table.push({ [cli_shared_3.Text.logs.metadata.invocationId]: id });
         if (fn) {
-            table.push({ 'Function name': fn });
+            table.push({ [cli_shared_3.Text.logs.metadata.functionName]: fn });
         }
         if (trigger) {
-            table.push({ 'Function trigger': trigger });
+            table.push({ [cli_shared_3.Text.logs.metadata.functionTrigger]: trigger });
         }
         logger.debug(table.toString());
         logger.debug('');
     }
-    else {
-        logger.info(cli_shared_1.LogColor.debug(`invocation: ${id}`));
+    else if (!isFrontendInvocation) {
+        logger.info(cli_shared_1.LogColor.debug(cli_shared_3.Text.logs.invocationHeading(id)));
     }
-    logs.forEach(({ timestamp, level, message, other }) => {
+    logs.forEach((log) => {
+        const { timestamp, level, message, other, logSource } = log;
+        const invocationId = logSource ? '' : ` ${id}`;
         if (logger.debugEnabled) {
             logger.info((0, cli_shared_2.formatRuntimeLogLevel)(level) +
                 ' ' +
                 timestamp +
+                invocationId +
                 ' ' +
-                id +
-                ' ' +
                 (0, cli_shared_2.formatRuntimeLogArgs)(combineLogParts(message, other)));
-            logger.debug(`    App version: ${appVersion}`);
+            logger.debug(cli_shared_3.Text.logs.metadataLine(cli_shared_3.Text.logs.metadata.appVersion, appVersion));
             if (fn) {
-                logger.debug(`    Function name: ${fn}`);
+                logger.debug(cli_shared_3.Text.logs.metadataLine(cli_shared_3.Text.logs.metadata.functionName, fn));
             }
             if (trigger) {
-                logger.debug(`    Function trigger: ${trigger}`);
+                logger.debug(cli_shared_3.Text.logs.metadataLine(cli_shared_3.Text.logs.metadata.functionTrigger, trigger));
             }
+            logFrontendMetadata(logger, log);
         }
         else {
             logger.info((0, cli_shared_2.formatRuntimeLogLevel)(level) +
                 ' ' +