@contentstack/cli-cm-bulk-publish 1.7.1 → 1.7.3

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.7.0 darwin-arm64 node-v22.2.0
21
+ @contentstack/cli-cm-bulk-publish/1.7.3 darwin-arm64 node-v23.6.0
22
22
  $ csdx --help [COMMAND]
23
23
  USAGE
24
24
  $ csdx COMMAND
package/package.json CHANGED
@@ -1,31 +1,26 @@
1
1
  {
2
2
  "name": "@contentstack/cli-cm-bulk-publish",
3
3
  "description": "Contentstack CLI plugin for bulk publish actions",
4
- "version": "1.7.1",
4
+ "version": "1.7.3",
5
5
  "author": "Contentstack",
6
6
  "bugs": "https://github.com/contentstack/cli/issues",
7
7
  "dependencies": {
8
- "@contentstack/cli-command": "~1.3.2",
9
- "@contentstack/cli-utilities": "~1.8.0",
10
- "bluebird": "^3.7.2",
8
+ "@contentstack/cli-command": "~1.3.3",
9
+ "@contentstack/cli-utilities": "~1.8.4",
11
10
  "chalk": "^4.1.2",
12
11
  "dotenv": "^16.4.7",
13
12
  "inquirer": "8.2.6",
14
13
  "lodash": "^4.17.21",
15
- "mkdirp": "^1.0.4",
16
- "nock": "^13.5.6",
17
14
  "winston": "^3.17.0"
18
15
  },
19
16
  "devDependencies": {
20
- "@oclif/test": "^4.1.3",
17
+ "@oclif/test": "^4.1.6",
21
18
  "chai": "^4.5.0",
22
19
  "eslint": "^8.57.1",
23
20
  "eslint-config-oclif": "^4.0.0",
24
- "globby": "^10.0.2",
25
21
  "mocha": "^10.8.2",
26
22
  "nyc": "^15.1.0",
27
- "oclif": "^3.17.2",
28
- "tslib": "^1.14.1"
23
+ "oclif": "^3.17.2"
29
24
  },
30
25
  "engines": {
31
26
  "node": ">=14.0.0"
@@ -1,7 +1,7 @@
1
1
  const fs = require('fs');
2
2
  const path = require('path');
3
3
  const { Command } = require('@contentstack/cli-command');
4
- const { cliux, flags } = require('@contentstack/cli-utilities');
4
+ const { flags } = require('@contentstack/cli-utilities');
5
5
 
6
6
  let config = require('../../../config/index.js');
7
7
 
@@ -32,22 +32,55 @@ function removePublishDetails(elements) {
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
- });
35
+ function displayEntriesDetails(sanitizedData, action, mapping = []) {
36
+ if (action === 'bulk_publish') {
37
+ sanitizedData.forEach((entry) => {
38
+ entry?.publish_details.forEach((pd) => {
39
+ if (Object.keys(mapping).includes(pd.environment)) {
40
+ console.log(
41
+ chalk.green(
42
+ `Entry UID '${entry.uid}' of CT '${entry.content_type}' in locale '${entry.locale}' version '${pd.version}' in environment '${pd.environment}'`,
43
+ ),
44
+ )
45
+ }
46
+ });
47
+ if(!Array.isArray(entry.publish_details)){
48
+ console.log(chalk.green(`Entry UID '${entry.uid}' of CT '${entry.content_type}' in locale '${entry.locale}'`));
49
+ }
50
+ });
51
+ } else if (action === 'bulk_unpublish') {
52
+ sanitizedData.forEach((entry) => {
53
+ console.log(chalk.green(`Entry UID '${entry.uid}' of CT '${entry.content_type}' in locale '${entry.locale}'`));
54
+ });
55
+ }
39
56
  }
40
57
 
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
- });
58
+ function displayAssetsDetails(sanitizedData, action, mapping) {
59
+ if (action === 'bulk_publish') {
60
+ sanitizedData.forEach((asset) => {
61
+ asset?.publish_details.forEach((pd) => {
62
+ if (Object.keys(mapping).includes(pd.environment)) {
63
+ console.log(
64
+ chalk.green(
65
+ `Asset UID '${asset.uid}' ${pd.version ? `and version '${pd.version}'` : ''} ${
66
+ asset.locale ? `in locale '${asset.locale}'` : ''
67
+ } in environment ${pd.environment}`,
68
+ ),
69
+ );
70
+ }
71
+ });
72
+ });
73
+ } else if (action === 'bulk_unpublish') {
74
+ sanitizedData.forEach((asset) => {
75
+ console.log(
76
+ chalk.green(
77
+ `Asset UID '${asset.uid}' ${asset.version ? `and version '${asset.version}'` : ''} ${
78
+ asset.locale ? `in locale '${asset.locale}'` : ''
79
+ }`,
80
+ ),
81
+ );
82
+ });
83
+ }
51
84
  }
