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() };