diff --git a/docs/features/event-handler/rest.md b/docs/features/event-handler/http.md similarity index 90% rename from docs/features/event-handler/rest.md rename to docs/features/event-handler/http.md index 76e508409c..d4301d928e 100644 --- a/docs/features/event-handler/rest.md +++ b/docs/features/event-handler/http.md @@ -4,9 +4,6 @@ description: Event handler for building HTTP APIs in AWS Lambda status: new --- -!!! warning "Feature status" - This feature is under active development and may undergo significant changes. We recommend using it in non-critical workloads and [providing feedback](https://github.com/aws-powertools/powertools-lambda-typescript/issues/new/choose){target="_blank"} to help us improve it. - Event handler for Amazon API Gateway REST and HTTP APIs, Application Loader Balancer (ALB), and Lambda Function URLs. ## Key Features @@ -46,19 +43,19 @@ This is the sample infrastructure for the different integrations we are using fo === "API Gateway REST API SAM Template" ```yaml title="AWS Serverless Application Model (SAM) example" - --8<-- "examples/snippets/event-handler/rest/templates/api_gateway_rest_api.yml" + --8<-- "examples/snippets/event-handler/http/templates/api_gateway_rest_api.yml" ``` === "API Gateway HTTP API SAM Template" ```yaml title="AWS Serverless Application Model (SAM) example" - --8<-- "examples/snippets/event-handler/rest/templates/api_gateway_http_api.yml" + --8<-- "examples/snippets/event-handler/http/templates/api_gateway_http_api.yml" ``` === "Lambda Function URL SAM Template" ```yaml title="AWS Serverless Application Model (SAM) example" - --8<-- "examples/snippets/event-handler/rest/templates/lambda_furl.yml" + --8<-- "examples/snippets/event-handler/http/templates/lambda_furl.yml" ``` ### Route events @@ -81,7 +78,7 @@ For your convenience, when you return a JavaScript object from your route handle === "index.ts" ```ts hl_lines="6" - --8<-- "examples/snippets/event-handler/rest/gettingStarted_serialization.ts" + --8<-- "examples/snippets/event-handler/http/gettingStarted_serialization.ts" ``` 1. This object will be serialized and included under the `body` key @@ -89,7 +86,7 @@ For your convenience, when you return a JavaScript object from your route handle === "JSON response" ```json hl_lines="6" - --8<-- "examples/snippets/event-handler/rest/samples/gettingStarted_serialization.json" + --8<-- "examples/snippets/event-handler/http/samples/gettingStarted_serialization.json" ``` !!! tip "Automatic response format transformation" @@ -104,13 +101,13 @@ All dynamic route parameters will be available as typed object properties in the === "index.ts" ```ts hl_lines="14" - --8<-- "examples/snippets/event-handler/rest/gettingStarted_dynamic_routes.ts:3" + --8<-- "examples/snippets/event-handler/http/gettingStarted_dynamic_routes.ts:3" ``` === "Request" ```json - --8<-- "examples/snippets/event-handler/rest/samples/gettingStarted_dynamic_routes.json" + --8<-- "examples/snippets/event-handler/http/samples/gettingStarted_dynamic_routes.json" ``` You can also nest dynamic paths, for example `/todos/:todoId/comments/:commentId`, where both `:todoId` and `:commentId` will be resolved at runtime. @@ -132,10 +129,10 @@ You can use standard [regular expressions](https://developer.mozilla.org/en-US/d | `/[^/]+/` | Matches one or more non-slash characters | `/\/api\/[^\/]+/` matches `/api/v1` but not `/api/v1/users` | | `/\w+/` | Matches one or more word characters | `/\/users\/\w+/` matches `/users/john123` | -=== "gettingStarted_dynamic_routes_catch_all.ts" +=== "index.ts" ```python hl_lines="7 10 13 20" - --8<-- "examples/snippets/event-handler/rest/gettingStarted_dynamic_routes_catch_all.ts" + --8<-- "examples/snippets/event-handler/http/gettingStarted_dynamic_routes_catch_all.ts" ``` ???+ warning "Route Matching Priority" @@ -150,13 +147,13 @@ You can use dedicated methods to specify the HTTP method that should be handled === "index.ts" ```ts hl_lines="14 16" - --8<-- "examples/snippets/event-handler/rest/gettingStarted_methods.ts:3" + --8<-- "examples/snippets/event-handler/http/gettingStarted_methods.ts:3" ``` === "Request" ```json - --8<-- "examples/snippets/event-handler/rest/samples/gettingStarted_methods.json" + --8<-- "examples/snippets/event-handler/http/samples/gettingStarted_methods.json" ``` If you need to accept multiple HTTP methods in a single function, or support an HTTP method for which no dedicated method exists (i.e. [`TRACE`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Methods/TRACE){target="_blank"}), you can use the `route()` method and pass a list of HTTP methods. @@ -164,7 +161,7 @@ If you need to accept multiple HTTP methods in a single function, or support an === "index.ts" ```ts hl_lines="21-24" - --8<-- "examples/snippets/event-handler/rest/gettingStarted_multi_methods.ts:3" + --8<-- "examples/snippets/event-handler/http/gettingStarted_multi_methods.ts:3" ``` !!! tip @@ -195,7 +192,7 @@ Error handlers receive the error object and the request context as arguments, an === "index.ts" ```ts hl_lines="11" - --8<-- "examples/snippets/event-handler/rest/gettingStarted_error_handling.ts:4" + --8<-- "examples/snippets/event-handler/http/gettingStarted_error_handling.ts:4" ``` ### Built-in Error Handlers @@ -209,7 +206,7 @@ By default, we return a `404 Not Found` response for unmatched routes. === "index.ts" ```ts hl_lines="11 23" - --8<-- "examples/snippets/event-handler/rest/gettingStarted_built_in_error_handler.ts" + --8<-- "examples/snippets/event-handler/http/gettingStarted_built_in_error_handler.ts" ``` ### Throwing HTTP errors @@ -225,7 +222,7 @@ If you need to send custom headers or a different response structure/code, you c === "index.ts" ```ts hl_lines="3 11" - --8<-- "examples/snippets/event-handler/rest/gettingStarted_throwing_http_errors.ts:3" + --8<-- "examples/snippets/event-handler/http/gettingStarted_throwing_http_errors.ts:3" ``` #### Available HTTP error classes @@ -261,7 +258,7 @@ To avoid repeating the prefix in each route definition, you can use the `prefix` === "index.ts" ```ts hl_lines="4 7" - --8<-- "examples/snippets/event-handler/rest/gettingStarted_route_prefix.ts:3" + --8<-- "examples/snippets/event-handler/http/gettingStarted_route_prefix.ts:3" ``` This is also useful when splitting routes into separate files (see [Split routers](#split-routers) section) or when using [API mappings](https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api-mappings.html){target="_blank"} to map custom domains to specific base paths. @@ -290,7 +287,7 @@ for post-processing. When middleware modify the same response properties, the mi executes last in post-processing wins. ```mermaid ---8<-- "examples/snippets/event-handler/rest/diagrams/middleware_execution_order.mermaid" +--8<-- "examples/snippets/event-handler/http/diagrams/middleware_execution_order.mermaid" ``` @@ -303,13 +300,13 @@ handler. === "index.ts" ```ts hl_lines="9-14 16-21 31" - --8<-- "examples/snippets/event-handler/rest/advanced_mw_middleware_order.ts:3" + --8<-- "examples/snippets/event-handler/http/advanced_mw_middleware_order.ts:3" ``` === "Response" ```json hl_lines="6-7" - --8<-- "examples/snippets/event-handler/rest/samples/advanced_mw_middleware_order.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_mw_middleware_order.json" ``` #### Returning early @@ -322,19 +319,19 @@ Neither the handler nor any subsequent middleware will run but the post-processing of already executed middleware will. ```mermaid ---8<-- "examples/snippets/event-handler/rest/diagrams/middleware_early_return.mermaid" +--8<-- "examples/snippets/event-handler/http/diagrams/middleware_early_return.mermaid" ``` === "index.ts" ```ts hl_lines="13-18" - --8<-- "examples/snippets/event-handler/rest/advanced_mw_early_return.ts:3" + --8<-- "examples/snippets/event-handler/http/advanced_mw_early_return.ts:3" ``` === "Response" ```json hl_lines="2" - --8<-- "examples/snippets/event-handler/rest/samples/advanced_mw_early_return.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_mw_early_return.json" ``` #### Error Handling @@ -344,7 +341,7 @@ By default, any unhandled error in the middleware chain will be propagated as a chain entirely and no post-processing steps for any previously executed middleware will occur. ```mermaid ---8<-- "examples/snippets/event-handler/rest/diagrams/middleware_error_handling.mermaid" +--8<-- "examples/snippets/event-handler/http/diagrams/middleware_error_handling.mermaid" ```
*Unhandled errors*
@@ -353,7 +350,7 @@ You can handle errors in middleware as you would anywhere else, simply surround a `try`/`catch` block and processing will occur as usual. ```mermaid ---8<-- "examples/snippets/event-handler/rest/diagrams/middleware_handled_error.mermaid" +--8<-- "examples/snippets/event-handler/http/diagrams/middleware_handled_error.mermaid" ```
*Handled errors*
@@ -364,7 +361,7 @@ you can use or you can throw a custom error of your own. As noted above, this me that no post-processing of your request will occur. ```mermaid ---8<-- "examples/snippets/event-handler/rest/diagrams/middleware_throwing_error.mermaid" +--8<-- "examples/snippets/event-handler/http/diagrams/middleware_throwing_error.mermaid" ``` @@ -383,7 +380,7 @@ accepts configuration options and returns a middleware function. === "index.ts" ```ts hl_lines="20-21 36 41" - --8<-- "examples/snippets/event-handler/rest/advanced_mw_custom_middleware.ts:8" + --8<-- "examples/snippets/event-handler/http/advanced_mw_custom_middleware.ts:8" ``` In this example we have a middleware that acts only in the post-processing stage as all @@ -398,7 +395,7 @@ the handler has run and we have access to request body. === "index.ts" ```ts hl_lines="6 14-15" - --8<-- "examples/snippets/event-handler/rest/advanced_mw_destructuring_problem.ts:3" + --8<-- "examples/snippets/event-handler/http/advanced_mw_destructuring_problem.ts:3" ``` During the middleware execution chain, the response object (`reqCtx.res`) can be replaced by @@ -414,13 +411,13 @@ middleware combinations that can be shared across different routes or applicatio === "middleware.ts" ```ts hl_lines="1 21" - --8<-- "examples/snippets/event-handler/rest/advanced_mw_compose_middleware_shared.ts" + --8<-- "examples/snippets/event-handler/http/advanced_mw_compose_middleware_shared.ts" ``` === "index.ts" ```ts hl_lines="3 7" - --8<-- "examples/snippets/event-handler/rest/advanced_mw_compose_middleware_index.ts:3" + --8<-- "examples/snippets/event-handler/http/advanced_mw_compose_middleware_index.ts:3" ``` The `composeMiddleware` function maintains the same execution order as if you had applied the @@ -450,13 +447,13 @@ example, you might want to add additional headers, cookies, or set a custom cont === "index.ts" ```ts hl_lines="11-18 25-31" - --8<-- "examples/snippets/event-handler/rest/advanced_fine_grained_responses.ts:6" + --8<-- "examples/snippets/event-handler/http/advanced_fine_grained_responses.ts:6" ``` === "Response" ```json hl_lines="4-6" - --8<-- "examples/snippets/event-handler/rest/samples/advanced_fine_grained_responses.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_fine_grained_responses.json" ``` ### CORS @@ -468,13 +465,13 @@ This will ensure that CORS headers are returned as part of the response when you === "index.ts" ```ts hl_lines="2 8-11" - --8<-- "examples/snippets/event-handler/rest/advanced_cors_simple.ts:3" + --8<-- "examples/snippets/event-handler/http/advanced_cors_simple.ts:3" ``` === "Response" ```json - --8<-- "examples/snippets/event-handler/rest/samples/advanced_cors_simple.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_cors_simple.json" ``` #### Pre-flight @@ -505,13 +502,13 @@ You can override the global CORS settings on a per-route basis by passing option === "index.ts" ```ts hl_lines="2 19" - --8<-- "examples/snippets/event-handler/rest/advanced_cors_per_route.ts:3" + --8<-- "examples/snippets/event-handler/http/advanced_cors_per_route.ts:3" ``` === "Response" ```json - --8<-- "examples/snippets/event-handler/rest/samples/advanced_cors_per_route.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_cors_per_route.json" ``` ### Compress @@ -521,19 +518,19 @@ You can enable response compression by using the `compress` middleware. This wil === "index.ts" ```ts hl_lines="2 7" - --8<-- "examples/snippets/event-handler/rest/advanced_compress.ts:3" + --8<-- "examples/snippets/event-handler/http/advanced_compress.ts:3" ``` === "Request" ```json hl_lines="3" - --8<-- "examples/snippets/event-handler/rest/samples/advanced_compress_req.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_compress_req.json" ``` === "Response" ```json hl_lines="4-5 7-8" - --8<-- "examples/snippets/event-handler/rest/samples/advanced_compress_res.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_compress_res.json" ``` ### Binary responses @@ -556,19 +553,19 @@ directly from your handler. We will automatically serialize the response by sett === "index.ts" ```ts hl_lines="8-9" - --8<-- "examples/snippets/event-handler/rest/advanced_binary_response_auto.ts" + --8<-- "examples/snippets/event-handler/http/advanced_binary_response_auto.ts" ``` === "Request" ```json - --8<-- "examples/snippets/event-handler/rest/samples/advanced_binary_req_logo_image.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_binary_req_logo_image.json" ``` === "Response" ```json - --8<-- "examples/snippets/event-handler/rest/samples/advanced_binary_res_logo_image.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_binary_res_logo_image.json" ``` #### Set `isBase64Encoded` parameter @@ -578,19 +575,19 @@ You can indicate that you wish to `base64` encode any response, regardless of ty === "index.ts" ```ts hl_lines="7" - --8<-- "examples/snippets/event-handler/rest/advanced_binary_response_reqCtx.ts" + --8<-- "examples/snippets/event-handler/http/advanced_binary_response_reqCtx.ts" ``` === "Request" ```json - --8<-- "examples/snippets/event-handler/rest/samples/advanced_binary_req_json64.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_binary_req_json64.json" ``` === "Response" ```json - --8<-- "examples/snippets/event-handler/rest/samples/advanced_binary_res_json64.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_binary_res_json64.json" ``` #### Manual serialization @@ -600,19 +597,19 @@ For complete control you can return an `APIGatewayProxyEvent` (`v1` or `v2`) and === "index.ts" ```ts hl_lines="8-16" - --8<-- "examples/snippets/event-handler/rest/advanced_binary_response_manual.ts" + --8<-- "examples/snippets/event-handler/http/advanced_binary_response_manual.ts" ``` === "Request" ```json - --8<-- "examples/snippets/event-handler/rest/samples/advanced_binary_req_logo_image.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_binary_req_logo_image.json" ``` === "Response" ```json - --8<-- "examples/snippets/event-handler/rest/samples/advanced_binary_res_logo_image.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_binary_res_logo_image.json" ``` !!! note "Compression" If you wish to use binary responses together with the [`compress`](#compress) feature, the client must send the `Accept` header with the correct media type. @@ -633,7 +630,7 @@ other types and these will also be delivered via HTTP streaming. === "index.ts" ```ts hl_lines="3 17" - --8<-- "examples/snippets/event-handler/rest/advanced_response_streaming.ts:4" + --8<-- "examples/snippets/event-handler/http/advanced_response_streaming.ts:4" ``` !!! tip "When to use streaming" @@ -663,13 +660,13 @@ When an unhandled error occurs in your route handler or middleware, Event Handle === "Production mode (default)" ```json - --8<-- "examples/snippets/event-handler/rest/samples/advanced_error_prod.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_error_prod.json" ``` === "Debug mode" ```json - --8<-- "examples/snippets/event-handler/rest/samples/advanced_error_debug.json" + --8<-- "examples/snippets/event-handler/http/samples/advanced_error_debug.json" ``` #### Logging requests and responses @@ -701,13 +698,13 @@ Let's assume you have `index.ts` as your Lambda function entrypoint and routes i === "split_route.ts" ```typescript - --8<-- "examples/snippets/event-handler/rest/split_route.ts" + --8<-- "examples/snippets/event-handler/http/split_route.ts" ``` === "index.ts" ```typescript hl_lines="8" - --8<-- "examples/snippets/event-handler/rest/split_route_index.ts" + --8<-- "examples/snippets/event-handler/http/split_route_index.ts" ``` #### Route Prefix @@ -719,12 +716,12 @@ When necessary, you can set a prefix when including a `Router` instance. This me === "split_route_prefix.ts" ```typescript - --8<-- "examples/snippets/event-handler/rest/split_route_prefix.ts" + --8<-- "examples/snippets/event-handler/http/split_route_prefix.ts" ``` === "index.ts" ```typescript hl_lines="8" - --8<-- "examples/snippets/event-handler/rest/split_route_prefix_index.ts" + --8<-- "examples/snippets/event-handler/http/split_route_prefix_index.ts" ``` ### Considerations @@ -787,17 +784,17 @@ Below is an example using [Vitest](https://vitest.dev){target="_blank"}, includi === "index.test.ts" ```ts - --8<-- "examples/snippets/event-handler/rest/advanced_testing_main.ts" + --8<-- "examples/snippets/event-handler/http/advanced_testing_main.ts" ``` === "event_helper.ts" ```ts - --8<-- "examples/snippets/event-handler/rest/advanced_testing_helper.ts" + --8<-- "examples/snippets/event-handler/http/advanced_testing_helper.ts" ``` === "index.ts" ```ts - --8<-- "examples/snippets/event-handler/rest/advanced_cors_simple.ts:3" + --8<-- "examples/snippets/event-handler/http/advanced_cors_simple.ts:3" ``` diff --git a/docs/features/event-handler/index.md b/docs/features/event-handler/index.md index 817fed779b..5eb7151afe 100644 --- a/docs/features/event-handler/index.md +++ b/docs/features/event-handler/index.md @@ -13,7 +13,7 @@ description: Simplify routing and processing of events in AWS Lambda functions Event handler for Amazon API Gateway REST and HTTP APIs, Application Loader Balancer (ALB), Lambda Function URLs, and VPC Lattice. - [:octicons-arrow-right-24: Read more](./rest.md) + [:octicons-arrow-right-24: Read more](./http.md) - __AppSync Events API__ diff --git a/examples/snippets/event-handler/rest/advanced_binary_response_auto.ts b/examples/snippets/event-handler/http/advanced_binary_response_auto.ts similarity index 82% rename from examples/snippets/event-handler/rest/advanced_binary_response_auto.ts rename to examples/snippets/event-handler/http/advanced_binary_response_auto.ts index 85298caa62..8cc7582f0d 100644 --- a/examples/snippets/event-handler/rest/advanced_binary_response_auto.ts +++ b/examples/snippets/event-handler/http/advanced_binary_response_auto.ts @@ -1,5 +1,5 @@ import { createReadStream } from 'node:fs'; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Context } from 'aws-lambda'; const app = new Router(); diff --git a/examples/snippets/event-handler/rest/advanced_binary_response_manual.ts b/examples/snippets/event-handler/http/advanced_binary_response_manual.ts similarity index 85% rename from examples/snippets/event-handler/rest/advanced_binary_response_manual.ts rename to examples/snippets/event-handler/http/advanced_binary_response_manual.ts index 3c6465864b..a74893e54f 100644 --- a/examples/snippets/event-handler/rest/advanced_binary_response_manual.ts +++ b/examples/snippets/event-handler/http/advanced_binary_response_manual.ts @@ -1,5 +1,5 @@ import { readFile } from 'node:fs/promises'; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Context } from 'aws-lambda'; const app = new Router(); diff --git a/examples/snippets/event-handler/rest/advanced_binary_response_reqCtx.ts b/examples/snippets/event-handler/http/advanced_binary_response_reqCtx.ts similarity index 77% rename from examples/snippets/event-handler/rest/advanced_binary_response_reqCtx.ts rename to examples/snippets/event-handler/http/advanced_binary_response_reqCtx.ts index eaae6703ca..eb3fac6329 100644 --- a/examples/snippets/event-handler/rest/advanced_binary_response_reqCtx.ts +++ b/examples/snippets/event-handler/http/advanced_binary_response_reqCtx.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Context } from 'aws-lambda'; const app = new Router(); diff --git a/examples/snippets/event-handler/rest/advanced_compress.ts b/examples/snippets/event-handler/http/advanced_compress.ts similarity index 69% rename from examples/snippets/event-handler/rest/advanced_compress.ts rename to examples/snippets/event-handler/http/advanced_compress.ts index 0a251a332f..d574360332 100644 --- a/examples/snippets/event-handler/rest/advanced_compress.ts +++ b/examples/snippets/event-handler/http/advanced_compress.ts @@ -1,7 +1,7 @@ declare function getTodoById(todoId: unknown): Promise<{ id: string } & T>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; -import { compress } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; +import { compress } from '@aws-lambda-powertools/event-handler/http/middleware'; import type { Context } from 'aws-lambda'; const app = new Router(); diff --git a/examples/snippets/event-handler/rest/advanced_cors_per_route.ts b/examples/snippets/event-handler/http/advanced_cors_per_route.ts similarity index 76% rename from examples/snippets/event-handler/rest/advanced_cors_per_route.ts rename to examples/snippets/event-handler/http/advanced_cors_per_route.ts index feb080a381..10c572e3bb 100644 --- a/examples/snippets/event-handler/rest/advanced_cors_per_route.ts +++ b/examples/snippets/event-handler/http/advanced_cors_per_route.ts @@ -1,7 +1,7 @@ declare function getTodoById(todoId: unknown): Promise<{ id: string } & T>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; -import { cors } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; +import { cors } from '@aws-lambda-powertools/event-handler/http/middleware'; import type { Context } from 'aws-lambda'; const app = new Router(); diff --git a/examples/snippets/event-handler/rest/advanced_cors_simple.ts b/examples/snippets/event-handler/http/advanced_cors_simple.ts similarity index 72% rename from examples/snippets/event-handler/rest/advanced_cors_simple.ts rename to examples/snippets/event-handler/http/advanced_cors_simple.ts index d86bef4356..f30f44c5c0 100644 --- a/examples/snippets/event-handler/rest/advanced_cors_simple.ts +++ b/examples/snippets/event-handler/http/advanced_cors_simple.ts @@ -1,7 +1,7 @@ declare function getTodoById(todoId: unknown): Promise<{ id: string } & T>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; -import { cors } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; +import { cors } from '@aws-lambda-powertools/event-handler/http/middleware'; import type { Context } from 'aws-lambda'; const app = new Router(); diff --git a/examples/snippets/event-handler/rest/advanced_fine_grained_responses.ts b/examples/snippets/event-handler/http/advanced_fine_grained_responses.ts similarity index 92% rename from examples/snippets/event-handler/rest/advanced_fine_grained_responses.ts rename to examples/snippets/event-handler/http/advanced_fine_grained_responses.ts index eb918c8587..009907c59e 100644 --- a/examples/snippets/event-handler/rest/advanced_fine_grained_responses.ts +++ b/examples/snippets/event-handler/http/advanced_fine_grained_responses.ts @@ -3,7 +3,7 @@ declare function createTodo( title: string ): Promise<{ id: string; title: string }>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import { Logger } from '@aws-lambda-powertools/logger'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/event-handler/rest/advanced_mw_compose_middleware_index.ts b/examples/snippets/event-handler/http/advanced_mw_compose_middleware_index.ts similarity index 88% rename from examples/snippets/event-handler/rest/advanced_mw_compose_middleware_index.ts rename to examples/snippets/event-handler/http/advanced_mw_compose_middleware_index.ts index 5b6e9c2499..fb852528ab 100644 --- a/examples/snippets/event-handler/rest/advanced_mw_compose_middleware_index.ts +++ b/examples/snippets/event-handler/http/advanced_mw_compose_middleware_index.ts @@ -1,7 +1,7 @@ declare const getAllTodos: () => Promise[]>; declare const putTodo: (body: unknown) => Promise>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Context } from 'aws-lambda'; import { apiMiddleware } from './advanced_mw_compose_middleware_shared.js'; diff --git a/examples/snippets/event-handler/rest/advanced_mw_compose_middleware_shared.ts b/examples/snippets/event-handler/http/advanced_mw_compose_middleware_shared.ts similarity index 86% rename from examples/snippets/event-handler/rest/advanced_mw_compose_middleware_shared.ts rename to examples/snippets/event-handler/http/advanced_mw_compose_middleware_shared.ts index 190d5365f0..c9f3cebb29 100644 --- a/examples/snippets/event-handler/rest/advanced_mw_compose_middleware_shared.ts +++ b/examples/snippets/event-handler/http/advanced_mw_compose_middleware_shared.ts @@ -1,5 +1,5 @@ -import { composeMiddleware } from '@aws-lambda-powertools/event-handler/experimental-rest'; -import { cors } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware'; +import { composeMiddleware } from '@aws-lambda-powertools/event-handler/http'; +import { cors } from '@aws-lambda-powertools/event-handler/http/middleware'; import type { Middleware } from '@aws-lambda-powertools/event-handler/types'; import { Logger } from '@aws-lambda-powertools/logger'; diff --git a/examples/snippets/event-handler/rest/advanced_mw_custom_middleware.ts b/examples/snippets/event-handler/http/advanced_mw_custom_middleware.ts similarity index 96% rename from examples/snippets/event-handler/rest/advanced_mw_custom_middleware.ts rename to examples/snippets/event-handler/http/advanced_mw_custom_middleware.ts index 8e852dd523..2a924e47f9 100644 --- a/examples/snippets/event-handler/rest/advanced_mw_custom_middleware.ts +++ b/examples/snippets/event-handler/http/advanced_mw_custom_middleware.ts @@ -9,7 +9,7 @@ import { getStringFromEnv } from '@aws-lambda-powertools/commons/utils/env'; import { Router, UnauthorizedError, -} from '@aws-lambda-powertools/event-handler/experimental-rest'; +} from '@aws-lambda-powertools/event-handler/http'; import type { Middleware } from '@aws-lambda-powertools/event-handler/types'; import { Logger } from '@aws-lambda-powertools/logger'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/event-handler/rest/advanced_mw_destructuring_problem.ts b/examples/snippets/event-handler/http/advanced_mw_destructuring_problem.ts similarity index 92% rename from examples/snippets/event-handler/rest/advanced_mw_destructuring_problem.ts rename to examples/snippets/event-handler/http/advanced_mw_destructuring_problem.ts index b1fd622248..920ba29427 100644 --- a/examples/snippets/event-handler/rest/advanced_mw_destructuring_problem.ts +++ b/examples/snippets/event-handler/http/advanced_mw_destructuring_problem.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Middleware } from '@aws-lambda-powertools/event-handler/types'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/event-handler/rest/advanced_mw_early_return.ts b/examples/snippets/event-handler/http/advanced_mw_early_return.ts similarity index 93% rename from examples/snippets/event-handler/rest/advanced_mw_early_return.ts rename to examples/snippets/event-handler/http/advanced_mw_early_return.ts index e973269e67..eae02da1f0 100644 --- a/examples/snippets/event-handler/rest/advanced_mw_early_return.ts +++ b/examples/snippets/event-handler/http/advanced_mw_early_return.ts @@ -1,6 +1,6 @@ declare function getAllTodos(): Promise<{ id: string; title: string }[]>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Middleware } from '@aws-lambda-powertools/event-handler/types'; import { Logger } from '@aws-lambda-powertools/logger'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/event-handler/rest/advanced_mw_middleware_order.ts b/examples/snippets/event-handler/http/advanced_mw_middleware_order.ts similarity index 94% rename from examples/snippets/event-handler/rest/advanced_mw_middleware_order.ts rename to examples/snippets/event-handler/http/advanced_mw_middleware_order.ts index 418e3f4142..e30e481c70 100644 --- a/examples/snippets/event-handler/rest/advanced_mw_middleware_order.ts +++ b/examples/snippets/event-handler/http/advanced_mw_middleware_order.ts @@ -1,7 +1,7 @@ declare function getAllTodos(): Promise<{ id: string; title: string }[]>; declare function putTodo(todo: unknown): Promise<{ id: string } & T>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Middleware } from '@aws-lambda-powertools/event-handler/types'; import { Logger } from '@aws-lambda-powertools/logger'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/event-handler/rest/advanced_response_streaming.ts b/examples/snippets/event-handler/http/advanced_response_streaming.ts similarity index 78% rename from examples/snippets/event-handler/rest/advanced_response_streaming.ts rename to examples/snippets/event-handler/http/advanced_response_streaming.ts index 51c1741e89..1148afe90a 100644 --- a/examples/snippets/event-handler/rest/advanced_response_streaming.ts +++ b/examples/snippets/event-handler/http/advanced_response_streaming.ts @@ -1,10 +1,7 @@ declare function createVideoStream(): Readable; import type { Readable } from 'node:stream'; -import { - Router, - streamify, -} from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router, streamify } from '@aws-lambda-powertools/event-handler/http'; const app = new Router(); diff --git a/examples/snippets/event-handler/rest/advanced_testing_helper.ts b/examples/snippets/event-handler/http/advanced_testing_helper.ts similarity index 100% rename from examples/snippets/event-handler/rest/advanced_testing_helper.ts rename to examples/snippets/event-handler/http/advanced_testing_helper.ts diff --git a/examples/snippets/event-handler/rest/advanced_testing_main.ts b/examples/snippets/event-handler/http/advanced_testing_main.ts similarity index 100% rename from examples/snippets/event-handler/rest/advanced_testing_main.ts rename to examples/snippets/event-handler/http/advanced_testing_main.ts diff --git a/examples/snippets/event-handler/rest/diagrams/middleware_early_return.mermaid b/examples/snippets/event-handler/http/diagrams/middleware_early_return.mermaid similarity index 100% rename from examples/snippets/event-handler/rest/diagrams/middleware_early_return.mermaid rename to examples/snippets/event-handler/http/diagrams/middleware_early_return.mermaid diff --git a/examples/snippets/event-handler/rest/diagrams/middleware_error_handling.mermaid b/examples/snippets/event-handler/http/diagrams/middleware_error_handling.mermaid similarity index 100% rename from examples/snippets/event-handler/rest/diagrams/middleware_error_handling.mermaid rename to examples/snippets/event-handler/http/diagrams/middleware_error_handling.mermaid diff --git a/examples/snippets/event-handler/rest/diagrams/middleware_execution_order.mermaid b/examples/snippets/event-handler/http/diagrams/middleware_execution_order.mermaid similarity index 100% rename from examples/snippets/event-handler/rest/diagrams/middleware_execution_order.mermaid rename to examples/snippets/event-handler/http/diagrams/middleware_execution_order.mermaid diff --git a/examples/snippets/event-handler/rest/diagrams/middleware_handled_error.mermaid b/examples/snippets/event-handler/http/diagrams/middleware_handled_error.mermaid similarity index 100% rename from examples/snippets/event-handler/rest/diagrams/middleware_handled_error.mermaid rename to examples/snippets/event-handler/http/diagrams/middleware_handled_error.mermaid diff --git a/examples/snippets/event-handler/rest/diagrams/middleware_throwing_error.mermaid b/examples/snippets/event-handler/http/diagrams/middleware_throwing_error.mermaid similarity index 100% rename from examples/snippets/event-handler/rest/diagrams/middleware_throwing_error.mermaid rename to examples/snippets/event-handler/http/diagrams/middleware_throwing_error.mermaid diff --git a/examples/snippets/event-handler/rest/gettingStarted_built_in_error_handler.ts b/examples/snippets/event-handler/http/gettingStarted_built_in_error_handler.ts similarity index 91% rename from examples/snippets/event-handler/rest/gettingStarted_built_in_error_handler.ts rename to examples/snippets/event-handler/http/gettingStarted_built_in_error_handler.ts index 8f59af2398..0fea520b62 100644 --- a/examples/snippets/event-handler/rest/gettingStarted_built_in_error_handler.ts +++ b/examples/snippets/event-handler/http/gettingStarted_built_in_error_handler.ts @@ -1,7 +1,7 @@ import { HttpStatusCodes, Router, -} from '@aws-lambda-powertools/event-handler/experimental-rest'; +} from '@aws-lambda-powertools/event-handler/http'; import { Logger } from '@aws-lambda-powertools/logger'; import type { Context } from 'aws-lambda/handler'; diff --git a/examples/snippets/event-handler/rest/gettingStarted_dynamic_routes.ts b/examples/snippets/event-handler/http/gettingStarted_dynamic_routes.ts similarity index 90% rename from examples/snippets/event-handler/rest/gettingStarted_dynamic_routes.ts rename to examples/snippets/event-handler/http/gettingStarted_dynamic_routes.ts index 4f9f0fd0fb..2f836cc6aa 100644 --- a/examples/snippets/event-handler/rest/gettingStarted_dynamic_routes.ts +++ b/examples/snippets/event-handler/http/gettingStarted_dynamic_routes.ts @@ -1,6 +1,6 @@ declare function getTodoById(todoId: unknown): Promise<{ id: string } & T>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import { Logger } from '@aws-lambda-powertools/logger'; import { correlationPaths, diff --git a/examples/snippets/event-handler/rest/gettingStarted_dynamic_routes_catch_all.ts b/examples/snippets/event-handler/http/gettingStarted_dynamic_routes_catch_all.ts similarity index 88% rename from examples/snippets/event-handler/rest/gettingStarted_dynamic_routes_catch_all.ts rename to examples/snippets/event-handler/http/gettingStarted_dynamic_routes_catch_all.ts index 388b0e0f38..3dc09e6aac 100644 --- a/examples/snippets/event-handler/rest/gettingStarted_dynamic_routes_catch_all.ts +++ b/examples/snippets/event-handler/http/gettingStarted_dynamic_routes_catch_all.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { APIGatewayProxyEvent, Context } from 'aws-lambda'; const app = new Router(); diff --git a/examples/snippets/event-handler/rest/gettingStarted_error_handling.ts b/examples/snippets/event-handler/http/gettingStarted_error_handling.ts similarity index 92% rename from examples/snippets/event-handler/rest/gettingStarted_error_handling.ts rename to examples/snippets/event-handler/http/gettingStarted_error_handling.ts index 677fc69fc6..a5901e72ac 100644 --- a/examples/snippets/event-handler/rest/gettingStarted_error_handling.ts +++ b/examples/snippets/event-handler/http/gettingStarted_error_handling.ts @@ -4,7 +4,7 @@ declare class GetTodoError extends Error {} import { HttpStatusCodes, Router, -} from '@aws-lambda-powertools/event-handler/experimental-rest'; +} from '@aws-lambda-powertools/event-handler/http'; import { Logger } from '@aws-lambda-powertools/logger'; import type { Context } from 'aws-lambda/handler'; diff --git a/examples/snippets/event-handler/rest/gettingStarted_methods.ts b/examples/snippets/event-handler/http/gettingStarted_methods.ts similarity index 90% rename from examples/snippets/event-handler/rest/gettingStarted_methods.ts rename to examples/snippets/event-handler/http/gettingStarted_methods.ts index 0a345dbb3a..c40b7954e0 100644 --- a/examples/snippets/event-handler/rest/gettingStarted_methods.ts +++ b/examples/snippets/event-handler/http/gettingStarted_methods.ts @@ -1,6 +1,6 @@ declare function putTodo(todo: unknown): Promise<{ id: string } & T>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import { Logger } from '@aws-lambda-powertools/logger'; import { correlationPaths, diff --git a/examples/snippets/event-handler/rest/gettingStarted_multi_methods.ts b/examples/snippets/event-handler/http/gettingStarted_multi_methods.ts similarity index 91% rename from examples/snippets/event-handler/rest/gettingStarted_multi_methods.ts rename to examples/snippets/event-handler/http/gettingStarted_multi_methods.ts index 3d1e9109ec..981eef0998 100644 --- a/examples/snippets/event-handler/rest/gettingStarted_multi_methods.ts +++ b/examples/snippets/event-handler/http/gettingStarted_multi_methods.ts @@ -1,6 +1,6 @@ declare function putTodo(todo: unknown): Promise<{ id: string } & T>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import { Logger } from '@aws-lambda-powertools/logger'; import { correlationPaths, diff --git a/examples/snippets/event-handler/rest/gettingStarted_route_prefix.ts b/examples/snippets/event-handler/http/gettingStarted_route_prefix.ts similarity index 84% rename from examples/snippets/event-handler/rest/gettingStarted_route_prefix.ts rename to examples/snippets/event-handler/http/gettingStarted_route_prefix.ts index 3a0ca18f6d..f4d3a1f2bc 100644 --- a/examples/snippets/event-handler/rest/gettingStarted_route_prefix.ts +++ b/examples/snippets/event-handler/http/gettingStarted_route_prefix.ts @@ -1,6 +1,6 @@ declare function getUserTodos(auth: string | null): Promise<{ id: string }>; -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Context } from 'aws-lambda'; const app = new Router({ prefix: '/todos' }); diff --git a/examples/snippets/event-handler/rest/gettingStarted_serialization.ts b/examples/snippets/event-handler/http/gettingStarted_serialization.ts similarity index 75% rename from examples/snippets/event-handler/rest/gettingStarted_serialization.ts rename to examples/snippets/event-handler/http/gettingStarted_serialization.ts index 7bbc22f305..1c04910391 100644 --- a/examples/snippets/event-handler/rest/gettingStarted_serialization.ts +++ b/examples/snippets/event-handler/http/gettingStarted_serialization.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Context } from 'aws-lambda'; const app = new Router(); diff --git a/examples/snippets/event-handler/rest/gettingStarted_throwing_http_errors.ts b/examples/snippets/event-handler/http/gettingStarted_throwing_http_errors.ts similarity index 89% rename from examples/snippets/event-handler/rest/gettingStarted_throwing_http_errors.ts rename to examples/snippets/event-handler/http/gettingStarted_throwing_http_errors.ts index 5950720d77..efb1cd8f38 100644 --- a/examples/snippets/event-handler/rest/gettingStarted_throwing_http_errors.ts +++ b/examples/snippets/event-handler/http/gettingStarted_throwing_http_errors.ts @@ -3,7 +3,7 @@ declare function isAuthenticated(token: string): boolean; import { Router, UnauthorizedError, -} from '@aws-lambda-powertools/event-handler/experimental-rest'; +} from '@aws-lambda-powertools/event-handler/http'; import type { Context } from 'aws-lambda'; const app = new Router(); diff --git a/examples/snippets/event-handler/rest/samples/advanced_binary_req_json64.json b/examples/snippets/event-handler/http/samples/advanced_binary_req_json64.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_binary_req_json64.json rename to examples/snippets/event-handler/http/samples/advanced_binary_req_json64.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_binary_req_logo_image.json b/examples/snippets/event-handler/http/samples/advanced_binary_req_logo_image.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_binary_req_logo_image.json rename to examples/snippets/event-handler/http/samples/advanced_binary_req_logo_image.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_binary_res_json64.json b/examples/snippets/event-handler/http/samples/advanced_binary_res_json64.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_binary_res_json64.json rename to examples/snippets/event-handler/http/samples/advanced_binary_res_json64.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_binary_res_logo_image.json b/examples/snippets/event-handler/http/samples/advanced_binary_res_logo_image.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_binary_res_logo_image.json rename to examples/snippets/event-handler/http/samples/advanced_binary_res_logo_image.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_compress_req.json b/examples/snippets/event-handler/http/samples/advanced_compress_req.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_compress_req.json rename to examples/snippets/event-handler/http/samples/advanced_compress_req.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_compress_res.json b/examples/snippets/event-handler/http/samples/advanced_compress_res.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_compress_res.json rename to examples/snippets/event-handler/http/samples/advanced_compress_res.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_cors_per_route.json b/examples/snippets/event-handler/http/samples/advanced_cors_per_route.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_cors_per_route.json rename to examples/snippets/event-handler/http/samples/advanced_cors_per_route.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_cors_simple.json b/examples/snippets/event-handler/http/samples/advanced_cors_simple.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_cors_simple.json rename to examples/snippets/event-handler/http/samples/advanced_cors_simple.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_error_debug.json b/examples/snippets/event-handler/http/samples/advanced_error_debug.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_error_debug.json rename to examples/snippets/event-handler/http/samples/advanced_error_debug.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_error_prod.json b/examples/snippets/event-handler/http/samples/advanced_error_prod.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_error_prod.json rename to examples/snippets/event-handler/http/samples/advanced_error_prod.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_fine_grained_responses.json b/examples/snippets/event-handler/http/samples/advanced_fine_grained_responses.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_fine_grained_responses.json rename to examples/snippets/event-handler/http/samples/advanced_fine_grained_responses.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_mw_early_return.json b/examples/snippets/event-handler/http/samples/advanced_mw_early_return.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_mw_early_return.json rename to examples/snippets/event-handler/http/samples/advanced_mw_early_return.json diff --git a/examples/snippets/event-handler/rest/samples/advanced_mw_middleware_order.json b/examples/snippets/event-handler/http/samples/advanced_mw_middleware_order.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/advanced_mw_middleware_order.json rename to examples/snippets/event-handler/http/samples/advanced_mw_middleware_order.json diff --git a/examples/snippets/event-handler/rest/samples/gettingStarted_dynamic_routes.json b/examples/snippets/event-handler/http/samples/gettingStarted_dynamic_routes.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/gettingStarted_dynamic_routes.json rename to examples/snippets/event-handler/http/samples/gettingStarted_dynamic_routes.json diff --git a/examples/snippets/event-handler/rest/samples/gettingStarted_methods.json b/examples/snippets/event-handler/http/samples/gettingStarted_methods.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/gettingStarted_methods.json rename to examples/snippets/event-handler/http/samples/gettingStarted_methods.json diff --git a/examples/snippets/event-handler/rest/samples/gettingStarted_serialization.json b/examples/snippets/event-handler/http/samples/gettingStarted_serialization.json similarity index 100% rename from examples/snippets/event-handler/rest/samples/gettingStarted_serialization.json rename to examples/snippets/event-handler/http/samples/gettingStarted_serialization.json diff --git a/examples/snippets/event-handler/rest/split_route.ts b/examples/snippets/event-handler/http/split_route.ts similarity index 65% rename from examples/snippets/event-handler/rest/split_route.ts rename to examples/snippets/event-handler/http/split_route.ts index d6ea8bcc41..5c49aa092b 100644 --- a/examples/snippets/event-handler/rest/split_route.ts +++ b/examples/snippets/event-handler/http/split_route.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; const router = new Router(); router.get('/todos', () => 'Get all todos'); diff --git a/examples/snippets/event-handler/rest/split_route_index.ts b/examples/snippets/event-handler/http/split_route_index.ts similarity index 78% rename from examples/snippets/event-handler/rest/split_route_index.ts rename to examples/snippets/event-handler/http/split_route_index.ts index 5ba49cf24b..3b722f6f2b 100644 --- a/examples/snippets/event-handler/rest/split_route_index.ts +++ b/examples/snippets/event-handler/http/split_route_index.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { APIGatewayProxyEvent, Context } from 'aws-lambda'; import { router } from './split_route'; diff --git a/examples/snippets/event-handler/rest/split_route_prefix.ts b/examples/snippets/event-handler/http/split_route_prefix.ts similarity index 63% rename from examples/snippets/event-handler/rest/split_route_prefix.ts rename to examples/snippets/event-handler/http/split_route_prefix.ts index 1a51ae4530..7c5dbfa317 100644 --- a/examples/snippets/event-handler/rest/split_route_prefix.ts +++ b/examples/snippets/event-handler/http/split_route_prefix.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; const router = new Router(); router.get('/', () => 'Get all todos'); diff --git a/examples/snippets/event-handler/rest/split_route_prefix_index.ts b/examples/snippets/event-handler/http/split_route_prefix_index.ts similarity index 79% rename from examples/snippets/event-handler/rest/split_route_prefix_index.ts rename to examples/snippets/event-handler/http/split_route_prefix_index.ts index d42f8d04f8..df30e4fbe0 100644 --- a/examples/snippets/event-handler/rest/split_route_prefix_index.ts +++ b/examples/snippets/event-handler/http/split_route_prefix_index.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { APIGatewayProxyEvent, Context } from 'aws-lambda'; import { router } from './split_route'; diff --git a/examples/snippets/event-handler/rest/templates/api_gateway_http_api.yml b/examples/snippets/event-handler/http/templates/api_gateway_http_api.yml similarity index 100% rename from examples/snippets/event-handler/rest/templates/api_gateway_http_api.yml rename to examples/snippets/event-handler/http/templates/api_gateway_http_api.yml diff --git a/examples/snippets/event-handler/rest/templates/api_gateway_rest_api.yml b/examples/snippets/event-handler/http/templates/api_gateway_rest_api.yml similarity index 100% rename from examples/snippets/event-handler/rest/templates/api_gateway_rest_api.yml rename to examples/snippets/event-handler/http/templates/api_gateway_rest_api.yml diff --git a/examples/snippets/event-handler/rest/templates/lambda_furl.yml b/examples/snippets/event-handler/http/templates/lambda_furl.yml similarity index 100% rename from examples/snippets/event-handler/rest/templates/lambda_furl.yml rename to examples/snippets/event-handler/http/templates/lambda_furl.yml diff --git a/mkdocs.yml b/mkdocs.yml index 0eacd1d117..f44d8de14b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -47,7 +47,7 @@ nav: - features/metrics.md - Event Handler: - features/event-handler/index.md - - features/event-handler/rest.md + - features/event-handler/http.md - features/event-handler/appsync-events.md - features/event-handler/appsync-graphql.md - features/event-handler/bedrock-agents.md @@ -182,7 +182,7 @@ plugins: - features/tracer.md - features/logger.md - features/metrics.md - - features/event-handler/rest.md + - features/event-handler/http.md - features/event-handler/appsync-events.md - features/event-handler/appsync-graphql.md - features/event-handler/bedrock-agents.md diff --git a/packages/event-handler/package.json b/packages/event-handler/package.json index 599d25ffc4..9662d1035e 100644 --- a/packages/event-handler/package.json +++ b/packages/event-handler/package.json @@ -70,24 +70,24 @@ "default": "./lib/esm/types/index.js" } }, - "./experimental-rest": { + "./http": { "require": { - "types": "./lib/cjs/rest/index.d.ts", - "default": "./lib/cjs/rest/index.js" + "types": "./lib/cjs/http/index.d.ts", + "default": "./lib/cjs/http/index.js" }, "import": { - "types": "./lib/esm/rest/index.d.ts", - "default": "./lib/esm/rest/index.js" + "types": "./lib/esm/http/index.d.ts", + "default": "./lib/esm/http/index.js" } }, - "./experimental-rest/middleware": { + "./http/middleware": { "require": { - "types": "./lib/cjs/rest/middleware/index.d.ts", - "default": "./lib/cjs/rest/middleware/index.js" + "types": "./lib/cjs/http/middleware/index.d.ts", + "default": "./lib/cjs/http/middleware/index.js" }, "import": { - "types": "./lib/esm/rest/middleware/index.d.ts", - "default": "./lib/esm/rest/middleware/index.js" + "types": "./lib/esm/http/middleware/index.d.ts", + "default": "./lib/esm/http/middleware/index.js" } } }, @@ -109,9 +109,9 @@ "./lib/cjs/types/index.d.ts", "./lib/esm/types/index.d.ts" ], - "experimental-rest": [ - "./lib/cjs/rest/index.d.ts", - "./lib/esm/rest/index.d.ts" + "http": [ + "./lib/cjs/http/index.d.ts", + "./lib/esm/http/index.d.ts" ] } }, diff --git a/packages/event-handler/src/rest/ErrorHandlerRegistry.ts b/packages/event-handler/src/http/ErrorHandlerRegistry.ts similarity index 99% rename from packages/event-handler/src/rest/ErrorHandlerRegistry.ts rename to packages/event-handler/src/http/ErrorHandlerRegistry.ts index 3dd3bbc479..eca29e5756 100644 --- a/packages/event-handler/src/rest/ErrorHandlerRegistry.ts +++ b/packages/event-handler/src/http/ErrorHandlerRegistry.ts @@ -3,7 +3,7 @@ import type { ErrorConstructor, ErrorHandler, ErrorHandlerRegistryOptions, -} from '../types/rest.js'; +} from '../types/http.js'; export class ErrorHandlerRegistry { readonly #handlers: Map = new Map(); diff --git a/packages/event-handler/src/rest/Route.ts b/packages/event-handler/src/http/Route.ts similarity index 95% rename from packages/event-handler/src/rest/Route.ts rename to packages/event-handler/src/http/Route.ts index a65c4ab50f..57fca99a65 100644 --- a/packages/event-handler/src/rest/Route.ts +++ b/packages/event-handler/src/http/Route.ts @@ -3,7 +3,7 @@ import type { Middleware, Path, RouteHandler, -} from '../types/rest.js'; +} from '../types/http.js'; class Route { readonly id: string; diff --git a/packages/event-handler/src/rest/RouteHandlerRegistry.ts b/packages/event-handler/src/http/RouteHandlerRegistry.ts similarity index 98% rename from packages/event-handler/src/rest/RouteHandlerRegistry.ts rename to packages/event-handler/src/http/RouteHandlerRegistry.ts index c191d08398..ca5b9f3247 100644 --- a/packages/event-handler/src/rest/RouteHandlerRegistry.ts +++ b/packages/event-handler/src/http/RouteHandlerRegistry.ts @@ -3,11 +3,11 @@ import { isRegExp } from '@aws-lambda-powertools/commons/typeutils'; import type { DynamicRoute, HttpMethod, + HttpRouteHandlerOptions, Path, - RestRouteHandlerOptions, RouteRegistryOptions, ValidationResult, -} from '../types/rest.js'; +} from '../types/http.js'; import { ParameterValidationError } from './errors.js'; import { Route } from './Route.js'; import { @@ -169,7 +169,7 @@ class RouteHandlerRegistry { public resolve( method: HttpMethod, path: Path - ): RestRouteHandlerOptions | null { + ): HttpRouteHandlerOptions | null { if (this.#shouldSort) { this.#dynamicRoutes.sort(this.#compareRouteSpecificity); this.#shouldSort = false; diff --git a/packages/event-handler/src/rest/Router.ts b/packages/event-handler/src/http/Router.ts similarity index 99% rename from packages/event-handler/src/rest/Router.ts rename to packages/event-handler/src/http/Router.ts index 96d383ec20..46a2851009 100644 --- a/packages/event-handler/src/rest/Router.ts +++ b/packages/event-handler/src/http/Router.ts @@ -19,22 +19,22 @@ import type { APIGatewayProxyStructuredResultV2, Context, } from 'aws-lambda'; -import type { HandlerResponse, ResolveOptions } from '../types/index.js'; import type { ErrorConstructor, ErrorHandler, ErrorResolveOptions, HttpMethod, + HttpRouteOptions, + HttpRouterOptions, Middleware, Path, RequestContext, ResolveStreamOptions, ResponseStream, - RestRouteOptions, - RestRouterOptions, RouteHandler, RouterResponse, -} from '../types/rest.js'; +} from '../types/http.js'; +import type { HandlerResponse, ResolveOptions } from '../types/index.js'; import { HttpStatusCodes, HttpVerbs } from './constants.js'; import { handlerResultToWebResponse, @@ -89,7 +89,7 @@ class Router { */ protected readonly prefix?: Path; - public constructor(options?: RestRouterOptions) { + public constructor(options?: HttpRouterOptions) { this.context = {}; const alcLogLevel = getStringFromEnv({ key: 'AWS_LAMBDA_LOG_LEVEL', @@ -428,7 +428,7 @@ class Router { } } - public route(handler: RouteHandler, options: RestRouteOptions): void { + public route(handler: RouteHandler, options: HttpRouteOptions): void { const { method, path, middleware = [] } = options; const methods = Array.isArray(method) ? method : [method]; const resolvedPath = resolvePrefixedPath(path, this.prefix); @@ -732,7 +732,7 @@ class Router { * * @example * ```typescript - * import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; + * import { Router } from '@aws-lambda-powertools/event-handler/http'; * * const todosRouter = new Router(); * diff --git a/packages/event-handler/src/rest/constants.ts b/packages/event-handler/src/http/constants.ts similarity index 98% rename from packages/event-handler/src/rest/constants.ts rename to packages/event-handler/src/http/constants.ts index 87f5cf7da6..34293b4de0 100644 --- a/packages/event-handler/src/rest/constants.ts +++ b/packages/event-handler/src/http/constants.ts @@ -86,7 +86,7 @@ const PARAM_PATTERN = /:([a-zA-Z_]\w*)(?=\/|$)/g; const SAFE_CHARS = "-._~()'!*:@,;=+&$"; -const UNSAFE_CHARS = '%<> \\[\\]{}|^'; +const UNSAFE_CHARS = String.raw`%<> \[\]{}|^`; /** * Default CORS configuration diff --git a/packages/event-handler/src/rest/converters.ts b/packages/event-handler/src/http/converters.ts similarity index 99% rename from packages/event-handler/src/rest/converters.ts rename to packages/event-handler/src/http/converters.ts index 6cf4d7f210..35e0575f5b 100644 --- a/packages/event-handler/src/rest/converters.ts +++ b/packages/event-handler/src/http/converters.ts @@ -17,7 +17,7 @@ import type { ResponseTypeMap, V1Headers, WebResponseToProxyResultOptions, -} from '../types/rest.js'; +} from '../types/http.js'; import { HttpStatusCodes, HttpStatusText, HttpVerbs } from './constants.js'; import { InvalidHttpMethodError } from './errors.js'; import { diff --git a/packages/event-handler/src/rest/errors.ts b/packages/event-handler/src/http/errors.ts similarity index 98% rename from packages/event-handler/src/rest/errors.ts rename to packages/event-handler/src/http/errors.ts index 66cc410d28..56a3085917 100644 --- a/packages/event-handler/src/rest/errors.ts +++ b/packages/event-handler/src/http/errors.ts @@ -1,5 +1,5 @@ import type { JSONValue } from '@aws-lambda-powertools/commons/types'; -import type { HandlerResponse, HttpStatusCode } from '../types/rest.js'; +import type { HandlerResponse, HttpStatusCode } from '../types/http.js'; import { HttpStatusCodes } from './constants.js'; class RouteMatchingError extends Error { diff --git a/packages/event-handler/src/rest/index.ts b/packages/event-handler/src/http/index.ts similarity index 100% rename from packages/event-handler/src/rest/index.ts rename to packages/event-handler/src/http/index.ts diff --git a/packages/event-handler/src/rest/middleware/compress.ts b/packages/event-handler/src/http/middleware/compress.ts similarity index 95% rename from packages/event-handler/src/rest/middleware/compress.ts rename to packages/event-handler/src/http/middleware/compress.ts index bb11c02685..6fce79bb09 100644 --- a/packages/event-handler/src/rest/middleware/compress.ts +++ b/packages/event-handler/src/http/middleware/compress.ts @@ -1,5 +1,5 @@ +import type { CompressionOptions } from '../../types/http.js'; import type { Middleware } from '../../types/index.js'; -import type { CompressionOptions } from '../../types/rest.js'; import { CACHE_CONTROL_NO_TRANSFORM_REGEX, COMPRESSION_ENCODING_TYPES, @@ -25,8 +25,8 @@ import { * * @example * ```typescript - * import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; - * import { compress } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware'; + * import { Router } from '@aws-lambda-powertools/event-handler/http'; + * import { compress } from '@aws-lambda-powertools/event-handler/http/middleware'; * * const app = new Router(); * @@ -41,8 +41,8 @@ import { * * @example * ```typescript - * import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; - * import { compress } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware'; + * import { Router } from '@aws-lambda-powertools/event-handler/http'; + * import { compress } from '@aws-lambda-powertools/event-handler/http/middleware'; * * const app = new Router(); * diff --git a/packages/event-handler/src/rest/middleware/cors.ts b/packages/event-handler/src/http/middleware/cors.ts similarity index 95% rename from packages/event-handler/src/rest/middleware/cors.ts rename to packages/event-handler/src/http/middleware/cors.ts index 87794a2a3a..24383ec875 100644 --- a/packages/event-handler/src/rest/middleware/cors.ts +++ b/packages/event-handler/src/http/middleware/cors.ts @@ -1,4 +1,4 @@ -import type { CorsOptions, Middleware } from '../../types/rest.js'; +import type { CorsOptions, Middleware } from '../../types/http.js'; import { DEFAULT_CORS_OPTIONS, HttpStatusCodes, @@ -11,8 +11,8 @@ import { * * @example * ```typescript - * import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; - * import { cors } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware'; + * import { Router } from '@aws-lambda-powertools/event-handler/http'; + * import { cors } from '@aws-lambda-powertools/event-handler/http/middleware'; * * const app = new Router(); * diff --git a/packages/event-handler/src/rest/middleware/index.ts b/packages/event-handler/src/http/middleware/index.ts similarity index 100% rename from packages/event-handler/src/rest/middleware/index.ts rename to packages/event-handler/src/http/middleware/index.ts diff --git a/packages/event-handler/src/rest/utils.ts b/packages/event-handler/src/http/utils.ts similarity index 98% rename from packages/event-handler/src/rest/utils.ts rename to packages/event-handler/src/http/utils.ts index 18a8787221..fd6f9b2512 100644 --- a/packages/event-handler/src/rest/utils.ts +++ b/packages/event-handler/src/http/utils.ts @@ -10,8 +10,6 @@ import type { APIGatewayProxyEventV2, StreamifyHandler, } from 'aws-lambda'; -import type { Router } from '../rest/Router.js'; -import type { ResolveOptions } from '../types/index.js'; import type { CompiledRoute, CompressionOptions, @@ -24,7 +22,8 @@ import type { ResponseStream, ResponseType, ValidationResult, -} from '../types/rest.js'; +} from '../types/http.js'; +import type { ResolveOptions } from '../types/index.js'; import { COMPRESSION_ENCODING_TYPES, HttpStatusCodes, @@ -34,9 +33,10 @@ import { UNSAFE_CHARS, } from './constants.js'; import { handlerResultToWebResponse } from './converters.js'; +import type { Router } from './Router.js'; export function getPathString(path: Path): string { - return isString(path) ? path : path.source.replaceAll(/\\\//g, '/'); + return isString(path) ? path : path.source.replaceAll(String.raw`\/`, '/'); } export function compilePath(path: Path): CompiledRoute { @@ -458,7 +458,7 @@ const streamifyResponse = * * @example * ```typescript - * import { Router, streamify } from '@aws-lambda-powertools/event-handler/experimental-rest'; + * import { Router, streamify } from '@aws-lambda-powertools/event-handler/http'; * * const app = new Router(); * app.get('/test', () => ({ message: 'Hello' })); diff --git a/packages/event-handler/src/types/rest.ts b/packages/event-handler/src/types/http.ts similarity index 96% rename from packages/event-handler/src/types/rest.ts rename to packages/event-handler/src/types/http.ts index 125cedb01e..9f949a409d 100644 --- a/packages/event-handler/src/types/rest.ts +++ b/packages/event-handler/src/types/http.ts @@ -12,8 +12,8 @@ import type { APIGatewayProxyStructuredResultV2, Context, } from 'aws-lambda'; -import type { HttpStatusCodes, HttpVerbs } from '../rest/constants.js'; -import type { Route } from '../rest/Route.js'; +import type { HttpStatusCodes, HttpVerbs } from '../http/constants.js'; +import type { Route } from '../http/Route.js'; import type { ResolveOptions } from './common.js'; type ResponseType = 'ApiGatewayV1' | 'ApiGatewayV2' | 'ALB'; @@ -50,7 +50,7 @@ interface ErrorConstructor { /** * Options for the {@link Router | `Router``} class */ -type RestRouterOptions = { +type HttpRouterOptions = { /** * A logger instance to be used for logging debug, warning, and error messages. * @@ -98,14 +98,14 @@ type HttpStatusCode = (typeof HttpStatusCodes)[keyof typeof HttpStatusCodes]; type Path = `/${string}` | RegExp; -type RestRouteHandlerOptions = { +type HttpRouteHandlerOptions = { handler: RouteHandler; params: Record; rawParams: Record; middleware: Middleware[]; }; -type RestRouteOptions = { +type HttpRouteOptions = { method: HttpMethod | HttpMethod[]; path: Path; middleware?: Middleware[]; @@ -167,7 +167,7 @@ type ResolveStreamOptions = { * * @example * ```ts - * import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; + * import { Router } from '@aws-lambda-powertools/event-handler/http'; * * const app = new Router(); * @@ -270,12 +270,12 @@ export type { RequestContext, ResponseType, ResponseTypeMap, - RestRouterOptions, + HttpRouterOptions, RouteHandler, ResolveStreamOptions, ResponseStream, - RestRouteOptions, - RestRouteHandlerOptions, + HttpRouteOptions, + HttpRouteHandlerOptions, RouteRegistryOptions, RouterResponse, ValidationResult, diff --git a/packages/event-handler/src/types/index.ts b/packages/event-handler/src/types/index.ts index b32b78c70f..0d47c34f0d 100644 --- a/packages/event-handler/src/types/index.ts +++ b/packages/event-handler/src/types/index.ts @@ -37,12 +37,12 @@ export type { ErrorResolveOptions, HandlerResponse, HttpMethod, + HttpRouteHandlerOptions, + HttpRouteOptions, + HttpRouterOptions, HttpStatusCode, Middleware, Path, RequestContext, - RestRouteHandlerOptions, - RestRouteOptions, - RestRouterOptions, RouteHandler, -} from './rest.js'; +} from './http.js'; diff --git a/packages/event-handler/tests/e2e/httpRouter.test.FunctionCode.ts b/packages/event-handler/tests/e2e/httpRouter.test.FunctionCode.ts index 2612eb0502..59091db3b2 100644 --- a/packages/event-handler/tests/e2e/httpRouter.test.FunctionCode.ts +++ b/packages/event-handler/tests/e2e/httpRouter.test.FunctionCode.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Context } from 'aws-lambda'; import { binaryRouter } from './routers/binaryRouter.js'; import { compressRouter } from './routers/compressRouter.js'; diff --git a/packages/event-handler/tests/e2e/routers/binaryRouter.ts b/packages/event-handler/tests/e2e/routers/binaryRouter.ts index 0100678931..9436e63bcd 100644 --- a/packages/event-handler/tests/e2e/routers/binaryRouter.ts +++ b/packages/event-handler/tests/e2e/routers/binaryRouter.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; const binaryRouter = new Router(); diff --git a/packages/event-handler/tests/e2e/routers/compressRouter.ts b/packages/event-handler/tests/e2e/routers/compressRouter.ts index 46787e435d..7867d61f68 100644 --- a/packages/event-handler/tests/e2e/routers/compressRouter.ts +++ b/packages/event-handler/tests/e2e/routers/compressRouter.ts @@ -1,5 +1,5 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; -import { compress } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; +import { compress } from '@aws-lambda-powertools/event-handler/http/middleware'; const compressRouter = new Router(); diff --git a/packages/event-handler/tests/e2e/routers/corsRouter.ts b/packages/event-handler/tests/e2e/routers/corsRouter.ts index 318f8135d8..45f1ab0cb2 100644 --- a/packages/event-handler/tests/e2e/routers/corsRouter.ts +++ b/packages/event-handler/tests/e2e/routers/corsRouter.ts @@ -1,5 +1,5 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; -import { cors } from '@aws-lambda-powertools/event-handler/experimental-rest/middleware'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; +import { cors } from '@aws-lambda-powertools/event-handler/http/middleware'; const corsRouter = new Router(); diff --git a/packages/event-handler/tests/e2e/routers/errorsRouter.ts b/packages/event-handler/tests/e2e/routers/errorsRouter.ts index 137ae15151..62ab154814 100644 --- a/packages/event-handler/tests/e2e/routers/errorsRouter.ts +++ b/packages/event-handler/tests/e2e/routers/errorsRouter.ts @@ -6,7 +6,7 @@ import { NotFoundError, Router, UnauthorizedError, -} from '@aws-lambda-powertools/event-handler/experimental-rest'; +} from '@aws-lambda-powertools/event-handler/http'; const errorsRouter = new Router(); diff --git a/packages/event-handler/tests/e2e/routers/methodsRouter.ts b/packages/event-handler/tests/e2e/routers/methodsRouter.ts index aaf93af6d6..9f1dd9b279 100644 --- a/packages/event-handler/tests/e2e/routers/methodsRouter.ts +++ b/packages/event-handler/tests/e2e/routers/methodsRouter.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; const methodsRouter = new Router(); diff --git a/packages/event-handler/tests/e2e/routers/middlewareRouter.ts b/packages/event-handler/tests/e2e/routers/middlewareRouter.ts index f10254da42..aa9ec4f7b1 100644 --- a/packages/event-handler/tests/e2e/routers/middlewareRouter.ts +++ b/packages/event-handler/tests/e2e/routers/middlewareRouter.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; import type { Middleware } from '@aws-lambda-powertools/event-handler/types'; const middlewareRouter = new Router(); diff --git a/packages/event-handler/tests/e2e/routers/multiValueHeadersRouter.ts b/packages/event-handler/tests/e2e/routers/multiValueHeadersRouter.ts index cd70feaf2b..f49ca628be 100644 --- a/packages/event-handler/tests/e2e/routers/multiValueHeadersRouter.ts +++ b/packages/event-handler/tests/e2e/routers/multiValueHeadersRouter.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; const multiValueHeadersRouter = new Router(); diff --git a/packages/event-handler/tests/e2e/routers/nestedRouter.ts b/packages/event-handler/tests/e2e/routers/nestedRouter.ts index b3d4680c87..07f1fbb277 100644 --- a/packages/event-handler/tests/e2e/routers/nestedRouter.ts +++ b/packages/event-handler/tests/e2e/routers/nestedRouter.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; const nestedRouter = new Router(); diff --git a/packages/event-handler/tests/e2e/routers/paramsRouter.ts b/packages/event-handler/tests/e2e/routers/paramsRouter.ts index ecb8b93b85..548ef42a8f 100644 --- a/packages/event-handler/tests/e2e/routers/paramsRouter.ts +++ b/packages/event-handler/tests/e2e/routers/paramsRouter.ts @@ -1,4 +1,4 @@ -import { Router } from '@aws-lambda-powertools/event-handler/experimental-rest'; +import { Router } from '@aws-lambda-powertools/event-handler/http'; const paramsRouter = new Router(); diff --git a/packages/event-handler/tests/unit/rest/ErrorHandlerRegistry.test.ts b/packages/event-handler/tests/unit/http/ErrorHandlerRegistry.test.ts similarity index 96% rename from packages/event-handler/tests/unit/rest/ErrorHandlerRegistry.test.ts rename to packages/event-handler/tests/unit/http/ErrorHandlerRegistry.test.ts index 7b0fc9a857..ffe38c7027 100644 --- a/packages/event-handler/tests/unit/rest/ErrorHandlerRegistry.test.ts +++ b/packages/event-handler/tests/unit/http/ErrorHandlerRegistry.test.ts @@ -1,10 +1,10 @@ import { describe, expect, it } from 'vitest'; -import { ErrorHandlerRegistry } from '../../../src/rest/ErrorHandlerRegistry.js'; -import { HttpStatusCodes } from '../../../src/rest/index.js'; +import { ErrorHandlerRegistry } from '../../../src/http/ErrorHandlerRegistry.js'; +import { HttpStatusCodes } from '../../../src/http/index.js'; import type { HttpStatusCode, RequestContext, -} from '../../../src/types/rest.js'; +} from '../../../src/types/http.js'; const createErrorHandler = (statusCode: HttpStatusCode, message?: string) => diff --git a/packages/event-handler/tests/unit/rest/RouteHandlerRegistry.test.ts b/packages/event-handler/tests/unit/http/RouteHandlerRegistry.test.ts similarity index 98% rename from packages/event-handler/tests/unit/rest/RouteHandlerRegistry.test.ts rename to packages/event-handler/tests/unit/http/RouteHandlerRegistry.test.ts index f27671fd38..d96629d7c8 100644 --- a/packages/event-handler/tests/unit/rest/RouteHandlerRegistry.test.ts +++ b/packages/event-handler/tests/unit/http/RouteHandlerRegistry.test.ts @@ -2,10 +2,10 @@ import { describe, expect, it } from 'vitest'; import { HttpVerbs, ParameterValidationError, -} from '../../../src/rest/index.js'; -import { Route } from '../../../src/rest/Route.js'; -import { RouteHandlerRegistry } from '../../../src/rest/RouteHandlerRegistry.js'; -import type { Path } from '../../../src/types/rest.js'; +} from '../../../src/http/index.js'; +import { Route } from '../../../src/http/Route.js'; +import { RouteHandlerRegistry } from '../../../src/http/RouteHandlerRegistry.js'; +import type { Path } from '../../../src/types/http.js'; describe('Class: RouteHandlerRegistry', () => { it.each([ diff --git a/packages/event-handler/tests/unit/rest/Router/basic-routing.test.ts b/packages/event-handler/tests/unit/http/Router/basic-routing.test.ts similarity index 98% rename from packages/event-handler/tests/unit/rest/Router/basic-routing.test.ts rename to packages/event-handler/tests/unit/http/Router/basic-routing.test.ts index d27b77741a..e6e72f388d 100644 --- a/packages/event-handler/tests/unit/rest/Router/basic-routing.test.ts +++ b/packages/event-handler/tests/unit/http/Router/basic-routing.test.ts @@ -1,14 +1,14 @@ import { Readable } from 'node:stream'; import context from '@aws-lambda-powertools/testing-utils/context'; import { describe, expect, it, vi } from 'vitest'; -import { HttpStatusText } from '../../../../src/rest/constants.js'; -import { InvalidEventError } from '../../../../src/rest/errors.js'; +import { HttpStatusText } from '../../../../src/http/constants.js'; +import { InvalidEventError } from '../../../../src/http/errors.js'; import { HttpStatusCodes, HttpVerbs, Router, -} from '../../../../src/rest/index.js'; -import type { HttpMethod, RouteHandler } from '../../../../src/types/rest.js'; +} from '../../../../src/http/index.js'; +import type { HttpMethod, RouteHandler } from '../../../../src/types/http.js'; import { createTestALBEvent, createTestEvent, diff --git a/packages/event-handler/tests/unit/rest/Router/decorators.test.ts b/packages/event-handler/tests/unit/http/Router/decorators.test.ts similarity index 99% rename from packages/event-handler/tests/unit/rest/Router/decorators.test.ts rename to packages/event-handler/tests/unit/http/Router/decorators.test.ts index 05362f9d80..612ded372d 100644 --- a/packages/event-handler/tests/unit/rest/Router/decorators.test.ts +++ b/packages/event-handler/tests/unit/http/Router/decorators.test.ts @@ -8,8 +8,8 @@ import { Router, streamify, UnauthorizedError, -} from '../../../../src/rest/index.js'; -import type { RequestContext } from '../../../../src/types/rest.js'; +} from '../../../../src/http/index.js'; +import type { RequestContext } from '../../../../src/types/http.js'; import { createHandler, createHandlerWithScope, diff --git a/packages/event-handler/tests/unit/rest/Router/error-handling.test.ts b/packages/event-handler/tests/unit/http/Router/error-handling.test.ts similarity index 98% rename from packages/event-handler/tests/unit/rest/Router/error-handling.test.ts rename to packages/event-handler/tests/unit/http/Router/error-handling.test.ts index d760242b61..eaa5e87443 100644 --- a/packages/event-handler/tests/unit/rest/Router/error-handling.test.ts +++ b/packages/event-handler/tests/unit/http/Router/error-handling.test.ts @@ -7,7 +7,7 @@ import { MethodNotAllowedError, NotFoundError, Router, -} from '../../../../src/rest/index.js'; +} from '../../../../src/http/index.js'; import { createTestEvent, createTestEventV2 } from '../helpers.js'; describe.each([ @@ -657,10 +657,10 @@ describe('Class: Router - proxyEventToWebRequest Error Handling', () => { it('re-throws non-InvalidHttpMethodError from proxyEventToWebRequest', async () => { // Prepare - vi.doMock('../../../../src/rest/converters.js', async () => { + vi.doMock('../../../../src/http/converters.js', async () => { const actual = await vi.importActual< - typeof import('../../../../src/rest/converters.js') - >('../../../../src/rest/converters.js'); + typeof import('../../../../src/http/converters.js') + >('../../../../src/http/converters.js'); return { ...actual, proxyEventToWebRequest: vi.fn(() => { @@ -669,7 +669,7 @@ describe('Class: Router - proxyEventToWebRequest Error Handling', () => { }; }); - const { Router } = await import('../../../../src/rest/Router.js'); + const { Router } = await import('../../../../src/http/Router.js'); const app = new Router(); app.get('/test', () => ({ message: 'success' })); diff --git a/packages/event-handler/tests/unit/rest/Router/logging.test.ts b/packages/event-handler/tests/unit/http/Router/logging.test.ts similarity index 91% rename from packages/event-handler/tests/unit/rest/Router/logging.test.ts rename to packages/event-handler/tests/unit/http/Router/logging.test.ts index d964352c2b..08162e66d6 100644 --- a/packages/event-handler/tests/unit/rest/Router/logging.test.ts +++ b/packages/event-handler/tests/unit/http/Router/logging.test.ts @@ -1,10 +1,10 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import { HttpVerbs, Router } from '../../../../src/rest/index.js'; -import type { RestRouterOptions } from '../../../../src/types/rest.js'; +import { HttpVerbs, Router } from '../../../../src/http/index.js'; +import type { HttpRouterOptions } from '../../../../src/types/http.js'; describe('Class: Router - Logging', () => { class TestResolver extends Router { - constructor(options?: RestRouterOptions) { + constructor(options?: HttpRouterOptions) { super(options); this.logger.debug('test debug'); this.logger.warn('test warn'); diff --git a/packages/event-handler/tests/unit/rest/Router/middleware.test.ts b/packages/event-handler/tests/unit/http/Router/middleware.test.ts similarity index 99% rename from packages/event-handler/tests/unit/rest/Router/middleware.test.ts rename to packages/event-handler/tests/unit/http/Router/middleware.test.ts index fe37c7105e..c3cd8b92f1 100644 --- a/packages/event-handler/tests/unit/rest/Router/middleware.test.ts +++ b/packages/event-handler/tests/unit/http/Router/middleware.test.ts @@ -2,12 +2,12 @@ import { Readable } from 'node:stream'; import context from '@aws-lambda-powertools/testing-utils/context'; import type { Context } from 'aws-lambda'; import { describe, expect, it, vi } from 'vitest'; -import { HttpStatusCodes, Router } from '../../../../src/rest/index.js'; +import { HttpStatusCodes, Router } from '../../../../src/http/index.js'; import type { Middleware, Path, RequestContext, -} from '../../../../src/types/rest.js'; +} from '../../../../src/types/http.js'; import { createNoNextMiddleware, createReturningMiddleware, diff --git a/packages/event-handler/tests/unit/rest/Router/streaming.test.ts b/packages/event-handler/tests/unit/http/Router/streaming.test.ts similarity index 99% rename from packages/event-handler/tests/unit/rest/Router/streaming.test.ts rename to packages/event-handler/tests/unit/http/Router/streaming.test.ts index 3c4ddc1a7c..ce0c9accb9 100644 --- a/packages/event-handler/tests/unit/rest/Router/streaming.test.ts +++ b/packages/event-handler/tests/unit/http/Router/streaming.test.ts @@ -5,7 +5,7 @@ import { Router, streamify, UnauthorizedError, -} from '../../../../src/rest/index.js'; +} from '../../../../src/http/index.js'; import { createTestEvent, createTestEventV2, diff --git a/packages/event-handler/tests/unit/rest/converters.test.ts b/packages/event-handler/tests/unit/http/converters.test.ts similarity index 99% rename from packages/event-handler/tests/unit/rest/converters.test.ts rename to packages/event-handler/tests/unit/http/converters.test.ts index 1cca172953..558f94862c 100644 --- a/packages/event-handler/tests/unit/rest/converters.test.ts +++ b/packages/event-handler/tests/unit/http/converters.test.ts @@ -3,13 +3,13 @@ import { describe, expect, it } from 'vitest'; import { bodyToNodeStream, webHeadersToApiGatewayHeaders, -} from '../../../src/rest/converters.js'; +} from '../../../src/http/converters.js'; import { HttpStatusCodes, handlerResultToWebResponse, proxyEventToWebRequest, webResponseToProxyResult, -} from '../../../src/rest/index.js'; +} from '../../../src/http/index.js'; import { createTestALBEvent, createTestEvent, diff --git a/packages/event-handler/tests/unit/rest/errors.test.ts b/packages/event-handler/tests/unit/http/errors.test.ts similarity index 99% rename from packages/event-handler/tests/unit/rest/errors.test.ts rename to packages/event-handler/tests/unit/http/errors.test.ts index 95db647802..c0269b552b 100644 --- a/packages/event-handler/tests/unit/rest/errors.test.ts +++ b/packages/event-handler/tests/unit/http/errors.test.ts @@ -10,7 +10,7 @@ import { RequestTimeoutError, ServiceUnavailableError, UnauthorizedError, -} from '../../../src/rest/index.js'; +} from '../../../src/http/index.js'; describe('HTTP Error Classes', () => { it.each([ diff --git a/packages/event-handler/tests/unit/rest/helpers.ts b/packages/event-handler/tests/unit/http/helpers.ts similarity index 97% rename from packages/event-handler/tests/unit/rest/helpers.ts rename to packages/event-handler/tests/unit/http/helpers.ts index ec19eaad50..579a752c03 100644 --- a/packages/event-handler/tests/unit/rest/helpers.ts +++ b/packages/event-handler/tests/unit/http/helpers.ts @@ -9,14 +9,14 @@ import type { APIGatewayProxyStructuredResultV2, Context, } from 'aws-lambda'; -import { HttpVerbs } from '../../../src/rest/constants.js'; -import type { Router } from '../../../src/rest/Router.js'; +import { HttpVerbs } from '../../../src/http/constants.js'; +import type { Router } from '../../../src/http/Router.js'; import type { HandlerResponse, ResponseStream as IResponseStream, Middleware, RouterResponse, -} from '../../../src/types/rest.js'; +} from '../../../src/types/http.js'; export const createTestEvent = ( path: string, diff --git a/packages/event-handler/tests/unit/rest/middleware/compress.test.ts b/packages/event-handler/tests/unit/http/middleware/compress.test.ts similarity index 97% rename from packages/event-handler/tests/unit/rest/middleware/compress.test.ts rename to packages/event-handler/tests/unit/http/middleware/compress.test.ts index 653bb62afd..3d72667b28 100644 --- a/packages/event-handler/tests/unit/rest/middleware/compress.test.ts +++ b/packages/event-handler/tests/unit/http/middleware/compress.test.ts @@ -1,8 +1,8 @@ import { gzipSync } from 'node:zlib'; import context from '@aws-lambda-powertools/testing-utils/context'; import { beforeEach, describe, expect, it } from 'vitest'; -import { compress } from '../../../../src/rest/middleware/index.js'; -import { Router } from '../../../../src/rest/Router.js'; +import { compress } from '../../../../src/http/middleware/index.js'; +import { Router } from '../../../../src/http/Router.js'; import { createSettingHeadersMiddleware, createTestEvent } from '../helpers.js'; describe('Compress Middleware', () => { diff --git a/packages/event-handler/tests/unit/rest/middleware/cors.test.ts b/packages/event-handler/tests/unit/http/middleware/cors.test.ts similarity index 96% rename from packages/event-handler/tests/unit/rest/middleware/cors.test.ts rename to packages/event-handler/tests/unit/http/middleware/cors.test.ts index e907eef410..a1144750c8 100644 --- a/packages/event-handler/tests/unit/rest/middleware/cors.test.ts +++ b/packages/event-handler/tests/unit/http/middleware/cors.test.ts @@ -1,8 +1,8 @@ import context from '@aws-lambda-powertools/testing-utils/context'; import { beforeEach, describe, expect, it } from 'vitest'; -import { DEFAULT_CORS_OPTIONS } from '../../../../src/rest/constants.js'; -import { cors } from '../../../../src/rest/middleware/cors.js'; -import { Router } from '../../../../src/rest/Router.js'; +import { DEFAULT_CORS_OPTIONS } from '../../../../src/http/constants.js'; +import { cors } from '../../../../src/http/middleware/cors.js'; +import { Router } from '../../../../src/http/Router.js'; import { createHeaderCheckMiddleware, createTestEvent } from '../helpers.js'; describe('CORS Middleware', () => { diff --git a/packages/event-handler/tests/unit/rest/utils.test.ts b/packages/event-handler/tests/unit/http/utils.test.ts similarity index 99% rename from packages/event-handler/tests/unit/rest/utils.test.ts rename to packages/event-handler/tests/unit/http/utils.test.ts index 717a92cf42..0ba1516d00 100644 --- a/packages/event-handler/tests/unit/rest/utils.test.ts +++ b/packages/event-handler/tests/unit/http/utils.test.ts @@ -10,17 +10,17 @@ import { isAPIGatewayProxyEventV1, isAPIGatewayProxyEventV2, isExtendedAPIGatewayProxyResult, -} from '../../../src/rest/index.js'; +} from '../../../src/http/index.js'; import { compilePath, resolvePrefixedPath, validatePathPattern, -} from '../../../src/rest/utils.js'; +} from '../../../src/http/utils.js'; import type { Middleware, Path, RequestContext, -} from '../../../src/types/rest.js'; +} from '../../../src/types/http.js'; describe('Path Utilities', () => { beforeEach(() => { @@ -849,7 +849,7 @@ describe('Path Utilities', () => { // Clear module cache and dynamically import vi.resetModules(); - const { HttpResponseStream } = await import('../../../src/rest/utils.js'); + const { HttpResponseStream } = await import('../../../src/http/utils.js'); // Assert expect(HttpResponseStream).toBe(mockHttpResponseStream);