Giancarmine Salucci 767b8a1b37 feat(extraction): enhance thumbnail URL validation with strict HTTP 200 check
- Implement strict HTTP 200 validation (reject all other status codes)
- Add content-type validation (must be image/*)
- Add 10-second timeout protection with AbortController
- Thread progressCallback through all fetchImageAsBase64 calls
- Add detailed logging for each validation failure scenario
- Report validation failures via SSE progress callbacks

Unit tests:
- Add comprehensive test coverage for all validation scenarios
- Test HTTP status codes (200, 404, 403, 500, etc.)
- Test content-type validation (image/* vs text/html, etc.)
- Test timeout behavior with AbortController
- Test error handling (network errors, DNS, SSL, etc.)
- Test progress callback reporting

Integration tests:
- Add tests for complete extraction flow with URL failures
- Test fallback chain behavior (meta tags → poster → Instagram data → screenshot)
- Test real-world scenarios (redirects, query params, different post types)

Documentation:
- Enhanced JSDoc with validation criteria
- Added examples showing fallback behavior
- Documented all failure scenarios and their handling

All tests passing 
2025-12-21 05:33:48 +01:00
fix
2025-12-21 02:03:05 +01:00
2025-11-29 17:34:26 +01:00
fix
2025-12-21 02:03:05 +01:00
2025-11-30 09:06:44 +01:00
2025-11-29 17:34:26 +01:00
fix
2025-12-21 02:03:05 +01:00
2025-11-29 17:34:26 +01:00
2025-11-29 17:34:26 +01:00
2025-11-29 17:34:26 +01:00
2025-11-30 09:06:44 +01:00
2025-11-30 09:06:44 +01:00
2025-11-30 09:06:44 +01:00
2025-11-29 17:34:26 +01:00
fix
2025-12-21 02:03:05 +01:00
2025-11-30 09:06:44 +01:00
fix
2025-12-21 02:03:05 +01:00
fix
2025-12-21 02:03:05 +01:00
2025-11-29 17:34:26 +01:00
2025-11-29 17:34:26 +01:00

sv

Everything you need to build a Svelte project, powered by sv.

Creating a project

If you're seeing this, you've probably already done this step. Congrats!

# create a new project in the current directory
npx sv create

# create a new project in my-app
npx sv create my-app

Developing

Once you've created a project and installed dependencies with npm install (or pnpm install or yarn), start a development server:

npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open

Building

To create a production version of your app:

npm run build

You can preview the production build with npm run preview.

To deploy your app, you may need to install an adapter for your target environment.

Local SSL Development

This project uses HTTPS for local development. The certificates are generated using a local Caddy instance.

To trust the local CA and avoid browser warnings:

  1. Linux (Ubuntu/Debian):

    sudo cp .ssl/root.crt /usr/local/share/ca-certificates/caddy-local.crt
    sudo update-ca-certificates
    
  2. Chrome/Chromium: You might need to import the authority in Chrome settings:

    • Go to chrome://settings/certificates
    • Click "Authorities" -> "Import"
    • Select .ssl/root.crt
    • Check "Trust this certificate for identifying websites"
Description
Async Instagram Recipe Extractor
Readme 2.7 MiB
Languages
TypeScript 73.9%
Svelte 23.2%
JavaScript 1.5%
CSS 1%
Dockerfile 0.3%