@asenajs/hono-adapter 1.7.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,8 +6,7 @@ import { AsenaAdapter, VALIDATOR_METHODS, } from '@asenajs/asena/adapter';
6
6
  import { shouldApplyMiddleware } from '@asenajs/asena/utils';
7
7
  import { blue, green, red, yellow } from '@asenajs/asena/logger';
8
8
  import { zValidator } from '@hono/zod-validator';
9
- import { flattenError } from 'zod';
10
- import { ValidationError } from './errors';
9
+ import { brandHonoHttpException, ValidationError } from './errors';
11
10
  import { middlewareParser } from './utils/middlewareParser';
12
11
  import { compareRoutePriority } from './utils/routePriority';
13
12
  import { HttpMethod } from '@asenajs/asena/web-types';
@@ -17,14 +16,17 @@ export class HonoAdapter extends AsenaAdapter {
17
16
  name = 'HonoAdapter';
18
17
  app;
19
18
  _strict = true;
19
+ logErrors = true;
20
20
  server;
21
21
  options = {};
22
22
  /**
23
- * Whether the application registered an error handler. Validation failures are only
24
- * worth throwing when something is there to catch them - otherwise Hono answers 500
25
- * and the adapter's 400 envelope is the better response.
23
+ * Whether the *application* registered an error handler. Read only by `start()`, to decide
24
+ * whether the framework's own default needs registering - Hono keeps a single `onError`, so
25
+ * registering both would replace the application's.
26
26
  */
27
27
  hasErrorHandler = false;
28
+ /** Whether the application registered an onNotFound hook (see start()) */
29
+ hasNotFoundHandler = false;
28
30
  /**
29
31
  * Normalizes a route path for Hono compatibility.
30
32
  * Strips trailing slash (except root '/') because Hono's strict:false
@@ -96,14 +98,18 @@ export class HonoAdapter extends AsenaAdapter {
96
98
  if (!this.websocketAdapter.logger && logger) {
97
99
  this.websocketAdapter.logger = this.logger;
98
100
  }
99
- this._strict =
100
- typeof loggerOrOptions === 'object' && 'logger' in loggerOrOptions ? (loggerOrOptions.strict ?? true) : true;
101
+ const isOptionsObject = typeof loggerOrOptions === 'object' && 'logger' in loggerOrOptions;
102
+ this._strict = isOptionsObject ? (loggerOrOptions.strict ?? true) : true;
103
+ this.logErrors = isOptionsObject ? (loggerOrOptions.logErrors ?? true) : true;
101
104
  if (honoApp) {
102
105
  this.app = honoApp;
103
106
  }
104
107
  else {
105
108
  this.app = new Hono({ strict: this._strict });
106
109
  }
110
+ // Teach isHttpException() about Hono's own exception class. Doing it here rather than at
111
+ // module scope keeps the side effect tied to actually using the adapter.
112
+ brandHonoHttpException();
107
113
  }
108
114
  /**
109
115
  * Registers a global middleware with optional path filtering
@@ -185,6 +191,20 @@ export class HonoAdapter extends AsenaAdapter {
185
191
  await this.optimizeAndRegisterRoutes();
186
192
  this.routesRegistered = true;
187
193
  }
194
+ // Unconditional 404 default, so an app with no config still answers the same envelope
195
+ // ergenecore does instead of Hono's text/plain. A registered onNotFound has already
196
+ // replaced this - Hono keeps only the last notFound handler, and prepareConfigs runs
197
+ // during APPLICATION_SETUP, before start().
198
+ if (!this.hasNotFoundHandler) {
199
+ this.app.notFound((context) => this.defaultNotFoundResponse(context.req.path, context.req.method));
200
+ }
201
+ // Same reasoning, for errors. `onError` was registered only when the application declared the
202
+ // hook, so an app with no config answered a 500 and wrote nothing to the ServerLogger: Hono's
203
+ // built-in handler dumps a bare stack to stderr with no path, method or status, `logErrors:
204
+ // false` could not suppress it, and a 4xx produced no output at all.
205
+ if (!this.hasErrorHandler) {
206
+ this.app.onError((error, context) => this.defaultErrorResponse(error, context.req.path, context.req.method));
207
+ }
188
208
  this.websocketAdapter.prepareWebSocket(this.options?.wsOptions);
189
209
  const serveConfig = {
190
210
  ...this.options.serveOptions,
@@ -203,6 +223,20 @@ export class HonoAdapter extends AsenaAdapter {
203
223
  // Add HTML routes if any are registered (FrontendController pages)
204
224
  // Bun checks routes first, then falls through to fetch (Hono) for API routes
205
225
  if (this.htmlRoutes.size > 0) {
226
+ // Bun checks `routes` before falling through to `fetch`, so a page registered on a path an
227
+ // API route also serves silently shadows it: the request answers 200 with the HTML and the
228
+ // API route becomes unreachable while still appearing in the startup log. Ergenecore
229
+ // rejects the same collision at startup; match it rather than ship a route that exists in
230
+ // the logs and not on the wire.
231
+ const reservedPaths = new Set([
232
+ ...this.routeQueue.map((route) => route.path),
233
+ ...this.wsRouteQueue.map((route) => (route.path.startsWith('/') ? route.path : `/${route.path}`)),
234
+ ]);
235
+ for (const htmlPath of this.htmlRoutes.keys()) {
236
+ if (reservedPaths.has(htmlPath)) {
237
+ throw new Error(`HTML route collision at "${htmlPath}": path already registered as an API or WebSocket route.`);
238
+ }
239
+ }
206
240
  serveConfig.routes = Object.fromEntries(this.htmlRoutes);
207
241
  }
208
242
  this.server = bun.serve(serveConfig);
@@ -217,26 +251,74 @@ export class HonoAdapter extends AsenaAdapter {
217
251
  return this.server;
218
252
  }
219
253
  /**
220
- * Registers global error handler with enhanced error handling capabilities
254
+ * Registers the handler for requests that match no route.
221
255
  *
222
- * Supports Hono's HTTPException for proper status code handling:
223
- * - HTTPException instances are passed to user handler for custom handling
224
- * - If user handler returns a response, it's used
225
- * - Otherwise, HTTPException's default response is returned
226
- * - Other errors follow normal error handling flow
256
+ * Separate from {@link onError}: an unmatched route is a routing outcome, not a thrown error,
257
+ * so the application's error handler never sees one and never has to discriminate.
227
258
  *
228
- * @param errorHandler - Custom error handler function
259
+ * @param notFoundHandler - Handler that produces the 404 response
260
+ */
261
+ onNotFound(notFoundHandler) {
262
+ this.hasNotFoundHandler = true;
263
+ this.app.notFound(async (context) => {
264
+ const wrapper = new HonoContextWrapper(context, this.server);
265
+ try {
266
+ const response = await notFoundHandler(wrapper, {
267
+ path: context.req.path,
268
+ method: context.req.method,
269
+ });
270
+ if (response instanceof Response) {
271
+ // The application answered its own 404 - it already knows about the request.
272
+ return response;
273
+ }
274
+ }
275
+ catch (error) {
276
+ // onNotFound must not be able to take the server down, and it is deliberately NOT
277
+ // routed to onError - that hook is for errors the application threw itself.
278
+ this.logger.error('onNotFound threw an error, using the default response:', error);
279
+ }
280
+ return this.defaultNotFoundResponse(context.req.path, context.req.method);
281
+ });
282
+ }
283
+ /**
284
+ * The 404 both adapters answer when no `onNotFound` is registered, and the log line that goes
285
+ * with it.
286
+ *
287
+ * Hono's own default is `text/plain`, so the same application used to produce a different
288
+ * body depending on which adapter it ran under - the specific complaint that started this
289
+ * work. Registered unconditionally in `start()` so the default holds even for an app with
290
+ * no config at all.
291
+ *
292
+ * `info`, not `warn`: a scanner walking /wp-admin, /.env and /phpmyadmin must not be able to
293
+ * fill the warning stream. Not `debug` either - a 404 nobody can see is how a mistyped route
294
+ * survives to production. Only reached when the framework is the one answering, so an
295
+ * application that shaped its own 404 gets no line from here.
296
+ */
297
+ defaultNotFoundResponse(path, method) {
298
+ if (this.logErrors !== false) {
299
+ this.logger.info('Route not found:', { path, method, status: 404 });
300
+ }
301
+ return new Response(JSON.stringify({ error: 'Not Found' }), {
302
+ status: 404,
303
+ headers: { 'Content-Type': 'application/json' },
304
+ });
305
+ }
306
+ /**
307
+ * Registers the application's global error handler.
308
+ *
309
+ * Every error the application throws is offered to it first, `HTTPException` included, so an
310
+ * application can reshape its own 401/403/429 envelopes rather than only the 500s. Returning
311
+ * nothing means "not mine, use the default" - the framework then answers, and logs.
312
+ *
313
+ * @param errorHandler - Handler that produces the response for a thrown error
229
314
  *
230
315
  * @example
231
316
  * ```typescript
232
317
  * adapter.onError((error, context) => {
233
- * // HTTPException handling (optional custom behavior)
234
- * if (error instanceof HTTPException) {
235
- * // Add custom logging or return custom response
236
- * return context.send({ custom: 'response' }, error.status);
318
+ * if (isHttpException(error)) {
319
+ * return context.send({ error: error.message }, error.status);
237
320
  * }
238
321
  *
239
- * // Other errors
240
322
  * return context.send({ error: 'Internal error' }, 500);
241
323
  * });
242
324
  * ```
@@ -244,48 +326,83 @@ export class HonoAdapter extends AsenaAdapter {
244
326
  onError(errorHandler) {
245
327
  this.hasErrorHandler = true;
246
328
  this.app.onError((error, context) => {
247
- // Log error with full details
248
- this.logger.error('Application error occurred:', {
249
- message: error.message,
250
- stack: error.stack,
251
- path: context.req.path,
252
- method: context.req.method,
253
- timestamp: new Date().toISOString(),
254
- });
255
329
  // Wrap context for user handler
256
330
  const wrapper = new HonoContextWrapper(context, this.server);
257
- // Handle HTTPException with Hono's standard pattern
258
- if (error instanceof HTTPException) {
259
- try {
260
- // Allow user to customize HTTPException handling
261
- const customResponse = errorHandler(error, wrapper);
262
- // If user returned a response, use it
263
- if (customResponse) {
264
- return customResponse;
265
- }
266
- }
267
- catch (handlerError) {
268
- // User handler failed, log and fallback to HTTPException's default response
269
- this.logger.error('Error handler threw an error for HTTPException, using default response:', handlerError);
270
- }
271
- // Return HTTPException's default response (proper status code + message)
272
- return error.getResponse();
273
- }
274
- // Handle other errors through user-defined handler
275
331
  try {
276
- return errorHandler(error, wrapper);
332
+ const customResponse = errorHandler(error, wrapper);
333
+ // A handler that returns nothing is saying "not mine, use the default" - the contract
334
+ // ergenecore's `respondToError` already implements. Passing `undefined` straight to Hono
335
+ // made Bun answer **200** with its "Welcome to Bun!" placeholder, so a failed request was
336
+ // reported to the client, and to every uptime monitor in front of it, as a success.
337
+ if (customResponse) {
338
+ // The application answered. Its handler is where this error gets recorded, with
339
+ // whatever correlation id the application carries - a second line from the adapter
340
+ // would only duplicate it.
341
+ return customResponse;
342
+ }
277
343
  }
278
344
  catch (handlerError) {
279
- // Fallback if error handler itself throws
280
- this.logger.error('Error handler threw an error:', handlerError);
281
- return context.json({
282
- error: 'Internal server error',
283
- message: process.env.NODE_ENV === 'production' ? 'An unexpected error occurred' : error.message,
284
- timestamp: new Date().toISOString(),
285
- }, 500);
345
+ // The application's handler failed. Fall through to the default response.
346
+ this.logger.error('Error handler threw an error, using the default response:', handlerError);
286
347
  }
348
+ return this.defaultErrorResponse(error, context.req.path, context.req.method);
349
+ });
350
+ }
351
+ /**
352
+ * The response the framework itself answers with, and the log line that goes with it.
353
+ *
354
+ * Reached when the application declared no `onError`, when its handler declined by returning
355
+ * nothing, or when the handler threw. All three mean the framework is producing the response,
356
+ * so it is the framework that has to record what happened - otherwise an `onError` that
357
+ * returns `undefined` swallows a 500 with no trace anywhere.
358
+ *
359
+ * The body is the same one `@asenajs/ergenecore` answers. It used to be `text/plain` for an
360
+ * application with no config and `{error, message, timestamp}` for one whose handler declined,
361
+ * so the same failure produced three different envelopes across the two adapters.
362
+ */
363
+ defaultErrorResponse(error, path, method) {
364
+ this.logHandledError(error, path, method);
365
+ if (error instanceof HTTPException) {
366
+ return error.getResponse();
367
+ }
368
+ return new Response(JSON.stringify({ error: 'Internal Server Error' }), {
369
+ status: 500,
370
+ headers: { 'Content-Type': 'application/json' },
287
371
  });
288
372
  }
373
+ /**
374
+ * Logs an error that is about to be handed to the application's error handler.
375
+ *
376
+ * The level is derived from the status the client will actually see: a 4xx is the
377
+ * caller's mistake and the auth/validation layer doing its job, so it must not flood the
378
+ * ERROR stream with stack traces - an unauthenticated request would otherwise be an
379
+ * attacker-controlled log amplifier. Only 5xx carries a stack, because that is the class
380
+ * of failure nobody predicted.
381
+ *
382
+ * `ServerLogger.debug` is optional, so fall back to `info` when an implementation does
383
+ * not provide it.
384
+ */
385
+ logHandledError(error, path, method) {
386
+ if (this.logErrors === false)
387
+ return;
388
+ const status = typeof error.status === 'number' ? error.status : 500;
389
+ const isServerError = status >= 500;
390
+ const meta = {
391
+ message: error.message,
392
+ path,
393
+ method,
394
+ status,
395
+ ...(isServerError ? { stack: error.stack } : {}),
396
+ };
397
+ if (isServerError) {
398
+ this.logger.error('Application error occurred:', meta);
399
+ return;
400
+ }
401
+ // `debug` is optional on ServerLogger, and older @asenajs/asena typings do not declare
402
+ // it at all - read it structurally and fall back to info.
403
+ const debug = this.logger.debug;
404
+ (debug ?? this.logger.info).call(this.logger, 'Request rejected:', meta);
405
+ }
289
406
  async serveOptions(options) {
290
407
  this.options = await options();
291
408
  }
@@ -430,7 +547,7 @@ export class HonoAdapter extends AsenaAdapter {
430
547
  // ours are always classic `z.ZodType` (see ValidationSchema), so the runtime
431
548
  // value is a classic ZodError.
432
549
  const { error } = result;
433
- return this.handleValidationFailure(error, key, c);
550
+ return this.handleValidationFailure(error, key);
434
551
  });