52
85
  async function publishEntry(data, _config, queue) {
53
86
  const lang = [];
@@ -230,6 +263,21 @@ async function UnpublishAsset(data, _config, queue) {
230
263
  });
231
264
  }
232
265
 
266
+ async function getEnvironment(stack, environment) {
267
+ const mapping = {};
268
+ if (Array.isArray(environment) && environment.length) {
269
+ for (let i = 0; i < environment.length; i++) {
270
+ const key = await stack.environment(environment[i]).fetch();
271
+ console.log(key);
272
+ mapping[key.uid] = environment[i];
273
+ }
274
+ } else {
275
+ const key = await stack.environment(environment[i]).fetch();
276
+ mapping[key.uid] = environment[i];
277
+ }
278
+ return mapping;
279
+ }
280
+
233
281
  async function performBulkPublish(data, _config, queue) {
234
282
  // add validation for user uid
235
283
  // if user not logged in, then user uid won't be available and NRP too won't work
@@ -237,6 +285,7 @@ async function performBulkPublish(data, _config, queue) {
237
285
  const bulkPublishObj = data.obj;
238
286
  const stack = bulkPublishObj.stack;
239
287
  let payload = {};
288
+ const mapping = await getEnvironment(stack, bulkPublishObj.environments);
240
289
  switch (bulkPublishObj.Type) {
241
290
  case 'entry':
242
291
  conf = {
@@ -261,12 +310,11 @@ async function performBulkPublish(data, _config, queue) {
261
310
  .publish(payload)
262
311
  .then((bulkPublishEntriesResponse) => {
263
312
  if (!bulkPublishEntriesResponse.error_message) {
264
- const sanitizedData = removePublishDetails(bulkPublishObj.entries);
265
313
  console.log(
266
314
  chalk.green(`Bulk entries sent for publish`),
267
315
  bulkPublishEntriesResponse.job_id ? chalk.yellow(`job_id: ${bulkPublishEntriesResponse.job_id}`) : '',
268
316
  );
269
- displayEntriesDetails(sanitizedData);
317
+ displayEntriesDetails(bulkPublishObj.entries, 'bulk_publish', mapping);
270
318
  delete bulkPublishObj.stack;
271
319
  addLogs(
272
320
  logger,
@@ -284,8 +332,7 @@ async function performBulkPublish(data, _config, queue) {
284
332
  } else {
285
333
  delete bulkPublishObj.stack;
286
334
  console.log(chalk.red(`Bulk entries failed to publish with error ${formatError(error)}`));
287
- let sanitizedData = removePublishDetails(bulkPublishObj.entries);
288
- displayEntriesDetails(sanitizedData);
335
+ displayEntriesDetails(bulkPublishObj.entries, 'bulk_publish', mapping);
289
336
  addLogs(
290
337
  logger,
291
338
  { options: bulkPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
@@ -322,8 +369,7 @@ async function performBulkPublish(data, _config, queue) {
322
369
  bulkPublishAssetsResponse.job_id ? chalk.yellow(`job_id: ${bulkPublishAssetsResponse.job_id}`) : '',
323
370
  ),
324
371
  );
325
- let sanitizedData = removePublishDetails(bulkPublishObj.assets);
326
- displayAssetsDetails(sanitizedData);
372
+ displayAssetsDetails(bulkPublishObj.assets, 'bulk_publish', mapping);
327
373
  delete bulkPublishObj.stack;
328
374
  addLogs(
329
375
  logger,
@@ -342,8 +388,7 @@ async function performBulkPublish(data, _config, queue) {
342
388
  delete bulkPublishObj.stack;
343
389
  console.log(chalk.red(`Bulk assets failed to publish with error ${formatError(error)}`));
344
390
 
345
- let sanitizedData = removePublishDetails(bulkPublishObj.assets);
346
- displayAssetsDetails(sanitizedData);
391
+ displayAssetsDetails(sanitizedData, 'bulk_publish', mapping);
347
392
  addLogs(
348
393
  logger,
349
394
  { options: bulkPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
@@ -395,8 +440,7 @@ async function performBulkUnPublish(data, _config, queue) {
395
440
  : '',
396
441
  ),
397
442
  );
398
- let sanitizedData = removePublishDetails(bulkUnPublishObj.entries);
399
- displayEntriesDetails(sanitizedData);
443
+ displayEntriesDetails(bulkUnPublishObj.entries, 'bulk_unpublish');
400
444
  addLogs(
401
445
  logger,
402
446
  { options: bulkUnPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
@@ -413,8 +457,7 @@ async function performBulkUnPublish(data, _config, queue) {
413
457
  } else {
414
458
  delete bulkUnPublishObj.stack;
415
459
  console.log(chalk.red(`Bulk entries failed to Unpublish with error ${formatError(error)}`));
416
- let sanitizedData = removePublishDetails(bulkUnPublishObj.entries);
417
- displayEntriesDetails(sanitizedData);
460
+ displayEntriesDetails(bulkUnPublishObj.entries, 'bulk_unpublish');
418
461
  addLogs(
419
462
  logger,
420
463
  { options: bulkUnPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
@@ -446,14 +489,13 @@ async function performBulkUnPublish(data, _config, queue) {
446
489
  .then((bulkUnPublishAssetsResponse) => {
447
490
  if (!bulkUnPublishAssetsResponse.error_message) {
448
491
  delete bulkUnPublishObj.stack;
449
- let sanitizedData = removePublishDetails(bulkUnPublishObj.assets);
450
492
  console.log(
451
493
  chalk.green(
452
494
  `Bulk assets sent for Unpublish`,
453
495
  bulkUnPublishAssetsResponse.job_id ? chalk.yellow(`job_id: ${bulkUnPublishAssetsResponse.job_id}`) : '',
454
496
  ),
455
497
  );
456
- displayAssetsDetails(sanitizedData);
498
+ displayAssetsDetails(bulkUnPublishObj.assets, 'bulk_unpublish');
457
499
  addLogs(
458
500
  logger,
459
501
  { options: bulkUnPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
@@ -470,8 +512,7 @@ async function performBulkUnPublish(data, _config, queue) {
470
512
  } else {
471
513
  delete bulkUnPublishObj.stack;
472
514
  console.log(chalk.red(`Bulk assets failed to Unpublish with error ${formatError(error)}`));
473
- let sanitizedData = removePublishDetails(bulkUnPublishObj.assets);
474
- displayAssetsDetails(sanitizedData);
515
+ displayAssetsDetails(bulkUnPublishObj.assets, 'bulk_unpublish');
475
516
  addLogs(
476
517
  logger,
477
518
  { options: bulkUnPublishObj, api_key: stack.stackHeaders.api_key, alias: stack.alias, host: stack.host },
@@ -5,7 +5,6 @@
5
5
  /* eslint-disable max-params */
6
6
  const { configHandler } = require('@contentstack/cli-utilities');
7
7
  const { getQueue } = require('../util/queue');
8
- const defaults = require('../config/defaults.json');
9
8
  const { performBulkPublish, publishEntry, publishAsset, initializeLogger } = require('../consumer/publish');
10
9
  const retryFailedLogs = require('../util/retryfailed');
11
10
  const { validateFile } = require('../util/fs');
@@ -313,7 +312,6 @@ async function start(
313
312
  {
314
313
  retryFailed,
315
314
  bulkPublish,
316
- _filter,
317
315
  deliveryToken,
318
316
  contentTypes,
319
317
  environment,
@@ -148,8 +148,8 @@ async function start({ retryFailed, bulkPublish, environments, folderUid, locale
148
148
  } else if (folderUid) {
149
149
  setConfig(config, bulkPublish);
150
150
  const bulkPublishLimit = fetchBulkPublishLimit(stack?.org_uid);
151
- for (const element of locales) {
152
- await getAssets(stack, folderUid, bulkPublish, environments, element, apiVersion, bulkPublishLimit);
151
+ for (const locale of locales) {
152
+ await getAssets(stack, folderUid, bulkPublish, environments, locale, apiVersion, bulkPublishLimit);
153
153
  }
154
154
  }
155
155
  }
@@ -8,7 +8,6 @@ const { getQueue } = require('../util/queue');
8
8
  const { performBulkPublish, publishEntry, initializeLogger } = require('../consumer/publish');
9
9
  const retryFailedLogs = require('../util/retryfailed');
10
10
  const { validateFile } = require('../util/fs');
11
- const { setDelayForBulkPublish } = require('../util');
12
11
  const { isEmpty } = require('../util');
13
12
  const { fetchBulkPublishLimit } = require('../util/common-utility');
14
13
 
@@ -5,7 +5,6 @@
5
5
  /* eslint-disable camelcase */
6
6
  const { configHandler } = require('@contentstack/cli-utilities');
7
7
  const { getQueue } = require('../util/queue');
8
- const defaults = require('../config/defaults.json');
9
8
  const { performBulkUnPublish, UnpublishEntry, UnpublishAsset, initializeLogger } = require('../consumer/publish');
10
9
  const retryFailedLogs = require('../util/retryfailed');
11
10
  const { validateFile } = require('../util/fs');
package/src/util/fs.js CHANGED
@@ -1,6 +1,4 @@
1
1
  const fs = require('fs');
2
- const chalk = require('chalk');
3
- const path = require('path');
4
2
  const { getLogsDirPath } = require('../util/logger.js');
5
3
 
6
4
  const logsDir = getLogsDirPath();
package/src/util/store.js CHANGED
@@ -1,5 +1,4 @@
1
1
  const fs = require('fs');
2
- const path = require('path');
3
2
  const config = require('../config/index.js');
4
3
  const chalk = require('chalk');
5
4
  const {pathValidator} = require('@contentstack/cli-utilities')