Security hardening release addressing CodeQL and Dependabot alerts: - Fix stack trace exposure in error responses - Add SSRF protection with DNS resolution checking - Implement proper URL hostname validation (replaces substring matching) - Add centralized path sanitization to prevent path traversal - Fix ReDoS vulnerability in email validation regex - Improve HTML sanitization in validation utilities - Fix capability wildcard matching in auth utilities - Update glob dependency to address CVE - Add CodeQL suppression comments for verified false positives 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
91 lines
2.1 KiB
JavaScript
91 lines
2.1 KiB
JavaScript
/** @type {import('tailwindcss').Config} */
|
|
module.exports = {
|
|
content: [
|
|
'./src/pages/**/*.{js,ts,jsx,tsx,mdx}',
|
|
'./src/components/**/*.{js,ts,jsx,tsx,mdx}',
|
|
'./src/app/**/*.{js,ts,jsx,tsx,mdx}',
|
|
],
|
|
theme: {
|
|
extend: {
|
|
typography: {
|
|
DEFAULT: {
|
|
css: {
|
|
'code::before': {
|
|
content: '""',
|
|
},
|
|
'code::after': {
|
|
content: '""',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
colors: {
|
|
gt: {
|
|
white: '#ffffff',
|
|
black: '#000000',
|
|
green: '#00d084',
|
|
gray: {
|
|
50: '#fafbfc',
|
|
100: '#f4f6f8',
|
|
200: '#e8ecef',
|
|
300: '#d1d9e0',
|
|
400: '#9aa5b1',
|
|
500: '#677489',
|
|
600: '#4a5568',
|
|
700: '#2d3748',
|
|
800: '#1a202c',
|
|
900: '#171923',
|
|
},
|
|
},
|
|
},
|
|
fontFamily: {
|
|
sans: [
|
|
'-apple-system',
|
|
'BlinkMacSystemFont',
|
|
'Segoe UI',
|
|
'SF Pro Display',
|
|
'Roboto',
|
|
'Helvetica',
|
|
'Arial',
|
|
'sans-serif',
|
|
],
|
|
mono: [
|
|
'SF Mono',
|
|
'Monaco',
|
|
'Cascadia Code',
|
|
'Roboto Mono',
|
|
'Consolas',
|
|
'monospace',
|
|
],
|
|
},
|
|
animation: {
|
|
'fade-in': 'fadeIn 0.5s ease-in-out',
|
|
'slide-up': 'slideUp 0.3s ease-out',
|
|
'pulse-gentle': 'pulseGentle 2s infinite',
|
|
'neural-pulse': 'neuralPulse 1.5s ease-in-out infinite',
|
|
},
|
|
keyframes: {
|
|
fadeIn: {
|
|
'0%': { opacity: '0' },
|
|
'100%': { opacity: '1' },
|
|
},
|
|
slideUp: {
|
|
'0%': { transform: 'translateY(10px)', opacity: '0' },
|
|
'100%': { transform: 'translateY(0)', opacity: '1' },
|
|
},
|
|
pulseGentle: {
|
|
'0%, 100%': { opacity: '1' },
|
|
'50%': { opacity: '0.7' },
|
|
},
|
|
neuralPulse: {
|
|
'0%, 100%': { opacity: '0.6' },
|
|
'50%': { opacity: '1' },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
plugins: [
|
|
require('@tailwindcss/forms'),
|
|
require('@tailwindcss/typography'),
|
|
],
|
|
}; |