@pdfbutler/migration-cli 0.0.26 → 0.0.28
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/README.md +193 -30
- package/lib/commands/butler/pb/admincredentials.d.ts +0 -5
- package/lib/commands/butler/pb/admincredentials.js +46 -115
- package/lib/commands/butler/pb/admincredentials.js.map +1 -1
- package/lib/commands/butler/pb/adminsettings.d.ts +1 -7
- package/lib/commands/butler/pb/adminsettings.js +41 -110
- package/lib/commands/butler/pb/adminsettings.js.map +1 -1
- package/lib/commands/butler/pb/export.d.ts +10 -8
- package/lib/commands/butler/pb/export.js +302 -312
- package/lib/commands/butler/pb/export.js.map +1 -1
- package/lib/commands/butler/pb/exportdatasource.d.ts +27 -0
- package/lib/commands/butler/pb/exportdatasource.js +161 -0
- package/lib/commands/butler/pb/exportdatasource.js.map +1 -0
- package/lib/commands/butler/pb/exportpack.d.ts +0 -5
- package/lib/commands/butler/pb/exportpack.js +60 -142
- package/lib/commands/butler/pb/exportpack.js.map +1 -1
- package/lib/commands/butler/pb/import.d.ts +16 -9
- package/lib/commands/butler/pb/import.js +400 -267
- package/lib/commands/butler/pb/import.js.map +1 -1
- package/lib/commands/butler/pb/importdatasource.d.ts +30 -0
- package/lib/commands/butler/pb/importdatasource.js +250 -0
- package/lib/commands/butler/pb/importdatasource.js.map +1 -0
- package/lib/commands/butler/pb/importpack.d.ts +0 -5
- package/lib/commands/butler/pb/importpack.js +57 -138
- package/lib/commands/butler/pb/importpack.js.map +1 -1
- package/lib/commands/butler/sb/export/signtemplate.d.ts +23 -0
- package/lib/commands/butler/sb/export/signtemplate.js +111 -0
- package/lib/commands/butler/sb/export/signtemplate.js.map +1 -0
- package/lib/commands/butler/sb/import/signtemplate.d.ts +23 -0
- package/lib/commands/butler/sb/import/signtemplate.js +108 -0
- package/lib/commands/butler/sb/import/signtemplate.js.map +1 -0
- package/lib/utils/authentication.d.ts +4 -0
- package/lib/utils/authentication.js +69 -0
- package/lib/utils/authentication.js.map +1 -0
- package/lib/utils/constants.d.ts +137 -0
- package/lib/utils/constants.js +141 -0
- package/lib/utils/constants.js.map +1 -0
- package/lib/utils/extract-templates.d.ts +1 -0
- package/lib/utils/extract-templates.js +89 -0
- package/lib/utils/extract-templates.js.map +1 -0
- package/lib/utils/logger.d.ts +9 -0
- package/lib/utils/logger.js +51 -0
- package/lib/utils/logger.js.map +1 -0
- package/messages/butler.pb.export.md +4 -0
- package/messages/butler.pb.exportdatasource.md +51 -0
- package/messages/butler.pb.import.md +4 -0
- package/messages/butler.pb.importdatasource.md +51 -0
- package/messages/butler.sb.export.signtemplate.md +35 -0
- package/messages/butler.sb.import.signtemplate.md +35 -0
- package/oclif.manifest.json +321 -48
- package/package.json +223 -215
|
@@ -19,92 +19,56 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
20
20
|
const core_1 = require("@salesforce/core");
|
|
21
21
|
const fs = require("graceful-fs");
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const ERROR_VERSION = 'Verify that you have PDFButler version greater than v1.440.';
|
|
26
|
-
const MSG_CONNECTION_FAILED = 'Connection to Salesforce has been failed.';
|
|
27
|
-
const MSG_CREATION_CONNECTION = 'Creating Connection with the Salesforce org.';
|
|
28
|
-
const MSG_AUTHORIZATION = 'Authorization with the username: [VALUE].';
|
|
29
|
-
const MSG_NO_AUTH_PARAMS = 'No authentication parameters provided. Please provide either username or session and instance parameters.';
|
|
30
|
-
const MSG_RUN_AUTH_COMMAND = 'Run the command "sf org login web" before authenticating with the target.';
|
|
31
|
-
const MSG_CHECK_SESSION_INSTANCE = 'Check if the session is up to date and if the instance is correct.';
|
|
22
|
+
const logger_1 = require("../../../utils/logger");
|
|
23
|
+
const constants_1 = require("../../../utils/constants");
|
|
24
|
+
const authentication_1 = require("../../../utils/authentication");
|
|
32
25
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
33
26
|
const messages = core_1.Messages.loadMessages('@pdfbutler/migration-cli', 'butler.pb.importpack');
|
|
34
27
|
class ButlerPbImportpack extends sf_plugins_core_1.SfCommand {
|
|
35
|
-
static
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
else if (this.isBlank(session) && !this.isBlank(instance)) {
|
|
73
|
-
this.log('Session Id (--session) cannot be empty', 'error');
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
this.log('Session Id and Instance URL (--session and --instance) cannot be empty', 'error');
|
|
77
|
-
}
|
|
78
|
-
this.log(MSG_CHECK_SESSION_INSTANCE, 'error');
|
|
79
|
-
throw new Error(MSG_CONNECTION_FAILED);
|
|
80
|
-
}
|
|
81
|
-
static async authenticate(username, session, instance) {
|
|
82
|
-
let connection;
|
|
83
|
-
if (this.isBlank(username) && (this.isBlank(session) || this.isBlank(instance))) {
|
|
84
|
-
throw new Error(MSG_NO_AUTH_PARAMS);
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
if (this.isBlank(session) || this.isBlank(instance)) {
|
|
88
|
-
connection = await this.authenticateWithTarget(username);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
connection = await this.authenticateWitsSession(session, instance);
|
|
92
|
-
}
|
|
93
|
-
return connection;
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
throw new Error(MSG_CONNECTION_FAILED);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
28
|
+
static summary = messages.getMessage('summary');
|
|
29
|
+
static description = messages.getMessage('description');
|
|
30
|
+
static examples = messages.getMessages('examples');
|
|
31
|
+
static flags = {
|
|
32
|
+
name: sf_plugins_core_1.Flags.string({
|
|
33
|
+
summary: messages.getMessage('flags.name.summary'),
|
|
34
|
+
description: messages.getMessage('flags.name.description'),
|
|
35
|
+
char: 'n',
|
|
36
|
+
required: false,
|
|
37
|
+
}),
|
|
38
|
+
pack: sf_plugins_core_1.Flags.string({
|
|
39
|
+
summary: messages.getMessage('flags.pack.summary'),
|
|
40
|
+
char: 'p',
|
|
41
|
+
required: true,
|
|
42
|
+
}),
|
|
43
|
+
folder: sf_plugins_core_1.Flags.string({
|
|
44
|
+
summary: messages.getMessage('flags.folder.summary'),
|
|
45
|
+
char: 'f',
|
|
46
|
+
required: true,
|
|
47
|
+
}),
|
|
48
|
+
target: sf_plugins_core_1.Flags.string({
|
|
49
|
+
summary: messages.getMessage('flags.target.summary'),
|
|
50
|
+
char: 't',
|
|
51
|
+
required: false,
|
|
52
|
+
}),
|
|
53
|
+
logs: sf_plugins_core_1.Flags.boolean({
|
|
54
|
+
summary: messages.getMessage('flags.logs.summary'),
|
|
55
|
+
char: 'l',
|
|
56
|
+
}),
|
|
57
|
+
session: sf_plugins_core_1.Flags.string({
|
|
58
|
+
summary: messages.getMessage('flags.session.summary'),
|
|
59
|
+
}),
|
|
60
|
+
instance: sf_plugins_core_1.Flags.string({
|
|
61
|
+
summary: messages.getMessage('flags.instance.summary'),
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
static isLogsActive = false;
|
|
99
65
|
static async getFilesInFolder(folderPath, packsToRetrieve) {
|
|
100
66
|
try {
|
|
101
67
|
if (!packsToRetrieve || packsToRetrieve.trim().length === 0) {
|
|
102
|
-
|
|
68
|
+
logger_1.Logger.error(constants_1.ERROR.BLANK_PACK_FLAG);
|
|
103
69
|
return [];
|
|
104
70
|
}
|
|
105
|
-
|
|
106
|
-
this.log('Retrieving items from the directory');
|
|
107
|
-
}
|
|
71
|
+
logger_1.Logger.info(constants_1.MESSAGE.RETRIEVING_ITEMS, this.isLogsActive);
|
|
108
72
|
const packs = packsToRetrieve.split(',').map(pack => pack.trim());
|
|
109
73
|
const fileList = fs.readdirSync(folderPath, { withFileTypes: true });
|
|
110
74
|
const foundFiles = fileList
|
|
@@ -115,7 +79,7 @@ class ButlerPbImportpack extends sf_plugins_core_1.SfCommand {
|
|
|
115
79
|
.map(file => file.name.replace('.json', ''));
|
|
116
80
|
const missingPacks = packs.filter(pack => !existingPackNames.includes(pack));
|
|
117
81
|
if (missingPacks.length > 0) {
|
|
118
|
-
|
|
82
|
+
logger_1.Logger.info(constants_1.MESSAGE.MISSING_PACKS.replace('[PACKS]', missingPacks.join(', ')));
|
|
119
83
|
}
|
|
120
84
|
if (missingPacks.length === fileList.length) {
|
|
121
85
|
return [];
|
|
@@ -124,27 +88,27 @@ class ButlerPbImportpack extends sf_plugins_core_1.SfCommand {
|
|
|
124
88
|
}
|
|
125
89
|
catch (error) {
|
|
126
90
|
const message = error instanceof Error ? error.message : String(error);
|
|
127
|
-
|
|
128
|
-
throw new Error(
|
|
91
|
+
logger_1.Logger.error(constants_1.ERROR.READING_FOLDER.replace('[MESSAGE]', message));
|
|
92
|
+
throw new Error(constants_1.ERROR.READING_FILES.replace('[FOLDER]', folderPath));
|
|
129
93
|
}
|
|
130
94
|
}
|
|
131
95
|
static async importPackData(connection, filePath) {
|
|
132
96
|
try {
|
|
133
97
|
const fileData = await fs.promises.readFile(filePath, 'utf8');
|
|
134
98
|
const parsedData = JSON.parse(fileData);
|
|
135
|
-
const response = await connection.apex.post(
|
|
136
|
-
|
|
99
|
+
const response = await connection.apex.post(constants_1.PATH.IMPORT_PACK, parsedData, { headers: { 'Content-Type': 'application/json' } });
|
|
100
|
+
logger_1.Logger.success(constants_1.MESSAGE.SUCCESS_IMPORT_PACK.replace('[PACK]', filePath));
|
|
137
101
|
return response;
|
|
138
102
|
}
|
|
139
103
|
catch (error) {
|
|
140
104
|
if (this.isLogsActive) {
|
|
141
105
|
const message = error instanceof Error ? error.message : String(error);
|
|
142
|
-
if (message.includes(
|
|
143
|
-
|
|
106
|
+
if (message.includes(constants_1.ERROR.URL_NOT_FOUND)) {
|
|
107
|
+
logger_1.Logger.error(constants_1.ERROR.URL_NOT_FOUND_VERSION_TOO_LOW);
|
|
144
108
|
}
|
|
145
109
|
}
|
|
146
110
|
else {
|
|
147
|
-
|
|
111
|
+
logger_1.Logger.error(constants_1.ERROR.IMPORT_FILE);
|
|
148
112
|
}
|
|
149
113
|
}
|
|
150
114
|
}
|
|
@@ -156,24 +120,16 @@ class ButlerPbImportpack extends sf_plugins_core_1.SfCommand {
|
|
|
156
120
|
const session = flags.session;
|
|
157
121
|
const instance = flags.instance;
|
|
158
122
|
ButlerPbImportpack.isLogsActive = flags.logs;
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
ButlerPbImportpack.log(`Packs to import: "${packsToRetrieve}"`);
|
|
164
|
-
}
|
|
165
|
-
if (ButlerPbImportpack.isLogsActive) {
|
|
166
|
-
ButlerPbImportpack.log(`Folder to retrieve: "${folderPath}"`);
|
|
167
|
-
}
|
|
168
|
-
const connection = await ButlerPbImportpack.authenticate(targetUsername, session, instance);
|
|
123
|
+
logger_1.Logger.info(constants_1.MESSAGE.USERNAME.replace('[USERNAME]', targetUsername), ButlerPbImportpack.isLogsActive);
|
|
124
|
+
logger_1.Logger.info(constants_1.MESSAGE.PACKS_TO_IMPORT.replace('[PACKS]', packsToRetrieve), ButlerPbImportpack.isLogsActive);
|
|
125
|
+
logger_1.Logger.info(constants_1.MESSAGE.FOLDER_TO_RETRIEVE.replace('[FOLDER]', folderPath), ButlerPbImportpack.isLogsActive);
|
|
126
|
+
const connection = await (0, authentication_1.authenticate)(targetUsername, session, instance);
|
|
169
127
|
const files = await ButlerPbImportpack.getFilesInFolder(folderPath, packsToRetrieve);
|
|
170
128
|
if (!files || files.length === 0) {
|
|
171
|
-
|
|
129
|
+
logger_1.Logger.error(constants_1.ERROR.NO_FILES_IN_FOLDER.replace('[FOLDER]', folderPath));
|
|
172
130
|
return { success: false };
|
|
173
131
|
}
|
|
174
|
-
|
|
175
|
-
ButlerPbImportpack.log(`Files found in folder: ${files.length}`);
|
|
176
|
-
}
|
|
132
|
+
logger_1.Logger.info(constants_1.MESSAGE.FILES_IN_FOLDER.replace('[FILES]', String(files.length)), ButlerPbImportpack.isLogsActive);
|
|
177
133
|
try {
|
|
178
134
|
await Promise.all(files.map((filePath) => {
|
|
179
135
|
ButlerPbImportpack.importPackData(connection, filePath);
|
|
@@ -181,48 +137,11 @@ class ButlerPbImportpack extends sf_plugins_core_1.SfCommand {
|
|
|
181
137
|
}
|
|
182
138
|
catch (error) {
|
|
183
139
|
const message = error instanceof Error ? error.message : String(error);
|
|
184
|
-
|
|
140
|
+
logger_1.Logger.error(constants_1.ERROR.IMPORT_PROCESS.replace('[MESSAGE]', message));
|
|
185
141
|
return { success: false };
|
|
186
142
|
}
|
|
187
143
|
return { success: true };
|
|
188
144
|
}
|
|
189
145
|
}
|
|
190
|
-
ButlerPbImportpack.summary = messages.getMessage('summary');
|
|
191
|
-
ButlerPbImportpack.description = messages.getMessage('description');
|
|
192
|
-
ButlerPbImportpack.examples = messages.getMessages('examples');
|
|
193
|
-
ButlerPbImportpack.flags = {
|
|
194
|
-
name: sf_plugins_core_1.Flags.string({
|
|
195
|
-
summary: messages.getMessage('flags.name.summary'),
|
|
196
|
-
description: messages.getMessage('flags.name.description'),
|
|
197
|
-
char: 'n',
|
|
198
|
-
required: false,
|
|
199
|
-
}),
|
|
200
|
-
pack: sf_plugins_core_1.Flags.string({
|
|
201
|
-
summary: messages.getMessage('flags.pack.summary'),
|
|
202
|
-
char: 'p',
|
|
203
|
-
required: true,
|
|
204
|
-
}),
|
|
205
|
-
folder: sf_plugins_core_1.Flags.string({
|
|
206
|
-
summary: messages.getMessage('flags.folder.summary'),
|
|
207
|
-
char: 'f',
|
|
208
|
-
required: true,
|
|
209
|
-
}),
|
|
210
|
-
target: sf_plugins_core_1.Flags.string({
|
|
211
|
-
summary: messages.getMessage('flags.target.summary'),
|
|
212
|
-
char: 't',
|
|
213
|
-
required: false,
|
|
214
|
-
}),
|
|
215
|
-
logs: sf_plugins_core_1.Flags.boolean({
|
|
216
|
-
summary: messages.getMessage('flags.logs.summary'),
|
|
217
|
-
char: 'l',
|
|
218
|
-
}),
|
|
219
|
-
session: sf_plugins_core_1.Flags.string({
|
|
220
|
-
summary: messages.getMessage('flags.session.summary'),
|
|
221
|
-
}),
|
|
222
|
-
instance: sf_plugins_core_1.Flags.string({
|
|
223
|
-
summary: messages.getMessage('flags.instance.summary'),
|
|
224
|
-
}),
|
|
225
|
-
};
|
|
226
|
-
ButlerPbImportpack.isLogsActive = false;
|
|
227
146
|
exports.default = ButlerPbImportpack;
|
|
228
147
|
//# sourceMappingURL=importpack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importpack.js","sourceRoot":"","sources":["../../../../src/commands/butler/pb/importpack.ts"],"names":[],"mappings":";;AAAA,uDAAuD;AACvD,wDAAwD;AACxD,4DAA4D;AAC5D,+BAA+B;AAC/B,2DAA2D;AAC3D,0DAA0D;AAC1D,qEAAqE;AACrE,sDAAsD;AACtD,+DAA+D;AAC/D,kDAAkD;AAClD,qDAAqD;AACrD,qCAAqC;AACrC,uDAAuD;AACvD,+BAA+B;AAC/B,qDAAqD;AACrD,4DAA4D;AAC5D,iEAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"importpack.js","sourceRoot":"","sources":["../../../../src/commands/butler/pb/importpack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
2
|
+
export type ButlerSbExportsigntemplateResult = {
|
|
3
|
+
path: string;
|
|
4
|
+
};
|
|
5
|
+
export default class ButlerSbExportsigntemplate extends SfCommand<ButlerSbExportsigntemplateResult> {
|
|
6
|
+
static readonly summary: string;
|
|
7
|
+
static readonly description: string;
|
|
8
|
+
static readonly examples: string[];
|
|
9
|
+
static readonly flags: {
|
|
10
|
+
target: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
11
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
12
|
+
folder: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
13
|
+
logs: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
session: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
15
|
+
instance: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
16
|
+
};
|
|
17
|
+
private static isLogsActive;
|
|
18
|
+
private static getTemplateIds;
|
|
19
|
+
private static saveTemplate;
|
|
20
|
+
private static getErrorMessage;
|
|
21
|
+
private static normalizeErrorMessage;
|
|
22
|
+
run(): Promise<ButlerSbExportsigntemplateResult>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const path = require("path");
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
6
|
+
const core_1 = require("@salesforce/core");
|
|
7
|
+
const logger_1 = require("../../../../utils/logger");
|
|
8
|
+
const constants_1 = require("../../../../utils/constants");
|
|
9
|
+
const authentication_1 = require("../../../../utils/authentication");
|
|
10
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
11
|
+
const messages = core_1.Messages.loadMessages('@pdfbutler/migration-cli', 'butler.sb.export.signtemplate');
|
|
12
|
+
class ButlerSbExportsigntemplate extends sf_plugins_core_1.SfCommand {
|
|
13
|
+
static summary = messages.getMessage('summary');
|
|
14
|
+
static description = messages.getMessage('description');
|
|
15
|
+
static examples = messages.getMessages('examples');
|
|
16
|
+
static flags = {
|
|
17
|
+
target: sf_plugins_core_1.Flags.string({
|
|
18
|
+
summary: messages.getMessage('flags.target.summary'),
|
|
19
|
+
char: 't',
|
|
20
|
+
required: false,
|
|
21
|
+
}),
|
|
22
|
+
id: sf_plugins_core_1.Flags.string({
|
|
23
|
+
summary: messages.getMessage('flags.id.summary'),
|
|
24
|
+
char: 'i',
|
|
25
|
+
required: true,
|
|
26
|
+
}),
|
|
27
|
+
folder: sf_plugins_core_1.Flags.string({
|
|
28
|
+
summary: messages.getMessage('flags.folder.summary'),
|
|
29
|
+
char: 'f',
|
|
30
|
+
required: true,
|
|
31
|
+
}),
|
|
32
|
+
logs: sf_plugins_core_1.Flags.boolean({
|
|
33
|
+
summary: messages.getMessage('flags.logs.summary'),
|
|
34
|
+
char: 'l',
|
|
35
|
+
}),
|
|
36
|
+
session: sf_plugins_core_1.Flags.string({
|
|
37
|
+
summary: messages.getMessage('flags.session.summary'),
|
|
38
|
+
}),
|
|
39
|
+
instance: sf_plugins_core_1.Flags.string({
|
|
40
|
+
summary: messages.getMessage('flags.instance.summary'),
|
|
41
|
+
}),
|
|
42
|
+
};
|
|
43
|
+
static isLogsActive = false;
|
|
44
|
+
static getTemplateIds(id) {
|
|
45
|
+
return id
|
|
46
|
+
.split(/[\s,]+/)
|
|
47
|
+
.map((item) => item.trim())
|
|
48
|
+
.filter(Boolean);
|
|
49
|
+
}
|
|
50
|
+
static async saveTemplate(outputDir, templateId, payload) {
|
|
51
|
+
const folder = path.join(outputDir, 'signRequestTemplates');
|
|
52
|
+
const filePath = path.join(folder, `${templateId}.json`);
|
|
53
|
+
await node_fs_1.promises.mkdir(folder, { recursive: true });
|
|
54
|
+
await node_fs_1.promises.writeFile(filePath, JSON.stringify(payload, null, 2), 'utf8');
|
|
55
|
+
return filePath;
|
|
56
|
+
}
|
|
57
|
+
static getErrorMessage(error) {
|
|
58
|
+
return error instanceof Error ? error.message : JSON.stringify(error);
|
|
59
|
+
}
|
|
60
|
+
static normalizeErrorMessage(message) {
|
|
61
|
+
const lower = message.toLowerCase();
|
|
62
|
+
const isHtmlResponse = lower.includes('<!doctype html') ||
|
|
63
|
+
lower.includes('<html') ||
|
|
64
|
+
lower.includes('<head') ||
|
|
65
|
+
lower.includes('<body') ||
|
|
66
|
+
lower.includes('<title>');
|
|
67
|
+
return isHtmlResponse ? constants_1.ERROR.INVALID_INSTANCE_OR_ORG_UNAVAILABLE : message;
|
|
68
|
+
}
|
|
69
|
+
async run() {
|
|
70
|
+
const { flags } = await this.parse(ButlerSbExportsigntemplate);
|
|
71
|
+
ButlerSbExportsigntemplate.isLogsActive = Boolean(flags.logs);
|
|
72
|
+
const target = flags.target;
|
|
73
|
+
const session = flags.session;
|
|
74
|
+
const instance = flags.instance;
|
|
75
|
+
const outputDir = flags.folder;
|
|
76
|
+
const templateIds = ButlerSbExportsigntemplate.getTemplateIds(flags.id);
|
|
77
|
+
try {
|
|
78
|
+
const connection = (await (0, authentication_1.authenticate)(target, session, instance));
|
|
79
|
+
const total = templateIds.length;
|
|
80
|
+
await templateIds.reduce(async (accPromise, templateId, index) => {
|
|
81
|
+
await accPromise;
|
|
82
|
+
logger_1.Logger.info(constants_1.MESSAGE.EXPORTING_SIGN_REQUEST_TEMPLATE
|
|
83
|
+
.replace('[INDEX]', (index + 1).toString())
|
|
84
|
+
.replace('[TOTAL]', total.toString())
|
|
85
|
+
.replace('[ID]', templateId), ButlerSbExportsigntemplate.isLogsActive);
|
|
86
|
+
const endpoint = `${constants_1.PATH.EXPORT_SIGN_TEMPLATE}${templateId}`;
|
|
87
|
+
let response;
|
|
88
|
+
try {
|
|
89
|
+
response = await connection.apex.get(endpoint);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
const message = ButlerSbExportsigntemplate.normalizeErrorMessage(ButlerSbExportsigntemplate.getErrorMessage(error));
|
|
93
|
+
logger_1.Logger.error(constants_1.MESSAGE.EXPORT_SIGN_REQUEST_TEMPLATE_FAILED.replace('[ID]', templateId), true);
|
|
94
|
+
logger_1.Logger.error(message, true);
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
await ButlerSbExportsigntemplate.saveTemplate(outputDir, templateId, response);
|
|
98
|
+
}, Promise.resolve());
|
|
99
|
+
const resultPath = path.join(outputDir, 'signRequestTemplates');
|
|
100
|
+
logger_1.Logger.success(constants_1.MESSAGE.SUCCESS_EXPORT, ButlerSbExportsigntemplate.isLogsActive);
|
|
101
|
+
return { path: resultPath };
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
logger_1.Logger.error(constants_1.ERROR.EXPORT_SIGN_TEMPLATE_FAILED, true);
|
|
105
|
+
process.exitCode = 1;
|
|
106
|
+
return { path: '' };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.default = ButlerSbExportsigntemplate;
|
|
111
|
+
//# sourceMappingURL=signtemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signtemplate.js","sourceRoot":"","sources":["../../../../../src/commands/butler/sb/export/signtemplate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
2
|
+
export type ButlerSbImportsigntemplateResult = {
|
|
3
|
+
success: boolean;
|
|
4
|
+
};
|
|
5
|
+
export default class ButlerSbImportsigntemplate extends SfCommand<ButlerSbImportsigntemplateResult> {
|
|
6
|
+
static readonly summary: string;
|
|
7
|
+
static readonly description: string;
|
|
8
|
+
static readonly examples: string[];
|
|
9
|
+
static readonly flags: {
|
|
10
|
+
target: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
11
|
+
id: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
12
|
+
folder: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
13
|
+
logs: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
session: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
15
|
+
instance: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
16
|
+
};
|
|
17
|
+
private static isLogsActive;
|
|
18
|
+
private static getTemplateIds;
|
|
19
|
+
private static readTemplate;
|
|
20
|
+
private static getErrorMessage;
|
|
21
|
+
private static normalizeErrorMessage;
|
|
22
|
+
run(): Promise<ButlerSbImportsigntemplateResult>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const path = require("path");
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
6
|
+
const core_1 = require("@salesforce/core");
|
|
7
|
+
const logger_1 = require("../../../../utils/logger");
|
|
8
|
+
const constants_1 = require("../../../../utils/constants");
|
|
9
|
+
const authentication_1 = require("../../../../utils/authentication");
|
|
10
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
11
|
+
const messages = core_1.Messages.loadMessages('@pdfbutler/migration-cli', 'butler.sb.import.signtemplate');
|
|
12
|
+
class ButlerSbImportsigntemplate extends sf_plugins_core_1.SfCommand {
|
|
13
|
+
static summary = messages.getMessage('summary');
|
|
14
|
+
static description = messages.getMessage('description');
|
|
15
|
+
static examples = messages.getMessages('examples');
|
|
16
|
+
static flags = {
|
|
17
|
+
target: sf_plugins_core_1.Flags.string({
|
|
18
|
+
summary: messages.getMessage('flags.target.summary'),
|
|
19
|
+
char: 't',
|
|
20
|
+
required: false,
|
|
21
|
+
}),
|
|
22
|
+
id: sf_plugins_core_1.Flags.string({
|
|
23
|
+
summary: messages.getMessage('flags.id.summary'),
|
|
24
|
+
char: 'i',
|
|
25
|
+
required: true,
|
|
26
|
+
}),
|
|
27
|
+
folder: sf_plugins_core_1.Flags.string({
|
|
28
|
+
summary: messages.getMessage('flags.folder.summary'),
|
|
29
|
+
char: 'f',
|
|
30
|
+
required: true,
|
|
31
|
+
}),
|
|
32
|
+
logs: sf_plugins_core_1.Flags.boolean({
|
|
33
|
+
summary: messages.getMessage('flags.logs.summary'),
|
|
34
|
+
char: 'l',
|
|
35
|
+
}),
|
|
36
|
+
session: sf_plugins_core_1.Flags.string({
|
|
37
|
+
summary: messages.getMessage('flags.session.summary'),
|
|
38
|
+
}),
|
|
39
|
+
instance: sf_plugins_core_1.Flags.string({
|
|
40
|
+
summary: messages.getMessage('flags.instance.summary'),
|
|
41
|
+
}),
|
|
42
|
+
};
|
|
43
|
+
static isLogsActive = false;
|
|
44
|
+
static getTemplateIds(id) {
|
|
45
|
+
return id
|
|
46
|
+
.split(/[\s,]+/)
|
|
47
|
+
.map((item) => item.trim())
|
|
48
|
+
.filter(Boolean);
|
|
49
|
+
}
|
|
50
|
+
static async readTemplate(folder, templateId) {
|
|
51
|
+
const filePath = path.join(folder, 'signRequestTemplates', `${templateId}.json`);
|
|
52
|
+
const raw = await node_fs_1.promises.readFile(filePath, 'utf8');
|
|
53
|
+
return JSON.parse(raw);
|
|
54
|
+
}
|
|
55
|
+
static getErrorMessage(error) {
|
|
56
|
+
return error instanceof Error ? error.message : JSON.stringify(error);
|
|
57
|
+
}
|
|
58
|
+
static normalizeErrorMessage(message) {
|
|
59
|
+
const lower = message.toLowerCase();
|
|
60
|
+
const isHtmlResponse = lower.includes('<!doctype html') ||
|
|
61
|
+
lower.includes('<html') ||
|
|
62
|
+
lower.includes('<head') ||
|
|
63
|
+
lower.includes('<body') ||
|
|
64
|
+
lower.includes('<title>');
|
|
65
|
+
return isHtmlResponse ? constants_1.ERROR.INVALID_INSTANCE_OR_ORG_UNAVAILABLE : message;
|
|
66
|
+
}
|
|
67
|
+
async run() {
|
|
68
|
+
const { flags } = await this.parse(ButlerSbImportsigntemplate);
|
|
69
|
+
ButlerSbImportsigntemplate.isLogsActive = Boolean(flags.logs);
|
|
70
|
+
const target = flags.target;
|
|
71
|
+
const session = flags.session;
|
|
72
|
+
const instance = flags.instance;
|
|
73
|
+
const outputDir = flags.folder;
|
|
74
|
+
const templateIds = ButlerSbImportsigntemplate.getTemplateIds(flags.id);
|
|
75
|
+
try {
|
|
76
|
+
const connection = (await (0, authentication_1.authenticate)(target, session, instance));
|
|
77
|
+
const total = templateIds.length;
|
|
78
|
+
await templateIds.reduce(async (accPromise, templateId, index) => {
|
|
79
|
+
await accPromise;
|
|
80
|
+
logger_1.Logger.info(constants_1.MESSAGE.IMPORTING_SIGN_REQUEST_TEMPLATE
|
|
81
|
+
.replace('[INDEX]', (index + 1).toString())
|
|
82
|
+
.replace('[TOTAL]', total.toString())
|
|
83
|
+
.replace('[ID]', templateId), ButlerSbImportsigntemplate.isLogsActive);
|
|
84
|
+
try {
|
|
85
|
+
const payload = await ButlerSbImportsigntemplate.readTemplate(outputDir, templateId);
|
|
86
|
+
await connection.apex.post(constants_1.PATH.IMPORT_SIGN_TEMPLATE, payload, {
|
|
87
|
+
headers: { 'Content-Type': 'application/json' },
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
const message = ButlerSbImportsigntemplate.normalizeErrorMessage(ButlerSbImportsigntemplate.getErrorMessage(error));
|
|
92
|
+
logger_1.Logger.error(constants_1.MESSAGE.IMPORT_SIGN_REQUEST_TEMPLATE_FAILED.replace('[ID]', templateId), true);
|
|
93
|
+
logger_1.Logger.error(message, true);
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
}, Promise.resolve());
|
|
97
|
+
logger_1.Logger.success(constants_1.MESSAGE.SUCCESS_DATA_WRITTEN, ButlerSbImportsigntemplate.isLogsActive);
|
|
98
|
+
return { success: true };
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
logger_1.Logger.error(constants_1.ERROR.IMPORT_SIGN_TEMPLATE_FAILED, true);
|
|
102
|
+
process.exitCode = 1;
|
|
103
|
+
return { success: false };
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.default = ButlerSbImportsigntemplate;
|
|
108
|
+
//# sourceMappingURL=signtemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signtemplate.js","sourceRoot":"","sources":["../../../../../src/commands/butler/sb/import/signtemplate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Connection as JsforceConnection, Schema } from 'jsforce';
|
|
2
|
+
import { Connection as CoreConnection } from '@salesforce/core';
|
|
3
|
+
export declare function authenticate(username: string, session: string, instance: string): Promise<CoreConnection | JsforceConnection<Schema>>;
|
|
4
|
+
export declare function formatAuthError(err: unknown): string;
|