Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 59 additions & 3 deletions .talismanrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,60 @@
fileignoreconfig:
- filename: package-lock.json
checksum: 62d4e616575696750cc428c6bc327058f68fcf7ef0194b4a68aac3cea9551f81
version: ''
- filename: package-lock.json
checksum: 18ea9af7cba162326531c904db8e4c81f20313624e32d6123382f8e0c8be1382
- filename: pnpm-lock.yaml
checksum: 002a7774ddf508950ca2b1cfb277f9439d0d3a57a84cb61804e580905ba4fa5e
- filename: packages/contentstack-import-setup/test/unit/backup-handler.test.ts
checksum: 0582d62b88834554cf12951c8690a73ef3ddbb78b82d2804d994cf4148e1ef93
- filename: packages/contentstack-import-setup/test/config.json
checksum: 187fd202d00e7d2c3d8b00f983ff21d8535e0fdb76cebec3f39c400258c88d05
- filename: packages/contentstack-command/test/config.json
checksum: 7c15663b3a6562b99d3082ead5035932b0276e4fd53774b3f838372a19b291ef
- filename: packages/contentstack-import-setup/test/unit/modules/content-types.test.ts
checksum: ce8772281171927e7dee7d6a761a029c902393b808e2696624fdcf0f5b80ea5c
- filename: packages/contentstack-import-setup/test/unit/modules/entries.test.ts
checksum: 17652bfc125879bb37facf8ea9f54dc4f97627ca625ec148c9d551a20196d85b
- filename: packages/contentstack-import-setup/test/unit/modules/extensions.test.ts
checksum: eaafdf39fc8a947aa490232bfc7da950c882bd69b5b27a0362ef2bee21f6a177
- filename: packages/contentstack-import-setup/test/unit/modules/global-fields.test.ts
checksum: fd49cfab6d374254c0c6eb4c7e7ee8ff4fe6c2b46e7b0d7f7437cbe665d1ce8b
- filename: packages/contentstack-import-setup/test/unit/modules/marketplace-apps.test.ts
checksum: c35dfe96d685fb12427de4b77c9240b34b9bee5e158ad7489acaa0d061ad562e
- filename: packages/contentstack-import-setup/test/unit/modules/taxonomies.test.ts
checksum: 3868ff9e8833a670350590f070c6f635807f2a1f534accba677af4709fab0e4a
- filename: packages/contentstack-import-setup/test/unit/import-config-handler.test.ts
checksum: f2f2c994543c388f2eecaf8128f789eab2895f1f78d659e58ef9491972c6f9a8
- filename: packages/contentstack-import-setup/test/unit/common-helper.test.ts
checksum: a0c98c6f0ee88a398e3f1bd80cac0a6cc0ede7eee01957cf7d6e1f199f3da643
- filename: packages/contentstack-import-setup/test/unit/modules/base-setup.test.ts
checksum: 862c52e2bbd1975b963f45ce3e89c243d047858cdbe7339918395ce2fc52bf89
- filename: packages/contentstack-import-setup/test/unit/import-setup.test.ts
checksum: 1eee4f461fa5b115894d1806a14af6f45336cbe6c0392f16078bd2877fadff67
- filename: packages/contentstack-import-setup/test/unit/login-handler.test.ts
checksum: e549f9ca3a9aae0d93b7284f7e771d55c0610725ddcb4333612df2f215e92769
- filename: packages/contentstack/README.md
checksum: 5425309ed404d1699e9dbac73c4cfaa9f33edef5e814196ae64b0f7279010569
- filename: packages/contentstack-import-setup/test/unit/modules/assets.test.ts
checksum: 449a5e3383631a6f78d1291aa3c28c91681879289398f0a933158fba5c5d5acf
- filename: packages/contentstack-auth/env.example
checksum: 72c9ed18a449c42b03ec54795898f6bad4e15d23a3d701c05b96fb17c3bbd93b
- filename: packages/contentstack-auth/test/integration/auth.test.ts
checksum: 9933a64d17d6d6dd7dd87ff210ce5e8a215bf36fac0cfd333894612ed10fb81b
- filename: packages/contentstack-auth/src/utils/mfa-handler.ts
checksum: ca9c34a3fe6c3b957debff987aefbceb641bf4954f15541d07d901f91e5ff014
- filename: packages/contentstack-auth/messages/index.json
checksum: 95856ad6273f17a9e853cda9c2cf0bdd782e47aeab93385e73ab870b5e814f89
- filename: packages/contentstack-auth/test/utils/auth-handler.test.ts
checksum: f88dded3a326f191844e39258e7fe390a72fefeb387d09c7f97e4e8aed520c97
- filename: packages/contentstack-auth/src/commands/auth/login.ts
checksum: 89204be8dfc1f670a568af992b54f34845e49bd4a8046c0cf041dd3759150718
- filename: packages/contentstack-auth/test/unit/commands/tokens-add.test.ts
checksum: 1e7247908e1887998210381c03caca93a3983e1c8967483464cf1c3bd3209cd1
- filename: packages/contentstack-auth/test/unit/commands/logout.test.ts
checksum: cd22dd04bd6a77cafa7dd0960cd4691201a3e228216d5a10041b8e39d7ebba1f
- filename: packages/contentstack-auth/src/utils/auth-handler.ts
checksum: 1261d02e8215da2db28557b77d6a8c8c604e11df88520e1cc5c8561e26bdd150
- filename: packages/contentstack-auth/test/unit/commands/login.test.ts
checksum: f93aa9b0c964608b60c88d4c72ff33840b58ec900297c4bae1f4ea365aa51048
- filename: packages/contentstack-auth/test/utils/mfa-handler.test.ts
checksum: b067f93cf0185d794e8419cc41e8fac96ed790dea8fc48dc083ee242ccacbd4d
version: "1.0"
555 changes: 278 additions & 277 deletions package-lock.json

