New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@flexsiteio/cli

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@flexsiteio/cli - npm Package Compare versions

Comparing version
1.0.2
to
1.0.3
+7
dist/commands/composer.d.ts
/**
* Composer command for FlexSite CLI.
* Transforms composer.json from other platforms (Pantheon, Acquia, etc.) to FlexSite format.
*/
import { Command } from 'commander';
export declare const composerCommand: Command;
//# sourceMappingURL=composer.d.ts.map
{"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../../src/commands/composer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAubpC,eAAO,MAAM,eAAe,SACqC,CAAC"}
"use strict";
/**
* Composer command for FlexSite CLI.
* Transforms composer.json from other platforms (Pantheon, Acquia, etc.) to FlexSite format.
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.composerCommand = void 0;
const commander_1 = require("commander");
const chalk_1 = __importDefault(require("chalk"));
const inquirer_1 = __importDefault(require("inquirer"));
const ora_1 = __importDefault(require("ora"));
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
/**
* Sanitize project name to be valid for Composer
* Composer package names must be lowercase alphanumeric with -_.
*/
function sanitizeProjectName(name) {
return name
.toLowerCase()
.replace(/[^a-z0-9._-]/g, '-') // Replace invalid chars with -
.replace(/^[^a-z0-9]+/, '') // Remove leading non-alphanumeric
.replace(/[^a-z0-9]+$/, '') // Remove trailing non-alphanumeric
.replace(/-+/g, '-'); // Collapse multiple dashes
}
// FlexSite required packages for performance
const FLEXSITE_PERFORMANCE_PACKAGES = {
'flexsite/fs_performance': '^1.0',
'drupal/redis': '^1.7',
'drupal/purge': '^3.5',
'drupal/varnish_purge': '^2.2',
'drupal/ultimate_cron': '^2.0@beta',
};
// FlexSite repository
const FLEXSITE_REPOSITORY = {
type: 'composer',
url: 'https://packages.flexsite.io/packages.json'
};
// Drupal.org repository
const DRUPAL_REPOSITORY = {
type: 'composer',
url: 'https://packages.drupal.org/8'
};
// Pantheon-specific packages to remove
const PANTHEON_PACKAGES = [
'pantheon-upstreams/upstream-configuration',
'pantheon-systems/drupal-integrations',
];
// Acquia-specific packages to remove
const ACQUIA_PACKAGES = [
'acquia/blt',
'acquia/blt-require-dev',
'acquia/drupal-recommended-settings',
'acquia/memcache-settings',
];
// Platform.sh specific packages to remove
const PLATFORMSH_PACKAGES = [
'platformsh/config-reader',
];
// All platform-specific packages
const PLATFORM_PACKAGES = [
...PANTHEON_PACKAGES,
...ACQUIA_PACKAGES,
...PLATFORMSH_PACKAGES,
];
// FlexSite recipe installer path
const RECIPE_INSTALLER_PATH = {
'recipes/{$name}': ['type:drupal-recipe']
};
// Pantheon-specific installer paths to remove
const PANTHEON_INSTALLER_PATHS = [
'web/private/scripts/quicksilver/{$name}/'
];
/**
* Detect which platform the composer.json is from
*/
function detectPlatform(composer) {
if (composer.name?.includes('pantheon') ||
composer.require?.['pantheon-upstreams/upstream-configuration'] ||
composer.require?.['pantheon-systems/drupal-integrations']) {
return 'pantheon';
}
if (composer.name?.includes('acquia') ||
composer.require?.['acquia/blt'] ||
composer.require?.['acquia/drupal-recommended-settings']) {
return 'acquia';
}
if (composer.require?.['platformsh/config-reader']) {
return 'platformsh';
}
if (composer.name?.includes('flexsite')) {
return 'flexsite';
}
return 'unknown';
}
/**
* Detect Drupal version from composer.json
*/
function detectDrupalVersion(composer) {
const coreVersion = composer.require?.['drupal/core-recommended'] ||
composer.require?.['drupal/core'] || '';
if (coreVersion.includes('^11') || coreVersion.includes('~11')) {
return 11;
}
if (coreVersion.includes('^10') || coreVersion.includes('~10')) {
return 10;
}
if (coreVersion.includes('^9') || coreVersion.includes('~9')) {
return 9;
}
return 11; // Default to latest
}
/**
* Fix composer.json for FlexSite compatibility
*/
function fixComposerJson(composer, options) {
const result = {
changes: [],
warnings: [],
removedPackages: [],
addedPackages: [],
};
const fixed = JSON.parse(JSON.stringify(composer));
const drupalVersion = detectDrupalVersion(composer);
const platform = detectPlatform(composer);
// 1. Update name
const projectName = options.projectName || 'my-project';
const newName = `flexsite/${projectName}`;
if (fixed.name !== newName) {
const oldName = fixed.name || '(none)';
fixed.name = newName;
result.changes.push(`Changed name: ${oldName} → ${fixed.name}`);
}
// 2. Update description
if (fixed.description?.toLowerCase().includes('pantheon') ||
fixed.description?.toLowerCase().includes('acquia') ||
fixed.description?.toLowerCase().includes('platform.sh')) {
fixed.description = `Drupal ${drupalVersion} project for FlexSite platform`;
result.changes.push('Updated description for FlexSite');
}
// 3. Update license
if (fixed.license !== 'GPL-2.0-or-later') {
fixed.license = 'GPL-2.0-or-later';
result.changes.push('Updated license to GPL-2.0-or-later');
}
// 4. Fix repositories
const newRepositories = [];
// Always add Drupal.org first
newRepositories.push(DRUPAL_REPOSITORY);
// Add FlexSite repository
newRepositories.push(FLEXSITE_REPOSITORY);
// Keep any custom/path repositories that aren't platform-specific
if (fixed.repositories) {
for (const repo of fixed.repositories) {
// Skip drupal.org (we already added it)
if (repo.url === 'https://packages.drupal.org/8')
continue;
// Skip FlexSite repo (we already added it)
if (repo.url === 'https://packages.flexsite.io/packages.json')
continue;
// Skip Pantheon upstream-configuration path
if (repo.type === 'path' && repo.url === 'upstream-configuration') {
result.changes.push('Removed Pantheon upstream-configuration repository');
continue;
}
// Keep other repositories (custom package sources, etc.)
newRepositories.push(repo);
}
}
fixed.repositories = newRepositories;
result.changes.push('Updated repositories (added FlexSite package source)');
// 5. Remove platform-specific packages from require
if (fixed.require) {
for (const pkg of PLATFORM_PACKAGES) {
if (fixed.require[pkg]) {
delete fixed.require[pkg];
result.removedPackages.push(pkg);
}
}
}
// 6. Remove platform-specific packages from require-dev
if (fixed['require-dev']) {
for (const pkg of PLATFORM_PACKAGES) {
if (fixed['require-dev'][pkg]) {
delete fixed['require-dev'][pkg];
result.removedPackages.push(`${pkg} (dev)`);
}
}
}
// 7. Add FlexSite performance packages
if (!options.skipPerformance) {
for (const [pkg, version] of Object.entries(FLEXSITE_PERFORMANCE_PACKAGES)) {
if (!fixed.require?.[pkg]) {
fixed.require = fixed.require || {};
fixed.require[pkg] = version;
result.addedPackages.push(pkg);
}
}
}
// 7b. Upgrade composer/installers to v2 (required for drupal-recipe type support)
if (fixed.require?.['composer/installers']) {
const currentVersion = fixed.require['composer/installers'];
// Check if it's v1.x (e.g., ^1.9, ~1.9, 1.x, etc.)
if (currentVersion.match(/^[\^~]?1\./)) {
fixed.require['composer/installers'] = '^2.0';
result.changes.push('Upgraded composer/installers to ^2.0 (required for recipe support)');
}
}
// 8. Ensure PHP requirement
if (!fixed.require?.['php']) {
fixed.require = fixed.require || {};
fixed.require['php'] = '>=8.2';
result.changes.push('Added PHP >=8.2 requirement');
}
// 9. Ensure drush is present
if (!fixed.require?.['drush/drush']) {
fixed.require = fixed.require || {};
fixed.require['drush/drush'] = '^13.6';
result.addedPackages.push('drush/drush');
}
// 10. Fix drupal-scaffold section
if (fixed.extra?.['drupal-scaffold']) {
const scaffold = fixed.extra['drupal-scaffold'];
// Remove Pantheon-specific allowed-packages
if (scaffold['allowed-packages']) {
const filtered = scaffold['allowed-packages'].filter((pkg) => !pkg.includes('pantheon') && !pkg.includes('acquia'));
if (filtered.length === 0) {
delete scaffold['allowed-packages'];
}
else {
scaffold['allowed-packages'] = filtered;
}
result.changes.push('Cleaned up drupal-scaffold allowed-packages');
}
// Remove Pantheon-specific file-mapping
if (scaffold['file-mapping']) {
const newMapping = {};
for (const [key, value] of Object.entries(scaffold['file-mapping'])) {
// Skip Pantheon-specific files
if (key.includes('pantheon') || key.includes('acquia')) {
continue;
}
newMapping[key] = value;
}
if (Object.keys(newMapping).length > 0) {
scaffold['file-mapping'] = newMapping;
}
else {
delete scaffold['file-mapping'];
}
}
// Normalize web-root
if (scaffold.locations?.['web-root']) {
scaffold.locations['web-root'] = 'web/';
}
}
// 11. Fix installer-paths
if (fixed.extra?.['installer-paths']) {
const installerPaths = fixed.extra['installer-paths'];
// Remove Pantheon quicksilver paths
for (const pathToRemove of PANTHEON_INSTALLER_PATHS) {
if (installerPaths[pathToRemove]) {
delete installerPaths[pathToRemove];
result.changes.push('Removed Pantheon quicksilver installer path');
}
}
// Add recipe installer path if not present
const recipeKey = 'recipes/{$name}';
if (!installerPaths[recipeKey]) {
installerPaths[recipeKey] = ['type:drupal-recipe'];
result.changes.push('Added recipe installer path');
}
}
// 12. Remove Pantheon-specific autoload
if (fixed.autoload?.classmap) {
const filteredClassmap = fixed.autoload.classmap.filter((path) => !path.includes('upstream-configuration') && !path.includes('ComposerScripts'));
if (filteredClassmap.length === 0) {
delete fixed.autoload.classmap;
if (Object.keys(fixed.autoload).length === 0) {
delete fixed.autoload;
}
}
else {
fixed.autoload.classmap = filteredClassmap;
}
result.changes.push('Removed Pantheon autoload entries');
}
// 13. Clean up scripts
if (fixed.scripts) {
const scriptsToRemove = ['pre-update-cmd', 'post-update-cmd'];
for (const script of scriptsToRemove) {
if (fixed.scripts[script]) {
const commands = Array.isArray(fixed.scripts[script])
? fixed.scripts[script]
: [fixed.scripts[script]];
const filtered = commands.filter((cmd) => !cmd.includes('ComposerScripts') &&
!cmd.includes('Pantheon') &&
!cmd.includes('Acquia'));
if (filtered.length === 0) {
delete fixed.scripts[script];
}
else {
fixed.scripts[script] = filtered;
}
}
}
// Add post-install-cmd for custom directories if not present
if (!fixed.scripts['post-install-cmd']) {
fixed.scripts['post-install-cmd'] = [
'mkdir -p web/themes/custom',
'mkdir -p web/modules/custom'
];
result.changes.push('Added post-install-cmd for custom directories');
}
}
// 14. Update config section
if (fixed.config) {
// Remove platform-specific php version pinning if it's too restrictive
if (fixed.config.platform?.php) {
// Keep it but warn if it's below 8.2
const phpVersion = fixed.config.platform.php;
if (phpVersion.startsWith('8.0') || phpVersion.startsWith('8.1')) {
result.warnings.push(`PHP version ${phpVersion} is set in config.platform.php. FlexSite uses PHP 8.3.`);
}
}
// Ensure sort-packages is true
fixed.config['sort-packages'] = true;
// Add optimize-autoloader
fixed.config['optimize-autoloader'] = true;
// Ensure necessary plugins are allowed
const allowPlugins = fixed.config['allow-plugins'] || {};
allowPlugins['composer/installers'] = true;
allowPlugins['drupal/core-composer-scaffold'] = true;
allowPlugins['drupal/core-project-message'] = true;
allowPlugins['php-http/discovery'] = true;
allowPlugins['tbachert/spi'] = true;
// Remove platform-specific plugins
delete allowPlugins['pantheon-systems/upstream-management'];
fixed.config['allow-plugins'] = allowPlugins;
}
// 15. Set minimum-stability
fixed['minimum-stability'] = 'dev';
fixed['prefer-stable'] = true;
// Generate summary
if (result.removedPackages.length > 0) {
result.changes.push(`Removed ${result.removedPackages.length} platform-specific package(s)`);
}
if (result.addedPackages.length > 0) {
result.changes.push(`Added ${result.addedPackages.length} FlexSite package(s)`);
}
return { fixed, result };
}
exports.composerCommand = new commander_1.Command('composer')
.description('Manage composer.json for FlexSite compatibility');
exports.composerCommand
.command('fix')
.description('Transform composer.json from other platforms (Pantheon, Acquia, etc.) to FlexSite format')
.option('-f, --file <path>', 'Path to composer.json', 'composer.json')
.option('-o, --output <path>', 'Output file (default: overwrite input)')
.option('-n, --name <name>', 'Project name for FlexSite')
.option('--dry-run', 'Show changes without modifying files')
.option('--skip-performance', 'Skip adding FlexSite performance packages')
.option('--backup', 'Create a backup before modifying')
.action(async (options) => {
try {
const composerPath = path_1.default.resolve(options.file);
// Check if file exists
if (!fs_1.default.existsSync(composerPath)) {
console.error(chalk_1.default.red(`File not found: ${composerPath}`));
process.exit(1);
}
// Read composer.json
const spinner = (0, ora_1.default)('Reading composer.json...').start();
const content = fs_1.default.readFileSync(composerPath, 'utf-8');
let composer;
try {
composer = JSON.parse(content);
}
catch (e) {
spinner.fail('Invalid JSON in composer.json');
process.exit(1);
}
spinner.succeed('Read composer.json');
// Detect platform
const platform = detectPlatform(composer);
const drupalVersion = detectDrupalVersion(composer);
console.log(chalk_1.default.cyan(`\nDetected platform: ${chalk_1.default.bold(platform.toUpperCase())}`));
console.log(chalk_1.default.cyan(`Drupal version: ${chalk_1.default.bold(drupalVersion)}`));
if (platform === 'flexsite') {
console.log(chalk_1.default.green('\nThis composer.json is already configured for FlexSite!'));
const { continueAnyway } = await inquirer_1.default.prompt([
{
type: 'confirm',
name: 'continueAnyway',
message: 'Do you want to run the fix anyway?',
default: false
}
]);
if (!continueAnyway) {
process.exit(0);
}
}
// Get project name if not provided
let projectName = options.name;
if (!projectName) {
// Try to extract from current name or directory
const dirName = path_1.default.basename(path_1.default.dirname(composerPath));
const currentName = composer.name?.split('/').pop() || dirName;
const { name } = await inquirer_1.default.prompt([
{
type: 'input',
name: 'name',
message: 'Project name for FlexSite:',
default: sanitizeProjectName(currentName),
validate: (input) => {
const sanitized = sanitizeProjectName(input);
if (!sanitized) {
return 'Project name must contain at least one valid character (a-z, 0-9)';
}
if (!/^[a-z0-9]([_.-]?[a-z0-9]+)*$/.test(sanitized)) {
return 'Invalid project name. Use only lowercase letters, numbers, and -_.';
}
return true;
}
}
]);
// Always sanitize the input
projectName = sanitizeProjectName(name);
}
else {
// Sanitize provided name
projectName = sanitizeProjectName(projectName);
}
// Fix composer.json
const fixSpinner = (0, ora_1.default)('Analyzing composer.json...').start();
const { fixed, result } = fixComposerJson(composer, {
projectName,
dryRun: options.dryRun,
skipPerformance: options.skipPerformance
});
fixSpinner.succeed('Analysis complete');
// Show changes
console.log(chalk_1.default.cyan('\n--- Changes ---'));
if (result.changes.length === 0) {
console.log(chalk_1.default.dim(' No changes needed'));
}
else {
for (const change of result.changes) {
console.log(chalk_1.default.green(` ✓ ${change}`));
}
}
if (result.removedPackages.length > 0) {
console.log(chalk_1.default.cyan('\n--- Removed Packages ---'));
for (const pkg of result.removedPackages) {
console.log(chalk_1.default.yellow(` - ${pkg}`));
}
}
if (result.addedPackages.length > 0) {
console.log(chalk_1.default.cyan('\n--- Added Packages ---'));
for (const pkg of result.addedPackages) {
console.log(chalk_1.default.green(` + ${pkg}`));
}
}
if (result.warnings.length > 0) {
console.log(chalk_1.default.cyan('\n--- Warnings ---'));
for (const warning of result.warnings) {
console.log(chalk_1.default.yellow(` ⚠ ${warning}`));
}
}
// Dry run - don't write
if (options.dryRun) {
console.log(chalk_1.default.dim('\n(Dry run - no files modified)'));
console.log(chalk_1.default.cyan('\nPreview of fixed composer.json:'));
console.log(JSON.stringify(fixed, null, 4));
process.exit(0);
}
// Confirm before writing
const { confirm } = await inquirer_1.default.prompt([
{
type: 'confirm',
name: 'confirm',
message: 'Apply these changes?',
default: true
}
]);
if (!confirm) {
console.log(chalk_1.default.dim('Cancelled'));
process.exit(0);
}
// Create backup if requested
if (options.backup) {
const backupPath = `${composerPath}.backup.${Date.now()}`;
fs_1.default.writeFileSync(backupPath, content);
console.log(chalk_1.default.dim(`Backup created: ${backupPath}`));
}
// Write fixed composer.json
const outputPath = options.output ? path_1.default.resolve(options.output) : composerPath;
fs_1.default.writeFileSync(outputPath, JSON.stringify(fixed, null, 4) + '\n');
console.log(chalk_1.default.green(`\n✓ Updated ${outputPath}`));
// Post-fix instructions
console.log(chalk_1.default.cyan('\n--- Next Steps ---'));
console.log(' 1. Review the changes to composer.json');
console.log(' 2. Run: ' + chalk_1.default.bold('composer install'));
console.log(' 3. If you have upstream-configuration directory, you can delete it');
console.log(' 4. Commit your changes to git');
if (platform === 'pantheon') {
console.log(chalk_1.default.yellow('\n--- Pantheon-specific cleanup ---'));
console.log(' • Delete: upstream-configuration/');
console.log(' • Delete: pantheon.yml (if exists)');
console.log(' • Delete: pantheon.upstream.yml (if exists)');
}
}
catch (error) {
if (error instanceof Error) {
console.error(chalk_1.default.red(`\nError: ${error.message}`));
}
process.exit(1);
}
});
exports.composerCommand
.command('check')
.description('Check composer.json for FlexSite compatibility')
.option('-f, --file <path>', 'Path to composer.json', 'composer.json')
.action(async (options) => {
try {
const composerPath = path_1.default.resolve(options.file);
if (!fs_1.default.existsSync(composerPath)) {
console.error(chalk_1.default.red(`File not found: ${composerPath}`));
process.exit(1);
}
const content = fs_1.default.readFileSync(composerPath, 'utf-8');
const composer = JSON.parse(content);
const platform = detectPlatform(composer);
const drupalVersion = detectDrupalVersion(composer);
console.log(chalk_1.default.cyan('=== Composer.json Analysis ===\n'));
console.log(`Platform: ${chalk_1.default.bold(platform.toUpperCase())}`);
console.log(`Drupal version: ${chalk_1.default.bold(drupalVersion)}`);
console.log(`Name: ${chalk_1.default.bold(composer.name || 'Not set')}`);
// Check FlexSite compatibility
const issues = [];
const good = [];
// Check repositories
const hasFlexSiteRepo = composer.repositories?.some(r => r.url === 'https://packages.flexsite.io/packages.json');
if (hasFlexSiteRepo) {
good.push('FlexSite repository configured');
}
else {
issues.push('Missing FlexSite repository (packages.flexsite.io)');
}
// Check performance packages
const hasPerformancePackage = composer.require?.['flexsite/fs_performance'];
if (hasPerformancePackage) {
good.push('FlexSite performance package installed');
}
else {
issues.push('Missing flexsite/fs_performance package');
}
// Check Redis
const hasRedis = composer.require?.['drupal/redis'];
if (hasRedis) {
good.push('Redis module configured');
}
else {
issues.push('Missing drupal/redis package');
}
// Check recipe path
const hasRecipePath = composer.extra?.['installer-paths']?.['recipes/{$name}'];
if (hasRecipePath) {
good.push('Recipe installer path configured');
}
else {
issues.push('Missing recipe installer path');
}
// Check for platform-specific packages
const platformPackages = [];
for (const pkg of PLATFORM_PACKAGES) {
if (composer.require?.[pkg] || composer['require-dev']?.[pkg]) {
platformPackages.push(pkg);
}
}
if (platformPackages.length > 0) {
issues.push(`Platform-specific packages found: ${platformPackages.join(', ')}`);
}
else {
good.push('No platform-specific packages');
}
// Print results
if (good.length > 0) {
console.log(chalk_1.default.green('\n✓ Good:'));
for (const item of good) {
console.log(chalk_1.default.green(` • ${item}`));
}
}
if (issues.length > 0) {
console.log(chalk_1.default.yellow('\n⚠ Issues:'));
for (const item of issues) {
console.log(chalk_1.default.yellow(` • ${item}`));
}
console.log(chalk_1.default.cyan(`\nRun ${chalk_1.default.bold('flexsite composer fix')} to resolve these issues.`));
}
else {
console.log(chalk_1.default.green('\n✓ composer.json is fully compatible with FlexSite!'));
}
}
catch (error) {
if (error instanceof Error) {
console.error(chalk_1.default.red(`\nError: ${error.message}`));
}
process.exit(1);
}
});
//# sourceMappingURL=composer.js.map
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/commands/composer.ts"],"names":[],"mappings":"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"}
+2
-0

