diff --git a/packages/contentstack-asset-management/package.json b/packages/contentstack-asset-management/package.json index 69a3a96d3..68f3252ed 100644 --- a/packages/contentstack-asset-management/package.json +++ b/packages/contentstack-asset-management/package.json @@ -30,7 +30,7 @@ ], "license": "MIT", "dependencies": { - "@contentstack/cli-utilities": "~2.0.0-beta.8" + "@contentstack/cli-utilities": "~2.0.0-beta.5" }, "oclif": { "commands": "./lib/commands", diff --git a/packages/contentstack-audit/package.json b/packages/contentstack-audit/package.json index bb2e28e62..637def9bd 100644 --- a/packages/contentstack-audit/package.json +++ b/packages/contentstack-audit/package.json @@ -18,8 +18,8 @@ "/oclif.manifest.json" ], "dependencies": { - "@contentstack/cli-command": "~2.0.0-beta.7", - "@contentstack/cli-utilities": "~2.0.0-beta.8", + "@contentstack/cli-command": "~2.0.0-beta.6", + "@contentstack/cli-utilities": "~2.0.0-beta.7", "@oclif/core": "^4.3.0", "chalk": "^5.6.2", "fast-csv": "^4.3.6", diff --git a/packages/contentstack-bootstrap/package.json b/packages/contentstack-bootstrap/package.json index d0733240b..144dbdc25 100644 --- a/packages/contentstack-bootstrap/package.json +++ b/packages/contentstack-bootstrap/package.json @@ -17,9 +17,9 @@ }, "dependencies": { "@contentstack/cli-cm-seed": "~2.0.0-beta.17", - "@contentstack/cli-command": "~2.0.0-beta.7", - "@contentstack/cli-utilities": "~2.0.0-beta.8", - "@contentstack/cli-config": "~2.0.0-beta.9", + "@contentstack/cli-command": "~2.0.0-beta.6", + "@contentstack/cli-utilities": "~2.0.0-beta.7", + "@contentstack/cli-config": "~2.0.0-beta.8", "@oclif/core": "^4.3.0", "inquirer": "12.11.1", "mkdirp": "^2.1.6", diff --git a/packages/contentstack-bootstrap/src/bootstrap/utils.ts b/packages/contentstack-bootstrap/src/bootstrap/utils.ts index cd1da33e4..88dfc668a 100644 --- a/packages/contentstack-bootstrap/src/bootstrap/utils.ts +++ b/packages/contentstack-bootstrap/src/bootstrap/utils.ts @@ -221,7 +221,6 @@ const envFileHandler = async ( //default imageHostname = '*-images.contentstack.com'; } - const production = environmentVariables.environment === 'production' ? true : false; switch (appConfigKey) { case 'kickstart-next': case 'kickstart-next-ssr': @@ -275,34 +274,6 @@ const envFileHandler = async ( result = await writeEnvFile(content, filePath); break; - case 'reactjs': - case 'reactjs-starter': - fileName = `.env.${environmentVariables.environment}.local`; - filePath = pathValidator(path.join(sanitizePath(clonedDirectory), sanitizePath(fileName))); - content = `REACT_APP_CONTENTSTACK_API_KEY=${environmentVariables.api_key - }\nREACT_APP_CONTENTSTACK_DELIVERY_TOKEN=${environmentVariables.deliveryToken}${livePreviewEnabled - ? `\nREACT_APP_CONTENTSTACK_PREVIEW_TOKEN=${environmentVariables.preview_token || `''` - }\nREACT_APP_CONTENTSTACK_PREVIEW_HOST=${previewHost}\nREACT_APP_CONTENTSTACK_APP_HOST=${appHost}\n` - : '\n' - }\nREACT_APP_CONTENTSTACK_ENVIRONMENT=${environmentVariables.environment}\n${customHost ? '\nREACT_APP_CONTENTSTACK_API_HOST=' + customHost : '' - }${!isUSRegion && !customHost ? '\nREACT_APP_CONTENTSTACK_REGION=' + region.name : '' - }\nSKIP_PREFLIGHT_CHECK=true\nREACT_APP_CONTENTSTACK_LIVE_PREVIEW=${livePreviewEnabled}`; - result = await writeEnvFile(content, filePath); - break; - case 'nextjs': - case 'nextjs-starter': - fileName = `.env.${environmentVariables.environment}.local`; - filePath = pathValidator(path.join(sanitizePath(clonedDirectory), sanitizePath(fileName))); - content = `CONTENTSTACK_API_KEY=${environmentVariables.api_key}\nCONTENTSTACK_DELIVERY_TOKEN=${environmentVariables.deliveryToken - }\n${livePreviewEnabled - ? `\nCONTENTSTACK_PREVIEW_TOKEN=${environmentVariables.preview_token || `''` - }\nCONTENTSTACK_PREVIEW_HOST=${previewHost}\nCONTENTSTACK_APP_HOST=${appHost}\n` - : '\n' - }CONTENTSTACK_ENVIRONMENT=${environmentVariables.environment}\nCONTENTSTACK_API_HOST=${customHost ? customHost : managementAPIHost - }${!isUSRegion && !customHost ? '\nCONTENTSTACK_REGION=' + region.name : '' - }\nCONTENTSTACK_LIVE_PREVIEW=${livePreviewEnabled}\nCONTENTSTACK_LIVE_EDIT_TAGS=false`; - result = await writeEnvFile(content, filePath); - break; case 'compass-app': fileName = '.env'; filePath = pathValidator(path.join(sanitizePath(clonedDirectory), sanitizePath(fileName))); @@ -318,75 +289,6 @@ const envFileHandler = async ( }\nCONTENTSTACK_HOST=${cdnHost}`; result = await writeEnvFile(content, filePath); break; - case 'gatsby': - case 'gatsby-starter': - fileName = `.env.${environmentVariables.environment}`; - filePath = pathValidator(path.join(sanitizePath(clonedDirectory), sanitizePath(fileName))); - content = `CONTENTSTACK_API_KEY=${environmentVariables.api_key}\nCONTENTSTACK_DELIVERY_TOKEN=${environmentVariables.deliveryToken - }\n${livePreviewEnabled - ? `\nCONTENTSTACK_PREVIEW_TOKEN=${environmentVariables.preview_token || `''` - }\nCONTENTSTACK_PREVIEW_HOST=${previewHost}\nCONTENTSTACK_APP_HOST=${appHost}\n` - : '\n' - }\nCONTENTSTACK_ENVIRONMENT=${environmentVariables.environment - }\nCONTENTSTACK_API_HOST=${managementAPIHost}\nCONTENTSTACK_LIVE_PREVIEW=${livePreviewEnabled}`; - result = await writeEnvFile(content, filePath); - break; - case 'angular': - content = `export const environment = { \n\tproduction:${environmentVariables.environment === 'production' ? true : false - }, \n\tconfig : { \n\t\tapi_key: '${environmentVariables.api_key}', \n\t\tdelivery_token: '${environmentVariables.deliveryToken - }',\n${livePreviewEnabled - ? `\n\tpreivew_token:'${environmentVariables.preview_token || `''` - }'\n\tpreview_host:'${previewHost}'\n\tapp_host:'${appHost}'\n` - : '\n' - },\n\t\tenvironment: '${environmentVariables.environment}'${!isUSRegion && !customHost ? `,\n\t\tregion: '${region.name}'` : '' - } \n\t } \n };`; - fileName = `.env${environmentVariables.environment === 'production' ? '.prod' : ''}`; - filePath = pathValidator(path.join(sanitizePath(clonedDirectory), 'src', 'environments', sanitizePath(fileName))); - result = await writeEnvFile(content, filePath); - break; - case 'angular-starter': - content = `CONTENTSTACK_API_KEY=${environmentVariables.api_key}\nCONTENTSTACK_DELIVERY_TOKEN=${environmentVariables.deliveryToken - }\n${livePreviewEnabled - ? `\nCONTENTSTACK_PREVIEW_TOKEN=${environmentVariables.preview_token || `''` - }\nCONTENTSTACK_PREVIEW_HOST=${previewHost}\nCONTENTSTACK_APP_HOST=${appHost}\n` - : '\n' - }CONTENTSTACK_ENVIRONMENT=${environmentVariables.environment}\nCONTENTSTACK_API_HOST=${customHost ? customHost : managementAPIHost - }${!isUSRegion && !customHost ? '\nCONTENTSTACK_REGION=' + region.name : '' - }\nCONTENTSTACK_LIVE_PREVIEW=${livePreviewEnabled}\nCONTENTSTACK_LIVE_EDIT_TAGS=false`; - fileName = `.env${environmentVariables.environment === 'production' ? '.prod' : ''}`; - filePath = pathValidator(path.join(sanitizePath(clonedDirectory), sanitizePath(fileName))); - result = await writeEnvFile(content, filePath); - break; - case 'nuxtjs': - case 'nuxt-starter': - case 'nuxt3-starter': - case 'stencil-starter': - fileName = production ? '.env.production' : '.env'; - filePath = pathValidator(path.join(sanitizePath(clonedDirectory), sanitizePath(fileName))); - // Note: Stencil app needs all the env variables, even if they are not having values otherwise the rollup does not work properly and throws process in undefined error. - content = `CONTENTSTACK_API_KEY=${environmentVariables.api_key}\nCONTENTSTACK_DELIVERY_TOKEN=${environmentVariables.deliveryToken - }\n${livePreviewEnabled - ? `\nCONTENTSTACK_PREVIEW_TOKEN=${environmentVariables.preview_token || `''`}\nCONTENTSTACK_PREVIEW_HOST=${customHost ?? previewHost - }\nCONTENTSTACK_APP_HOST=${appHost}` - : '\n' - }\nCONTENTSTACK_ENVIRONMENT=${environmentVariables.environment}${!isUSRegion && !customHost ? '\nCONTENTSTACK_REGION=' + region.name : '' - }\nCONTENTSTACK_API_HOST=${customHost ? customHost : managementAPIHost - }\nCONTENTSTACK_LIVE_PREVIEW=${livePreviewEnabled}\n\nCONTENTSTACK_LIVE_EDIT_TAGS=false`; - result = await writeEnvFile(content, filePath); - break; - case 'vue-starter': - fileName = '.env'; - filePath = pathValidator(path.join(sanitizePath(clonedDirectory), sanitizePath(fileName))); - content = `VUE_APP_CONTENTSTACK_API_KEY=${environmentVariables.api_key}\nVUE_APP_CONTENTSTACK_DELIVERY_TOKEN=${environmentVariables.deliveryToken - }\n${livePreviewEnabled - ? `\nVUE_APP_CONTENTSTACK_PREVIEW_TOKEN=${environmentVariables.preview_token || `''` - }\nVUE_APP_CONTENTSTACK_PREVIEW_HOST=${previewHost}\nVUE_APP_CONTENTSTACK_APP_HOST=${appHost}\n` - : '\n' - }\nVUE_APP_CONTENTSTACK_ENVIRONMENT=${environmentVariables.environment}${customHost ? '\nVUE_APP_CONTENTSTACK_API_HOST=' + customHost : '' - }${!isUSRegion && !customHost ? '\nVUE_APP_CONTENTSTACK_REGION=' + region.name : '' - }\nVUE_APP_CONTENTSTACK_LIVE_PREVIEW=${livePreviewEnabled}`; - result = await writeEnvFile(content, filePath); - break; default: cliux.error(messageHandler.parse('CLI_BOOTSTRAP_INVALID_APP_NAME')); } diff --git a/packages/contentstack-bootstrap/src/config.ts b/packages/contentstack-bootstrap/src/config.ts index a41af0a62..1be0e932d 100644 --- a/packages/contentstack-bootstrap/src/config.ts +++ b/packages/contentstack-bootstrap/src/config.ts @@ -15,12 +15,7 @@ export interface AppConfig { } const config: Configuration = { - sampleApps: [ - { displayName: 'React JS (Deprecated)', configKey: 'reactjs' }, - { displayName: 'Next JS (Deprecated)', configKey: 'nextjs' }, - { displayName: 'Gatsby (Deprecated)', configKey: 'gatsby' }, - { displayName: 'Angular (Deprecated)', configKey: 'angular' }, - ], + sampleApps: [], starterApps: [ { displayName: 'Compass App', configKey: 'compass-app' }, { displayName: 'Kickstart Next.js', configKey: 'kickstart-next' }, @@ -30,15 +25,6 @@ const config: Configuration = { { displayName: 'Kickstart Next.js Middleware', configKey: 'kickstart-next-middleware' }, { displayName: 'Kickstart NuxtJS', configKey: 'kickstart-nuxt' }, { displayName: 'Kickstart NuxtJS SSR', configKey: 'kickstart-nuxt-ssr' }, - - { displayName: 'React JS (Deprecated)', configKey: 'reactjs-starter' }, - { displayName: 'Next JS (Deprecated)', configKey: 'nextjs-starter' }, - { displayName: 'Gatsby (Deprecated)', configKey: 'gatsby-starter' }, - { displayName: 'Angular (Deprecated)', configKey: 'angular-starter' }, - { displayName: 'Nuxt JS (Deprecated)', configKey: 'nuxt-starter' }, - { displayName: 'Vue JS (Deprecated)', configKey: 'vue-starter' }, - { displayName: 'Stencil (Deprecated)', configKey: 'stencil-starter' }, - { displayName: 'Nuxt3 (Deprecated)', configKey: 'nuxt3-starter' }, ], appLevelConfig: { 'kickstart-next': { @@ -74,63 +60,11 @@ const config: Configuration = { source: 'contentstack/kickstart-nuxt-ssr', stack: 'contentstack/kickstart-stack-seed', }, - nextjs: { - source: 'contentstack/contentstack-nextjs-react-universal-demo', - stack: 'contentstack/stack-contentstack-nextjs-react-universal-demo', - }, - reactjs: { - source: 'contentstack/contentstack-reactjs-universal-sample-app', - stack: 'contentstack/stack-contentstack-reactjs-universal-sample-app', - }, - gatsby: { - source: 'contentstack/gatsby-starter-contentstack', - stack: 'contentstack/stack-gatsby-starter-contentstack', - }, - angular: { - source: 'contentstack/contentstack-angular-modularblock-example', - stack: 'contentstack/stack-contentstack-angular-modularblock-example', - }, 'compass-app': { source: 'contentstack/compass-starter-app', stack: 'contentstack/compass-starter-stack', master_locale: 'en', }, - 'nuxtjs-disabled': { - source: 'contentstack/contentstack-nuxtjs-vue-universal-demo', - stack: 'shafeeqd959/stack-contentstack-nuxtjs-vue-universal-demo', - }, - 'nuxt-starter': { - source: 'contentstack/contentstack-nuxtjs-starter-app', - stack: 'contentstack/stack-starter-app', - }, - 'reactjs-starter': { - source: 'contentstack/contentstack-react-starter-app', - stack: 'contentstack/stack-starter-app', - }, - 'nextjs-starter': { - source: 'contentstack/contentstack-nextjs-starter-app', - stack: 'contentstack/stack-starter-app', - }, - 'gatsby-starter': { - source: 'contentstack/contentstack-gatsby-starter-app', - stack: 'contentstack/stack-starter-app', - }, - 'angular-starter': { - source: 'contentstack/contentstack-angular-starter', - stack: 'contentstack/stack-starter-app', - }, - 'vue-starter': { - source: 'contentstack/contentstack-vuejs-starter-app', - stack: 'contentstack/stack-starter-app', - }, - 'stencil-starter': { - source: 'contentstack/contentstack-stencil-starter-app', - stack: 'contentstack/stack-starter-app', - }, - 'nuxt3-starter': { - source: 'contentstack/contentstack-nuxt3-starter-app', - stack: 'contentstack/stack-starter-app', - }, }, }; export default config; diff --git a/packages/contentstack-bootstrap/test/bootstrap.test.js b/packages/contentstack-bootstrap/test/bootstrap.test.js index d0c2730d1..8bed5d5f1 100644 --- a/packages/contentstack-bootstrap/test/bootstrap.test.js +++ b/packages/contentstack-bootstrap/test/bootstrap.test.js @@ -47,8 +47,8 @@ const mock = { preview_token: 'test-preview-token', }, appConfig: { - configKey: 'reactjs-starter', - displayName: 'React.js Starter', + configKey: 'kickstart-next', + displayName: 'Kickstart Next.js', source: 'contentstack/stack-starter-app', stack: 'contentstack/stack-starter-app', master_locale: 'en-us', @@ -159,10 +159,10 @@ describe('Bootstrapping an app', () => { }); sandbox.stub(cliux, 'prompt').callsFake((question) => { const responses = { - 'app-name': 'reactjs-starter', + 'app-name': 'kickstart-next', org: 'org-uid', 'stack-name': 'test-bootstrap-cmd', - 'app-type': 'reactjs-starter', + 'app-type': 'kickstart-next', yes: true, }; return Promise.resolve(responses[question.name] || {}); @@ -654,7 +654,7 @@ describe('Bootstrapping an app', () => { // Track Bootstrap instantiation sandbox.stub(require('../lib/bootstrap/index'), 'default').callsFake(function (_options) { // Verify that appConfig was retrieved using app-name - expect(config.getAppLevelConfigByName.calledWith('reactjs-starter')).to.be.true; + expect(config.getAppLevelConfigByName.calledWith('kickstart-next')).to.be.true; return { run: sandbox.stub().resolves(), }; @@ -664,7 +664,7 @@ describe('Bootstrapping an app', () => { command.parse = sandbox.stub().resolves({ flags: { alias: undefined, - 'app-name': 'reactjs-starter', + 'app-name': 'kickstart-next', 'app-type': undefined, 'project-dir': undefined, 'stack-api-key': undefined, diff --git a/packages/contentstack-bootstrap/test/utils.test.js b/packages/contentstack-bootstrap/test/utils.test.js index ad2d0addd..27628495b 100644 --- a/packages/contentstack-bootstrap/test/utils.test.js +++ b/packages/contentstack-bootstrap/test/utils.test.js @@ -31,243 +31,120 @@ function getFileContent(_path) { }); } +function normalizeEnvContent(content) { + return content.replace(/\n/g, ','); +} + +function createManagementAPIClient(environments, token) { + return { + stack: () => ({ + environment: () => ({ + query: () => ({ + find: () => Promise.resolve(environments), + }), + }), + managementToken: () => ({ + create: () => Promise.resolve({ uid: 'mock-management-token-uid', token: 'mock-management-token' }), + }), + deliveryToken: () => ({ + create: () => Promise.resolve({ token, preview_token: 'mock_preview_token' }), + }), + }), + }; +} + +const region = { + name: 'AWS-NA', + cda: 'https://cdn.contentstack.com', + cma: 'https://api.contentstack.com', + uiHost: 'https://app.contentstack.com', +}; + describe('Utils', function () { describe('#setupEnvironments', () => { it('Create env file for a stack with live preview enabled', async () => { const environments = { items: [{ name: 'production' }, { name: 'development' }] }; - const token = 'mock-delivery-token'; - const api_key = 'mock-api-key'; - const appConfig = { - appConfigKey: 'reactjs', - }; - const livePreviewEnabled = true; + const appConfig = { appConfigKey: 'kickstart-next' }; const clonedDirectory = await getDirectory(); - const region = { - name: 'AWS-NA', - cda: 'https://cdn.contentstack.com', - cma: 'https://api.contentstack.com', - uiHost: 'https://app.contentstack.com', - }; - const managementAPIClient = { - stack: () => { - return { - environment: () => { - return { - query: () => { - return { - find: () => Promise.resolve(environments), - }; - }, - }; - }, - managementToken: () => ({ - create: () => Promise.resolve({ token: 'mock-management-token' }), - }), - managementToken: () => ({ - create: () => Promise.reject(new Error('Management token is not available in your plan.')), - }), - deliveryToken: () => { - return { - create: () => Promise.resolve({ token, preview_token: 'mock_preview_token' }), - }; - }, - }; - }, - }; + const managementAPIClient = createManagementAPIClient(environments, 'mock-delivery-token'); - try { - await setupEnvironments(managementAPIClient, api_key, appConfig, clonedDirectory, region, livePreviewEnabled); - } catch (error) { - expect(error.message).to.equal('Management token is not available in your plan.'); - return; - } + await setupEnvironments( + managementAPIClient, + 'mock-api-key', + appConfig, + clonedDirectory, + region, + true, + ); const files = await getDirFiles(clonedDirectory); - expect(files).to.have.length(2); - let devEnvFile = await getFileContent(path.join(clonedDirectory, '.env.development.local')); - devEnvFile = devEnvFile.replace(/\n/g, ','); - expect(devEnvFile).equal( - 'REACT_APP_CONTENTSTACK_API_KEY=mock-api-key,REACT_APP_CONTENTSTACK_DELIVERY_TOKEN=mock-delivery-token,REACT_APP_CONTENTSTACK_PREVIEW_TOKEN=mock_preview_token,REACT_APP_CONTENTSTACK_PREVIEW_HOST=rest-preview.contentstack.com,REACT_APP_CONTENTSTACK_APP_HOST=app.contentstack.com,,REACT_APP_CONTENTSTACK_ENVIRONMENT=development,,SKIP_PREFLIGHT_CHECK=true,REACT_APP_CONTENTSTACK_LIVE_PREVIEW=true', - ); - let prodEnvFile = await getFileContent(path.join(clonedDirectory, '.env.production.local')); - prodEnvFile = prodEnvFile.replace(/\n/g, ','); - expect(prodEnvFile).equal( - 'REACT_APP_CONTENTSTACK_API_KEY=mock-api-key,REACT_APP_CONTENTSTACK_DELIVERY_TOKEN=mock-delivery-token,REACT_APP_CONTENTSTACK_PREVIEW_TOKEN=mock_preview_token,REACT_APP_CONTENTSTACK_PREVIEW_HOST=rest-preview.contentstack.com,REACT_APP_CONTENTSTACK_APP_HOST=app.contentstack.com,,REACT_APP_CONTENTSTACK_ENVIRONMENT=production,,SKIP_PREFLIGHT_CHECK=true,REACT_APP_CONTENTSTACK_LIVE_PREVIEW=true', + expect(files).to.have.length(1); + const envFile = normalizeEnvContent(await getFileContent(path.join(clonedDirectory, '.env'))); + expect(envFile).to.equal( + 'NEXT_PUBLIC_CONTENTSTACK_API_KEY=mock-api-key,NEXT_PUBLIC_CONTENTSTACK_DELIVERY_TOKEN=mock-delivery-token,NEXT_PUBLIC_CONTENTSTACK_PREVIEW_TOKEN=mock_preview_token,NEXT_PUBLIC_CONTENTSTACK_ENVIRONMENT=development,NEXT_PUBLIC_CONTENTSTACK_REGION=aws-na,NEXT_PUBLIC_CONTENTSTACK_PREVIEW=true,NEXT_PUBLIC_CONTENTSTACK_CONTENT_DELIVERY = cdn.contentstack.com,NEXT_PUBLIC_CONTENTSTACK_CONTENT_APPLICATION = app.contentstack.com,NEXT_PUBLIC_CONTENTSTACK_PREVIEW_HOST = rest-preview.contentstack.com,NEXT_PUBLIC_CONTENTSTACK_IMAGE_HOSTNAME=images.contentstack.com', ); }); it('Create env file for a stack with live preview disabled', async () => { const environments = { items: [{ name: 'production' }, { name: 'development' }] }; - const token = 'mock-delivery-token'; - const api_key = 'mock-api-key'; - const appConfig = { - appConfigKey: 'reactjs', - }; - const livePreviewEnabled = false; + const appConfig = { appConfigKey: 'kickstart-next' }; const clonedDirectory = await getDirectory(); - const region = { - name: 'AWS-NA', - cda: 'https://cdn.contentstack.com', - cma: 'https://api.contentstack.com', - uiHost: 'https://app.contentstack.com', - }; - const managementAPIClient = { - stack: () => { - return { - environment: () => { - return { - query: () => { - return { - find: () => Promise.resolve(environments), - }; - }, - }; - }, - managementToken: () => ({ - create: () => Promise.reject(new Error('Management token is not available in your plan.')), - }), - deliveryToken: () => { - return { - create: () => Promise.resolve({ token, preview_token: 'mock_preview_token' }), - }; - }, - }; - }, - }; + const managementAPIClient = createManagementAPIClient(environments, 'mock-delivery-token'); - try { - await setupEnvironments(managementAPIClient, api_key, appConfig, clonedDirectory, region, livePreviewEnabled); - } catch (error) { - expect(error.message).to.equal('Management token is not available in your plan.'); - return; - } + await setupEnvironments( + managementAPIClient, + 'mock-api-key', + appConfig, + clonedDirectory, + region, + false, + ); const files = await getDirFiles(clonedDirectory); - expect(files).to.have.length(2); - let devEnvFile = await getFileContent(path.join(clonedDirectory, '.env.development.local')); - devEnvFile = devEnvFile.replace(/\n/g, ','); - expect(devEnvFile).equal( - 'REACT_APP_CONTENTSTACK_API_KEY=mock-api-key,REACT_APP_CONTENTSTACK_DELIVERY_TOKEN=mock-delivery-token,,REACT_APP_CONTENTSTACK_ENVIRONMENT=development,,SKIP_PREFLIGHT_CHECK=true,REACT_APP_CONTENTSTACK_LIVE_PREVIEW=false', - ); - let prodEnvFile = await getFileContent(path.join(clonedDirectory, '.env.production.local')); - prodEnvFile = prodEnvFile.replace(/\n/g, ','); - expect(prodEnvFile).equal( - 'REACT_APP_CONTENTSTACK_API_KEY=mock-api-key,REACT_APP_CONTENTSTACK_DELIVERY_TOKEN=mock-delivery-token,,REACT_APP_CONTENTSTACK_ENVIRONMENT=production,,SKIP_PREFLIGHT_CHECK=true,REACT_APP_CONTENTSTACK_LIVE_PREVIEW=false', + expect(files).to.have.length(1); + const envFile = normalizeEnvContent(await getFileContent(path.join(clonedDirectory, '.env'))); + expect(envFile).to.equal( + 'NEXT_PUBLIC_CONTENTSTACK_API_KEY=mock-api-key,NEXT_PUBLIC_CONTENTSTACK_DELIVERY_TOKEN=mock-delivery-token,NEXT_PUBLIC_CONTENTSTACK_PREVIEW_TOKEN=mock_preview_token,NEXT_PUBLIC_CONTENTSTACK_ENVIRONMENT=development,NEXT_PUBLIC_CONTENTSTACK_REGION=aws-na,NEXT_PUBLIC_CONTENTSTACK_PREVIEW=false,NEXT_PUBLIC_CONTENTSTACK_CONTENT_DELIVERY = cdn.contentstack.com,NEXT_PUBLIC_CONTENTSTACK_CONTENT_APPLICATION = app.contentstack.com,NEXT_PUBLIC_CONTENTSTACK_PREVIEW_HOST = rest-preview.contentstack.com,NEXT_PUBLIC_CONTENTSTACK_IMAGE_HOSTNAME=images.contentstack.com', ); }); it('Create env with invalid environments, should throw an error', async () => { const environments = {}; - const token = 'mock-delivery-token'; - const api_key = 'mock-api-key'; - const appConfig = { - appConfigKey: 'reactjs', - }; + const appConfig = { appConfigKey: 'kickstart-next' }; const clonedDirectory = await getDirectory(); - const region = { - name: 'AWS-NA', - cda: 'https://app.contentstack.com', - cma: 'https://api.contentstack.com', - }; - const managementAPIClient = { - stack: () => ({ - environment: () => { - return { - query: () => { - return { - find: () => Promise.resolve(environments), - }; - }, - }; - }, - deliveryToken: () => { - return { - create: () => Promise.resolve({ token }), - }; - }, - }), - }; + const managementAPIClient = createManagementAPIClient(environments, 'mock-delivery-token'); try { - await setupEnvironments(managementAPIClient, api_key, appConfig, clonedDirectory, region); + await setupEnvironments(managementAPIClient, 'mock-api-key', appConfig, clonedDirectory, region); } catch (error) { expect(error).to.be.instanceOf(Error); } }); it('Create env with invalid app config, should throw an error', async () => { - const environments = {}; - const token = 'mock-delivery-token'; - const api_key = 'mock-api-key'; - const appConfig = { - appConfigKey: 'sdsds', - }; + const environments = { items: [{ name: 'production' }] }; + const appConfig = { appConfigKey: 'invalid-app' }; const clonedDirectory = await getDirectory(); - const region = { - name: 'AWS-NA', - cda: 'https://app.contentstack.com', - cma: 'https://app.contentstack.com', - }; - const managementAPIClient = { - stack: () => ({ - environment: () => ({ - query: () => ({ - find: () => Promise.resolve(environments), - }), - }), - managementToken: () => ({ - create: () => Promise.reject(new Error('Management token is not available in your plan.')), - }), - deliveryToken: () => ({ - create: () => Promise.resolve({ token }), - }), - }), - }; + const managementAPIClient = createManagementAPIClient(environments, 'mock-delivery-token'); - try { - await setupEnvironments(managementAPIClient, api_key, appConfig, clonedDirectory, region); - } catch (error) { - expect(error).to.be.instanceOf(Error); - } + await setupEnvironments(managementAPIClient, 'mock-api-key', appConfig, clonedDirectory, region, false); + + const files = await getDirFiles(clonedDirectory); + expect(files).to.have.length(0); }); it('Create env with one invalid environment, should not create env file for invalid one', async () => { - // Valid 'production' environment and one invalid environment const environments = { items: [{ name: 'production' }, { name: null }] }; - const token = 'mock-delivery-token'; - const api_key = 'mock-api-key'; - const appConfig = { - appConfigKey: 'reactjs', - }; + const appConfig = { appConfigKey: 'kickstart-next' }; const clonedDirectory = await getDirectory(); - const region = { - name: 'AWS-NA', - cda: 'https://app.contentstack.com', - cma: 'https://app.contentstack.com', - }; + const managementAPIClient = createManagementAPIClient(environments, 'mock-delivery-token'); - const managementAPIClient = { - stack: () => ({ - environment: () => ({ - query: () => ({ - find: () => Promise.resolve(environments), - }), - }), - managementToken: () => ({ - create: () => Promise.reject(new Error('Management token is not available in your plan.')), - }), - deliveryToken: () => ({ - create: () => Promise.resolve({ token }), - }), - }), - }; - try { - await setupEnvironments(managementAPIClient, api_key, appConfig, clonedDirectory, region, false); - const files = await getDirFiles(clonedDirectory); - expect(files).to.have.length(1); - } catch (error) { - expect(error).to.be.instanceOf(Error); - } + await setupEnvironments(managementAPIClient, 'mock-api-key', appConfig, clonedDirectory, region, false); + + const files = await getDirFiles(clonedDirectory); + expect(files).to.have.length(1); + const envFile = normalizeEnvContent(await getFileContent(path.join(clonedDirectory, '.env'))); + expect(envFile).to.include('NEXT_PUBLIC_CONTENTSTACK_ENVIRONMENT=production'); }); }); }); diff --git a/packages/contentstack-branches/package.json b/packages/contentstack-branches/package.json index 4da413230..8ba194ad8 100644 --- a/packages/contentstack-branches/package.json +++ b/packages/contentstack-branches/package.json @@ -1,13 +1,13 @@ { "name": "@contentstack/cli-cm-branches", "description": "Contentstack CLI plugin to do branches operations", - "version": "2.0.0-beta.7", + "version": "2.0.0-beta.6", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~2.0.0-beta.7", + "@contentstack/cli-command": "~2.0.0-beta.6", "@oclif/core": "^4.3.0", - "@contentstack/cli-utilities": "~2.0.0-beta.8", + "@contentstack/cli-utilities": "~2.0.0-beta.7", "chalk": "^5.6.2", "just-diff": "^6.0.2", "lodash": "^4.18.1" diff --git a/packages/contentstack-clone/package.json b/packages/contentstack-clone/package.json index d57d5a993..761c39489 100644 --- a/packages/contentstack-clone/package.json +++ b/packages/contentstack-clone/package.json @@ -8,8 +8,8 @@ "@colors/colors": "^1.6.0", "@contentstack/cli-cm-export": "~2.0.0-beta.17", "@contentstack/cli-cm-import": "~2.0.0-beta.17", - "@contentstack/cli-command": "~2.0.0-beta.7", - "@contentstack/cli-utilities": "~2.0.0-beta.8", + "@contentstack/cli-command": "~2.0.0-beta.6", + "@contentstack/cli-utilities": "~2.0.0-beta.7", "@oclif/core": "^4.3.0", "chalk": "^5.6.2", "inquirer": "12.11.1", diff --git a/packages/contentstack-export-to-csv/package.json b/packages/contentstack-export-to-csv/package.json index a7bf6d363..ffdae47cf 100644 --- a/packages/contentstack-export-to-csv/package.json +++ b/packages/contentstack-export-to-csv/package.json @@ -1,12 +1,12 @@ { "name": "@contentstack/cli-cm-export-to-csv", "description": "Export entries, taxonomies, terms, or organization users to CSV", - "version": "2.0.0-beta.7", + "version": "2.0.0-beta.6", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~2.0.0-beta.7", - "@contentstack/cli-utilities": "~2.0.0-beta.8", + "@contentstack/cli-command": "~2.0.0-beta.6", + "@contentstack/cli-utilities": "~2.0.0-beta.7", "@oclif/core": "^4.8.0", "fast-csv": "^4.3.6" }, diff --git a/packages/contentstack-export/package.json b/packages/contentstack-export/package.json index 115d6af99..9a8c867dc 100644 --- a/packages/contentstack-export/package.json +++ b/packages/contentstack-export/package.json @@ -5,9 +5,9 @@ "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~2.0.0-beta.7", - "@contentstack/cli-utilities": "~2.0.0-beta.8", - "@contentstack/cli-variants": "~2.0.0-beta.13", + "@contentstack/cli-command": "~2.0.0-beta.6", + "@contentstack/cli-utilities": "~2.0.0-beta.7", + "@contentstack/cli-variants": "~2.0.0-beta.12", "@contentstack/cli-asset-management": "~1.0.0-beta.1", "@oclif/core": "^4.8.0", "async": "^3.2.6", @@ -22,8 +22,8 @@ "winston": "^3.19.0" }, "devDependencies": { - "@contentstack/cli-auth": "~2.0.0-beta.12", - "@contentstack/cli-config": "~2.0.0-beta.9", + "@contentstack/cli-auth": "~2.0.0-beta.9", + "@contentstack/cli-config": "~2.0.0-beta.5", "@contentstack/cli-dev-dependencies": "~2.0.0-beta.0", "@oclif/plugin-help": "^6.2.28", "@oclif/test": "^4.1.18", diff --git a/packages/contentstack-import-setup/package.json b/packages/contentstack-import-setup/package.json index d724fd285..e2e2579ad 100644 --- a/packages/contentstack-import-setup/package.json +++ b/packages/contentstack-import-setup/package.json @@ -1,12 +1,12 @@ { "name": "@contentstack/cli-cm-import-setup", "description": "Contentstack CLI plugin to setup the mappers and configurations for the import command", - "version": "2.0.0-beta.11", + "version": "2.0.0-beta.10", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~2.0.0-beta.7", - "@contentstack/cli-utilities": "~2.0.0-beta.8", + "@contentstack/cli-command": "~2.0.0-beta.6", + "@contentstack/cli-utilities": "~2.0.0-beta.7", "@oclif/core": "^4.3.0", "big-json": "^3.2.0", "chalk": "^5.6.2", diff --git a/packages/contentstack-import/package.json b/packages/contentstack-import/package.json index 710453108..0c6fbddc9 100644 --- a/packages/contentstack-import/package.json +++ b/packages/contentstack-import/package.json @@ -5,10 +5,10 @@ "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-audit": "~2.0.0-beta.12", - "@contentstack/cli-command": "~2.0.0-beta.7", - "@contentstack/cli-utilities": "~2.0.0-beta.8", - "@contentstack/cli-variants": "~2.0.0-beta.13", + "@contentstack/cli-audit": "~2.0.0-beta.11", + "@contentstack/cli-command": "~2.0.0-beta.6", + "@contentstack/cli-utilities": "~2.0.0-beta.7", + "@contentstack/cli-variants": "~2.0.0-beta.12", "@contentstack/cli-asset-management": "~1.0.0-beta.1", "@oclif/core": "^4.3.0", "big-json": "^3.2.0", diff --git a/packages/contentstack-migration/package.json b/packages/contentstack-migration/package.json index 26c7893ae..172f799ea 100644 --- a/packages/contentstack-migration/package.json +++ b/packages/contentstack-migration/package.json @@ -1,11 +1,11 @@ { "name": "@contentstack/cli-migration", - "version": "2.0.0-beta.12", + "version": "2.0.0-beta.11", "author": "@contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~2.0.0-beta.7", - "@contentstack/cli-utilities": "~2.0.0-beta.8", + "@contentstack/cli-command": "~2.0.0-beta.6", + "@contentstack/cli-utilities": "~2.0.0-beta.7", "@oclif/core": "^4.3.0", "async": "^3.2.6", "callsites": "^3.1.0", diff --git a/packages/contentstack-query-export/package.json b/packages/contentstack-query-export/package.json index 1bb79f2a1..ba3f4fa60 100644 --- a/packages/contentstack-query-export/package.json +++ b/packages/contentstack-query-export/package.json @@ -6,8 +6,8 @@ "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { "@contentstack/cli-cm-export": "~2.0.0-beta.17", - "@contentstack/cli-command": "~2.0.0-beta.7", - "@contentstack/cli-utilities": "~2.0.0-beta.8", + "@contentstack/cli-command": "~2.0.0-beta.6", + "@contentstack/cli-utilities": "~2.0.0-beta.7", "@oclif/core": "^4.10.5", "async": "^3.2.6", "big-json": "^3.2.0", diff --git a/packages/contentstack-seed/package.json b/packages/contentstack-seed/package.json index 1bbb8536a..9fd533935 100644 --- a/packages/contentstack-seed/package.json +++ b/packages/contentstack-seed/package.json @@ -6,8 +6,8 @@ "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { "@contentstack/cli-cm-import": "~2.0.0-beta.17", - "@contentstack/cli-command": "~2.0.0-beta.7", - "@contentstack/cli-utilities": "~2.0.0-beta.8", + "@contentstack/cli-command": "~2.0.0-beta.6", + "@contentstack/cli-utilities": "~2.0.0-beta.7", "inquirer": "12.11.1", "mkdirp": "^1.0.4", "tar": "^7.5.11", diff --git a/packages/contentstack-variants/package.json b/packages/contentstack-variants/package.json index 8a6b960d8..f161a6e98 100644 --- a/packages/contentstack-variants/package.json +++ b/packages/contentstack-variants/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/cli-variants", - "version": "2.0.0-beta.13", + "version": "2.0.0-beta.12", "description": "Variants plugin", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -27,7 +27,7 @@ "typescript": "^5.8.3" }, "dependencies": { - "@contentstack/cli-utilities": "~2.0.0-beta.8", + "@contentstack/cli-utilities": "~2.0.0-beta.7", "@oclif/core": "^4.3.0", "lodash": "^4.18.1", "mkdirp": "^1.0.4",