npm package diff

Package: @forge/cli

Versions: 12.3.0-next.0-experimental-47556b0 - 12.3.0-next.0-experimental-8a53773

File: package/out/analytics-client/analytics-client.js

Index: package/out/analytics-client/analytics-client.js
===================================================================
--- package/out/analytics-client/analytics-client.js
+++ package/out/analytics-client/analytics-client.js
@@ -1,17 +1,18 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
 exports.AnalyticsClientReporter = void 0;
 const tslib_1 = require("tslib");
-const analytics_node_client_1 = require("@forge/util/packages/analytics-node-client");
 const os = tslib_1.__importStar(require("os"));
-const ari_1 = require("@forge/util/packages/ari");
-const analytics_message_handler_1 = require("./analytics-message-handler");
+const url_1 = require("url");
 const uuid_1 = require("uuid");
+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 unique_machine_id_1 = require("../command-line/unique-machine-id");
+const anon_user_id_1 = require("../command-line/anon-user-id");
 const errors_1 = require("../command-line/errors");
-const url_1 = require("url");
+const unique_machine_id_1 = require("../command-line/unique-machine-id");
+const analytics_message_handler_1 = require("./analytics-message-handler");
 const Identity = (value) => value;
 function appAidOrUndefined(appAri) {
     try {
         return ari_1.EcosystemAppAri.parse(appAri).appId;
@@ -22,14 +23,16 @@
 }
 class AnalyticsClientReporter {
     storage;
     configService;
-    constructor(storage, configService) {
+    credentialStore;
+    constructor(storage, configService, credentialStore) {
         this.storage = storage;
         this.configService = configService;
+        this.credentialStore = credentialStore;
     }
     source = 'forge/cli';
-    reportSuccess(cmdName, cred, attributes) {
+    async reportSuccess(cmdName, attributes) {
         this.processAnalyticsEvent({
             id: (0, uuid_1.v4)(),
             eventType: analytics_message_handler_1.EventType.TRACK,
             event: {
@@ -37,9 +40,9 @@
                 os: {
                     name: os.platform(),
                     version: os.release()
                 },
-                ...this._getUserId(cred),
+                ...(await this._getUserId()),
                 trackEvent: {
                     source: this.source,
                     action: 'invoked',
                     actionSubject: cmdName,
@@ -48,25 +51,28 @@
                 }
             }
         });
     }
-    reportFailure(cmdName, cred, attributes, e) {
+    async reportFailure(cmdName, attributes, e) {
         attributes = {
             ...attributes,
             ...this._getErrorDetails(e)
         };
-        this.reportOperationalEvent('invoked', cmdName, cred, attributes);
+        await this.reportOperationalEvent('invoked', cmdName, attributes);
     }
-    reportCommandInvoke(cmdName, cred, attributes) {
-        this.reportOperationalEvent('cmdInvoked', cmdName, cred, attributes);
+    async reportCommandInvoke(cmdName, attributes) {
+        await this.reportOperationalEvent('cmdInvoked', cmdName, attributes);
     }
-    reportInvokeFailure(cmdName, cred, attributes, e) {
+    async reportInvokeFailure(cmdName, attributes, e) {
         if (e) {
             attributes = { ...attributes, ...this._getErrorListDetails(e) };
         }
-        this.reportOperationalEvent('cmdInvokeFailed', cmdName, cred, attributes);
+        await this.reportOperationalEvent('cmdInvokeFailed', cmdName, attributes);
     }
-    reportOperationalEvent(action, actionSubject, cred, attributes) {
+    async reportAppPackaged(attributes) {
+        await this.reportOperationalEvent('packaged', 'app', attributes);
+    }
+    async reportOperationalEvent(action, actionSubject, attributes) {
         this.processAnalyticsEvent({
             id: (0, uuid_1.v4)(),
             eventType: analytics_message_handler_1.EventType.OPERATIONAL,
             event: {
@@ -74,9 +80,9 @@
                 os: {
                     name: os.platform(),
                     version: os.release()
                 },
-                ...this._getUserId(cred),
+                ...(await this._getUserId()),
                 operationalEvent: {
                     source: this.source,
                     action,
                     actionSubject,
@@ -93,17 +99,21 @@
             return;
         }
         this.storage.addAnalyticsEvent(analyticsEvent);
     }
-    _getUserId(cred) {
-        return typeof cred === 'string'
-            ? {
-                anonymousId: cred
-            }
-            : {
+    async _getUserId() {
+        try {
+            const { accountId: userId } = await this.credentialStore.getCredentials();
+            return {
                 userIdType: analytics_node_client_1.userTypes.ATLASSIAN_ACCOUNT,
-                userId: cred.accountId
+                userId
             };
+        }
+        catch {
+            return {
+                anonymousId: (0, anon_user_id_1.getAnonId)()
+            };
+        }
     }
     _getErrorDetails(e) {
         if (e instanceof cli_shared_1.GraphQlMutationError) {
             return { error: e.getCode() };