Large diffs are not rendered by default.

3 changes: 1 addition & 2 deletions packages/contentstack-audit/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,4 @@ dependabot.yml
.editorconfig
oclif.manifest.json
*.env
.vscode/
audit-report
.vscode/
2 changes: 1 addition & 1 deletion packages/contentstack-bootstrap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ $ npm install -g @contentstack/cli-cm-bootstrap
$ csdx COMMAND
running command...
$ csdx (--version)
@contentstack/cli-cm-bootstrap/1.15.0 darwin-arm64 node-v22.13.1
@contentstack/cli-cm-bootstrap/1.15.0 darwin-arm64 node-v22.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
Expand Down
2 changes: 1 addition & 1 deletion packages/contentstack-bulk-publish/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-cm-bulk-publish
$ csdx COMMAND
running command...
$ csdx (--version)
@contentstack/cli-cm-bulk-publish/1.9.0 darwin-arm64 node-v23.11.0
@contentstack/cli-cm-bulk-publish/1.9.1 darwin-arm64 node-v22.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
Expand Down
3 changes: 2 additions & 1 deletion packages/contentstack-bulk-publish/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
{
"name": "@contentstack/cli-cm-bulk-publish",
"description": "Contentstack CLI plugin for bulk publish actions",
"version": "1.9.0",
"version": "1.9.1",
"author": "Contentstack",
"bugs": "https://github.com/contentstack/cli/issues",
"dependencies": {
"@contentstack/cli-command": "~1.6.0",
"@contentstack/cli-config": "~1.15.0",
"@contentstack/cli-utilities": "~1.13.1",
"@oclif/core": "^4.3.0",
"@oclif/plugin-help": "^6.2.28",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
/* eslint-disable camelcase */
/* eslint-disable complexity */
/* eslint-disable max-params */
const { configHandler } = require('@contentstack/cli-utilities');
const { configHandler, cliux } = require('@contentstack/cli-utilities');
const { getQueue } = require('../util/queue');
const { performBulkPublish, publishEntry, publishAsset, initializeLogger } = require('../consumer/publish');
const retryFailedLogs = require('../util/retryfailed');
Expand All @@ -15,6 +15,7 @@ const { Command } = require('@contentstack/cli-command');
const command = new Command();
const { isEmpty } = require('../util');
const { fetchBulkPublishLimit } = require('../util/common-utility');
const { generateBulkPublishStatusUrl } = require('../util/bulk-publish-utils');
const VARIANTS_PUBLISH_API_VERSION = '3.2';

let bulkPublishSet = [];
Expand Down Expand Up @@ -334,6 +335,18 @@ async function start(
} else if (!isSuccessLogEmpty) {
console.log(`The success log for this session is stored at ${filePath}.success`);
}

// Generate and display the bulk publish status link
if (bulkPublish && stack && config) {
const statusUrl = generateBulkPublishStatusUrl(stack, config);
if (statusUrl) {
process.stdout.write('\n');
process.stdout.write('\x1b[37mHere is the link to check the bulk publish status: \x1b[0m');
process.stdout.write('\x1b[34m' + statusUrl + '\x1b[0m');
process.stdout.write('\n');
}
}

process.exit(0);
});

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
/* eslint-disable no-console */
/* eslint-disable new-cap */
/* eslint-disable camelcase */
const { cliux } = require('@contentstack/cli-utilities');
const { getQueue } = require('../util/queue');
const { performBulkPublish, publishAsset, initializeLogger } = require('../consumer/publish');
const retryFailedLogs = require('../util/retryfailed');
const { validateFile } = require('../util/fs');
const { isEmpty } = require('../util');
const { fetchBulkPublishLimit } = require('../util/common-utility');
const { generateBulkPublishStatusUrl } = require('../util/bulk-publish-utils');

