mirror of
https://github.com/Av0idD4rk/firegex.git
synced 2026-10-23 16:31:00 +00:00
`genericapi` ran every response body through `JSON.parse`, falling back to
the raw text only when that threw. The nfproxy filter source is served as a
PlainTextResponse, so a filter file that happens to be valid JSON came back
as a number/array/object. Mantine's CodeHighlight then calls `code.trim()`
on it, which throws and takes the whole page down with it. `42`, `"abc"`,
`[1,2]` and `{"a":1}` are all both valid JSON and valid Python, so they
pass the upload validation and leave the service page unreachable.
Responses declaring text/plain are no longer parsed, and the render site
type-checks the code before handing it to CodeHighlight.
|
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .env.demo | ||
| bun.lock | ||
| index.html | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
Firegex Frontend
The frontend of firegex is written using vite. The routing of the pages is managed by react-router 6 and the graphics is mainly managed by the framework Mantine and icons provided by React Icons. The style of the page is written with sass.
The page is auto-updated by a global timeout and also thanks to socket.io that raise an event triggering all parts of the app that requires fetch updated data from the backend, the update of these data.
