@kensio/yulin 0.32.0 → 0.33.0
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/docs/tsconfig.tsbuildinfo +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/serve/http/local-server/sim-aws-local-server.d.ts.map +1 -1
- package/dist/serve/http/local-server/sim-aws-local-server.js +4 -2
- package/dist/serve/http/local-server/sim-aws-local-server.js.map +1 -1
- package/dist/serve/http/sim-aws-http.d.ts.map +1 -1
- package/dist/serve/http/sim-aws-http.js +2 -1
- package/dist/serve/http/sim-aws-http.js.map +1 -1
- package/dist/service/acm/certificate/sim-acm-certificate.d.ts.map +1 -1
- package/dist/service/acm/certificate/sim-acm-certificate.js +2 -2
- package/dist/service/acm/certificate/sim-acm-certificate.js.map +1 -1
- package/dist/service/acm/cfn/property/sim-cfn-acm-cert-prop-reader.d.ts.map +1 -1
- package/dist/service/acm/cfn/property/sim-cfn-acm-cert-prop-reader.js +2 -2
- package/dist/service/acm/cfn/property/sim-cfn-acm-cert-prop-reader.js.map +1 -1
- package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.d.ts +31 -0
- package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.d.ts.map +1 -0
- package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.js +41 -0
- package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.js.map +1 -0
- package/dist/service/acm/command/describe-certificate/describe-certificate.handler.d.ts +13 -1
- package/dist/service/acm/command/describe-certificate/describe-certificate.handler.d.ts.map +1 -1
- package/dist/service/acm/command/describe-certificate/describe-certificate.handler.js +12 -2
- package/dist/service/acm/command/describe-certificate/describe-certificate.handler.js.map +1 -1
- package/dist/service/acm/command/list-certificates/list-certificates-authorizer.d.ts +31 -0
- package/dist/service/acm/command/list-certificates/list-certificates-authorizer.d.ts.map +1 -0
- package/dist/service/acm/command/list-certificates/list-certificates-authorizer.js +41 -0
- package/dist/service/acm/command/list-certificates/list-certificates-authorizer.js.map +1 -0
- package/dist/service/acm/command/list-certificates/list-certificates-page-builder.d.ts +82 -0
- package/dist/service/acm/command/list-certificates/list-certificates-page-builder.d.ts.map +1 -0
- package/dist/service/acm/command/list-certificates/list-certificates-page-builder.js +128 -0
- package/dist/service/acm/command/list-certificates/list-certificates-page-builder.js.map +1 -0
- package/dist/service/acm/command/list-certificates/list-certificates.handler.d.ts +21 -7
- package/dist/service/acm/command/list-certificates/list-certificates.handler.d.ts.map +1 -1
- package/dist/service/acm/command/list-certificates/list-certificates.handler.js +22 -50
- package/dist/service/acm/command/list-certificates/list-certificates.handler.js.map +1 -1
- package/dist/service/acm/command/request-certificate/request-certificate-authorizer.d.ts +28 -0
- package/dist/service/acm/command/request-certificate/request-certificate-authorizer.d.ts.map +1 -0
- package/dist/service/acm/command/request-certificate/request-certificate-authorizer.js +38 -0
- package/dist/service/acm/command/request-certificate/request-certificate-authorizer.js.map +1 -0
- package/dist/service/acm/command/request-certificate/request-certificate-validator.d.ts +25 -0
- package/dist/service/acm/command/request-certificate/request-certificate-validator.d.ts.map +1 -0
- package/dist/service/acm/command/request-certificate/request-certificate-validator.js +32 -0
- package/dist/service/acm/command/request-certificate/request-certificate-validator.js.map +1 -0
- package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts +15 -2
- package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts.map +1 -1
- package/dist/service/acm/command/request-certificate/request-certificate.handler.js +19 -10
- package/dist/service/acm/command/request-certificate/request-certificate.handler.js.map +1 -1
- package/dist/service/acm/sim-acm.d.ts +10 -3
- package/dist/service/acm/sim-acm.d.ts.map +1 -1
- package/dist/service/acm/sim-acm.js +13 -7
- package/dist/service/acm/sim-acm.js.map +1 -1
- package/dist/service/aws/caller/sim-aws-account-root-principal.d.ts.map +1 -1
- package/dist/service/aws/caller/sim-aws-account-root-principal.js +1 -3
- package/dist/service/aws/caller/sim-aws-account-root-principal.js.map +1 -1
- package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +40 -0
- package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts.map +1 -0
- package/dist/service/aws/caller/sim-aws-caller-resolver.js +62 -0
- package/dist/service/aws/caller/sim-aws-caller-resolver.js.map +1 -0
- package/dist/service/aws/caller/sim-aws-caller.d.ts +23 -25
- package/dist/service/aws/caller/sim-aws-caller.d.ts.map +1 -1
- package/dist/service/aws/caller/sim-aws-caller.js +1 -6
- package/dist/service/aws/caller/sim-aws-caller.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 +10 -5
- package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +9 -4
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.js +20 -4
- package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.d.ts +7 -2
- package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.js +8 -2
- package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
- package/dist/service/aws/sim-aws-account.d.ts +6 -1
- package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-account.js +7 -1
- package/dist/service/aws/sim-aws-account.js.map +1 -1
- package/dist/service/aws/sim-aws-region.d.ts +1 -1
- package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-region.js +1 -1
- package/dist/service/aws/sim-aws-region.js.map +1 -1
- package/dist/service/aws/sim-aws.d.ts +5 -0
- package/dist/service/aws/sim-aws.d.ts.map +1 -1
- package/dist/service/aws/sim-aws.js +6 -0
- package/dist/service/aws/sim-aws.js.map +1 -1
- package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-matcher.js +1 -1
- package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-matcher.js.map +1 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +1 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js.map +1 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts.map +1 -1
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +9 -6
- package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js.map +1 -1
- package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts.map +1 -1
- package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +4 -1
- package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js.map +1 -1
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.d.ts.map +1 -1
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +5 -2
- package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cff-cfn.factory.js +3 -3
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cff-cfn.factory.js.map +1 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource.js +3 -2
- package/dist/service/cloudformation/resource/sim-cfn-resource.js.map +1 -1
- package/dist/service/cloudformation/sim-cloudformation.d.ts +2 -2
- package/dist/service/cloudformation/sim-cloudformation.d.ts.map +1 -1
- package/dist/service/cloudformation/sim-cloudformation.js +12 -12
- package/dist/service/cloudformation/sim-cloudformation.js.map +1 -1
- package/dist/service/cloudformation/stack/output/sim-cfn-stack-output-resolver.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/output/sim-cfn-stack-output-resolver.js +3 -2
- package/dist/service/cloudformation/stack/output/sim-cfn-stack-output-resolver.js.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +5 -5
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +8 -7
- package/dist/service/cloudformation/stack/sim-cfn-stack.js.map +1 -1
- package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-unresolved-value.d.ts.map +1 -1
- package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-unresolved-value.js +3 -1
- package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-unresolved-value.js.map +1 -1
- package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-variable-resolver.js +4 -2
- package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-variable-resolver.js.map +1 -1
- package/dist/service/cloudformation/template/node/fn/sub/sim-cfn-fn-sub.d.ts.map +1 -1
- package/dist/service/cloudformation/template/node/fn/sub/sim-cfn-fn-sub.js +2 -2
- package/dist/service/cloudformation/template/node/fn/sub/sim-cfn-fn-sub.js.map +1 -1
- package/dist/service/cloudformation/template/node/fn/sub/template/sim-cfn-fn-sub-template.d.ts.map +1 -1
- package/dist/service/cloudformation/template/node/fn/sub/template/sim-cfn-fn-sub-template.js +2 -1
- package/dist/service/cloudformation/template/node/fn/sub/template/sim-cfn-fn-sub-template.js.map +1 -1
- package/dist/service/cloudformation/template/node/sim-cfn-object.d.ts.map +1 -1
- package/dist/service/cloudformation/template/node/sim-cfn-object.js +4 -1
- package/dist/service/cloudformation/template/node/sim-cfn-object.js.map +1 -1
- package/dist/service/cloudformation/template/parse/node/sim-cfn-node-parser.d.ts.map +1 -1
- package/dist/service/cloudformation/template/parse/node/sim-cfn-node-parser.js +2 -1
- package/dist/service/cloudformation/template/parse/node/sim-cfn-node-parser.js.map +1 -1
- package/dist/service/cloudformation/template/sim-cfn-template.d.ts.map +1 -1
- package/dist/service/cloudformation/template/sim-cfn-template.js +2 -1
- package/dist/service/cloudformation/template/sim-cfn-template.js.map +1 -1
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +2 -2
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts.map +1 -1
- package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts.map +1 -1
- package/dist/service/cloudfront/cff/sim-cloudfront-function.js +1 -1
- package/dist/service/cloudfront/cff/sim-cloudfront-function.js.map +1 -1
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.d.ts.map +1 -1
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.js +3 -2
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.js.map +1 -1
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.d.ts.map +1 -1
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js +3 -2
- package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js.map +1 -1
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts.map +1 -1
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +3 -2
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js.map +1 -1
- package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.d.ts +27 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.d.ts.map +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.js +37 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.js.map +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.d.ts +8 -8
- package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.d.ts.map +1 -1
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +8 -1
- 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 +10 -2
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
- package/dist/service/cloudfront/command/create-function/create-function-authorizer.d.ts +26 -0
- package/dist/service/cloudfront/command/create-function/create-function-authorizer.d.ts.map +1 -0
- package/dist/service/cloudfront/command/create-function/create-function-authorizer.js +35 -0
- package/dist/service/cloudfront/command/create-function/create-function-authorizer.js.map +1 -0
- package/dist/service/cloudfront/command/create-function/create-function.cmd.d.ts +2 -2
- package/dist/service/cloudfront/command/create-function/create-function.cmd.d.ts.map +1 -1
- package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts +8 -1
- package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts.map +1 -1
- package/dist/service/cloudfront/command/create-function/create-function.handler.js +12 -3
- package/dist/service/cloudfront/command/create-function/create-function.handler.js.map +1 -1
- package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.d.ts +27 -0
- package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.d.ts.map +1 -0
- package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.js +36 -0
- package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.js.map +1 -0
- package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.d.ts +2 -2
- package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.d.ts.map +1 -1
- package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts +10 -1
- package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts.map +1 -1
- package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js +10 -2
- package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js.map +1 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts.map +1 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.js +2 -1
- package/dist/service/cloudfront/controller/sim-cloudfront-controller.js.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cff-associations-configure.d.ts.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cff-associations-configure.js +19 -16
- package/dist/service/cloudfront/distribution/configurator/sim-cff-associations-configure.js.map +1 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +3 -3
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js.map +1 -1
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +2 -2
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts.map +1 -1
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +3 -3
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js.map +1 -1
- package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.d.ts.map +1 -1
- package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.js +3 -2
- package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.js.map +1 -1
- package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.d.ts.map +1 -1
- package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js +6 -3
- package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js.map +1 -1
- package/dist/service/cloudfront/router/alternate-domain/sim-cf-alternate-domain-router.js +3 -1
- package/dist/service/cloudfront/router/alternate-domain/sim-cf-alternate-domain-router.js.map +1 -1
- package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
- package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +2 -1
- package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront.d.ts +10 -3
- package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
- package/dist/service/cloudfront/sim-cloudfront.js +14 -7
- package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
- package/dist/service/dynamodb/command/list-tables/list-tables.handler.js +1 -1
- package/dist/service/dynamodb/command/list-tables/list-tables.handler.js.map +1 -1
- package/dist/service/dynamodb/item/dynamodb-item-attribute.d.ts.map +1 -1
- package/dist/service/dynamodb/item/dynamodb-item-attribute.js +10 -7
- package/dist/service/dynamodb/item/dynamodb-item-attribute.js.map +1 -1
- package/dist/service/dynamodb/table/dynamodb-key-schema.d.ts +3 -6
- package/dist/service/dynamodb/table/dynamodb-key-schema.d.ts.map +1 -1
- package/dist/service/dynamodb/table/dynamodb-key-schema.js +12 -12
- package/dist/service/dynamodb/table/dynamodb-key-schema.js.map +1 -1
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.d.ts +38 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.d.ts.map +1 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.js +41 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.js.map +1 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.d.ts +54 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.d.ts.map +1 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.js +52 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.js.map +1 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.d.ts +51 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.d.ts.map +1 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.js +74 -0
- package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.js.map +1 -0
- package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +9 -27
- package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts.map +1 -1
- package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +12 -39
- package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js.map +1 -1
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +30 -10
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts.map +1 -1
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +30 -9
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js.map +1 -1
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts +11 -4
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts.map +1 -1
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.d.ts +2 -2
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.d.ts.map +1 -1
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js +12 -1
- package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js.map +1 -1
- package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.d.ts +34 -0
- package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.js +52 -0
- package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.d.ts +14 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js +46 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts +15 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.js +2 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts +27 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js +52 -0
- package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts +13 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js +21 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.d.ts +8 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js +10 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.d.ts +8 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js +13 -0
- package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts +13 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js +21 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.d.ts +8 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js +10 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.d.ts +8 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js +13 -0
- package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.d.ts +8 -0
- package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js +10 -0
- package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.d.ts +8 -0
- package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js +13 -0
- package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts +16 -0
- package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js +20 -0
- package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.d.ts +8 -0
- package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.js +17 -0
- package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.js.map +1 -0
- package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +59 -0
- package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts.map +1 -0
- package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +119 -0
- package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js.map +1 -0
- package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +14 -31
- package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts.map +1 -1
- package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +25 -80
- package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js.map +1 -1
- package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +5 -1
- package/dist/service/iam/authorize/sim-iam-authorizer.d.ts.map +1 -1
- package/dist/service/iam/authorize/sim-iam-authorizer.js +1 -1
- package/dist/service/iam/authorize/sim-iam-authorizer.js.map +1 -1
- package/dist/service/iam/authorize/sim-iam-decision.d.ts +19 -0
- package/dist/service/iam/authorize/sim-iam-decision.d.ts.map +1 -1
- package/dist/service/iam/authorize/sim-iam-decision.js +27 -0
- package/dist/service/iam/authorize/sim-iam-decision.js.map +1 -1
- package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +53 -0
- package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts.map +1 -0
- package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.js +38 -0
- package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.js.map +1 -0
- package/dist/service/iam/authorize/sim-iam-wildcard.d.ts +1 -1
- package/dist/service/iam/authorize/sim-iam-wildcard.js +7 -5
- package/dist/service/iam/authorize/sim-iam-wildcard.js.map +1 -1
- package/dist/service/iam/command/policy/list-policies/list-policies.handler.d.ts +2 -2
- package/dist/service/iam/command/policy/list-policies/list-policies.handler.d.ts.map +1 -1
- package/dist/service/iam/command/policy/list-policies/list-policies.handler.js +10 -10
- package/dist/service/iam/command/policy/list-policies/list-policies.handler.js.map +1 -1
- package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.d.ts.map +1 -1
- package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +2 -2
- package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js.map +1 -1
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.d.ts +12 -0
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.d.ts.map +1 -0
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.js +2 -0
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.js.map +1 -0
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.d.ts +28 -0
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.d.ts.map +1 -0
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +43 -0
- package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js.map +1 -0
- package/dist/service/iam/command/role/create-role/create-role.handler.d.ts +2 -1
- package/dist/service/iam/command/role/create-role/create-role.handler.d.ts.map +1 -1
- package/dist/service/iam/command/role/create-role/create-role.handler.js +6 -3
- package/dist/service/iam/command/role/create-role/create-role.handler.js.map +1 -1
- package/dist/service/iam/command/role/get-role/get-role.cmd.d.ts +2 -1
- package/dist/service/iam/command/role/get-role/get-role.cmd.d.ts.map +1 -1
- package/dist/service/iam/command/role/list-roles/list-roles.handler.d.ts +2 -2
- package/dist/service/iam/command/role/list-roles/list-roles.handler.d.ts.map +1 -1
- package/dist/service/iam/command/role/list-roles/list-roles.handler.js +11 -11
- package/dist/service/iam/command/role/list-roles/list-roles.handler.js.map +1 -1
- package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.d.ts +17 -0
- package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.d.ts.map +1 -0
- package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.js +2 -0
- package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.js.map +1 -0
- package/dist/service/iam/command/user/create-access-key/create-access-key.handler.d.ts +28 -0
- package/dist/service/iam/command/user/create-access-key/create-access-key.handler.d.ts.map +1 -0
- package/dist/service/iam/command/user/create-access-key/create-access-key.handler.js +59 -0
- package/dist/service/iam/command/user/create-access-key/create-access-key.handler.js.map +1 -0
- package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts +25 -0
- package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts.map +1 -0
- package/dist/service/iam/command/user/create-user/create-user-record-factory.js +39 -0
- package/dist/service/iam/command/user/create-user/create-user-record-factory.js.map +1 -0
- package/dist/service/iam/command/user/create-user/create-user.cmd.d.ts +18 -0
- package/dist/service/iam/command/user/create-user/create-user.cmd.d.ts.map +1 -0
- package/dist/service/iam/command/user/create-user/create-user.cmd.js +2 -0
- package/dist/service/iam/command/user/create-user/create-user.cmd.js.map +1 -0
- package/dist/service/iam/command/user/create-user/create-user.handler.d.ts +26 -0
- package/dist/service/iam/command/user/create-user/create-user.handler.d.ts.map +1 -0
- package/dist/service/iam/command/user/create-user/create-user.handler.js +47 -0
- package/dist/service/iam/command/user/create-user/create-user.handler.js.map +1 -0
- package/dist/service/iam/credential/error/sim-iam-credential.error.d.ts +36 -0
- package/dist/service/iam/credential/error/sim-iam-credential.error.d.ts.map +1 -0
- package/dist/service/iam/credential/error/sim-iam-credential.error.js +66 -0
- package/dist/service/iam/credential/error/sim-iam-credential.error.js.map +1 -0
- package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.d.ts +35 -0
- package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.d.ts.map +1 -0
- package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.js +46 -0
- package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.js.map +1 -0
- package/dist/service/iam/credential/session/sim-iam-session-cred-gen.d.ts +21 -0
- package/dist/service/iam/credential/session/sim-iam-session-cred-gen.d.ts.map +1 -0
- package/dist/service/iam/credential/session/sim-iam-session-cred-gen.js +17 -0
- package/dist/service/iam/credential/session/sim-iam-session-cred-gen.js.map +1 -0
- package/dist/service/iam/credential/session/sim-iam-session-manager.d.ts +44 -0
- package/dist/service/iam/credential/session/sim-iam-session-manager.d.ts.map +1 -0
- package/dist/service/iam/credential/session/sim-iam-session-manager.js +62 -0
- package/dist/service/iam/credential/session/sim-iam-session-manager.js.map +1 -0
- package/dist/service/iam/credential/session/sim-iam-session.d.ts +33 -0
- package/dist/service/iam/credential/session/sim-iam-session.d.ts.map +1 -0
- package/dist/service/iam/credential/session/sim-iam-session.js +40 -0
- package/dist/service/iam/credential/session/sim-iam-session.js.map +1 -0
- package/dist/service/iam/credential/sim-aws-credentials.d.ts +21 -0
- package/dist/service/iam/credential/sim-aws-credentials.d.ts.map +1 -0
- package/dist/service/iam/credential/sim-aws-credentials.js +2 -0
- package/dist/service/iam/credential/sim-aws-credentials.js.map +1 -0
- package/dist/service/iam/credential/sim-iam-access-key.d.ts +44 -0
- package/dist/service/iam/credential/sim-iam-access-key.d.ts.map +1 -0
- package/dist/service/iam/credential/sim-iam-access-key.js +57 -0
- package/dist/service/iam/credential/sim-iam-access-key.js.map +1 -0
- package/dist/service/iam/credential/sim-iam-credential-registry.d.ts +21 -0
- package/dist/service/iam/credential/sim-iam-credential-registry.d.ts.map +1 -0
- package/dist/service/iam/credential/sim-iam-credential-registry.js +75 -0
- package/dist/service/iam/credential/sim-iam-credential-registry.js.map +1 -0
- package/dist/service/iam/credential/user/sim-iam-user-credential-generator.d.ts +20 -0
- package/dist/service/iam/credential/user/sim-iam-user-credential-generator.d.ts.map +1 -0
- package/dist/service/iam/credential/user/sim-iam-user-credential-generator.js +16 -0
- package/dist/service/iam/credential/user/sim-iam-user-credential-generator.js.map +1 -0
- package/dist/service/iam/error/sim-iam-caller-identifier.d.ts +25 -0
- package/dist/service/iam/error/sim-iam-caller-identifier.d.ts.map +1 -0
- package/dist/service/iam/error/sim-iam-caller-identifier.js +32 -0
- package/dist/service/iam/error/sim-iam-caller-identifier.js.map +1 -0
- package/dist/service/iam/error/sim-iam.error.d.ts +26 -0
- package/dist/service/iam/error/sim-iam.error.d.ts.map +1 -1
- package/dist/service/iam/error/sim-iam.error.js +25 -0
- package/dist/service/iam/error/sim-iam.error.js.map +1 -1
- package/dist/service/iam/policy/sim-iam-policy.d.ts +4 -2
- package/dist/service/iam/policy/sim-iam-policy.d.ts.map +1 -1
- package/dist/service/iam/registry/sim-iam-account-resolver.d.ts +16 -0
- package/dist/service/iam/registry/sim-iam-account-resolver.d.ts.map +1 -0
- package/dist/service/iam/registry/sim-iam-account-resolver.js +2 -0
- package/dist/service/iam/registry/sim-iam-account-resolver.js.map +1 -0
- package/dist/service/iam/registry/sim-iam-registry.d.ts +19 -73
- package/dist/service/iam/registry/sim-iam-registry.d.ts.map +1 -1
- package/dist/service/iam/registry/sim-iam-registry.js +25 -85
- package/dist/service/iam/registry/sim-iam-registry.js.map +1 -1
- package/dist/service/iam/role/arn/sim-iam-role-arn-parser.d.ts +16 -0
- package/dist/service/iam/role/arn/sim-iam-role-arn-parser.d.ts.map +1 -0
- package/dist/service/iam/role/arn/sim-iam-role-arn-parser.js +41 -0
- package/dist/service/iam/role/arn/sim-iam-role-arn-parser.js.map +1 -0
- package/dist/service/iam/role/arn/sim-iam-role-arn.d.ts +14 -0
- package/dist/service/iam/role/arn/sim-iam-role-arn.d.ts.map +1 -0
- package/dist/service/iam/role/arn/sim-iam-role-arn.js +9 -0
- package/dist/service/iam/role/arn/sim-iam-role-arn.js.map +1 -0
- package/dist/service/iam/role/sim-iam-role.factory.js +1 -1
- package/dist/service/iam/role/sim-iam-role.factory.js.map +1 -1
- package/dist/service/iam/sim-iam.d.ts +38 -5
- package/dist/service/iam/sim-iam.d.ts.map +1 -1
- package/dist/service/iam/sim-iam.js +69 -14
- package/dist/service/iam/sim-iam.js.map +1 -1
- package/dist/service/iam/user/arn/sim-iam-user-arn.d.ts +14 -0
- package/dist/service/iam/user/arn/sim-iam-user-arn.d.ts.map +1 -0
- package/dist/service/iam/user/arn/sim-iam-user-arn.js +8 -0
- package/dist/service/iam/user/arn/sim-iam-user-arn.js.map +1 -0
- package/dist/service/iam/user/sim-iam-user-id.d.ts +6 -0
- package/dist/service/iam/user/sim-iam-user-id.d.ts.map +1 -0
- package/dist/service/iam/user/sim-iam-user-id.js +10 -0
- package/dist/service/iam/user/sim-iam-user-id.js.map +1 -0
- package/dist/service/iam/user/sim-iam-user-path.d.ts +5 -0
- package/dist/service/iam/user/sim-iam-user-path.d.ts.map +1 -0
- package/dist/service/iam/user/sim-iam-user-path.js +13 -0
- package/dist/service/iam/user/sim-iam-user-path.js.map +1 -0
- package/dist/service/iam/user/sim-iam-user.d.ts +31 -0
- package/dist/service/iam/user/sim-iam-user.d.ts.map +1 -0
- package/dist/service/iam/user/sim-iam-user.js +2 -0
- package/dist/service/iam/user/sim-iam-user.js.map +1 -0
- package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.d.ts +22 -0
- package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.d.ts.map +1 -0
- package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.js +85 -0
- package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.js.map +1 -0
- package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.d.ts.map +1 -1
- package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js +2 -1
- package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js.map +1 -1
- package/dist/service/route53/cfn/record-set/build/sim-cfn-r53-record-set-builder.d.ts.map +1 -1
- package/dist/service/route53/cfn/record-set/build/sim-cfn-r53-record-set-builder.js +3 -2
- package/dist/service/route53/cfn/record-set/build/sim-cfn-r53-record-set-builder.js.map +1 -1
- package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-rec-set-zone-resolver.js +3 -1
- package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-rec-set-zone-resolver.js.map +1 -1
- package/dist/service/route53/command/create-hosted-zone/create-hosted-zone.handler.js +3 -1
- package/dist/service/route53/command/create-hosted-zone/create-hosted-zone.handler.js.map +1 -1
- package/dist/service/route53/command/list-hosted-zones-by-name/list-hosted-zones-by-name.js +1 -1
- package/dist/service/route53/command/list-hosted-zones-by-name/list-hosted-zones-by-name.js.map +1 -1
- package/dist/service/route53/hosted-zone/sim-route53-hosted-zone.js +6 -6
- package/dist/service/route53/hosted-zone/sim-route53-hosted-zone.js.map +1 -1
- package/dist/service/s3/bucket/name-availability/sim-s3-bucket-name-availability.d.ts.map +1 -1
- package/dist/service/s3/bucket/name-availability/sim-s3-bucket-name-availability.js +5 -4
- package/dist/service/s3/bucket/name-availability/sim-s3-bucket-name-availability.js.map +1 -1
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -0
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
- package/dist/service/s3/bucket/sim-s3-bucket.js +15 -1
- package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
- package/dist/service/s3/bucket/website/redirect/s3-bucket-website-redirects.d.ts.map +1 -1
- package/dist/service/s3/bucket/website/redirect/s3-bucket-website-redirects.js +6 -3
- package/dist/service/s3/bucket/website/redirect/s3-bucket-website-redirects.js.map +1 -1
- package/dist/service/s3/bucket/website/sim-s3-bucket-website.js +1 -1
- package/dist/service/s3/bucket/website/sim-s3-bucket-website.js.map +1 -1
- package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +8 -1
- package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts.map +1 -1
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js +23 -5
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -1
- package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +24 -0
- package/dist/service/s3/command/get-object/get-object-authorizer.d.ts.map +1 -0
- package/dist/service/s3/command/get-object/get-object-authorizer.js +44 -0
- package/dist/service/s3/command/get-object/get-object-authorizer.js.map +1 -0
- package/dist/service/s3/command/get-object/get-object-loader.d.ts +26 -0
- package/dist/service/s3/command/get-object/get-object-loader.d.ts.map +1 -0
- package/dist/service/s3/command/get-object/get-object-loader.js +36 -0
- package/dist/service/s3/command/get-object/get-object-loader.js.map +1 -0
- package/dist/service/s3/command/get-object/get-object.handler.d.ts +18 -2
- package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -1
- package/dist/service/s3/command/get-object/get-object.handler.js +21 -15
- package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
- package/dist/service/s3/command/list-buckets/list-buckets-authorizer.d.ts +34 -0
- package/dist/service/s3/command/list-buckets/list-buckets-authorizer.d.ts.map +1 -0
- package/dist/service/s3/command/list-buckets/list-buckets-authorizer.js +44 -0
- package/dist/service/s3/command/list-buckets/list-buckets-authorizer.js.map +1 -0
- package/dist/service/s3/command/list-buckets/list-buckets-page-builder.d.ts +65 -0
- package/dist/service/s3/command/list-buckets/list-buckets-page-builder.d.ts.map +1 -0
- package/dist/service/s3/command/list-buckets/list-buckets-page-builder.js +94 -0
- package/dist/service/s3/command/list-buckets/list-buckets-page-builder.js.map +1 -0
- package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts +16 -4
- package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts.map +1 -1
- package/dist/service/s3/command/list-buckets/list-buckets.handler.js +18 -34
- package/dist/service/s3/command/list-buckets/list-buckets.handler.js.map +1 -1
- package/dist/service/s3/command/list-objects/list-objects-authorizer.d.ts +35 -0
- package/dist/service/s3/command/list-objects/list-objects-authorizer.d.ts.map +1 -0
- package/dist/service/s3/command/list-objects/list-objects-authorizer.js +53 -0
- package/dist/service/s3/command/list-objects/list-objects-authorizer.js.map +1 -0
- package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +30 -0
- package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts.map +1 -0
- package/dist/service/s3/command/list-objects/list-objects-page-builder.js +43 -0
- package/dist/service/s3/command/list-objects/list-objects-page-builder.js.map +1 -0
- package/dist/service/s3/command/list-objects/list-objects.handler.d.ts +14 -2
- package/dist/service/s3/command/list-objects/list-objects.handler.d.ts.map +1 -1
- package/dist/service/s3/command/list-objects/list-objects.handler.js +26 -27
- package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -1
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.d.ts +20 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.d.ts.map +1 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.js +30 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.js.map +1 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.d.ts +21 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.d.ts.map +1 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.js +2 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.js.map +1 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts +30 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts.map +1 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +43 -0
- package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js.map +1 -0
- package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.d.ts +37 -0
- package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.d.ts.map +1 -0
- package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.js +47 -0
- package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.js.map +1 -0
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts +13 -1
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts.map +1 -1
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js +12 -2
- package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js.map +1 -1
- package/dist/service/s3/command/put-object/put-object-authorizer.d.ts +24 -0
- package/dist/service/s3/command/put-object/put-object-authorizer.d.ts.map +1 -0
- package/dist/service/s3/command/put-object/put-object-authorizer.js +44 -0
- package/dist/service/s3/command/put-object/put-object-authorizer.js.map +1 -0
- package/dist/service/s3/command/put-object/put-object-builder.d.ts +45 -0
- package/dist/service/s3/command/put-object/put-object-builder.d.ts.map +1 -0
- package/dist/service/s3/command/put-object/put-object-builder.js +70 -0
- package/dist/service/s3/command/put-object/put-object-builder.js.map +1 -0
- package/dist/service/s3/command/put-object/put-object.handler.d.ts +19 -4
- package/dist/service/s3/command/put-object/put-object.handler.d.ts.map +1 -1
- package/dist/service/s3/command/put-object/put-object.handler.js +19 -28
- package/dist/service/s3/command/put-object/put-object.handler.js.map +1 -1
- package/dist/service/s3/serve/sim-s3-get-obj-controller.js +1 -1
- package/dist/service/s3/serve/sim-s3-get-obj-controller.js.map +1 -1
- package/dist/service/s3/sim-s3.d.ts +18 -6
- package/dist/service/s3/sim-s3.d.ts.map +1 -1
- package/dist/service/s3/sim-s3.js +34 -13
- package/dist/service/s3/sim-s3.js.map +1 -1
- package/dist/service/s3/storage/s3-memory-storage.js +1 -1
- package/dist/service/s3/storage/s3-memory-storage.js.map +1 -1
- package/dist/service/sts/assume/sim-sts-assume-role-request-parser.d.ts +57 -0
- package/dist/service/sts/assume/sim-sts-assume-role-request-parser.d.ts.map +1 -0
- package/dist/service/sts/assume/sim-sts-assume-role-request-parser.js +79 -0
- package/dist/service/sts/assume/sim-sts-assume-role-request-parser.js.map +1 -0
- package/dist/service/sts/assume/sim-sts-assume-role-session-creator.d.ts +52 -0
- package/dist/service/sts/assume/sim-sts-assume-role-session-creator.d.ts.map +1 -0
- package/dist/service/sts/assume/sim-sts-assume-role-session-creator.js +64 -0
- package/dist/service/sts/assume/sim-sts-assume-role-session-creator.js.map +1 -0
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts +57 -0
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts.map +1 -0
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +68 -0
- package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js.map +1 -0
- package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.d.ts +45 -0
- package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.d.ts.map +1 -0
- package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.js +48 -0
- package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.js.map +1 -0
- package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +48 -0
- package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts.map +1 -0
- package/dist/service/sts/auth-z/assume-role-target-auth-z.js +50 -0
- package/dist/service/sts/auth-z/assume-role-target-auth-z.js.map +1 -0
- package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.d.ts +57 -0
- package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.d.ts.map +1 -0
- package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.js +85 -0
- package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.js.map +1 -0
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +45 -0
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts.map +1 -0
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +64 -0
- package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js.map +1 -0
- package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.d.ts +44 -0
- package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.d.ts.map +1 -0
- package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.js +62 -0
- package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.js.map +1 -0
- package/dist/service/sts/command/assume-role/assume-role.cmd.d.ts +45 -0
- package/dist/service/sts/command/assume-role/assume-role.cmd.d.ts.map +1 -0
- package/dist/service/sts/command/assume-role/assume-role.cmd.js +2 -0
- package/dist/service/sts/command/assume-role/assume-role.cmd.js.map +1 -0
- package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +40 -0
- package/dist/service/sts/command/assume-role/assume-role.handler.d.ts.map +1 -0
- package/dist/service/sts/command/assume-role/assume-role.handler.js +69 -0
- package/dist/service/sts/command/assume-role/assume-role.handler.js.map +1 -0
- package/dist/service/sts/sim-sts.d.ts +31 -0
- package/dist/service/sts/sim-sts.d.ts.map +1 -0
- package/dist/service/sts/sim-sts.js +34 -0
- package/dist/service/sts/sim-sts.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/util/background/background.d.ts.map +1 -1
- package/dist/util/background/background.js +2 -0
- package/dist/util/background/background.js.map +1 -1
- package/dist/util/background/non-deterministic-background.d.ts.map +1 -1
- package/dist/util/background/non-deterministic-background.js +1 -0
- package/dist/util/background/non-deterministic-background.js.map +1 -1
- package/package.json +23 -22
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
2
|
+
import type { SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
3
|
+
interface ListBucketsAuthorizerProps {
|
|
4
|
+
readonly iam: SimIamInterServiceAuthZ;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Applies IAM authorization to an S3 ListBuckets request.
|
|
8
|
+
*
|
|
9
|
+
* AWS maps the ListBuckets API operation to the S3:ListAllMyBuckets IAM
|
|
10
|
+
* action. Despite the action name, this permission does not use individual
|
|
11
|
+
* Bucket ARNs. AWS documents it as an account-level listing permission whose
|
|
12
|
+
* resource is "*".
|
|
13
|
+
*
|
|
14
|
+
* Authorization therefore applies to the complete operation. An allowed caller
|
|
15
|
+
* receives the account's Bucket listing, subject to request pagination and
|
|
16
|
+
* prefix filtering. A denied caller receives AccessDenied rather than a
|
|
17
|
+
* filtered or empty result.
|
|
18
|
+
*/
|
|
19
|
+
export declare class ListBucketsAuthorizer {
|
|
20
|
+
private static readonly action;
|
|
21
|
+
private static readonly resource;
|
|
22
|
+
private readonly iam;
|
|
23
|
+
constructor(props: ListBucketsAuthorizerProps);
|
|
24
|
+
/**
|
|
25
|
+
* Ensure the caller may list the simulated Account's S3 Buckets.
|
|
26
|
+
*
|
|
27
|
+
* The caller is passed through unchanged so sim IAM can distinguish an
|
|
28
|
+
* omitted caller, which defaults to Account root, from an explicit anonymous
|
|
29
|
+
* caller, which has no identity policy permissions.
|
|
30
|
+
*/
|
|
31
|
+
authorize(caller?: SimAwsCaller): void;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=list-buckets-authorizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-buckets-authorizer.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets-authorizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AAGtG,UAAU,0BAA0B;IAClC,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAyB;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAO;IAEvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAE9C,YAAY,KAAK,EAAE,0BAA0B,EAE5C;IAED;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAcrC;CACF"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { SimIamAccessDenied } from "../../../iam/error/sim-iam.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* Applies IAM authorization to an S3 ListBuckets request.
|
|
4
|
+
*
|
|
5
|
+
* AWS maps the ListBuckets API operation to the S3:ListAllMyBuckets IAM
|
|
6
|
+
* action. Despite the action name, this permission does not use individual
|
|
7
|
+
* Bucket ARNs. AWS documents it as an account-level listing permission whose
|
|
8
|
+
* resource is "*".
|
|
9
|
+
*
|
|
10
|
+
* Authorization therefore applies to the complete operation. An allowed caller
|
|
11
|
+
* receives the account's Bucket listing, subject to request pagination and
|
|
12
|
+
* prefix filtering. A denied caller receives AccessDenied rather than a
|
|
13
|
+
* filtered or empty result.
|
|
14
|
+
*/
|
|
15
|
+
export class ListBucketsAuthorizer {
|
|
16
|
+
static action = "s3:ListAllMyBuckets";
|
|
17
|
+
static resource = "*";
|
|
18
|
+
iam;
|
|
19
|
+
constructor(props) {
|
|
20
|
+
this.iam = props.iam;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Ensure the caller may list the simulated Account's S3 Buckets.
|
|
24
|
+
*
|
|
25
|
+
* The caller is passed through unchanged so sim IAM can distinguish an
|
|
26
|
+
* omitted caller, which defaults to Account root, from an explicit anonymous
|
|
27
|
+
* caller, which has no identity policy permissions.
|
|
28
|
+
*/
|
|
29
|
+
authorize(caller) {
|
|
30
|
+
const decision = this.iam.authorize({
|
|
31
|
+
action: ListBucketsAuthorizer.action,
|
|
32
|
+
resource: ListBucketsAuthorizer.resource,
|
|
33
|
+
caller,
|
|
34
|
+
});
|
|
35
|
+
if (decision.isDenied) {
|
|
36
|
+
throw new SimIamAccessDenied({
|
|
37
|
+
principal: decision.caller.principal,
|
|
38
|
+
action: ListBucketsAuthorizer.action,
|
|
39
|
+
resource: ListBucketsAuthorizer.resource,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=list-buckets-authorizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-buckets-authorizer.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets-authorizer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAMzE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAU,MAAM,GAAG,qBAAqB,CAAC;IAC/C,MAAM,CAAU,QAAQ,GAAG,GAAG,CAAC;IAEtB,GAAG,CAA0B;IAE9C,YAAY,KAAiC;QAC3C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,MAAqB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAClC,MAAM,EAAE,qBAAqB,CAAC,MAAM;YACpC,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;YACxC,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;gBACpC,MAAM,EAAE,qBAAqB,CAAC,MAAM;gBACpC,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;aACzC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { SimListBucketsCommandInput, SimListBucketsCommandOutput } from "./list-buckets.cmd.js";
|
|
2
|
+
import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
|
|
3
|
+
interface ListBucketsPageBuilderProps {
|
|
4
|
+
readonly buckets: ReadonlyMap<SimS3BucketName, SimS3Bucket>;
|
|
5
|
+
}
|
|
6
|
+
type ListBucketsPage = Omit<SimListBucketsCommandOutput, "$metadata">;
|
|
7
|
+
/**
|
|
8
|
+
* Builds one page of an S3 ListBuckets response.
|
|
9
|
+
*
|
|
10
|
+
* IAM authorization remains in the command handler because it controls whether
|
|
11
|
+
* Bucket state may be read at all. This class handles the data operations that
|
|
12
|
+
* happen after authorization: stable ordering, prefix filtering, continuation
|
|
13
|
+
* token interpretation, page selection, and generation of the next token.
|
|
14
|
+
*
|
|
15
|
+
* Continuation tokens encode the final Bucket name from the previous page. Since
|
|
16
|
+
* Bucket names are globally unique and the collection is sorted by name, that
|
|
17
|
+
* name provides a stable position from which to continue. If the referenced
|
|
18
|
+
* Bucket is absent, listing restarts at the beginning rather than producing a
|
|
19
|
+
* negative array index.
|
|
20
|
+
*/
|
|
21
|
+
export declare class ListBucketsPageBuilder {
|
|
22
|
+
private readonly buckets;
|
|
23
|
+
constructor(props: ListBucketsPageBuilderProps);
|
|
24
|
+
/**
|
|
25
|
+
* Build the response fields for one ListBuckets page.
|
|
26
|
+
*
|
|
27
|
+
* Response metadata is owned by the command handler, so it is not included in
|
|
28
|
+
* this result. Keeping protocol metadata outside this class lets the pagination
|
|
29
|
+
* logic remain focused on Bucket collection state and request parameters.
|
|
30
|
+
*/
|
|
31
|
+
build(input: SimListBucketsCommandInput): ListBucketsPage;
|
|
32
|
+
/**
|
|
33
|
+
* Return Buckets in the name order used by continuation tokens.
|
|
34
|
+
*
|
|
35
|
+
* A new array is sorted so listing cannot change insertion order in the
|
|
36
|
+
* service's Bucket map. Prefix filtering happens after sorting, preserving the
|
|
37
|
+
* same relative order for filtered and unfiltered requests.
|
|
38
|
+
*/
|
|
39
|
+
private matchingBuckets;
|
|
40
|
+
/**
|
|
41
|
+
* Find the first Bucket to include after a continuation token.
|
|
42
|
+
*
|
|
43
|
+
* The token identifies the last Bucket returned by the preceding page, so the
|
|
44
|
+
* next page starts one position later. A missing or unknown token position maps
|
|
45
|
+
* to index zero, matching the previous handler behavior.
|
|
46
|
+
*/
|
|
47
|
+
private startIndex;
|
|
48
|
+
/**
|
|
49
|
+
* Create a token only when another Bucket remains after this page.
|
|
50
|
+
*
|
|
51
|
+
* Empty pages have no final Bucket from which to form a token. A final page
|
|
52
|
+
* also omits the token so callers can detect completion.
|
|
53
|
+
*/
|
|
54
|
+
private nextContinuationToken;
|
|
55
|
+
/**
|
|
56
|
+
* Encode a Bucket name as an opaque URL-safe continuation token.
|
|
57
|
+
*/
|
|
58
|
+
private makeContinuationToken;
|
|
59
|
+
/**
|
|
60
|
+
* Recover the Bucket name represented by a continuation token.
|
|
61
|
+
*/
|
|
62
|
+
private parseContinuationToken;
|
|
63
|
+
}
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=list-buckets-page-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-buckets-page-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets-page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAEvC,UAAU,2BAA2B;IACnC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;CAC7D;AAED,KAAK,eAAe,GAAG,IAAI,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAEpE,YAAY,KAAK,EAAE,2BAA2B,EAE7C;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,0BAA0B,GAAG,eAAe,CAoBxD;IAED;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IASvB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAgBlB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAG/B"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds one page of an S3 ListBuckets response.
|
|
3
|
+
*
|
|
4
|
+
* IAM authorization remains in the command handler because it controls whether
|
|
5
|
+
* Bucket state may be read at all. This class handles the data operations that
|
|
6
|
+
* happen after authorization: stable ordering, prefix filtering, continuation
|
|
7
|
+
* token interpretation, page selection, and generation of the next token.
|
|
8
|
+
*
|
|
9
|
+
* Continuation tokens encode the final Bucket name from the previous page. Since
|
|
10
|
+
* Bucket names are globally unique and the collection is sorted by name, that
|
|
11
|
+
* name provides a stable position from which to continue. If the referenced
|
|
12
|
+
* Bucket is absent, listing restarts at the beginning rather than producing a
|
|
13
|
+
* negative array index.
|
|
14
|
+
*/
|
|
15
|
+
export class ListBucketsPageBuilder {
|
|
16
|
+
buckets;
|
|
17
|
+
constructor(props) {
|
|
18
|
+
this.buckets = props.buckets;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Build the response fields for one ListBuckets page.
|
|
22
|
+
*
|
|
23
|
+
* Response metadata is owned by the command handler, so it is not included in
|
|
24
|
+
* this result. Keeping protocol metadata outside this class lets the pagination
|
|
25
|
+
* logic remain focused on Bucket collection state and request parameters.
|
|
26
|
+
*/
|
|
27
|
+
build(input) {
|
|
28
|
+
const matchingBuckets = this.matchingBuckets(input.Prefix);
|
|
29
|
+
const startIndex = this.startIndex(matchingBuckets, input.ContinuationToken);
|
|
30
|
+
const maxBuckets = input.MaxBuckets ?? 10_000;
|
|
31
|
+
const page = matchingBuckets.slice(startIndex, startIndex + maxBuckets);
|
|
32
|
+
return {
|
|
33
|
+
Buckets: page.map((bucket) => ({
|
|
34
|
+
Name: bucket.bucketName,
|
|
35
|
+
})),
|
|
36
|
+
ContinuationToken: this.nextContinuationToken(page, startIndex, matchingBuckets.length),
|
|
37
|
+
Prefix: input.Prefix,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Return Buckets in the name order used by continuation tokens.
|
|
42
|
+
*
|
|
43
|
+
* A new array is sorted so listing cannot change insertion order in the
|
|
44
|
+
* service's Bucket map. Prefix filtering happens after sorting, preserving the
|
|
45
|
+
* same relative order for filtered and unfiltered requests.
|
|
46
|
+
*/
|
|
47
|
+
matchingBuckets(prefix) {
|
|
48
|
+
const buckets = this.buckets.values().toArray();
|
|
49
|
+
buckets.sort((a, b) => a.bucketName.localeCompare(b.bucketName));
|
|
50
|
+
return prefix === undefined
|
|
51
|
+
? buckets
|
|
52
|
+
: buckets.filter((bucket) => bucket.bucketName.startsWith(prefix));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Find the first Bucket to include after a continuation token.
|
|
56
|
+
*
|
|
57
|
+
* The token identifies the last Bucket returned by the preceding page, so the
|
|
58
|
+
* next page starts one position later. A missing or unknown token position maps
|
|
59
|
+
* to index zero, matching the previous handler behavior.
|
|
60
|
+
*/
|
|
61
|
+
startIndex(buckets, continuationToken) {
|
|
62
|
+
if (continuationToken === undefined) {
|
|
63
|
+
return 0;
|
|
64
|
+
}
|
|
65
|
+
const startBucketName = this.parseContinuationToken(continuationToken);
|
|
66
|
+
return Math.max(0, buckets.findIndex((bucket) => bucket.bucketName === startBucketName) + 1);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Create a token only when another Bucket remains after this page.
|
|
70
|
+
*
|
|
71
|
+
* Empty pages have no final Bucket from which to form a token. A final page
|
|
72
|
+
* also omits the token so callers can detect completion.
|
|
73
|
+
*/
|
|
74
|
+
nextContinuationToken(page, startIndex, matchingBucketCount) {
|
|
75
|
+
const lastBucket = page.at(-1);
|
|
76
|
+
const hasMoreBuckets = startIndex + page.length < matchingBucketCount;
|
|
77
|
+
return hasMoreBuckets && lastBucket !== undefined
|
|
78
|
+
? this.makeContinuationToken(lastBucket.bucketName)
|
|
79
|
+
: undefined;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Encode a Bucket name as an opaque URL-safe continuation token.
|
|
83
|
+
*/
|
|
84
|
+
makeContinuationToken(bucketName) {
|
|
85
|
+
return Buffer.from(bucketName, "utf8").toString("base64url");
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Recover the Bucket name represented by a continuation token.
|
|
89
|
+
*/
|
|
90
|
+
parseContinuationToken(token) {
|
|
91
|
+
return Buffer.from(token, "base64url").toString("utf8");
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=list-buckets-page-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-buckets-page-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets-page-builder.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,sBAAsB;IAChB,OAAO,CAA4C;IAEpE,YAAY,KAAkC;QAC5C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAiC;QACrC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAChC,eAAe,EACf,KAAK,CAAC,iBAAiB,CACxB,CAAC;QACF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC;QAC9C,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;QAExE,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,MAAM,CAAC,UAAU;aACxB,CAAC,CAAC;YACH,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,CAC3C,IAAI,EACJ,UAAU,EACV,eAAe,CAAC,MAAM,CACvB;YACD,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CAAC,MAAe;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEjE,OAAO,MAAM,KAAK,SAAS;YACzB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACK,UAAU,CAChB,OAA+B,EAC/B,iBAA0B;QAE1B,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,EACD,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,eAAe,CAAC,GAAG,CAAC,CACzE,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,qBAAqB,CAC3B,IAA4B,EAC5B,UAAkB,EAClB,mBAA2B;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,cAAc,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC;QAEtE,OAAO,cAAc,IAAI,UAAU,KAAK,SAAS;YAC/C,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,UAAU,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,UAAkB;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,KAAa;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
|
@@ -2,25 +2,37 @@ import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
|
2
2
|
import type { SimListBucketsCommand, SimListBucketsCommandOutput } from "./list-buckets.cmd.js";
|
|
3
3
|
import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
|
|
4
4
|
import { type BackgroundScheduler } from "../../../../util/background/background.js";
|
|
5
|
+
import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
6
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
5
7
|
interface ListBucketsCommandHandlerProps {
|
|
6
8
|
readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
|
|
9
|
+
readonly iam?: SimIamInterServiceAuthZ;
|
|
7
10
|
readonly background?: BackgroundScheduler;
|
|
8
11
|
}
|
|
12
|
+
interface ListBucketsCommandHandlerOptions {
|
|
13
|
+
readonly caller?: SimAwsCaller;
|
|
14
|
+
}
|
|
9
15
|
/**
|
|
10
16
|
* Simulated S3 ListBucketsCommand handler.
|
|
11
17
|
*
|
|
12
18
|
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/ListBucketsCommand/
|
|
13
19
|
*/
|
|
14
20
|
export declare class ListBucketsCommandHandler implements CommandHandler<SimListBucketsCommand, SimListBucketsCommandOutput> {
|
|
15
|
-
private readonly
|
|
21
|
+
private readonly authorizer;
|
|
22
|
+
private readonly pageBuilder;
|
|
16
23
|
private readonly background;
|
|
17
24
|
constructor(props: ListBucketsCommandHandlerProps);
|
|
18
25
|
/**
|
|
19
26
|
* Simulate listing S3 Buckets.
|
|
27
|
+
*
|
|
28
|
+
* Authorization happens before the page builder reads Bucket state. AWS treats
|
|
29
|
+
* ListBuckets as one account-level operation and does not return a partial
|
|
30
|
+
* result containing only Bucket ARNs matched by the caller's policies.
|
|
31
|
+
*
|
|
32
|
+
* Once authorized, page construction is delegated so this handler remains
|
|
33
|
+
* focused on coordinating request-level concerns.
|
|
20
34
|
*/
|
|
21
|
-
handle(cmd: SimListBucketsCommand): Promise<SimListBucketsCommandOutput>;
|
|
22
|
-
private static makeContinuationToken;
|
|
23
|
-
private static parseContinuationToken;
|
|
35
|
+
handle(cmd: SimListBucketsCommand, opts?: ListBucketsCommandHandlerOptions): Promise<SimListBucketsCommandOutput>;
|
|
24
36
|
}
|
|
25
37
|
export {};
|
|
26
38
|
//# sourceMappingURL=list-buckets.handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-buckets.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"list-buckets.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAI1E,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,UAAU,gCAAgC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,qBAAqB,EACrB,2BAA2B,CAC5B;IACC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,KAAK,EAAE,8BAA8B,EAShD;IAED;;;;;;;;;OASG;IACG,MAAM,CACV,GAAG,EAAE,qBAAqB,EAC1B,IAAI,CAAC,EAAE,gCAAgC,GACtC,OAAO,CAAC,2BAA2B,CAAC,CAUtC;CACF"}
|
|
@@ -1,56 +1,40 @@
|
|
|
1
1
|
import { BackgroundTasks, } from "../../../../util/background/background.js";
|
|
2
|
+
import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
3
|
+
import { ListBucketsAuthorizer } from "./list-buckets-authorizer.js";
|
|
4
|
+
import { ListBucketsPageBuilder } from "./list-buckets-page-builder.js";
|
|
2
5
|
/**
|
|
3
6
|
* Simulated S3 ListBucketsCommand handler.
|
|
4
7
|
*
|
|
5
8
|
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/ListBucketsCommand/
|
|
6
9
|
*/
|
|
7
10
|
export class ListBucketsCommandHandler {
|
|
8
|
-
|
|
11
|
+
authorizer;
|
|
12
|
+
pageBuilder;
|
|
9
13
|
background;
|
|
10
14
|
constructor(props) {
|
|
11
|
-
const { buckets, background = new BackgroundTasks() } = props;
|
|
12
|
-
this.
|
|
15
|
+
const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = props;
|
|
16
|
+
this.authorizer = new ListBucketsAuthorizer({ iam });
|
|
17
|
+
this.pageBuilder = new ListBucketsPageBuilder({ buckets });
|
|
13
18
|
this.background = background;
|
|
14
19
|
}
|
|
15
20
|
/**
|
|
16
21
|
* Simulate listing S3 Buckets.
|
|
22
|
+
*
|
|
23
|
+
* Authorization happens before the page builder reads Bucket state. AWS treats
|
|
24
|
+
* ListBuckets as one account-level operation and does not return a partial
|
|
25
|
+
* result containing only Bucket ARNs matched by the caller's policies.
|
|
26
|
+
*
|
|
27
|
+
* Once authorized, page construction is delegated so this handler remains
|
|
28
|
+
* focused on coordinating request-level concerns.
|
|
17
29
|
*/
|
|
18
|
-
async handle(cmd) {
|
|
30
|
+
async handle(cmd, opts) {
|
|
19
31
|
// Allow for potential non-deterministic sequencing of async events.
|
|
20
32
|
await this.background.sequence();
|
|
21
|
-
|
|
22
|
-
buckets.sort((a, b) => a.bucketName.localeCompare(b.bucketName));
|
|
23
|
-
const prefix = cmd.input.Prefix;
|
|
24
|
-
const continuationToken = cmd.input.ContinuationToken;
|
|
25
|
-
const maxBuckets = cmd.input.MaxBuckets ?? 10_000;
|
|
26
|
-
const matchingBuckets = prefix === undefined
|
|
27
|
-
? buckets
|
|
28
|
-
: buckets.filter((bucket) => bucket.bucketName.startsWith(prefix));
|
|
29
|
-
const startBucketName = continuationToken === undefined
|
|
30
|
-
? undefined
|
|
31
|
-
: ListBucketsCommandHandler.parseContinuationToken(continuationToken);
|
|
32
|
-
const startIndex = startBucketName === undefined
|
|
33
|
-
? 0
|
|
34
|
-
: Math.max(0, matchingBuckets.findIndex((bucket) => bucket.bucketName === startBucketName) + 1);
|
|
35
|
-
const page = matchingBuckets.slice(startIndex, startIndex + maxBuckets);
|
|
36
|
-
const lastBucket = page.at(-1);
|
|
37
|
-
const hasMoreBuckets = startIndex + page.length < matchingBuckets.length;
|
|
33
|
+
this.authorizer.authorize(opts?.caller);
|
|
38
34
|
return {
|
|
39
|
-
|
|
40
|
-
Name: bucket.bucketName,
|
|
41
|
-
})),
|
|
42
|
-
ContinuationToken: hasMoreBuckets && lastBucket !== undefined
|
|
43
|
-
? ListBucketsCommandHandler.makeContinuationToken(lastBucket.bucketName)
|
|
44
|
-
: undefined,
|
|
45
|
-
Prefix: prefix,
|
|
35
|
+
...this.pageBuilder.build(cmd.input),
|
|
46
36
|
$metadata: {},
|
|
47
37
|
};
|
|
48
38
|
}
|
|
49
|
-
static makeContinuationToken(bucketName) {
|
|
50
|
-
return Buffer.from(bucketName, "utf8").toString("base64url");
|
|
51
|
-
}
|
|
52
|
-
static parseContinuationToken(token) {
|
|
53
|
-
return Buffer.from(token, "base64url").toString("utf8");
|
|
54
|
-
}
|
|
55
39
|
}
|
|
56
40
|
//# sourceMappingURL=list-buckets.handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-buckets.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"list-buckets.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-buckets/list-buckets.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,kBAAkB,GAEnB,MAAM,wDAAwD,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAYxE;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAInB,UAAU,CAAwB;IAClC,WAAW,CAAyB;IACpC,UAAU,CAAsB;IAEjD,YAAY,KAAqC;QAC/C,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAG,KAAK,CAAC;QACV,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,sBAAsB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CACV,GAA0B,EAC1B,IAAuC;QAEvC,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAExC,OAAO;YACL,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YACpC,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
2
|
+
import type { SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
3
|
+
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
4
|
+
interface ListObjectsAuthorizerProps {
|
|
5
|
+
readonly iam: SimIamInterServiceAuthZ;
|
|
6
|
+
}
|
|
7
|
+
interface ListObjectsAuthorizationInput {
|
|
8
|
+
readonly bucket: SimS3Bucket;
|
|
9
|
+
readonly prefix?: string | undefined;
|
|
10
|
+
readonly maxKeys: number;
|
|
11
|
+
readonly caller?: SimAwsCaller | undefined;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Applies IAM authorization to an S3 ListObjects request.
|
|
15
|
+
*
|
|
16
|
+
* AWS authorizes both ListObjects and ListObjectsV2 with the `s3:ListBucket`
|
|
17
|
+
* action. The resource is the Bucket ARN because listing examines a Bucket's
|
|
18
|
+
* key namespace rather than reading any individual Object.
|
|
19
|
+
*
|
|
20
|
+
* Prefix and maximum-result constraints are request attributes used by IAM
|
|
21
|
+
* policies to limit which listings a principal may perform. They are supplied
|
|
22
|
+
* as S3 condition keys so policy evaluation can distinguish, for example, a
|
|
23
|
+
* permitted app prefix from a restricted private prefix.
|
|
24
|
+
*/
|
|
25
|
+
export declare class ListObjectsAuthorizer {
|
|
26
|
+
private static readonly action;
|
|
27
|
+
private readonly iam;
|
|
28
|
+
constructor(props: ListObjectsAuthorizerProps);
|
|
29
|
+
/**
|
|
30
|
+
* Ensure the caller may list the requested portion of the Bucket namespace.
|
|
31
|
+
*/
|
|
32
|
+
authorize(input: ListObjectsAuthorizationInput): void;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=list-objects-authorizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-objects-authorizer.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-authorizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AAEtG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,UAAU,0BAA0B;IAClC,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC;CACvC;AAED,UAAU,6BAA6B;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAEjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAE9C,YAAY,KAAK,EAAE,0BAA0B,EAE5C;IAED;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,6BAA6B,GAAG,IAAI,CA8BpD;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { SimIamAccessDenied } from "../../../iam/error/sim-iam.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* Applies IAM authorization to an S3 ListObjects request.
|
|
4
|
+
*
|
|
5
|
+
* AWS authorizes both ListObjects and ListObjectsV2 with the `s3:ListBucket`
|
|
6
|
+
* action. The resource is the Bucket ARN because listing examines a Bucket's
|
|
7
|
+
* key namespace rather than reading any individual Object.
|
|
8
|
+
*
|
|
9
|
+
* Prefix and maximum-result constraints are request attributes used by IAM
|
|
10
|
+
* policies to limit which listings a principal may perform. They are supplied
|
|
11
|
+
* as S3 condition keys so policy evaluation can distinguish, for example, a
|
|
12
|
+
* permitted app prefix from a restricted private prefix.
|
|
13
|
+
*/
|
|
14
|
+
export class ListObjectsAuthorizer {
|
|
15
|
+
static action = "s3:ListBucket";
|
|
16
|
+
iam;
|
|
17
|
+
constructor(props) {
|
|
18
|
+
this.iam = props.iam;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Ensure the caller may list the requested portion of the Bucket namespace.
|
|
22
|
+
*/
|
|
23
|
+
authorize(input) {
|
|
24
|
+
const resource = `arn:aws:s3:::${input.bucket.bucketName}`;
|
|
25
|
+
const policy = input.bucket.getPolicy();
|
|
26
|
+
const decision = this.iam.authorize({
|
|
27
|
+
action: ListObjectsAuthorizer.action,
|
|
28
|
+
resource,
|
|
29
|
+
caller: input.caller,
|
|
30
|
+
conditionContext: {
|
|
31
|
+
"s3:prefix": input.prefix ?? "",
|
|
32
|
+
"s3:max-keys": input.maxKeys,
|
|
33
|
+
},
|
|
34
|
+
resourcePolicies: policy === undefined
|
|
35
|
+
? []
|
|
36
|
+
: [
|
|
37
|
+
{
|
|
38
|
+
document: policy,
|
|
39
|
+
policyName: "BucketPolicy",
|
|
40
|
+
resourceArn: resource,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
});
|
|
44
|
+
if (decision.isDenied) {
|
|
45
|
+
throw new SimIamAccessDenied({
|
|
46
|
+
principal: decision.caller.principal,
|
|
47
|
+
action: ListObjectsAuthorizer.action,
|
|
48
|
+
resource,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=list-objects-authorizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-objects-authorizer.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-authorizer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAczE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAU,MAAM,GAAG,eAAe,CAAC;IAEhC,GAAG,CAA0B;IAE9C,YAAY,KAAiC;QAC3C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAoC;QAC5C,MAAM,QAAQ,GAAG,gBAAgB,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAClC,MAAM,EAAE,qBAAqB,CAAC,MAAM;YACpC,QAAQ;YACR,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,gBAAgB,EAAE;gBAChB,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;gBAC/B,aAAa,EAAE,KAAK,CAAC,OAAO;aAC7B;YACD,gBAAgB,EACd,MAAM,KAAK,SAAS;gBAClB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE;wBACE,QAAQ,EAAE,MAAM;wBAChB,UAAU,EAAE,cAAc;wBAC1B,WAAW,EAAE,QAAQ;qBACtB;iBACF;SACR,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;gBACpC,MAAM,EAAE,qBAAqB,CAAC,MAAM;gBACpC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
|
|
2
|
+
import type { SimListObjectsCommandOutput } from "./list-objects.cmd.js";
|
|
3
|
+
interface ListObjectsPageInput {
|
|
4
|
+
readonly bucket: SimS3Bucket;
|
|
5
|
+
readonly prefix?: string | undefined;
|
|
6
|
+
readonly marker?: string | undefined;
|
|
7
|
+
readonly maxKeys: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Reads, orders, and paginates Objects for a ListObjects response.
|
|
11
|
+
*
|
|
12
|
+
* Authorization is completed by the command handler before this class is
|
|
13
|
+
* called. Keeping storage access here, behind that boundary, prevents a denied
|
|
14
|
+
* request from examining Object keys or sizes.
|
|
15
|
+
*
|
|
16
|
+
* S3 returns keys in lexicographical order. The marker is exclusive, so a page
|
|
17
|
+
* begins after the matching key. If the marker does not identify a stored key,
|
|
18
|
+
* this simulation retains its existing behavior and starts from the beginning.
|
|
19
|
+
*
|
|
20
|
+
* NextMarker is returned only when another page exists and identifies the final
|
|
21
|
+
* key in the current page.
|
|
22
|
+
*/
|
|
23
|
+
export declare class ListObjectsPageBuilder {
|
|
24
|
+
/**
|
|
25
|
+
* Build one response page from the authorized Bucket listing.
|
|
26
|
+
*/
|
|
27
|
+
build(input: ListObjectsPageInput): Promise<SimListObjectsCommandOutput>;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=list-objects-page-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-objects-page-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEzE,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACG,KAAK,CACT,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,2BAA2B,CAAC,CA8BtC;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads, orders, and paginates Objects for a ListObjects response.
|
|
3
|
+
*
|
|
4
|
+
* Authorization is completed by the command handler before this class is
|
|
5
|
+
* called. Keeping storage access here, behind that boundary, prevents a denied
|
|
6
|
+
* request from examining Object keys or sizes.
|
|
7
|
+
*
|
|
8
|
+
* S3 returns keys in lexicographical order. The marker is exclusive, so a page
|
|
9
|
+
* begins after the matching key. If the marker does not identify a stored key,
|
|
10
|
+
* this simulation retains its existing behavior and starts from the beginning.
|
|
11
|
+
*
|
|
12
|
+
* NextMarker is returned only when another page exists and identifies the final
|
|
13
|
+
* key in the current page.
|
|
14
|
+
*/
|
|
15
|
+
export class ListObjectsPageBuilder {
|
|
16
|
+
/**
|
|
17
|
+
* Build one response page from the authorized Bucket listing.
|
|
18
|
+
*/
|
|
19
|
+
async build(input) {
|
|
20
|
+
const objects = await input.bucket.listObjects(input.prefix);
|
|
21
|
+
objects.sort((a, b) => a.key.localeCompare(b.key));
|
|
22
|
+
const startIndex = input.marker === undefined
|
|
23
|
+
? 0
|
|
24
|
+
: Math.max(0, objects.findIndex((object) => object.key === input.marker) + 1);
|
|
25
|
+
const page = objects.slice(startIndex, startIndex + input.maxKeys);
|
|
26
|
+
const lastObject = page.at(-1);
|
|
27
|
+
const isTruncated = startIndex + page.length < objects.length;
|
|
28
|
+
return {
|
|
29
|
+
Contents: page.map((object) => ({
|
|
30
|
+
Key: object.key,
|
|
31
|
+
Size: object.body.length,
|
|
32
|
+
})),
|
|
33
|
+
Name: input.bucket.bucketName,
|
|
34
|
+
Prefix: input.prefix,
|
|
35
|
+
Marker: input.marker,
|
|
36
|
+
MaxKeys: input.maxKeys,
|
|
37
|
+
IsTruncated: isTruncated,
|
|
38
|
+
NextMarker: isTruncated && lastObject !== undefined ? lastObject.key : undefined,
|
|
39
|
+
$metadata: {},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=list-objects-page-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-objects-page-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects-page-builder.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,sBAAsB;IACjC;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,KAA2B;QAE3B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnD,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,KAAK,SAAS;YACxB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,CAAC,EACD,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAC/D,CAAC;QAER,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9D,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,WAAW;YACxB,UAAU,EACR,WAAW,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACtE,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -2,10 +2,16 @@ import type { CommandHandler } from "../../../../command/command-handler.js";
|
|
|
2
2
|
import type { SimListObjectsCommand, SimListObjectsCommandOutput } from "./list-objects.cmd.js";
|
|
3
3
|
import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
|
|
4
4
|
import { type BackgroundScheduler } from "../../../../util/background/background.js";
|
|
5
|
+
import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
|
|
6
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
5
7
|
interface ListObjectsCommandHandlerProps {
|
|
6
8
|
readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
|
|
9
|
+
readonly iam?: SimIamInterServiceAuthZ;
|
|
7
10
|
readonly background?: BackgroundScheduler;
|
|
8
11
|
}
|
|
12
|
+
interface ListObjectsCommandHandlerOptions {
|
|
13
|
+
readonly caller?: SimAwsCaller;
|
|
14
|
+
}
|
|
9
15
|
/**
|
|
10
16
|
* Simulated S3 ListObjectsCommand handler.
|
|
11
17
|
*
|
|
@@ -13,12 +19,18 @@ interface ListObjectsCommandHandlerProps {
|
|
|
13
19
|
*/
|
|
14
20
|
export declare class ListObjectsCommandHandler implements CommandHandler<SimListObjectsCommand, SimListObjectsCommandOutput> {
|
|
15
21
|
private readonly buckets;
|
|
22
|
+
private readonly authorizer;
|
|
23
|
+
private readonly pageBuilder;
|
|
16
24
|
private readonly background;
|
|
17
25
|
constructor(props: ListObjectsCommandHandlerProps);
|
|
18
26
|
/**
|
|
19
|
-
*
|
|
27
|
+
* Coordinate validation, Bucket resolution, authorization, and pagination.
|
|
28
|
+
*
|
|
29
|
+
* Bucket lookup occurs before authorization so missing Buckets retain their
|
|
30
|
+
* existing S3 error behavior. Authorization occurs before storage listing so
|
|
31
|
+
* a denied caller cannot inspect Object keys or sizes.
|
|
20
32
|
*/
|
|
21
|
-
handle(cmd: SimListObjectsCommand): Promise<SimListObjectsCommandOutput>;
|
|
33
|
+
handle(cmd: SimListObjectsCommand, opts?: ListObjectsCommandHandlerOptions): Promise<SimListObjectsCommandOutput>;
|
|
22
34
|
}
|
|
23
35
|
export {};
|
|
24
36
|
//# sourceMappingURL=list-objects.handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-objects.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"list-objects.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/list-objects/list-objects.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAI1E,UAAU,8BAA8B;IACtC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,UAAU,gCAAgC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,qBAAqB,EACrB,2BAA2B,CAC5B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,KAAK,EAAE,8BAA8B,EAUhD;IAED;;;;;;OAMG;IACG,MAAM,CACV,GAAG,EAAE,qBAAqB,EAC1B,IAAI,CAAC,EAAE,gCAAgC,GACtC,OAAO,CAAC,2BAA2B,CAAC,CA0BtC;CACF"}
|