diff --git a/package.json b/package.json index 8360c25eb..0b074205c 100644 --- a/package.json +++ b/package.json @@ -65,4 +65,4 @@ "typescript": "^5.2.2" }, "packageManager": "yarn@4.0.2" -} \ No newline at end of file +} diff --git a/packages/bun-transpiler/package.json b/packages/bun-transpiler/package.json index 2a157a50c..5c23bdc90 100644 --- a/packages/bun-transpiler/package.json +++ b/packages/bun-transpiler/package.json @@ -36,7 +36,7 @@ }, "devDependencies": { "@types/bun": "^1.0.0", - "hono": "^3.11.7", + "hono": "^4.5.1", "tsup": "^8.0.1", "vitest": "^1.0.4" }, diff --git a/packages/clerk-auth/package.json b/packages/clerk-auth/package.json index 85b20bab5..4e2ce477b 100644 --- a/packages/clerk-auth/package.json +++ b/packages/clerk-auth/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@clerk/backend": "^1.0.0", "@types/react": "^18", - "hono": "^3.11.7", + "hono": "^4.5.1", "jest": "^29.7.0", "node-fetch-native": "^1.4.0", "react": "^18.2.0", diff --git a/packages/effect-validator/package.json b/packages/effect-validator/package.json index a428ea3c4..ddea6eb96 100644 --- a/packages/effect-validator/package.json +++ b/packages/effect-validator/package.json @@ -44,7 +44,7 @@ "devDependencies": { "@effect/schema": "^0.68.21", "effect": "^3.4.8", - "hono": "^4.4.13", + "hono": "^4.5.1", "tsup": "^8.1.0", "typescript": "^5.5.3", "vitest": "^2.0.1" diff --git a/packages/esbuild-transpiler/package.json b/packages/esbuild-transpiler/package.json index b2985512e..3765a51c1 100644 --- a/packages/esbuild-transpiler/package.json +++ b/packages/esbuild-transpiler/package.json @@ -56,7 +56,7 @@ "devDependencies": { "esbuild": "^0.19.9", "esbuild-wasm": "^0.19.5", - "hono": "^3.11.7", + "hono": "^4.5.1", "tsup": "^8.0.1", "vitest": "^0.34.6" }, diff --git a/packages/event-emitter/package.json b/packages/event-emitter/package.json index d04db2e7e..03499c6eb 100644 --- a/packages/event-emitter/package.json +++ b/packages/event-emitter/package.json @@ -36,7 +36,7 @@ "hono": "*" }, "devDependencies": { - "hono": "^3.11.7", + "hono": "^4.5.1", "tsup": "^8.0.1", "vitest": "^1.0.4" } diff --git a/packages/graphql-server/package.json b/packages/graphql-server/package.json index dc729ac84..096ff0ef6 100644 --- a/packages/graphql-server/package.json +++ b/packages/graphql-server/package.json @@ -41,7 +41,7 @@ "eslint-plugin-flowtype": "^8.0.3", "eslint-plugin-import": "^2.26.0", "eslint-plugin-node": "^11.1.0", - "hono": "^4.0.2", + "hono": "^4.5.1", "jest": "^28.1.2", "jest-environment-miniflare": "^2.6.0", "np": "^7.6.2", diff --git a/packages/medley-router/package.json b/packages/medley-router/package.json index 138416c3e..945dd9ab5 100644 --- a/packages/medley-router/package.json +++ b/packages/medley-router/package.json @@ -27,7 +27,7 @@ "hono": ">=3.8.0" }, "devDependencies": { - "hono": "^3.11.7", + "hono": "^4.5.1", "jest": "^29.7.0", "rimraf": "^5.0.5" }, diff --git a/packages/node-ws/package.json b/packages/node-ws/package.json index 6c9c315dc..491fca897 100644 --- a/packages/node-ws/package.json +++ b/packages/node-ws/package.json @@ -34,7 +34,7 @@ "devDependencies": { "@hono/node-server": "^1.11.1", "@types/ws": "^8", - "hono": "^4.2.9", + "hono": "^4.5.1", "tsup": "^8.0.1", "vitest": "^1.0.4" }, diff --git a/packages/prometheus/package.json b/packages/prometheus/package.json index ab6015edc..16cc023de 100644 --- a/packages/prometheus/package.json +++ b/packages/prometheus/package.json @@ -36,7 +36,7 @@ "prom-client": "^15.0.0" }, "devDependencies": { - "hono": "^4.2.7", + "hono": "^4.5.1", "prom-client": "^15.0.0", "tsup": "^8.0.1", "vitest": "^1.0.4" diff --git a/packages/qwik-city/package.json b/packages/qwik-city/package.json index 81027df33..afde41c05 100644 --- a/packages/qwik-city/package.json +++ b/packages/qwik-city/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@builder.io/qwik": "^1.2.0", "@builder.io/qwik-city": "^1.2.0", - "hono": "^3.11.7", + "hono": "^4.5.1", "rimraf": "^5.0.5" }, "engines": { diff --git a/packages/react-compat/package.json b/packages/react-compat/package.json index 5a9e793a5..e30a5273a 100644 --- a/packages/react-compat/package.json +++ b/packages/react-compat/package.json @@ -27,7 +27,7 @@ "hono": ">=4.5.*" }, "devDependencies": { - "hono": "^4.5.0", + "hono": "^4.5.1", "tsup": "^8.0.1" } } diff --git a/packages/react-renderer/package.json b/packages/react-renderer/package.json index 015f2e00d..6d7a48794 100644 --- a/packages/react-renderer/package.json +++ b/packages/react-renderer/package.json @@ -39,7 +39,7 @@ "@types/react": "^18", "@types/react-dom": "^18.2.17", "esbuild": "^0.20.2", - "hono": "^4.2.3", + "hono": "^4.5.1", "react": "^18.2.0", "react-dom": "^18.2.0", "tsup": "^8.0.1", diff --git a/packages/sentry/package.json b/packages/sentry/package.json index 71a912fe1..a0ba27d88 100644 --- a/packages/sentry/package.json +++ b/packages/sentry/package.json @@ -51,7 +51,7 @@ "eslint-plugin-flowtype": "^8.0.3", "eslint-plugin-import": "^2.26.0", "eslint-plugin-node": "^11.1.0", - "hono": "^3.11.7", + "hono": "^4.5.1", "jest": "^28.1.2", "jest-environment-miniflare": "^2.6.0", "prettier": "^2.7.1", diff --git a/packages/swagger-ui/package.json b/packages/swagger-ui/package.json index f9aa8511f..69a6a8365 100644 --- a/packages/swagger-ui/package.json +++ b/packages/swagger-ui/package.json @@ -42,7 +42,7 @@ }, "devDependencies": { "@types/swagger-ui-dist": "^3.30.5", - "hono": "^3.11.7", + "hono": "^4.5.1", "publint": "^0.2.2", "tsup": "^7.2.0", "vite": "^4.4.9", diff --git a/packages/trpc-server/package.json b/packages/trpc-server/package.json index 778bdf2c0..b77ed0fed 100644 --- a/packages/trpc-server/package.json +++ b/packages/trpc-server/package.json @@ -32,7 +32,7 @@ }, "devDependencies": { "@trpc/server": "^10.10.0 || >11.0.0-rc", - "hono": "^4.3.6", + "hono": "^4.5.1", "jest": "^29.7.0", "rimraf": "^5.0.5", "zod": "^3.20.2" diff --git a/packages/typia-validator/test-generated/index.test.ts b/packages/typia-validator/test-generated/index.test.ts new file mode 100644 index 000000000..e47492994 --- /dev/null +++ b/packages/typia-validator/test-generated/index.test.ts @@ -0,0 +1,213 @@ +import { Hono } from 'hono'; +import type { Equal, Expect } from 'hono/utils/types'; +import type { tags } from 'typia'; +import typia from 'typia'; +import { typiaValidator } from "../src"; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +type ExtractSchema = T extends Hono ? S : never; +describe('Basic', () => { + const app = new Hono(); + interface Author { + name: string; + age: number & tags.Type<'uint32'> & tags.Minimum<20> & tags.ExclusiveMaximum<100>; + } + const validate = (input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is Author => { + return "object" === typeof input && null !== input && ("string" === typeof (input as any).name && ("number" === typeof (input as any).age && (Math.floor((input as any).age) === (input as any).age && 0 <= (input as any).age && (input as any).age <= 4294967295 && 20 <= (input as any).age && (input as any).age < 100))); + }; + if (false === __is(input)) { + const $report = (typia.createValidate as any).report(errors); + ((input: any, _path: string, _exceptionable: boolean = true): input is Author => { + const $vo0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => ["string" === typeof input.name || $report(_exceptionable, { + path: _path + ".name", + expected: "string", + value: input.name + }), "number" === typeof input.age && (Math.floor(input.age) === input.age && 0 <= input.age && input.age <= 4294967295 || $report(_exceptionable, { + path: _path + ".age", + expected: "number & Type<\"uint32\">", + value: input.age + })) && (20 <= input.age || $report(_exceptionable, { + path: _path + ".age", + expected: "number & Minimum<20>", + value: input.age + })) && (input.age < 100 || $report(_exceptionable, { + path: _path + ".age", + expected: "number & ExclusiveMaximum<100>", + value: input.age + })) || $report(_exceptionable, { + path: _path + ".age", + expected: "(number & Type<\"uint32\"> & Minimum<20> & ExclusiveMaximum<100>)", + value: input.age + })].every((flag: boolean) => flag); + return ("object" === typeof input && null !== input || $report(true, { + path: _path + "", + expected: "Author", + value: input + })) && $vo0(input, _path + "", true) || $report(true, { + path: _path + "", + expected: "Author", + value: input + }); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined + } as any; + }; + const route = app.post('/author', typiaValidator('json', validate), (c) => { + const data = c.req.valid('json'); + return c.json({ + success: true, + message: `${data.name} is ${data.age}`, + }); + }); + type Actual = ExtractSchema; + type Expected = { + '/author': { + $post: { + input: { + json: Author; + }; + output: { + success: boolean; + message: string; + }; + }; + }; + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + type verify = Expect>; + it('Should return 200 response', async () => { + const req = new Request('http://localhost/author', { + body: JSON.stringify({ + name: 'Superman', + age: 30, + }), + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }); + const res = await app.request(req); + expect(res).not.toBeNull(); + expect(res.status).toBe(200); + expect(await res.json()).toEqual({ + success: true, + message: 'Superman is 30', + }); + }); + it('Should return 400 response', async () => { + const req = new Request('http://localhost/author', { + body: JSON.stringify({ + name: 'Superman', + age: 18, + }), + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }); + const res = await app.request(req); + expect(res).not.toBeNull(); + expect(res.status).toBe(400); + const data = (await res.json()) as { + success: boolean; + }; + expect(data['success']).toBe(false); + }); +}); +describe('With Hook', () => { + const app = new Hono(); + interface Item { + id: number & tags.ExclusiveMaximum<9999>; + title: string; + } + const validate = (input: any): typia.IValidation => { + const errors = [] as any[]; + const __is = (input: any): input is Item => { + return "object" === typeof input && null !== input && ("number" === typeof (input as any).id && (input as any).id < 9999 && "string" === typeof (input as any).title); + }; + if (false === __is(input)) { + const $report = (typia.createValidate as any).report(errors); + ((input: any, _path: string, _exceptionable: boolean = true): input is Item => { + const $vo0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => ["number" === typeof input.id && (input.id < 9999 || $report(_exceptionable, { + path: _path + ".id", + expected: "number & ExclusiveMaximum<9999>", + value: input.id + })) || $report(_exceptionable, { + path: _path + ".id", + expected: "(number & ExclusiveMaximum<9999>)", + value: input.id + }), "string" === typeof input.title || $report(_exceptionable, { + path: _path + ".title", + expected: "string", + value: input.title + })].every((flag: boolean) => flag); + return ("object" === typeof input && null !== input || $report(true, { + path: _path + "", + expected: "Item", + value: input + })) && $vo0(input, _path + "", true) || $report(true, { + path: _path + "", + expected: "Item", + value: input + }); + })(input, "$input", true); + } + const success = 0 === errors.length; + return { + success, + errors, + data: success ? input : undefined + } as any; + }; + app.post('/post', typiaValidator('json', validate, (result, c) => { + if (!result.success) { + return c.text(`${result.data.id} is invalid!`, 400); + } + const data = result.data; + return Promise.resolve(c.text(`${data.id} is valid!`)); + }), (c) => { + const data = c.req.valid('json'); + return c.json({ + success: true, + message: `${data.id} is ${data.title}`, + }); + }); + it('Should return 200 response', async () => { + const req = new Request('http://localhost/post', { + body: JSON.stringify({ + id: 123, + title: 'Hello', + }), + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }); + const res = await app.request(req); + expect(res).not.toBeNull(); + expect(res.status).toBe(200); + expect(await res.text()).toBe('123 is valid!'); + }); + it('Should return 400 response', async () => { + const req = new Request('http://localhost/post', { + body: JSON.stringify({ + id: '123', + title: 'Hello', + }), + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }); + const res = await app.request(req); + expect(res).not.toBeNull(); + expect(res.status).toBe(400); + expect(await res.text()).toBe('123 is invalid!'); + }); +}); diff --git a/packages/zod-openapi/.yarn/install-state.gz b/packages/zod-openapi/.yarn/install-state.gz index 915e0732e..dd48f224a 100644 Binary files a/packages/zod-openapi/.yarn/install-state.gz and b/packages/zod-openapi/.yarn/install-state.gz differ diff --git a/packages/zod-openapi/package.json b/packages/zod-openapi/package.json index 9a4c677f4..f8f121c96 100644 --- a/packages/zod-openapi/package.json +++ b/packages/zod-openapi/package.json @@ -42,7 +42,7 @@ }, "devDependencies": { "@cloudflare/workers-types": "^4.20240117.0", - "hono": "^4.3.6", + "hono": "^4.5.1", "jest": "^29.7.0", "tsup": "^8.0.1", "typescript": "^5.4.4", diff --git a/packages/zod-openapi/yarn.lock b/packages/zod-openapi/yarn.lock index 5b43ad253..1a02812e5 100644 --- a/packages/zod-openapi/yarn.lock +++ b/packages/zod-openapi/yarn.lock @@ -594,7 +594,7 @@ __metadata: "@asteasolutions/zod-to-openapi": "npm:^7.1.0" "@cloudflare/workers-types": "npm:^4.20240117.0" "@hono/zod-validator": "npm:0.2.2" - hono: "npm:^4.3.6" + hono: "npm:^4.5.1" jest: "npm:^29.7.0" tsup: "npm:^8.0.1" typescript: "npm:^5.4.4" @@ -2379,10 +2379,10 @@ __metadata: languageName: node linkType: hard -"hono@npm:^4.3.6": - version: 4.4.6 - resolution: "hono@npm:4.4.6" - checksum: 065318f3fe021320b59f3daddacf7d74bfc3303de55f415a999b6967a9f09714e136528bc86cc880a45633cd85dec5428e41e902b5e3a3809f3cd17204302668 +"hono@npm:^4.5.1": + version: 4.5.1 + resolution: "hono@npm:4.5.1" + checksum: 71228cefd3808b4bb42c10de23d67f135678eb0ab7fdfd1728d934ec2ee1241be9b1260f279b81acd2a6a57346d06d047a2650ff9bddd48fda6581751a690d80 languageName: node linkType: hard diff --git a/packages/zod-validator/package.json b/packages/zod-validator/package.json index e676a537e..18645d353 100644 --- a/packages/zod-validator/package.json +++ b/packages/zod-validator/package.json @@ -40,7 +40,7 @@ "zod": "^3.19.1" }, "devDependencies": { - "hono": "^4.0.10", + "hono": "^4.5.1", "jest": "^29.7.0", "rimraf": "^5.0.5", "typescript": "^5.3.3", diff --git a/yarn.lock b/yarn.lock index 0931cbbb7..c30549c36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2003,7 +2003,7 @@ __metadata: resolution: "@hono/bun-transpiler@workspace:packages/bun-transpiler" dependencies: "@types/bun": "npm:^1.0.0" - hono: "npm:^3.11.7" + hono: "npm:^4.5.1" tsup: "npm:^8.0.1" vitest: "npm:^1.0.4" peerDependencies: @@ -2017,7 +2017,7 @@ __metadata: dependencies: "@clerk/backend": "npm:^1.0.0" "@types/react": "npm:^18" - hono: "npm:^3.11.7" + hono: "npm:^4.5.1" jest: "npm:^29.7.0" node-fetch-native: "npm:^1.4.0" react: "npm:^18.2.0" @@ -2034,7 +2034,7 @@ __metadata: dependencies: "@effect/schema": "npm:^0.68.21" effect: "npm:^3.4.8" - hono: "npm:^4.4.13" + hono: "npm:^4.5.1" tsup: "npm:^8.1.0" typescript: "npm:^5.5.3" vitest: "npm:^2.0.1" @@ -2050,7 +2050,7 @@ __metadata: dependencies: esbuild: "npm:^0.19.9" esbuild-wasm: "npm:^0.19.5" - hono: "npm:^3.11.7" + hono: "npm:^4.5.1" tsup: "npm:^8.0.1" vitest: "npm:^0.34.6" peerDependencies: @@ -2082,7 +2082,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hono/event-emitter@workspace:packages/event-emitter" dependencies: - hono: "npm:^3.11.7" + hono: "npm:^4.5.1" tsup: "npm:^8.0.1" vitest: "npm:^1.0.4" peerDependencies: @@ -2125,7 +2125,7 @@ __metadata: eslint-plugin-import: "npm:^2.26.0" eslint-plugin-node: "npm:^11.1.0" graphql: "npm:^16.5.0" - hono: "npm:^4.0.2" + hono: "npm:^4.5.1" jest: "npm:^28.1.2" jest-environment-miniflare: "npm:^2.6.0" np: "npm:^7.6.2" @@ -2155,7 +2155,7 @@ __metadata: resolution: "@hono/medley-router@workspace:packages/medley-router" dependencies: "@medley/router": "npm:^0.2.1" - hono: "npm:^3.11.7" + hono: "npm:^4.5.1" jest: "npm:^29.7.0" rimraf: "npm:^5.0.5" peerDependencies: @@ -2176,7 +2176,7 @@ __metadata: dependencies: "@hono/node-server": "npm:^1.11.1" "@types/ws": "npm:^8" - hono: "npm:^4.2.9" + hono: "npm:^4.5.1" tsup: "npm:^8.0.1" vitest: "npm:^1.0.4" ws: "npm:^8.17.0" @@ -2227,7 +2227,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hono/prometheus@workspace:packages/prometheus" dependencies: - hono: "npm:^4.2.7" + hono: "npm:^4.5.1" prom-client: "npm:^15.0.0" tsup: "npm:^8.0.1" vitest: "npm:^1.0.4" @@ -2243,7 +2243,7 @@ __metadata: dependencies: "@builder.io/qwik": "npm:^1.2.0" "@builder.io/qwik-city": "npm:^1.2.0" - hono: "npm:^3.11.7" + hono: "npm:^4.5.1" rimraf: "npm:^5.0.5" peerDependencies: "@builder.io/qwik": ^1.2.0 @@ -2256,7 +2256,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hono/react-compat@workspace:packages/react-compat" dependencies: - hono: "npm:^4.5.0" + hono: "npm:^4.5.1" tsup: "npm:^8.0.1" peerDependencies: hono: ">=4.5.*" @@ -2271,7 +2271,7 @@ __metadata: "@types/react": "npm:^18" "@types/react-dom": "npm:^18.2.17" esbuild: "npm:^0.20.2" - hono: "npm:^4.2.3" + hono: "npm:^4.5.1" react: "npm:^18.2.0" react-dom: "npm:^18.2.0" tsup: "npm:^8.0.1" @@ -2297,7 +2297,7 @@ __metadata: eslint-plugin-flowtype: "npm:^8.0.3" eslint-plugin-import: "npm:^2.26.0" eslint-plugin-node: "npm:^11.1.0" - hono: "npm:^3.11.7" + hono: "npm:^4.5.1" jest: "npm:^28.1.2" jest-environment-miniflare: "npm:^2.6.0" prettier: "npm:^2.7.1" @@ -2316,7 +2316,7 @@ __metadata: resolution: "@hono/swagger-ui@workspace:packages/swagger-ui" dependencies: "@types/swagger-ui-dist": "npm:^3.30.5" - hono: "npm:^3.11.7" + hono: "npm:^4.5.1" publint: "npm:^0.2.2" tsup: "npm:^7.2.0" vite: "npm:^4.4.9" @@ -2331,7 +2331,7 @@ __metadata: resolution: "@hono/trpc-server@workspace:packages/trpc-server" dependencies: "@trpc/server": "npm:^10.10.0 || >11.0.0-rc" - hono: "npm:^4.3.6" + hono: "npm:^4.5.1" jest: "npm:^29.7.0" rimraf: "npm:^5.0.5" zod: "npm:^3.20.2" @@ -2390,7 +2390,7 @@ __metadata: "@asteasolutions/zod-to-openapi": "npm:^7.1.0" "@cloudflare/workers-types": "npm:^4.20240117.0" "@hono/zod-validator": "npm:0.2.2" - hono: "npm:^4.3.6" + hono: "npm:^4.5.1" jest: "npm:^29.7.0" tsup: "npm:^8.0.1" typescript: "npm:^5.4.4" @@ -2407,7 +2407,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hono/zod-validator@workspace:packages/zod-validator" dependencies: - hono: "npm:^4.0.10" + hono: "npm:^4.5.1" jest: "npm:^29.7.0" rimraf: "npm:^5.0.5" typescript: "npm:^5.3.3" @@ -10089,10 +10089,10 @@ __metadata: languageName: node linkType: hard -"hono@npm:^4.0.1": - version: 4.0.1 - resolution: "hono@npm:4.0.1" - checksum: 0f4fe93d376ce4063d42ccc35eee445756f17ca4044ef1f59e276b4737dacc5e76334e230a59101a4092aa88a066f7585303da7631ca4a46325384d55db48df3 +"hono@npm:^4.0.1, hono@npm:^4.2.4, hono@npm:^4.5.1": + version: 4.5.1 + resolution: "hono@npm:4.5.1" + checksum: 71228cefd3808b4bb42c10de23d67f135678eb0ab7fdfd1728d934ec2ee1241be9b1260f279b81acd2a6a57346d06d047a2650ff9bddd48fda6581751a690d80 languageName: node linkType: hard @@ -10103,48 +10103,6 @@ __metadata: languageName: node linkType: hard -"hono@npm:^4.0.2": - version: 4.0.2 - resolution: "hono@npm:4.0.2" - checksum: c0806a912c1be094aa7e34050e8391c41f2623fae683239d9d1f1680f8646602ebf91a8e1c58bf75de510a6d0fe70189e57f629c0e48f8abb5ab873ba844a481 - languageName: node - linkType: hard - -"hono@npm:^4.2.3": - version: 4.2.3 - resolution: "hono@npm:4.2.3" - checksum: eced562fcfc97cd4f2fd4fb081e99775d23c58c8fb1a6c57311ddfba71c23e1da4d33294b0ab1fdd0c4587351dc278f4f1f7d02fcd0ded156c32c74e66a01f45 - languageName: node - linkType: hard - -"hono@npm:^4.2.4": - version: 4.2.4 - resolution: "hono@npm:4.2.4" - checksum: f6e7d21ebd152beb6e91d5d36d0bef66f9126873dc2b652745ab1fb2429ba8dff09c1b07982d0e29c3ca2b6ff2038fd947cb948e8bf27a7f2a9f429a1728c8fe - languageName: node - linkType: hard - -"hono@npm:^4.2.7": - version: 4.2.7 - resolution: "hono@npm:4.2.7" - checksum: 186d79ecedd4d9091eae4f2f32462f7e44530d1ea545de2cba594fd3f1e733f6f1d4367f12a6c85d188610ce1913bedadd1a83724b533700c0b12f5dcbb24f97 - languageName: node - linkType: hard - -"hono@npm:^4.2.9": - version: 4.3.3 - resolution: "hono@npm:4.3.3" - checksum: 2e02a563ab8461a56a97b59b1c31fd002179999a0323b3a44cbf8b69b92ad35cc8f38ba26a88b64caa71e2c1c39a1454d84473ed0c69f4e9573e7b3b064e0f58 - languageName: node - linkType: hard - -"hono@npm:^4.3.6": - version: 4.3.6 - resolution: "hono@npm:4.3.6" - checksum: 2e27eb1e90b392a5884af573179d29e3f717f5e803c2b90f1383488f42bc986810e8e714d5bb1205935fda1d3e9944b3262aed88e852ea44d0e13d799474fa5b - languageName: node - linkType: hard - "hono@npm:^4.4.12": version: 4.4.12 resolution: "hono@npm:4.4.12" @@ -10152,20 +10110,6 @@ __metadata: languageName: node linkType: hard -"hono@npm:^4.4.13": - version: 4.4.13 - resolution: "hono@npm:4.4.13" - checksum: 213c09eafa4d82dfa6b6326fd37e8f0d17753ece62581ea849ec0eb87b0984a721389a0d8480f64dbef564d3fa49cc6031603374f326cb48ad4bc9eb9496e876 - languageName: node - linkType: hard - -"hono@npm:^4.5.0": - version: 4.5.0 - resolution: "hono@npm:4.5.0" - checksum: 0c1d10b0e30202a1493ab9db7e8068449a10ad352e3a9794d866eaa08c15b04c0d896499fec8ebe8994035a93ae0f54691c59c712600cd0515bcaee87bfbb1c9 - languageName: node - linkType: hard - "hosted-git-info@npm:^2.1.4": version: 2.8.9 resolution: "hosted-git-info@npm:2.8.9"