
Hono v4 (TypeScript एज वेब फ्रेमवर्क) के लिए Cursor प्लगइन। BAD/CORRECT जोड़ियों के साथ 59 LLM रिग्रेशन। hono ^4.12.19 पर पिन किया गया (CVE-2025-59139 के लिए >= 4.9.7)। Express मिडलवेयर लीकेज, v3-युग के हटाए गए APIs, RPC इन्फ्रेंस ट्रैप, Cloudflare Workers की समस्याएं, सुरक्षा डिफ़ॉल्ट, JSX SSR हार्डनिंग को कवर करता है।
Hono v4 (TypeScript एज वेब फ्रेमवर्क) + TypeScript के लिए Cursor प्लगइन। hono ^4.12.19, @hono/zod-validator ^0.8.0, @hono/zod-openapi ^1.4.0 (पीयर zod ^4.x), @hono/node-server ^2.0.3 (Node 20+) पर पिन किया गया। उन v4 API को सिखाता है जो 2024 से पहले प्रशिक्षित LLM को नहीं पता (c.json() हमेशा टाइप्ड, वैलिडेटर HTTPException फेंकता है, getCookie/setCookie hono/cookie से, c.env एक प्रॉपर्टी के रूप में, streamText hono/streaming से, showRoutes hono/dev से, getRuntimeKey hono/adapter से, fire(app) hono/service-worker से, Workers Static Assets बाइंडिंग बजाय अप्रचलित serveStatic, Deno के लिए JSR @hono/hono)। BAD / CORRECT TypeScript जोड़ियों के साथ 50+ LLM रिग्रेशन को पकड़ता है।
कोई Hono v5 मौजूद नहीं है। नवीनतम स्थिर संस्करण v4.12.19 है। जनरेटेड कोड में कोई भी "v5" भ्रम है।
Hono के स्वयं के अनुरक्षकों ने Issue #3906 ("llm.txt फ़ाइल") और Issue #4812 ("Hono के लिए आधिकारिक AI Agent Skill") दर्ज किए क्योंकि स्पष्ट रूप से "LLM को कोई जानकारी नहीं है कि नवीनतम Hono कैसे काम करता है।" 2025 से पहले का प्रशिक्षण डेटा v3 युग का है। LLM यह उत्सर्जित करते हैं:
c.jsonT() के बजाय c.json() (v4.0.0 से हमेशा टाइप्ड)c.stream() / c.streamText() Context विधियों के रूप में (v4 में hono/streaming में स्थानांतरित)c.env() फ़ंक्शन फ़ॉर्म (अब प्रॉपर्टी; getRuntimeKey() hono/adapter से के माध्यम से रनटाइम पहचान)c.req.cookie() (हटा दिया गया; hono/cookie से getCookie(c) का उपयोग करें)app.showRoutes(), app.routerName (hono/dev में स्थानांतरित)addEventListener('fetch') + app.handleEvent() (Service Worker सिंटैक्स; export default { fetch: app.fetch } का उपयोग करें)app.head(...) रूट्स (HEAD v4 में GET से स्वत: प्राप्त)hono/nextjs इम्पोर्ट (hono/vercel का उपयोग करें)hono/middleware बैरल इम्पोर्ट (प्रति-मिडलवेयर सबपैथ का उपयोग करें)c.req.headers() / c.req.body() / c.req.signal() एक्सेसर विधियाँ (c.req.raw.* का उपयोग करें)FC अंतर्निहित चिल्ड्रन के साथ (PropsWithChildren<P> का उपयोग करें)app.fire() (v4.8.0 में अप्रचलित; hono/service-worker से fire(app) का उपयोग करें)import { Hono } from 'https://deno.land/x/hono/mod.ts' Deno पर (v4.4.0 से पुराना; jsr:@hono/hono का उपयोग करें)c.json() पर return का अभाव (undefined में हल होता है; v4 फेंकता है "Context is not finalized")res.json() / res.send() के बजाय c.json() (Hono में कोई res नहीं है)(req, res, next) मिडलवेयर हस्ताक्षर ((c, next) का उपयोग करें)(err, req, res, next) त्रुटि मिडलवेयर (app.onError + HTTPException का उपयोग करें)app.use(express.json()) बॉडी पार्सर (Hono मांग पर c.req.json() के माध्यम से पार्स करता है)import cors from 'cors' npm से (hono/cors का उपयोग करें)supertest परीक्षणों के लिए (app.request() / testClient(app) का उपयोग करें)c.req.body पहले से पार्स किया गया (यह एक ReadableStream है)c.req.parseBody() JSON के लिए (केवल फ़ॉर्म / मल्टीपार्ट)c.req.text() फिर c.req.json() (बॉडी दो बार खपत)c.userId = ... इनलाइन असाइनमेंट (टाइप्ड Variables के साथ c.set('userId', ...) का उपयोग करें)new Hono() बिना Bindings / Variables जेनेरिक्स (c.env है {})app.get(...) फिर app.post(...)) - RPC प्रकार छोड़ता हैapp.route() कॉल्स स्टेटमेंट के रूप में - वही नियमContext को चारों ओर पास करना (पथ-पैराम अनुमान खो देता है, Hono Best Practices के अनुसार)app.use('/path', zValidator(...)) के बजाय रूट आर्ग के रूप में (TS त्रुटि: 'json' 'never' को असाइन नहीं किया जा सकता)c.notFound() RPC-उपभोग वाले रूट्स में (क्लाइंट पर टाइप नहीं कर सकता)new Response(JSON.stringify(...)) RPC रूट्स में (क्लाइंट unknown देखता है)hc<AppType>('/') सापेक्ष URL ($url() पर फेंकता है)drizzle-orm, fs, नेटिव डेप्स को खींचता है - #1 RPC बंडल-ब्लोट का गड्ढा)createMiddleware<Env> (Variables प्रकार प्रसारित नहीं होते)process.env.X (undefined; टाइप्ड Bindings के साथ c.env.X का उपयोग करें)fs / path इम्पोर्ट (कोई फाइलसिस्टम नहीं)compatibility_flags: ["node_compat"] विरासत फ्लैग (nodejs_compat का उपयोग करें)hono/cloudflare-workers से अप्रचलित serveStatic (v4.3.0 से; एसेट बाइंडिंग का उपयोग करें)c.executionCtx.waitUntil() फायर-एंड-फॉरगेट के लिएif (c.executionCtx) (गेटर Bun और Next.js App Router पर फेंकता है).run() / .first() / .all() (वर्कर समाप्त होने पर इन्सर्ट रद्द हो जाता है)secureHeaders() मिडलवेयर का अभावcsrf() का अभावcors({ origin: '*', credentials: true }) (ब्राउज़र चुपचाप छोड़ देते हैं; AJAX विफल होता है)bodyLimit() का अभाव और CVE-2025-59139 के लिए hono >= 4.9.7 पिन करेंhttpOnly / secure / sameSite / pathsameSite: 'None' बिना secure: true (चुपचाप छोड़ दिया गया)etag() / cache() का अभावstreamText (Workers 128MB कैप)notFound हैंडलर (डेड कोड; केवल शीर्ष-स्तरीय फायर करता है)/users बनाम /users/ डिफ़ॉल्ट रूप से अलग रूट हैं)await next() एक से अधिक बार (डाउनस्ट्रीम कार्य को दोगुना करता है)app.use(prefix, mw) + app.route(prefix, subApp) का ओवरलैप (मिडलवेयर दो बार फायर करता है)app.basePath('/api') स्टेटमेंट के रूप में (प्रीफिक्स प्रकार से हटा दिया जाता है)@hono/node-server पर serve(app) (serve({ fetch: app.fetch }) का उपयोग करें)export default app (export default { fetch: app.fetch } का उपयोग करें)Bun.serve({ fetch: app }) (app.fetch का उपयोग करें)c.req.query() बिना आर्ग के जब एकल मान की उम्मीद होc.req.param('id') (undefined जहाँ पथ में :id नहीं है)@hono/zod-openapi केcors() (कभी मेल नहीं खाता)cursor.directory और awesome-cursorrules (PR #152) पर पहले से कुछ Hono नियम मौजूद हैं: वे c.json() रिटर्न्स, zValidator + Zod, Workers के लिए c.env, RPC के लिए चेन्ड रूट्स, और app.fetch Workers एक्सपोर्ट को कवर करते हैं। उनमें तीन संरचनात्मक समस्याएँ हैं जो यह प्लगइन ठीक करता है: