smartui-migration-tool
Version:
Enterprise-grade CLI tool for migrating visual testing platforms to LambdaTest SmartUI
120 lines • 4.34 kB
JavaScript
/**
* DependencyMapper - Single source of truth for dependency transformations
* Maps source platform dependencies to SmartUI equivalents
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ENV_VAR_MAPPINGS = exports.DEPENDENCY_MAPPINGS = void 0;
exports.getDependencyMappings = getDependencyMappings;
exports.getEnvVarMappings = getEnvVarMappings;
exports.isSourcePackage = isSourcePackage;
exports.getSmartUIPackage = getSmartUIPackage;
exports.getSourcePackages = getSourcePackages;
exports.getSmartUIPackages = getSmartUIPackages;
/**
* Complete dependency mapping for all supported platforms and frameworks
*/
exports.DEPENDENCY_MAPPINGS = {
// Percy dependencies
'Percy': {
// Core CLI
'@percy/cli': '@lambdatest/smartui-cli',
// Framework-specific packages
'@percy/cypress': '@lambdatest/smartui-cypress',
'@percy/playwright': '@lambdatest/smartui-playwright',
'@percy/selenium-webdriver': '@lambdatest/smartui-selenium',
'@percy/storybook': '@lambdatest/smartui-storybook',
'@percy/appium-app': '@lambdatest/smartui-appium',
'@percy/automate': '@lambdatest/smartui-automate',
'@percy/puppeteer': '@lambdatest/smartui-puppeteer',
// Legacy packages
'@percy/agent': '@lambdatest/smartui-cli',
'@percy/sdk': '@lambdatest/smartui-cli',
},
// Applitools dependencies
'Applitools': {
// Core packages
'@applitools/eyes-selenium': '@lambdatest/smartui-selenium',
'@applitools/eyes-cypress': '@lambdatest/smartui-cypress',
'@applitools/eyes-playwright': '@lambdatest/smartui-playwright',
'@applitools/eyes-storybook': '@lambdatest/smartui-storybook',
'@applitools/eyes-webdriverio': '@lambdatest/smartui-webdriverio',
'@applitools/eyes-puppeteer': '@lambdatest/smartui-puppeteer',
// Core SDK
'@applitools/eyes': '@lambdatest/smartui-cli',
'@applitools/eyes-api': '@lambdatest/smartui-cli',
},
// Sauce Labs dependencies
'Sauce Labs Visual': {
// Core packages
'@saucelabs/cypress-plugin': '@lambdatest/smartui-cypress',
'@saucelabs/cypress-visual-plugin': '@lambdatest/smartui-cypress',
'@saucelabs/webdriverio': '@lambdatest/smartui-selenium',
'@saucelabs/playwright-plugin': '@lambdatest/smartui-playwright',
'@saucelabs/sauce-cypress-runner': '@lambdatest/smartui-cypress',
'@saucelabs/sauce-playwright-runner': '@lambdatest/smartui-playwright',
// Core CLI
'saucectl': '@lambdatest/smartui-cli',
}
};
/**
* Environment variable mappings for CI/CD transformation
*/
exports.ENV_VAR_MAPPINGS = {
'Percy': {
'PERCY_TOKEN': 'PROJECT_TOKEN',
'PERCY_BRANCH': 'LT_BRANCH',
'PERCY_PROJECT': 'LT_PROJECT',
},
'Applitools': {
'APPLITOOLS_API_KEY': 'PROJECT_TOKEN',
'APPLITOOLS_BATCH_ID': 'LT_BATCH_ID',
'APPLITOOLS_BRANCH_NAME': 'LT_BRANCH',
},
'Sauce Labs Visual': {
'SAUCE_USERNAME': 'LT_USERNAME',
'SAUCE_ACCESS_KEY': 'LT_ACCESS_KEY',
'SAUCE_REGION': 'LT_REGION',
}
};
/**
* Get dependency mappings for a specific platform
*/
function getDependencyMappings(platform) {
return exports.DEPENDENCY_MAPPINGS[platform] || {};
}
/**
* Get environment variable mappings for a specific platform
*/
function getEnvVarMappings(platform) {
return exports.ENV_VAR_MAPPINGS[platform] || {};
}
/**
* Check if a package is a source platform package
*/
function isSourcePackage(packageName, platform) {
const mappings = getDependencyMappings(platform);
return packageName in mappings;
}
/**
* Get the SmartUI equivalent for a source package
*/
function getSmartUIPackage(sourcePackage, platform) {
const mappings = getDependencyMappings(platform);
return mappings[sourcePackage] || null;
}
/**
* Get all source packages for a platform
*/
function getSourcePackages(platform) {
const mappings = getDependencyMappings(platform);
return Object.keys(mappings);
}
/**
* Get all SmartUI packages for a platform
*/
function getSmartUIPackages(platform) {
const mappings = getDependencyMappings(platform);
return Object.values(mappings);
}
//# sourceMappingURL=DependencyMapper.js.map
;