435
552
  validators.push(validator);
436
553
  }
@@ -444,20 +561,18 @@ export class HonoAdapter extends AsenaAdapter {
444
561
  /**
445
562
  * @description Answer a failed validation.
446
563
  *
447
- * Throws a `ValidationError` so the failure travels the same path as every other
448
- * error and reaches `ConfigService.onError`, which is what the documentation has
449
- * always described. When the application defines no error handler Hono would turn
450
- * a thrown error into a bare 500, so the adapter's own 400 envelope stays as the
451
- * fallback and those applications see no change at all.
564
+ * Throws a `ValidationError` so the failure travels the same path as every other error and
565
+ * reaches `ConfigService.onError`, which is what the documentation has always described.
566
+ *
567
+ * The adapter used to answer its own 400 here when no error handler was configured, which made
568
+ * a validation failure the one 4xx that reached neither `onError` nor the log. That envelope
569
+ * did not disappear with the branch - it moved onto `ValidationError.getResponse()`, which
570
+ * `defaultErrorResponse` falls back to.
452
571
  * @param {ZodError} error - The Zod failure
453
572
  * @param {string} target - Which part of the request failed
454
- * @param {Context} context - The Hono context
455
- * @returns {Response} The fallback response, when no error handler is configured
573
+ * @returns {never} Always throws
456
574
  */
457
- handleValidationFailure(error, target, context) {
458
- if (!this.hasErrorHandler) {
459
- return context.json({ error: 'Validation failed', details: flattenError(error), target }, 400);
460
- }
575
+ handleValidationFailure(error, target) {
461
576
  throw new ValidationError(error, target);
462
577
  }
463
578
  /**
@@ -529,66 +644,16 @@ export class HonoAdapter extends AsenaAdapter {
529
644
  .map(({ middleware }) => middleware);
530
645
  }
531
646
  /**
532
- * Extracts base path from a route path
533
- * Examples:
534
- * - "/api/users/:id" -> "/api/users"
535
- * - "/users" -> "/users"
536
- * - "/" -> "/"
537
- */
538
- extractBasePath(path) {
539
- // Remove trailing slash
540
- const normalized = path.endsWith('/') && path !== '/' ? path.slice(0, -1) : path;
541
- // Find the last segment without parameters
542
- const segments = normalized.split('/');
543
- const baseSegments = [];
544
- for (const segment of segments) {
545
- if (segment.startsWith(':') || segment.includes('*')) {
546
- break;
547
- }
548
- baseSegments.push(segment);
549
- }
550
- return baseSegments.join('/') || '/';
551
- }
552
- /**
553
- * Groups routes by their base path
554
- * Returns a map of base path -> routes with that base path
555
- */
556
- groupRoutesByBasePath(routes) {
557
- const groups = new Map();
558
- for (const route of routes) {
559
- const basePath = this.extractBasePath(route.path);
560
- if (!groups.has(basePath)) {
561
- groups.set(basePath, []);
562
- }
563
- groups.get(basePath).push(route);
564
- }
565
- return groups;
566
- }
567
- /**
568
- * Finds common middlewares across all routes in a group
569
- * Returns middlewares that appear in ALL routes
570
- */
571
- extractCommonMiddlewares(routes) {
572
- if (routes.length === 0)
573
- return [];
574
- if (routes.length === 1)
575
- return [];
576
- // Get middleware from first route
577
- const firstRouteMiddlewares = routes[0].middlewares || [];
578
- // Find middlewares that exist in all routes
579
- return firstRouteMiddlewares.filter((middleware) => {
580
- return routes.every((route) => {
581
- return (route.middlewares || []).some((mw) => {
582
- // Compare by constructor name (class identity)
583
- return mw.constructor.name === middleware.constructor.name;
584
- });
585
- });
586
- });
587
- }
588
- /**
589
- * Registers routes to Hono app with optimization
590
- * Groups routes by base path and applies common middlewares at group level
591
- * Also registers WebSocket routes
647
+ * Sorts the queued routes and registers each one with its own middlewares.
648
+ *
649
+ * There used to be a "common middleware" optimisation here: routes sharing a base path were
650
+ * mounted on a sub-app and the middlewares they had in common were hoisted to `group.use('*')`.
651
+ * It compared middlewares with `mw.constructor.name`, but by this point a middleware is the
652
+ * plain `{ handle, override }` literal PrepareMiddlewareService builds - so the name was
653
+ * `"Object"` for every one of them and the comparison was always true. Every route in a group
654
+ * got the *first* route's middlewares and had its own filtered away, which silently swapped
655
+ * authorisation guards between sibling routes. Measured at 100 routes it bought nothing, so
656
+ * it is gone rather than repaired.
592
657
  */
593
658
  async optimizeAndRegisterRoutes() {
594
659
  // Register HTTP routes
@@ -598,23 +663,8 @@ export class HonoAdapter extends AsenaAdapter {
598
663
  // from catching static routes like /count or /search.
599
664
  // @see routePriority.ts for the segment-based comparison algorithm.
600
665
  this.routeQueue.sort((a, b) => compareRoutePriority(a.path, b.path));
601
- // Group routes by base path
602
- const routeGroups = this.groupRoutesByBasePath(this.routeQueue);
603
- // Sort groups by the same priority algorithm to ensure correct inter-group order
604
- const sortedGroups = [...routeGroups.entries()].sort(([a], [b]) => compareRoutePriority(a, b));
605
- for (const [basePath, routes] of sortedGroups) {
606
- // Find common middlewares for this group
607
- const commonMiddlewares = this.extractCommonMiddlewares(routes);
608
- if (routes.length > 1 && commonMiddlewares.length > 0) {
609
- // Multiple routes with common middlewares - use grouping
610
- await this.registerRouteGroup(basePath, commonMiddlewares, routes);
611
- }
612
- else {
613
- // Single route or no common middlewares - register individually
614
- for (const route of routes) {
615
- await this.registerRouteDirect(route);
616
- }
617
- }
666
+ for (const route of this.routeQueue) {
667
+ await this.registerRouteDirect(route);
618
668
  }
619
669
  }
620
670
  // Register WebSocket routes
@@ -678,62 +728,6 @@ export class HonoAdapter extends AsenaAdapter {
678
728
  await next(); // Failed
679
729
  });
680
730
  }
681
- /**
682
- * Registers a group of routes with common middlewares at base path level
683
- */
684
- async registerRouteGroup(basePath, commonMiddlewares, routes) {
685
- // Create grouped Hono instance
686
- const group = new Hono({ strict: this._strict });
687
- // Global middlewares are registered at top level via registerGlobalMiddlewaresTopLevel()
688
- // Apply common middlewares to the entire group
689
- const preparedCommonMiddlewares = this.prepareMiddlewares(commonMiddlewares);
690
- if (preparedCommonMiddlewares.length > 0) {
691
- group.use('*', ...preparedCommonMiddlewares);
692
- }
693
- // Method map for group
694
- const groupMethodMap = {
695
- [HttpMethod.GET]: (path, ...handlers) => group.get(path, ...handlers),
696
- [HttpMethod.POST]: (path, ...handlers) => group.post(path, ...handlers),
697
- [HttpMethod.PUT]: (path, ...handlers) => group.put(path, ...handlers),
698
- [HttpMethod.DELETE]: (path, ...handlers) => group.delete(path, ...handlers),
699
- [HttpMethod.PATCH]: (path, ...handlers) => group.patch(path, ...handlers),
700
- [HttpMethod.OPTIONS]: (path, ...handlers) => group.options(path, ...handlers),
701
- [HttpMethod.CONNECT]: (path, ...handlers) => group.on([HttpMethod.CONNECT.toUpperCase()], path, ...handlers),
702
- // HEAD is handled automatically by Hono via GET routes (HTTP spec: HEAD = GET without body).
703
- [HttpMethod.HEAD]: (path, ...handlers) => group.get(path, ...handlers),
704
- [HttpMethod.TRACE]: (path, ...handlers) => group.on([HttpMethod.TRACE.toUpperCase()], path, ...handlers),
705
- };
706
- // Register each route in the group
707
- for (const route of routes) {
708
- // Remove common middlewares from route middlewares
709
- const uniqueMiddlewares = (route.middlewares || []).filter((mw) => !commonMiddlewares.some((common) => common.constructor.name === mw.constructor.name));
710
- const preparedMiddlewares = this.prepareMiddlewares(uniqueMiddlewares);
711
- const validators = route.validator ? await this.prepareValidator(route.validator) : [];
712
- const allMiddlewares = [...validators, ...preparedMiddlewares];
713
- const methodHandler = groupMethodMap[route.method] ??
714
- ((path, ...handlers) => group.on([route.method.toUpperCase()], path, ...handlers));
715
- // Calculate relative path
716
- let relativePath = route.path;
717
- if (route.path.startsWith(basePath) && basePath !== '/') {
718
- relativePath = route.path.slice(basePath.length);
719
- }
720
- if (!relativePath.startsWith('/')) {
721
- relativePath = '/' + relativePath;
722
- }
723
- // Normalize path for Hono trailing slash compatibility
724
- const normalizedRelativePath = this.normalizePath(relativePath);
725
- // Register to group
726
- if (route.staticServe) {
727
- methodHandler(normalizedRelativePath, ...allMiddlewares, serveStatic(this.prepareStaticServeOptions(route.staticServe)));
728
- }
729
- else {
730
- const handler = this.prepareHandler(route.handler);
731
- methodHandler(normalizedRelativePath, ...allMiddlewares, handler);
732
- }
733
- }
734
- // Mount group to main app (normalize basePath too)
735
- this.app.route(this.normalizePath(basePath), group);
736
- }
737
731
  /**
738
732
  * Registers a single route directly without grouping
739
733
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HonoAdapter.js","sourceRoot":"","sources":["../../lib/HonoAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HonoAdapter.js","sourceRoot":"","sources":["../../lib/HonoAdapter.ts"],"names":[],"mappings":"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"}