Compare commits

..

5 Commits

Author SHA1 Message Date
regalijan 3041d8cd27 Handle missing signature values
Test, Build, Deploy / Test, Build, and Deploy (push) Successful in 1m8s
Test, Build, Deploy / Create Sentry Release (push) Successful in 6s
2026-07-02 00:46:24 -04:00
regalijan 4451c192d2 Correct response code + user id property
Test, Build, Deploy / Test, Build, and Deploy (push) Successful in 1m32s
Test, Build, Deploy / Create Sentry Release (push) Successful in 8s
2026-07-02 00:38:37 -04:00
regalijan b33bf757e2 Bump node version 2026-07-02 00:38:18 -04:00
regalijan 10c1e741a9 Bump dependencies 2026-07-02 00:38:00 -04:00
regalijan b3e5a46a2e *sigh*
Test, Build, Deploy / Test, Build, and Deploy (push) Successful in 1m15s
Test, Build, Deploy / Create Sentry Release (push) Successful in 7s
2026-06-30 22:03:32 -04:00
5 changed files with 503 additions and 905 deletions
+1 -1
View File
@@ -1 +1 @@
v24.15.0
v24.18.0
@@ -1,4 +1,11 @@
import { Button, Card, Container, Heading, Text, VStack } from "@chakra-ui/react";
import {
Button,
Card,
Container,
Heading,
Text,
VStack,
} from "@chakra-ui/react";
export default function () {
return (
@@ -7,7 +14,10 @@ export default function () {
<VStack alignContent="center" gap="2vh">
<Heading>Transfer Failed</Heading>
<br />
<Text>You verified with the same account that you submitted this request from. Please try again, and remember to switch accounts.</Text>
<Text>
You verified with the same account that you submitted this request
from. Please try again, and remember to switch accounts.
</Text>
<br />
<Button
as="a"
@@ -21,4 +31,4 @@ export default function () {
</Card>
</Container>
);
}
}
+5 -3
View File
@@ -10,7 +10,7 @@ export async function onRequestPost(context: RequestContext) {
const sigHeader = context.request.headers.get("roblox-signature");
if (!sigHeader) return jsonError("Missing signature", 401);
if (!sigHeader) return jsonError("Missing signature header", 400);
const [timestamp, sig] = sigHeader.split(",");
@@ -20,6 +20,8 @@ export async function onRequestPost(context: RequestContext) {
)
return jsonError("This request is stale", 406);
if (!sig) return jsonError("Missing signature value", 401);
const textEncode = (text: string) => new TextEncoder().encode(text);
const key = await crypto.subtle.importKey(
"raw",
@@ -40,7 +42,7 @@ export async function onRequestPost(context: RequestContext) {
textEncode(`${timestamp.replace("t=", "")}.${body}`),
))
)
return jsonError("Invalid signature", 403);
return jsonError("Invalid signature", 401);
const data = JSON.parse(body);
@@ -53,7 +55,7 @@ export async function onRequestPost(context: RequestContext) {
return jsonError("Invalid event type", 400);
const { prisma } = context.data;
const userId = data.EventPrisma.UserId;
const userId = data.EventPayload.UserId;
if (typeof userId !== "number") return jsonError("Invalid user id", 400);
+469 -883
View File
File diff suppressed because it is too large Load Diff
+15 -15
View File
@@ -10,37 +10,37 @@
"publish": "remix build --sourcemap && wrangler pages deploy --upload-source-maps public"
},
"dependencies": {
"@chakra-ui/react": "^2.10.9",
"@chakra-ui/react": "^2.10.10",
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.1",
"@fontsource-variable/plus-jakarta-sans": "^5.2.8",
"@prisma/adapter-d1": "^7.8.0",
"@prisma/client": "^7.8.0",
"@remix-run/cloudflare": "^2.17.4",
"@remix-run/cloudflare-pages": "^2.17.4",
"@remix-run/react": "^2.17.4",
"@sentry/cloudflare": "^10.52.0",
"@sentry/remix": "^10.52.0",
"@remix-run/cloudflare": "^2.17.5",
"@remix-run/cloudflare-pages": "^2.17.5",
"@remix-run/react": "^2.17.5",
"@sentry/cloudflare": "^10.63.0",
"@sentry/remix": "^10.63.0",
"aws4fetch": "^1.0.20",
"dayjs": "^1.11.20",
"framer-motion": "^12.38.0",
"dayjs": "^1.11.21",
"framer-motion": "^12.42.2",
"react": "^18.3.1",
"react-big-calendar": "^1.19.4",
"react-big-calendar": "^1.20.0",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@remix-run/dev": "^2.17.4",
"@types/node": "^24.12.3",
"@types/react": "^18.3.28",
"@remix-run/dev": "^2.17.5",
"@types/node": "^24.13.2",
"@types/react": "^18.3.31",
"@types/react-big-calendar": "^1.16.3",
"@types/react-dom": "^18.3.7",
"dotenv": "^17.4.1",
"prettier": "^3.8.3",
"dotenv": "^17.4.2",
"prettier": "^3.9.4",
"prisma": "^7.8.0",
"typescript": "^5.9.3"
},
"overrides": {
"@cloudflare/workers-types": "^4.20260511.1"
"@cloudflare/workers-types": "^4.20260702.1"
},
"prettier": {
"endOfLine": "auto"