You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: API size limits, decompression guard, lint CI step
- Add per-line (10k chars) and total (80k chars) text size limits to /api/align POST and GET
- Add 2 MB decompression bomb guard in inflateBase64url (codec.ts)
- Derive palette validation from PALETTES constant instead of duplicating the set
- Add typecheck (npm run check) and lint (npm run lint) steps to CI
- Run prettier --write across all files to fix pre-existing formatting
- Fix all 12 pre-existing ESLint errors: unused import, useless mustaches, missing
each-block keys, bare expression (void tipPortalEl), preserve-caught-error
- Configure svelte/no-navigation-without-resolve with ignoreLinks: true
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|`OBJECT_STORAGE_ORIGIN_ENDPOINT`| yes | S3 API origin (upload only), e.g. `fra1.digitaloceanspaces.com`|
44
+
|`OBJECT_STORAGE_CDN_ENDPOINT`| yes\*| CDN host for **site**`<img>` / OG URLs, e.g. `fra1.cdn.digitaloceanspaces.com`|
45
+
|`OBJECT_STORAGE_PREFIX`| no | Object key prefix, default `examples`|
46
+
|`OBJECT_STORAGE_PUBLIC_BASE`| no | Override full public CDN base URL (no trailing slash)|
47
+
|`PREVIEW_URL`| no | If set, skip starting `vite preview` (use existing server)|
48
+
|`PREVIEW_PORT`| no | Default `4173` when script starts preview|
49
49
50
50
\* Not required if `OBJECT_STORAGE_PUBLIC_BASE` is set.
51
51
@@ -55,12 +55,12 @@ Upload sets **`ACL: public-read`** on each object (per-file, not bucket-wide). T
55
55
56
56
Objects use `Cache-Control: immutable`, so the CDN keeps old PNGs until purged. After upload, the script can call the [DigitalOcean CDN purge API](https://docs.digitalocean.com/products/spaces/how-to/manage-cdn-cache/) when a **Personal Access Token** is set (this is **not** the Spaces S3 access key):
57
57
58
-
| Variable | Required | Description |
59
-
|----------|----------|-------------|
60
-
|`DIGITALOCEAN_API_TOKEN` or `DO_API_TOKEN`| for purge | DO control-plane PAT |
61
-
|`DO_CDN_ENDPOINT_ID`| no | CDN endpoint UUID; auto-resolved from bucket + origin if omitted |
62
-
|`OBJECT_STORAGE_CDN_PURGE`| no | Set to `0` to skip purge |
63
-
|`OBJECT_STORAGE_CDN_PURGE_PATHS`| no | Comma-separated paths, default `examples/*`|
0 commit comments