@kensio/yulin 1.20.1 → 1.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/service/apigateway/api/sim-rest-api-lambda-proxy.factory.d.ts +2 -5
- package/dist/service/apigateway/api/sim-rest-api-lambda-proxy.factory.d.ts.map +1 -1
- package/dist/service/apigateway/api/sim-rest-api-lambda-proxy.factory.js +3 -7
- package/dist/service/apigateway/api/sim-rest-api-lambda-proxy.factory.js.map +1 -1
- package/dist/service/apigateway/api/sim-rest-api-proxy-stage.d.ts +22 -0
- package/dist/service/apigateway/api/sim-rest-api-proxy-stage.d.ts.map +1 -0
- package/dist/service/apigateway/api/sim-rest-api-proxy-stage.js +31 -0
- package/dist/service/apigateway/api/sim-rest-api-proxy-stage.js.map +1 -0
- package/dist/service/apigateway/api/stage/settings/sim-rest-api-method-settings.type.d.ts +19 -0
- package/dist/service/apigateway/api/stage/settings/sim-rest-api-method-settings.type.d.ts.map +1 -0
- package/dist/service/apigateway/api/stage/settings/sim-rest-api-method-settings.type.js +2 -0
- package/dist/service/apigateway/api/stage/settings/sim-rest-api-method-settings.type.js.map +1 -0
- package/dist/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.d.ts +43 -0
- package/dist/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.d.ts.map +1 -0
- package/dist/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.js +75 -0
- package/dist/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.js.map +1 -0
- package/dist/service/apigateway/api/stage/sim-rest-api-stage.d.ts +19 -0
- package/dist/service/apigateway/api/stage/sim-rest-api-stage.d.ts.map +1 -1
- package/dist/service/apigateway/api/stage/sim-rest-api-stage.js +22 -0
- package/dist/service/apigateway/api/stage/sim-rest-api-stage.js.map +1 -1
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.d.ts +33 -0
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.d.ts.map +1 -0
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.js +69 -0
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.js.map +1 -0
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-properties.d.ts +4 -1
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-properties.d.ts.map +1 -1
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-properties.js +13 -4
- package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-properties.js.map +1 -1
- package/dist/service/apigateway/command/sim-api-gateway-unsimulated-input.d.ts +6 -1
- package/dist/service/apigateway/command/sim-api-gateway-unsimulated-input.d.ts.map +1 -1
- package/dist/service/apigateway/command/sim-api-gateway-unsimulated-input.js +8 -3
- package/dist/service/apigateway/command/sim-api-gateway-unsimulated-input.js.map +1 -1
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-commands.d.ts.map +1 -1
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-commands.js +4 -0
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-commands.js.map +1 -1
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-method-settings-input.d.ts +18 -0
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-method-settings-input.d.ts.map +1 -0
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-method-settings-input.js +42 -0
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-method-settings-input.js.map +1 -0
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-publisher.d.ts +9 -0
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-publisher.d.ts.map +1 -1
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-publisher.js +17 -0
- package/dist/service/apigateway/command/stage/sim-rest-api-stage-publisher.js.map +1 -1
- package/dist/service/apigateway/command/stage/stage.command.d.ts +11 -0
- package/dist/service/apigateway/command/stage/stage.command.d.ts.map +1 -1
- package/dist/service/apigateway/index.d.ts +2 -0
- package/dist/service/apigateway/index.d.ts.map +1 -1
- package/dist/service/apigateway/index.js +1 -0
- package/dist/service/apigateway/index.js.map +1 -1
- package/dist/service/apigateway/serve/sim-api-gateway-controller.d.ts +4 -1
- package/dist/service/apigateway/serve/sim-api-gateway-controller.d.ts.map +1 -1
- package/dist/service/apigateway/serve/sim-api-gateway-controller.js +10 -1
- package/dist/service/apigateway/serve/sim-api-gateway-controller.js.map +1 -1
- package/dist/service/apigateway/serve/sim-api-gateway-error-response.d.ts +8 -0
- package/dist/service/apigateway/serve/sim-api-gateway-error-response.d.ts.map +1 -1
- package/dist/service/apigateway/serve/sim-api-gateway-error-response.js +10 -0
- package/dist/service/apigateway/serve/sim-api-gateway-error-response.js.map +1 -1
- package/dist/service/apigatewayv2/api/sim-http-api-lambda-proxy.factory.d.ts +5 -0
- package/dist/service/apigatewayv2/api/sim-http-api-lambda-proxy.factory.d.ts.map +1 -1
- package/dist/service/apigatewayv2/api/sim-http-api-lambda-proxy.factory.js +4 -0
- package/dist/service/apigatewayv2/api/sim-http-api-lambda-proxy.factory.js.map +1 -1
- package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-route-settings.type.d.ts +24 -0
- package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-route-settings.type.d.ts.map +1 -0
- package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-route-settings.type.js +2 -0
- package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-route-settings.type.js.map +1 -0
- package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-stage-route-settings.d.ts +39 -0
- package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-stage-route-settings.d.ts.map +1 -0
- package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-stage-route-settings.js +74 -0
- package/dist/service/apigatewayv2/api/stage/settings/sim-http-api-stage-route-settings.js.map +1 -0
- package/dist/service/apigatewayv2/api/stage/sim-http-api-stage.d.ts +16 -1
- package/dist/service/apigatewayv2/api/stage/sim-http-api-stage.d.ts.map +1 -1
- package/dist/service/apigatewayv2/api/stage/sim-http-api-stage.js +16 -0
- package/dist/service/apigatewayv2/api/stage/sim-http-api-stage.js.map +1 -1
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-route-settings-properties.d.ts +30 -0
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-route-settings-properties.d.ts.map +1 -0
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-route-settings-properties.js +67 -0
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-route-settings-properties.js.map +1 -0
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-properties.d.ts +3 -1
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-properties.d.ts.map +1 -1
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-properties.js +16 -5
- package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-properties.js.map +1 -1
- package/dist/service/apigatewayv2/command/sim-api-gateway-v2-unsimulated-input.d.ts +6 -1
- package/dist/service/apigatewayv2/command/sim-api-gateway-v2-unsimulated-input.d.ts.map +1 -1
- package/dist/service/apigatewayv2/command/sim-api-gateway-v2-unsimulated-input.js +8 -3
- package/dist/service/apigatewayv2/command/sim-api-gateway-v2-unsimulated-input.js.map +1 -1
- package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-commands.d.ts.map +1 -1
- package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-commands.js +8 -0
- package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-commands.js.map +1 -1
- package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-route-settings-input.d.ts +18 -0
- package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-route-settings-input.d.ts.map +1 -0
- package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-route-settings-input.js +32 -0
- package/dist/service/apigatewayv2/command/stage/sim-http-api-stage-route-settings-input.js.map +1 -0
- package/dist/service/apigatewayv2/command/stage/stage.command.d.ts +3 -0
- package/dist/service/apigatewayv2/command/stage/stage.command.d.ts.map +1 -1
- package/dist/service/apigatewayv2/index.d.ts +2 -0
- package/dist/service/apigatewayv2/index.d.ts.map +1 -1
- package/dist/service/apigatewayv2/index.js +1 -0
- package/dist/service/apigatewayv2/index.js.map +1 -1
- package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-controller.d.ts +4 -1
- package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-controller.d.ts.map +1 -1
- package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-controller.js +11 -2
- package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-controller.js.map +1 -1
- package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-error-response.d.ts +8 -0
- package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-error-response.d.ts.map +1 -1
- package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-error-response.js +10 -0
- package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-error-response.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
- package/dist/service/cloudformation/template/node/fn/join/sim-cfn-fn-join.d.ts +7 -0
- package/dist/service/cloudformation/template/node/fn/join/sim-cfn-fn-join.d.ts.map +1 -1
- package/dist/service/cloudformation/template/node/fn/join/sim-cfn-fn-join.js +9 -1
- package/dist/service/cloudformation/template/node/fn/join/sim-cfn-fn-join.js.map +1 -1
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +5 -0
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts.map +1 -1
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.js.map +1 -1
- package/dist/service/cloudfront/cff/sim-cff-arn.d.ts +13 -0
- package/dist/service/cloudfront/cff/sim-cff-arn.d.ts.map +1 -0
- package/dist/service/cloudfront/cff/sim-cff-arn.js +18 -0
- package/dist/service/cloudfront/cff/sim-cff-arn.js.map +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +16 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts.map +1 -1
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +3 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +11 -4
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
- package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.d.ts.map +1 -1
- package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.js +1 -0
- package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.js.map +1 -1
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +3 -0
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts.map +1 -1
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.js +9 -2
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.js.map +1 -1
- package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +3 -0
- package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts.map +1 -1
- package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +6 -0
- package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js.map +1 -1
- package/dist/service/cloudfront/controller/edge/sim-lambda-edge-applicator.d.ts +48 -0
- package/dist/service/cloudfront/controller/edge/sim-lambda-edge-applicator.d.ts.map +1 -0
- package/dist/service/cloudfront/controller/edge/sim-lambda-edge-applicator.js +66 -0
- package/dist/service/cloudfront/controller/edge/sim-lambda-edge-applicator.js.map +1 -0
- package/dist/service/cloudfront/controller/edge/sim-lambda-edge-distribution.d.ts +11 -0
- package/dist/service/cloudfront/controller/edge/sim-lambda-edge-distribution.d.ts.map +1 -0
- package/dist/service/cloudfront/controller/edge/sim-lambda-edge-distribution.js +14 -0
- package/dist/service/cloudfront/controller/edge/sim-lambda-edge-distribution.js.map +1 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +5 -0
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts.map +1 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +16 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +2 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js.map +1 -1
- package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +5 -2
- package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts.map +1 -1
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-body.d.ts +24 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-body.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-body.js +51 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-body.js.map +1 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-event-adapter.d.ts +41 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-event-adapter.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-event-adapter.js +78 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-event-adapter.js.map +1 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-headers.d.ts +20 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-headers.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-headers.js +55 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-headers.js.map +1 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-request-adapter.d.ts +30 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-request-adapter.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-request-adapter.js +90 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-request-adapter.js.map +1 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-response-adapter.d.ts +26 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-response-adapter.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-response-adapter.js +47 -0
- package/dist/service/cloudfront/edge/adapter/sim-lambda-edge-response-adapter.js.map +1 -0
- package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.d.ts +44 -0
- package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.js +89 -0
- package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.js.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-auth-z.d.ts +7 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-auth-z.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-auth-z.js +27 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-auth-z.js.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-checks.d.ts +47 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-checks.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-checks.js +71 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-checks.js.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-validator.d.ts +36 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-validator.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-validator.js +79 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association-validator.js.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association.d.ts +23 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association.js +2 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-association.js.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-associations-configure.d.ts +14 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-associations-configure.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-associations-configure.js +36 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-associations-configure.js.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-function-arn.d.ts +18 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-function-arn.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-function-arn.js +47 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-function-arn.js.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-functions.d.ts +25 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-functions.d.ts.map +1 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-functions.js +2 -0
- package/dist/service/cloudfront/edge/sim-cf-edge-functions.js.map +1 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +13 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -1
- package/dist/service/cloudfront/error/sim-cloudfront.error.js +15 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -1
- package/dist/service/cloudfront/index.d.ts +1 -0
- package/dist/service/cloudfront/index.d.ts.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +10 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront-commands.js +10 -1
- package/dist/service/cloudfront/sim-cloudfront-commands.js.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront.js +3 -8
- package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
- package/dist/service/cloudfront/typings/lambda-at-edge.namespace.d.ts +91 -0
- package/dist/service/cloudfront/typings/lambda-at-edge.namespace.d.ts.map +1 -0
- package/dist/service/cloudfront/typings/lambda-at-edge.namespace.js +2 -0
- package/dist/service/cloudfront/typings/lambda-at-edge.namespace.js.map +1 -0
- package/dist/service/lambda/function/environment/sim-lambda-environment.d.ts +22 -20
- package/dist/service/lambda/function/environment/sim-lambda-environment.d.ts.map +1 -1
- package/dist/service/lambda/function/environment/sim-lambda-environment.js +27 -29
- package/dist/service/lambda/function/environment/sim-lambda-environment.js.map +1 -1
- package/dist/service/lambda/function/environment/sim-lambda-host-backed-variables.d.ts +28 -0
- package/dist/service/lambda/function/environment/sim-lambda-host-backed-variables.d.ts.map +1 -0
- package/dist/service/lambda/function/environment/sim-lambda-host-backed-variables.js +49 -0
- package/dist/service/lambda/function/environment/sim-lambda-host-backed-variables.js.map +1 -0
- package/dist/service/lambda/function/environment/sim-lambda-runtime-variables.d.ts +18 -0
- package/dist/service/lambda/function/environment/sim-lambda-runtime-variables.d.ts.map +1 -0
- package/dist/service/lambda/function/environment/sim-lambda-runtime-variables.js +23 -0
- package/dist/service/lambda/function/environment/sim-lambda-runtime-variables.js.map +1 -0
- package/dist/util/process/sim-process-environment.d.ts +9 -0
- package/dist/util/process/sim-process-environment.d.ts.map +1 -1
- package/dist/util/process/sim-process-environment.js +17 -0
- package/dist/util/process/sim-process-environment.js.map +1 -1
- package/dist/util/throttle/sim-token-bucket.d.ts +32 -0
- package/dist/util/throttle/sim-token-bucket.d.ts.map +1 -0
- package/dist/util/throttle/sim-token-bucket.js +53 -0
- package/dist/util/throttle/sim-token-bucket.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { isSimAwsAccountId, makeSimAwsAccountId, type SimAwsAccountId, simAwsAcc
|
|
|
6
6
|
export { type SimClock, SimFixedClock, SimRealClock, } from "./util/clock/sim-clock.js";
|
|
7
7
|
export { SimControllableClock } from "./util/clock/sim-controllable-clock.js";
|
|
8
8
|
export { SimClockControl } from "./util/clock/sim-clock-control.js";
|
|
9
|
+
export { SimTokenBucket } from "./util/throttle/sim-token-bucket.js";
|
|
9
10
|
export { SimDuration, type SimDurationInput, SimInvalidDuration, } from "./util/clock/sim-duration.js";
|
|
10
11
|
export { SimAwsTimeNotControllable } from "./service/aws/sim-aws-timekeeping.js";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,eAAe,EACpB,eAAe,EACf,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,KAAK,QAAQ,EACb,aAAa,EACb,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,eAAe,EACpB,eAAe,EACf,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,KAAK,QAAQ,EACb,aAAa,EACb,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export { isSimAwsAccountId, makeSimAwsAccountId, simAwsAccountId, SimInvalidAwsA
|
|
|
3
3
|
export { SimFixedClock, SimRealClock, } from "./util/clock/sim-clock.js";
|
|
4
4
|
export { SimControllableClock } from "./util/clock/sim-controllable-clock.js";
|
|
5
5
|
export { SimClockControl } from "./util/clock/sim-clock-control.js";
|
|
6
|
+
export { SimTokenBucket } from "./util/throttle/sim-token-bucket.js";
|
|
6
7
|
export { SimDuration, SimInvalidDuration, } from "./util/clock/sim-duration.js";
|
|
7
8
|
export { SimAwsTimeNotControllable } from "./service/aws/sim-aws-timekeeping.js";
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAIlD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EAEnB,eAAe,EACf,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,aAAa,EACb,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACL,WAAW,EAEX,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAIlD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EAEnB,eAAe,EACf,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,aAAa,EACb,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EACL,WAAW,EAEX,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -3,10 +3,11 @@ import type { SimPayload1Event } from "../../../serve/payload-1/sim-payload-1-ev
|
|
|
3
3
|
import type { SimAws } from "../../aws/sim-aws.js";
|
|
4
4
|
import { type SimRestApiProxyAuthorizerInput } from "./sim-rest-api-proxy-authorizer.js";
|
|
5
5
|
import type { SimRestApi } from "./sim-rest-api.js";
|
|
6
|
+
import { type SimRestApiProxyStageInput } from "./sim-rest-api-proxy-stage.js";
|
|
6
7
|
/**
|
|
7
8
|
* What a test asks for when it wants a REST API that serves something.
|
|
8
9
|
*/
|
|
9
|
-
export interface SimRestApiLambdaProxyInput extends SimRestApiProxyAuthorizerInput {
|
|
10
|
+
export interface SimRestApiLambdaProxyInput extends SimRestApiProxyAuthorizerInput, SimRestApiProxyStageInput {
|
|
10
11
|
readonly apiName: string;
|
|
11
12
|
readonly functionName: string;
|
|
12
13
|
/** The function code every method of the API hands its requests to. */
|
|
@@ -19,10 +20,6 @@ export interface SimRestApiLambdaProxyInput extends SimRestApiProxyAuthorizerInp
|
|
|
19
20
|
readonly resourcePaths: readonly string[];
|
|
20
21
|
/** The HTTP method declared on each of those resources. */
|
|
21
22
|
readonly httpMethod: string;
|
|
22
|
-
/** The stage the API is deployed to, which every request goes through. */
|
|
23
|
-
readonly stageName: string;
|
|
24
|
-
/** The variables that stage carries. */
|
|
25
|
-
readonly stageVariables: Readonly<Record<string, string>>;
|
|
26
23
|
/**
|
|
27
24
|
* Whether the function grants the API permission to invoke it, which it
|
|
28
25
|
* needs before any method serves anything.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-rest-api-lambda-proxy.factory.d.ts","sourceRoot":"","sources":["../../../../src/service/apigateway/api/sim-rest-api-lambda-proxy.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AAG7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,oCAAoC,CAAC;AAK5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-rest-api-lambda-proxy.factory.d.ts","sourceRoot":"","sources":["../../../../src/service/apigateway/api/sim-rest-api-lambda-proxy.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AAG7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,oCAAoC,CAAC;AAK5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,+BAA+B,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,0BACf,SAAQ,8BAA8B,EAAE,yBAAyB;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACvD,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,4BAA4B,oEAkExC,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { DEFAULT_SIM_AWS_ACCOUNT_ID } from "../../aws/sim-aws-account.js";
|
|
|
4
4
|
import { declaredMethods } from "./sim-rest-api-declared-method.js";
|
|
5
5
|
import { simRestApiProxyAuthorization, } from "./sim-rest-api-proxy-authorizer.js";
|
|
6
6
|
import { simRestApiInvokePermission, simRestApiProxyFunction, } from "./sim-rest-api-proxy-function.js";
|
|
7
|
+
import { simRestApiProxyStage, } from "./sim-rest-api-proxy-stage.js";
|
|
7
8
|
/**
|
|
8
9
|
* Creates a REST API that proxies every request to a simulated Lambda
|
|
9
10
|
* function, through the ordinary commands.
|
|
@@ -52,6 +53,7 @@ export const simRestApiLambdaProxyFactory = new AsyncMappedFactory(() => ({
|
|
|
52
53
|
httpMethod: "ANY",
|
|
53
54
|
stageName: "prod",
|
|
54
55
|
stageVariables: {},
|
|
56
|
+
methodSettings: undefined,
|
|
55
57
|
invokePermission: true,
|
|
56
58
|
}), async (input, simAws) => {
|
|
57
59
|
const functionArn = await simRestApiProxyFunction(simAws, input);
|
|
@@ -73,13 +75,7 @@ export const simRestApiLambdaProxyFactory = new AsyncMappedFactory(() => ({
|
|
|
73
75
|
if (input.invokePermission) {
|
|
74
76
|
await simRestApiInvokePermission(simAws, input, restApiId);
|
|
75
77
|
}
|
|
76
|
-
await apiGateway
|
|
77
|
-
input: {
|
|
78
|
-
restApiId,
|
|
79
|
-
stageName: input.stageName,
|
|
80
|
-
variables: input.stageVariables,
|
|
81
|
-
},
|
|
82
|
-
});
|
|
78
|
+
await simRestApiProxyStage(apiGateway, input, restApiId);
|
|
83
79
|
// An id CreateRestApi allocated is an API the store holds, so this is only
|
|
84
80
|
// missing if something is wrong with the simulator itself.
|
|
85
81
|
const restApi = apiGateway.findRestApi(restApiId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-rest-api-lambda-proxy.factory.js","sourceRoot":"","sources":["../../../../src/service/apigateway/api/sim-rest-api-lambda-proxy.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACL,4BAA4B,GAE7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-rest-api-lambda-proxy.factory.js","sourceRoot":"","sources":["../../../../src/service/apigateway/api/sim-rest-api-lambda-proxy.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACL,4BAA4B,GAE7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,oBAAoB,GAErB,MAAM,+BAA+B,CAAC;AA8BvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,kBAAkB,CAKhE,GAAG,EAAE,CAAC,CAAC;IACL,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,QAAQ;IACtB,iBAAiB,EAAE,0BAA0B;IAC7C,OAAO,EAAE,2CAA2C;IACpD,OAAO,EAAE,GAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC5D,iBAAiB,EAAE,SAAS;IAC5B,wBAAwB,EAAE,SAAS;IACnC,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,EAAE;IACvB,wBAAwB,EAAE,qCAAqC;IAC/D,0BAA0B,EAAE,CAAC;IAC7B,0BAA0B,EAAE,IAAI;IAChC,yBAAyB,EAAE,KAAK;IAChC,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,CAAC,WAAW,CAAC;IAC5B,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,SAAS;IACzB,gBAAgB,EAAE,IAAI;CACvB,CAAC,EACF,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IACtB,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC;QAC7C,KAAK,EAAE;YACL,IAAI,EAAE,KAAK,CAAC,OAAO;YACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;SAC3D;KACF,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;IAE7B,MAAM,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,EAAE;QACrD,SAAS;QACT,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW;QACX,aAAa,EAAE,MAAM,4BAA4B,CAC/C,MAAM,EACN,KAAK,EACL,SAAS,CACV;KACF,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,MAAM,0BAA0B,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,oBAAoB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAEzD,2EAA2E;IAC3E,2DAA2D;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAClD,aAAa,CACX,OAAO,EACP,yCAAyC,SAAS,2BAA2B,CAC9E,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { SimApiGateway } from "../sim-api-gateway.js";
|
|
2
|
+
import type { SimRestApiMethodSettingsMap } from "./stage/settings/sim-rest-api-method-settings.type.js";
|
|
3
|
+
export interface SimRestApiProxyStageInput {
|
|
4
|
+
/** The stage the API is deployed to, which every request goes through. */
|
|
5
|
+
readonly stageName: string;
|
|
6
|
+
/** The variables that stage carries. */
|
|
7
|
+
readonly stageVariables: Readonly<Record<string, string>>;
|
|
8
|
+
/**
|
|
9
|
+
* The throttle that stage serves its methods at, keyed as CreateStage keys
|
|
10
|
+
* one.
|
|
11
|
+
*/
|
|
12
|
+
readonly methodSettings: SimRestApiMethodSettingsMap | undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Deploy a test's REST API and publish it to the stage the test asked for.
|
|
16
|
+
*
|
|
17
|
+
* A deployment publishes its own stage in one call, which is the shorter path
|
|
18
|
+
* and the one most of these tests take. A stage carrying method settings is
|
|
19
|
+
* created by CreateStage instead, since a deployment carries none.
|
|
20
|
+
*/
|
|
21
|
+
export declare function simRestApiProxyStage(apiGateway: SimApiGateway, input: SimRestApiProxyStageInput, restApiId: string): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=sim-rest-api-proxy-stage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rest-api-proxy-stage.d.ts","sourceRoot":"","sources":["../../../../src/service/apigateway/api/sim-rest-api-proxy-stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uDAAuD,CAAC;AAEzG,MAAM,WAAW,yBAAyB;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,2BAA2B,GAAG,SAAS,CAAC;CAClE;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,yBAAyB,EAChC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deploy a test's REST API and publish it to the stage the test asked for.
|
|
3
|
+
*
|
|
4
|
+
* A deployment publishes its own stage in one call, which is the shorter path
|
|
5
|
+
* and the one most of these tests take. A stage carrying method settings is
|
|
6
|
+
* created by CreateStage instead, since a deployment carries none.
|
|
7
|
+
*/
|
|
8
|
+
export async function simRestApiProxyStage(apiGateway, input, restApiId) {
|
|
9
|
+
const { methodSettings, stageName, stageVariables } = input;
|
|
10
|
+
const throttled = methodSettings !== undefined;
|
|
11
|
+
const deployment = await apiGateway.createDeployment({
|
|
12
|
+
input: {
|
|
13
|
+
restApiId,
|
|
14
|
+
stageName: throttled ? undefined : stageName,
|
|
15
|
+
variables: throttled ? undefined : stageVariables,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
if (!throttled) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
await apiGateway.createStage({
|
|
22
|
+
input: {
|
|
23
|
+
restApiId,
|
|
24
|
+
stageName,
|
|
25
|
+
deploymentId: deployment.id,
|
|
26
|
+
variables: stageVariables,
|
|
27
|
+
methodSettings,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=sim-rest-api-proxy-stage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rest-api-proxy-stage.js","sourceRoot":"","sources":["../../../../src/service/apigateway/api/sim-rest-api-proxy-stage.ts"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAyB,EACzB,KAAgC,EAChC,SAAiB;IAEjB,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC5D,MAAM,SAAS,GAAG,cAAc,KAAK,SAAS,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC;QACnD,KAAK,EAAE;YACL,SAAS;YACT,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC5C,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc;SAClD;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,MAAM,UAAU,CAAC,WAAW,CAAC;QAC3B,KAAK,EAAE;YACL,SAAS;YACT,SAAS;YACT,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,SAAS,EAAE,cAAc;YACzB,cAAc;SACf;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The throttling half of one method's settings, as an entry of a stage's
|
|
3
|
+
* `methodSettings` carries it.
|
|
4
|
+
*
|
|
5
|
+
* `throttlingRateLimit` is requests per second and `throttlingBurstLimit` is
|
|
6
|
+
* how many requests the method may take at once. The members that say nothing
|
|
7
|
+
* about throttling are not simulated. They are left out of this type too.
|
|
8
|
+
*/
|
|
9
|
+
export interface SimRestApiMethodSettings {
|
|
10
|
+
readonly throttlingRateLimit?: number | undefined;
|
|
11
|
+
readonly throttlingBurstLimit?: number | undefined;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A stage's `methodSettings`, keyed `{resourcePath}/{httpMethod}`, which is
|
|
15
|
+
* how real API Gateway keys them. A resource path of `/` followed by a star,
|
|
16
|
+
* with a star for the method, is the stage default.
|
|
17
|
+
*/
|
|
18
|
+
export type SimRestApiMethodSettingsMap = Readonly<Record<string, SimRestApiMethodSettings>>;
|
|
19
|
+
//# sourceMappingURL=sim-rest-api-method-settings.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rest-api-method-settings.type.d.ts","sourceRoot":"","sources":["../../../../../../src/service/apigateway/api/stage/settings/sim-rest-api-method-settings.type.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpD;AAED;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAChD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rest-api-method-settings.type.js","sourceRoot":"","sources":["../../../../../../src/service/apigateway/api/stage/settings/sim-rest-api-method-settings.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { SimClock } from "../../../../../util/clock/sim-clock.js";
|
|
2
|
+
import type { SimRestApiMethodSettingsMap } from "./sim-rest-api-method-settings.type.js";
|
|
3
|
+
interface SimRestApiStageMethodSettingsProperties {
|
|
4
|
+
readonly clock: SimClock;
|
|
5
|
+
readonly methodSettings?: SimRestApiMethodSettingsMap | undefined;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The method settings one stage was created with, and the token buckets its
|
|
9
|
+
* throttle is evaluated from.
|
|
10
|
+
*
|
|
11
|
+
* A setting is addressed by `{resourcePath}/{httpMethod}`, the way real API
|
|
12
|
+
* Gateway addresses one. The resource path is the template the method is
|
|
13
|
+
* declared at, such as `/orders/{orderId}`, and the HTTP method is the one the
|
|
14
|
+
* method was declared with, so a resource declaring `ANY` is named `ANY` here.
|
|
15
|
+
*
|
|
16
|
+
* Each method gets a bucket of its own. Two methods on the stage default are
|
|
17
|
+
* throttled apart from each other, and a named entry throttles only the method
|
|
18
|
+
* it names. Every client of a method draws on that one bucket. A WAF
|
|
19
|
+
* rate-based rule counts each client separately, which is the other question a
|
|
20
|
+
* stack often asks.
|
|
21
|
+
*
|
|
22
|
+
* A method is throttled only where the settings reaching it name both limits.
|
|
23
|
+
* Naming one alone leaves the other at the account limit on real AWS. Account
|
|
24
|
+
* limits are outside this simulation, and a method configured that way serves
|
|
25
|
+
* unthrottled.
|
|
26
|
+
*/
|
|
27
|
+
export declare class SimRestApiStageMethodSettings {
|
|
28
|
+
#private;
|
|
29
|
+
constructor(properties: SimRestApiStageMethodSettingsProperties);
|
|
30
|
+
/**
|
|
31
|
+
* Take one token for a request to a method, and answer whether the method's
|
|
32
|
+
* throttle had one to give.
|
|
33
|
+
*
|
|
34
|
+
* A method nothing throttles is always admitted, and takes nothing.
|
|
35
|
+
*/
|
|
36
|
+
admits(resourcePath: string, httpMethod: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* What CreateStage and GetStage report of these settings.
|
|
39
|
+
*/
|
|
40
|
+
view(): SimRestApiMethodSettingsMap | undefined;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=sim-rest-api-stage-method-settings.d.ts.map
|
package/dist/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rest-api-stage-method-settings.d.ts","sourceRoot":"","sources":["../../../../../../src/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAEvE,OAAO,KAAK,EAEV,2BAA2B,EAC5B,MAAM,wCAAwC,CAAC;AAQhD,UAAU,uCAAuC;IAC/C,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;CACnE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,6BAA6B;;IAKxC,YAAY,UAAU,EAAE,uCAAuC,EAK9D;IAED;;;;;OAKG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAIxD;IAED;;OAEG;IACH,IAAI,IAAI,2BAA2B,GAAG,SAAS,CAM9C;CA2BF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { SimTokenBucket } from "../../../../../util/throttle/sim-token-bucket.js";
|
|
2
|
+
/**
|
|
3
|
+
* The key every method of the stage falls back to, which real API Gateway
|
|
4
|
+
* writes as a resource path of `/` and a star, then a star for the method.
|
|
5
|
+
*/
|
|
6
|
+
const stageDefaultKey = "/*/*";
|
|
7
|
+
/**
|
|
8
|
+
* The method settings one stage was created with, and the token buckets its
|
|
9
|
+
* throttle is evaluated from.
|
|
10
|
+
*
|
|
11
|
+
* A setting is addressed by `{resourcePath}/{httpMethod}`, the way real API
|
|
12
|
+
* Gateway addresses one. The resource path is the template the method is
|
|
13
|
+
* declared at, such as `/orders/{orderId}`, and the HTTP method is the one the
|
|
14
|
+
* method was declared with, so a resource declaring `ANY` is named `ANY` here.
|
|
15
|
+
*
|
|
16
|
+
* Each method gets a bucket of its own. Two methods on the stage default are
|
|
17
|
+
* throttled apart from each other, and a named entry throttles only the method
|
|
18
|
+
* it names. Every client of a method draws on that one bucket. A WAF
|
|
19
|
+
* rate-based rule counts each client separately, which is the other question a
|
|
20
|
+
* stack often asks.
|
|
21
|
+
*
|
|
22
|
+
* A method is throttled only where the settings reaching it name both limits.
|
|
23
|
+
* Naming one alone leaves the other at the account limit on real AWS. Account
|
|
24
|
+
* limits are outside this simulation, and a method configured that way serves
|
|
25
|
+
* unthrottled.
|
|
26
|
+
*/
|
|
27
|
+
export class SimRestApiStageMethodSettings {
|
|
28
|
+
#clock;
|
|
29
|
+
#methodSettings;
|
|
30
|
+
#buckets = new Map();
|
|
31
|
+
constructor(properties) {
|
|
32
|
+
this.#clock = properties.clock;
|
|
33
|
+
this.#methodSettings = new Map(Object.entries(properties.methodSettings ?? {}));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Take one token for a request to a method, and answer whether the method's
|
|
37
|
+
* throttle had one to give.
|
|
38
|
+
*
|
|
39
|
+
* A method nothing throttles is always admitted, and takes nothing.
|
|
40
|
+
*/
|
|
41
|
+
admits(resourcePath, httpMethod) {
|
|
42
|
+
const bucket = this.#bucketFor(`${resourcePath}/${httpMethod}`);
|
|
43
|
+
return bucket === undefined || bucket.take();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* What CreateStage and GetStage report of these settings.
|
|
47
|
+
*/
|
|
48
|
+
view() {
|
|
49
|
+
if (this.#methodSettings.size === 0) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
return Object.fromEntries(this.#methodSettings);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The bucket a method key draws on, made the first time the method is asked
|
|
56
|
+
* about so that it starts full at the request that found it.
|
|
57
|
+
*/
|
|
58
|
+
#bucketFor(key) {
|
|
59
|
+
if (!this.#buckets.has(key)) {
|
|
60
|
+
this.#buckets.set(key, this.#newBucket(key));
|
|
61
|
+
}
|
|
62
|
+
return this.#buckets.get(key);
|
|
63
|
+
}
|
|
64
|
+
#newBucket(key) {
|
|
65
|
+
const settings = this.#methodSettings.get(key) ??
|
|
66
|
+
this.#methodSettings.get(stageDefaultKey);
|
|
67
|
+
const rateLimit = settings?.throttlingRateLimit;
|
|
68
|
+
const burstLimit = settings?.throttlingBurstLimit;
|
|
69
|
+
if (rateLimit === undefined || burstLimit === undefined) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
return new SimTokenBucket({ clock: this.#clock, rateLimit, burstLimit });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=sim-rest-api-stage-method-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rest-api-stage-method-settings.js","sourceRoot":"","sources":["../../../../../../src/service/apigateway/api/stage/settings/sim-rest-api-stage-method-settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAMlF;;;GAGG;AACH,MAAM,eAAe,GAAG,MAAM,CAAC;AAO/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,6BAA6B;IAC/B,MAAM,CAAW;IACjB,eAAe,CAAgD;IAC/D,QAAQ,GAAG,IAAI,GAAG,EAAsC,CAAC;IAElE,YAAY,UAAmD;QAC7D,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAC5B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,IAAI,EAAE,CAAC,CAChD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,YAAoB,EAAE,UAAkB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC,CAAC;QAEhE,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,MAAM,QAAQ,GACZ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,QAAQ,EAAE,mBAAmB,CAAC;QAChD,MAAM,UAAU,GAAG,QAAQ,EAAE,oBAAoB,CAAC;QAElD,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACxD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { SimRestApiDeploymentId } from "../deployment/sim-rest-api-deployment.js";
|
|
2
|
+
import type { SimRestApiMethodSettingsMap } from "./settings/sim-rest-api-method-settings.type.js";
|
|
3
|
+
import type { SimRestApiStageMethodSettings } from "./settings/sim-rest-api-stage-method-settings.js";
|
|
2
4
|
interface SimRestApiStageProperties {
|
|
3
5
|
readonly stageName: string;
|
|
4
6
|
readonly deploymentId: SimRestApiDeploymentId;
|
|
5
7
|
readonly createdDate: Date;
|
|
6
8
|
readonly variables?: Readonly<Record<string, string>> | undefined;
|
|
7
9
|
readonly description?: string | undefined;
|
|
10
|
+
readonly methodSettings?: SimRestApiStageMethodSettings | undefined;
|
|
8
11
|
}
|
|
9
12
|
/**
|
|
10
13
|
* Minimal structural stage view, as the Create and Get commands return.
|
|
@@ -16,6 +19,7 @@ export interface SimRestApiStageView {
|
|
|
16
19
|
lastUpdatedDate: Date;
|
|
17
20
|
variables?: Record<string, string>;
|
|
18
21
|
description?: string;
|
|
22
|
+
methodSettings?: SimRestApiMethodSettingsMap;
|
|
19
23
|
}
|
|
20
24
|
/**
|
|
21
25
|
* A simulated REST API stage.
|
|
@@ -38,7 +42,22 @@ export declare class SimRestApiStage {
|
|
|
38
42
|
*/
|
|
39
43
|
deploymentId: SimRestApiDeploymentId;
|
|
40
44
|
lastUpdatedDate: Date;
|
|
45
|
+
/**
|
|
46
|
+
* The throttle this stage serves its methods at, or undefined for a stage
|
|
47
|
+
* that was given no method settings and so throttles nothing.
|
|
48
|
+
*
|
|
49
|
+
* A redeployment leaves it alone, the way it leaves the stage name and
|
|
50
|
+
* everything else addressed through the stage alone.
|
|
51
|
+
*/
|
|
52
|
+
readonly methodSettings?: SimRestApiStageMethodSettings | undefined;
|
|
41
53
|
constructor(properties: SimRestApiStageProperties);
|
|
54
|
+
/**
|
|
55
|
+
* Whether this stage's throttle serves one more request to a method now.
|
|
56
|
+
*
|
|
57
|
+
* Asking takes a token. A request that is admitted has already paid for
|
|
58
|
+
* itself, and a refused one has taken nothing.
|
|
59
|
+
*/
|
|
60
|
+
admits(resourcePath: string, httpMethod: string): boolean;
|
|
42
61
|
/**
|
|
43
62
|
* Point this stage at a newer deployment of the same API.
|
|
44
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-rest-api-stage.d.ts","sourceRoot":"","sources":["../../../../../src/service/apigateway/api/stage/sim-rest-api-stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-rest-api-stage.d.ts","sourceRoot":"","sources":["../../../../../src/service/apigateway/api/stage/sim-rest-api-stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AACnG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAC;AAEtG,UAAU,yBAAyB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,IAAI,CAAC;IAClB,eAAe,EAAE,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,2BAA2B,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,WAAW,EAAE,IAAI,CAAC;IAClC,SAAgB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,SAAgB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjD;;;;;;OAMG;IACI,YAAY,EAAE,sBAAsB,CAAC;IACrC,eAAe,EAAE,IAAI,CAAC;IAE7B;;;;;;OAMG;IACH,SAAgB,cAAc,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;IAE3E,YAAY,UAAU,EAAE,yBAAyB,EAQhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAExD;IAED;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,CAG7D;IAED;;;;;OAKG;IACH,IAAI,IAAI,mBAAmB,CAuB1B;CACF"}
|
|
@@ -19,6 +19,14 @@ export class SimRestApiStage {
|
|
|
19
19
|
*/
|
|
20
20
|
deploymentId;
|
|
21
21
|
lastUpdatedDate;
|
|
22
|
+
/**
|
|
23
|
+
* The throttle this stage serves its methods at, or undefined for a stage
|
|
24
|
+
* that was given no method settings and so throttles nothing.
|
|
25
|
+
*
|
|
26
|
+
* A redeployment leaves it alone, the way it leaves the stage name and
|
|
27
|
+
* everything else addressed through the stage alone.
|
|
28
|
+
*/
|
|
29
|
+
methodSettings;
|
|
22
30
|
constructor(properties) {
|
|
23
31
|
this.stageName = properties.stageName;
|
|
24
32
|
this.deploymentId = properties.deploymentId;
|
|
@@ -26,6 +34,16 @@ export class SimRestApiStage {
|
|
|
26
34
|
this.lastUpdatedDate = properties.createdDate;
|
|
27
35
|
this.variables = properties.variables ?? {};
|
|
28
36
|
this.description = properties.description;
|
|
37
|
+
this.methodSettings = properties.methodSettings;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Whether this stage's throttle serves one more request to a method now.
|
|
41
|
+
*
|
|
42
|
+
* Asking takes a token. A request that is admitted has already paid for
|
|
43
|
+
* itself, and a refused one has taken nothing.
|
|
44
|
+
*/
|
|
45
|
+
admits(resourcePath, httpMethod) {
|
|
46
|
+
return this.methodSettings?.admits(resourcePath, httpMethod) ?? true;
|
|
29
47
|
}
|
|
30
48
|
/**
|
|
31
49
|
* Point this stage at a newer deployment of the same API.
|
|
@@ -53,6 +71,10 @@ export class SimRestApiStage {
|
|
|
53
71
|
if (this.description !== undefined) {
|
|
54
72
|
view.description = this.description;
|
|
55
73
|
}
|
|
74
|
+
const methodSettings = this.methodSettings?.view();
|
|
75
|
+
if (methodSettings !== undefined) {
|
|
76
|
+
view.methodSettings = methodSettings;
|
|
77
|
+
}
|
|
56
78
|
return view;
|
|
57
79
|
}
|
|
58
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-rest-api-stage.js","sourceRoot":"","sources":["../../../../../src/service/apigateway/api/stage/sim-rest-api-stage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-rest-api-stage.js","sourceRoot":"","sources":["../../../../../src/service/apigateway/api/stage/sim-rest-api-stage.ts"],"names":[],"mappings":"AA0BA;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IACV,SAAS,CAAS;IAClB,WAAW,CAAO;IAClB,SAAS,CAAmC;IAC5C,WAAW,CAAsB;IAEjD;;;;;;OAMG;IACI,YAAY,CAAyB;IACrC,eAAe,CAAO;IAE7B;;;;;;OAMG;IACa,cAAc,CAA6C;IAE3E,YAAY,UAAqC;QAC/C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,YAAoB,EAAE,UAAkB;QAC7C,OAAO,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,YAAoC,EAAE,EAAQ;QACrD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,IAAI;QACF,MAAM,IAAI,GAAwB;YAChC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACvC,eAAe,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;SAChD,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;QAEnD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
2
|
+
import type { SimCfnTemplateValue } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
|
|
3
|
+
import type { SimRestApiMethodSettingsMap } from "../../api/stage/settings/sim-rest-api-method-settings.type.js";
|
|
4
|
+
interface SimCfnRestApiMethodSettingsPropertiesProperties {
|
|
5
|
+
readonly resource: SimCfnResource;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Reads the `MethodSettings` of an AWS::ApiGateway::Stage.
|
|
9
|
+
*
|
|
10
|
+
* A template writes a list, and each entry names the method it applies to with
|
|
11
|
+
* `ResourcePath` and `HttpMethod`. CreateStage takes the same settings as a
|
|
12
|
+
* map keyed `{resourcePath}/{httpMethod}`, which is what this builds.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SimCfnRestApiMethodSettingsProperties {
|
|
15
|
+
private readonly resource;
|
|
16
|
+
private readonly parser;
|
|
17
|
+
constructor(properties: SimCfnRestApiMethodSettingsPropertiesProperties);
|
|
18
|
+
/**
|
|
19
|
+
* Read the `MethodSettings` list into the map CreateStage takes.
|
|
20
|
+
*/
|
|
21
|
+
methodSettings(value: SimCfnTemplateValue | undefined, label: string): SimRestApiMethodSettingsMap | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* One entry of the list, as the key it applies to and what it sets there.
|
|
24
|
+
*
|
|
25
|
+
* Both halves of the key are required, as they are on real CloudFormation.
|
|
26
|
+
* The stage default is the entry naming the resource path `/` with a star,
|
|
27
|
+
* and the method as a star. A limit the template left out is left out here
|
|
28
|
+
* too, and a stage reports the settings it was written with.
|
|
29
|
+
*/
|
|
30
|
+
private entry;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=sim-cfn-rest-api-method-settings-properties.d.ts.map
|
package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-rest-api-method-settings-properties.d.ts","sourceRoot":"","sources":["../../../../../src/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,KAAK,EAEV,2BAA2B,EAC5B,MAAM,+DAA+D,CAAC;AAevE,UAAU,+CAA+C;IACvD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED;;;;;;GAMG;AACH,qBAAa,qCAAqC;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGpB;IAEH,YAAY,UAAU,EAAE,+CAA+C,EAEtE;IAED;;OAEG;IACH,cAAc,CACZ,KAAK,EAAE,mBAAmB,GAAG,SAAS,EACtC,KAAK,EAAE,MAAM,GACZ,2BAA2B,GAAG,SAAS,CAgBzC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK;CAyCd"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { SimCfnApiGatewayPropertyParser } from "../sim-cfn-api-gateway-property-parser.js";
|
|
2
|
+
/**
|
|
3
|
+
* The properties of a stage's `MethodSettings` entries this simulation
|
|
4
|
+
* deploys. The rest are caching, metrics and logging, so a template carrying
|
|
5
|
+
* one has it recorded against the stage.
|
|
6
|
+
*/
|
|
7
|
+
const simulatedProperties = [
|
|
8
|
+
"ResourcePath",
|
|
9
|
+
"HttpMethod",
|
|
10
|
+
"ThrottlingRateLimit",
|
|
11
|
+
"ThrottlingBurstLimit",
|
|
12
|
+
];
|
|
13
|
+
/**
|
|
14
|
+
* Reads the `MethodSettings` of an AWS::ApiGateway::Stage.
|
|
15
|
+
*
|
|
16
|
+
* A template writes a list, and each entry names the method it applies to with
|
|
17
|
+
* `ResourcePath` and `HttpMethod`. CreateStage takes the same settings as a
|
|
18
|
+
* map keyed `{resourcePath}/{httpMethod}`, which is what this builds.
|
|
19
|
+
*/
|
|
20
|
+
export class SimCfnRestApiMethodSettingsProperties {
|
|
21
|
+
resource;
|
|
22
|
+
parser = new SimCfnApiGatewayPropertyParser({
|
|
23
|
+
resourceType: "AWS::ApiGateway::Stage MethodSettings",
|
|
24
|
+
simulated: simulatedProperties,
|
|
25
|
+
});
|
|
26
|
+
constructor(properties) {
|
|
27
|
+
this.resource = properties.resource;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Read the `MethodSettings` list into the map CreateStage takes.
|
|
31
|
+
*/
|
|
32
|
+
methodSettings(value, label) {
|
|
33
|
+
if (value === undefined) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
if (!Array.isArray(value)) {
|
|
37
|
+
throw this.parser.invalidPropertyError(this.resource, label, "a list of method settings");
|
|
38
|
+
}
|
|
39
|
+
return Object.fromEntries(value.map((entry, index) => this.entry(entry, `${label}[${index}]`)));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* One entry of the list, as the key it applies to and what it sets there.
|
|
43
|
+
*
|
|
44
|
+
* Both halves of the key are required, as they are on real CloudFormation.
|
|
45
|
+
* The stage default is the entry naming the resource path `/` with a star,
|
|
46
|
+
* and the method as a star. A limit the template left out is left out here
|
|
47
|
+
* too, and a stage reports the settings it was written with.
|
|
48
|
+
*/
|
|
49
|
+
entry(value, label) {
|
|
50
|
+
const { resource, parser } = this;
|
|
51
|
+
const record = parser.optionalRecord(resource, value, label) ?? {};
|
|
52
|
+
parser.ignoreUnsimulated(resource, record, `${label}.`);
|
|
53
|
+
const path = `${label}.`;
|
|
54
|
+
const rate = parser.optionalNumber(resource, record["ThrottlingRateLimit"], `${path}ThrottlingRateLimit`);
|
|
55
|
+
const burst = parser.optionalNumber(resource, record["ThrottlingBurstLimit"], `${path}ThrottlingBurstLimit`);
|
|
56
|
+
const key = [
|
|
57
|
+
parser.requiredString(resource, record["ResourcePath"], `${path}ResourcePath`),
|
|
58
|
+
parser.requiredString(resource, record["HttpMethod"], `${path}HttpMethod`),
|
|
59
|
+
].join("/");
|
|
60
|
+
return [
|
|
61
|
+
key,
|
|
62
|
+
{
|
|
63
|
+
...(rate !== undefined && { throttlingRateLimit: rate }),
|
|
64
|
+
...(burst !== undefined && { throttlingBurstLimit: burst }),
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=sim-cfn-rest-api-method-settings-properties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-rest-api-method-settings-properties.js","sourceRoot":"","sources":["../../../../../src/service/apigateway/cfn/stage/sim-cfn-rest-api-method-settings-properties.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAE3F;;;;GAIG;AACH,MAAM,mBAAmB,GAAG;IAC1B,cAAc;IACd,YAAY;IACZ,qBAAqB;IACrB,sBAAsB;CACvB,CAAC;AAMF;;;;;;GAMG;AACH,MAAM,OAAO,qCAAqC;IAC/B,QAAQ,CAAiB;IACzB,MAAM,GAAG,IAAI,8BAA8B,CAAC;QAC3D,YAAY,EAAE,uCAAuC;QACrD,SAAS,EAAE,mBAAmB;KAC/B,CAAC,CAAC;IAEH,YAAY,UAA2D;QACrE,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,KAAsC,EACtC,KAAa;QAEb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACpC,IAAI,CAAC,QAAQ,EACb,KAAK,EACL,2BAA2B,CAC5B,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CACX,KAA0B,EAC1B,KAAa;QAEb,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnE,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;QAExD,MAAM,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAChC,QAAQ,EACR,MAAM,CAAC,qBAAqB,CAAC,EAC7B,GAAG,IAAI,qBAAqB,CAC7B,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CACjC,QAAQ,EACR,MAAM,CAAC,sBAAsB,CAAC,EAC9B,GAAG,IAAI,sBAAsB,CAC9B,CAAC;QACF,MAAM,GAAG,GAAG;YACV,MAAM,CAAC,cAAc,CACnB,QAAQ,EACR,MAAM,CAAC,cAAc,CAAC,EACtB,GAAG,IAAI,cAAc,CACtB;YACD,MAAM,CAAC,cAAc,CACnB,QAAQ,EACR,MAAM,CAAC,YAAY,CAAC,EACpB,GAAG,IAAI,YAAY,CACpB;SACF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEZ,OAAO;YACL,GAAG;YACH;gBACE,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;gBACxD,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;aAC5D;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -13,6 +13,7 @@ export declare class SimCfnRestApiStageProperties {
|
|
|
13
13
|
private readonly resource;
|
|
14
14
|
private readonly properties;
|
|
15
15
|
private readonly propertyParser;
|
|
16
|
+
private readonly methodSettingsParser;
|
|
16
17
|
constructor(properties: SimCfnRestApiStagePropertiesProperties);
|
|
17
18
|
/**
|
|
18
19
|
* The API this stage belongs to, which a template reaches with a `Ref` on
|
|
@@ -30,7 +31,9 @@ export declare class SimCfnRestApiStageProperties {
|
|
|
30
31
|
* `DeploymentId` is the `Ref` to the AWS::ApiGateway::Deployment this stage
|
|
31
32
|
* serves. A deployment id naming nothing on the API is refused by
|
|
32
33
|
* CreateStage, which is what stops a `Ref` to a Resource this simulation
|
|
33
|
-
* skipped from publishing a stage that serves nothing.
|
|
34
|
+
* skipped from publishing a stage that serves nothing. `MethodSettings`
|
|
35
|
+
* arrives holding only its throttling members, so the ones CreateStage would
|
|
36
|
+
* refuse never reach it from a template.
|
|
34
37
|
*/
|
|
35
38
|
createStageInput(): SimCreateStageCommandInput;
|
|
36
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-rest-api-stage-properties.d.ts","sourceRoot":"","sources":["../../../../../src/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-cfn-rest-api-stage-properties.d.ts","sourceRoot":"","sources":["../../../../../src/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAuBvF,UAAU,sCAAsC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;CAChD;AAED;;;GAGG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG5B;IAEH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAwC;IAE7E,YAAY,UAAU,EAAE,sCAAsC,EAQ7D;IAED;;;OAGG;IACH,SAAS,IAAI,MAAM,CAMlB;IAED;;;OAGG;IACH,SAAS,IAAI,MAAM,CAMlB;IAED;;;;;;;;;OASG;IACH,gBAAgB,IAAI,0BAA0B,CAwB7C;CACF"}
|