const queue = getQueue();
let logFileName;
Expand Down Expand Up @@ -129,6 +131,18 @@ async function start({ retryFailed, bulkPublish, environments, folderUid, locale
} else if (!isSuccessLogEmpty) {
console.log(`The success log for this session is stored at ${filePath}.success`);
}

// Generate and display the bulk publish status link
if (bulkPublish && stack && config) {
const statusUrl = generateBulkPublishStatusUrl(stack, config);
if (statusUrl) {
process.stdout.write('\n');
process.stdout.write('\x1b[37mHere is the link to check the bulk publish status: \x1b[0m');
process.stdout.write('\x1b[34m' + statusUrl + '\x1b[0m');
process.stdout.write('\n');
}
}

process.exit(0);
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
/* eslint-disable camelcase */
/* eslint-disable max-depth */
/* eslint-disable no-console */
const { cliux } = require('@contentstack/cli-utilities');
const { getQueue } = require('../util/queue');
const { performBulkPublish, publishEntry, initializeLogger } = require('../consumer/publish');
const retryFailedLogs = require('../util/retryfailed');
const { validateFile } = require('../util/fs');
const { isEmpty } = require('../util');
const { fetchBulkPublishLimit } = require('../util/common-utility');
const { generateBulkPublishStatusUrl } = require('../util/bulk-publish-utils');
const VARIANTS_PUBLISH_API_VERSION = '3.2';

const queue = getQueue();
Expand Down Expand Up @@ -253,6 +255,18 @@ async function start(
} else if (!isSuccessLogEmpty) {
console.log(`The success log for this session is stored at ${filePath}.success`);
}

// Generate and display the bulk publish status link
if (bulkPublish && stack && config) {
const statusUrl = generateBulkPublishStatusUrl(stack, config);
if (statusUrl) {
process.stdout.write('\n');
process.stdout.write('\x1b[37mHere is the link to check the bulk publish status: \x1b[0m');
process.stdout.write('\x1b[34m' + statusUrl + '\x1b[0m');
process.stdout.write('\n');
}
}

process.exit(0);
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@
/* eslint-disable no-console */
/* eslint-disable new-cap */
/* eslint-disable camelcase */
const { cliux } = require('@contentstack/cli-utilities');
const { getQueue } = require('../util/queue');
const { performBulkPublish, publishEntry, initializeLogger } = require('../consumer/publish');
const retryFailedLogs = require('../util/retryfailed');
const { validateFile } = require('../util/fs');
const { isEmpty } = require('../util');
const { fetchBulkPublishLimit } = require('../util/common-utility');
const { generateBulkPublishStatusUrl } = require('../util/bulk-publish-utils');

const queue = getQueue();
let skipCount;
Expand Down Expand Up @@ -142,6 +144,18 @@ async function start({ sourceEnv, environments, locale, contentTypes, bulkPublis
} else if (!isSuccessLogEmpty) {
console.log(`The success log for this session is stored at ${filePath}.success`);
}

// Generate and display the bulk publish status link
if (bulkPublish && stack && config) {
const statusUrl = generateBulkPublishStatusUrl(stack, config);
if (statusUrl) {
process.stdout.write('\n');
process.stdout.write('\x1b[37mHere is the link to check the bulk unpublish status: \x1b[0m');
process.stdout.write('\x1b[34m' + statusUrl + '\x1b[0m');
process.stdout.write('\n');
}
}

process.exit(0);
});

