{"version":3,"file":"koa-methods.mjs","sources":["../../../src/services/server/koa-methods.ts"],"sourcesContent":["import { camelCase } from 'lodash/fp';\nimport { STATUS_CODES } from 'node:http';\n\nexport interface ErrorMethodEntry {\n /** HTTP status code (400–599). */\n code: number;\n /** Reason phrase from `node:http` `STATUS_CODES`, e.g. \"Not Found\". */\n statusName: string;\n /** camelCased helper name registered on the context, e.g. \"notFound\". */\n methodName: keyof ContextDelegatedResponseErrorMethods;\n}\n\n/**\n * Single source of truth for the generated error helpers: yields one entry per\n * 4xx/5xx `node:http` status. Both the runtime registration (`koa.ts`) and the\n * type/runtime sync test iterate this, so they cannot drift.\n */\nexport function* errorMethodEntries(): Generator {\n for (const [codeStr, statusName] of Object.entries(STATUS_CODES)) {\n const code = Number(codeStr);\n\n if (statusName && code >= 400 && code < 600) {\n yield {\n code,\n statusName,\n methodName: camelCase(statusName) as keyof ContextDelegatedResponseErrorMethods,\n };\n }\n }\n}\n\nexport interface ContextDelegatedResponseErrorMethods {\n /** 400 Bad Request */\n badRequest(response?: string | object, details?: object): void;\n /** 401 Unauthorized */\n unauthorized(response?: string | object, details?: object): void;\n /** 402 Payment Required */\n paymentRequired(response?: string | object, details?: object): void;\n /** 403 Forbidden */\n forbidden(response?: string | object, details?: object): void;\n /** 404 Not Found */\n notFound(response?: string | object, details?: object): void;\n /** 405 Method Not Allowed */\n methodNotAllowed(response?: string | object, details?: object): void;\n /** 406 Not Acceptable */\n notAcceptable(response?: string | object, details?: object): void;\n /** 407 Proxy Authentication Required */\n proxyAuthenticationRequired(response?: string | object, details?: object): void;\n /** 408 Request Timeout */\n requestTimeout(response?: string | object, details?: object): void;\n /** 409 Conflict */\n conflict(response?: string | object, details?: object): void;\n /** 410 Gone */\n gone(response?: string | object, details?: object): void;\n /** 411 Length Required */\n lengthRequired(response?: string | object, details?: object): void;\n /** 412 Precondition Failed */\n preconditionFailed(response?: string | object, details?: object): void;\n /** 413 Payload Too Large */\n payloadTooLarge(response?: string | object, details?: object): void;\n /** 414 Uri Too Long */\n uriTooLong(response?: string | object, details?: object): void;\n /** 415 Unsupported Media Type */\n unsupportedMediaType(response?: string | object, details?: object): void;\n /** 416 Range Not Satisfiable */\n rangeNotSatisfiable(response?: string | object, details?: object): void;\n /** 417 Expectation Failed */\n expectationFailed(response?: string | object, details?: object): void;\n /** 418 Im A Teapot */\n imATeapot(response?: string | object, details?: object): void;\n /** 421 Misdirected Request */\n misdirectedRequest(response?: string | object, details?: object): void;\n /** 422 Unprocessable Entity */\n unprocessableEntity(response?: string | object, details?: object): void;\n /** 423 Locked */\n locked(response?: string | object, details?: object): void;\n /** 424 Failed Dependency */\n failedDependency(response?: string | object, details?: object): void;\n /** 425 Too Early */\n tooEarly(response?: string | object, details?: object): void;\n /** 426 Upgrade Required */\n upgradeRequired(response?: string | object, details?: object): void;\n /** 428 Precondition Required */\n preconditionRequired(response?: string | object, details?: object): void;\n /** 429 Too Many Requests */\n tooManyRequests(response?: string | object, details?: object): void;\n /** 431 Request Header Fields Too Large */\n requestHeaderFieldsTooLarge(response?: string | object, details?: object): void;\n /** 451 Unavailable For Legal Reasons */\n unavailableForLegalReasons(response?: string | object, details?: object): void;\n /** 500 Internal Server Error */\n internalServerError(response?: string | object, details?: object): void;\n /** 501 Not Implemented */\n notImplemented(response?: string | object, details?: object): void;\n /** 502 Bad Gateway */\n badGateway(response?: string | object, details?: object): void;\n /** 503 Service Unavailable */\n serviceUnavailable(response?: string | object, details?: object): void;\n /** 504 Gateway Timeout */\n gatewayTimeout(response?: string | object, details?: object): void;\n /** 505 Http Version Not Supported */\n httpVersionNotSupported(response?: string | object, details?: object): void;\n /** 506 Variant Also Negotiates */\n variantAlsoNegotiates(response?: string | object, details?: object): void;\n /** 507 Insufficient Storage */\n insufficientStorage(response?: string | object, details?: object): void;\n /** 508 Loop Detected */\n loopDetected(response?: string | object, details?: object): void;\n /** 509 Bandwidth Limit Exceeded */\n bandwidthLimitExceeded(response?: string | object, details?: object): void;\n /** 510 Not Extended */\n notExtended(response?: string | object, details?: object): void;\n /** 511 Network Authentication Required */\n networkAuthenticationRequired(response?: string | object, details?: object): void;\n}\n\nexport interface ContextDelegatedResponseSuccessMethods {\n /** 200 */\n send(response: unknown, status?: number): void;\n /** 201 */\n created(response?: unknown): void;\n /** 204 | 200 */\n deleted(response?: unknown): void;\n}\n"],"names":["errorMethodEntries","codeStr","statusName","Object","entries","STATUS_CODES","code","Number","methodName","camelCase"],"mappings":";;;AAYA;;;;AAIC,IACM,UAAUA,kBAAAA,GAAAA;IACf,KAAK,MAAM,CAACC,OAAAA,EAASC,UAAAA,CAAW,IAAIC,MAAAA,CAAOC,OAAO,CAACC,YAAAA,CAAAA,CAAe;AAChE,QAAA,MAAMC,OAAOC,MAAAA,CAAON,OAAAA,CAAAA;AAEpB,QAAA,IAAIC,UAAAA,IAAcI,IAAAA,IAAQ,GAAA,IAAOA,IAAAA,GAAO,GAAA,EAAK;YAC3C,MAAM;AACJA,gBAAAA,IAAAA;AACAJ,gBAAAA,UAAAA;AACAM,gBAAAA,UAAAA,EAAYC,SAAAA,CAAUP,UAAAA;AACxB,aAAA;AACF,QAAA;AACF,IAAA;AACF;;;;"}