@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 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.2 darwin-arm64 node-v20.8.0
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.5",
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.16",
9
- "@contentstack/cli-utilities": "~1.6.0",
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",
@@ -5,11 +5,11 @@
5
5
  const chalk = require('chalk');
6
6
  const path = require('path');
7
7
  const { formatError } = require('../util');
8
- const { configHandler } = require('@contentstack/cli-utilities')
9
- const apiVersionForNRP = '3.2'
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(({ _publish_details, ...rest }) => rest);
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, aapi_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
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') { // because 3 is the default value for api-version, and it exists for the purpose of display only
237
- console.log(
238
- chalk.yellow(nrpApiVersionWarning),
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 = JSON.stringify(removePublishDetails(bulkPublishObj.entries));
264
+ const sanitizedData = removePublishDetails(bulkPublishObj.entries);
249
265
  console.log(
250
- chalk.green(
251
- `Bulk entries sent for publish ${sanitizedData}`,
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
- chalk.red(
273
- `Bulk entries ${JSON.stringify(
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') { // because 3 is the default value for api-version, and it exists for the purpose of display only
298
- console.log(
299
- chalk.yellow(nrpApiVersionWarning),
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 ${JSON.stringify(removePublishDetails(bulkPublishObj.assets))}`,
312
- (bulkPublishAssetsResponse.job_id) ? chalk.yellow(`job_id: ${bulkPublishAssetsResponse.job_id}`) : ''
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
- chalk.red(
333
- `Bulk assets ${JSON.stringify(
334
- removePublishDetails(bulkPublishObj.assets),
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') { // because 3 is the default value for api-version, and it exists for the purpose of display only
369
- console.log(
370
- chalk.yellow(nrpApiVersionWarning),
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 ${JSON.stringify(removePublishDetails(bulkUnPublishObj.entries))}`,
384
- (bulkUnPublishEntriesResponse.job_id) ? chalk.yellow(`job_id: ${bulkUnPublishEntriesResponse.job_id}`) : ''
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
- chalk.red(
404
- `Bulk entries ${JSON.stringify(
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') { // because 3 is the default value for api-version, and it exists for the purpose of display only
429
- console.log(
430
- chalk.yellow(nrpApiVersionWarning),
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 ${JSON.stringify(removePublishDetails(bulkUnPublishObj.assets))}`,
444
- (bulkUnPublishAssetsResponse.job_id) ? chalk.yellow(`job_id: ${bulkUnPublishAssetsResponse.job_id}`) : ''
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
- chalk.red(
464
- `Bulk assets ${JSON.stringify(
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 },
@@ -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
  });