@salesforce/analytics 1.0.4 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,30 @@
1
+ import { UX } from '@salesforce/command';
2
+ import { Logger, Org } from '@salesforce/core';
3
+ import Folder, { CreateAppBody } from '../app/folder';
4
+ export declare type StreamingResult = {
5
+ EventType: string;
6
+ Status: string;
7
+ Index: number;
8
+ Total: number;
9
+ ItemLabel: string;
10
+ Message: string;
11
+ };
12
+ export default class AppStreaming {
13
+ streamingResults: StreamingResult[];
14
+ protected logger: Logger | undefined;
15
+ protected ux: UX;
16
+ protected allEvents: boolean;
17
+ protected org: Org;
18
+ protected wait: number;
19
+ constructor(organization: Org, allEvents: boolean, wait: number, ux: UX);
20
+ createApp(folder: Folder, body: CreateAppBody): Promise<string | undefined>;
21
+ updateApp(folder: Folder, folderId: string, templateId: string): Promise<string | undefined>;
22
+ getStreamingResults(): StreamingResult[];
23
+ streamCreateEvent(folder: Folder, body: CreateAppBody): Promise<string | undefined>;
24
+ streamUpdateEvent(folder: Folder, folderId: string, templateId: string): Promise<string>;
25
+ private streamProcessor;
26
+ private logEvent;
27
+ private createStreamingClient;
28
+ private createEventJson;
29
+ private getStreamResultMark;
30
+ }
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const core_1 = require("@salesforce/core");
13
+ const chalk_1 = __importDefault(require("chalk"));
14
+ const kit_1 = require("@salesforce/kit");
15
+ const utils_1 = require("../utils");
16
+ const waveAssetEvent_1 = __importDefault(require("./waveAssetEvent"));
17
+ core_1.Messages.importMessagesDirectory(__dirname);
18
+ const messages = core_1.Messages.loadMessages('@salesforce/analytics', 'app');
19
+ class AppStreaming {
20
+ constructor(organization, allEvents, wait, ux) {
21
+ this.streamingResults = [];
22
+ this.allEvents = false;
23
+ this.allEvents = allEvents;
24
+ this.org = organization;
25
+ this.wait = wait;
26
+ this.ux = ux;
27
+ }
28
+ async createApp(folder, body) {
29
+ const waveAppId = await folder.create(body);
30
+ this.ux.styledHeader(messages.getMessage('startAppCreation', [waveAppId]));
31
+ return waveAppId;
32
+ }
33
+ async updateApp(folder, folderId, templateId) {
34
+ const waveAppId = await folder.update(folderId, templateId);
35
+ this.ux.styledHeader(messages.getMessage('startAppUpdate', [waveAppId]));
36
+ return waveAppId;
37
+ }
38
+ getStreamingResults() {
39
+ return this.streamingResults;
40
+ }
41
+ async streamCreateEvent(folder, body) {
42
+ let folderId;
43
+ const options = new core_1.StreamingClient.DefaultOptions(this.org, '/event/WaveAssetEvent', message => this.streamProcessor(folderId, message));
44
+ const asyncStatusClient = await this.createStreamingClient(options);
45
+ try {
46
+ await asyncStatusClient.subscribe(async () => {
47
+ folderId = await this.createApp(folder, body);
48
+ });
49
+ }
50
+ catch (error) {
51
+ if (error.code === 'genericTimeoutMessage') {
52
+ // include the app id in the error if we timeout waiting, since the app got created
53
+ (0, utils_1.throwWithData)(messages.getMessage('timeoutMessage', [error.message]), {
54
+ id: folderId
55
+ });
56
+ }
57
+ throw error;
58
+ }
59
+ return folderId;
60
+ }
61
+ async streamUpdateEvent(folder, folderId, templateId) {
62
+ const options = new core_1.StreamingClient.DefaultOptions(this.org, '/event/WaveAssetEvent', message => this.streamProcessor(folderId, message));
63
+ const asyncStatusClient = await this.createStreamingClient(options);
64
+ try {
65
+ await asyncStatusClient.subscribe(async () => {
66
+ await this.updateApp(folder, folderId, templateId);
67
+ });
68
+ }
69
+ catch (error) {
70
+ if (error.code === 'genericTimeoutMessage') {
71
+ // include the app id in the error if we timeout waiting, since the app got created
72
+ (0, utils_1.throwWithData)(messages.getMessage('timeoutMessage', [error.message]), {
73
+ id: folderId
74
+ });
75
+ }
76
+ throw error;
77
+ }
78
+ return folderId;
79
+ }
80
+ streamProcessor(folderId, event) {
81
+ const waveAssetEvent = new waveAssetEvent_1.default(event);
82
+ // Only handle events for the newly created folder id and ignore for tests
83
+ if (folderId !== waveAssetEvent.folderId && waveAssetEvent.folderId !== 'test') {
84
+ return { completed: false };
85
+ }
86
+ switch (waveAssetEvent.eventType) {
87
+ case 'ExternalData': {
88
+ this.logEvent('External Data', 'created', waveAssetEvent);
89
+ break;
90
+ }
91
+ case 'Dataset': {
92
+ this.logEvent('Datasets', 'created', waveAssetEvent);
93
+ break;
94
+ }
95
+ case 'Lens': {
96
+ this.logEvent('Lenses', 'created', waveAssetEvent);
97
+ break;
98
+ }
99
+ case 'Dashboard': {
100
+ this.logEvent('Dashboards', 'created', waveAssetEvent);
101
+ break;
102
+ }
103
+ case 'Dataflow': {
104
+ this.logEvent('Dataflows', 'created', waveAssetEvent);
105
+ break;
106
+ }
107
+ case 'Recipe': {
108
+ this.logEvent('Recipes', 'created', waveAssetEvent);
109
+ break;
110
+ }
111
+ case 'ExecutionPlan': {
112
+ this.logEvent('Execution Plan', 'created', waveAssetEvent);
113
+ break;
114
+ }
115
+ case 'UserDataflowInstance': {
116
+ this.logEvent('User Dataflow Instructions', 'executed', waveAssetEvent);
117
+ break;
118
+ }
119
+ case 'ExtendedType': {
120
+ this.logEvent('Template Extensions', 'created', waveAssetEvent);
121
+ break;
122
+ }
123
+ case 'SystemDataflowInstance': {
124
+ this.logEvent('System Dataflow Instructions', 'executed', waveAssetEvent);
125
+ break;
126
+ }
127
+ case 'ReplicationDataflowInstance': {
128
+ this.logEvent('Replication Dataflow Instructions', 'executed', waveAssetEvent);
129
+ break;
130
+ }
131
+ case 'UserXmd': {
132
+ this.logEvent('User XMDs', 'created', waveAssetEvent);
133
+ break;
134
+ }
135
+ case 'AssetPruning': {
136
+ this.logEvent('Asset', 'deleted', waveAssetEvent);
137
+ break;
138
+ }
139
+ case 'Image': {
140
+ this.logEvent('Images', 'created', waveAssetEvent);
141
+ break;
142
+ }
143
+ case 'Application': {
144
+ this.createEventJson(waveAssetEvent);
145
+ if (waveAssetEvent.status === 'Success') {
146
+ this.ux.log(this.getStreamResultMark(true), messages.getMessage('finishAppCreation', [waveAssetEvent.label]));
147
+ }
148
+ else {
149
+ // failed or cancelled
150
+ this.ux.log(this.getStreamResultMark(false), messages.getMessage('finishAppCreationFailure', [waveAssetEvent.message]));
151
+ (0, utils_1.throwWithData)(messages.getMessage('finishAppCreationFailure', [waveAssetEvent.message]), {
152
+ id: folderId,
153
+ events: this.streamingResults
154
+ });
155
+ }
156
+ return { completed: true };
157
+ }
158
+ }
159
+ return { completed: false };
160
+ }
161
+ logEvent(eventDisplayName, action, event) {
162
+ if (this.allEvents && event.total > 0) {
163
+ this.createEventJson(event);
164
+ if (event.status === 'Success') {
165
+ this.ux.log(this.getStreamResultMark(true), messages.getMessage('verboseAppCreateEventSuccess', [
166
+ messages.getMessage('appCreateSuccessfulLabel'),
167
+ eventDisplayName,
168
+ event.index,
169
+ event.total,
170
+ event.label
171
+ ]));
172
+ }
173
+ else {
174
+ this.ux.log(this.getStreamResultMark(false), messages.getMessage('appCreateEventFail', [
175
+ messages.getMessage('appCreateEventFailureLabel'),
176
+ eventDisplayName,
177
+ event.index,
178
+ event.total,
179
+ event.label,
180
+ event.message
181
+ ]));
182
+ }
183
+ }
184
+ else {
185
+ if (event.status === 'Success' && event.total > 0 && event.total === event.index) {
186
+ this.createEventJson(event);
187
+ this.ux.log(this.getStreamResultMark(true), messages.getMessage('appCreateEvent', [event.total, eventDisplayName, action]));
188
+ }
189
+ if (event.status !== 'Success') {
190
+ this.createEventJson(event);
191
+ this.ux.log(this.getStreamResultMark(true), messages.getMessage('appCreateEventFail', [
192
+ messages.getMessage('appCreateEventFailureLabel'),
193
+ eventDisplayName,
194
+ event.index,
195
+ event.total,
196
+ event.label,
197
+ event.message
198
+ ]));
199
+ }
200
+ }
201
+ }
202
+ async createStreamingClient(options) {
203
+ const timeout = kit_1.Duration.minutes(this.wait);
204
+ options.setHandshakeTimeout(timeout);
205
+ options.setSubscribeTimeout(timeout);
206
+ const asyncStatusClient = await core_1.StreamingClient.create(options);
207
+ await asyncStatusClient.handshake();
208
+ // Stream all WaveAssetEvents events for this org
209
+ asyncStatusClient.replay(-1);
210
+ return asyncStatusClient;
211
+ }
212
+ createEventJson(event) {
213
+ const entry = {
214
+ EventType: event.eventType,
215
+ Status: event.status,
216
+ Index: event.index,
217
+ Total: event.total,
218
+ ItemLabel: event.label,
219
+ Message: event.message
220
+ };
221
+ this.streamingResults.push(entry);
222
+ }
223
+ getStreamResultMark(success) {
224
+ if (process.platform === 'win32') {
225
+ return '';
226
+ }
227
+ if (success) {
228
+ return chalk_1.default.green('✔');
229
+ }
230
+ return chalk_1.default.red('✖');
231
+ }
232
+ }
233
+ exports.default = AppStreaming;
234
+ //# sourceMappingURL=appStreaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appStreaming.js","sourceRoot":"","sources":["../../../../src/lib/analytics/event/appStreaming.ts"],"names":[],"mappings":"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"}
package/messages/app.json CHANGED
@@ -25,12 +25,15 @@
25
25
  "applogFlagLongDescription": "Specify to include app creation log details.",
26
26
  "appCreateAsyncDescription": "create app asynchronously",
27
27
  "appCreateAsyncLongDescription": "Create app asynchronously.",
28
+ "appUpdateAsyncDescription": "update app asynchronously",
29
+ "appUpdateAsyncLongDescription": "Update app asynchronously.",
28
30
  "appCreateAllEventsDescription": "verbose display of all app create events",
29
31
  "appCreateAllEventsLongDescription": "Verbose display of all app create events.",
30
32
  "appDefinitionFileFlagDescription": "Tableau CRM template definition file; required unless --templateid is specified",
31
33
  "appDefinitionFileFlagLongDescription": "Tableau CRM template definition file; required unless a --templateid value is specified.",
32
34
  "appsFound": "Found [%s] Tableau CRM apps.",
33
35
  "startAppCreation": "Successfully started the creation process for Tableau CRM app [%s].",
36
+ "startAppUpdate": "Successfully started the update process for Tableau CRM app [%s].",
34
37
  "appCreateEvent": "%s %s %s, 0 failed",
35
38
  "verboseAppCreateEventSuccess": "%s %s %s of %s [%s]",
36
39
  "appCreateEventFail": "%s %s %s of %s [%s] with message [%s]",