feat: Implement centralized module management system
- Add ModuleRegistry for managing built-in modules (newsletter, wishlist, affiliate, subscription, licensing) - Add ModulesController REST API for module enable/disable - Create Modules settings page with category grouping and toggle controls - Integrate module checks across admin-spa and customer-spa - Add useModules hook for both SPAs to check module status - Hide newsletter from footer builder when module disabled - Hide wishlist features when module disabled (product cards, account menu, wishlist page) - Protect wishlist API endpoints with module checks - Auto-update navigation tree when modules toggled - Clean up obsolete documentation files - Add comprehensive documentation: - MODULE_SYSTEM_IMPLEMENTATION.md - MODULE_INTEGRATION_SUMMARY.md - ADDON_MODULE_INTEGRATION.md (proposal) - ADDON_MODULE_DESIGN_DECISIONS.md (design doc) - FEATURE_ROADMAP.md - SHIPPING_INTEGRATION.md Module system provides: - Centralized enable/disable for all features - Automatic navigation updates - Frontend/backend integration - Foundation for addon-module unification
This commit is contained in:
@@ -3,6 +3,48 @@ import { mkdirSync } from 'node:fs';
|
||||
|
||||
mkdirSync('dist', { recursive: true });
|
||||
|
||||
execSync('zip -r dist/woonoow.zip . -x "**/.DS_Store"', { stdio: 'inherit' });
|
||||
// Only include production files, exclude dev dependencies and source files
|
||||
const excludes = [
|
||||
'*.zip',
|
||||
'.git/*',
|
||||
'.gitignore',
|
||||
'node_modules/*',
|
||||
'vendor/*',
|
||||
'admin-spa/node_modules/*',
|
||||
'admin-spa/src/*',
|
||||
'admin-spa/.eslintrc.cjs',
|
||||
'admin-spa/tsconfig.json',
|
||||
'admin-spa/tsconfig.node.json',
|
||||
'admin-spa/vite.config.ts',
|
||||
'admin-spa/package.json',
|
||||
'admin-spa/package-lock.json',
|
||||
'customer-spa/node_modules/*',
|
||||
'customer-spa/src/*',
|
||||
'customer-spa/.eslintrc.cjs',
|
||||
'customer-spa/tsconfig.json',
|
||||
'customer-spa/tsconfig.node.json',
|
||||
'customer-spa/vite.config.ts',
|
||||
'customer-spa/package.json',
|
||||
'customer-spa/package-lock.json',
|
||||
'scripts/*',
|
||||
'dist/*',
|
||||
'references/*',
|
||||
'.vscode/*',
|
||||
'.idea/*',
|
||||
'*.log',
|
||||
'*.tmp',
|
||||
'*.temp',
|
||||
'.DS_Store',
|
||||
'Thumbs.db',
|
||||
'.env',
|
||||
'.env.local',
|
||||
'package.json',
|
||||
'package-lock.json',
|
||||
'composer.json',
|
||||
'composer.lock',
|
||||
'*.md',
|
||||
].map(pattern => `-x "${pattern}"`).join(' ');
|
||||
|
||||
execSync(`zip -r dist/woonoow.zip . ${excludes}`, { stdio: 'inherit' });
|
||||
|
||||
console.log('✅ Packed: dist/woonoow.zip');
|
||||
Reference in New Issue
Block a user