Expand Down
15 changes: 14 additions & 1 deletion packages/contentstack-bulk-publish/src/producer/unpublish.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
/* eslint-disable complexity */
/* eslint-disable no-console */
/* eslint-disable camelcase */
const { configHandler } = require('@contentstack/cli-utilities');
const { configHandler, cliux } = require('@contentstack/cli-utilities');
const { getQueue } = require('../util/queue');
const { performBulkUnPublish, UnpublishEntry, UnpublishAsset, initializeLogger } = require('../consumer/publish');
const retryFailedLogs = require('../util/retryfailed');
Expand All @@ -15,6 +15,7 @@ const { Command } = require('@contentstack/cli-command');
const command = new Command();
const { isEmpty } = require('../util');
const { fetchBulkPublishLimit } = require('../util/common-utility');
const { generateBulkPublishStatusUrl } = require('../util/bulk-publish-utils');
const VARIANTS_UNPUBLISH_API_VERSION = '3.2';
const delay = (ms) => new Promise((res) => setTimeout(res, ms));

Expand Down Expand Up @@ -325,6 +326,18 @@ async function start(
} else if (!isSuccessLogEmpty) {
console.log(`The success log for this session is stored at ${filePath}.success`);
}

// Generate and display the bulk publish status link
if (bulkUnpublish && stack && config) {
const statusUrl = generateBulkPublishStatusUrl(stack, config);
if (statusUrl) {
process.stdout.write('\n');
process.stdout.write('\x1b[37mHere is the link to check the bulk unpublish status: \x1b[0m');
process.stdout.write('\x1b[34m' + statusUrl + '\x1b[0m');
process.stdout.write('\n');
}
}

process.exit(0);
});
if (includeVariants) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
const { regions } = require('@contentstack/cli-config/lib/utils/region-handler');
const { configHandler } = require('@contentstack/cli-utilities');

/**
* Get the appropriate app URL based on the host
* Uses the configured region from configHandler to get the uiHost
* @param {string} host - The host URL
* @returns {string} The app URL
*/
function getAppUrlFromHost(host) {
// Get the current region from configHandler
const currentRegion = configHandler.get('region');
if (currentRegion && currentRegion.uiHost) {
return currentRegion.uiHost;
}
// Default to NA region if no region is configured
return regions['AWS-NA'].uiHost;
}

