@adonisjs/http-server 7.6.1 → 8.0.0-next.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.
Files changed (63) hide show
  1. package/build/chunk-ASX56VAK.js +76 -0
  2. package/build/{chunk-7AGINHO3.js → chunk-VYBTM3NC.js} +1025 -607
  3. package/build/client.cjs +232 -0
  4. package/build/client.d.cts +258 -0
  5. package/build/client.d.ts +258 -0
  6. package/build/client.js +229 -0
  7. package/build/factories/http_server.d.ts +1 -1
  8. package/build/factories/main.d.ts +3 -3
  9. package/build/factories/main.js +89 -89
  10. package/build/factories/request.d.ts +1 -1
  11. package/build/factories/response.d.ts +2 -2
  12. package/build/factories/url_builder_factory.d.ts +25 -0
  13. package/build/index.d.ts +3 -2
  14. package/build/index.js +25 -23
  15. package/build/src/client/main.d.ts +3 -0
  16. package/build/src/client/router.d.ts +68 -0
  17. package/build/src/client/types.d.ts +181 -0
  18. package/build/src/client/url_builder.d.ts +13 -0
  19. package/build/src/cookies/client.d.ts +2 -2
  20. package/build/src/cookies/parser.d.ts +2 -2
  21. package/build/src/cookies/serializer.d.ts +7 -1
  22. package/build/src/define_middleware.d.ts +3 -2
  23. package/build/src/{exceptions.d.ts → errors.d.ts} +13 -1
  24. package/build/src/exception_handler.d.ts +2 -2
  25. package/build/src/helpers.d.ts +51 -15
  26. package/build/src/helpers.js +18 -0
  27. package/build/src/http_context/main.d.ts +3 -3
  28. package/build/src/qs.d.ts +3 -3
  29. package/build/src/redirect.d.ts +3 -2
  30. package/build/src/request.d.ts +10 -9
  31. package/build/src/response.d.ts +1 -1
  32. package/build/src/router/brisk.d.ts +4 -3
  33. package/build/src/router/executor.d.ts +2 -2
  34. package/build/src/router/factories/use_return_value.d.ts +6 -1
  35. package/build/src/router/group.d.ts +4 -4
  36. package/build/src/router/{lookup_store → legacy}/url_builder.d.ts +20 -4
  37. package/build/src/router/main.d.ts +52 -12
  38. package/build/src/router/resource.d.ts +4 -3
  39. package/build/src/router/route.d.ts +3 -2
  40. package/build/src/router/signed_url_builder.d.ts +14 -0
  41. package/build/src/router/store.d.ts +3 -2
  42. package/build/src/server/factories/middleware_handler.d.ts +3 -3
  43. package/build/src/server/factories/{final_handler.d.ts → route_finder.d.ts} +2 -2
  44. package/build/src/server/main.d.ts +7 -3
  45. package/build/src/tracing_channels.d.ts +23 -0
  46. package/build/src/types/main.d.ts +7 -7
  47. package/build/src/types/main.js +0 -1
  48. package/build/src/types/middleware.d.ts +34 -1
  49. package/build/src/types/request.d.ts +4 -0
  50. package/build/src/types/response.d.ts +1 -1
  51. package/build/src/types/route.d.ts +50 -51
  52. package/build/src/types/server.d.ts +1 -1
  53. package/build/src/types/tracing_channels.d.ts +6 -0
  54. package/build/src/utils.d.ts +28 -0
  55. package/package.json +60 -48
  56. package/build/chunk-7AGINHO3.js.map +0 -1
  57. package/build/factories/main.js.map +0 -1
  58. package/build/index.js.map +0 -1
  59. package/build/src/router/lookup_store/main.d.ts +0 -48
  60. package/build/src/router/lookup_store/route_finder.d.ts +0 -25
  61. package/build/src/router/parser.d.ts +0 -5
  62. package/build/src/types/base.d.ts +0 -19
  63. package/build/src/types/main.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../factories/http_context.ts","../../factories/request.ts","../../factories/qs_parser_factory.ts","../../factories/response.ts","../../factories/router.ts","../../factories/server_factory.ts"],"sourcesContent":["/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { Container } from '@adonisjs/fold'\nimport type { Logger } from '@adonisjs/logger'\nimport { LoggerFactory } from '@adonisjs/logger/factories'\n\nimport { RequestFactory } from './request.js'\nimport { ResponseFactory } from './response.js'\nimport type { Request } from '../src/request.js'\nimport type { Response } from '../src/response.js'\nimport { HttpContext } from '../src/http_context/main.js'\n\ntype FactoryParameters = {\n request: Request\n response: Response\n logger: Logger\n}\n\n/**\n * HttpContext factory is used to generate Http context class instances for\n * testing\n */\nexport class HttpContextFactory {\n #parameters: Partial<FactoryParameters> = {}\n\n /**\n * Returns the request class instance\n */\n #createRequest() {\n return this.#parameters.request || new RequestFactory().create()\n }\n\n /**\n * Returns the response class instance\n */\n #createResponse() {\n return this.#parameters.response || new ResponseFactory().create()\n }\n\n /**\n * Returns an instance of the logger class\n */\n #createLogger() {\n return this.#parameters.logger || new LoggerFactory().create()\n }\n\n /**\n * Merge factory params\n */\n merge(params: Partial<FactoryParameters>) {\n Object.assign(this.#parameters, params)\n return this\n }\n\n /**\n * Create request\n */\n create() {\n return new HttpContext(\n this.#createRequest(),\n this.#createResponse(),\n this.#createLogger(),\n new Container().createResolver()\n )\n }\n}\n","/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { Socket } from 'node:net'\nimport proxyAddr from 'proxy-addr'\nimport type { Encryption } from '@adonisjs/encryption'\nimport { IncomingMessage, ServerResponse } from 'node:http'\nimport { EncryptionFactory } from '@adonisjs/encryption/factories'\n\nimport { Request } from '../src/request.js'\nimport { RequestConfig } from '../src/types/request.js'\nimport { QsParserFactory } from './qs_parser_factory.js'\n\ntype FactoryParameters = {\n url: string\n method: string\n req: IncomingMessage\n res: ServerResponse\n encryption: Encryption\n config: Partial<RequestConfig>\n}\n\n/**\n * Request factory is used to generate request class instances for\n * testing\n */\nexport class RequestFactory {\n #parameters: Partial<FactoryParameters> = {}\n\n /**\n * Returns the config for the request class\n */\n #getConfig() {\n return {\n allowMethodSpoofing: false,\n trustProxy: proxyAddr.compile('loopback'),\n subdomainOffset: 2,\n generateRequestId: false,\n ...this.#parameters.config,\n }\n }\n\n /**\n * Returns the HTTP req object\n */\n #createRequest() {\n const req = this.#parameters.req || new IncomingMessage(new Socket())\n if (this.#parameters.url) {\n req.url = this.#parameters.url\n }\n\n if (this.#parameters.method) {\n req.method = this.#parameters.method\n }\n\n return req\n }\n\n /**\n * Returns the HTTP res object\n */\n #createResponse(req: IncomingMessage) {\n return this.#parameters.res || new ServerResponse(req)\n }\n\n /**\n * Returns an instance of the encryptor to encrypt\n * signed URLs\n */\n #createEncryption() {\n return this.#parameters.encryption || new EncryptionFactory().create()\n }\n\n /**\n * Merge factory params\n */\n merge(params: Partial<FactoryParameters>) {\n Object.assign(this.#parameters, params)\n return this\n }\n\n /**\n * Create request\n */\n create() {\n const req = this.#createRequest()\n return new Request(\n req,\n this.#createResponse(req),\n this.#createEncryption(),\n this.#getConfig(),\n new QsParserFactory().create()\n )\n }\n}\n","/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { Qs } from '../src/qs.js'\nimport type { QSParserConfig } from '../src/types/qs.js'\n\n/**\n * QS Parser factory is used to generate the query string\n * parser for testing\n */\nexport class QsParserFactory {\n #options: QSParserConfig = {\n parse: {\n depth: 5,\n parameterLimit: 1000,\n allowSparse: false,\n arrayLimit: 20,\n comma: true,\n },\n stringify: {\n encode: true,\n encodeValuesOnly: false,\n arrayFormat: 'indices',\n skipNulls: false,\n },\n }\n\n /**\n * Merge encryption factory options\n */\n merge(\n options: Partial<{\n parse: Partial<QSParserConfig['parse']>\n stringify: Partial<QSParserConfig['stringify']>\n }>\n ) {\n Object.assign(this.#options.parse, options.parse)\n Object.assign(this.#options.stringify, options.stringify)\n return this\n }\n\n /**\n * Create instance of the logger class\n */\n create() {\n return new Qs(this.#options)\n }\n}\n","/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { Socket } from 'node:net'\nimport type { Encryption } from '@adonisjs/encryption'\nimport { IncomingMessage, ServerResponse } from 'node:http'\nimport { EncryptionFactory } from '@adonisjs/encryption/factories'\n\nimport { RouterFactory } from './router.js'\nimport { Response } from '../src/response.js'\nimport { Router } from '../src/router/main.js'\nimport { ResponseConfig } from '../src/types/response.js'\nimport { QsParserFactory } from './qs_parser_factory.js'\n\ntype FactoryParameters = {\n req: IncomingMessage\n res: ServerResponse\n encryption: Encryption\n config: Partial<ResponseConfig>\n router: Router\n}\n\n/**\n * Response factory is used to generate response class instances for\n * testing\n */\nexport class ResponseFactory {\n #parameters: Partial<FactoryParameters> = {}\n\n /**\n * Returns the config for the request class\n */\n #getConfig() {\n return {\n etag: false,\n jsonpCallbackName: 'callback',\n cookie: {\n maxAge: 90,\n path: '/',\n httpOnly: true,\n sameSite: false,\n secure: false,\n },\n ...this.#parameters.config,\n }\n }\n\n /**\n * Returns the HTTP req object\n */\n #createRequest() {\n return this.#parameters.req || new IncomingMessage(new Socket())\n }\n\n /**\n * Returns an instance of the router\n */\n #createRouter() {\n return this.#parameters.router || new RouterFactory().create()\n }\n\n /**\n * Returns the HTTP res object\n */\n #createResponse(req: IncomingMessage) {\n return this.#parameters.res || new ServerResponse(req)\n }\n\n /**\n * Returns an instance of the encryptor to encrypt\n * signed URLs\n */\n #createEncryption() {\n return this.#parameters.encryption || new EncryptionFactory().create()\n }\n\n /**\n * Merge factory params\n */\n merge(params: Partial<FactoryParameters>) {\n Object.assign(this.#parameters, params)\n return this\n }\n\n /**\n * Create response class instance\n */\n create() {\n const req = this.#createRequest()\n\n return new Response(\n req,\n this.#createResponse(req),\n this.#createEncryption(),\n this.#getConfig(),\n this.#createRouter(),\n new QsParserFactory().create()\n )\n }\n}\n","/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport type { Encryption } from '@adonisjs/encryption'\nimport type { Application } from '@adonisjs/application'\nimport { AppFactory } from '@adonisjs/application/factories'\nimport { EncryptionFactory } from '@adonisjs/encryption/factories'\n\nimport { Router } from '../src/router/main.js'\nimport { QsParserFactory } from './qs_parser_factory.js'\n\ntype FactoryParameters = {\n app: Application<any>\n encryption: Encryption\n}\n\n/**\n * Router factory is used to generate router class instances for\n * testing\n */\nexport class RouterFactory {\n #parameters: Partial<FactoryParameters> = {}\n\n /**\n * Returns an instance of the application class\n */\n #getApp() {\n return this.#parameters.app || new AppFactory().create(new URL('./app/', import.meta.url))\n }\n\n /**\n * Returns an instance of the encryptor to encrypt\n * signed URLs\n */\n #createEncryption() {\n return this.#parameters.encryption || new EncryptionFactory().create()\n }\n\n /**\n * Merge factory params\n */\n merge(params: Partial<FactoryParameters>) {\n Object.assign(this.#parameters, params)\n return this\n }\n\n /**\n * Create router instance\n */\n create() {\n return new Router(this.#getApp(), this.#createEncryption(), new QsParserFactory().create())\n }\n}\n","/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { Logger } from '@adonisjs/logger'\nimport { Emitter } from '@adonisjs/events'\nimport type { Encryption } from '@adonisjs/encryption'\nimport type { Application } from '@adonisjs/application'\nimport { AppFactory } from '@adonisjs/application/factories'\nimport { EncryptionFactory } from '@adonisjs/encryption/factories'\n\nimport { Server } from '../src/server/main.js'\nimport { defineConfig } from '../src/define_config.js'\nimport type { ServerConfig } from '../src/types/server.js'\n\ntype FactoryParameters = {\n app: Application<any>\n logger: Logger\n encryption: Encryption\n emitter: Emitter<any>\n config: Partial<ServerConfig>\n}\n\n/**\n * Server factory is used to generate server class instances for\n * testing\n */\nexport class ServerFactory {\n #parameters: Partial<FactoryParameters> = {}\n\n /**\n * Returns the emitter instance\n */\n #getEmitter() {\n return this.#parameters.emitter || new Emitter(this.#getApp())\n }\n\n /**\n * Returns the logger instance\n */\n #getLogger() {\n return this.#parameters.logger || new Logger({ enabled: false })\n }\n\n /**\n * Returns the config for the server class\n */\n #getConfig() {\n return defineConfig(this.#parameters.config || {})\n }\n\n /**\n * Returns an instance of the application class\n */\n #getApp() {\n return this.#parameters.app || new AppFactory().create(new URL('./app/', import.meta.url))\n }\n\n /**\n * Returns an instance of the encryptor to encrypt\n * signed URLs\n */\n #createEncryption() {\n return this.#parameters.encryption || new EncryptionFactory().create()\n }\n\n /**\n * Merge factory params\n */\n merge(params: Partial<FactoryParameters>) {\n Object.assign(this.#parameters, params)\n return this\n }\n\n /**\n * Create server instance\n */\n create() {\n return new Server(\n this.#getApp(),\n this.#createEncryption(),\n this.#getEmitter(),\n this.#getLogger(),\n this.#getConfig()\n )\n }\n}\n"],"mappings":"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","names":["Socket","IncomingMessage","ServerResponse","EncryptionFactory","EncryptionFactory","EncryptionFactory","IncomingMessage","Socket","ServerResponse","EncryptionFactory","AppFactory","EncryptionFactory","AppFactory","EncryptionFactory"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/exception_handler.ts"],"sourcesContent":["/*\n * @adonisjs/http-server\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport is from '@sindresorhus/is'\nimport Macroable from '@poppinss/macroable'\nimport type { Level } from '@adonisjs/logger/types'\n\nimport { parseRange } from './helpers.js'\nimport * as errors from './exceptions.js'\nimport type { HttpContext } from './http_context/main.js'\nimport type { HttpError, StatusPageRange, StatusPageRenderer } from './types/server.js'\n\n/**\n * The base HTTP exception handler one can inherit from to handle\n * HTTP exceptions.\n *\n * The HTTP exception handler has support for\n *\n * - Ability to render exceptions by calling the render method on the exception.\n * - Rendering status pages\n * - Pretty printing errors during development\n * - Transforming errors to JSON or HTML using content negotiation\n * - Reporting errors\n */\nexport class ExceptionHandler extends Macroable {\n /**\n * Computed from the status pages property\n */\n #expandedStatusPages?: Record<number, StatusPageRenderer>\n\n /**\n * Whether or not to render debug info. When set to true, the errors\n * will have the complete error stack.\n */\n protected debug: boolean = process.env.NODE_ENV !== 'production'\n\n /**\n * Whether or not to render status pages. When set to true, the unhandled\n * errors with matching status codes will be rendered using a status\n * page.\n */\n protected renderStatusPages: boolean = process.env.NODE_ENV === 'production'\n\n /**\n * A collection of error status code range and the view to render.\n */\n protected statusPages: Record<StatusPageRange, StatusPageRenderer> = {}\n\n /**\n * Enable/disable errors reporting\n */\n protected reportErrors: boolean = true\n\n /**\n * An array of exception classes to ignore when\n * reporting an error\n */\n protected ignoreExceptions: any[] = [\n errors.E_HTTP_EXCEPTION,\n errors.E_ROUTE_NOT_FOUND,\n errors.E_CANNOT_LOOKUP_ROUTE,\n errors.E_HTTP_REQUEST_ABORTED,\n ]\n\n /**\n * An array of HTTP status codes to ignore when reporting\n * an error\n */\n protected ignoreStatuses: number[] = [400, 422, 401]\n\n /**\n * An array of error codes to ignore when reporting\n * an error\n */\n protected ignoreCodes: string[] = []\n\n /**\n * Expands status pages\n */\n #expandStatusPages() {\n if (!this.#expandedStatusPages) {\n this.#expandedStatusPages = Object.keys(this.statusPages).reduce(\n (result, range) => {\n const renderer = this.statusPages[range as StatusPageRange]\n result = Object.assign(result, parseRange(range, renderer))\n return result\n },\n {} as Record<number, StatusPageRenderer>\n )\n }\n\n return this.#expandedStatusPages\n }\n\n /**\n * Forcefully tweaking the type of the error object to\n * have known properties.\n */\n #toHttpError(error: unknown): HttpError {\n const httpError: any = is.object(error) ? error : new Error(String(error))\n if (!httpError.message) {\n httpError.message = 'Internal server error'\n }\n if (!httpError.status) {\n httpError.status = 500\n }\n return httpError\n }\n\n /**\n * Error reporting context\n */\n protected context(ctx: HttpContext): any {\n const requestId = ctx.request.id()\n return requestId\n ? {\n 'x-request-id': requestId,\n }\n : {}\n }\n\n /**\n * Returns the log level for an error based upon the error\n * status code.\n */\n protected getErrorLogLevel(error: HttpError): Level {\n if (error.status >= 500) {\n return 'error'\n }\n\n if (error.status >= 400) {\n return 'warn'\n }\n\n return 'info'\n }\n\n /**\n * A boolean to control if errors should be rendered with\n * all the available debugging info.\n */\n protected isDebuggingEnabled(_: HttpContext): boolean {\n return this.debug\n }\n\n /**\n * Returns a boolean by checking if an error should be reported.\n */\n protected shouldReport(error: HttpError): boolean {\n if (this.reportErrors === false) {\n return false\n }\n\n if (this.ignoreStatuses.includes(error.status)) {\n return false\n }\n\n if (error.code && this.ignoreCodes.includes(error.code)) {\n return false\n }\n\n if (this.ignoreExceptions.find((exception) => error instanceof exception)) {\n return false\n }\n\n return true\n }\n\n /**\n * Renders an error to JSON response\n */\n async renderErrorAsJSON(error: HttpError, ctx: HttpContext) {\n if (this.isDebuggingEnabled(ctx)) {\n const { default: Youch } = await import('youch')\n const json = await new Youch(error, ctx.request.request).toJSON()\n ctx.response.status(error.status).send(json.error)\n return\n }\n\n ctx.response.status(error.status).send({ message: error.message })\n }\n\n /**\n * Renders an error to JSON API response\n */\n async renderErrorAsJSONAPI(error: HttpError, ctx: HttpContext) {\n if (this.isDebuggingEnabled(ctx)) {\n const { default: Youch } = await import('youch')\n const json = await new Youch(error, ctx.request.request).toJSON()\n ctx.response.status(error.status).send(json.error)\n return\n }\n\n ctx.response.status(error.status).send({\n errors: [\n {\n title: error.message,\n code: error.code,\n status: error.status,\n },\n ],\n })\n }\n\n /**\n * Renders an error to HTML response\n */\n async renderErrorAsHTML(error: HttpError, ctx: HttpContext) {\n if (this.isDebuggingEnabled(ctx)) {\n const { default: Youch } = await import('youch')\n const html = await new Youch(error, ctx.request.request).toHTML({\n cspNonce: 'nonce' in ctx.response ? ctx.response.nonce : undefined,\n })\n ctx.response.status(error.status).send(html)\n return\n }\n\n ctx.response.status(error.status).send(`<p> ${error.message} </p>`)\n }\n\n /**\n * Renders the validation error message to a JSON\n * response\n */\n async renderValidationErrorAsJSON(error: HttpError, ctx: HttpContext) {\n ctx.response.status(error.status).send({\n errors: error.messages,\n })\n }\n\n /**\n * Renders the validation error message as per JSON API\n * spec\n */\n async renderValidationErrorAsJSONAPI(error: HttpError, ctx: HttpContext) {\n ctx.response.status(error.status).send({\n errors: error.messages.map((message: any) => {\n return {\n title: message.message,\n code: message.rule,\n source: {\n pointer: message.field,\n },\n meta: message.meta,\n }\n }),\n })\n }\n\n /**\n * Renders the validation error as an HTML string\n */\n async renderValidationErrorAsHTML(error: HttpError, ctx: HttpContext) {\n ctx.response\n .status(error.status)\n .type('html')\n .send(\n error.messages\n .map((message: any) => {\n return `${message.field} - ${message.message}`\n })\n .join('<br />')\n )\n }\n\n /**\n * Renders the error to response\n */\n renderError(error: HttpError, ctx: HttpContext) {\n switch (ctx.request.accepts(['html', 'application/vnd.api+json', 'json'])) {\n case 'application/vnd.api+json':\n return this.renderErrorAsJSONAPI(error, ctx)\n case 'json':\n return this.renderErrorAsJSON(error, ctx)\n case 'html':\n default:\n return this.renderErrorAsHTML(error, ctx)\n }\n }\n\n /**\n * Renders the validation error to response\n */\n renderValidationError(error: HttpError, ctx: HttpContext) {\n switch (ctx.request.accepts(['html', 'application/vnd.api+json', 'json'])) {\n case 'application/vnd.api+json':\n return this.renderValidationErrorAsJSONAPI(error, ctx)\n case 'json':\n return this.renderValidationErrorAsJSON(error, ctx)\n case 'html':\n default:\n return this.renderValidationErrorAsHTML(error, ctx)\n }\n }\n\n /**\n * Reports an error during an HTTP request\n */\n async report(error: unknown, ctx: HttpContext) {\n const httpError = this.#toHttpError(error)\n if (!this.shouldReport(httpError)) {\n return\n }\n\n if (typeof httpError.report === 'function') {\n httpError.report(httpError, ctx)\n return\n }\n\n /**\n * Log the error using the logger\n */\n const level = this.getErrorLogLevel(httpError)\n ctx.logger.log(\n level,\n {\n ...(level === 'error' || level === 'fatal' ? { err: httpError } : {}),\n ...this.context(ctx),\n },\n httpError.message\n )\n }\n\n /**\n * Handles the error during the HTTP request.\n */\n async handle(error: unknown, ctx: HttpContext) {\n const httpError = this.#toHttpError(error)\n\n /**\n * Self handle exception\n */\n if (typeof httpError.handle === 'function') {\n return httpError.handle(httpError, ctx)\n }\n\n /**\n * Handle validation error using the validation error\n * renderers\n */\n if (httpError.code === 'E_VALIDATION_ERROR' && 'messages' in httpError) {\n return this.renderValidationError(httpError, ctx)\n }\n\n /**\n * Render status page\n */\n const statusPages = this.#expandStatusPages()\n if (this.renderStatusPages && statusPages[httpError.status]) {\n const statusPageResponse = await statusPages[httpError.status](httpError, ctx)\n\n /**\n * Use return value and convert it into a response\n */\n if (\n statusPageResponse !== undefined && // Return value is explicitly defined\n !ctx.response.hasLazyBody && // Lazy body is not set\n statusPageResponse !== ctx.response // Return value is not the instance of response object\n ) {\n return ctx.response.safeStatus(httpError.status).send(statusPageResponse)\n }\n return statusPageResponse\n }\n\n /**\n * Use the format renderers.\n */\n return this.renderError(httpError, ctx)\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,48 +0,0 @@
1
- import Macroable from '@poppinss/macroable';
2
- import type { Encryption } from '@adonisjs/encryption';
3
- import type { Qs } from '../../qs.js';
4
- import { UrlBuilder } from './url_builder.js';
5
- import type { RouteJSON } from '../../types/route.js';
6
- /**
7
- * Lookup store exposes the API to lookup routes and
8
- * make URLs for registered routes.
9
- */
10
- export declare class LookupStore extends Macroable {
11
- #private;
12
- constructor(encryption: Encryption, qsParser: Qs);
13
- /**
14
- * Register route JSON payload
15
- */
16
- register(route: RouteJSON): void;
17
- /**
18
- * Returns an instance of the URL builder for making
19
- * route URIs
20
- */
21
- builder(): UrlBuilder;
22
- /**
23
- * Returns an instance of the URL builder for a specific
24
- * domain.
25
- */
26
- builderForDomain(domain: string): UrlBuilder;
27
- /**
28
- * Finds a route by its identifier. The identifier can be the
29
- * route name, controller.method name or the route pattern
30
- * itself.
31
- */
32
- find(routeIdentifier: string, domain?: string): RouteJSON | null;
33
- /**
34
- * Finds a route by its identifier. The identifier can be the
35
- * route name, controller.method name or the route pattern
36
- * itself.
37
- *
38
- * An error is raised when unable to find the route.
39
- */
40
- findOrFail(routeIdentifier: string, domain?: string): RouteJSON;
41
- /**
42
- * Check if a route exists. The identifier can be the
43
- * route name, controller.method name or the route pattern
44
- * itself.
45
- */
46
- has(routeIdentifier: string, domain?: string): boolean;
47
- toJSON(): Record<string, RouteJSON[]>;
48
- }
@@ -1,25 +0,0 @@
1
- import type { RouteJSON } from '../../types/route.js';
2
- /**
3
- * Route finder is used to find a route by its name, route pattern
4
- * or the controller.method name.
5
- */
6
- export declare class RouteFinder {
7
- #private;
8
- register(route: RouteJSON): void;
9
- /**
10
- * Find a route by indentifier
11
- */
12
- find(routeIdentifier: string): RouteJSON | null;
13
- /**
14
- * Find a route by indentifier or fail
15
- */
16
- findOrFail(routeIdentifier: string): RouteJSON;
17
- /**
18
- * Find if a route exists
19
- */
20
- has(routeIdentifier: string): boolean;
21
- /**
22
- * Returns an array of registered routes
23
- */
24
- toJSON(): RouteJSON[];
25
- }
@@ -1,5 +0,0 @@
1
- import { MatchItRouteToken, RouteMatchers } from '../types/route.js';
2
- /**
3
- * Parses the route pattern
4
- */
5
- export declare function parseRoutePattern(pattern: string, matchers?: RouteMatchers): MatchItRouteToken[];
@@ -1,19 +0,0 @@
1
- export type { NextFn } from '@poppinss/middleware/types';
2
- /**
3
- * Accept one or more of the mentioned type
4
- */
5
- export type OneOrMore<T> = T | T[];
6
- /**
7
- * Class constructor type
8
- */
9
- export type Constructor<T> = new (...args: any[]) => T;
10
- /**
11
- * A function that lazily imports a middleware
12
- */
13
- export type LazyImport<DefaultExport> = () => Promise<{
14
- default: DefaultExport;
15
- }>;
16
- /**
17
- * Unwraps default export from a lazy import function
18
- */
19
- export type UnWrapLazyImport<Fn extends LazyImport<any>> = Awaited<ReturnType<Fn>>['default'];
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}