@smithy/experimental-identity-and-auth 0.0.14 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist-cjs/endpointRuleSet.js +2 -5
  2. package/dist-cjs/httpApiKeyAuth.js +1 -1
  3. package/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js +19 -0
  4. package/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +2 -2
  5. package/dist-cjs/middleware-http-auth-scheme/index.js +1 -0
  6. package/dist-cjs/middleware-http-signing/httpSigningMiddleware.js +1 -1
  7. package/dist-es/endpointRuleSet.js +2 -5
  8. package/dist-es/httpApiKeyAuth.js +1 -1
  9. package/dist-es/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js +15 -0
  10. package/dist-es/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +2 -2
  11. package/dist-es/middleware-http-auth-scheme/index.js +1 -0
  12. package/dist-es/middleware-http-signing/httpSigningMiddleware.js +1 -1
  13. package/dist-types/HttpAuthSchemeProvider.d.ts +3 -3
  14. package/dist-types/endpointRuleSet.d.ts +6 -18
  15. package/dist-types/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.d.ts +11 -0
  16. package/dist-types/middleware-http-auth-scheme/getHttpAuthSchemePlugin.d.ts +3 -2
  17. package/dist-types/middleware-http-auth-scheme/httpAuthSchemeMiddleware.d.ts +20 -7
  18. package/dist-types/middleware-http-auth-scheme/index.d.ts +1 -0
  19. package/dist-types/ts3.4/HttpAuthSchemeProvider.d.ts +3 -3
  20. package/dist-types/ts3.4/endpointRuleSet.d.ts +6 -18
  21. package/dist-types/ts3.4/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.d.ts +11 -0
  22. package/dist-types/ts3.4/middleware-http-auth-scheme/getHttpAuthSchemePlugin.d.ts +3 -2
  23. package/dist-types/ts3.4/middleware-http-auth-scheme/httpAuthSchemeMiddleware.d.ts +20 -7
  24. package/dist-types/ts3.4/middleware-http-auth-scheme/index.d.ts +1 -0
  25. package/package.json +6 -3
@@ -51,10 +51,7 @@ const createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHttpAuthSc
51
51
  if (!instructionsFn) {
52
52
  throw new Error(`getEndpointParameterInstructions() is not defined on \`${context.commandName}\``);
53
53
  }
54
- const endpointParameters = await (0, middleware_endpoint_1.resolveParams)(input, { getEndpointParameterInstructions: instructionsFn }, { ...config });
55
- return {
56
- ...defaultParameters,
57
- ...endpointParameters,
58
- };
54
+ const endpointParameters = await (0, middleware_endpoint_1.resolveParams)(input, { getEndpointParameterInstructions: instructionsFn }, config);
55
+ return Object.assign(defaultParameters, endpointParameters);
59
56
  };
60
57
  exports.createEndpointRuleSetHttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider;
@@ -23,7 +23,7 @@ class HttpApiKeyAuthSigner {
23
23
  }
24
24
  else if (signingProperties.in === HttpApiKeyAuthLocation.HEADER) {
25
25
  clonedRequest.headers[signingProperties.name] = signingProperties.scheme
26
- ? `$${signingProperties.scheme} $${identity.apiKey}`
26
+ ? `${signingProperties.scheme} ${identity.apiKey}`
27
27
  : identity.apiKey;
28
28
  }
