@salesforce/plugin-orchestrator 1.0.18 → 1.0.20

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,32 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ export type OrchestratorAppUpgradeResult = {
3
+ appId: string;
4
+ };
5
+ export default class OrchestratorAppUpgrade extends SfCommand<OrchestratorAppUpgradeResult> {
6
+ static readonly summary: string;
7
+ static readonly description: string;
8
+ static readonly examples: string[];
9
+ static readonly state = "preview";
10
+ static readonly flags: {
11
+ 'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
12
+ 'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ 'app-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ 'app-name': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ 'template-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
16
+ 'template-values': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ 'runtime-method': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ 'log-level': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ 'chain-name': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ };
21
+ private static validateRequiredFlags;
22
+ private static validateTemplateMatch;
23
+ private static parseTemplateValues;
24
+ private static buildUpdateOptions;
25
+ private static resolveAppById;
26
+ private static handleUpgradeError;
27
+ run(): Promise<OrchestratorAppUpgradeResult>;
28
+ private resolveApp;
29
+ private resolveAppByName;
30
+ private executeUpgrade;
31
+ private displayUpgradedApp;
32
+ }
@@ -0,0 +1,188 @@
1
+ /*
2
+ * Copyright 2025, Salesforce, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
17
+ import { Messages, SfError } from '@salesforce/core';
18
+ import AppFrameworkApp from '../../../utils/app/appframeworkapp.js';
19
+ import { AppListUtil } from '../../../utils/app/appListUtils.js';
20
+ import { AppDisplayUtil } from '../../../utils/app/appDisplayUtil.js';
21
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
22
+ const messages = Messages.loadMessages('@salesforce/plugin-orchestrator', 'orchestrator.app.upgrade');
23
+ export default class OrchestratorAppUpgrade extends SfCommand {
24
+ static summary = messages.getMessage('summary');
25
+ static description = messages.getMessage('description');
26
+ static examples = messages.getMessages('examples');
27
+ static state = 'preview';
28
+ static flags = {
29
+ 'target-org': Flags.requiredOrg({
30
+ summary: messages.getMessage('flags.target-org.summary'),
31
+ description: messages.getMessage('flags.target-org.description'),
32
+ required: true,
33
+ }),
34
+ 'api-version': Flags.orgApiVersion({
35
+ summary: messages.getMessage('flags.api-version.summary'),
36
+ description: messages.getMessage('flags.api-version.description'),
37
+ }),
38
+ 'app-id': Flags.string({
39
+ char: 'i',
40
+ summary: messages.getMessage('flags.app-id.summary'),
41
+ description: messages.getMessage('flags.app-id.description'),
42
+ exclusive: ['app-name'],
43
+ }),
44
+ 'app-name': Flags.string({
45
+ char: 'n',
46
+ summary: messages.getMessage('flags.app-name.summary'),
47
+ description: messages.getMessage('flags.app-name.description'),
48
+ exclusive: ['app-id'],
49
+ }),
50
+ 'template-id': Flags.string({
51
+ char: 't',
52
+ summary: messages.getMessage('flags.template-id.summary'),
53
+ description: messages.getMessage('flags.template-id.description'),
54
+ required: true,
55
+ }),
56
+ 'template-values': Flags.string({
57
+ char: 'v',
58
+ summary: messages.getMessage('flags.template-values.summary'),
59
+ description: messages.getMessage('flags.template-values.description'),
60
+ }),
61
+ 'runtime-method': Flags.string({
62
+ char: 'r',
63
+ summary: messages.getMessage('flags.runtime-method.summary'),
64
+ description: messages.getMessage('flags.runtime-method.description'),
65
+ options: ['sync', 'async'],
66
+ }),
67
+ 'log-level': Flags.string({
68
+ char: 'l',
69
+ summary: messages.getMessage('flags.log-level.summary'),
70
+ description: messages.getMessage('flags.log-level.description'),
71
+ options: ['debug', 'info', 'warn', 'error'],
72
+ }),
73
+ 'chain-name': Flags.string({
74
+ char: 'c',
75
+ summary: messages.getMessage('flags.chain-name.summary'),
76
+ description: messages.getMessage('flags.chain-name.description'),
77
+ }),
78
+ };
79
+ static validateRequiredFlags(flags) {
80
+ if (!flags['app-id'] && !flags['app-name']) {
81
+ throw new SfError(messages.getMessage('noAppSpecified'), 'AppUpgradeError', messages.getMessages('error.UpgradeError.Actions'));
82
+ }
83
+ }
84
+ static validateTemplateMatch(app, templateId) {
85
+ if (app.templateSourceId !== templateId) {
86
+ throw new SfError(`Template ID mismatch. App is using template '${app.templateSourceId ?? 'unknown'}' but you specified '${templateId}'. You cannot change the underlying template during an upgrade.`, 'AppUpgradeError', messages.getMessages('error.UpgradeError.Actions'));
87
+ }
88
+ }
89
+ static parseTemplateValues(templateValuesString) {
90
+ if (!templateValuesString) {
91
+ return undefined;
92
+ }
93
+ try {
94
+ const parsed = JSON.parse(templateValuesString);
95
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
96
+ throw new SfError('Template values must be a valid JSON object, not an array or primitive value.', 'AppUpgradeError', messages.getMessages('error.UpgradeError.Actions'));
97
+ }
98
+ return parsed;
99
+ }
100
+ catch (error) {
101
+ if (error instanceof SfError) {
102
+ throw error;
103
+ }
104
+ throw new SfError(messages.getMessage('invalidTemplateValues'), 'AppUpgradeError', messages.getMessages('error.UpgradeError.Actions'));
105
+ }
106
+ }
107
+ static buildUpdateOptions(flags, templateValues) {
108
+ const updateOptions = {
109
+ templateSourceId: flags['template-id'],
110
+ templateValues,
111
+ runtimeMethod: flags['runtime-method'],
112
+ logLevel: flags['log-level'],
113
+ };
114
+ if (flags['chain-name']) {
115
+ updateOptions.chainName = flags['chain-name'];
116
+ }
117
+ return updateOptions;
118
+ }
119
+ static async resolveAppById(appId, appFrameworkApp) {
120
+ if (!appId) {
121
+ throw new SfError(messages.getMessage('noAppSpecified'), 'AppUpgradeError', messages.getMessages('error.UpgradeError.Actions'));
122
+ }
123
+ const app = await appFrameworkApp.getApp(appId);
124
+ if (!app) {
125
+ throw new SfError(messages.getMessage('noAppFound'), 'AppUpgradeError', messages.getMessages('error.UpgradeError.Actions'));
126
+ }
127
+ return { appId, app };
128
+ }
129
+ static handleUpgradeError(error) {
130
+ if (error instanceof SfError) {
131
+ throw error;
132
+ }
133
+ throw new SfError(messages.getMessage('error.UpgradeError', [error.message]), 'AppUpgradeError', messages.getMessages('error.UpgradeError.Actions'), undefined, error);
134
+ }
135
+ async run() {
136
+ const { flags } = await this.parse(OrchestratorAppUpgrade);
137
+ OrchestratorAppUpgrade.validateRequiredFlags(flags);
138
+ try {
139
+ const connection = flags['target-org'].getConnection(flags['api-version']);
140
+ const appFrameworkApp = new AppFrameworkApp(connection);
141
+ const { appId, app } = await this.resolveApp(flags, appFrameworkApp);
142
+ OrchestratorAppUpgrade.validateTemplateMatch(app, flags['template-id']);
143
+ const templateValues = OrchestratorAppUpgrade.parseTemplateValues(flags['template-values']);
144
+ const updateOptions = OrchestratorAppUpgrade.buildUpdateOptions(flags, templateValues);
145
+ const upgradedAppId = await this.executeUpgrade(appFrameworkApp, appId, updateOptions);
146
+ await this.displayUpgradedApp(appFrameworkApp, upgradedAppId);
147
+ return { appId: upgradedAppId };
148
+ }
149
+ catch (error) {
150
+ this.spinner.stop();
151
+ OrchestratorAppUpgrade.handleUpgradeError(error);
152
+ }
153
+ }
154
+ async resolveApp(flags, appFrameworkApp) {
155
+ if (flags['app-name']) {
156
+ return this.resolveAppByName(flags['app-name'], appFrameworkApp);
157
+ }
158
+ return OrchestratorAppUpgrade.resolveAppById(flags['app-id'], appFrameworkApp);
159
+ }
160
+ async resolveAppByName(appName, appFrameworkApp) {
161
+ this.spinner.start(messages.getMessage('fetchingApp'));
162
+ const apps = await appFrameworkApp.list();
163
+ const foundApp = apps.find((a) => a.name === appName);
164
+ if (!foundApp?.id) {
165
+ this.spinner.stop();
166
+ throw new SfError(messages.getMessage('noAppFound'), 'AppUpgradeError', messages.getMessages('error.UpgradeError.Actions'));
167
+ }
168
+ this.spinner.stop();
169
+ return { appId: foundApp.id, app: foundApp };
170
+ }
171
+ async executeUpgrade(appFrameworkApp, appId, updateOptions) {
172
+ this.spinner.start(messages.getMessage('upgradingApp'));
173
+ const upgradedAppId = await appFrameworkApp.updateApp(appId, updateOptions);
174
+ this.spinner.stop();
175
+ this.log(messages.getMessage('upgradeSuccess', [upgradedAppId]));
176
+ return upgradedAppId;
177
+ }
178
+ async displayUpgradedApp(appFrameworkApp, upgradedAppId) {
179
+ const upgradedApp = await appFrameworkApp.getApp(upgradedAppId);
180
+ if (upgradedApp) {
181
+ const processedApps = AppListUtil.processApps([upgradedApp]);
182
+ if (processedApps.length > 0) {
183
+ AppDisplayUtil.displayAppDetails(this, processedApps[0]);
184
+ }
185
+ }
186
+ }
187
+ }
188
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../../src/commands/orchestrator/app/upgrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ type TransformationPayload = {
3
+ document: {
4
+ user: {
5
+ firstName: string;
6
+ lastName: string;
7
+ userName: string;
8
+ id: string;
9
+ hello: string;
10
+ };
11
+ company: {
12
+ id: string;
13
+ name: string;
14
+ namespace: string;
15
+ };
16
+ };
17
+ values: {
18
+ Variables: {
19
+ hello: string;
20
+ };
21
+ };
22
+ definition: {
23
+ rules: Array<{
24
+ name: string;
25
+ actions: Array<{
26
+ action: string;
27
+ description: string;
28
+ key: string;
29
+ path: string;
30
+ value: string;
31
+ }>;
32
+ }>;
33
+ };
34
+ };
35
+ type TemplateInfo = {
36
+ name: string;
37
+ path: string;
38
+ source: 'static' | 'local';
39
+ };
40
+ export type TemplatePreviewResult = {
41
+ status: 'success' | 'error';
42
+ template?: TemplateInfo;
43
+ input?: TransformationPayload;
44
+ output?: unknown;
45
+ error?: string;
46
+ executionTime?: string;
47
+ };
48
+ export default class TemplateEval extends SfCommand<TemplatePreviewResult> {
49
+ static readonly summary: string;
50
+ static readonly description: string;
51
+ static readonly examples: string[];
52
+ static readonly flags: {
53
+ 'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
54
+ 'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
55
+ 'template-info': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
56
+ variables: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
57
+ rules: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
58
+ };
59
+ run(): Promise<TemplatePreviewResult>;
60
+ private getTemplatePayload;
61
+ private getDirectFilePayload;
62
+ }
63
+ export {};
@@ -0,0 +1,126 @@
1
+ /*
2
+ * Copyright 2025, Salesforce, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import * as fs from 'node:fs/promises';
17
+ import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
18
+ import { Messages } from '@salesforce/core';
19
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
20
+ const messages = Messages.loadMessages('@salesforce/plugin-orchestrator', 'orchestrator.rules.eval');
21
+ export default class TemplateEval extends SfCommand {
22
+ static summary = messages.getMessage('summary');
23
+ static description = messages.getMessage('description');
24
+ static examples = messages.getMessages('examples');
25
+ static flags = {
26
+ 'target-org': Flags.requiredOrg({
27
+ summary: messages.getMessage('flags.target-org.summary'),
28
+ description: messages.getMessage('flags.target-org.description'),
29
+ required: true,
30
+ }),
31
+ 'api-version': Flags.orgApiVersion({
32
+ summary: messages.getMessage('flags.api-version.summary'),
33
+ description: messages.getMessage('flags.api-version.description'),
34
+ }),
35
+ 'template-info': Flags.file({
36
+ char: 't',
37
+ summary: messages.getMessage('flags.template-info.summary'),
38
+ description: messages.getMessage('flags.template-info.description'),
39
+ required: true,
40
+ }),
41
+ variables: Flags.file({
42
+ char: 'v',
43
+ summary: messages.getMessage('flags.variables.summary'),
44
+ description: messages.getMessage('flags.variables.description'),
45
+ required: true,
46
+ }),
47
+ rules: Flags.file({
48
+ char: 'r',
49
+ summary: messages.getMessage('flags.rules.summary'),
50
+ description: messages.getMessage('flags.rules.description'),
51
+ required: true,
52
+ }),
53
+ };
54
+ async run() {
55
+ const { flags } = await this.parse(TemplateEval);
56
+ try {
57
+ const connection = flags['target-org'].getConnection(flags['api-version']);
58
+ // Determine template source and payload
59
+ const templateResult = await this.getTemplatePayload(flags);
60
+ this.log(`Testing transformation: ${templateResult.template.name}`);
61
+ this.log(`Source: ${templateResult.template.source}`);
62
+ if (templateResult.template.source === 'local') {
63
+ this.log(`Path: ${templateResult.template.path}`);
64
+ }
65
+ const startTime = Date.now();
66
+ // Make request to jsonxform/transformation endpoint
67
+ const apiPath = `/services/data/v${connection.getApiVersion()}/jsonxform/transformation`;
68
+ const result = await connection.request({
69
+ method: 'POST',
70
+ url: apiPath,
71
+ body: JSON.stringify(templateResult.payload),
72
+ headers: {
73
+ 'Content-Type': 'application/json',
74
+ },
75
+ });
76
+ const executionTime = `${Date.now() - startTime}ms`;
77
+ this.log('Transformation completed successfully!');
78
+ this.log('Results:');
79
+ this.log(JSON.stringify(result, null, 2));
80
+ return {
81
+ status: 'success',
82
+ template: templateResult.template,
83
+ input: templateResult.payload,
84
+ output: result,
85
+ executionTime,
86
+ };
87
+ }
88
+ catch (error) {
89
+ this.log(`Transformation failed: ${error.message}`);
90
+ return {
91
+ status: 'error',
92
+ error: error.message,
93
+ };
94
+ }
95
+ }
96
+ async getTemplatePayload(flags) {
97
+ return this.getDirectFilePayload(flags['template-info'], flags['variables'], flags['rules']);
98
+ }
99
+ async getDirectFilePayload(templateInfoFile, variablesFile, rulesFile) {
100
+ this.log(`Loading template info: ${templateInfoFile}`);
101
+ // Read and parse the template-info file
102
+ const templateInfoContent = await fs.readFile(templateInfoFile, 'utf8');
103
+ const document = JSON.parse(templateInfoContent);
104
+ // Read variables file
105
+ this.log(`Loading variables: ${variablesFile}`);
106
+ const variablesContent = await fs.readFile(variablesFile, 'utf8');
107
+ const values = JSON.parse(variablesContent);
108
+ // Read rules file
109
+ this.log(`Loading rules: ${rulesFile}`);
110
+ const rulesContent = await fs.readFile(rulesFile, 'utf8');
111
+ const definition = JSON.parse(rulesContent);
112
+ return {
113
+ template: {
114
+ name: 'Direct Files',
115
+ path: templateInfoFile,
116
+ source: 'local',
117
+ },
118
+ payload: {
119
+ document: document,
120
+ values: values,
121
+ definition: definition,
122
+ },
123
+ };
124
+ }
125
+ }
126
+ //# sourceMappingURL=eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../../../src/commands/orchestrator/rules/eval.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export default class ListTemplate extends SfCommand<TemplateData[]> {
8
8
  static readonly flags: {
9
9
  'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
10
10
  'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
12
  };
12
13
  run(): Promise<TemplateData[]>;
13
14
  }
@@ -35,6 +35,11 @@ export default class ListTemplate extends SfCommand {
35
35
  summary: messages.getMessage('flags.api-version.summary'),
36
36
  description: messages.getMessage('flags.api-version.description'),
37
37
  }),
38
+ all: Flags.boolean({
39
+ summary: messages.getMessage('flags.all.summary'),
40
+ description: messages.getMessage('flags.all.description'),
41
+ default: false,
42
+ }),
38
43
  };
39
44
  async run() {
40
45
  const { flags } = await this.parse(ListTemplate);
@@ -44,12 +49,17 @@ export default class ListTemplate extends SfCommand {
44
49
  const appFrameworkTemplate = new AppFrameworkTemplate(connection);
45
50
  const rawTemplates = await appFrameworkTemplate.list();
46
51
  this.spinner.stop();
47
- const templates = TemplateListUtil.processTemplates(rawTemplates);
52
+ let templates = TemplateListUtil.processTemplates(rawTemplates);
53
+ // Filter out standard templates by default unless --all flag is used
54
+ if (!flags.all) {
55
+ templates = templates.filter((template) => !template.name?.startsWith('sfdc_internal__'));
56
+ }
48
57
  if (templates.length > 0) {
49
58
  TemplateDisplayUtil.displayTemplateList(this, templates);
50
59
  }
51
60
  else {
52
- this.log(messages.getMessage('noResultsFound'));
61
+ const messageKey = flags.all ? 'noResultsFound' : 'noCustomTemplatesFound';
62
+ this.log(messages.getMessage(messageKey));
53
63
  }
54
64
  return templates;
55
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/orchestrator/template/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/orchestrator/template/list.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ List all available templates in the target org.
6
6
 
7
7
  Templates are reusable configurations that define the structure and settings for creating orchestrated apps. Use this command to discover available templates in your org before creating new apps.
8
8
 
9
+ By default, this command only shows custom templates created in your org. Standard Salesforce-provided templates are filtered out to reduce noise. Use the --all flag to include all templates including the standard ones.
10
+
9
11
  Templates are displayed in a table format showing their name, label, ID, type, and other metadata. This information helps you choose the right template for your orchestrated app development.
10
12
 
11
13
  You must have Data Cloud and Tableau Next enabled in your org and the AppFrameworkViewApp user permission to view templates. This command works with production orgs, sandboxes, and scratch orgs.
@@ -28,6 +30,14 @@ You must have Data Cloud and Tableau Next enabled in your org and the AppFramewo
28
30
 
29
31
  <%= config.bin %> <%= command.id %> --target-org mySandbox --api-version 60.0
30
32
 
33
+ - List all templates including standard Salesforce templates:
34
+
35
+ <%= config.bin %> <%= command.id %> --all
36
+
37
+ - List all templates in a specific org:
38
+
39
+ <%= config.bin %> <%= command.id %> --target-org myOrg --all
40
+
31
41
  # flags.target-org.summary
32
42
 
33
43
  Login username or alias for the target org.
@@ -44,6 +54,14 @@ Override the API version used for API requests.
44
54
 
45
55
  Override the API version used for orchestrator API requests. Use this flag to specify a particular API version when the default version doesn't work with your org's configuration.
46
56
 
57
+ # flags.all.summary
58
+
59
+ Show all templates including standard Salesforce templates.
60
+
61
+ # flags.all.description
62
+
63
+ By default, this command only shows custom templates created in your org. Use this flag to include the standard Salesforce-provided templates (those starting with 'sfdc_internal\_\_') in the results.
64
+
47
65
  # templatesFound
48
66
 
49
67
  Found %s templates:
@@ -52,6 +70,10 @@ Found %s templates:
52
70
 
53
71
  No templates found.
54
72
 
73
+ # noCustomTemplatesFound
74
+
75
+ No custom templates found. Use --all to include standard Salesforce templates.
76
+
55
77
  # fetchingTemplates
56
78
 
57
79
  Fetching templates...