- 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
50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
import { execSync } from 'node:child_process';
|
|
import { mkdirSync } from 'node:fs';
|
|
|
|
mkdirSync('dist', { recursive: true });
|
|
|
|
// 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'); |