29
29
  else {
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHttpAuthSchemeEndpointRuleSetPlugin = exports.httpAuthSchemeEndpointRuleSetMiddlewareOptions = void 0;
4
+ const middleware_endpoint_1 = require("@smithy/middleware-endpoint");
5
+ const httpAuthSchemeMiddleware_1 = require("./httpAuthSchemeMiddleware");
6
+ exports.httpAuthSchemeEndpointRuleSetMiddlewareOptions = {
7
+ step: "serialize",
8
+ tags: ["HTTP_AUTH_SCHEME"],
9
+ name: "httpAuthSchemeMiddleware",
10
+ override: true,
11
+ relation: "before",
12
+ toMiddleware: middleware_endpoint_1.endpointMiddlewareOptions.name,
13
+ };
14
+ const getHttpAuthSchemeEndpointRuleSetPlugin = (config) => ({
15
+ applyToStack: (clientStack) => {
16
+ clientStack.addRelativeTo((0, httpAuthSchemeMiddleware_1.httpAuthSchemeMiddleware)(config), exports.httpAuthSchemeEndpointRuleSetMiddlewareOptions);
17
+ },
18
+ });
19
+ exports.getHttpAuthSchemeEndpointRuleSetPlugin = getHttpAuthSchemeEndpointRuleSetPlugin;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getHttpAuthSchemePlugin = exports.httpAuthSchemeMiddlewareOptions = void 0;
4
- const middleware_endpoint_1 = require("@smithy/middleware-endpoint");
4
+ const middleware_serde_1 = require("@smithy/middleware-serde");
5
5
  const httpAuthSchemeMiddleware_1 = require("./httpAuthSchemeMiddleware");
6
6
  exports.httpAuthSchemeMiddlewareOptions = {
7
7
  step: "serialize",
@@ -9,7 +9,7 @@ exports.httpAuthSchemeMiddlewareOptions = {
9
9
  name: "httpAuthSchemeMiddleware",
10
10
  override: true,
11
11
  relation: "before",
12
- toMiddleware: middleware_endpoint_1.endpointMiddlewareOptions.name,
12
+ toMiddleware: middleware_serde_1.serializerMiddlewareOption.name,
13
13
  };
14
14
  const getHttpAuthSchemePlugin = (config) => ({
15
15
  applyToStack: (clientStack) => {
@@ -2,4 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./httpAuthSchemeMiddleware"), exports);
5
+ tslib_1.__exportStar(require("./getHttpAuthSchemeEndpointRuleSetPlugin"), exports);
5
6
  tslib_1.__exportStar(require("./getHttpAuthSchemePlugin"), exports);
@@ -16,7 +16,7 @@ const httpSigningMiddleware = (config) => (next, context) => async (args) => {
16
16
  const { httpAuthOption: { signingProperties }, identity, signer, } = scheme;
17
17
  return next({
18
18
  ...args,
19
- request: signer.sign(args.request, identity, signingProperties || {}),
19
+ request: await signer.sign(args.request, identity, signingProperties || {}),
20
20
  });
21
21
  };
22
22
  exports.httpSigningMiddleware = httpSigningMiddleware;
@@ -46,9 +46,6 @@ export const createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHtt
46
46
  if (!instructionsFn) {
47
47
  throw new Error(`getEndpointParameterInstructions() is not defined on \`${context.commandName}\``);
48
48
  }
49
- const endpointParameters = await resolveParams(input, { getEndpointParameterInstructions: instructionsFn }, { ...config });
50
- return {
51
- ...defaultParameters,
52
- ...endpointParameters,
53
- };
49
+ const endpointParameters = await resolveParams(input, { getEndpointParameterInstructions: instructionsFn }, config);
50
+ return Object.assign(defaultParameters, endpointParameters);
54
51
  };
@@ -20,7 +20,7 @@ export class HttpApiKeyAuthSigner {
20
20
  }
21
21
  else if (signingProperties.in === HttpApiKeyAuthLocation.HEADER) {
22
22
  clonedRequest.headers[signingProperties.name] = signingProperties.scheme
23
- ? `$${signingProperties.scheme} $${identity.apiKey}`
23
+ ? `${signingProperties.scheme} ${identity.apiKey}`
24
24
  : identity.apiKey;
25
25
  }
26
26
  else {
@@ -0,0 +1,15 @@
1
+ import { endpointMiddlewareOptions } from "@smithy/middleware-endpoint";
2
+ import { httpAuthSchemeMiddleware } from "./httpAuthSchemeMiddleware";
3
+ export const httpAuthSchemeEndpointRuleSetMiddlewareOptions = {
4
+ step: "serialize",
5
+ tags: ["HTTP_AUTH_SCHEME"],
6
+ name: "httpAuthSchemeMiddleware",
7
+ override: true,
8
+ relation: "before",
9
+ toMiddleware: endpointMiddlewareOptions.name,
10
+ };
11
+ export const getHttpAuthSchemeEndpointRuleSetPlugin = (config) => ({
12
+ applyToStack: (clientStack) => {
13
+ clientStack.addRelativeTo(httpAuthSchemeMiddleware(config), httpAuthSchemeEndpointRuleSetMiddlewareOptions);
14
+ },
15
+ });
@@ -1,4 +1,4 @@
1
- import { endpointMiddlewareOptions } from "@smithy/middleware-endpoint";
1
+ import { serializerMiddlewareOption } from "@smithy/middleware-serde";
2
2
  import { httpAuthSchemeMiddleware } from "./httpAuthSchemeMiddleware";
3
3
  export const httpAuthSchemeMiddlewareOptions = {
4
4
  step: "serialize",
@@ -6,7 +6,7 @@ export const httpAuthSchemeMiddlewareOptions = {
6
6
  name: "httpAuthSchemeMiddleware",
7
7
  override: true,
8
8
  relation: "before",
9
- toMiddleware: endpointMiddlewareOptions.name,
9
+ toMiddleware: serializerMiddlewareOption.name,
10
10
  };
11
11
  export const getHttpAuthSchemePlugin = (config) => ({
12
12
  applyToStack: (clientStack) => {
@@ -1,2 +1,3 @@
1
1
  export * from "./httpAuthSchemeMiddleware";
2
+ export * from "./getHttpAuthSchemeEndpointRuleSetPlugin";
2
3
  export * from "./getHttpAuthSchemePlugin";
@@ -13,6 +13,6 @@ export const httpSigningMiddleware = (config) => (next, context) => async (args)
13
13
  const { httpAuthOption: { signingProperties }, identity, signer, } = scheme;
14
14
  return next({
15
15
  ...args,
16
- request: signer.sign(args.request, identity, signingProperties || {}),
16
+ request: await signer.sign(args.request, identity, signingProperties || {}),
17
17
  });
18
18
  };
@@ -9,12 +9,12 @@ export interface HttpAuthSchemeParameters {
9
9
  /**
10
10
  * @internal
11
11
  */
12
- export interface HttpAuthSchemeProvider<TParameters extends HttpAuthSchemeParameters = HttpAuthSchemeParameters> {
12
+ export interface HttpAuthSchemeProvider<TParameters extends HttpAuthSchemeParameters> {
13
13
  (authParameters: TParameters): HttpAuthOption[];
14
14
  }
15
15
  /**
16
16
  * @internal
17
17
  */
18
- export interface HttpAuthSchemeParametersProvider<C extends object = object, T extends HttpAuthSchemeParameters = HttpAuthSchemeParameters> {
19
- (config: C, context: HandlerExecutionContext, input: Record<string, unknown>): Promise<T>;
18
+ export interface HttpAuthSchemeParametersProvider<TConfig extends object, TContext extends HandlerExecutionContext, TParameters extends HttpAuthSchemeParameters, TInput extends object> {
19
+ (config: TConfig, context: TContext, input: TInput): Promise<TParameters>;
20
20
  }
@@ -1,15 +1,15 @@
1
1
  import { EndpointParameterInstructions } from "@smithy/middleware-endpoint";
2
- import { EndpointParameters, EndpointV2, Logger } from "@smithy/types";
2
+ import { EndpointParameters, EndpointV2, HandlerExecutionContext, Logger } from "@smithy/types";
3
3
  import { HttpAuthSchemeParameters, HttpAuthSchemeParametersProvider, HttpAuthSchemeProvider } from "./HttpAuthSchemeProvider";
4
4
  /**
5
5
  * @internal
6
6
  */
7
- export interface EndpointRuleSetHttpAuthSchemeProvider<EndpointParametersT extends EndpointParameters = EndpointParameters, HttpAuthSchemeParametersT extends HttpAuthSchemeParameters = HttpAuthSchemeParameters> extends HttpAuthSchemeProvider<EndpointParametersT & HttpAuthSchemeParametersT> {
7
+ export interface EndpointRuleSetHttpAuthSchemeProvider<EndpointParametersT extends EndpointParameters, HttpAuthSchemeParametersT extends HttpAuthSchemeParameters> extends HttpAuthSchemeProvider<EndpointParametersT & HttpAuthSchemeParametersT> {
8
8
  }
9
9
  /**
10
10
  * @internal
11
11
  */
12
- export interface DefaultEndpointResolver<EndpointParametersT extends EndpointParameters = EndpointParameters> {
12
+ export interface DefaultEndpointResolver<EndpointParametersT extends EndpointParameters> {
13
13
  (params: EndpointParametersT, context?: {
14
14
  logger?: Logger;
15
15
  }): EndpointV2;
@@ -17,13 +17,7 @@ export interface DefaultEndpointResolver<EndpointParametersT extends EndpointPar
17
17
  /**
18
18
  * @internal
19
19
  */
20
- export interface CreateEndpointRuleSetHttpAuthSchemeProvider<EndpointParametersT extends EndpointParameters = EndpointParameters, HttpAuthSchemeParametersT extends HttpAuthSchemeParameters = HttpAuthSchemeParameters> {
21
- (defaultEndpointResolver: DefaultEndpointResolver<EndpointParametersT>, defaultHttpAuthSchemeResolver: HttpAuthSchemeProvider<HttpAuthSchemeParametersT>): EndpointRuleSetHttpAuthSchemeProvider;
22
- }
23
- /**
24
- * @internal
25
- */
26
- export declare const createEndpointRuleSetHttpAuthSchemeProvider: CreateEndpointRuleSetHttpAuthSchemeProvider;
20
+ export declare const createEndpointRuleSetHttpAuthSchemeProvider: <EndpointParametersT extends EndpointParameters, HttpAuthSchemeParametersT extends HttpAuthSchemeParameters>(defaultEndpointResolver: DefaultEndpointResolver<EndpointParametersT>, defaultHttpAuthSchemeResolver: HttpAuthSchemeProvider<HttpAuthSchemeParametersT>) => EndpointRuleSetHttpAuthSchemeProvider<EndpointParametersT, HttpAuthSchemeParametersT>;
27
21
  /**
28
22
  * @internal
29
23
  */
@@ -35,15 +29,9 @@ export interface EndpointRuleSetSmithyContext {
35
29
  /**
36
30
  * @internal
37
31
  */
38
- export interface CreateEndpointRuleSetHttpAuthSchemeParametersProvider<HttpAuthSchemeParametersProviderT extends HttpAuthSchemeParametersProvider = HttpAuthSchemeParametersProvider> {
39
- (defaultHttpAuthSchemeResolver: HttpAuthSchemeParametersProviderT): EndpointRuleSetHttpAuthSchemeParametersProvider;
40
- }
41
- /**
42
- * @internal
43
- */
44
- export interface EndpointRuleSetHttpAuthSchemeParametersProvider<C extends object = object, EndpointParametersT extends EndpointParameters = EndpointParameters, HttpAuthSchemeParametersT extends HttpAuthSchemeParameters = HttpAuthSchemeParameters> extends HttpAuthSchemeParametersProvider<C, HttpAuthSchemeParametersT & EndpointParametersT> {
32
+ export interface EndpointRuleSetHttpAuthSchemeParametersProvider<TConfig extends object, TContext extends HandlerExecutionContext, TParameters extends HttpAuthSchemeParameters & EndpointParameters, TInput extends object> extends HttpAuthSchemeParametersProvider<TConfig, TContext, TParameters, TInput> {
45
33
  }
46
34
  /**
47
35
  * @internal
48
36
  */
49
- export declare const createEndpointRuleSetHttpAuthSchemeParametersProvider: CreateEndpointRuleSetHttpAuthSchemeParametersProvider;
37
+ export declare const createEndpointRuleSetHttpAuthSchemeParametersProvider: <TConfig extends object, TContext extends HandlerExecutionContext, THttpAuthSchemeParameters extends HttpAuthSchemeParameters, TEndpointParameters extends EndpointParameters, TParameters extends THttpAuthSchemeParameters & TEndpointParameters, TInput extends object>(defaultHttpAuthSchemeParametersProvider: HttpAuthSchemeParametersProvider<TConfig, TContext, THttpAuthSchemeParameters, TInput>) => EndpointRuleSetHttpAuthSchemeParametersProvider<TConfig, TContext, THttpAuthSchemeParameters & TEndpointParameters, TInput>;
@@ -0,0 +1,11 @@
1
+ import { HandlerExecutionContext, Pluggable, RelativeMiddlewareOptions, SerializeHandlerOptions } from "@smithy/types";
2
+ import { HttpAuthSchemeParameters } from "../HttpAuthSchemeProvider";
3
+ import { PreviouslyResolved } from "./httpAuthSchemeMiddleware";
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare const httpAuthSchemeEndpointRuleSetMiddlewareOptions: SerializeHandlerOptions & RelativeMiddlewareOptions;
8
+ /**
9
+ * @internal
10
+ */
11
+ export declare const getHttpAuthSchemeEndpointRuleSetPlugin: <TConfig extends object, TContext extends HandlerExecutionContext, TParameters extends HttpAuthSchemeParameters, TInput extends object>(config: TConfig & PreviouslyResolved<TConfig, TContext, TParameters, TInput>) => Pluggable<any, any>;
@@ -1,4 +1,5 @@
1
- import { MetadataBearer, Pluggable, RelativeMiddlewareOptions, SerializeHandlerOptions } from "@smithy/types";
1
+ import { HandlerExecutionContext, Pluggable, RelativeMiddlewareOptions, SerializeHandlerOptions } from "@smithy/types";
2
+ import { HttpAuthSchemeParameters } from "../HttpAuthSchemeProvider";
2
3
  import { PreviouslyResolved } from "./httpAuthSchemeMiddleware";
3
4
  /**
4
5
  * @internal
@@ -7,4 +8,4 @@ export declare const httpAuthSchemeMiddlewareOptions: SerializeHandlerOptions &
7
8
  /**
8
9
  * @internal
9
10
  */
10
- export declare const getHttpAuthSchemePlugin: <Input extends Record<string, unknown> = Record<string, unknown>, Output extends MetadataBearer = MetadataBearer>(config: PreviouslyResolved) => Pluggable<Input, Output>;
11
+ export declare const getHttpAuthSchemePlugin: <TConfig extends object, TContext extends HandlerExecutionContext, TParameters extends HttpAuthSchemeParameters, TInput extends object>(config: TConfig & PreviouslyResolved<TConfig, TContext, TParameters, TInput>) => Pluggable<any, any>;
@@ -1,17 +1,30 @@
1
- import { MetadataBearer, SerializeMiddleware } from "@smithy/types";
2
- import { HttpAuthScheme } from "../HttpAuthScheme";
3
- import { HttpAuthSchemeParametersProvider, HttpAuthSchemeProvider } from "../HttpAuthSchemeProvider";
1
+ import { HandlerExecutionContext, SerializeMiddleware, SMITHY_CONTEXT_KEY } from "@smithy/types";
2
+ import { HttpAuthScheme, SelectedHttpAuthScheme } from "../HttpAuthScheme";
3
+ import { HttpAuthSchemeParameters, HttpAuthSchemeParametersProvider, HttpAuthSchemeProvider } from "../HttpAuthSchemeProvider";
4
4
  import { IdentityProviderConfig } from "../IdentityProviderConfig";
5
5
  /**
6
6
  * @internal
7
7
  */
8
- export interface PreviouslyResolved {
8
+ export interface PreviouslyResolved<TConfig extends object, TContext extends HandlerExecutionContext, TParameters extends HttpAuthSchemeParameters, TInput extends object> {
9
9
  httpAuthSchemes: HttpAuthScheme[];
10
- httpAuthSchemeProvider: HttpAuthSchemeProvider;
11
- httpAuthSchemeParametersProvider: HttpAuthSchemeParametersProvider;
10
+ httpAuthSchemeProvider: HttpAuthSchemeProvider<TParameters>;
11
+ httpAuthSchemeParametersProvider: HttpAuthSchemeParametersProvider<TConfig, TContext, TParameters, TInput>;
12
12
  identityProviderConfig: IdentityProviderConfig;
13
13
  }
14
14
  /**
15
15
  * @internal
16
16
  */
17
- export declare const httpAuthSchemeMiddleware: <Input extends Record<string, unknown> = Record<string, unknown>, Output extends MetadataBearer = MetadataBearer>(config: PreviouslyResolved) => SerializeMiddleware<Input, Output>;
17
+ interface HttpAuthSchemeMiddlewareSmithyContext extends Record<string, unknown> {
18
+ selectedHttpAuthScheme?: SelectedHttpAuthScheme;
19
+ }
20
+ /**
21
+ * @internal
22
+ */
23
+ interface HttpAuthSchemeMiddlewareHandlerExecutionContext extends HandlerExecutionContext {
24
+ [SMITHY_CONTEXT_KEY]?: HttpAuthSchemeMiddlewareSmithyContext;
25
+ }
26
+ /**
27
+ * @internal
28
+ */
29
+ export declare const httpAuthSchemeMiddleware: <TInput extends object, Output extends object, TConfig extends object, TContext extends HttpAuthSchemeMiddlewareHandlerExecutionContext, TParameters extends HttpAuthSchemeParameters>(config: TConfig & PreviouslyResolved<TConfig, TContext, TParameters, TInput>) => SerializeMiddleware<TInput, Output>;
30
+ export {};
@@ -1,2 +1,3 @@
1
1
  export * from "./httpAuthSchemeMiddleware";
2
+ export * from "./getHttpAuthSchemeEndpointRuleSetPlugin";
2
3
  export * from "./getHttpAuthSchemePlugin";
@@ -9,12 +9,12 @@ export interface HttpAuthSchemeParameters {
9
9
  /**
10
10
  * @internal
11
11
  */
12
- export interface HttpAuthSchemeProvider<TParameters extends HttpAuthSchemeParameters = HttpAuthSchemeParameters> {
12
+ export interface HttpAuthSchemeProvider<TParameters extends HttpAuthSchemeParameters> {
13
13
  (authParameters: TParameters): HttpAuthOption[];
14
14
  }
15
15
  /**
16
16
  * @internal
17
17
  */
18
- export interface HttpAuthSchemeParametersProvider<C extends object = object, T extends HttpAuthSchemeParameters = HttpAuthSchemeParameters> {
19
- (config: C, context: HandlerExecutionContext, input: Record<string, unknown>): Promise<T>;
18
+ export interface HttpAuthSchemeParametersProvider<TConfig extends object, TContext extends HandlerExecutionContext, TParameters extends HttpAuthSchemeParameters, TInput extends object> {
19
+ (config: TConfig, context: TContext, input: TInput): Promise<TParameters>;
20
20
  }
@@ -1,15 +1,15 @@
1
1
  import { EndpointParameterInstructions } from "@smithy/middleware-endpoint";
2
- import { EndpointParameters, EndpointV2, Logger } from "@smithy/types";
2
+ import { EndpointParameters, EndpointV2, HandlerExecutionContext, Logger } from "@smithy/types";
3
3
  import { HttpAuthSchemeParameters, HttpAuthSchemeParametersProvider, HttpAuthSchemeProvider } from "./HttpAuthSchemeProvider";
4
4
  /**
5
5
  * @internal
6
6
  */
7
- export interface EndpointRuleSetHttpAuthSchemeProvider<EndpointParametersT extends EndpointParameters = EndpointParameters, HttpAuthSchemeParametersT extends HttpAuthSchemeParameters = HttpAuthSchemeParameters> extends HttpAuthSchemeProvider<EndpointParametersT & HttpAuthSchemeParametersT> {
7
+ export interface EndpointRuleSetHttpAuthSchemeProvider<EndpointParametersT extends EndpointParameters, HttpAuthSchemeParametersT extends HttpAuthSchemeParameters> extends HttpAuthSchemeProvider<EndpointParametersT & HttpAuthSchemeParametersT> {
8
8
  }
9
9
  /**
10
10
  * @internal
11
11
  */
12
- export interface DefaultEndpointResolver<EndpointParametersT extends EndpointParameters = EndpointParameters> {
12
+ export interface DefaultEndpointResolver<EndpointParametersT extends EndpointParameters> {
13
13
  (params: EndpointParametersT, context?: {
14
14
  logger?: Logger;
15
15
  }): EndpointV2;
@@ -17,13 +17,7 @@ export interface DefaultEndpointResolver<EndpointParametersT extends EndpointPar
17
17
  /**
18
18
  * @internal
19
19
  */
20
- export interface CreateEndpointRuleSetHttpAuthSchemeProvider<EndpointParametersT extends EndpointParameters = EndpointParameters, HttpAuthSchemeParametersT extends HttpAuthSchemeParameters = HttpAuthSchemeParameters> {
21
- (defaultEndpointResolver: DefaultEndpointResolver<EndpointParametersT>, defaultHttpAuthSchemeResolver: HttpAuthSchemeProvider<HttpAuthSchemeParametersT>): EndpointRuleSetHttpAuthSchemeProvider;
22
- }
23
- /**
24
- * @internal
25
- */
26
- export declare const createEndpointRuleSetHttpAuthSchemeProvider: CreateEndpointRuleSetHttpAuthSchemeProvider;
20
+ export declare const createEndpointRuleSetHttpAuthSchemeProvider: <EndpointParametersT extends EndpointParameters, HttpAuthSchemeParametersT extends HttpAuthSchemeParameters>(defaultEndpointResolver: DefaultEndpointResolver<EndpointParametersT>, defaultHttpAuthSchemeResolver: HttpAuthSchemeProvider<HttpAuthSchemeParametersT>) => EndpointRuleSetHttpAuthSchemeProvider<EndpointParametersT, HttpAuthSchemeParametersT>;
27
21
  /**
28
22
  * @internal
29
23
  */
@@ -35,15 +29,9 @@ export interface EndpointRuleSetSmithyContext {
35
29
  /**
36
30
  * @internal
37
31
  */
38
- export interface CreateEndpointRuleSetHttpAuthSchemeParametersProvider<HttpAuthSchemeParametersProviderT extends HttpAuthSchemeParametersProvider = HttpAuthSchemeParametersProvider> {
39
- (defaultHttpAuthSchemeResolver: HttpAuthSchemeParametersProviderT): EndpointRuleSetHttpAuthSchemeParametersProvider;
40
- }
41
- /**
42
- * @internal
43
- */
44
- export interface EndpointRuleSetHttpAuthSchemeParametersProvider<C extends object = object, EndpointParametersT extends EndpointParameters = EndpointParameters, HttpAuthSchemeParametersT extends HttpAuthSchemeParameters = HttpAuthSchemeParameters> extends HttpAuthSchemeParametersProvider<C, HttpAuthSchemeParametersT & EndpointParametersT> {
32
+ export interface EndpointRuleSetHttpAuthSchemeParametersProvider<TConfig extends object, TContext extends HandlerExecutionContext, TParameters extends HttpAuthSchemeParameters & EndpointParameters, TInput extends object> extends HttpAuthSchemeParametersProvider<TConfig, TContext, TParameters, TInput> {
45
33
  }
46
34
  /**
47
35
  * @internal
48
36
  */
49
- export declare const createEndpointRuleSetHttpAuthSchemeParametersProvider: CreateEndpointRuleSetHttpAuthSchemeParametersProvider;
37
+ export declare const createEndpointRuleSetHttpAuthSchemeParametersProvider: <TConfig extends object, TContext extends HandlerExecutionContext, THttpAuthSchemeParameters extends HttpAuthSchemeParameters, TEndpointParameters extends EndpointParameters, TParameters extends THttpAuthSchemeParameters & TEndpointParameters, TInput extends object>(defaultHttpAuthSchemeParametersProvider: HttpAuthSchemeParametersProvider<TConfig, TContext, THttpAuthSchemeParameters, TInput>) => EndpointRuleSetHttpAuthSchemeParametersProvider<TConfig, TContext, THttpAuthSchemeParameters & TEndpointParameters, TInput>;
@@ -0,0 +1,11 @@
1
+ import { HandlerExecutionContext, Pluggable, RelativeMiddlewareOptions, SerializeHandlerOptions } from "@smithy/types";
2
+ import { HttpAuthSchemeParameters } from "../HttpAuthSchemeProvider";
3
+ import { PreviouslyResolved } from "./httpAuthSchemeMiddleware";
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare const httpAuthSchemeEndpointRuleSetMiddlewareOptions: SerializeHandlerOptions & RelativeMiddlewareOptions;
8
+ /**
9
+ * @internal
10
+ */
11
+ export declare const getHttpAuthSchemeEndpointRuleSetPlugin: <TConfig extends object, TContext extends HandlerExecutionContext, TParameters extends HttpAuthSchemeParameters, TInput extends object>(config: TConfig & PreviouslyResolved<TConfig, TContext, TParameters, TInput>) => Pluggable<any, any>;
@@ -1,4 +1,5 @@
1
- import { MetadataBearer, Pluggable, RelativeMiddlewareOptions, SerializeHandlerOptions } from "@smithy/types";
1
+ import { HandlerExecutionContext, Pluggable, RelativeMiddlewareOptions, SerializeHandlerOptions } from "@smithy/types";
2
+ import { HttpAuthSchemeParameters } from "../HttpAuthSchemeProvider";
2
3
  import { PreviouslyResolved } from "./httpAuthSchemeMiddleware";
3
4
  /**
4
5
  * @internal
@@ -7,4 +8,4 @@ export declare const httpAuthSchemeMiddlewareOptions: SerializeHandlerOptions &
7
8
  /**
8
9
  * @internal
9
10
  */
10
- export declare const getHttpAuthSchemePlugin: <Input extends Record<string, unknown> = Record<string, unknown>, Output extends MetadataBearer = MetadataBearer>(config: PreviouslyResolved) => Pluggable<Input, Output>;
11
+ export declare const getHttpAuthSchemePlugin: <TConfig extends object, TContext extends HandlerExecutionContext, TParameters extends HttpAuthSchemeParameters, TInput extends object>(config: TConfig & PreviouslyResolved<TConfig, TContext, TParameters, TInput>) => Pluggable<any, any>;
@@ -1,17 +1,30 @@
1
- import { MetadataBearer, SerializeMiddleware } from "@smithy/types";
2
- import { HttpAuthScheme } from "../HttpAuthScheme";
3
- import { HttpAuthSchemeParametersProvider, HttpAuthSchemeProvider } from "../HttpAuthSchemeProvider";
1
+ import { HandlerExecutionContext, SerializeMiddleware, SMITHY_CONTEXT_KEY } from "@smithy/types";
2
+ import { HttpAuthScheme, SelectedHttpAuthScheme } from "../HttpAuthScheme";
3
+ import { HttpAuthSchemeParameters, HttpAuthSchemeParametersProvider, HttpAuthSchemeProvider } from "../HttpAuthSchemeProvider";
4
4
  import { IdentityProviderConfig } from "../IdentityProviderConfig";
5
5
  /**
6
6
  * @internal
7
7
  */
8
- export interface PreviouslyResolved {
8
+ export interface PreviouslyResolved<TConfig extends object, TContext extends HandlerExecutionContext, TParameters extends HttpAuthSchemeParameters, TInput extends object> {
9
9
  httpAuthSchemes: HttpAuthScheme[];
10
- httpAuthSchemeProvider: HttpAuthSchemeProvider;
11
- httpAuthSchemeParametersProvider: HttpAuthSchemeParametersProvider;
10
+ httpAuthSchemeProvider: HttpAuthSchemeProvider<TParameters>;
11
+ httpAuthSchemeParametersProvider: HttpAuthSchemeParametersProvider<TConfig, TContext, TParameters, TInput>;
12
12
  identityProviderConfig: IdentityProviderConfig;
13
13
  }
14
14
  /**
15
15
  * @internal
16
16
  */
17
- export declare const httpAuthSchemeMiddleware: <Input extends Record<string, unknown> = Record<string, unknown>, Output extends MetadataBearer = MetadataBearer>(config: PreviouslyResolved) => SerializeMiddleware<Input, Output>;
17
+ interface HttpAuthSchemeMiddlewareSmithyContext extends Record<string, unknown> {
18
+ selectedHttpAuthScheme?: SelectedHttpAuthScheme;
19
+ }
20
+ /**
21
+ * @internal
22
+ */
23
+ interface HttpAuthSchemeMiddlewareHandlerExecutionContext extends HandlerExecutionContext {
24
+ [SMITHY_CONTEXT_KEY]?: HttpAuthSchemeMiddlewareSmithyContext;
25
+ }
26
+ /**
27
+ * @internal
28
+ */
29
+ export declare const httpAuthSchemeMiddleware: <TInput extends object, Output extends object, TConfig extends object, TContext extends HttpAuthSchemeMiddlewareHandlerExecutionContext, TParameters extends HttpAuthSchemeParameters>(config: TConfig & PreviouslyResolved<TConfig, TContext, TParameters, TInput>) => SerializeMiddleware<TInput, Output>;
30
+ export {};
@@ -1,2 +1,3 @@
1
1
  export * from "./httpAuthSchemeMiddleware";
2
+ export * from "./getHttpAuthSchemeEndpointRuleSetPlugin";
2
3
  export * from "./getHttpAuthSchemePlugin";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/experimental-identity-and-auth",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "yarn g:tsc -p tsconfig.cjs.json",
@@ -11,7 +11,8 @@
11
11
  "clean": "rimraf ./dist-* && rimraf *.tsbuildinfo",
12
12
  "lint": "eslint -c ../../.eslintrc.js \"src/**/*.ts\"",
13
13
  "format": "prettier --config ../../prettier.config.js --ignore-path ../.prettierignore --write \"**/*.{ts,md,json}\"",
14
- "test": "yarn g:tsc -p tsconfig.test.json"
14
+ "test": "yarn g:jest --passWithNoTests",
15
+ "test:integration": "yarn g:jest --config jest.config.integ.js --passWithNoTests"
15
16
  },
16
17
  "main": "./dist-cjs/index.js",
17
18
  "module": "./dist-es/index.js",
@@ -23,11 +24,13 @@
23
24
  },
24
25
  "license": "Apache-2.0",
25
26
  "dependencies": {
26
- "@smithy/middleware-endpoint": "^2.0.11",
27
+ "@smithy/middleware-endpoint": "^2.1.0",
27
28
  "@smithy/middleware-retry": "^2.0.16",
29
+ "@smithy/middleware-serde": "^2.0.11",
28
30
  "@smithy/protocol-http": "^3.0.7",
29
31
  "@smithy/signature-v4": "^2.0.11",
30
32
  "@smithy/types": "^2.3.5",
33
+ "@smithy/util-test": "^0.1.7",
31
34
  "tslib": "^2.5.0"
32
35
  },
33
36
  "engines": {