Major improvements to WooNooW Page Editor system: Schema & Architecture: - Canonical section schema with unified sectionSchema.ts - Normalized feature-grid to use items (not features) - Standardized default values across all section types - Schema versioning with automatic migration on read Backend (PHP): - Enhanced PlaceholderRenderer with typed output contracts - Added fallback behavior for empty/invalid dynamic sources - Added caching support for post data resolution - New SchemaMigration class for backward compatibility - New Features class for feature flags - Enhanced PageSSR with full style support - Removed controller-level special-casing for related_posts Frontend (Admin SPA): - Updated CanvasRenderer with schema-aware transformation - Enhanced InspectorPanel with canonical schema metadata - Added new section renderers Frontend (Customer SPA): - New section components: BentoCategoryGrid, MarqueeBanner, ProductCarousel, ShoppableImage - Updated FeatureGridSection for items prop contract Testing: - Add PHP tests: SchemaMigrationTest, PlaceholderRendererTest, PageSSRTest - Add TypeScript tests: schema-integration, feature-grid-regression - Add parity tests for React vs SSR content matching - Add CI script: check-schema-drift.mjs - Add VERIFICATION_CHECKLIST.md Documentation: - RELEASE_NOTES-v1.0.md with full release notes - docs/PAGE_EDITOR_SECTION_SCHEMA_V1.md - docs/PAGE_EDITOR_SSR_COVERAGE_AUDIT.md
33 lines
994 B
TypeScript
33 lines
994 B
TypeScript
import react from '@vitejs/plugin-react';
|
|
import { defineConfig } from 'vite';
|
|
import fs from 'node:fs';
|
|
import path from 'node:path';
|
|
|
|
const key = fs.readFileSync(path.resolve(__dirname, '.cert/woonoow.local-key.pem'));
|
|
const cert = fs.readFileSync(path.resolve(__dirname, '.cert/woonoow.local-cert.pem'));
|
|
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
resolve: {
|
|
alias: { '@': path.resolve(__dirname, './src') },
|
|
dedupe: ['react', 'react-dom', 'react-router', 'react-router-dom', 'lucide-react', '@tanstack/react-query']
|
|
},
|
|
server: {
|
|
host: 'woonoow.local',
|
|
port: 5173,
|
|
strictPort: true,
|
|
https: { key, cert },
|
|
cors: true,
|
|
origin: 'https://woonoow.local:5173',
|
|
hmr: { protocol: 'wss', host: 'woonoow.local', port: 5173 }
|
|
},
|
|
build: {
|
|
outDir: 'dist',
|
|
emptyOutDir: true,
|
|
manifest: true,
|
|
rollupOptions: {
|
|
input: { app: 'src/main.tsx' },
|
|
output: { entryFileNames: 'app.js', assetFileNames: 'app.[ext]' }
|
|
}
|
|
}
|
|
}); |