@salesforce/analytics 1.0.6 → 1.0.9
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.
- package/CHANGELOG.md +18 -0
- package/README.md +88 -49
- package/lib/commands/analytics/app/create.d.ts +1 -17
- package/lib/commands/analytics/app/create.js +7 -186
- package/lib/commands/analytics/app/create.js.map +1 -1
- package/lib/commands/analytics/app/update.d.ts +10 -1
- package/lib/commands/analytics/app/update.js +31 -5
- package/lib/commands/analytics/app/update.js.map +1 -1
- package/lib/commands/analytics/autoinstall/app/create.js +2 -2
- package/lib/commands/analytics/autoinstall/app/create.js.map +1 -1
- package/lib/commands/analytics/autoinstall/app/delete.js +2 -2
- package/lib/commands/analytics/autoinstall/app/delete.js.map +1 -1
- package/lib/commands/analytics/autoinstall/app/update.js +2 -2
- package/lib/commands/analytics/autoinstall/app/update.js.map +1 -1
- package/lib/commands/analytics/enable.js +2 -2
- package/lib/commands/analytics/enable.js.map +1 -1
- package/lib/commands/analytics/recipe/list.d.ts +17 -0
- package/lib/commands/analytics/recipe/list.js +41 -0
- package/lib/commands/analytics/recipe/list.js.map +1 -0
- package/lib/commands/analytics/template/create.d.ts +1 -0
- package/lib/commands/analytics/template/create.js +14 -3
- package/lib/commands/analytics/template/create.js.map +1 -1
- package/lib/commands/analytics/template/update.d.ts +1 -0
- package/lib/commands/analytics/template/update.js +13 -2
- package/lib/commands/analytics/template/update.js.map +1 -1
- package/lib/lib/analytics/constants.d.ts +2 -2
- package/lib/lib/analytics/constants.js +3 -3
- package/lib/lib/analytics/constants.js.map +1 -1
- package/lib/lib/analytics/event/appStreaming.d.ts +30 -0
- package/lib/lib/analytics/event/appStreaming.js +234 -0
- package/lib/lib/analytics/event/appStreaming.js.map +1 -0
- package/lib/lib/analytics/recipe/recipe.d.ts +14 -0
- package/lib/lib/analytics/recipe/recipe.js +20 -0
- package/lib/lib/analytics/recipe/recipe.js.map +1 -0
- package/lib/lib/analytics/template/wavetemplate.d.ts +4 -2
- package/lib/lib/analytics/template/wavetemplate.js +6 -3
- package/lib/lib/analytics/template/wavetemplate.js.map +1 -1
- package/messages/app.json +3 -0
- package/messages/recipe.json +5 -0
- package/messages/template.json +3 -1
- package/oclif.manifest.json +1 -1
- package/package.json +6 -3
|
@@ -24,6 +24,7 @@ class Update extends command_1.SfdxCommand {
|
|
|
24
24
|
}
|
|
25
25
|
let folderid = this.flags.folderid;
|
|
26
26
|
const assetversion = this.flags.assetversion;
|
|
27
|
+
const recipeIds = this.flags.recipeids;
|
|
27
28
|
const template = new wavetemplate_1.default(this.org);
|
|
28
29
|
// no folder id provided, first see if we can find in on the folderSource of the template
|
|
29
30
|
if (!folderid) {
|
|
@@ -56,7 +57,7 @@ class Update extends command_1.SfdxCommand {
|
|
|
56
57
|
return;
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
|
-
const result = await template.update(folderid, templateInput, assetversion);
|
|
60
|
+
const result = await template.update(folderid, templateInput, assetversion, recipeIds);
|
|
60
61
|
this.ux.log(messages.getMessage('updateSuccess', [result === null || result === void 0 ? void 0 : result.name, result === null || result === void 0 ? void 0 : result.id, folderid]));
|
|
61
62
|
return templateInput;
|
|
62
63
|
}
|
|
@@ -64,7 +65,10 @@ class Update extends command_1.SfdxCommand {
|
|
|
64
65
|
exports.default = Update;
|
|
65
66
|
Update.description = messages.getMessage('updateCommandDescription');
|
|
66
67
|
Update.longDescription = messages.getMessage('updateCommandLongDescription');
|
|
67
|
-
Update.examples = [
|
|
68
|
+
Update.examples = [
|
|
69
|
+
'$ sfdx analytics:template:update -t templateid -f folderid',
|
|
70
|
+
'$ sfdx analytics:template:update -t templateid -f folderid -r "recipeid1, recipeid2"'
|
|
71
|
+
];
|
|
68
72
|
Update.flagsConfig = {
|
|
69
73
|
templateid: command_1.flags.id({
|
|
70
74
|
char: 't',
|
|
@@ -83,6 +87,13 @@ Update.flagsConfig = {
|
|
|
83
87
|
description: messages.getMessage('folderidFlagDescription'),
|
|
84
88
|
longDescription: messages.getMessage('folderidFlagLongDescription')
|
|
85
89
|
}),
|
|
90
|
+
// recipeids only work in 238+, they are silently ignored on the server in 236-
|
|
91
|
+
recipeids: command_1.flags.array({
|
|
92
|
+
char: 'r',
|
|
93
|
+
required: false,
|
|
94
|
+
description: messages.getMessage('recipeidsFlagDescription'),
|
|
95
|
+
longDescription: messages.getMessage('recipeidsFlagLongDescription')
|
|
96
|
+
}),
|
|
86
97
|
assetversion: command_1.flags.integer({
|
|
87
98
|
char: 'v',
|
|
88
99
|
description: messages.getMessage('assetVersionFlagDescription'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/analytics/template/update.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAEH,iDAAqE;AACrE,2CAA4D;AAE5D,+EAAuD;AACvD,gGAAwE;AAExE,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;AAE5E,MAAqB,MAAO,SAAQ,qBAAW;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/analytics/template/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** Default timeout to wait for app creation commands, in minutes. */
|
|
2
|
-
export declare const
|
|
1
|
+
/** Default timeout to wait for app creation/update commands, in minutes. */
|
|
2
|
+
export declare const DEF_APP_CREATE_UPDATE_TIMEOUT = 10;
|
|
3
3
|
/** Default server polling interval, in milliseconds. */
|
|
4
4
|
export declare const DEF_POLLING_INTERVAL = 5000;
|
|
5
5
|
/** The shortest polling interval we'll let people specify, in milliseconds */
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.MIN_POLLING_INTERVAL = exports.DEF_POLLING_INTERVAL = exports.
|
|
10
|
-
/** Default timeout to wait for app creation commands, in minutes. */
|
|
11
|
-
exports.
|
|
9
|
+
exports.MIN_POLLING_INTERVAL = exports.DEF_POLLING_INTERVAL = exports.DEF_APP_CREATE_UPDATE_TIMEOUT = void 0;
|
|
10
|
+
/** Default timeout to wait for app creation/update commands, in minutes. */
|
|
11
|
+
exports.DEF_APP_CREATE_UPDATE_TIMEOUT = 10;
|
|
12
12
|
/** Default server polling interval, in milliseconds. */
|
|
13
13
|
// the md commands in force: default to 5000ms. polling interval so use the same here
|
|
14
14
|
exports.DEF_POLLING_INTERVAL = 5000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/analytics/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/analytics/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,4EAA4E;AAC/D,QAAA,6BAA6B,GAAG,EAAE,CAAC;AAEhD,wDAAwD;AACxD,qFAAqF;AACxE,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAEzC,8EAA8E;AACjE,QAAA,oBAAoB,GAAG,IAAI,CAAC"}
|
|
@@ -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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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Org } from '@salesforce/core';
|
|
2
|
+
export declare type RecipeType = {
|
|
3
|
+
id?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
namespace?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
status?: string;
|
|
8
|
+
};
|
|
9
|
+
export default class Recipe {
|
|
10
|
+
private readonly connection;
|
|
11
|
+
private readonly recipesUrl;
|
|
12
|
+
constructor(organization: Org);
|
|
13
|
+
list(): Promise<RecipeType[]>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2016, 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const request_1 = require("../request");
|
|
10
|
+
class Recipe {
|
|
11
|
+
constructor(organization) {
|
|
12
|
+
this.connection = organization.getConnection();
|
|
13
|
+
this.recipesUrl = `${this.connection.baseUrl()}/wave/recipes/`;
|
|
14
|
+
}
|
|
15
|
+
list() {
|
|
16
|
+
return (0, request_1.fetchAllPages)(this.connection, this.recipesUrl, 'recipes');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.default = Recipe;
|
|
20
|
+
//# sourceMappingURL=recipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../../src/lib/analytics/recipe/recipe.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAGH,wCAA2C;AAU3C,MAAqB,MAAM;IAIzB,YAAmB,YAAiB;QAClC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACjE,CAAC;IAEM,IAAI;QACT,OAAO,IAAA,uBAAa,EAAa,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC;CACF;AAZD,yBAYC"}
|
|
@@ -10,6 +10,7 @@ export declare type TemplateType = Record<string, unknown> & {
|
|
|
10
10
|
};
|
|
11
11
|
templateType?: string;
|
|
12
12
|
assetVersion?: string;
|
|
13
|
+
recipeIds?: string[];
|
|
13
14
|
};
|
|
14
15
|
export default class WaveTemplate {
|
|
15
16
|
readonly serverVersion: number;
|
|
@@ -17,11 +18,12 @@ export default class WaveTemplate {
|
|
|
17
18
|
private readonly templatesUrl;
|
|
18
19
|
constructor(organization: Org);
|
|
19
20
|
fetch(templateNameOrId: string, viewOnly?: boolean): Promise<TemplateType>;
|
|
20
|
-
create(folderid: string, { label, description }?: {
|
|
21
|
+
create(folderid: string, { label, description, recipeIds }?: {
|
|
21
22
|
label?: string;
|
|
22
23
|
description?: string;
|
|
24
|
+
recipeIds?: string[];
|
|
23
25
|
}): Promise<string | undefined>;
|
|
24
|
-
update(folderid: string, templateIdOrName: string, templateAssetVersion: number | unknown): Promise<{
|
|
26
|
+
update(folderid: string, templateIdOrName: string, templateAssetVersion: number | unknown, recipeIds: string[] | unknown): Promise<{
|
|
25
27
|
id: string | undefined;
|
|
26
28
|
name: string | undefined;
|
|
27
29
|
} | undefined>;
|
|
@@ -20,8 +20,8 @@ class WaveTemplate {
|
|
|
20
20
|
(0, utils_1.throwError)(response);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
async create(folderid, { label, description } = {}) {
|
|
24
|
-
const body = JSON.stringify({ folderSource: { id: folderid }, label, description });
|
|
23
|
+
async create(folderid, { label, description, recipeIds } = {}) {
|
|
24
|
+
const body = JSON.stringify({ folderSource: { id: folderid }, label, description, recipeIds });
|
|
25
25
|
const response = await (0, request_1.connectRequest)(this.connection, {
|
|
26
26
|
method: 'POST',
|
|
27
27
|
url: this.templatesUrl,
|
|
@@ -34,11 +34,14 @@ class WaveTemplate {
|
|
|
34
34
|
(0, utils_1.throwError)(response);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
async update(folderid, templateIdOrName, templateAssetVersion) {
|
|
37
|
+
async update(folderid, templateIdOrName, templateAssetVersion, recipeIds) {
|
|
38
38
|
const opts = { folderSource: { id: folderid } };
|
|
39
39
|
if (templateAssetVersion && this.serverVersion >= 54.0) {
|
|
40
40
|
opts.assetVersion = templateAssetVersion;
|
|
41
41
|
}
|
|
42
|
+
if (recipeIds && this.serverVersion >= 55.0) {
|
|
43
|
+
opts.recipeIds = recipeIds;
|
|
44
|
+
}
|
|
42
45
|
const body = JSON.stringify(opts);
|
|
43
46
|
const wtUrl = this.templatesUrl + encodeURIComponent(templateIdOrName);
|
|
44
47
|
const response = await (0, request_1.connectRequest)(this.connection, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wavetemplate.js","sourceRoot":"","sources":["../../../../src/lib/analytics/template/wavetemplate.ts"],"names":[],"mappings":";;AAOA,wCAA2D;AAC3D,oCAAsC;
|
|
1
|
+
{"version":3,"file":"wavetemplate.js","sourceRoot":"","sources":["../../../../src/lib/analytics/template/wavetemplate.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]",
|
package/messages/template.json
CHANGED
|
@@ -44,5 +44,7 @@
|
|
|
44
44
|
"displayDetailHeader": "Template Details",
|
|
45
45
|
"missingRequiredField": "Missing Required Field: templateid or templatename",
|
|
46
46
|
"assetVersionFlagDescription": "version number for upgrading the template (available in api version 54.0)",
|
|
47
|
-
"assetVersionFlagLongDescription": "Version number for upgrading the template."
|
|
47
|
+
"assetVersionFlagLongDescription": "Version number for upgrading the template.",
|
|
48
|
+
"recipeidsFlagDescription": "comma-separated list of recipe IDs",
|
|
49
|
+
"recipeidsFlagLongDescription": "comma-separated list of recipe IDs to be included with the template. "
|
|
48
50
|
}
|