@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 +1 -1
- package/package.json +5 -10
- package/src/commands/cm/stacks/publish-configure.js +1 -1
- package/src/consumer/publish.js +71 -30
- package/src/producer/cross-publish.js +0 -2
- package/src/producer/publish-assets.js +2 -2
- package/src/producer/publish-edits.js +0 -1
- package/src/producer/unpublish.js +0 -1
- package/src/util/fs.js +0 -2
- package/src/util/store.js +0 -1
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.
|
|
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.
|
|
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.
|
|
9
|
-
"@contentstack/cli-utilities": "~1.8.
|
|
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.
|
|
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 {
|
|
4
|
+
const { flags } = require('@contentstack/cli-utilities');
|
|
5
5
|
|
|
6
6
|
let config = require('../../../config/index.js');
|
|
7
7
|
|
package/src/consumer/publish.js
CHANGED
|
@@ -32,22 +32,55 @@ function removePublishDetails(elements) {
|
|
|
32
32
|
return elements;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
function displayEntriesDetails(sanitizedData) {
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
152
|
-
await getAssets(stack, folderUid, bulkPublish, environments,
|
|
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