Skip to content

Commit be993f9

Browse files
authored
Update dependencies (#421)
1 parent daaca5e commit be993f9

File tree

4 files changed

+10308
-8845
lines changed

4 files changed

+10308
-8845
lines changed

CLAUDE.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,27 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
55
## Common Commands
66

77
### Development
8+
89
- `npm run dev` - Start development server with watch mode for formatting and linting
910
- `npm start` - Start Astro development server only
1011
- `astro dev` - Direct Astro development server (runs on port 4321)
1112
- `netlify dev` - Run with Netlify edge functions (runs on port 8888)
1213

1314
### Building and Deployment
15+
1416
- `npm run build` - Run checks, build the site, and upload source maps to Sentry
1517
- `npm run preview` - Preview the built site locally
1618
- `astro build` - Build the site without additional steps
1719

1820
### Code Quality
21+
1922
- `npm run check` - Check code formatting with Prettier
2023
- `npm run format` - Format code with Prettier
2124
- `npm run lint` - Lint and auto-fix with ESLint
2225
- `npm run check:watch` - Watch mode for formatting and linting
2326

2427
### Testing
28+
2529
- `npm test` or `npx playwright test` - Run all Playwright tests
2630
- `npm run test:ui` or `npx playwright test --ui` - Run tests in interactive UI mode
2731
- Tests run against `http://localhost:8888` by default (Netlify dev server)
@@ -30,6 +34,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
3034
## Architecture Overview
3135

3236
### Technology Stack
37+
3338
- **Framework**: Astro 5.x with server-side rendering
3439
- **Frontend**: Vue 3 components with TypeScript
3540
- **UI Components**: Shoelace web components
@@ -41,45 +46,54 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
4146
### Key Architecture Patterns
4247

4348
#### Hybrid Rendering
49+
4450
- Astro handles static rendering with selective client-side hydration
4551
- Vue components are hydrated only when interactivity is needed
4652
- Server adapter configured for Netlify deployment
4753

4854
#### Data Flow
55+
4956
- Events fetched from Sanity CMS via Netlify edge functions (`/api/get-events`, `/api/get-books`)
5057
- Client-side state management using Vue's reactive system
5158
- Timezone conversion and localization handled by edge functions using Day.js
5259

5360
#### Component Structure
61+
5462
- **Layout**: Single `default.astro` layout with theme switching and meta tags
5563
- **Pages**: Astro pages in `src/pages/` (index, accessibility, curation-policy, past-events)
5664
- **Components**: Vue components for interactive elements (filtering, events display)
5765
- **Stores**: Vue reactive stores for filters and user preferences
5866

5967
### State Management
68+
6069
- `filtersStore.ts`: Event filtering, CFS status, attendance mode, cost filtering
6170
- `userStore.ts`: User preferences (theme, timezone)
6271
- Local storage persistence for user preferences
6372

6473
### Styling Architecture
74+
6575
- CSS custom properties for theming (light/dark modes)
6676
- Utility-first approach with CSS utility classes
6777
- Shoelace component theming
6878
- Theme switching handled by inline script to prevent FOUC
6979

7080
### Edge Functions
81+
7182
Located in `netlify/edge-functions/`:
83+
7284
- `get-events.ts`: Fetches and processes events from Sanity
7385
- `get-books.ts`: Fetches book releases
7486
- `get-user-info.ts`: User location/timezone detection
7587

7688
### Content Types
89+
7790
- **Events**: Regular accessibility events with CFS, attendance modes, costs
7891
- **Deadlines**: Call for speakers deadlines
7992
- **Awareness Days**: Accessibility awareness days/weeks
8093
- **Books**: Book releases related to accessibility
8194

8295
### Testing Strategy
96+
8397
- Comprehensive E2E testing with Playwright
8498
- Accessibility testing integrated via @axe-core/playwright
8599
- Tests cover filtering, theme switching, timezone selection, and core user flows
@@ -88,14 +102,17 @@ Located in `netlify/edge-functions/`:
88102
## Development Notes
89103

90104
### Environment Variables
105+
91106
- `SENTRY_AUTH_TOKEN`: Required for source map uploads
92107
- `PLAYWRIGHT_TEST_BASE_URL`: Override test target URL
93108

94109
### Browser Support
110+
95111
- Primary testing on Chromium
96112
- Custom element support required for Shoelace components
97113

98114
### Accessibility Requirements
115+
99116
- All pages must conform to WCAG 2.2 Level AA
100117
- Regular accessibility testing with automated and manual methods
101-
- Skip link implementation and proper semantic markup
118+
- Skip link implementation and proper semantic markup

eslint.config.mjs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,29 @@ import pluginVue from 'eslint-plugin-vue';
66
/** @type {import('eslint').Linter.Config[]} */
77
export default [
88
{ files: ['**/*.{js,mjs,cjs,ts,vue}'] },
9-
{ languageOptions: { globals: globals.browser } },
9+
{
10+
ignores: [
11+
'dist/**',
12+
'.astro/**',
13+
'coverage/**',
14+
'playwright-report/**',
15+
'test-results/**',
16+
'node_modules/**',
17+
],
18+
},
19+
{ languageOptions: { globals: { ...globals.browser, ...globals.node } } },
1020
pluginJs.configs.recommended,
1121
...tseslint.configs.recommended,
1222
...pluginVue.configs['flat/essential'],
1323
{
1424
files: ['**/*.vue'],
1525
languageOptions: { parserOptions: { parser: tseslint.parser } },
26+
rules: {
27+
'vue/multi-word-component-names': 'off',
28+
},
29+
},
30+
{
31+
files: ['**/*.config.{js,mjs}', '**/*.config.ts'],
32+
languageOptions: { globals: globals.node },
1633
},
1734
];

0 commit comments

Comments
 (0)