Files
WooNooW/scripts/package-zip.mjs
Dwindi Ramadhana 07020bc0dd 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
2025-12-26 19:19:49 +07:00

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');