adorn-api 1.0.4 → 1.0.6
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.
- package/README.md +766 -51
- package/dist/adapter/express/bootstrap.d.ts +24 -0
- package/dist/adapter/express/bootstrap.d.ts.map +1 -0
- package/dist/adapter/express/index.d.ts +41 -0
- package/dist/adapter/express/index.d.ts.map +1 -0
- package/dist/adapter/express/merge.d.ts +28 -0
- package/dist/adapter/express/merge.d.ts.map +1 -0
- package/dist/cli.cjs +1571 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +1552 -2
- package/dist/cli.js.map +1 -1
- package/dist/compiler/analyze/scanControllers.d.ts +35 -0
- package/dist/compiler/analyze/scanControllers.d.ts.map +1 -0
- package/dist/compiler/cache/isStale.d.ts +20 -0
- package/dist/compiler/cache/isStale.d.ts.map +1 -0
- package/dist/compiler/cache/loadArtifacts.d.ts +113 -0
- package/dist/compiler/cache/loadArtifacts.d.ts.map +1 -0
- package/dist/compiler/cache/schema.d.ts +18 -0
- package/dist/compiler/cache/schema.d.ts.map +1 -0
- package/dist/compiler/cache/writeCache.d.ts +8 -0
- package/dist/compiler/cache/writeCache.d.ts.map +1 -0
- package/dist/compiler/manifest/emit.d.ts +7 -0
- package/dist/compiler/manifest/emit.d.ts.map +1 -0
- package/dist/compiler/manifest/format.d.ts +76 -0
- package/dist/compiler/manifest/format.d.ts.map +1 -0
- package/dist/compiler/runner/createProgram.d.ts +8 -0
- package/dist/compiler/runner/createProgram.d.ts.map +1 -0
- package/dist/compiler/schema/extractAnnotations.d.ts +10 -0
- package/dist/compiler/schema/extractAnnotations.d.ts.map +1 -0
- package/dist/compiler/schema/openapi.d.ts +19 -0
- package/dist/compiler/schema/openapi.d.ts.map +1 -0
- package/dist/compiler/schema/typeToJsonSchema.d.ts +49 -0
- package/dist/compiler/schema/typeToJsonSchema.d.ts.map +1 -0
- package/dist/compiler/validation/emitPrecompiledValidators.d.ts +46 -0
- package/dist/compiler/validation/emitPrecompiledValidators.d.ts.map +1 -0
- package/dist/decorators/Auth.d.ts +5 -0
- package/dist/decorators/Auth.d.ts.map +1 -0
- package/dist/decorators/Controller.d.ts +2 -0
- package/dist/decorators/Controller.d.ts.map +1 -0
- package/dist/decorators/Public.d.ts +2 -0
- package/dist/decorators/Public.d.ts.map +1 -0
- package/dist/decorators/Use.d.ts +5 -0
- package/dist/decorators/Use.d.ts.map +1 -0
- package/dist/decorators/index.d.ts +5 -6
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/methods.d.ts +5 -145
- package/dist/decorators/methods.d.ts.map +1 -1
- package/dist/express.cjs +775 -0
- package/dist/express.cjs.map +1 -0
- package/dist/express.d.ts +6 -1
- package/dist/express.d.ts.map +1 -1
- package/dist/express.js +738 -1
- package/dist/express.js.map +1 -1
- package/dist/http.d.ts +29 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/index.cjs +573 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +12 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +490 -26
- package/dist/index.js.map +1 -1
- package/dist/metal/index.cjs +219 -0
- package/dist/metal/index.cjs.map +1 -0
- package/dist/metal/index.d.ts +6 -0
- package/dist/metal/index.d.ts.map +1 -0
- package/dist/metal/index.js +188 -0
- package/dist/metal/index.js.map +1 -0
- package/dist/metal/readMetalBag.d.ts +33 -0
- package/dist/metal/readMetalBag.d.ts.map +1 -0
- package/dist/metal/registerMetalEntities.d.ts +6 -0
- package/dist/metal/registerMetalEntities.d.ts.map +1 -0
- package/dist/metal/schemaFromEntity.d.ts +11 -0
- package/dist/metal/schemaFromEntity.d.ts.map +1 -0
- package/dist/metal/symbolMetadata.d.ts +2 -0
- package/dist/metal/symbolMetadata.d.ts.map +1 -0
- package/dist/runtime/auth/runtime.d.ts +34 -0
- package/dist/runtime/auth/runtime.d.ts.map +1 -0
- package/dist/runtime/metadata/bucket.d.ts +3 -0
- package/dist/runtime/metadata/bucket.d.ts.map +1 -0
- package/dist/runtime/metadata/key.d.ts +2 -0
- package/dist/runtime/metadata/key.d.ts.map +1 -0
- package/dist/runtime/metadata/read.d.ts +3 -0
- package/dist/runtime/metadata/read.d.ts.map +1 -0
- package/dist/runtime/metadata/types.d.ts +21 -0
- package/dist/runtime/metadata/types.d.ts.map +1 -0
- package/dist/runtime/polyfill.d.ts +2 -0
- package/dist/runtime/polyfill.d.ts.map +1 -0
- package/dist/runtime/upload.d.ts +7 -0
- package/dist/runtime/upload.d.ts.map +1 -0
- package/dist/runtime/validation/ajv.d.ts +20 -0
- package/dist/runtime/validation/ajv.d.ts.map +1 -0
- package/dist/runtime/validation/index.d.ts +2 -0
- package/dist/runtime/validation/index.d.ts.map +1 -0
- package/dist/schema/decorators.d.ts +37 -0
- package/dist/schema/decorators.d.ts.map +1 -0
- package/dist/schema/index.cjs +214 -0
- package/dist/schema/index.cjs.map +1 -0
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +163 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/scripts/adorn-example.cjs +148 -0
- package/dist/scripts/adorn-example.cjs.map +1 -0
- package/dist/utils/operationId.d.ts +2 -0
- package/dist/utils/operationId.d.ts.map +1 -0
- package/dist/utils/path.d.ts +2 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/package.json +92 -57
- package/dist/adapters/express/createApp.d.ts +0 -158
- package/dist/adapters/express/createApp.d.ts.map +0 -1
- package/dist/adapters/express/createApp.js +0 -141
- package/dist/adapters/express/createApp.js.map +0 -1
- package/dist/adapters/express/index.d.ts +0 -7
- package/dist/adapters/express/index.d.ts.map +0 -1
- package/dist/adapters/express/index.js +0 -7
- package/dist/adapters/express/index.js.map +0 -1
- package/dist/adapters/express/middleware/errorHandler.d.ts +0 -194
- package/dist/adapters/express/middleware/errorHandler.d.ts.map +0 -1
- package/dist/adapters/express/middleware/errorHandler.js +0 -167
- package/dist/adapters/express/middleware/errorHandler.js.map +0 -1
- package/dist/adapters/express/middleware/requestContext.d.ts +0 -2
- package/dist/adapters/express/middleware/requestContext.d.ts.map +0 -1
- package/dist/adapters/express/middleware/requestContext.js +0 -3
- package/dist/adapters/express/middleware/requestContext.js.map +0 -1
- package/dist/adapters/express/router.d.ts +0 -10
- package/dist/adapters/express/router.d.ts.map +0 -1
- package/dist/adapters/express/router.js +0 -105
- package/dist/adapters/express/router.js.map +0 -1
- package/dist/adapters/express/swagger/index.d.ts +0 -2
- package/dist/adapters/express/swagger/index.d.ts.map +0 -1
- package/dist/adapters/express/swagger/index.js +0 -2
- package/dist/adapters/express/swagger/index.js.map +0 -1
- package/dist/adapters/express/swagger/serve.d.ts +0 -12
- package/dist/adapters/express/swagger/serve.d.ts.map +0 -1
- package/dist/adapters/express/swagger/serve.js +0 -72
- package/dist/adapters/express/swagger/serve.js.map +0 -1
- package/dist/adapters/express/transport/request.d.ts +0 -4
- package/dist/adapters/express/transport/request.d.ts.map +0 -1
- package/dist/adapters/express/transport/request.js +0 -12
- package/dist/adapters/express/transport/request.js.map +0 -1
- package/dist/adapters/express/transport/response.d.ts +0 -5
- package/dist/adapters/express/transport/response.d.ts.map +0 -1
- package/dist/adapters/express/transport/response.js +0 -36
- package/dist/adapters/express/transport/response.js.map +0 -1
- package/dist/cli/commands/dev.d.ts +0 -2
- package/dist/cli/commands/dev.d.ts.map +0 -1
- package/dist/cli/commands/dev.js +0 -3
- package/dist/cli/commands/dev.js.map +0 -1
- package/dist/cli/commands/gen.d.ts +0 -2
- package/dist/cli/commands/gen.d.ts.map +0 -1
- package/dist/cli/commands/gen.js +0 -3
- package/dist/cli/commands/gen.js.map +0 -1
- package/dist/cli/main.d.ts +0 -2
- package/dist/cli/main.d.ts.map +0 -1
- package/dist/cli/main.js +0 -3
- package/dist/cli/main.js.map +0 -1
- package/dist/compiler/config/defaults.d.ts +0 -2
- package/dist/compiler/config/defaults.d.ts.map +0 -1
- package/dist/compiler/config/defaults.js +0 -3
- package/dist/compiler/config/defaults.js.map +0 -1
- package/dist/compiler/config/loadConfig.d.ts +0 -2
- package/dist/compiler/config/loadConfig.d.ts.map +0 -1
- package/dist/compiler/config/loadConfig.js +0 -3
- package/dist/compiler/config/loadConfig.js.map +0 -1
- package/dist/compiler/diagnostics/errors.d.ts +0 -2
- package/dist/compiler/diagnostics/errors.d.ts.map +0 -1
- package/dist/compiler/diagnostics/errors.js +0 -3
- package/dist/compiler/diagnostics/errors.js.map +0 -1
- package/dist/compiler/emit/openapi.d.ts +0 -2
- package/dist/compiler/emit/openapi.d.ts.map +0 -1
- package/dist/compiler/emit/openapi.js +0 -3
- package/dist/compiler/emit/openapi.js.map +0 -1
- package/dist/compiler/emit/routes.d.ts +0 -2
- package/dist/compiler/emit/routes.d.ts.map +0 -1
- package/dist/compiler/emit/routes.js +0 -3
- package/dist/compiler/emit/routes.js.map +0 -1
- package/dist/compiler/program/loadTsProgram.d.ts +0 -2
- package/dist/compiler/program/loadTsProgram.d.ts.map +0 -1
- package/dist/compiler/program/loadTsProgram.js +0 -3
- package/dist/compiler/program/loadTsProgram.js.map +0 -1
- package/dist/compiler/scan/actions.d.ts +0 -2
- package/dist/compiler/scan/actions.d.ts.map +0 -1
- package/dist/compiler/scan/actions.js +0 -3
- package/dist/compiler/scan/actions.js.map +0 -1
- package/dist/compiler/scan/controllers.d.ts +0 -2
- package/dist/compiler/scan/controllers.d.ts.map +0 -1
- package/dist/compiler/scan/controllers.js +0 -3
- package/dist/compiler/scan/controllers.js.map +0 -1
- package/dist/compiler/scan/types.d.ts +0 -2
- package/dist/compiler/scan/types.d.ts.map +0 -1
- package/dist/compiler/scan/types.js +0 -3
- package/dist/compiler/scan/types.js.map +0 -1
- package/dist/contracts/context.d.ts +0 -10
- package/dist/contracts/context.d.ts.map +0 -1
- package/dist/contracts/context.js +0 -2
- package/dist/contracts/context.js.map +0 -1
- package/dist/contracts/errors.d.ts +0 -22
- package/dist/contracts/errors.d.ts.map +0 -1
- package/dist/contracts/errors.js +0 -2
- package/dist/contracts/errors.js.map +0 -1
- package/dist/contracts/http.d.ts +0 -2
- package/dist/contracts/http.d.ts.map +0 -1
- package/dist/contracts/http.js +0 -3
- package/dist/contracts/http.js.map +0 -1
- package/dist/contracts/middleware.d.ts +0 -2
- package/dist/contracts/middleware.d.ts.map +0 -1
- package/dist/contracts/middleware.js +0 -3
- package/dist/contracts/middleware.js.map +0 -1
- package/dist/contracts/openapi-v3.d.ts +0 -538
- package/dist/contracts/openapi-v3.d.ts.map +0 -1
- package/dist/contracts/openapi-v3.js +0 -2
- package/dist/contracts/openapi-v3.js.map +0 -1
- package/dist/contracts/openapi.d.ts +0 -2
- package/dist/contracts/openapi.d.ts.map +0 -1
- package/dist/contracts/openapi.js +0 -2
- package/dist/contracts/openapi.js.map +0 -1
- package/dist/contracts/reply.d.ts +0 -119
- package/dist/contracts/reply.d.ts.map +0 -1
- package/dist/contracts/reply.js +0 -43
- package/dist/contracts/reply.js.map +0 -1
- package/dist/contracts/response-types.d.ts +0 -40
- package/dist/contracts/response-types.d.ts.map +0 -1
- package/dist/contracts/response-types.js +0 -2
- package/dist/contracts/response-types.js.map +0 -1
- package/dist/contracts/responses.d.ts +0 -98
- package/dist/contracts/responses.d.ts.map +0 -1
- package/dist/contracts/responses.js +0 -2
- package/dist/contracts/responses.js.map +0 -1
- package/dist/contracts/route-options.d.ts +0 -155
- package/dist/contracts/route-options.d.ts.map +0 -1
- package/dist/contracts/route-options.js +0 -2
- package/dist/contracts/route-options.js.map +0 -1
- package/dist/contracts/route-typing.d.ts +0 -25
- package/dist/contracts/route-typing.d.ts.map +0 -1
- package/dist/contracts/route-typing.js +0 -2
- package/dist/contracts/route-typing.js.map +0 -1
- package/dist/contracts/validator.d.ts +0 -146
- package/dist/contracts/validator.d.ts.map +0 -1
- package/dist/contracts/validator.js +0 -2
- package/dist/contracts/validator.js.map +0 -1
- package/dist/core/binding/binder.d.ts +0 -74
- package/dist/core/binding/binder.d.ts.map +0 -1
- package/dist/core/binding/binder.js +0 -161
- package/dist/core/binding/binder.js.map +0 -1
- package/dist/core/binding/coerce/arrays.d.ts +0 -7
- package/dist/core/binding/coerce/arrays.d.ts.map +0 -1
- package/dist/core/binding/coerce/arrays.js +0 -28
- package/dist/core/binding/coerce/arrays.js.map +0 -1
- package/dist/core/binding/coerce/csv.d.ts +0 -2
- package/dist/core/binding/coerce/csv.d.ts.map +0 -1
- package/dist/core/binding/coerce/csv.js +0 -7
- package/dist/core/binding/coerce/csv.js.map +0 -1
- package/dist/core/binding/coerce/objects.d.ts +0 -2
- package/dist/core/binding/coerce/objects.d.ts.map +0 -1
- package/dist/core/binding/coerce/objects.js +0 -3
- package/dist/core/binding/coerce/objects.js.map +0 -1
- package/dist/core/binding/coerce/primitives.d.ts +0 -70
- package/dist/core/binding/coerce/primitives.d.ts.map +0 -1
- package/dist/core/binding/coerce/primitives.js +0 -88
- package/dist/core/binding/coerce/primitives.js.map +0 -1
- package/dist/core/binding/index.d.ts +0 -2
- package/dist/core/binding/index.d.ts.map +0 -1
- package/dist/core/binding/index.js +0 -2
- package/dist/core/binding/index.js.map +0 -1
- package/dist/core/binding/rules/inferFromHttpMethod.d.ts +0 -6
- package/dist/core/binding/rules/inferFromHttpMethod.d.ts.map +0 -1
- package/dist/core/binding/rules/inferFromHttpMethod.js +0 -11
- package/dist/core/binding/rules/inferFromHttpMethod.js.map +0 -1
- package/dist/core/binding/rules/inferFromPath.d.ts +0 -2
- package/dist/core/binding/rules/inferFromPath.d.ts.map +0 -1
- package/dist/core/binding/rules/inferFromPath.js +0 -9
- package/dist/core/binding/rules/inferFromPath.js.map +0 -1
- package/dist/core/binding/rules/wrappers.d.ts +0 -2
- package/dist/core/binding/rules/wrappers.d.ts.map +0 -1
- package/dist/core/binding/rules/wrappers.js +0 -3
- package/dist/core/binding/rules/wrappers.js.map +0 -1
- package/dist/core/errors/http-error.d.ts +0 -63
- package/dist/core/errors/http-error.d.ts.map +0 -1
- package/dist/core/errors/http-error.js +0 -71
- package/dist/core/errors/http-error.js.map +0 -1
- package/dist/core/errors/index.d.ts +0 -4
- package/dist/core/errors/index.d.ts.map +0 -1
- package/dist/core/errors/index.js +0 -4
- package/dist/core/errors/index.js.map +0 -1
- package/dist/core/errors/problem.d.ts +0 -3
- package/dist/core/errors/problem.d.ts.map +0 -1
- package/dist/core/errors/problem.js +0 -33
- package/dist/core/errors/problem.js.map +0 -1
- package/dist/core/errors/validation-error.d.ts +0 -73
- package/dist/core/errors/validation-error.d.ts.map +0 -1
- package/dist/core/errors/validation-error.js +0 -82
- package/dist/core/errors/validation-error.js.map +0 -1
- package/dist/core/openapi/buildOpenApi.d.ts +0 -79
- package/dist/core/openapi/buildOpenApi.d.ts.map +0 -1
- package/dist/core/openapi/buildOpenApi.js +0 -196
- package/dist/core/openapi/buildOpenApi.js.map +0 -1
- package/dist/core/openapi/index.d.ts +0 -2
- package/dist/core/openapi/index.d.ts.map +0 -1
- package/dist/core/openapi/index.js +0 -2
- package/dist/core/openapi/index.js.map +0 -1
- package/dist/core/openapi/schema/formats.d.ts +0 -2
- package/dist/core/openapi/schema/formats.d.ts.map +0 -1
- package/dist/core/openapi/schema/formats.js +0 -3
- package/dist/core/openapi/schema/formats.js.map +0 -1
- package/dist/core/openapi/schema/registry.d.ts +0 -9
- package/dist/core/openapi/schema/registry.d.ts.map +0 -1
- package/dist/core/openapi/schema/registry.js +0 -21
- package/dist/core/openapi/schema/registry.js.map +0 -1
- package/dist/core/openapi/schema/schemaModel.d.ts +0 -2
- package/dist/core/openapi/schema/schemaModel.d.ts.map +0 -1
- package/dist/core/openapi/schema/schemaModel.js +0 -3
- package/dist/core/openapi/schema/schemaModel.js.map +0 -1
- package/dist/core/openapi/schema/schemaRegistry.d.ts +0 -2
- package/dist/core/openapi/schema/schemaRegistry.d.ts.map +0 -1
- package/dist/core/openapi/schema/schemaRegistry.js +0 -3
- package/dist/core/openapi/schema/schemaRegistry.js.map +0 -1
- package/dist/core/openapi/schema/toOpenApi.d.ts +0 -4
- package/dist/core/openapi/schema/toOpenApi.d.ts.map +0 -1
- package/dist/core/openapi/schema/toOpenApi.js +0 -82
- package/dist/core/openapi/schema/toOpenApi.js.map +0 -1
- package/dist/core/pipeline/compose.d.ts +0 -2
- package/dist/core/pipeline/compose.d.ts.map +0 -1
- package/dist/core/pipeline/compose.js +0 -3
- package/dist/core/pipeline/compose.js.map +0 -1
- package/dist/core/pipeline/errorMap.d.ts +0 -2
- package/dist/core/pipeline/errorMap.d.ts.map +0 -1
- package/dist/core/pipeline/errorMap.js +0 -3
- package/dist/core/pipeline/errorMap.js.map +0 -1
- package/dist/core/pipeline/invoke.d.ts +0 -2
- package/dist/core/pipeline/invoke.d.ts.map +0 -1
- package/dist/core/pipeline/invoke.js +0 -3
- package/dist/core/pipeline/invoke.js.map +0 -1
- package/dist/core/pipeline/result.d.ts +0 -2
- package/dist/core/pipeline/result.d.ts.map +0 -1
- package/dist/core/pipeline/result.js +0 -3
- package/dist/core/pipeline/result.js.map +0 -1
- package/dist/core/registry/buildRegistry.d.ts +0 -3
- package/dist/core/registry/buildRegistry.d.ts.map +0 -1
- package/dist/core/registry/buildRegistry.js +0 -105
- package/dist/core/registry/buildRegistry.js.map +0 -1
- package/dist/core/registry/conflicts.d.ts +0 -6
- package/dist/core/registry/conflicts.d.ts.map +0 -1
- package/dist/core/registry/conflicts.js +0 -21
- package/dist/core/registry/conflicts.js.map +0 -1
- package/dist/core/registry/index.d.ts +0 -5
- package/dist/core/registry/index.d.ts.map +0 -1
- package/dist/core/registry/index.js +0 -5
- package/dist/core/registry/index.js.map +0 -1
- package/dist/core/registry/normalize.d.ts +0 -3
- package/dist/core/registry/normalize.d.ts.map +0 -1
- package/dist/core/registry/normalize.js +0 -24
- package/dist/core/registry/normalize.js.map +0 -1
- package/dist/core/registry/types.d.ts +0 -225
- package/dist/core/registry/types.d.ts.map +0 -1
- package/dist/core/registry/types.js +0 -2
- package/dist/core/registry/types.js.map +0 -1
- package/dist/core/reply/index.d.ts +0 -3
- package/dist/core/reply/index.d.ts.map +0 -1
- package/dist/core/reply/index.js +0 -3
- package/dist/core/reply/index.js.map +0 -1
- package/dist/core/reply/reply.d.ts +0 -102
- package/dist/core/reply/reply.d.ts.map +0 -1
- package/dist/core/reply/reply.js +0 -105
- package/dist/core/reply/reply.js.map +0 -1
- package/dist/core/reply/typed.d.ts +0 -161
- package/dist/core/reply/typed.d.ts.map +0 -1
- package/dist/core/reply/typed.js +0 -154
- package/dist/core/reply/typed.js.map +0 -1
- package/dist/core/responses/helpers.d.ts +0 -10
- package/dist/core/responses/helpers.d.ts.map +0 -1
- package/dist/core/responses/helpers.js +0 -8
- package/dist/core/responses/helpers.js.map +0 -1
- package/dist/core/responses/index.d.ts +0 -4
- package/dist/core/responses/index.d.ts.map +0 -1
- package/dist/core/responses/index.js +0 -4
- package/dist/core/responses/index.js.map +0 -1
- package/dist/core/responses/normalize.d.ts +0 -3
- package/dist/core/responses/normalize.d.ts.map +0 -1
- package/dist/core/responses/normalize.js +0 -33
- package/dist/core/responses/normalize.js.map +0 -1
- package/dist/core/responses/pickStatus.d.ts +0 -3
- package/dist/core/responses/pickStatus.d.ts.map +0 -1
- package/dist/core/responses/pickStatus.js +0 -27
- package/dist/core/responses/pickStatus.js.map +0 -1
- package/dist/core/route/defineRoute.d.ts +0 -74
- package/dist/core/route/defineRoute.d.ts.map +0 -1
- package/dist/core/route/defineRoute.js +0 -59
- package/dist/core/route/defineRoute.js.map +0 -1
- package/dist/core/route/index.d.ts +0 -2
- package/dist/core/route/index.d.ts.map +0 -1
- package/dist/core/route/index.js +0 -2
- package/dist/core/route/index.js.map +0 -1
- package/dist/core/serialization/json.d.ts +0 -2
- package/dist/core/serialization/json.d.ts.map +0 -1
- package/dist/core/serialization/json.js +0 -3
- package/dist/core/serialization/json.js.map +0 -1
- package/dist/core/typing/path-params.d.ts +0 -2
- package/dist/core/typing/path-params.d.ts.map +0 -1
- package/dist/core/typing/path-params.js +0 -2
- package/dist/core/typing/path-params.js.map +0 -1
- package/dist/decorators/binding.d.ts +0 -9
- package/dist/decorators/binding.d.ts.map +0 -1
- package/dist/decorators/binding.js +0 -18
- package/dist/decorators/binding.js.map +0 -1
- package/dist/decorators/controller.d.ts +0 -6
- package/dist/decorators/controller.d.ts.map +0 -1
- package/dist/decorators/controller.js +0 -26
- package/dist/decorators/controller.js.map +0 -1
- package/dist/decorators/db.d.ts +0 -2
- package/dist/decorators/db.d.ts.map +0 -1
- package/dist/decorators/db.js +0 -3
- package/dist/decorators/db.js.map +0 -1
- package/dist/decorators/docs.d.ts +0 -8
- package/dist/decorators/docs.d.ts.map +0 -1
- package/dist/decorators/docs.js +0 -46
- package/dist/decorators/docs.js.map +0 -1
- package/dist/decorators/index.js +0 -7
- package/dist/decorators/index.js.map +0 -1
- package/dist/decorators/methods.js +0 -170
- package/dist/decorators/methods.js.map +0 -1
- package/dist/decorators/middleware.d.ts +0 -2
- package/dist/decorators/middleware.d.ts.map +0 -1
- package/dist/decorators/middleware.js +0 -3
- package/dist/decorators/middleware.js.map +0 -1
- package/dist/decorators/responses.d.ts +0 -7
- package/dist/decorators/responses.d.ts.map +0 -1
- package/dist/decorators/responses.js +0 -44
- package/dist/decorators/responses.js.map +0 -1
- package/dist/decorators/security.d.ts +0 -8
- package/dist/decorators/security.d.ts.map +0 -1
- package/dist/decorators/security.js +0 -39
- package/dist/decorators/security.js.map +0 -1
- package/dist/integrations/metal-orm/index.d.ts +0 -2
- package/dist/integrations/metal-orm/index.d.ts.map +0 -1
- package/dist/integrations/metal-orm/index.js +0 -2
- package/dist/integrations/metal-orm/index.js.map +0 -1
- package/dist/integrations/metal-orm/pagination/executePaged.d.ts +0 -2
- package/dist/integrations/metal-orm/pagination/executePaged.d.ts.map +0 -1
- package/dist/integrations/metal-orm/pagination/executePaged.js +0 -3
- package/dist/integrations/metal-orm/pagination/executePaged.js.map +0 -1
- package/dist/integrations/metal-orm/pagination/page.d.ts +0 -2
- package/dist/integrations/metal-orm/pagination/page.d.ts.map +0 -1
- package/dist/integrations/metal-orm/pagination/page.js +0 -3
- package/dist/integrations/metal-orm/pagination/page.js.map +0 -1
- package/dist/integrations/metal-orm/query/filters.d.ts +0 -2
- package/dist/integrations/metal-orm/query/filters.d.ts.map +0 -1
- package/dist/integrations/metal-orm/query/filters.js +0 -3
- package/dist/integrations/metal-orm/query/filters.js.map +0 -1
- package/dist/integrations/metal-orm/query/search.d.ts +0 -2
- package/dist/integrations/metal-orm/query/search.d.ts.map +0 -1
- package/dist/integrations/metal-orm/query/search.js +0 -3
- package/dist/integrations/metal-orm/query/search.js.map +0 -1
- package/dist/integrations/metal-orm/query/sort.d.ts +0 -2
- package/dist/integrations/metal-orm/query/sort.d.ts.map +0 -1
- package/dist/integrations/metal-orm/query/sort.js +0 -3
- package/dist/integrations/metal-orm/query/sort.js.map +0 -1
- package/dist/integrations/metal-orm/save-graph/helpers.d.ts +0 -2
- package/dist/integrations/metal-orm/save-graph/helpers.d.ts.map +0 -1
- package/dist/integrations/metal-orm/save-graph/helpers.js +0 -3
- package/dist/integrations/metal-orm/save-graph/helpers.js.map +0 -1
- package/dist/integrations/metal-orm/save-graph/types.d.ts +0 -2
- package/dist/integrations/metal-orm/save-graph/types.d.ts.map +0 -1
- package/dist/integrations/metal-orm/save-graph/types.js +0 -3
- package/dist/integrations/metal-orm/save-graph/types.js.map +0 -1
- package/dist/integrations/metal-orm/schema/column-map.d.ts +0 -96
- package/dist/integrations/metal-orm/schema/column-map.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/column-map.js +0 -207
- package/dist/integrations/metal-orm/schema/column-map.js.map +0 -1
- package/dist/integrations/metal-orm/schema/ddl.d.ts +0 -2
- package/dist/integrations/metal-orm/schema/ddl.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/ddl.js +0 -3
- package/dist/integrations/metal-orm/schema/ddl.js.map +0 -1
- package/dist/integrations/metal-orm/schema/dto.d.ts +0 -7
- package/dist/integrations/metal-orm/schema/dto.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/dto.js +0 -34
- package/dist/integrations/metal-orm/schema/dto.js.map +0 -1
- package/dist/integrations/metal-orm/schema/entity.d.ts +0 -99
- package/dist/integrations/metal-orm/schema/entity.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/entity.js +0 -99
- package/dist/integrations/metal-orm/schema/entity.js.map +0 -1
- package/dist/integrations/metal-orm/schema/filters.d.ts +0 -11
- package/dist/integrations/metal-orm/schema/filters.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/filters.js +0 -21
- package/dist/integrations/metal-orm/schema/filters.js.map +0 -1
- package/dist/integrations/metal-orm/schema/index.d.ts +0 -5
- package/dist/integrations/metal-orm/schema/index.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/index.js +0 -5
- package/dist/integrations/metal-orm/schema/index.js.map +0 -1
- package/dist/integrations/metal-orm/schema/openapi/entityToSchema.d.ts +0 -2
- package/dist/integrations/metal-orm/schema/openapi/entityToSchema.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/openapi/entityToSchema.js +0 -3
- package/dist/integrations/metal-orm/schema/openapi/entityToSchema.js.map +0 -1
- package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.d.ts +0 -2
- package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.js +0 -3
- package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.js.map +0 -1
- package/dist/integrations/metal-orm/schema/sqlite.d.ts +0 -2
- package/dist/integrations/metal-orm/schema/sqlite.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/sqlite.js +0 -3
- package/dist/integrations/metal-orm/schema/sqlite.js.map +0 -1
- package/dist/integrations/metal-orm/schema/tabledef.d.ts +0 -4
- package/dist/integrations/metal-orm/schema/tabledef.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/tabledef.js +0 -10
- package/dist/integrations/metal-orm/schema/tabledef.js.map +0 -1
- package/dist/integrations/metal-orm/schema/types.d.ts +0 -7
- package/dist/integrations/metal-orm/schema/types.d.ts.map +0 -1
- package/dist/integrations/metal-orm/schema/types.js +0 -2
- package/dist/integrations/metal-orm/schema/types.js.map +0 -1
- package/dist/integrations/metal-orm/serialization/entitySerializer.d.ts +0 -2
- package/dist/integrations/metal-orm/serialization/entitySerializer.d.ts.map +0 -1
- package/dist/integrations/metal-orm/serialization/entitySerializer.js +0 -3
- package/dist/integrations/metal-orm/serialization/entitySerializer.js.map +0 -1
- package/dist/integrations/metal-orm/serialization/relationPolicy.d.ts +0 -2
- package/dist/integrations/metal-orm/serialization/relationPolicy.d.ts.map +0 -1
- package/dist/integrations/metal-orm/serialization/relationPolicy.js +0 -3
- package/dist/integrations/metal-orm/serialization/relationPolicy.js.map +0 -1
- package/dist/integrations/metal-orm/session/context.d.ts +0 -2
- package/dist/integrations/metal-orm/session/context.d.ts.map +0 -1
- package/dist/integrations/metal-orm/session/context.js +0 -3
- package/dist/integrations/metal-orm/session/context.js.map +0 -1
- package/dist/integrations/metal-orm/session/middleware.d.ts +0 -2
- package/dist/integrations/metal-orm/session/middleware.d.ts.map +0 -1
- package/dist/integrations/metal-orm/session/middleware.js +0 -3
- package/dist/integrations/metal-orm/session/middleware.js.map +0 -1
- package/dist/integrations/metal-orm/session/transaction.d.ts +0 -2
- package/dist/integrations/metal-orm/session/transaction.d.ts.map +0 -1
- package/dist/integrations/metal-orm/session/transaction.js +0 -3
- package/dist/integrations/metal-orm/session/transaction.js.map +0 -1
- package/dist/integrations/metal-orm/testing/setupSchema.d.ts +0 -2
- package/dist/integrations/metal-orm/testing/setupSchema.d.ts.map +0 -1
- package/dist/integrations/metal-orm/testing/setupSchema.js +0 -3
- package/dist/integrations/metal-orm/testing/setupSchema.js.map +0 -1
- package/dist/integrations/metal-orm/testing/sqliteMemory.d.ts +0 -2
- package/dist/integrations/metal-orm/testing/sqliteMemory.d.ts.map +0 -1
- package/dist/integrations/metal-orm/testing/sqliteMemory.js +0 -3
- package/dist/integrations/metal-orm/testing/sqliteMemory.js.map +0 -1
- package/dist/metadata/bag.d.ts +0 -18
- package/dist/metadata/bag.d.ts.map +0 -1
- package/dist/metadata/bag.js +0 -39
- package/dist/metadata/bag.js.map +0 -1
- package/dist/metadata/index.d.ts +0 -4
- package/dist/metadata/index.d.ts.map +0 -1
- package/dist/metadata/index.js +0 -4
- package/dist/metadata/index.js.map +0 -1
- package/dist/metadata/keys.d.ts +0 -254
- package/dist/metadata/keys.d.ts.map +0 -1
- package/dist/metadata/keys.js +0 -23
- package/dist/metadata/keys.js.map +0 -1
- package/dist/metadata/merge.d.ts +0 -9
- package/dist/metadata/merge.d.ts.map +0 -1
- package/dist/metadata/merge.js +0 -30
- package/dist/metadata/merge.js.map +0 -1
- package/dist/metal-orm.d.ts +0 -2
- package/dist/metal-orm.d.ts.map +0 -1
- package/dist/metal-orm.js +0 -2
- package/dist/metal-orm.js.map +0 -1
- package/dist/validation/native/index.d.ts +0 -3
- package/dist/validation/native/index.d.ts.map +0 -1
- package/dist/validation/native/index.js +0 -3
- package/dist/validation/native/index.js.map +0 -1
- package/dist/validation/native/ir.d.ts +0 -38
- package/dist/validation/native/ir.d.ts.map +0 -1
- package/dist/validation/native/ir.js +0 -2
- package/dist/validation/native/ir.js.map +0 -1
- package/dist/validation/native/schema.d.ts +0 -63
- package/dist/validation/native/schema.d.ts.map +0 -1
- package/dist/validation/native/schema.js +0 -271
- package/dist/validation/native/schema.js.map +0 -1
- package/dist/validation/native/validator.d.ts +0 -21
- package/dist/validation/native/validator.d.ts.map +0 -1
- package/dist/validation/native/validator.js +0 -48
- package/dist/validation/native/validator.js.map +0 -1
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { HttpError } from '../errors/http-error.js';
|
|
2
|
-
import { getPathTokenNames } from './rules/inferFromPath.js';
|
|
3
|
-
import { conventionForMethod } from './rules/inferFromHttpMethod.js';
|
|
4
|
-
import { coerceObjectSmart, coerceValueSmart } from './coerce/arrays.js';
|
|
5
|
-
/**
|
|
6
|
-
* Binds request data to handler function arguments based on route configuration.
|
|
7
|
-
*
|
|
8
|
-
* This function automatically maps path parameters, query parameters, and request body
|
|
9
|
-
* to the handler function arguments based on the route's binding configuration and
|
|
10
|
-
* HTTP method conventions.
|
|
11
|
-
*
|
|
12
|
-
* @param route - The route entry containing metadata about the handler
|
|
13
|
-
* @param handler - The handler function to bind arguments for
|
|
14
|
-
* @param ctx - The request context containing params, query, and body
|
|
15
|
-
* @param opts - Binding options to control behavior
|
|
16
|
-
* @returns Object containing args to pass to handler and prepared binding data
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* // For a route like: @Get('/users/:id')
|
|
21
|
-
* // With handler: async getUser(id: string, ctx: RequestContext)
|
|
22
|
-
* const { args } = bindArgs(route, handler, requestContext);
|
|
23
|
-
* const result = await handler(...args); // Automatically passes id and ctx
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* // For a POST route with body
|
|
29
|
-
* // @Post('/users')
|
|
30
|
-
* // async createUser(userData: CreateUserDto)
|
|
31
|
-
* const { args } = bindArgs(route, handler, requestContext);
|
|
32
|
-
* const result = await handler(...args); // Automatically passes parsed body
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* @see RouteEntry for route metadata structure
|
|
36
|
-
* @see RequestContext for request data structure
|
|
37
|
-
*/
|
|
38
|
-
export function bindArgs(route, handler, ctx, opts = {}) {
|
|
39
|
-
const passContext = opts.passContext ?? true;
|
|
40
|
-
const coerceMode = opts.coerce ?? 'smart';
|
|
41
|
-
const csv = opts.csv ?? true;
|
|
42
|
-
const tokenNames = getPathTokenNames(route.fullPath);
|
|
43
|
-
const methodBindings = route.bindings?.byMethod?.[route.handlerName];
|
|
44
|
-
const pathTypes = methodBindings?.path ?? {};
|
|
45
|
-
const rawParams = ctx.params ?? {};
|
|
46
|
-
const preparedParams = {};
|
|
47
|
-
const pathArgs = tokenNames.map((t) => {
|
|
48
|
-
const raw = rawParams[t];
|
|
49
|
-
const hint = pathTypes[t];
|
|
50
|
-
const value = coercePathValue(raw, hint, t);
|
|
51
|
-
preparedParams[t] = value;
|
|
52
|
-
return value;
|
|
53
|
-
});
|
|
54
|
-
for (const [key, value] of Object.entries(rawParams)) {
|
|
55
|
-
if (!(key in preparedParams)) {
|
|
56
|
-
preparedParams[key] = value;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
const conv = conventionForMethod(route.method);
|
|
60
|
-
const expected = typeof handler.length === 'number' ? handler.length : pathArgs.length;
|
|
61
|
-
const args = [...pathArgs];
|
|
62
|
-
const remainingSlots = Math.max(0, expected - args.length);
|
|
63
|
-
const preparedQuery = coerceMode === 'smart'
|
|
64
|
-
? coerceObjectSmart(normalizeQuery(ctx.query), { csv })
|
|
65
|
-
: normalizeQuery(ctx.query);
|
|
66
|
-
const preparedBody = coerceMode === 'smart'
|
|
67
|
-
? coerceValueSmart(ctx.body, { csv })
|
|
68
|
-
: ctx.body;
|
|
69
|
-
if (remainingSlots > 0) {
|
|
70
|
-
const payloads = [];
|
|
71
|
-
if (conv.primary === 'query')
|
|
72
|
-
payloads.push(preparedQuery);
|
|
73
|
-
else if (conv.primary === 'body')
|
|
74
|
-
payloads.push(preparedBody);
|
|
75
|
-
if (conv.secondary === 'query')
|
|
76
|
-
payloads.push(preparedQuery);
|
|
77
|
-
else if (conv.secondary === 'body')
|
|
78
|
-
payloads.push(preparedBody);
|
|
79
|
-
for (let i = 0; i < Math.min(remainingSlots, payloads.length); i++) {
|
|
80
|
-
args.push(payloads[i]);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
if (passContext && args.length < expected) {
|
|
84
|
-
args.push(ctx);
|
|
85
|
-
}
|
|
86
|
-
return {
|
|
87
|
-
args,
|
|
88
|
-
prepared: {
|
|
89
|
-
params: preparedParams,
|
|
90
|
-
query: preparedQuery,
|
|
91
|
-
body: preparedBody,
|
|
92
|
-
},
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
function normalizeQuery(q) {
|
|
96
|
-
if (!q || typeof q !== 'object')
|
|
97
|
-
return {};
|
|
98
|
-
const out = {};
|
|
99
|
-
for (const [k, v] of Object.entries(q)) {
|
|
100
|
-
out[k] = v;
|
|
101
|
-
}
|
|
102
|
-
return out;
|
|
103
|
-
}
|
|
104
|
-
function coercePathValue(raw, hint, paramName) {
|
|
105
|
-
if (raw === undefined)
|
|
106
|
-
return undefined;
|
|
107
|
-
switch (hint) {
|
|
108
|
-
case 'string':
|
|
109
|
-
return raw;
|
|
110
|
-
case 'boolean': {
|
|
111
|
-
const s = raw.trim().toLowerCase();
|
|
112
|
-
if (s === 'true')
|
|
113
|
-
return true;
|
|
114
|
-
if (s === 'false')
|
|
115
|
-
return false;
|
|
116
|
-
throw new HttpError(400, `Invalid boolean for path param "${paramName ?? '?'}"`, {
|
|
117
|
-
code: 'INVALID_PATH_PARAM',
|
|
118
|
-
details: { param: paramName, expected: 'boolean', got: raw },
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
case 'int': {
|
|
122
|
-
if (!/^-?\d+$/.test(raw)) {
|
|
123
|
-
throw new HttpError(400, `Invalid int for path param "${paramName ?? '?'}"`, {
|
|
124
|
-
code: 'INVALID_PATH_PARAM',
|
|
125
|
-
details: { param: paramName, expected: 'int', got: raw },
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
const n = Number(raw);
|
|
129
|
-
if (!Number.isSafeInteger(n)) {
|
|
130
|
-
throw new HttpError(400, `Unsafe int for path param "${paramName ?? '?'}"`, {
|
|
131
|
-
code: 'INVALID_PATH_PARAM',
|
|
132
|
-
details: { param: paramName, expected: 'int(safe)', got: raw },
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
return n;
|
|
136
|
-
}
|
|
137
|
-
case 'number': {
|
|
138
|
-
const n = Number(raw);
|
|
139
|
-
if (!Number.isFinite(n)) {
|
|
140
|
-
throw new HttpError(400, `Invalid number for path param "${paramName ?? '?'}"`, {
|
|
141
|
-
code: 'INVALID_PATH_PARAM',
|
|
142
|
-
details: { param: paramName, expected: 'number', got: raw },
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
return n;
|
|
146
|
-
}
|
|
147
|
-
case 'uuid': {
|
|
148
|
-
const ok = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(raw);
|
|
149
|
-
if (!ok) {
|
|
150
|
-
throw new HttpError(400, `Invalid uuid for path param "${paramName ?? '?'}"`, {
|
|
151
|
-
code: 'INVALID_PATH_PARAM',
|
|
152
|
-
details: { param: paramName, expected: 'uuid', got: raw },
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
return raw;
|
|
156
|
-
}
|
|
157
|
-
default:
|
|
158
|
-
return raw;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=binder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binder.js","sourceRoot":"","sources":["../../../src/core/binding/binder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export type ArrayCoerceOptions = {
|
|
2
|
-
csv?: boolean;
|
|
3
|
-
};
|
|
4
|
-
export declare function coerceArraySmart(arr: unknown[], opts: ArrayCoerceOptions): unknown[];
|
|
5
|
-
export declare function coerceValueSmart(v: unknown, opts: ArrayCoerceOptions): unknown;
|
|
6
|
-
export declare function coerceObjectSmart(obj: Record<string, unknown>, opts: ArrayCoerceOptions): Record<string, unknown>;
|
|
7
|
-
//# sourceMappingURL=arrays.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../../../src/core/binding/coerce/arrays.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,EAAE,CAYpF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAI9E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIjH"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { coercePrimitiveSmart } from './primitives.js';
|
|
2
|
-
import { splitCsv } from './csv.js';
|
|
3
|
-
export function coerceArraySmart(arr, opts) {
|
|
4
|
-
const out = [];
|
|
5
|
-
for (const item of arr) {
|
|
6
|
-
if (typeof item === 'string' && opts.csv && item.includes(',')) {
|
|
7
|
-
for (const part of splitCsv(item))
|
|
8
|
-
out.push(coercePrimitiveSmart(part));
|
|
9
|
-
continue;
|
|
10
|
-
}
|
|
11
|
-
out.push(coerceValueSmart(item, opts));
|
|
12
|
-
}
|
|
13
|
-
return out;
|
|
14
|
-
}
|
|
15
|
-
export function coerceValueSmart(v, opts) {
|
|
16
|
-
if (Array.isArray(v))
|
|
17
|
-
return coerceArraySmart(v, opts);
|
|
18
|
-
if (v && typeof v === 'object')
|
|
19
|
-
return coerceObjectSmart(v, opts);
|
|
20
|
-
return coercePrimitiveSmart(v);
|
|
21
|
-
}
|
|
22
|
-
export function coerceObjectSmart(obj, opts) {
|
|
23
|
-
const out = {};
|
|
24
|
-
for (const [k, v] of Object.entries(obj))
|
|
25
|
-
out[k] = coerceValueSmart(v, opts);
|
|
26
|
-
return out;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=arrays.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../../../src/core/binding/coerce/arrays.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAMpC,MAAM,UAAU,gBAAgB,CAAC,GAAc,EAAE,IAAwB;IACvE,MAAM,GAAG,GAAc,EAAE,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YACxE,SAAS;QACX,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAU,EAAE,IAAwB;IACnE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,CAA4B,EAAE,IAAI,CAAC,CAAC;IAC7F,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAA4B,EAAE,IAAwB;IACtF,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7E,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../../../src/core/binding/coerce/csv.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAK5C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"csv.js","sourceRoot":"","sources":["../../../../src/core/binding/coerce/csv.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,OAAO,CAAC;SACL,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../../../src/core/binding/coerce/objects.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objects.js","sourceRoot":"","sources":["../../../../src/core/binding/coerce/objects.ts"],"names":[],"mappings":";AAAA,qDAAqD"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Coercion modes for automatic type conversion.
|
|
3
|
-
*
|
|
4
|
-
* Controls how primitive values are automatically converted
|
|
5
|
-
* during parameter binding.
|
|
6
|
-
*
|
|
7
|
-
* - `'none'` - No coercion; values remain as provided
|
|
8
|
-
* - `'smart'` - Intelligent type inference from string values
|
|
9
|
-
*/
|
|
10
|
-
export type CoerceMode = 'none' | 'smart';
|
|
11
|
-
/**
|
|
12
|
-
* Smart coercion for primitive values.
|
|
13
|
-
*
|
|
14
|
-
* Automatically converts string values to appropriate primitive types:
|
|
15
|
-
*
|
|
16
|
-
* | Input | Output |
|
|
17
|
-
* |----------------------------|---------------------|
|
|
18
|
-
* | `'null'` | `null` |
|
|
19
|
-
* | `'true'` / `'false'` | `boolean` |
|
|
20
|
-
* | `'42'`, `'3.14'`, `'-10'` | `number` |
|
|
21
|
-
* | Other strings | `string` (trimmed) |
|
|
22
|
-
*
|
|
23
|
-
* @param value - Value to coerce
|
|
24
|
-
* @returns Coerced primitive value
|
|
25
|
-
*
|
|
26
|
-
* @remarks
|
|
27
|
-
* - Whitespace is trimmed before type detection
|
|
28
|
-
* - Non-string values pass through unchanged
|
|
29
|
-
* - Leading zeros preserve string type (`'007'` → `'007'`)
|
|
30
|
-
* - Special values (`Infinity`, `NaN`) are not coerced
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* // Boolean coercion
|
|
35
|
-
* coercePrimitiveSmart('true'); // → true
|
|
36
|
-
* coercePrimitiveSmart('false'); // → false
|
|
37
|
-
*
|
|
38
|
-
* // Numeric coercion
|
|
39
|
-
* coercePrimitiveSmart('42'); // → 42
|
|
40
|
-
* coercePrimitiveSmart('3.14'); // → 3.14
|
|
41
|
-
* coercePrimitiveSmart('-10'); // → -10
|
|
42
|
-
*
|
|
43
|
-
* // Null coercion
|
|
44
|
-
* coercePrimitiveSmart('null'); // → null
|
|
45
|
-
*
|
|
46
|
-
* // String handling
|
|
47
|
-
* coercePrimitiveSmart(' hello '); // → 'hello'
|
|
48
|
-
* coercePrimitiveSmart('007'); // → '007' (preserved)
|
|
49
|
-
*
|
|
50
|
-
* // Non-string pass-through
|
|
51
|
-
* coercePrimitiveSmart(42); // → 42
|
|
52
|
-
* coercePrimitiveSmart(null); // → null
|
|
53
|
-
* ```
|
|
54
|
-
*/
|
|
55
|
-
export declare function coercePrimitiveSmart(value: unknown): unknown;
|
|
56
|
-
/**
|
|
57
|
-
* Coerce a value based on the specified mode.
|
|
58
|
-
*
|
|
59
|
-
* @param value - Value to coerce
|
|
60
|
-
* @param mode - Coercion mode to apply
|
|
61
|
-
* @returns Coerced value (or original if mode is 'none')
|
|
62
|
-
*
|
|
63
|
-
* @example
|
|
64
|
-
* ```typescript
|
|
65
|
-
* coercePrimitive('42', 'smart'); // → 42
|
|
66
|
-
* coercePrimitive('42', 'none'); // → '42'
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
|
-
export declare function coercePrimitive(value: unknown, mode: CoerceMode): unknown;
|
|
70
|
-
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../../src/core/binding/coerce/primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAS1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAqB5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAEzE"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pattern for valid numeric strings.
|
|
3
|
-
* Matches integers and decimals with optional negative sign.
|
|
4
|
-
* Rejects leading zeros to preserve string IDs (e.g., '007').
|
|
5
|
-
*/
|
|
6
|
-
const NUMERIC_RE = /^-?(?:0|[1-9]\d*)(?:\.\d+)?$/;
|
|
7
|
-
/**
|
|
8
|
-
* Smart coercion for primitive values.
|
|
9
|
-
*
|
|
10
|
-
* Automatically converts string values to appropriate primitive types:
|
|
11
|
-
*
|
|
12
|
-
* | Input | Output |
|
|
13
|
-
* |----------------------------|---------------------|
|
|
14
|
-
* | `'null'` | `null` |
|
|
15
|
-
* | `'true'` / `'false'` | `boolean` |
|
|
16
|
-
* | `'42'`, `'3.14'`, `'-10'` | `number` |
|
|
17
|
-
* | Other strings | `string` (trimmed) |
|
|
18
|
-
*
|
|
19
|
-
* @param value - Value to coerce
|
|
20
|
-
* @returns Coerced primitive value
|
|
21
|
-
*
|
|
22
|
-
* @remarks
|
|
23
|
-
* - Whitespace is trimmed before type detection
|
|
24
|
-
* - Non-string values pass through unchanged
|
|
25
|
-
* - Leading zeros preserve string type (`'007'` → `'007'`)
|
|
26
|
-
* - Special values (`Infinity`, `NaN`) are not coerced
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* // Boolean coercion
|
|
31
|
-
* coercePrimitiveSmart('true'); // → true
|
|
32
|
-
* coercePrimitiveSmart('false'); // → false
|
|
33
|
-
*
|
|
34
|
-
* // Numeric coercion
|
|
35
|
-
* coercePrimitiveSmart('42'); // → 42
|
|
36
|
-
* coercePrimitiveSmart('3.14'); // → 3.14
|
|
37
|
-
* coercePrimitiveSmart('-10'); // → -10
|
|
38
|
-
*
|
|
39
|
-
* // Null coercion
|
|
40
|
-
* coercePrimitiveSmart('null'); // → null
|
|
41
|
-
*
|
|
42
|
-
* // String handling
|
|
43
|
-
* coercePrimitiveSmart(' hello '); // → 'hello'
|
|
44
|
-
* coercePrimitiveSmart('007'); // → '007' (preserved)
|
|
45
|
-
*
|
|
46
|
-
* // Non-string pass-through
|
|
47
|
-
* coercePrimitiveSmart(42); // → 42
|
|
48
|
-
* coercePrimitiveSmart(null); // → null
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
export function coercePrimitiveSmart(value) {
|
|
52
|
-
if (typeof value !== 'string') {
|
|
53
|
-
return value;
|
|
54
|
-
}
|
|
55
|
-
const trimmed = value.trim();
|
|
56
|
-
// Special literal values
|
|
57
|
-
if (trimmed === 'null')
|
|
58
|
-
return null;
|
|
59
|
-
if (trimmed === 'true')
|
|
60
|
-
return true;
|
|
61
|
-
if (trimmed === 'false')
|
|
62
|
-
return false;
|
|
63
|
-
// Numeric conversion (excludes leading zeros and special values)
|
|
64
|
-
if (trimmed !== '' && NUMERIC_RE.test(trimmed)) {
|
|
65
|
-
const num = Number(trimmed);
|
|
66
|
-
if (Number.isFinite(num)) {
|
|
67
|
-
return num;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return trimmed;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Coerce a value based on the specified mode.
|
|
74
|
-
*
|
|
75
|
-
* @param value - Value to coerce
|
|
76
|
-
* @param mode - Coercion mode to apply
|
|
77
|
-
* @returns Coerced value (or original if mode is 'none')
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* ```typescript
|
|
81
|
-
* coercePrimitive('42', 'smart'); // → 42
|
|
82
|
-
* coercePrimitive('42', 'none'); // → '42'
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
|
-
export function coercePrimitive(value, mode) {
|
|
86
|
-
return mode === 'smart' ? coercePrimitiveSmart(value) : value;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=primitives.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../../src/core/binding/coerce/primitives.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,MAAM,UAAU,GAAG,8BAA8B,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,yBAAyB;IACzB,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAEtC,iEAAiE;IACjE,IAAI,OAAO,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,IAAgB;IAC9D,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAChE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/binding/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/binding/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inferFromHttpMethod.d.ts","sourceRoot":"","sources":["../../../../src/core/binding/rules/inferFromHttpMethod.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACtC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAYrE"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export function conventionForMethod(method) {
|
|
2
|
-
const m = method.toUpperCase();
|
|
3
|
-
if (m === 'GET' || m === 'DELETE') {
|
|
4
|
-
return { primary: 'query', secondary: 'none' };
|
|
5
|
-
}
|
|
6
|
-
if (m === 'POST' || m === 'PUT' || m === 'PATCH') {
|
|
7
|
-
return { primary: 'body', secondary: 'query' };
|
|
8
|
-
}
|
|
9
|
-
return { primary: 'none', secondary: 'none' };
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=inferFromHttpMethod.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inferFromHttpMethod.js","sourceRoot":"","sources":["../../../../src/core/binding/rules/inferFromHttpMethod.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAE/B,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inferFromPath.d.ts","sourceRoot":"","sources":["../../../../src/core/binding/rules/inferFromPath.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAM5D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inferFromPath.js","sourceRoot":"","sources":["../../../../src/core/binding/rules/inferFromPath.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,cAAc,CAAC;IAC1B,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrappers.d.ts","sourceRoot":"","sources":["../../../../src/core/binding/rules/wrappers.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrappers.js","sourceRoot":"","sources":["../../../../src/core/binding/rules/wrappers.ts"],"names":[],"mappings":";AAAA,qDAAqD"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import type { HttpErrorLike, HttpErrorOptions } from '../../contracts/errors.js';
|
|
2
|
-
/**
|
|
3
|
-
* HTTP Error class for representing HTTP errors with status codes.
|
|
4
|
-
*
|
|
5
|
-
* This class extends the native Error class and implements HttpErrorLike interface.
|
|
6
|
-
* It's used throughout the framework to represent HTTP errors that should be
|
|
7
|
-
* returned to clients with appropriate status codes and error details.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* // Basic usage
|
|
12
|
-
* throw new HttpError(404, 'User not found');
|
|
13
|
-
*
|
|
14
|
-
* // With error code and details
|
|
15
|
-
* throw new HttpError(400, 'Invalid input', {
|
|
16
|
-
* code: 'INVALID_INPUT',
|
|
17
|
-
* details: { field: 'email', reason: 'must be valid email' }
|
|
18
|
-
* });
|
|
19
|
-
*
|
|
20
|
-
* // For internal server errors (not exposed to client by default)
|
|
21
|
-
* throw new HttpError(500, 'Database connection failed', {
|
|
22
|
-
* expose: false
|
|
23
|
-
* });
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* // In a controller
|
|
29
|
-
* @Get('/users/:id')
|
|
30
|
-
* async getUser(id: string) {
|
|
31
|
-
* const user = await userService.findById(id);
|
|
32
|
-
* if (!user) {
|
|
33
|
-
* throw new HttpError(404, 'User not found', {
|
|
34
|
-
* code: 'USER_NOT_FOUND',
|
|
35
|
-
* details: { id }
|
|
36
|
-
* });
|
|
37
|
-
* }
|
|
38
|
-
* return user;
|
|
39
|
-
* }
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export declare class HttpError extends Error implements HttpErrorLike {
|
|
43
|
-
/** HTTP status code (e.g., 404, 500) */
|
|
44
|
-
readonly status: number;
|
|
45
|
-
/** Optional error code for programmatic handling */
|
|
46
|
-
readonly code?: string;
|
|
47
|
-
/** Additional error details (can be any type) */
|
|
48
|
-
readonly details?: unknown;
|
|
49
|
-
/** Whether to expose this error to clients */
|
|
50
|
-
readonly expose: boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Creates a new HttpError instance.
|
|
53
|
-
*
|
|
54
|
-
* @param status - HTTP status code
|
|
55
|
-
* @param message - Error message
|
|
56
|
-
* @param options - Additional error options
|
|
57
|
-
* @param options.code - Optional error code
|
|
58
|
-
* @param options.details - Additional error details
|
|
59
|
-
* @param options.expose - Whether to expose to clients (default: true for 4xx, false for 5xx)
|
|
60
|
-
*/
|
|
61
|
-
constructor(status: number, message: string, options?: HttpErrorOptions);
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=http-error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-error.d.ts","sourceRoot":"","sources":["../../../src/core/errors/http-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,SAAU,SAAQ,KAAM,YAAW,aAAa;IAC3D,wCAAwC;IACxC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,oDAAoD;IACpD,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9B,iDAAiD;IACjD,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClC,8CAA8C;IAC9C,SAAgB,MAAM,EAAE,OAAO,CAAC;IAEhC;;;;;;;;;OASG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;CAU5E"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HTTP Error class for representing HTTP errors with status codes.
|
|
3
|
-
*
|
|
4
|
-
* This class extends the native Error class and implements HttpErrorLike interface.
|
|
5
|
-
* It's used throughout the framework to represent HTTP errors that should be
|
|
6
|
-
* returned to clients with appropriate status codes and error details.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* // Basic usage
|
|
11
|
-
* throw new HttpError(404, 'User not found');
|
|
12
|
-
*
|
|
13
|
-
* // With error code and details
|
|
14
|
-
* throw new HttpError(400, 'Invalid input', {
|
|
15
|
-
* code: 'INVALID_INPUT',
|
|
16
|
-
* details: { field: 'email', reason: 'must be valid email' }
|
|
17
|
-
* });
|
|
18
|
-
*
|
|
19
|
-
* // For internal server errors (not exposed to client by default)
|
|
20
|
-
* throw new HttpError(500, 'Database connection failed', {
|
|
21
|
-
* expose: false
|
|
22
|
-
* });
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* // In a controller
|
|
28
|
-
* @Get('/users/:id')
|
|
29
|
-
* async getUser(id: string) {
|
|
30
|
-
* const user = await userService.findById(id);
|
|
31
|
-
* if (!user) {
|
|
32
|
-
* throw new HttpError(404, 'User not found', {
|
|
33
|
-
* code: 'USER_NOT_FOUND',
|
|
34
|
-
* details: { id }
|
|
35
|
-
* });
|
|
36
|
-
* }
|
|
37
|
-
* return user;
|
|
38
|
-
* }
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export class HttpError extends Error {
|
|
42
|
-
/** HTTP status code (e.g., 404, 500) */
|
|
43
|
-
status;
|
|
44
|
-
/** Optional error code for programmatic handling */
|
|
45
|
-
code;
|
|
46
|
-
/** Additional error details (can be any type) */
|
|
47
|
-
details;
|
|
48
|
-
/** Whether to expose this error to clients */
|
|
49
|
-
expose;
|
|
50
|
-
/**
|
|
51
|
-
* Creates a new HttpError instance.
|
|
52
|
-
*
|
|
53
|
-
* @param status - HTTP status code
|
|
54
|
-
* @param message - Error message
|
|
55
|
-
* @param options - Additional error options
|
|
56
|
-
* @param options.code - Optional error code
|
|
57
|
-
* @param options.details - Additional error details
|
|
58
|
-
* @param options.expose - Whether to expose to clients (default: true for 4xx, false for 5xx)
|
|
59
|
-
*/
|
|
60
|
-
constructor(status, message, options = {}) {
|
|
61
|
-
super(message);
|
|
62
|
-
this.name = 'HttpError';
|
|
63
|
-
this.status = status;
|
|
64
|
-
if (options.code !== undefined) {
|
|
65
|
-
this.code = options.code;
|
|
66
|
-
}
|
|
67
|
-
this.details = options.details;
|
|
68
|
-
this.expose = options.expose ?? (status >= 400 && status < 500);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=http-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-error.js","sourceRoot":"","sources":["../../../src/core/errors/http-error.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,wCAAwC;IACxB,MAAM,CAAS;IAC/B,oDAAoD;IACpC,IAAI,CAAU;IAC9B,iDAAiD;IACjC,OAAO,CAAW;IAClC,8CAA8C;IAC9B,MAAM,CAAU;IAEhC;;;;;;;;;OASG;IACH,YAAY,MAAc,EAAE,OAAe,EAAE,UAA4B,EAAE;QACzE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC;IAClE,CAAC;CACF"}
|