/**
* Generate the bulk publish status URL based on stack configuration
* @param {Object} stack - Stack object containing api_key and host
* @param {Object} config - Config object containing stackApiKey, branch, and host
* @returns {string|null} The status URL or null if apiKey is not available
*/
function generateBulkPublishStatusUrl(stack, config) {
const apiKey = stack?.api_key || config?.stackApiKey;
if (!apiKey) {
return null;
}
const branch = config?.branch || 'main';
const host = stack?.host || config?.host || 'app.contentstack.com';
const appUrl = getAppUrlFromHost(host);
return `${appUrl}/#!/stack/${apiKey}/publish-queue?branch=${branch}`;
}

module.exports = {
generateBulkPublishStatusUrl,
};
15 changes: 5 additions & 10 deletions packages/contentstack-config/.mocharc.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
{
"require": [
"ts-node/register",
"source-map-support/register"
],
"watch-extensions": [
"ts"
],
"recursive": true,
"timeout": 10000
}
"require": ["ts-node/register", "source-map-support/register"],
"watch-extensions": ["ts"],
"recursive": true,
"timeout": 10000
}
10 changes: 5 additions & 5 deletions packages/contentstack-config/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
"postpack": "rm -f oclif.manifest.json",
"prepack": "pnpm compile && oclif manifest && oclif readme",
"version": "oclif readme && git add README.md",
"test:report": "tsc -p test && nyc --reporter=lcov --extension .ts mocha --forbid-only \"test/**/*.test.ts\"",
"test:report": "tsc -p test && NODE_OPTIONS=\"--no-warnings\" nyc --reporter=lcov --extension .ts mocha --forbid-only \"test/**/*.test.ts\"",
"pretest": "tsc -p test",
"test": "mocha --require ts-node/register 'test/**/*.test.ts'",
"test": "NODE_OPTIONS=\"--no-warnings\" mocha --require ts-node/register --forbid-only \"test/unit/**/*.test.ts\"",
"posttest": "npm run lint",
"lint": "eslint src/**/*.ts",
"format": "eslint src/**/*.ts --fix",
"test:integration": "mocha --forbid-only \"test/run.test.ts\" --integration-test",
"test:unit": "mocha --forbid-only \"test/unit/**/*.test.ts\" --unit-test",
"test:unit:report": "nyc --extension .ts mocha --forbid-only \"test/unit/**/*.test.ts\""
"test:integration": "NODE_OPTIONS=\"--no-warnings\" mocha --forbid-only \"test/run.test.ts\" --integration-test",
"test:unit": "NODE_OPTIONS=\"--no-warnings\" mocha --forbid-only \"test/unit/**/*.test.ts\" --unit-test",
"test:unit:report": "NODE_OPTIONS=\"--no-warnings\" nyc --extension .ts mocha --forbid-only \"test/unit/**/*.test.ts\""
},
"dependencies": {
"@contentstack/cli-command": "~1.6.0",
Expand Down
3 changes: 3 additions & 0 deletions packages/contentstack-config/src/utils/region-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -201,4 +201,7 @@ class UserConfig {
}
}

// Export the regions object for use in other packages
export { regions };

export default new UserConfig();
19 changes: 11 additions & 8 deletions packages/contentstack-config/test/run.test.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
import { join, resolve } from "path";
import { existsSync, readdirSync } from "fs";
import filter from "lodash/filter.js";
import forEach from "lodash/forEach.js";
import isEmpty from "lodash/isEmpty.js";
import isArray from "lodash/isArray.js";
import includes from "lodash/includes.js";
// @ts-ignore
import config from "./config.json" with { type: "json" };
import { existsSync, readdirSync, readFileSync } from "fs";

// Import lodash functions
const filter = require("lodash/filter");
const forEach = require("lodash/forEach");
const isEmpty = require("lodash/isEmpty");
const isArray = require("lodash/isArray");
const includes = require("lodash/includes");

// Import config
const config = JSON.parse(readFileSync(join(__dirname, "config.json"), "utf8"));

const { IS_TS, UNIT_EXECUTION_ORDER, INTEGRATION_EXECUTION_ORDER } = config;

Expand Down
Loading
Loading