-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.json
More file actions
105 lines (105 loc) · 6.65 KB
/
Copy pathpackage.json
File metadata and controls
105 lines (105 loc) · 6.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
{
"name": "blog",
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"dev:netlify": "netlify dev",
"build": "astro build",
"build:netlify": "netlify build",
"preview": "astro preview",
"astro": "astro",
"test": "vitest run",
"test:watch": "vitest",
"test:ui": "vitest --ui",
"test:coverage": "vitest run --coverage",
"test:blog-images": "vitest run src/components/__tests__/BlogCard.test.js src/components/__tests__/BlogSection.test.js src/components/__tests__/BlogIndexPage.test.js src/components/__tests__/BlogCard.image-display.test.js src/components/__tests__/BlogCard.edge-cases.test.js",
"test:blog-images:watch": "vitest src/components/__tests__/BlogCard.test.js src/components/__tests__/BlogSection.test.js src/components/__tests__/BlogIndexPage.test.js src/components/__tests__/BlogCard.image-display.test.js src/components/__tests__/BlogCard.edge-cases.test.js",
"test:blog-images:coverage": "vitest run --coverage src/components/__tests__/BlogCard.test.js src/components/__tests__/BlogSection.test.js src/components/__tests__/BlogIndexPage.test.js src/components/__tests__/BlogCard.image-display.test.js src/components/__tests__/BlogCard.edge-cases.test.js",
"test:blog-images:runner": "node scripts/run-blog-image-tests.js",
"test:blog-images:runner:coverage": "node scripts/run-blog-image-tests.js --coverage",
"test:blog-images:runner:watch": "node scripts/run-blog-image-tests.js --watch",
"test:analytics": "vitest run src/components/__tests__/TrackingScripts.test.js",
"test:a11y": "node scripts/accessibility-test.js",
"test:a11y:ci": "node scripts/accessibility-test.js --baseUrl http://localhost:4321 --pages /,/blog,/events --outputDir ./accessibility-reports",
"test:a11y:ci-safe": "node scripts/accessibility-test-ci.js",
"a11y:audit": "npm run build && concurrently -k \"npm run preview\" \"wait-on http://localhost:4321 && npm run test:a11y:ci\"",
"test:cross-browser": "node scripts/cross-browser-test.js",
"test:cross-browser:ci": "node scripts/cross-browser-test.js --baseUrl http://localhost:4321 --pages /,/blog,/events --browsers chrome,firefox --devices 'iPhone 12','Pixel 5','iPad Air' --outputDir ./cross-browser-reports",
"cross-browser:audit": "npm run build && npm run preview & sleep 5 && npm run test:cross-browser:ci && kill %1",
"test:security": "node scripts/security-test.js",
"test:security:ci": "node scripts/security-test.js --baseUrl http://localhost:4321 --pages /,/blog,/events --testSuites headers,xss,csrf,input-validation,content-security --outputDir ./security-reports",
"test:security:ci-safe": "node scripts/security-test-ci.js",
"test:ci-orchestrator": "node scripts/ci-test-orchestrator.js",
"security:audit": "npm run build && npm run preview & sleep 5 && npm run test:security:ci && kill %1",
"functions:serve": "netlify functions:serve",
"functions:test": "vitest run netlify/functions/__tests__",
"functions:test:watch": "vitest netlify/functions/__tests__",
"functions:test:integration": "vitest run netlify/functions/__tests__/newsletter.integration.test.ts",
"deploy": "netlify deploy",
"deploy:prod": "netlify deploy --prod --site=$NETLIFY_SITE_ID --dir=dist --functions=netlify/functions",
"deploy:preview": "netlify deploy --site=$NETLIFY_SITE_ID --dir=dist --functions=netlify/functions",
"deploy:preview:ci": "netlify deploy --site=$NETLIFY_SITE_ID --dir=dist --functions=netlify/functions --json",
"deploy:prod:ci": "netlify deploy --prod --site=$NETLIFY_SITE_ID --dir=dist --functions=netlify/functions --json",
"deploy:script": "./scripts/deploy.sh",
"deploy:script:prod": "./scripts/deploy.sh production",
"deploy:quick": "netlify deploy --dir=dist --functions=netlify/functions",
"deploy:quick:prod": "netlify deploy --prod --dir=dist --functions=netlify/functions",
"deploy:safe": "./scripts/deploy.sh preview",
"deploy:safe:prod": "./scripts/deploy.sh production",
"health:check": "curl -f https://hackmum.in/.netlify/functions/health || exit 1",
"health:check:local": "curl -f http://localhost:8888/.netlify/functions/health || exit 1",
"newsletter:test": "curl -X POST http://localhost:8888/.netlify/functions/newsletter -H 'Content-Type: application/json' -d '{\"email\":\"test@example.com\",\"source\":\"test\"}'",
"production:verify": "npm run health:check && npm run newsletter:test:prod",
"newsletter:test:prod": "echo 'Manual newsletter test required in production'",
"lint:functions": "tsc --noEmit netlify/functions/*.ts",
"precommit": "npm run lint:functions && npm run test && npm run functions:test",
"setup:hooks": "node scripts/setup-git-hooks.js",
"postinstall": "npm run setup:hooks",
"verify:blog-image-tests": "node scripts/verify-blog-image-tests.js",
"smoke:test": "node scripts/smoke-test-production.js",
"smoke:test:local": "node scripts/smoke-test-production.js http://localhost:4321",
"smoke:test:preview": "node scripts/smoke-test-production.js http://localhost:4321",
"smoke:test:production": "node scripts/smoke-test-production.js https://hackmum.in",
"test:visual": "node scripts/run-visual-regression.js",
"test:visual:ci": "vitest run src/components/__tests__/BlogImageVisualRegression.deployment.test.js",
"test:visual:ci-safe": "node scripts/run-visual-regression-ci.js",
"test:visual:strict": "vitest run src/components/__tests__/BlogImageVisualRegression.test.js",
"monitor:blog-images": "node scripts/monitor-blog-images.js",
"monitor:blog-images:once": "node scripts/monitor-blog-images.js --once",
"monitor:blog-images:production": "node scripts/monitor-blog-images.js --url https://hackmum.in --interval 300",
"install:playwright": "node scripts/install-playwright.js"
},
"dependencies": {
"@astrojs/check": "^0.9.4",
"@astrojs/image": "^0.18.0",
"@astrojs/mdx": "^4.3.1",
"@tailwindcss/vite": "^4.1.4",
"astro": "^5.12.2",
"daisyui": "^5.0.46",
"rehype-autolink-headings": "^7.1.0",
"rehype-slug": "^6.0.0",
"sanitize-html": "^2.17.0",
"sharp": "^0.34.1",
"tailwindcss": "^4.1.4",
"typescript": "^5.8.3"
},
"devDependencies": {
"@axe-core/playwright": "^4.10.2",
"@netlify/functions": "^2.8.2",
"@tailwindcss/typography": "^0.5.16",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@vitest/ui": "^3.2.4",
"autoprefixer": "^10.4.21",
"axe-core": "^4.8.2",
"cssnano": "^7.1.0",
"happy-dom": "^18.0.1",
"jsdom": "^26.1.0",
"netlify-cli": "^23.0.0",
"playwright": "^1.54.2",
"prettier": "^3.6.2",
"prettier-plugin-tailwindcss": "^0.6.14",
"vitest": "^3.2.4"
}
}