Commite7e240eunknown_key
fix(types): lowercase form method attributes (batch 4: 35 errors cleared)
fix(types): lowercase form method attributes (batch 4: 35 errors cleared) Pure type-only fix: JSX <form method="POST"|"GET"> now lowercase to satisfy Hono/SolidJS HTMLAttributeFormMethod typing. Runtime behaviour preserved — HTTP method tokens are case-insensitive per RFC 7230. Note: touches locked files src/routes/notifications.tsx, src/routes/oauth.tsx (B6), src/routes/orgs.tsx (B1), src/routes/packages.tsx (C2), src/routes/pages.tsx (C3), src/routes/passkeys.tsx (B5), src/routes/projects.tsx (E1), src/routes/protected-tags.tsx (E7), src/routes/pulls.tsx, src/routes/releases.tsx, src/routes/repo-settings.tsx for type-only method-casing fix; runtime behaviour preserved (HTTP method case-insensitive per RFC 7230). https://claude.ai/code/session_0155D2jj2kJXaMEnyJhRpRLg
11 files changed+35−35e7e240e3654b6b87357d6df1747268a21f0f8534
11 changed files+35−35
Modifiedsrc/routes/notifications.tsx+3−3View fileUnifiedSplit
@@ -154,7 +154,7 @@ notificationsRoute.get("/notifications", requireAuth, async (c) => {
154154 <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px">
155155 <h2>Notifications</h2>
156156 {unreadCount > 0 && (
157 <form method="POST" action="/notifications/read-all">
157 <form method="post" action="/notifications/read-all">
158158 <button type="submit" class="btn btn-sm">
159159 Mark all as read
160160 </button>
@@ -223,7 +223,7 @@ notificationsRoute.get("/notifications", requireAuth, async (c) => {
223223 </div>
224224 <div class="notification-actions">
225225 {unread && (
226 <form method="POST" action={`/notifications/${n.id}/read`}>
226 <form method="post" action={`/notifications/${n.id}/read`}>
227227 <button
228228 type="submit"
229229 class="btn btn-sm"
@@ -233,7 +233,7 @@ notificationsRoute.get("/notifications", requireAuth, async (c) => {
233233 </button>
234234 </form>
235235 )}
236 <form method="POST" action={`/notifications/${n.id}/delete`}>
236 <form method="post" action={`/notifications/${n.id}/delete`}>
237237 <button
238238 type="submit"
239239 class="btn btn-sm"
Modifiedsrc/routes/oauth.tsx+2−2View fileUnifiedSplit
@@ -232,7 +232,7 @@ oauth.get("/oauth/authorize", async (c) => {
232232 You can revoke access at any time from{" "}
233233 <a href="/settings/authorizations">Authorized applications</a>.
234234 </p>
235 <form method="POST" action="/oauth/authorize/decision">
235 <form method="post" action="/oauth/authorize/decision">
236236 <input type="hidden" name="client_id" value={clientId} />
237237 <input type="hidden" name="redirect_uri" value={redirectUri} />
238238 <input type="hidden" name="response_type" value={responseType} />
@@ -722,7 +722,7 @@ oauth.get("/settings/authorizations", async (c) => {
722722 </div>
723723 </div>
724724 <form
725 method="POST"
725 method="post"
726726 action={`/settings/authorizations/${token.appId}/revoke`}
727727 onsubmit="return confirm('Revoke access for this application?')"
728728 >
Modifiedsrc/routes/orgs.tsx+8−8View fileUnifiedSplit
@@ -172,7 +172,7 @@ orgs.get("/orgs/new", async (c) => {
172172 invite teammates after creation.
173173 </p>
174174 {error && <div class="auth-error">{decodeURIComponent(error)}</div>}
175 <form method="POST" action="/orgs/new">
175 <form method="post" action="/orgs/new">
176176 <div class="form-group">
177177 <label for="slug">Slug</label>
178178 <input
@@ -465,7 +465,7 @@ orgs.get("/orgs/:slug/people", async (c) => {
465465
466466 {canAdmin && (
467467 <form
468 method="POST"
468 method="post"
469469 action={`/orgs/${org.slug}/people/add`}
470470 style="display: flex; gap: 8px; margin-bottom: 16px"
471471 >
@@ -508,7 +508,7 @@ orgs.get("/orgs/:slug/people", async (c) => {
508508 <div style="display: flex; gap: 8px; align-items: center">
509509 {canOwner && m.userId !== user.id ? (
510510 <form
511 method="POST"
511 method="post"
512512 action={`/orgs/${org.slug}/people/${m.userId}/role`}
513513 style="display: flex; gap: 4px"
514514 >
@@ -537,7 +537,7 @@ orgs.get("/orgs/:slug/people", async (c) => {
537537 )}
538538 {canAdmin && m.userId !== user.id && (
539539 <form
540 method="POST"
540 method="post"
541541 action={`/orgs/${org.slug}/people/${m.userId}/remove`}
542542 style="display: inline"
543543 onsubmit="return confirm('Remove this member?')"
@@ -776,7 +776,7 @@ orgs.get("/orgs/:slug/teams", async (c) => {
776776
777777 {canAdmin && (
778778 <form
779 method="POST"
779 method="post"
780780 action={`/orgs/${org.slug}/teams/new`}
781781 style="display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; margin-bottom: 16px"
782782 >
@@ -938,7 +938,7 @@ orgs.get("/orgs/:slug/teams/:teamSlug", async (c) => {
938938
939939 {canAdmin && (
940940 <form
941 method="POST"
941 method="post"
942942 action={`/orgs/${org.slug}/teams/${team.slug}/members/add`}
943943 style="display: flex; gap: 8px; margin-bottom: 16px"
944944 >
@@ -984,7 +984,7 @@ orgs.get("/orgs/:slug/teams/:teamSlug", async (c) => {
984984 </span>
985985 {canAdmin && (
986986 <form
987 method="POST"
987 method="post"
988988 action={`/orgs/${org.slug}/teams/${team.slug}/members/${m.userId}/remove`}
989989 style="display: inline"
990990 >
@@ -1157,7 +1157,7 @@ orgs.get("/orgs/:slug/repos/new", async (c) => {
11571157 </div>
11581158 <h2>Create repository in {org.name}</h2>
11591159 {error && <div class="auth-error">{decodeURIComponent(error)}</div>}
1160 <form method="POST" action={`/orgs/${org.slug}/repos/new`}>
1160 <form method="post" action={`/orgs/${org.slug}/repos/new`}>
11611161 <div class="form-group">
11621162 <label for="name">Repository name</label>
11631163 <input
Modifiedsrc/routes/packages.tsx+1−1View fileUnifiedSplit
@@ -378,7 +378,7 @@ ui.get("/:owner/:repo/packages/:pkgName{.+}", async (c) => {
378378 </a>
379379 {isOwner && !v.yanked && (
380380 <form
381 method="POST"
381 method="post"
382382 action={`/api/packages/${owner}/${repo}/${encodeURIComponent(fullName)}/${v.version}/yank`}
383383 onsubmit="return confirm('Yank this version? It will still download, but will be flagged as yanked.')"
384384 style="margin: 0"
Modifiedsrc/routes/pages.tsx+2−2View fileUnifiedSplit
@@ -269,7 +269,7 @@ pagesRoute.get(
269269 </div>
270270
271271 <form
272 method="POST"
272 method="post"
273273 action={`/${ownerName}/${repoName}/settings/pages`}
274274 >
275275 <div class="form-group">
@@ -327,7 +327,7 @@ pagesRoute.get(
327327 >
328328 <h3>Recent deployments</h3>
329329 <form
330 method="POST"
330 method="post"
331331 action={`/${ownerName}/${repoName}/settings/pages/redeploy`}
332332 style="display: inline"
333333 >
Modifiedsrc/routes/passkeys.tsx+2−2View fileUnifiedSplit
@@ -119,7 +119,7 @@ passkeys.get("/settings/passkeys", async (c) => {
119119 </div>
120120 <div style="display: flex; gap: 6px">
121121 <form
122 method="POST"
122 method="post"
123123 action={`/settings/passkeys/${k.id}/rename`}
124124 style="display: flex; gap: 4px"
125125 >
@@ -135,7 +135,7 @@ passkeys.get("/settings/passkeys", async (c) => {
135135 </button>
136136 </form>
137137 <form
138 method="POST"
138 method="post"
139139 action={`/settings/passkeys/${k.id}/delete`}
140140 onsubmit="return confirm('Remove this passkey?')"
141141 >
Modifiedsrc/routes/projects.tsx+6−6View fileUnifiedSplit
@@ -150,7 +150,7 @@ projectRoutes.get(
150150 <RepoHeader owner={ownerName} repo={repoName} />
151151 <h2 style="margin-top: 20px;">Create a project</h2>
152152 <form
153 method="POST"
153 method="post"
154154 action={`/${ownerName}/${repoName}/projects`}
155155 style="display: flex; flex-direction: column; gap: 12px; margin-top: 16px;"
156156 >
@@ -291,7 +291,7 @@ projectRoutes.get(
291291 </h1>
292292 {user && (
293293 <form
294 method="POST"
294 method="post"
295295 action={`/${ownerName}/${repoName}/projects/${project.number}/close`}
296296 style="display: inline;"
297297 >
@@ -331,7 +331,7 @@ projectRoutes.get(
331331 .filter((oc) => oc.id !== col.id)
332332 .map((oc) => (
333333 <form
334 method="POST"
334 method="post"
335335 action={`/${ownerName}/${repoName}/projects/${project.number}/items/${it.id}/move`}
336336 >
337337 <input
@@ -349,7 +349,7 @@ projectRoutes.get(
349349 </form>
350350 ))}
351351 <form
352 method="POST"
352 method="post"
353353 action={`/${ownerName}/${repoName}/projects/${project.number}/items/${it.id}/delete`}
354354 >
355355 <button
@@ -366,7 +366,7 @@ projectRoutes.get(
366366 ))}
367367 {user && (
368368 <form
369 method="POST"
369 method="post"
370370 action={`/${ownerName}/${repoName}/projects/${project.number}/items`}
371371 style="margin-top: 8px; display: flex; flex-direction: column; gap: 4px;"
372372 >
@@ -392,7 +392,7 @@ projectRoutes.get(
392392 {user && (
393393 <div class="kcol" style="background: transparent; border-style: dashed;">
394394 <form
395 method="POST"
395 method="post"
396396 action={`/${ownerName}/${repoName}/projects/${project.number}/columns`}
397397 style="display: flex; flex-direction: column; gap: 8px;"
398398 >
Modifiedsrc/routes/protected-tags.tsx+2−2View fileUnifiedSplit
@@ -108,7 +108,7 @@ protectedTagsRoutes.get(
108108 </div>
109109 </div>
110110 <form
111 method="POST"
111 method="post"
112112 action={`/${owner}/${repo}/settings/protected-tags/${t.id}/delete`}
113113 onsubmit="return confirm('Remove protection for this pattern?')"
114114 >
@@ -122,7 +122,7 @@ protectedTagsRoutes.get(
122122 </div>
123123
124124 <form
125 method="POST"
125 method="post"
126126 action={`/${owner}/${repo}/settings/protected-tags`}
127127 class="panel"
128128 style="padding:16px"
Modifiedsrc/routes/pulls.tsx+2−2View fileUnifiedSplit
@@ -255,7 +255,7 @@ pulls.get(
255255 {error && (
256256 <div class="auth-error">{decodeURIComponent(error)}</div>
257257 )}
258 <form method="POST" action={`/${ownerName}/${repoName}/pulls/new`}>
258 <form method="post" action={`/${ownerName}/${repoName}/pulls/new`}>
259259 <div style="display: flex; gap: 12px; align-items: center; margin-bottom: 16px">
260260 <select name="base" style="padding: 6px 12px; background: var(--bg-tertiary); border: 1px solid var(--border); border-radius: var(--radius); color: var(--text); font-size: 13px">
261261 {branches.map((b) => (
@@ -629,7 +629,7 @@ pulls.get("/:owner/:repo/pulls/:number", softAuth, async (c) => {
629629 {user && pr.state === "open" && (
630630 <div style="margin-top: 20px">
631631 <form
632 method="POST"
632 method="post"
633633 action={`/${ownerName}/${repoName}/pulls/${pr.number}/comment`}
634634 >
635635 <div class="form-group">
Modifiedsrc/routes/releases.tsx+2−2View fileUnifiedSplit
@@ -161,7 +161,7 @@ releasesRoute.get("/:owner/:repo/releases", async (c) => {
161161 )}
162162 {user && user.id === repoRow.ownerId && (
163163 <form
164 method="POST"
164 method="post"
165165 action={`/${owner}/${repo}/releases/${encodeURIComponent(r.tag)}/delete`}
166166 style="margin-top: 12px"
167167 onsubmit="return confirm('Delete this release?')"
@@ -208,7 +208,7 @@ releasesRoute.get("/:owner/:repo/releases/new", requireAuth, async (c) => {
208208 <h3>Draft a new release</h3>
209209 {error && <div class="auth-error">{decodeURIComponent(error)}</div>}
210210 <form
211 method="POST"
211 method="post"
212212 action={`/${owner}/${repo}/releases`}
213213 style="max-width: 700px"
214214 >
Modifiedsrc/routes/repo-settings.tsx+5−5View fileUnifiedSplit
@@ -67,7 +67,7 @@ repoSettings.get("/:owner/:repo/settings", requireAuth, async (c) => {
6767 )}
6868
6969 <form
70 method="POST"
70 method="post"
7171 action={`/${ownerName}/${repoName}/settings`}
7272 >
7373 <div class="form-group">
@@ -134,7 +134,7 @@ repoSettings.get("/:owner/:repo/settings", requireAuth, async (c) => {
134134 : "Mark this repository as a template so others can seed new repositories from its files."}
135135 </p>
136136 <form
137 method="POST"
137 method="post"
138138 action={`/${ownerName}/${repoName}/settings/template`}
139139 >
140140 <input
@@ -159,7 +159,7 @@ repoSettings.get("/:owner/:repo/settings", requireAuth, async (c) => {
159159 accept or decline the transfer by attempting to view it.
160160 </p>
161161 <form
162 method="POST"
162 method="post"
163163 action={`/${ownerName}/${repoName}/settings/transfer`}
164164 onsubmit="return confirm('Transfer this repository? The new owner will have full control.')"
165165 >
@@ -188,7 +188,7 @@ repoSettings.get("/:owner/:repo/settings", requireAuth, async (c) => {
188188 : "Mark this repository as archived. It will become read-only — no pushes, no new issues or PRs. You can unarchive at any time."}
189189 </p>
190190 <form
191 method="POST"
191 method="post"
192192 action={`/${ownerName}/${repoName}/settings/archive`}
193193 >
194194 <input
@@ -210,7 +210,7 @@ repoSettings.get("/:owner/:repo/settings", requireAuth, async (c) => {
210210 Permanently delete this repository and all its data.
211211 </p>
212212 <form
213 method="POST"
213 method="post"
214214 action={`/${ownerName}/${repoName}/settings/delete`}
215215 onsubmit="return confirm('Are you sure? This cannot be undone.')"
216216 >
217217