@@ -14,2 +14,3 @@ #!/usr/bin/env node

const config_js_1 = require("../commands/config.js");
const composer_js_1 = require("../commands/composer.js");
// Version is managed in package.json

@@ -28,2 +29,3 @@ const VERSION = '1.0.2';

program.addCommand(config_js_1.configCommand);
program.addCommand(composer_js_1.composerCommand);
// Parse arguments

@@ -30,0 +32,0 @@ program.parse(process.argv);

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"flexsite.js","sourceRoot":"","sources":["../../src/bin/flexsite.ts"],"names":[],"mappings":";;AAEA;;;GAGG;;AAEH,yCAAoC;AACpC,iDAAkD;AAClD,6CAA8C;AAC9C,mDAAoD;AACpD,iDAAkD;AAClD,qDAAsD;AAEtD,qCAAqC;AACrC,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,qBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,iBAAS,CAAC,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,uBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,qBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,yBAAa,CAAC,CAAC;AAElC,kBAAkB;AAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,mCAAmC;AACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
{"version":3,"file":"flexsite.js","sourceRoot":"","sources":["../../src/bin/flexsite.ts"],"names":[],"mappings":";;AAEA;;;GAGG;;AAEH,yCAAoC;AACpC,iDAAkD;AAClD,6CAA8C;AAC9C,mDAAoD;AACpD,iDAAkD;AAClD,qDAAsD;AACtD,yDAA0D;AAE1D,qCAAqC;AACrC,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,qBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,iBAAS,CAAC,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,uBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,qBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,yBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,6BAAe,CAAC,CAAC;AAEpC,kBAAkB;AAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,mCAAmC;AACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
{
"name": "@flexsiteio/cli",
"version": "1.0.2",
"version": "1.0.3",
"description": "FlexSite CLI - Command-line tool for managing FlexSite projects",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -107,2 +107,45 @@ # FlexSite CLI

### Composer Migration
Transform `composer.json` from other platforms (Pantheon, Acquia, Platform.sh) to FlexSite format.
```bash
# Check composer.json for FlexSite compatibility
flexsite composer check
# Fix composer.json for FlexSite (interactive)
flexsite composer fix
# Fix with project name specified
flexsite composer fix --name my-project
# Preview changes without modifying files
flexsite composer fix --dry-run
# Create backup before modifying
flexsite composer fix --backup
# Skip adding performance packages
flexsite composer fix --skip-performance
# Specify custom file path
flexsite composer fix -f path/to/composer.json
```
**What `composer fix` does:**
| Change | Description |
|--------|-------------|
| Name | Updates to `flexsite/{project-name}` |
| Repositories | Adds FlexSite package repository, removes platform-specific paths |
| Packages | Removes Pantheon/Acquia packages, adds `flexsite/fs_performance`, `drupal/redis`, `drupal/purge`, `drupal/varnish_purge` |
| Installer paths | Adds `recipes/{$name}` for Drupal recipes, removes Quicksilver |
| Scaffold | Removes platform-specific file mappings |
| Scripts | Removes platform-specific composer scripts |
**Supported platforms:**
- Pantheon (`pantheon-upstreams/drupal-composer-managed`)
- Acquia (`acquia/blt`)
- Platform.sh (`platformsh/config-reader`)
## Local Environment Support

@@ -165,4 +208,6 @@

> **Note:** The `flexsite composer` commands work locally and do not require authentication or any token scopes.
## License
MIT

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet