@contentstack/cli-cm-bulk-publish 1.4.5 → 1.4.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.
- package/README.md +1 -1
- package/package.json +3 -3
- package/src/consumer/publish.js +73 -67
- package/src/util/logger.js +3 -2
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-cm-bulk-publish
|
|
|
18
18
|
$ csdx COMMAND
|
|
19
19
|
running command...
|
|
20
20
|
$ csdx (--version)
|
|
21
|
-
@contentstack/cli-cm-bulk-publish/1.4.
|
|
21
|
+
@contentstack/cli-cm-bulk-publish/1.4.7 darwin-arm64 node-v21.6.2
|
|
22
22
|
$ csdx --help [COMMAND]
|
|
23
23
|
USAGE
|
|
24
24
|
$ csdx COMMAND
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentstack/cli-cm-bulk-publish",
|
|
3
3
|
"description": "Contentstack CLI plugin for bulk publish actions",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.7",
|
|
5
5
|
"author": "Contentstack",
|
|
6
6
|
"bugs": "https://github.com/contentstack/cli/issues",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@contentstack/cli-command": "~1.2.
|
|
9
|
-
"@contentstack/cli-utilities": "~1.6.
|
|
8
|
+
"@contentstack/cli-command": "~1.2.18",
|
|
9
|
+
"@contentstack/cli-utilities": "~1.6.2",
|
|
10
10
|
"bluebird": "^3.7.2",
|
|
11
11
|
"chalk": "^4.1.2",
|
|
12
12
|
"dotenv": "^16.1.4",
|
package/src/consumer/publish.js
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
const chalk = require('chalk');
|
|
6
6
|
const path = require('path');
|
|
7
7
|
const { formatError } = require('../util');
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const nrpApiVersionWarning = `Provided apiVersion is invalid. ${apiVersionForNRP} is only supported value. Continuing with regular bulk-publish for now.`
|
|
8
|
+
const apiVersionForNRP = '3.2';
|
|
9
|
+
const nrpApiVersionWarning = `Provided apiVersion is invalid. ${apiVersionForNRP} is only supported value. Continuing with regular bulk-publish for now.`;
|
|
11
10
|
|
|
12
11
|
const { getLoggerInstance, addLogs, getLogsDirPath } = require('../util/logger');
|
|
12
|
+
const { sanitizePath } = require('@contentstack/cli-utilities');
|
|
13
13
|
const logsDir = getLogsDirPath();
|
|
14
14
|
|
|
15
15
|
let logger;
|
|
@@ -19,19 +19,36 @@ function initializeLogger(fileName) {
|
|
|
19
19
|
fileNme = fileName;
|
|
20
20
|
fileNme = `${Date.now()}.${fileNme}`;
|
|
21
21
|
logger = getLoggerInstance(fileNme);
|
|
22
|
-
return path.join(logsDir, fileNme);
|
|
22
|
+
return path.join(logsDir, sanitizePath(fileNme));
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/* eslint-disable camelcase */
|
|
26
26
|
function removePublishDetails(elements) {
|
|
27
27
|
if (elements && elements.length > 0) {
|
|
28
|
-
return elements.map(({
|
|
28
|
+
return elements.map(({ publish_details, ...rest }) => rest);
|
|
29
29
|
} else {
|
|
30
30
|
delete elements.publish_details;
|
|
31
31
|
}
|
|
32
32
|
return elements;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
function displayEntriesDetails(sanitizedData) {
|
|
36
|
+
sanitizedData.forEach((entry) => {
|
|
37
|
+
console.log(chalk.green(`Entry UID '${entry.uid}' of CT '${entry.content_type}' in locale '${entry.locale}'`));
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function displayAssetsDetails(sanitizedData) {
|
|
42
|
+
sanitizedData.forEach((asset) => {
|
|
43
|
+
console.log(
|
|
44
|
+
chalk.green(
|
|
45
|
+
`Asset UID '${asset.uid}' ${asset.version ? `and version '${asset.version}'` : ''} ${
|
|
46
|
+
asset.locale ? `in locale '${asset.locale}'` : ''
|
|
47
|
+
}`,
|
|
48
|
+
),
|
|
49
|
+
);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
35
52
|
async function publishEntry(data, _config, queue) {
|
|
36
53
|
const lang = [];
|
|
37
54
|
const entryObj = data.obj;
|
|
@@ -170,7 +187,7 @@ async function UnpublishEntry(data, _config, queue) {
|
|
|
170
187
|
);
|
|
171
188
|
addLogs(
|
|
172
189
|
logger,
|
|
173
|
-
{ options: entryObj,
|
|
190
|
+
{ options: entryObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
|
|
174
191
|
'error',
|
|
175
192
|
);
|
|
176
193
|
}
|
|
@@ -219,7 +236,7 @@ async function performBulkPublish(data, _config, queue) {
|
|
|
219
236
|
let conf;
|
|
220
237
|
const bulkPublishObj = data.obj;
|
|
221
238
|
const stack = bulkPublishObj.stack;
|
|
222
|
-
let payload = {}
|
|
239
|
+
let payload = {};
|
|
223
240
|
switch (bulkPublishObj.Type) {
|
|
224
241
|
case 'entry':
|
|
225
242
|
conf = {
|
|
@@ -230,13 +247,12 @@ async function performBulkPublish(data, _config, queue) {
|
|
|
230
247
|
payload['details'] = conf;
|
|
231
248
|
if (bulkPublishObj.apiVersion) {
|
|
232
249
|
if (!isNaN(bulkPublishObj.apiVersion) && bulkPublishObj.apiVersion === apiVersionForNRP) {
|
|
233
|
-
payload['api_version'] = bulkPublishObj.apiVersion
|
|
250
|
+
payload['api_version'] = bulkPublishObj.apiVersion;
|
|
234
251
|
payload.details.publish_with_reference = true;
|
|
235
252
|
} else {
|
|
236
|
-
if (bulkPublishObj.apiVersion !== '3') {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
);
|
|
253
|
+
if (bulkPublishObj.apiVersion !== '3') {
|
|
254
|
+
// because 3 is the default value for api-version, and it exists for the purpose of display only
|
|
255
|
+
console.log(chalk.yellow(nrpApiVersionWarning));
|
|
240
256
|
}
|
|
241
257
|
}
|
|
242
258
|
}
|
|
@@ -245,13 +261,12 @@ async function performBulkPublish(data, _config, queue) {
|
|
|
245
261
|
.publish(payload)
|
|
246
262
|
.then((bulkPublishEntriesResponse) => {
|
|
247
263
|
if (!bulkPublishEntriesResponse.error_message) {
|
|
248
|
-
const sanitizedData =
|
|
264
|
+
const sanitizedData = removePublishDetails(bulkPublishObj.entries);
|
|
249
265
|
console.log(
|
|
250
|
-
chalk.green(
|
|
251
|
-
|
|
252
|
-
),
|
|
253
|
-
(bulkPublishEntriesResponse.job_id) ? chalk.yellow(`job_id: ${bulkPublishEntriesResponse.job_id}`) : ''
|
|
266
|
+
chalk.green(`Bulk entries sent for publish`),
|
|
267
|
+
bulkPublishEntriesResponse.job_id ? chalk.yellow(`job_id: ${bulkPublishEntriesResponse.job_id}`) : '',
|
|
254
268
|
);
|
|
269
|
+
displayEntriesDetails(sanitizedData);
|
|
255
270
|
delete bulkPublishObj.stack;
|
|
256
271
|
addLogs(
|
|
257
272
|
logger,
|
|
@@ -268,13 +283,9 @@ async function performBulkPublish(data, _config, queue) {
|
|
|
268
283
|
queue.Enqueue(data);
|
|
269
284
|
} else {
|
|
270
285
|
delete bulkPublishObj.stack;
|
|
271
|
-
console.log(
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
removePublishDetails(bulkPublishObj.entries),
|
|
275
|
-
)} failed to publish with error ${formatError(error)}`,
|
|
276
|
-
),
|
|
277
|
-
);
|
|
286
|
+
console.log(chalk.red(`Bulk entries failed to publish with error ${formatError(error)}`));
|
|
287
|
+
let sanitizedData = removePublishDetails(bulkPublishObj.entries);
|
|
288
|
+
displayEntriesDetails(sanitizedData);
|
|
278
289
|
addLogs(
|
|
279
290
|
logger,
|
|
280
291
|
{ options: bulkPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
|
|
@@ -292,12 +303,11 @@ async function performBulkPublish(data, _config, queue) {
|
|
|
292
303
|
payload['details'] = conf;
|
|
293
304
|
if (bulkPublishObj.apiVersion) {
|
|
294
305
|
if (!isNaN(bulkPublishObj.apiVersion) && bulkPublishObj.apiVersion === apiVersionForNRP) {
|
|
295
|
-
payload['api_version'] = bulkPublishObj.apiVersion
|
|
306
|
+
payload['api_version'] = bulkPublishObj.apiVersion;
|
|
296
307
|
} else {
|
|
297
|
-
if (bulkPublishObj.apiVersion !== '3') {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
);
|
|
308
|
+
if (bulkPublishObj.apiVersion !== '3') {
|
|
309
|
+
// because 3 is the default value for api-version, and it exists for the purpose of display only
|
|
310
|
+
console.log(chalk.yellow(nrpApiVersionWarning));
|
|
301
311
|
}
|
|
302
312
|
}
|
|
303
313
|
}
|
|
@@ -308,10 +318,12 @@ async function performBulkPublish(data, _config, queue) {
|
|
|
308
318
|
if (!bulkPublishAssetsResponse.error_message) {
|
|
309
319
|
console.log(
|
|
310
320
|
chalk.green(
|
|
311
|
-
`Bulk assets sent for publish
|
|
312
|
-
|
|
321
|
+
`Bulk assets sent for publish`,
|
|
322
|
+
bulkPublishAssetsResponse.job_id ? chalk.yellow(`job_id: ${bulkPublishAssetsResponse.job_id}`) : '',
|
|
313
323
|
),
|
|
314
324
|
);
|
|
325
|
+
let sanitizedData = removePublishDetails(bulkPublishObj.assets);
|
|
326
|
+
displayAssetsDetails(sanitizedData);
|
|
315
327
|
delete bulkPublishObj.stack;
|
|
316
328
|
addLogs(
|
|
317
329
|
logger,
|
|
@@ -328,13 +340,10 @@ async function performBulkPublish(data, _config, queue) {
|
|
|
328
340
|
queue.Enqueue(data);
|
|
329
341
|
} else {
|
|
330
342
|
delete bulkPublishObj.stack;
|
|
331
|
-
console.log(
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
)} failed to publish with error ${formatError(error)}`,
|
|
336
|
-
),
|
|
337
|
-
);
|
|
343
|
+
console.log(chalk.red(`Bulk assets failed to publish with error ${formatError(error)}`));
|
|
344
|
+
|
|
345
|
+
let sanitizedData = removePublishDetails(bulkPublishObj.assets);
|
|
346
|
+
displayAssetsDetails(sanitizedData);
|
|
338
347
|
addLogs(
|
|
339
348
|
logger,
|
|
340
349
|
{ options: bulkPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
|
|
@@ -352,7 +361,7 @@ async function performBulkUnPublish(data, _config, queue) {
|
|
|
352
361
|
let conf;
|
|
353
362
|
const bulkUnPublishObj = data.obj;
|
|
354
363
|
const stack = bulkUnPublishObj.stack;
|
|
355
|
-
let payload = {}
|
|
364
|
+
let payload = {};
|
|
356
365
|
switch (bulkUnPublishObj.Type) {
|
|
357
366
|
case 'entry':
|
|
358
367
|
conf = {
|
|
@@ -363,12 +372,11 @@ async function performBulkUnPublish(data, _config, queue) {
|
|
|
363
372
|
payload['details'] = conf;
|
|
364
373
|
if (bulkUnPublishObj.apiVersion) {
|
|
365
374
|
if (!isNaN(bulkUnPublishObj.apiVersion) && bulkUnPublishObj.apiVersion === apiVersionForNRP) {
|
|
366
|
-
payload['api_version'] = bulkUnPublishObj.apiVersion
|
|
375
|
+
payload['api_version'] = bulkUnPublishObj.apiVersion;
|
|
367
376
|
} else {
|
|
368
|
-
if (bulkUnPublishObj.apiVersion !== '3') {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
);
|
|
377
|
+
if (bulkUnPublishObj.apiVersion !== '3') {
|
|
378
|
+
// because 3 is the default value for api-version, and it exists for the purpose of display only
|
|
379
|
+
console.log(chalk.yellow(nrpApiVersionWarning));
|
|
372
380
|
}
|
|
373
381
|
}
|
|
374
382
|
}
|
|
@@ -378,12 +386,17 @@ async function performBulkUnPublish(data, _config, queue) {
|
|
|
378
386
|
.then((bulkUnPublishEntriesResponse) => {
|
|
379
387
|
if (!bulkUnPublishEntriesResponse.error_message) {
|
|
380
388
|
delete bulkUnPublishObj.stack;
|
|
389
|
+
|
|
381
390
|
console.log(
|
|
382
391
|
chalk.green(
|
|
383
|
-
`Bulk entries sent for Unpublish
|
|
384
|
-
|
|
392
|
+
`Bulk entries sent for Unpublish`,
|
|
393
|
+
bulkUnPublishEntriesResponse.job_id
|
|
394
|
+
? chalk.yellow(`job_id: ${bulkUnPublishEntriesResponse.job_id}`)
|
|
395
|
+
: '',
|
|
385
396
|
),
|
|
386
397
|
);
|
|
398
|
+
let sanitizedData = removePublishDetails(bulkUnPublishObj.entries);
|
|
399
|
+
displayEntriesDetails(sanitizedData);
|
|
387
400
|
addLogs(
|
|
388
401
|
logger,
|
|
389
402
|
{ options: bulkUnPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
|
|
@@ -399,13 +412,9 @@ async function performBulkUnPublish(data, _config, queue) {
|
|
|
399
412
|
queue.Enqueue(data);
|
|
400
413
|
} else {
|
|
401
414
|
delete bulkUnPublishObj.stack;
|
|
402
|
-
console.log(
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
removePublishDetails(bulkUnPublishObj.entries),
|
|
406
|
-
)} failed to Unpublish with error ${formatError(error)}`,
|
|
407
|
-
),
|
|
408
|
-
);
|
|
415
|
+
console.log(chalk.red(`Bulk entries failed to Unpublish with error ${formatError(error)}`));
|
|
416
|
+
let sanitizedData = removePublishDetails(bulkUnPublishObj.entries);
|
|
417
|
+
displayEntriesDetails(sanitizedData);
|
|
409
418
|
addLogs(
|
|
410
419
|
logger,
|
|
411
420
|
{ options: bulkUnPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
|
|
@@ -423,12 +432,11 @@ async function performBulkUnPublish(data, _config, queue) {
|
|
|
423
432
|
payload['details'] = conf;
|
|
424
433
|
if (bulkUnPublishObj.apiVersion) {
|
|
425
434
|
if (!isNaN(bulkUnPublishObj.apiVersion) && bulkUnPublishObj.apiVersion === apiVersionForNRP) {
|
|
426
|
-
payload['api_version'] = bulkUnPublishObj.apiVersion
|
|
435
|
+
payload['api_version'] = bulkUnPublishObj.apiVersion;
|
|
427
436
|
} else {
|
|
428
|
-
if (bulkUnPublishObj.apiVersion !== '3') {
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
);
|
|
437
|
+
if (bulkUnPublishObj.apiVersion !== '3') {
|
|
438
|
+
// because 3 is the default value for api-version, and it exists for the purpose of display only
|
|
439
|
+
console.log(chalk.yellow(nrpApiVersionWarning));
|
|
432
440
|
}
|
|
433
441
|
}
|
|
434
442
|
}
|
|
@@ -438,12 +446,14 @@ async function performBulkUnPublish(data, _config, queue) {
|
|
|
438
446
|
.then((bulkUnPublishAssetsResponse) => {
|
|
439
447
|
if (!bulkUnPublishAssetsResponse.error_message) {
|
|
440
448
|
delete bulkUnPublishObj.stack;
|
|
449
|
+
let sanitizedData = removePublishDetails(bulkUnPublishObj.assets);
|
|
441
450
|
console.log(
|
|
442
451
|
chalk.green(
|
|
443
|
-
`Bulk assets sent for Unpublish
|
|
444
|
-
|
|
452
|
+
`Bulk assets sent for Unpublish`,
|
|
453
|
+
bulkUnPublishAssetsResponse.job_id ? chalk.yellow(`job_id: ${bulkUnPublishAssetsResponse.job_id}`) : '',
|
|
445
454
|
),
|
|
446
455
|
);
|
|
456
|
+
displayAssetsDetails(sanitizedData);
|
|
447
457
|
addLogs(
|
|
448
458
|
logger,
|
|
449
459
|
{ options: bulkUnPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
|
|
@@ -459,13 +469,9 @@ async function performBulkUnPublish(data, _config, queue) {
|
|
|
459
469
|
queue.Enqueue(data);
|
|
460
470
|
} else {
|
|
461
471
|
delete bulkUnPublishObj.stack;
|
|
462
|
-
console.log(
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
removePublishDetails(bulkUnPublishObj.assets),
|
|
466
|
-
)} failed to Unpublish with error ${formatError(error)}`,
|
|
467
|
-
),
|
|
468
|
-
);
|
|
472
|
+
console.log(chalk.red(`Bulk assets failed to Unpublish with error ${formatError(error)}`));
|
|
473
|
+
let sanitizedData = removePublishDetails(bulkUnPublishObj.assets);
|
|
474
|
+
displayAssetsDetails(sanitizedData);
|
|
469
475
|
addLogs(
|
|
470
476
|
logger,
|
|
471
477
|
{ options: bulkUnPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
|
package/src/util/logger.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const { sanitizePath } = require('@contentstack/cli-utilities');
|
|
1
2
|
const path = require('path');
|
|
2
3
|
const winston = require('winston');
|
|
3
4
|
const cwd = process.cwd();
|
|
@@ -6,7 +7,7 @@ const logsDir = path.join(cwd, 'contentstack-cli-logs', 'bulk-publish');
|
|
|
6
7
|
let filename;
|
|
7
8
|
|
|
8
9
|
module.exports.getLoggerInstance = (fileName) => {
|
|
9
|
-
filename = path.join(logsDir, fileName);
|
|
10
|
+
filename = path.join(logsDir, sanitizePath(fileName));
|
|
10
11
|
return winston.createLogger({
|
|
11
12
|
transports: [
|
|
12
13
|
new winston.transports.File({ filename: `${filename}.error`, level: 'error' }),
|
|
@@ -17,7 +18,7 @@ module.exports.getLoggerInstance = (fileName) => {
|
|
|
17
18
|
|
|
18
19
|
/* eslint-disable no-multi-assign */
|
|
19
20
|
const getFileLoggerInstance = (module.exports.getFileLoggerInstance = (fileName) => {
|
|
20
|
-
filename = path.join(logsDir, fileName);
|
|
21
|
+
filename = path.join(logsDir, sanitizePath(fileName));
|
|
21
22
|
return winston.createLogger({
|
|
22
23
|
transports: [new winston.transports.File({ filename })],
|
|
23
24
|
});
|