From 8f0538eab1ffcf474283e5ca5bc8c218aa8afa48 Mon Sep 17 00:00:00 2001 From: Prashant Pandey Date: Tue, 14 May 2024 17:30:38 +0530 Subject: [PATCH 01/14] mearge fix one --- src/helper/build.ts | 64 +++++++++++++++++++++++++++++++- src/helper/theme.react.config.ts | 11 +++++- src/lib/Theme.ts | 4 +- 3 files changed, 73 insertions(+), 6 deletions(-) diff --git a/src/helper/build.ts b/src/helper/build.ts index b2cc69dc..8ae5beac 100755 --- a/src/helper/build.ts +++ b/src/helper/build.ts @@ -6,9 +6,32 @@ import webpack, { MultiStats } from 'webpack'; import createBaseWebpackConfig from '../helper/theme.react.config'; import fs from 'fs'; import rimraf from 'rimraf'; +import Logger from '../lib/Logger'; export const THEME_ENTRY_FILE = path.join('theme', 'index.js'); +export const VUE_THEME_ENTRY_FILE = path.join("..",'theme', 'index.js'); +export const DEV_VUE_THEME_ENTRY_FILE = path.join('theme', 'index.js'); +export const CDN_ENTRY_FILE = path.join('.fdk', 'cdn_index.js'); + +export const dynamicCDNScript = ({assetNormalizedBasePath,vueJs }) => { + return `function getCDNurl() { + \n let cdnUrl; + \n try{ + \n if(fynd_platform_cdn) { + \n cdnUrl = fynd_platform_cdn + \n } else { + \n throw new Error("undefiend variable")} + \n } catch(error){ + \n cdnUrl = '${assetNormalizedBasePath}'} + \n return cdnUrl; + \n } + \n __webpack_public_path__ = getCDNurl() ${vueJs ? `\n + import bundle from '${VUE_THEME_ENTRY_FILE}' + \n export default bundle; + ` + : ''}` +} export function build({ buildFolder, imageCdnUrl, @@ -23,13 +46,23 @@ export function build({ 'bin', 'vue-cli-service.js', ); + fs.stat(CDN_ENTRY_FILE, function (err, stat) { + if (err == null) { + //deleting file if exist + fs.unlink(CDN_ENTRY_FILE, function (err) { + if (err) return console.log(err); + Logger.debug(' \n Existing file deleted successfully'); + }); + } + fs.appendFileSync(CDN_ENTRY_FILE, dynamicCDNScript({ assetNormalizedBasePath:(imageCdnUrl|| assetCdnUrl),vueJs: true })); + }); const spinner = new Spinner('Building assets using vue-cli-service'); return new Promise((resolve, reject) => { spinner.start(); const isNodeVersionIsGreaterThan18 = +process.version.split('.')[0].slice(1) >= 18; let b = exec( - `node ${VUE_CLI_PATH} build --target lib --dest ${buildFolder} --name themeBundle --filename ${assetHash}_themeBundle ${THEME_ENTRY_FILE}`, + `node ${VUE_CLI_PATH} build --target lib --dest ${buildFolder} --name themeBundle --filename ${assetHash}_themeBundle ${CDN_ENTRY_FILE}`, { cwd: process.cwd(), env: { @@ -53,6 +86,10 @@ export function build({ b.stdout.pipe(process.stdout); b.stderr.pipe(process.stderr); b.on('exit', function (code) { + fs.unlink(CDN_ENTRY_FILE, function (err) { + if (err) return console.log(err); + Logger.debug(' \n Existing file deleted successfully'); + }); if (!code) { spinner.succeed(); return resolve(true); @@ -91,7 +128,7 @@ export function devBuild({ buildFolder, imageCdnUrl, isProd }: DevBuild) { return new Promise((resolve, reject) => { let b = exec( - `node ${VUE_CLI_PATH} build --target lib --dest ${buildFolder} --name themeBundle ${THEME_ENTRY_FILE}`, + `node ${VUE_CLI_PATH} build --target lib --dest ${buildFolder} --name themeBundle ${DEV_VUE_THEME_ENTRY_FILE}`, { cwd: process.cwd(), env: { @@ -159,10 +196,33 @@ export async function devReactBuild({ ctx, webpackConfigFromTheme, ); + const assetNormalizedBasePath = + assetBasePath[assetBasePath.length - 1] === '/' + ? assetBasePath + : assetBasePath + '/'; return new Promise((resolve, reject) => { + if(!runOnLocal) { + fs.stat(CDN_ENTRY_FILE, function (err, stat) { + if (err == null) { + //deleting file if exist + fs.unlink(CDN_ENTRY_FILE, function (err) { + if (err) return console.log(err); + Logger.debug(' \n Existing file deleted successfully'); + }); + } + fs.appendFileSync(CDN_ENTRY_FILE, dynamicCDNScript({assetNormalizedBasePath, vueJs: false })); + + }); + } webpack(baseWebpackConfig, (err, stats) => { console.log(err); console.log(stats.toString()); + if(!runOnLocal) { + fs.unlink(CDN_ENTRY_FILE, function (err) { + if (err) return console.log(err); + Logger.debug(' \n file deleted successfully'); + }); + } if (err || stats.hasErrors()) { reject(); } diff --git a/src/helper/theme.react.config.ts b/src/helper/theme.react.config.ts index 182d0deb..567542f6 100644 --- a/src/helper/theme.react.config.ts +++ b/src/helper/theme.react.config.ts @@ -1,8 +1,11 @@ +import path from "path" import TerserPlugin from 'terser-webpack-plugin'; import webpack, { Configuration } from 'webpack'; import { mergeWithRules, merge } from 'webpack-merge'; import { getLocalBaseUrl } from './serve.utils'; const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin'); +import { CDN_ENTRY_FILE } from './build'; +const context = process.cwd(); const baseConfig = (configOptions) => { const { @@ -15,7 +18,11 @@ const baseConfig = (configOptions) => { return { mode: isLocal ? 'development' : 'production', - + entry: { + themeBundle:[ + path.resolve(context, CDN_ENTRY_FILE), + path.resolve(context, 'theme/index.jsx')], + }, devtool: isLocal ? 'source-map' : false, optimization: { minimizer: [ @@ -126,6 +133,6 @@ export default (ctx, extendedWebpackConfig): Configuration[] => { ...mergedBaseConfig.entry['themeBundle'], ] : mergedBaseConfig.entry['themeBundle'] } - + console.log("======================= mergedBaseConfig =========================", JSON.stringify(mergedBaseConfig)) return [mergedBaseConfig]; }; diff --git a/src/lib/Theme.ts b/src/lib/Theme.ts index 703353eb..ae131cc0 100644 --- a/src/lib/Theme.ts +++ b/src/lib/Theme.ts @@ -35,7 +35,7 @@ import ThemeService from './api/services/theme.service'; import UploadService from './api/services/upload.service'; import ExtensionService from './api/services/extension.service'; import { - THEME_ENTRY_FILE, + DEV_VUE_THEME_ENTRY_FILE, build, devBuild, devReactBuild, @@ -783,7 +783,7 @@ export default class Theme { spaces: 2, }, ); - if (!fs.existsSync(path.join(process.cwd(), THEME_ENTRY_FILE)) && (themeData.theme_type === THEME_TYPE.vue2)) { + if (!fs.existsSync(path.join(process.cwd(), DEV_VUE_THEME_ENTRY_FILE)) && (themeData.theme_type === THEME_TYPE.vue2)) { Logger.info('Restructuring folder structure'); let restructureSpinner = new Spinner( 'Restructuring folder structure', From ac4e722d1449d2562be24a3a03a07dc495ca7ac8 Mon Sep 17 00:00:00 2001 From: Prashant Pandey Date: Thu, 16 May 2024 12:20:21 +0530 Subject: [PATCH 02/14] ID:FPCO-30358;DONE:100;HOURS:38;fix with new react webpack config --- src/helper/build.ts | 16 +++++++++------- src/helper/theme.react.config.ts | 22 ++++++++++------------ src/lib/Theme.ts | 7 ++++--- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/helper/build.ts b/src/helper/build.ts index 8ae5beac..55b479ec 100755 --- a/src/helper/build.ts +++ b/src/helper/build.ts @@ -12,7 +12,7 @@ export const THEME_ENTRY_FILE = path.join('theme', 'index.js'); export const VUE_THEME_ENTRY_FILE = path.join("..",'theme', 'index.js'); export const DEV_VUE_THEME_ENTRY_FILE = path.join('theme', 'index.js'); -export const CDN_ENTRY_FILE = path.join('.fdk', 'cdn_index.js'); +export const CDN_ENTRY_FILE = path.join('.fdk', 'cdn_index.js'); export const dynamicCDNScript = ({assetNormalizedBasePath,vueJs }) => { return `function getCDNurl() { @@ -112,6 +112,7 @@ interface DevReactBuild { imageCdnUrl?: string; localThemePort?: string; isHMREnabled: boolean; + targetDirectory?:string } export function devBuild({ buildFolder, imageCdnUrl, isProd }: DevBuild) { @@ -162,10 +163,11 @@ export function devBuild({ buildFolder, imageCdnUrl, isProd }: DevBuild) { export async function devReactBuild({ buildFolder, runOnLocal, - assetBasePath, + assetBasePath = '', localThemePort, imageCdnUrl, isHMREnabled, + targetDirectory }: DevReactBuild): Promise { const buildPath = path.join(process.cwd(), buildFolder); try { @@ -182,7 +184,6 @@ export async function devReactBuild({ themeWebpackConfigPath )); } - const ctx = { buildPath: buildPath, NODE_ENV: (!runOnLocal && 'production') || 'development', @@ -191,6 +192,7 @@ export async function devReactBuild({ localThemePort: localThemePort, context: process.cwd(), isHMREnabled, + targetDirectory }; const baseWebpackConfig = createBaseWebpackConfig( ctx, @@ -202,15 +204,15 @@ export async function devReactBuild({ : assetBasePath + '/'; return new Promise((resolve, reject) => { if(!runOnLocal) { - fs.stat(CDN_ENTRY_FILE, function (err, stat) { + fs.stat(path.resolve((targetDirectory || process.cwd()), CDN_ENTRY_FILE), function (err, stat) { if (err == null) { //deleting file if exist - fs.unlink(CDN_ENTRY_FILE, function (err) { + fs.unlink(path.resolve((targetDirectory || process.cwd()), CDN_ENTRY_FILE), function (err) { if (err) return console.log(err); Logger.debug(' \n Existing file deleted successfully'); }); } - fs.appendFileSync(CDN_ENTRY_FILE, dynamicCDNScript({assetNormalizedBasePath, vueJs: false })); + fs.appendFileSync(path.resolve((targetDirectory || process.cwd()), CDN_ENTRY_FILE), dynamicCDNScript({assetNormalizedBasePath, vueJs: false })); }); } @@ -218,7 +220,7 @@ export async function devReactBuild({ console.log(err); console.log(stats.toString()); if(!runOnLocal) { - fs.unlink(CDN_ENTRY_FILE, function (err) { + fs.unlink(path.resolve((targetDirectory || process.cwd()), CDN_ENTRY_FILE), function (err) { if (err) return console.log(err); Logger.debug(' \n file deleted successfully'); }); diff --git a/src/helper/theme.react.config.ts b/src/helper/theme.react.config.ts index 567542f6..e2f1c265 100644 --- a/src/helper/theme.react.config.ts +++ b/src/helper/theme.react.config.ts @@ -13,16 +13,11 @@ const baseConfig = (configOptions) => { isHMREnabled, assetNormalizedBasePath, localBasePath, - buildPath + buildPath, } = configOptions; return { mode: isLocal ? 'development' : 'production', - entry: { - themeBundle:[ - path.resolve(context, CDN_ENTRY_FILE), - path.resolve(context, 'theme/index.jsx')], - }, devtool: isLocal ? 'source-map' : false, optimization: { minimizer: [ @@ -91,6 +86,7 @@ export default (ctx, extendedWebpackConfig): Configuration[] => { imageCdnUrl = '', localThemePort = 5500, isHMREnabled = true, + targetDirectory } = ctx; const assetNormalizedBasePath = @@ -117,7 +113,6 @@ export default (ctx, extendedWebpackConfig): Configuration[] => { } const baseWebpackConfig = baseConfig(configOptions); const extendedWebpackResolved = extendedWebpackConfig(configOptions); - const mergedBaseConfig: Configuration = mergeWithRules({ module: { rules: { @@ -128,11 +123,14 @@ export default (ctx, extendedWebpackConfig): Configuration[] => { })(extendedWebpackResolved,baseWebpackConfig); if (mergedBaseConfig.entry.hasOwnProperty('themeBundle')) { - mergedBaseConfig.entry['themeBundle'] = isLocal && isHMREnabled ? [ - require.resolve('webpack-hot-middleware/client'), - ...mergedBaseConfig.entry['themeBundle'], - ] : mergedBaseConfig.entry['themeBundle'] + let entryPoints = [...mergedBaseConfig.entry['themeBundle']]; + if (isLocal && isHMREnabled) { + entryPoints.unshift(require.resolve('webpack-hot-middleware/client')); + } else if (!isLocal) { + entryPoints.unshift(path.resolve(targetDirectory || context, CDN_ENTRY_FILE)); + } + mergedBaseConfig.entry['themeBundle'] = entryPoints; } - console.log("======================= mergedBaseConfig =========================", JSON.stringify(mergedBaseConfig)) + return [mergedBaseConfig]; }; diff --git a/src/lib/Theme.ts b/src/lib/Theme.ts index ae131cc0..884d13fd 100644 --- a/src/lib/Theme.ts +++ b/src/lib/Theme.ts @@ -115,7 +115,6 @@ export default class Theme { const outputFileName = stats.stats[0].toJson().assets[0].name; const buildPath = path.join(process.cwd(), Theme.BUILD_FOLDER); const outputFilePath = path.resolve(buildPath, outputFileName); - const bundle = Theme.evaluateBundle(outputFilePath); @@ -602,7 +601,7 @@ export default class Theme { spaces: 2, }); const currentContext = getActiveContext(); - await Theme.syncReactTheme(currentContext); + await Theme.syncReactTheme(currentContext, targetDirectory); var b5 = Box( chalk.green.bold('DONE ') + chalk.green.bold('Project ready\n') + @@ -811,7 +810,7 @@ export default class Theme { const currentContext = getActiveContext(); switch (currentContext.theme_type) { case THEME_TYPE.react: - await Theme.syncReactTheme(currentContext); + await Theme.syncReactTheme(currentContext, undefined); break; case THEME_TYPE.vue2: await Theme.syncVueTheme(currentContext); @@ -823,6 +822,7 @@ export default class Theme { }; private static syncReactTheme = async ( currentContext: ThemeContextInterface, + targetDirectory ) => { try { await Theme.ensureThemeTypeInPackageJson(); @@ -866,6 +866,7 @@ export default class Theme { assetBasePath, imageCdnUrl, isHMREnabled: false, + targetDirectory }); const parsed = await Theme.getThemeBundle(stats) From beb300b7bf4ba46da822697efdf0a8c7e7ba34ee Mon Sep 17 00:00:00 2001 From: Prashant Pandey Date: Thu, 16 May 2024 12:33:07 +0530 Subject: [PATCH 03/14] ID:FPCO-30358;DONE:100;HOURS:38;fix vue init error --- package-lock.json | 4 ++-- package.json | 2 +- rolex | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) create mode 160000 rolex diff --git a/package-lock.json b/package-lock.json index ff068e50..b21e7db0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@gofynd/fdk-cli", - "version": "5.1.0", + "version": "5.1.0-beta.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@gofynd/fdk-cli", - "version": "5.1.0", + "version": "5.1.0-beta.2", "license": "MIT", "dependencies": { "@babel/core": "7.14.3", diff --git a/package.json b/package.json index df6fd9e1..0d1c940c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@gofynd/fdk-cli", - "version": "5.1.0", + "version": "5.1.0-beta.2", "main": "index.js", "license": "MIT", "bin": { diff --git a/rolex b/rolex new file mode 160000 index 00000000..1393860b --- /dev/null +++ b/rolex @@ -0,0 +1 @@ +Subproject commit 1393860bfad73800f28fd20d19a2a630af682684 From 7287ce0bf9393c7b44803eaa468f0512b8f8c668 Mon Sep 17 00:00:00 2001 From: Prashant Pandey Date: Thu, 16 May 2024 12:37:20 +0530 Subject: [PATCH 04/14] ID:FPCO-30358;DONE:100;HOURS:38;rolex removal --- rolex | 1 - 1 file changed, 1 deletion(-) delete mode 160000 rolex diff --git a/rolex b/rolex deleted file mode 160000 index 1393860b..00000000 --- a/rolex +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1393860bfad73800f28fd20d19a2a630af682684 From 72c25bac844a1eb299a7212f4f0edd625f139cda Mon Sep 17 00:00:00 2001 From: Prashant Pandey Date: Thu, 16 May 2024 17:41:37 +0530 Subject: [PATCH 05/14] ID:FPCO-30358;DONE:100;HOURS:38;import file upload --- src/helper/build.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helper/build.ts b/src/helper/build.ts index 55b479ec..1e4f446f 100755 --- a/src/helper/build.ts +++ b/src/helper/build.ts @@ -27,7 +27,7 @@ export const dynamicCDNScript = ({assetNormalizedBasePath,vueJs }) => { \n return cdnUrl; \n } \n __webpack_public_path__ = getCDNurl() ${vueJs ? `\n - import bundle from '${VUE_THEME_ENTRY_FILE}' + import bundle from "../.fdk/cdn_index.js"; \n export default bundle; ` : ''}` From 1cd18a72c53d9876afe3d14d7a197ec28964c15d Mon Sep 17 00:00:00 2001 From: Prashant Pandey Date: Thu, 16 May 2024 17:53:09 +0530 Subject: [PATCH 06/14] ID:FPCO-30358;DONE:100;HOURS:38;vue import file path change --- src/helper/build.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helper/build.ts b/src/helper/build.ts index 1e4f446f..ebba2f09 100755 --- a/src/helper/build.ts +++ b/src/helper/build.ts @@ -27,7 +27,7 @@ export const dynamicCDNScript = ({assetNormalizedBasePath,vueJs }) => { \n return cdnUrl; \n } \n __webpack_public_path__ = getCDNurl() ${vueJs ? `\n - import bundle from "../.fdk/cdn_index.js"; + import bundle from "../theme/index.js"; \n export default bundle; ` : ''}` From 8080c235072a68a085ff8c11226ef504fe4f0c9f Mon Sep 17 00:00:00 2001 From: meetdhanani Date: Thu, 20 Jun 2024 14:35:22 +0530 Subject: [PATCH 07/14] ID:FPCO-34269;DONE:100;HOURS:10;dev-prod saparate build --- src/lib/Theme.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib/Theme.ts b/src/lib/Theme.ts index 9434f171..a9b26c05 100644 --- a/src/lib/Theme.ts +++ b/src/lib/Theme.ts @@ -350,6 +350,10 @@ export default class Theme { }); config['application_id'] = selectedApplication; config['company_id'] = selectedCompany; + // config['application_id'] = "6672cdcc9399006687477a5c"; + // config['company_id'] = 63; + console.log({config}); + return config; } From 7de26857ce86c5c36d406286e624646a54998af3 Mon Sep 17 00:00:00 2001 From: Ashok Redkar Date: Fri, 5 Jul 2024 15:24:48 +0530 Subject: [PATCH 08/14] use CDN key from grindor completed API --- src/helper/serve.utils.ts | 2 +- src/lib/Theme.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/helper/serve.utils.ts b/src/helper/serve.utils.ts index 94c80541..728e79c0 100644 --- a/src/helper/serve.utils.ts +++ b/src/helper/serve.utils.ts @@ -218,7 +218,7 @@ export async function startServer({ domain, host, isSSR, port }) { 'fdk-cli-dev-files', User.current_user._id, ) - ).start.cdn.url; + ).complete.cdn.url; } else { jetfireUrl.searchParams.set('__csr', 'true'); } diff --git a/src/lib/Theme.ts b/src/lib/Theme.ts index 9434f171..37d69042 100644 --- a/src/lib/Theme.ts +++ b/src/lib/Theme.ts @@ -1884,7 +1884,7 @@ export default class Theme { path.join(process.cwd(), Theme.BUILD_FOLDER, commonJS), 'application-theme-assets', ); - const commonJsUrl = commonJsUrlRes.start.cdn.url; + const commonJsUrl = commonJsUrlRes.complete.cdn.url; Logger.info('Uploading umdJS'); const umdMinAssets = glob.sync( @@ -1921,9 +1921,9 @@ export default class Theme { }); const cssUrls = await Promise.all(cssPromisesArr); return [ - cssUrls.map((res) => res.start.cdn.url), + cssUrls.map((res) => res.complete.cdn.url), commonJsUrl, - umdJsUrls.map((res) => res.start.cdn.url), + umdJsUrls.map((res) => res.complete.cdn.url), ]; } catch (err) { throw new CommandError( @@ -2528,7 +2528,7 @@ export default class Theme { zipFilePath, 'application-theme-src', ); - return res.start.cdn.url; + return res.complete.cdn.url; } catch (err) { throw new CommandError( err.message || `Failed to upload src folder`, From 45f08dc17d54990b8efab6f35481d87fe3fdfc89 Mon Sep 17 00:00:00 2001 From: Ashok Redkar Date: Fri, 5 Jul 2024 17:51:04 +0530 Subject: [PATCH 09/14] remove version compatibility api usage --- src/__tests__/auth.spec.ts | 1 - src/__tests__/theme.spec.ts | 1 - src/__tests__/themeContext.spec.ts | 1 - src/lib/Auth.ts | 5 ----- src/lib/api/services/theme.service.ts | 12 ------------ src/lib/api/services/url.ts | 4 ---- 6 files changed, 24 deletions(-) diff --git a/src/__tests__/auth.spec.ts b/src/__tests__/auth.spec.ts index 735113b2..91a8b664 100644 --- a/src/__tests__/auth.spec.ts +++ b/src/__tests__/auth.spec.ts @@ -52,7 +52,6 @@ describe('Auth Commands', () => { setEnv(); program = await init('fdk'); const mock = new MockAdapter(axios); - mock.onGet(`${URLS.IS_VERSION_COMPATIBLE()}`).reply(200); await login(); }); diff --git a/src/__tests__/theme.spec.ts b/src/__tests__/theme.spec.ts index ecc0483a..c09c0732 100644 --- a/src/__tests__/theme.spec.ts +++ b/src/__tests__/theme.spec.ts @@ -137,7 +137,6 @@ describe('Theme Commands', () => { const mockInstance = new MockAdapter( uninterceptedApiClient.axiosInstance, ); - mock.onGet(`${URLS.IS_VERSION_COMPATIBLE()}`).reply(200); mock.onGet( `${URLS.GET_APPLICATION_DETAILS( appConfig.company_id, diff --git a/src/__tests__/themeContext.spec.ts b/src/__tests__/themeContext.spec.ts index 0202d59c..76f6e939 100644 --- a/src/__tests__/themeContext.spec.ts +++ b/src/__tests__/themeContext.spec.ts @@ -61,7 +61,6 @@ describe('Theme Context Commands', () => { setEnv(); program = await init('fdk'); const mock = new MockAdapter(axios); - mock.onGet(`${URLS.IS_VERSION_COMPATIBLE()}`).reply(200); mock.onGet( `${URLS.GET_APPLICATION_DETAILS( appConfig.company_id, diff --git a/src/lib/Auth.ts b/src/lib/Auth.ts index 1ebd23b0..e1a17e1c 100644 --- a/src/lib/Auth.ts +++ b/src/lib/Auth.ts @@ -61,16 +61,11 @@ export const startServer = async () => { return Auth.server; }; -async function checkVersionCompatibility() { - const response = await ThemeService.checkCompatibleVersion(); -} - export default class Auth { static server = null; static isOrganizationChange = false; constructor() {} public static async login() { - await checkVersionCompatibility(); Logger.info( chalk.green( 'Current env: ', diff --git a/src/lib/api/services/theme.service.ts b/src/lib/api/services/theme.service.ts index 74fd27ed..560a2551 100644 --- a/src/lib/api/services/theme.service.ts +++ b/src/lib/api/services/theme.service.ts @@ -227,18 +227,6 @@ export default { throw error; } }, - checkCompatibleVersion: async () => { - try { - let axiosOptions = Object.assign({}, getCommonHeaderOptions()); - let response = await ApiClient.get( - URLS.IS_VERSION_COMPATIBLE(), - axiosOptions, - ); - return response.data; - } catch (error) { - throw error; - } - }, getDefaultTheme: async (data) => { try { const axiosOption = Object.assign({}, getCommonHeaderOptions()); diff --git a/src/lib/api/services/url.ts b/src/lib/api/services/url.ts index be4de5cf..ebbe7ebd 100644 --- a/src/lib/api/services/url.ts +++ b/src/lib/api/services/url.ts @@ -178,8 +178,4 @@ export const URLS = { `/organization/${organization_id}/accounts/access-request?page_size=${page_size}&page_no=${page_no}&request_status=accepted`, ); }, - - IS_VERSION_COMPATIBLE: () => { - return urlJoin(BLITZKRIEG_PANEL_URL(), '/_compatibility'); - }, }; From 832237adf160e564c98fa173763c8ddcb37ee731 Mon Sep 17 00:00:00 2001 From: Ashok Redkar Date: Mon, 8 Jul 2024 10:21:38 +0530 Subject: [PATCH 10/14] remove version compatibility messages --- src/lib/CommandError.ts | 5 ----- src/lib/api/helper/interceptors.ts | 9 --------- 2 files changed, 14 deletions(-) diff --git a/src/lib/CommandError.ts b/src/lib/CommandError.ts index 53288228..dcd59a59 100644 --- a/src/lib/CommandError.ts +++ b/src/lib/CommandError.ts @@ -53,11 +53,6 @@ export const ErrorCodes = { `No themes are created, Please create/add a theme under the sales channel. For more details, refer to the documentation link: ${domain}/help/docs/partners/themes/vuejs/overview`, code: 'FDK-00011', }, - DOWNGRADE_CLI_VERSION: { - message: - 'Seems like current Fynd Platform version is not compatible with installed CLI version.\n\nIn order to continue with current FP version, Please use previous version of CLI `npm install -g @gofynd/fdk-cli@3.0.4` command.', - code: 'FDK-00012', - }, // generic ECONN_RESET: { diff --git a/src/lib/api/helper/interceptors.ts b/src/lib/api/helper/interceptors.ts index 95d86cd9..e536977b 100644 --- a/src/lib/api/helper/interceptors.ts +++ b/src/lib/api/helper/interceptors.ts @@ -129,15 +129,6 @@ export function responseErrorInterceptor() { ) { ConfigStore.delete(CONFIG_KEYS.AUTH_TOKEN); throw new CommandError(COMMON_LOG_MESSAGES.RequireAuth); - } else if ( - error.response && - error.response.status === 404 && - error.response.config.url.includes('/_compatibility') - ) { - throw new CommandError( - ErrorCodes.DOWNGRADE_CLI_VERSION.message, - ErrorCodes.DOWNGRADE_CLI_VERSION.code, - ); } else if (error.response) { Debug(`Error Response : ${JSON.stringify(error.response.data)}`); throw new CommandError( From fe7ab5ac1f1ff1baf87a13326ec76c2478ce34d0 Mon Sep 17 00:00:00 2001 From: Karan Raina Date: Wed, 10 Jul 2024 14:50:51 +0530 Subject: [PATCH 11/14] Fix grindor cdn URL --- sample-upload | 2 + src/lib/Theme.ts | 59 ++++++++++++++------------ src/lib/api/services/upload.service.ts | 5 ++- 3 files changed, 37 insertions(+), 29 deletions(-) create mode 100644 sample-upload diff --git a/sample-upload b/sample-upload new file mode 100644 index 00000000..e2997fa2 --- /dev/null +++ b/sample-upload @@ -0,0 +1,2 @@ +// ! DO NOT REMOVE +// This file is used to get CDN base path \ No newline at end of file diff --git a/src/lib/Theme.ts b/src/lib/Theme.ts index 37d69042..3a98581e 100644 --- a/src/lib/Theme.ts +++ b/src/lib/Theme.ts @@ -114,7 +114,6 @@ export default class Theme { public static async getThemeBundle(stats: MultiStats) { const fileList = stats.stats[0].toJson().assets.map(({ name }) => name); const outputFileName= fileList.find(file => file.startsWith('themeBundle') && file.endsWith('.js')); - const buildPath = path.join(process.cwd(), Theme.BUILD_FOLDER); const outputFilePath = path.resolve(buildPath, outputFileName); @@ -1680,20 +1679,22 @@ export default class Theme { }; private static getImageCdnBaseUrl = async () => { - let imageCdnUrl = ''; try { - let startData = { - file_name: 'test.jpg', - content_type: 'image/jpeg', - size: '1', - }; - let startAssetData = ( - await UploadService.startUpload( - startData, - 'application-theme-images', - ) - ).data; - return (imageCdnUrl = path.dirname(startAssetData.cdn.url)); + const dummyFile = path.join( + __dirname, + '..', + '..', + 'sample-upload' + ); + + const response = await UploadService.uploadFile( + dummyFile, + 'application-theme-images', + null, + 'image/jpg' + ); + + return path.dirname(response.complete.cdn.url); } catch (err) { Logger.error(err); throw new CommandError( @@ -1704,20 +1705,24 @@ export default class Theme { }; private static getAssetCdnBaseUrl = async () => { - let assetCdnUrl = ''; try { - const startData = { - file_name: 'test.ttf', - content_type: 'font/ttf', - size: '10', - }; - const startAssetData = ( - await UploadService.startUpload( - startData, - 'application-theme-assets', - ) - ).data; - return (assetCdnUrl = path.dirname(startAssetData.cdn.url)); + console.log({__dirname}); + const dummyFile = path.join( + __dirname, + '..', + '..', + 'sample-upload' + ); + + const response = await UploadService.uploadFile( + dummyFile, + 'application-theme-assets', + null, + 'application/javascript' + ); + + return path.dirname(response.complete.cdn.url); + } catch (err) { throw new CommandError( `Failed in getting assets CDN base url`, diff --git a/src/lib/api/services/upload.service.ts b/src/lib/api/services/upload.service.ts index 9f0ba2d3..8aca0314 100644 --- a/src/lib/api/services/upload.service.ts +++ b/src/lib/api/services/upload.service.ts @@ -26,7 +26,7 @@ export default { throw error; } }, - uploadFile: async (filepath, namespace, file_name = null) => { + uploadFile: async (filepath, namespace, file_name = null, mimeType = null) => { let spinner = new Spinner(); let textMessage; try { @@ -35,7 +35,8 @@ export default { filepath, )} [${Math.round(stats.size / 1024)} KB]`; spinner.start(textMessage); - let contentType = mime.getType(path.extname(filepath)); + let contentType = mimeType || mime.getType(path.extname(filepath)); + if (contentType === 'image/jpg') { contentType = 'image/jpeg'; } From 99c37a9b4c05d601c8d101af5ea5084d132b6380 Mon Sep 17 00:00:00 2001 From: Karan Raina Date: Wed, 10 Jul 2024 16:50:17 +0530 Subject: [PATCH 12/14] Fix grindor cdn URL --- sample-upload.jpeg | 0 sample-upload => sample-upload.js | 0 src/lib/Theme.ts | 7 +++---- src/lib/api/services/upload.service.ts | 19 +------------------ 4 files changed, 4 insertions(+), 22 deletions(-) create mode 100644 sample-upload.jpeg rename sample-upload => sample-upload.js (100%) diff --git a/sample-upload.jpeg b/sample-upload.jpeg new file mode 100644 index 00000000..e69de29b diff --git a/sample-upload b/sample-upload.js similarity index 100% rename from sample-upload rename to sample-upload.js diff --git a/src/lib/Theme.ts b/src/lib/Theme.ts index 3a98581e..b5545c5f 100644 --- a/src/lib/Theme.ts +++ b/src/lib/Theme.ts @@ -1684,14 +1684,14 @@ export default class Theme { __dirname, '..', '..', - 'sample-upload' + 'sample-upload.jpeg' ); const response = await UploadService.uploadFile( dummyFile, 'application-theme-images', null, - 'image/jpg' + 'image/jpeg' ); return path.dirname(response.complete.cdn.url); @@ -1706,12 +1706,11 @@ export default class Theme { private static getAssetCdnBaseUrl = async () => { try { - console.log({__dirname}); const dummyFile = path.join( __dirname, '..', '..', - 'sample-upload' + 'sample-upload.js' ); const response = await UploadService.uploadFile( diff --git a/src/lib/api/services/upload.service.ts b/src/lib/api/services/upload.service.ts index 8aca0314..929f8b71 100644 --- a/src/lib/api/services/upload.service.ts +++ b/src/lib/api/services/upload.service.ts @@ -8,24 +8,7 @@ import mime from 'mime'; import Spinner from '../../../helper/spinner'; export default { - startUpload: async (data, namespace) => { - try { - const axiosOption = Object.assign( - {}, - { - data: data, - }, - getCommonHeaderOptions(), - ); - const res = await ApiClient.post( - URLS.START_UPLOAD_FILE(namespace), - axiosOption, - ); - return res; - } catch (error) { - throw error; - } - }, + uploadFile: async (filepath, namespace, file_name = null, mimeType = null) => { let spinner = new Spinner(); let textMessage; From 6ce14b489d86155dcfb1b88bb4932e1253e39d39 Mon Sep 17 00:00:00 2001 From: Karan Raina Date: Wed, 10 Jul 2024 17:16:10 +0530 Subject: [PATCH 13/14] add some dummy content to file so it gets uploaded --- sample-upload.jpeg | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sample-upload.jpeg b/sample-upload.jpeg index e69de29b..e2997fa2 100644 --- a/sample-upload.jpeg +++ b/sample-upload.jpeg @@ -0,0 +1,2 @@ +// ! DO NOT REMOVE +// This file is used to get CDN base path \ No newline at end of file From 9898fdd09146e324228891d1fa8c35c624f972a2 Mon Sep 17 00:00:00 2001 From: meetdhanani Date: Thu, 11 Jul 2024 19:05:33 +0530 Subject: [PATCH 14/14] version bump --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2fe5391c..4fca3e15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@gofynd/fdk-cli", - "version": "5.1.2", + "version": "5.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@gofynd/fdk-cli", - "version": "5.1.2", + "version": "5.2.0", "license": "MIT", "dependencies": { "@babel/core": "7.14.3", diff --git a/package.json b/package.json index dcb6105c..4c795ad9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@gofynd/fdk-cli", - "version": "5.1.2", + "version": "5.2.0", "main": "index.js", "license": "MIT", "bin": {