@forge/cli

13.4.013.4.1-next.7-experimental-d477002
out/analytics-client/analytics-client.js
~out/analytics-client/analytics-client.jsModified
+9−5
Index: package/out/analytics-client/analytics-client.js
===================================================================
--- package/out/analytics-client/analytics-client.js
+++ package/out/analytics-client/analytics-client.js
@@ -4,14 +4,16 @@
 const tslib_1 = require("tslib");
 const os = tslib_1.__importStar(require("os"));
 const url_1 = require("url");
 const crypto_1 = require("crypto");
+const semver_1 = require("semver");
 const analytics_node_client_1 = require("@forge/util/packages/analytics-node-client");
 const ari_1 = require("@forge/util/packages/ari");
 const cli_shared_1 = require("@forge/cli-shared");
 const anon_user_id_1 = require("../command-line/anon-user-id");
 const errors_1 = require("../command-line/errors");
 const unique_machine_id_1 = require("../command-line/unique-machine-id");
+const version_info_1 = require("../command-line/version-info");
 const analytics_message_handler_1 = require("./analytics-message-handler");
 const Identity = (value) => value;
 function appAidOrUndefined(appAri) {
     try {
@@ -52,12 +54,9 @@
             }
         });
     }
     async reportFailure(cmdName, attributes, e) {
-        attributes = {
-            ...attributes,
-            ...this._getErrorDetails(e)
-        };
+        attributes = this._withNodeVersionUserError({ ...attributes, ...this._getErrorDetails(e) });
         await this.reportOperationalEvent('invoked', cmdName, attributes);
     }
     async reportCommandInvoke(cmdName, attributes) {
         await this.reportOperationalEvent('cmdInvoked', cmdName, attributes);
@@ -65,9 +64,9 @@
     async reportInvokeFailure(cmdName, attributes, e) {
         if (e) {
             attributes = { ...attributes, ...this._getErrorListDetails(e) };
         }
-        await this.reportOperationalEvent('cmdInvokeFailed', cmdName, attributes);
+        await this.reportOperationalEvent('cmdInvokeFailed', cmdName, this._withNodeVersionUserError(attributes));
     }
     async reportAppPackaged(attributes) {
         await this.reportOperationalEvent('packaged', 'app', attributes);
     }
@@ -182,8 +181,13 @@
     }
     _nodeVersion() {
         return { node: process.version };
     }
+    _withNodeVersionUserError(attributes) {
+        return (0, semver_1.satisfies)(process.version, version_info_1.semverSupportedNodeVersion)
+            ? attributes
+            : { ...attributes, isUserError: true };
+    }
     _machineId() {
         return { machineId: (0, unique_machine_id_1.getMachineId)() };
     }
     _asAttribute(attrValue, name, mapper = Identity) {