From 252cf13208c7103b167a233775d321ea749e7e91 Mon Sep 17 00:00:00 2001 From: George Fu Date: Thu, 6 Apr 2023 17:32:14 +0000 Subject: [PATCH 1/2] feat(middleware-sdk-rekognitionstreaming): create port middleware --- .../AddRekognitionStreamingDependency.java | 77 +++++++++++++++++++ .../aws/typescript/codegen/AwsDependency.java | 1 + .../.gitignore | 9 +++ .../CHANGELOG.md | 0 .../README.md | 4 + .../jest.config.js | 7 ++ .../package.json | 60 +++++++++++++++ .../src/index.ts | 2 + .../src/middleware-port.spec.ts | 51 ++++++++++++ .../src/middleware-port.ts | 33 ++++++++ .../src/plugin.ts | 13 ++++ .../tsconfig.cjs.json | 10 +++ .../tsconfig.es.json | 11 +++ .../tsconfig.types.json | 9 +++ 14 files changed, 287 insertions(+) create mode 100644 codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddRekognitionStreamingDependency.java create mode 100644 packages/middleware-sdk-rekognitionstreaming/.gitignore create mode 100644 packages/middleware-sdk-rekognitionstreaming/CHANGELOG.md create mode 100644 packages/middleware-sdk-rekognitionstreaming/README.md create mode 100644 packages/middleware-sdk-rekognitionstreaming/jest.config.js create mode 100644 packages/middleware-sdk-rekognitionstreaming/package.json create mode 100644 packages/middleware-sdk-rekognitionstreaming/src/index.ts create mode 100644 packages/middleware-sdk-rekognitionstreaming/src/middleware-port.spec.ts create mode 100644 packages/middleware-sdk-rekognitionstreaming/src/middleware-port.ts create mode 100644 packages/middleware-sdk-rekognitionstreaming/src/plugin.ts create mode 100644 packages/middleware-sdk-rekognitionstreaming/tsconfig.cjs.json create mode 100644 packages/middleware-sdk-rekognitionstreaming/tsconfig.es.json create mode 100644 packages/middleware-sdk-rekognitionstreaming/tsconfig.types.json diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddRekognitionStreamingDependency.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddRekognitionStreamingDependency.java new file mode 100644 index 000000000000..68993e8c88e8 --- /dev/null +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddRekognitionStreamingDependency.java @@ -0,0 +1,77 @@ +/* + * Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.smithy.aws.typescript.codegen; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import software.amazon.smithy.aws.traits.ServiceTrait; +import software.amazon.smithy.codegen.core.SymbolProvider; +import software.amazon.smithy.model.Model; +import software.amazon.smithy.model.shapes.ServiceShape; +import software.amazon.smithy.typescript.codegen.LanguageTarget; +import software.amazon.smithy.typescript.codegen.TypeScriptSettings; +import software.amazon.smithy.typescript.codegen.TypeScriptWriter; +import software.amazon.smithy.typescript.codegen.integration.RuntimeClientPlugin; +import software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration; +import software.amazon.smithy.utils.ListUtils; +import software.amazon.smithy.utils.SmithyInternalApi; + +/** + * Add client plugins and configs to support WebSocket streaming for Rekognition + * Streaming service. + **/ +@SmithyInternalApi +public class AddRekognitionStreamingDependency implements TypeScriptIntegration { + @Override + public List getClientPlugins() { + return ListUtils.of( + RuntimeClientPlugin.builder() + .withConventions(AwsDependency.REKOGNITION_STREAMING_MIDDLEWARE.dependency, + "RekognitionStreaming", RuntimeClientPlugin.Convention.HAS_MIDDLEWARE) + .servicePredicate((m, s) -> isRekognitionStreaming(s)) + .build() + ); + } + + @Override + public Map> getRuntimeConfigWriters( + TypeScriptSettings settings, + Model model, + SymbolProvider symbolProvider, + LanguageTarget target + ) { + ServiceShape service = settings.getService(model); + if (!isRekognitionStreaming(service)) { + return Collections.emptyMap(); + } + + switch (target) { + case REACT_NATIVE: + case BROWSER: + default: + return Collections.emptyMap(); + } + } + + private static boolean isRekognitionStreaming(ServiceShape service) { + String serviceId = service.getTrait(ServiceTrait.class).map(ServiceTrait::getSdkId).orElse(""); + return serviceId.equals("RekognitionStreaming"); + } +} + + diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java index d9bae758452f..5a8fcefbde4e 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsDependency.java @@ -63,6 +63,7 @@ public enum AwsDependency implements SymbolDependencyContainer { MIDDLEWARE_EVENTSTREAM(NORMAL_DEPENDENCY, "@aws-sdk/middleware-eventstream"), AWS_SDK_EVENTSTREAM_HANDLER_NODE(NORMAL_DEPENDENCY, "@aws-sdk/eventstream-handler-node"), TRANSCRIBE_STREAMING_MIDDLEWARE(NORMAL_DEPENDENCY, "@aws-sdk/middleware-sdk-transcribe-streaming"), + REKOGNITION_STREAMING_MIDDLEWARE(NORMAL_DEPENDENCY, "@aws-sdk/middleware-sdk-rekognitionstreaming"), STS_MIDDLEWARE(NORMAL_DEPENDENCY, "@aws-sdk/middleware-sdk-sts"), STS_CLIENT(NORMAL_DEPENDENCY, "@aws-sdk/client-sts"), MIDDLEWARE_LOGGER(NORMAL_DEPENDENCY, "@aws-sdk/middleware-logger"), diff --git a/packages/middleware-sdk-rekognitionstreaming/.gitignore b/packages/middleware-sdk-rekognitionstreaming/.gitignore new file mode 100644 index 000000000000..f30a2ca2cef5 --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/.gitignore @@ -0,0 +1,9 @@ +/node_modules/ +/build/ +/dist/ +/coverage/ +/docs/ +*.tsbuildinfo +*.tgz +*.log +package-lock.json diff --git a/packages/middleware-sdk-rekognitionstreaming/CHANGELOG.md b/packages/middleware-sdk-rekognitionstreaming/CHANGELOG.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/middleware-sdk-rekognitionstreaming/README.md b/packages/middleware-sdk-rekognitionstreaming/README.md new file mode 100644 index 000000000000..bdaf37e5e8e7 --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/README.md @@ -0,0 +1,4 @@ +# @aws-sdk/middleware-sdk-rekognitionstreaming + +[![NPM version](https://img.shields.io/npm/v/@aws-sdk/middleware-sdk-rekognitionstreaming/latest.svg)](https://www.npmjs.com/package/@aws-sdk/middleware-sdk-rekognitionstreaming) +[![NPM downloads](https://img.shields.io/npm/dm/@aws-sdk/middleware-sdk-rekognitionstreaming.svg)](https://www.npmjs.com/package/@aws-sdk/middleware-sdk-rekognitionstreaming) diff --git a/packages/middleware-sdk-rekognitionstreaming/jest.config.js b/packages/middleware-sdk-rekognitionstreaming/jest.config.js new file mode 100644 index 000000000000..64f3d932819c --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/jest.config.js @@ -0,0 +1,7 @@ +const base = require("../../jest.config.base.js"); + +module.exports = { + ...base, + //only test cjs dist, avoid testing the package twice + testPathIgnorePatterns: ["/node_modules/", "/es/"], +}; diff --git a/packages/middleware-sdk-rekognitionstreaming/package.json b/packages/middleware-sdk-rekognitionstreaming/package.json new file mode 100644 index 000000000000..568c89999e81 --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/package.json @@ -0,0 +1,60 @@ +{ + "name": "@aws-sdk/middleware-sdk-rekognitionstreaming", + "version": "3.0.0", + "main": "./dist-cjs/index.js", + "module": "./dist-es/index.js", + "types": "./dist-types/index.d.ts", + "scripts": { + "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'", + "build:cjs": "tsc -p tsconfig.cjs.json", + "build:es": "tsc -p tsconfig.es.json", + "build:include:deps": "lerna run --scope $npm_package_name --include-dependencies build", + "build:types": "tsc -p tsconfig.types.json", + "build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4", + "clean": "rimraf ./dist-* && rimraf *.tsbuildinfo", + "test": "jest --passWithNoTests" + }, + "author": { + "name": "AWS SDK for JavaScript Team", + "url": "https://aws.amazon.com/javascript/" + }, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/protocol-http": "*", + "@aws-sdk/types": "*", + "tslib": "^2.5.0" + }, + "devDependencies": { + "@tsconfig/recommended": "1.0.1", + "@types/uuid": "^8.3.0", + "concurrently": "7.0.0", + "downlevel-dts": "0.10.1", + "jest-websocket-mock": "^2.0.2", + "mock-socket": "9.1.5", + "rimraf": "3.0.2", + "typedoc": "0.23.23", + "typescript": "~4.9.5" + }, + "engines": { + "node": ">=14.0.0" + }, + "typesVersions": { + "<4.0": { + "dist-types/*": [ + "dist-types/ts3.4/*" + ] + } + }, + "files": [ + "dist-*" + ], + "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/middleware-sdk-rekognitionstreaming", + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-js-v3.git", + "directory": "packages/middleware-sdk-rekognitionstreaming" + }, + "typedoc": { + "entryPoint": "src/index.ts" + } +} diff --git a/packages/middleware-sdk-rekognitionstreaming/src/index.ts b/packages/middleware-sdk-rekognitionstreaming/src/index.ts new file mode 100644 index 000000000000..0dc5de4ad852 --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/src/index.ts @@ -0,0 +1,2 @@ +export * from "./middleware-port"; +export * from "./plugin"; diff --git a/packages/middleware-sdk-rekognitionstreaming/src/middleware-port.spec.ts b/packages/middleware-sdk-rekognitionstreaming/src/middleware-port.spec.ts new file mode 100644 index 000000000000..ecca03a4c63d --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/src/middleware-port.spec.ts @@ -0,0 +1,51 @@ +import { HttpRequest } from "@aws-sdk/protocol-http"; +import { BuildHandlerArguments, RequestHandler } from "@aws-sdk/types"; + +import { websocketPortMiddleware } from "./middleware-port"; + +describe("websocketPortMiddleware", () => { + const mockHandler: RequestHandler = { + metadata: { handlerProtocol: "websocket" }, + handle: () => ({} as any), + }; + it("should skip non-http request", (done) => { + const nonHttpRequest = { + foo: "bar", + }; + const next = (args: BuildHandlerArguments) => { + expect(args.request).toEqual(nonHttpRequest); + done(); + }; + const mw = websocketPortMiddleware({ requestHandler: mockHandler }); + mw(next as any, {} as any)({ request: nonHttpRequest, input: {} }); + }); + + it("should skip non WebSocket requests", (done) => { + const mockHandler: RequestHandler = { + metadata: { handlerProtocol: "some_protocol" }, + handle: () => ({} as any), + }; + const request = new HttpRequest({}); + const next = (args: BuildHandlerArguments) => { + expect(args.request).toEqual(request); + done(); + }; + const mw = websocketPortMiddleware({ requestHandler: mockHandler }); + mw(next as any, {} as any)({ request, input: {} }); + }); + + it("should update endpoint to websocket url", (done) => { + const request = new HttpRequest({ + hostname: "streaming-rekognition.us-east-1.amazonaws.com", + }); + const next = (args: BuildHandlerArguments) => { + expect(HttpRequest.isInstance(args.request)).toBeTruthy(); + const processed = args.request as HttpRequest; + expect(processed.hostname).toEqual("streaming-rekognition.us-east-1.amazonaws.com:443"); + expect(processed.headers.host).toEqual("streaming-rekognition.us-east-1.amazonaws.com:443"); + done(); + }; + const mw = websocketPortMiddleware({ requestHandler: mockHandler }); + mw(next as any, {} as any)({ request, input: {} }); + }); +}); diff --git a/packages/middleware-sdk-rekognitionstreaming/src/middleware-port.ts b/packages/middleware-sdk-rekognitionstreaming/src/middleware-port.ts new file mode 100644 index 000000000000..a4b43815a9b1 --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/src/middleware-port.ts @@ -0,0 +1,33 @@ +import { HttpRequest } from "@aws-sdk/protocol-http"; +import { + BuildHandler, + BuildHandlerArguments, + BuildMiddleware, + RelativeMiddlewareOptions, + RequestHandler, +} from "@aws-sdk/types"; + +/** + * Middleware that generates WebSocket URL to RekognitionStreaming service + * Reference: https://docs.aws.amazon.com/transcribe/latest/dg/websocket.html + */ +export const websocketPortMiddleware = + (options: { requestHandler: RequestHandler }): BuildMiddleware => + (next: BuildHandler) => + (args: BuildHandlerArguments) => { + const { request } = args; + if (HttpRequest.isInstance(request) && options.requestHandler.metadata?.handlerProtocol?.includes("websocket")) { + // Append port to hostname because it needs to be signed together + request.hostname = `${request.hostname}:443`; + request.headers.host = request.hostname; + } + return next(args); + }; + +export const websocketPortMiddlewareOptions: RelativeMiddlewareOptions = { + name: "websocketPortMiddleware", + tags: ["WEBSOCKET", "EVENT_STREAM", "PORT"], + relation: "after", + toMiddleware: "eventStreamHeaderMiddleware", + override: true, +}; diff --git a/packages/middleware-sdk-rekognitionstreaming/src/plugin.ts b/packages/middleware-sdk-rekognitionstreaming/src/plugin.ts new file mode 100644 index 000000000000..ef6296dee918 --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/src/plugin.ts @@ -0,0 +1,13 @@ +import { Pluggable, RequestHandler } from "@aws-sdk/types"; + +import { websocketPortMiddleware, websocketPortMiddlewareOptions } from "./middleware-port"; + +interface PreviouslyResolved { + requestHandler: RequestHandler; +} + +export const getRekognitionStreamingPlugin = (config: PreviouslyResolved): Pluggable => ({ + applyToStack: (clientStack) => { + clientStack.addRelativeTo(websocketPortMiddleware(config), websocketPortMiddlewareOptions); + }, +}); diff --git a/packages/middleware-sdk-rekognitionstreaming/tsconfig.cjs.json b/packages/middleware-sdk-rekognitionstreaming/tsconfig.cjs.json new file mode 100644 index 000000000000..1a4dd131cc40 --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/tsconfig.cjs.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "outDir": "dist-cjs", + "rootDir": "src", + "stripInternal": true + }, + "extends": "../../tsconfig.cjs.json", + "include": ["src/"] +} diff --git a/packages/middleware-sdk-rekognitionstreaming/tsconfig.es.json b/packages/middleware-sdk-rekognitionstreaming/tsconfig.es.json new file mode 100644 index 000000000000..9fe8a90b9906 --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/tsconfig.es.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "lib": ["DOM"], + "outDir": "dist-es", + "rootDir": "src", + "stripInternal": true + }, + "extends": "../../tsconfig.es.json", + "include": ["src/"] +} diff --git a/packages/middleware-sdk-rekognitionstreaming/tsconfig.types.json b/packages/middleware-sdk-rekognitionstreaming/tsconfig.types.json new file mode 100644 index 000000000000..6cdf9f52ea06 --- /dev/null +++ b/packages/middleware-sdk-rekognitionstreaming/tsconfig.types.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "declarationDir": "dist-types", + "rootDir": "src" + }, + "extends": "../../tsconfig.types.json", + "include": ["src/"] +} From c6ffe2ea66c8bc31b14c3f81bcb50c2c6ac6af1d Mon Sep 17 00:00:00 2001 From: George Fu Date: Thu, 6 Apr 2023 17:42:31 +0000 Subject: [PATCH 2/2] fix(client-rekognitionstreaming): apply explicit 443 wss port --- clients/client-rekognitionstreaming/package.json | 1 + .../src/RekognitionStreamingClient.ts | 2 ++ .../codegen/AddRekognitionStreamingDependency.java | 14 ++------------ ...cript.codegen.integration.TypeScriptIntegration | 1 + .../src/middleware-port.ts | 5 +++++ .../src/plugin.ts | 3 +++ 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/clients/client-rekognitionstreaming/package.json b/clients/client-rekognitionstreaming/package.json index 65e559d3a511..6633c4bb53fb 100644 --- a/clients/client-rekognitionstreaming/package.json +++ b/clients/client-rekognitionstreaming/package.json @@ -38,6 +38,7 @@ "@aws-sdk/middleware-logger": "*", "@aws-sdk/middleware-recursion-detection": "*", "@aws-sdk/middleware-retry": "*", + "@aws-sdk/middleware-sdk-rekognitionstreaming": "*", "@aws-sdk/middleware-serde": "*", "@aws-sdk/middleware-signing": "*", "@aws-sdk/middleware-stack": "*", diff --git a/clients/client-rekognitionstreaming/src/RekognitionStreamingClient.ts b/clients/client-rekognitionstreaming/src/RekognitionStreamingClient.ts index eb350ae517ac..694e14377302 100644 --- a/clients/client-rekognitionstreaming/src/RekognitionStreamingClient.ts +++ b/clients/client-rekognitionstreaming/src/RekognitionStreamingClient.ts @@ -21,6 +21,7 @@ import { import { getLoggerPlugin } from "@aws-sdk/middleware-logger"; import { getRecursionDetectionPlugin } from "@aws-sdk/middleware-recursion-detection"; import { getRetryPlugin, resolveRetryConfig, RetryInputConfig, RetryResolvedConfig } from "@aws-sdk/middleware-retry"; +import { getRekognitionStreamingPlugin } from "@aws-sdk/middleware-sdk-rekognitionstreaming"; import { AwsAuthInputConfig, AwsAuthResolvedConfig, @@ -319,6 +320,7 @@ export class RekognitionStreamingClient extends __Client< this.middlewareStack.use(getLoggerPlugin(this.config)); this.middlewareStack.use(getRecursionDetectionPlugin(this.config)); this.middlewareStack.use(getAwsAuthPlugin(this.config)); + this.middlewareStack.use(getRekognitionStreamingPlugin(this.config)); this.middlewareStack.use(getUserAgentPlugin(this.config)); } diff --git a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddRekognitionStreamingDependency.java b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddRekognitionStreamingDependency.java index 68993e8c88e8..462b85cbf4da 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddRekognitionStreamingDependency.java +++ b/codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AddRekognitionStreamingDependency.java @@ -1,16 +1,6 @@ /* - * Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 */ package software.amazon.smithy.aws.typescript.codegen; diff --git a/codegen/smithy-aws-typescript-codegen/src/main/resources/META-INF/services/software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration b/codegen/smithy-aws-typescript-codegen/src/main/resources/META-INF/services/software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration index 2e5efdcb3bf0..cec70e0796d1 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/resources/META-INF/services/software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration +++ b/codegen/smithy-aws-typescript-codegen/src/main/resources/META-INF/services/software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration @@ -16,6 +16,7 @@ software.amazon.smithy.aws.typescript.codegen.AddEventStreamHandlingDependency software.amazon.smithy.aws.typescript.codegen.AddHttp2Dependency software.amazon.smithy.aws.typescript.codegen.AddWebsocketPlugin software.amazon.smithy.aws.typescript.codegen.AddTranscribeStreamingDependency +software.amazon.smithy.aws.typescript.codegen.AddRekognitionStreamingDependency software.amazon.smithy.aws.typescript.codegen.AddUserAgentDependency software.amazon.smithy.aws.typescript.codegen.AddOmitRetryHeadersDependency software.amazon.smithy.aws.typescript.codegen.StripNewEnumNames diff --git a/packages/middleware-sdk-rekognitionstreaming/src/middleware-port.ts b/packages/middleware-sdk-rekognitionstreaming/src/middleware-port.ts index a4b43815a9b1..bec22dfc53c3 100644 --- a/packages/middleware-sdk-rekognitionstreaming/src/middleware-port.ts +++ b/packages/middleware-sdk-rekognitionstreaming/src/middleware-port.ts @@ -8,6 +8,8 @@ import { } from "@aws-sdk/types"; /** + * @internal + * * Middleware that generates WebSocket URL to RekognitionStreaming service * Reference: https://docs.aws.amazon.com/transcribe/latest/dg/websocket.html */ @@ -24,6 +26,9 @@ export const websocketPortMiddleware = return next(args); }; +/** + * @internal + */ export const websocketPortMiddlewareOptions: RelativeMiddlewareOptions = { name: "websocketPortMiddleware", tags: ["WEBSOCKET", "EVENT_STREAM", "PORT"], diff --git a/packages/middleware-sdk-rekognitionstreaming/src/plugin.ts b/packages/middleware-sdk-rekognitionstreaming/src/plugin.ts index ef6296dee918..a4e3e27b80d2 100644 --- a/packages/middleware-sdk-rekognitionstreaming/src/plugin.ts +++ b/packages/middleware-sdk-rekognitionstreaming/src/plugin.ts @@ -6,6 +6,9 @@ interface PreviouslyResolved { requestHandler: RequestHandler; } +/** + * @internal + */ export const getRekognitionStreamingPlugin = (config: PreviouslyResolved): Pluggable => ({ applyToStack: (clientStack) => { clientStack.addRelativeTo(websocketPortMiddleware(config), websocketPortMiddlewareOptions);