@kensio/yulin 1.16.2 → 1.16.3
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/sdk/router/sim-sdk-caller-options.d.ts +2 -2
- package/dist/sdk/router/sim-sdk-caller-options.d.ts.map +1 -1
- package/dist/sdk/router/sim-sdk-command-router.type.d.ts +7 -2
- package/dist/sdk/router/sim-sdk-command-router.type.d.ts.map +1 -1
- package/dist/sdk/sim-sdk-command-dispatcher.d.ts +7 -1
- package/dist/sdk/sim-sdk-command-dispatcher.d.ts.map +1 -1
- package/dist/sdk/sim-sdk-command-dispatcher.js +16 -4
- package/dist/sdk/sim-sdk-command-dispatcher.js.map +1 -1
- package/dist/sdk/wire/sim-sdk-wire-dispatcher.d.ts +7 -6
- package/dist/sdk/wire/sim-sdk-wire-dispatcher.d.ts.map +1 -1
- package/dist/sdk/wire/sim-sdk-wire-dispatcher.js +11 -10
- package/dist/sdk/wire/sim-sdk-wire-dispatcher.js.map +1 -1
- package/dist/sdk/wire/sim-sdk-wire-operation.d.ts.map +1 -1
- package/dist/sdk/wire/sim-sdk-wire-operation.js +1 -0
- package/dist/sdk/wire/sim-sdk-wire-operation.js.map +1 -1
- package/dist/serve/http/api/sim-aws-api-endpoint.d.ts +40 -0
- package/dist/serve/http/api/sim-aws-api-endpoint.d.ts.map +1 -0
- package/dist/serve/http/api/sim-aws-api-endpoint.js +120 -0
- package/dist/serve/http/api/sim-aws-api-endpoint.js.map +1 -0
- package/dist/serve/http/sim-aws-http.d.ts +1 -0
- package/dist/serve/http/sim-aws-http.d.ts.map +1 -1
- package/dist/serve/http/sim-aws-http.js +9 -0
- package/dist/serve/http/sim-aws-http.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +1 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
- package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-lookup.d.ts +28 -0
- package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-lookup.d.ts.map +1 -0
- package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-lookup.js +36 -0
- package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-lookup.js.map +1 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +10 -28
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.js +11 -2
- package/dist/service/cloudformation/stack/sim-cfn-stack.js.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +28 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts.map +1 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.js +2 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack.type.js.map +1 -0
- package/dist/service/iam/sim-iam.d.ts +10 -0
- package/dist/service/iam/sim-iam.d.ts.map +1 -1
- package/dist/service/iam/sim-iam.js +10 -0
- package/dist/service/iam/sim-iam.js.map +1 -1
- package/dist/service/rekognition/collection/sim-rekognition-collection-faces.d.ts +53 -0
- package/dist/service/rekognition/collection/sim-rekognition-collection-faces.d.ts.map +1 -0
- package/dist/service/rekognition/collection/sim-rekognition-collection-faces.js +69 -0
- package/dist/service/rekognition/collection/sim-rekognition-collection-faces.js.map +1 -0
- package/dist/service/rekognition/collection/sim-rekognition-collection.d.ts +26 -0
- package/dist/service/rekognition/collection/sim-rekognition-collection.d.ts.map +1 -0
- package/dist/service/rekognition/collection/sim-rekognition-collection.js +9 -0
- package/dist/service/rekognition/collection/sim-rekognition-collection.js.map +1 -0
- package/dist/service/rekognition/collection/sim-rekognition-collections.d.ts +50 -0
- package/dist/service/rekognition/collection/sim-rekognition-collections.d.ts.map +1 -0
- package/dist/service/rekognition/collection/sim-rekognition-collections.js +78 -0
- package/dist/service/rekognition/collection/sim-rekognition-collections.js.map +1 -0
- package/dist/service/rekognition/collection/sim-rekognition-indexed-face.d.ts +41 -0
- package/dist/service/rekognition/collection/sim-rekognition-indexed-face.d.ts.map +1 -0
- package/dist/service/rekognition/collection/sim-rekognition-indexed-face.js +53 -0
- package/dist/service/rekognition/collection/sim-rekognition-indexed-face.js.map +1 -0
- package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.d.ts +2 -2
- package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.d.ts.map +1 -1
- package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.js +7 -4
- package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.js.map +1 -1
- package/dist/service/rekognition/command/collection/collection-id.d.ts +9 -0
- package/dist/service/rekognition/command/collection/collection-id.d.ts.map +1 -0
- package/dist/service/rekognition/command/collection/collection-id.js +15 -0
- package/dist/service/rekognition/command/collection/collection-id.js.map +1 -0
- package/dist/service/rekognition/command/collection/collection.command.d.ts +55 -0
- package/dist/service/rekognition/command/collection/collection.command.d.ts.map +1 -0
- package/dist/service/rekognition/command/collection/collection.command.js +2 -0
- package/dist/service/rekognition/command/collection/collection.command.js.map +1 -0
- package/dist/service/rekognition/command/collection/collection.handler.d.ts +40 -0
- package/dist/service/rekognition/command/collection/collection.handler.d.ts.map +1 -0
- package/dist/service/rekognition/command/collection/collection.handler.js +62 -0
- package/dist/service/rekognition/command/collection/collection.handler.js.map +1 -0
- package/dist/service/rekognition/command/face/delete-faces-request.d.ts +10 -0
- package/dist/service/rekognition/command/face/delete-faces-request.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/delete-faces-request.js +18 -0
- package/dist/service/rekognition/command/face/delete-faces-request.js.map +1 -0
- package/dist/service/rekognition/command/face/external-image-id.d.ts +9 -0
- package/dist/service/rekognition/command/face/external-image-id.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/external-image-id.js +28 -0
- package/dist/service/rekognition/command/face/external-image-id.js.map +1 -0
- package/dist/service/rekognition/command/face/face-ids.d.ts +9 -0
- package/dist/service/rekognition/command/face/face-ids.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/face-ids.js +48 -0
- package/dist/service/rekognition/command/face/face-ids.js.map +1 -0
- package/dist/service/rekognition/command/face/face-indexer.d.ts +38 -0
- package/dist/service/rekognition/command/face/face-indexer.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/face-indexer.js +64 -0
- package/dist/service/rekognition/command/face/face-indexer.js.map +1 -0
- package/dist/service/rekognition/command/face/face-limits.d.ts +22 -0
- package/dist/service/rekognition/command/face/face-limits.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/face-limits.js +36 -0
- package/dist/service/rekognition/command/face/face-limits.js.map +1 -0
- package/dist/service/rekognition/command/face/face-listing.d.ts +26 -0
- package/dist/service/rekognition/command/face/face-listing.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/face-listing.js +36 -0
- package/dist/service/rekognition/command/face/face-listing.js.map +1 -0
- package/dist/service/rekognition/command/face/face-output.d.ts +65 -0
- package/dist/service/rekognition/command/face/face-output.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/face-output.js +8 -0
- package/dist/service/rekognition/command/face/face-output.js.map +1 -0
- package/dist/service/rekognition/command/face/face-searcher.d.ts +32 -0
- package/dist/service/rekognition/command/face/face-searcher.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/face-searcher.js +45 -0
- package/dist/service/rekognition/command/face/face-searcher.js.map +1 -0
- package/dist/service/rekognition/command/face/face.command.d.ts +107 -0
- package/dist/service/rekognition/command/face/face.command.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/face.command.js +2 -0
- package/dist/service/rekognition/command/face/face.command.js.map +1 -0
- package/dist/service/rekognition/command/face/face.handler.d.ts +62 -0
- package/dist/service/rekognition/command/face/face.handler.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/face.handler.js +99 -0
- package/dist/service/rekognition/command/face/face.handler.js.map +1 -0
- package/dist/service/rekognition/command/face/index-faces-request.d.ts +20 -0
- package/dist/service/rekognition/command/face/index-faces-request.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/index-faces-request.js +39 -0
- package/dist/service/rekognition/command/face/index-faces-request.js.map +1 -0
- package/dist/service/rekognition/command/face/list-faces-page.d.ts +26 -0
- package/dist/service/rekognition/command/face/list-faces-page.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/list-faces-page.js +39 -0
- package/dist/service/rekognition/command/face/list-faces-page.js.map +1 -0
- package/dist/service/rekognition/command/face/list-faces-request.d.ts +17 -0
- package/dist/service/rekognition/command/face/list-faces-request.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/list-faces-request.js +43 -0
- package/dist/service/rekognition/command/face/list-faces-request.js.map +1 -0
- package/dist/service/rekognition/command/face/search-faces-by-image-request.d.ts +24 -0
- package/dist/service/rekognition/command/face/search-faces-by-image-request.d.ts.map +1 -0
- package/dist/service/rekognition/command/face/search-faces-by-image-request.js +61 -0
- package/dist/service/rekognition/command/face/search-faces-by-image-request.js.map +1 -0
- package/dist/service/rekognition/command/sim-rekognition-detection-handlers.d.ts +32 -0
- package/dist/service/rekognition/command/sim-rekognition-detection-handlers.d.ts.map +1 -0
- package/dist/service/rekognition/command/sim-rekognition-detection-handlers.js +37 -0
- package/dist/service/rekognition/command/sim-rekognition-detection-handlers.js.map +1 -0
- package/dist/service/rekognition/error/sim-rekognition.error.d.ts +20 -0
- package/dist/service/rekognition/error/sim-rekognition.error.d.ts.map +1 -1
- package/dist/service/rekognition/error/sim-rekognition.error.js +24 -0
- package/dist/service/rekognition/error/sim-rekognition.error.js.map +1 -1
- package/dist/service/rekognition/face/sim-rekognition-detected-face.d.ts +9 -0
- package/dist/service/rekognition/face/sim-rekognition-detected-face.d.ts.map +1 -1
- package/dist/service/rekognition/face/sim-rekognition-detected-face.js +12 -0
- package/dist/service/rekognition/face/sim-rekognition-detected-face.js.map +1 -1
- package/dist/service/rekognition/face/sim-rekognition-face-detection.d.ts +9 -0
- package/dist/service/rekognition/face/sim-rekognition-face-detection.d.ts.map +1 -1
- package/dist/service/rekognition/face/sim-rekognition-face-detection.js +10 -0
- package/dist/service/rekognition/face/sim-rekognition-face-detection.js.map +1 -1
- package/dist/service/rekognition/face/sim-rekognition-face-frame.d.ts +5 -1
- package/dist/service/rekognition/face/sim-rekognition-face-frame.d.ts.map +1 -1
- package/dist/service/rekognition/face/sim-rekognition-face-frame.js +3 -0
- package/dist/service/rekognition/face/sim-rekognition-face-frame.js.map +1 -1
- package/dist/service/rekognition/index.d.ts +3 -1
- package/dist/service/rekognition/index.d.ts.map +1 -1
- package/dist/service/rekognition/index.js +2 -1
- package/dist/service/rekognition/index.js.map +1 -1
- package/dist/service/rekognition/match/sim-rekognition-face-match-declaration.d.ts +29 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-declaration.d.ts.map +1 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-declaration.js +2 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-declaration.js.map +1 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-result.d.ts +25 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-result.d.ts.map +1 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-result.js +44 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-result.js.map +1 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-rule.d.ts +26 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-rule.d.ts.map +1 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-rule.js +64 -0
- package/dist/service/rekognition/match/sim-rekognition-face-match-rule.js.map +1 -0
- package/dist/service/rekognition/match/sim-rekognition-face-matches.d.ts +32 -0
- package/dist/service/rekognition/match/sim-rekognition-face-matches.d.ts.map +1 -0
- package/dist/service/rekognition/match/sim-rekognition-face-matches.js +39 -0
- package/dist/service/rekognition/match/sim-rekognition-face-matches.js.map +1 -0
- package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.d.ts.map +1 -1
- package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.js +28 -0
- package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.js.map +1 -1
- package/dist/service/rekognition/sim-rekognition.d.ts +51 -3
- package/dist/service/rekognition/sim-rekognition.d.ts.map +1 -1
- package/dist/service/rekognition/sim-rekognition.js +84 -16
- package/dist/service/rekognition/sim-rekognition.js.map +1 -1
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts +8 -0
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
- package/dist/service/s3/bucket/sim-s3-bucket.js +4 -1
- package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
- package/dist/service/s3/command/bucket/sim-s3-bucket-commands.d.ts +1 -0
- package/dist/service/s3/command/bucket/sim-s3-bucket-commands.d.ts.map +1 -1
- package/dist/service/s3/command/bucket/sim-s3-bucket-commands.js +4 -0
- package/dist/service/s3/command/bucket/sim-s3-bucket-commands.js.map +1 -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 +1 -0
- package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -1
- package/dist/service/s3/command/head-bucket/head-bucket-authorizer.d.ts +26 -0
- package/dist/service/s3/command/head-bucket/head-bucket-authorizer.d.ts.map +1 -0
- package/dist/service/s3/command/head-bucket/head-bucket-authorizer.js +48 -0
- package/dist/service/s3/command/head-bucket/head-bucket-authorizer.js.map +1 -0
- package/dist/service/s3/command/head-bucket/head-bucket.command.d.ts +24 -0
- package/dist/service/s3/command/head-bucket/head-bucket.command.d.ts.map +1 -0
- package/dist/service/s3/command/head-bucket/head-bucket.command.js +2 -0
- package/dist/service/s3/command/head-bucket/head-bucket.command.js.map +1 -0
- package/dist/service/s3/command/head-bucket/head-bucket.handler.d.ts +35 -0
- package/dist/service/s3/command/head-bucket/head-bucket.handler.d.ts.map +1 -0
- package/dist/service/s3/command/head-bucket/head-bucket.handler.js +45 -0
- package/dist/service/s3/command/head-bucket/head-bucket.handler.js.map +1 -0
- package/dist/service/s3/command/head-object/head-object-loader.d.ts +17 -0
- package/dist/service/s3/command/head-object/head-object-loader.d.ts.map +1 -0
- package/dist/service/s3/command/head-object/head-object-loader.js +29 -0
- package/dist/service/s3/command/head-object/head-object-loader.js.map +1 -0
- package/dist/service/s3/command/head-object/head-object.command.d.ts +29 -0
- package/dist/service/s3/command/head-object/head-object.command.d.ts.map +1 -0
- package/dist/service/s3/command/head-object/head-object.command.js +2 -0
- package/dist/service/s3/command/head-object/head-object.command.js.map +1 -0
- package/dist/service/s3/command/head-object/head-object.handler.d.ts +38 -0
- package/dist/service/s3/command/head-object/head-object.handler.d.ts.map +1 -0
- package/dist/service/s3/command/head-object/head-object.handler.js +50 -0
- package/dist/service/s3/command/head-object/head-object.handler.js.map +1 -0
- package/dist/service/s3/command/list-buckets/list-buckets-page-builder.d.ts.map +1 -1
- package/dist/service/s3/command/list-buckets/list-buckets-page-builder.js +1 -0
- package/dist/service/s3/command/list-buckets/list-buckets-page-builder.js.map +1 -1
- package/dist/service/s3/command/list-buckets/list-buckets.command.d.ts +1 -0
- package/dist/service/s3/command/list-buckets/list-buckets.command.d.ts.map +1 -1
- package/dist/service/s3/command/object/sim-s3-object-commands.d.ts +4 -0
- package/dist/service/s3/command/object/sim-s3-object-commands.d.ts.map +1 -1
- package/dist/service/s3/command/object/sim-s3-object-commands.js +7 -0
- package/dist/service/s3/command/object/sim-s3-object-commands.js.map +1 -1
- package/dist/service/s3/command/sim-s3-command.types.d.ts +2 -0
- package/dist/service/s3/command/sim-s3-command.types.d.ts.map +1 -1
- package/dist/service/s3/error/sim-s3.error.d.ts +12 -0
- package/dist/service/s3/error/sim-s3.error.d.ts.map +1 -1
- package/dist/service/s3/error/sim-s3.error.js +14 -0
- package/dist/service/s3/error/sim-s3.error.js.map +1 -1
- package/dist/service/s3/sdk/sim-s3-sdk-command-router.d.ts.map +1 -1
- package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +8 -0
- package/dist/service/s3/sdk/sim-s3-sdk-command-router.js.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.d.ts +9 -0
- package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +120 -0
- package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +19 -0
- package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +78 -0
- package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +22 -0
- package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-head-output.js +39 -0
- package/dist/service/s3/serve/api/sim-s3-api-head-output.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +57 -0
- package/dist/service/s3/serve/api/sim-s3-api-input.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-input.js +112 -0
- package/dist/service/s3/serve/api/sim-s3-api-input.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +43 -0
- package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-listing.js +53 -0
- package/dist/service/s3/serve/api/sim-s3-api-listing.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-notification-read.d.ts +8 -0
- package/dist/service/s3/serve/api/sim-s3-api-notification-read.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-notification-read.js +54 -0
- package/dist/service/s3/serve/api/sim-s3-api-notification-read.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-routes.d.ts +6 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-routes.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +31 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-routes.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +10 -0
- package/dist/service/s3/serve/api/sim-s3-api-output.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-output.js +118 -0
- package/dist/service/s3/serve/api/sim-s3-api-output.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +32 -0
- package/dist/service/s3/serve/api/sim-s3-api-request.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-request.js +48 -0
- package/dist/service/s3/serve/api/sim-s3-api-request.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-route.type.d.ts +26 -0
- package/dist/service/s3/serve/api/sim-s3-api-route.type.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-route.type.js +2 -0
- package/dist/service/s3/serve/api/sim-s3-api-route.type.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-routes.d.ts +24 -0
- package/dist/service/s3/serve/api/sim-s3-api-routes.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-routes.js +90 -0
- package/dist/service/s3/serve/api/sim-s3-api-routes.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-xml-read.d.ts +21 -0
- package/dist/service/s3/serve/api/sim-s3-api-xml-read.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-xml-read.js +64 -0
- package/dist/service/s3/serve/api/sim-s3-api-xml-read.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api.d.ts +29 -0
- package/dist/service/s3/serve/api/sim-s3-api.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api.js +60 -0
- package/dist/service/s3/serve/api/sim-s3-api.js.map +1 -0
- package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts +8 -0
- package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts.map +1 -1
- package/dist/service/s3/serve/sim-s3-rest-error-response.js +15 -10
- package/dist/service/s3/serve/sim-s3-rest-error-response.js.map +1 -1
- package/dist/service/s3/sim-s3-operations.d.ts +55 -0
- package/dist/service/s3/sim-s3-operations.d.ts.map +1 -0
- package/dist/service/s3/sim-s3-operations.js +94 -0
- package/dist/service/s3/sim-s3-operations.js.map +1 -0
- package/dist/service/s3/sim-s3.d.ts +6 -41
- package/dist/service/s3/sim-s3.d.ts.map +1 -1
- package/dist/service/s3/sim-s3.js +11 -79
- package/dist/service/s3/sim-s3.js.map +1 -1
- package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +2 -2
- package/dist/service/sts/command/assume-role/assume-role.handler.d.ts.map +1 -1
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.command.d.ts +20 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.command.d.ts.map +1 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.command.js +2 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.command.js.map +1 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +37 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts.map +1 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +50 -0
- package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js.map +1 -0
- package/dist/service/sts/command/get-caller-identity/sim-sts-caller-user-id.d.ts +15 -0
- package/dist/service/sts/command/get-caller-identity/sim-sts-caller-user-id.d.ts.map +1 -0
- package/dist/service/sts/command/get-caller-identity/sim-sts-caller-user-id.js +47 -0
- package/dist/service/sts/command/get-caller-identity/sim-sts-caller-user-id.js.map +1 -0
- package/dist/service/sts/sdk/sim-sts-sdk-command-router.d.ts.map +1 -1
- package/dist/service/sts/sdk/sim-sts-sdk-command-router.js +4 -0
- package/dist/service/sts/sdk/sim-sts-sdk-command-router.js.map +1 -1
- package/dist/service/sts/serve/sim-sts-api.d.ts +24 -0
- package/dist/service/sts/serve/sim-sts-api.d.ts.map +1 -0
- package/dist/service/sts/serve/sim-sts-api.js +56 -0
- package/dist/service/sts/serve/sim-sts-api.js.map +1 -0
- package/dist/service/sts/serve/sim-sts-query-request.d.ts +19 -0
- package/dist/service/sts/serve/sim-sts-query-request.d.ts.map +1 -0
- package/dist/service/sts/serve/sim-sts-query-request.js +27 -0
- package/dist/service/sts/serve/sim-sts-query-request.js.map +1 -0
- package/dist/service/sts/serve/sim-sts-query-response.d.ts +15 -0
- package/dist/service/sts/serve/sim-sts-query-response.d.ts.map +1 -0
- package/dist/service/sts/serve/sim-sts-query-response.js +42 -0
- package/dist/service/sts/serve/sim-sts-query-response.js.map +1 -0
- package/dist/service/sts/sim-sts.d.ts +9 -2
- package/dist/service/sts/sim-sts.d.ts.map +1 -1
- package/dist/service/sts/sim-sts.js +11 -0
- package/dist/service/sts/sim-sts.js.map +1 -1
- package/dist/util/xml/xml-document.d.ts +42 -0
- package/dist/util/xml/xml-document.d.ts.map +1 -0
- package/dist/util/xml/xml-document.js +97 -0
- package/dist/util/xml/xml-document.js.map +1 -0
- package/dist/util/xml/xml-writer.d.ts +28 -0
- package/dist/util/xml/xml-writer.d.ts.map +1 -0
- package/dist/util/xml/xml-writer.js +53 -0
- package/dist/util/xml/xml-writer.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An S3 REST request as the route table reads it.
|
|
3
|
+
*
|
|
4
|
+
* The path has already been taken apart, because which operation a request
|
|
5
|
+
* names depends on how many path segments it has: no Bucket is a service-level
|
|
6
|
+
* operation, a Bucket alone is a Bucket-level one, and a Bucket with a key is
|
|
7
|
+
* an Object operation.
|
|
8
|
+
*/
|
|
9
|
+
export interface SimS3ApiRequest {
|
|
10
|
+
readonly method: string;
|
|
11
|
+
/** Empty for a service-level request, such as ListBuckets. */
|
|
12
|
+
readonly bucketName: string;
|
|
13
|
+
/** Empty for a service-level or Bucket-level request. */
|
|
14
|
+
readonly objectKey: string;
|
|
15
|
+
readonly query: URLSearchParams;
|
|
16
|
+
readonly headers: Headers;
|
|
17
|
+
readonly body: Uint8Array;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Read a request that arrived at the served AWS API endpoint as an S3 request.
|
|
21
|
+
*
|
|
22
|
+
* Only path-style addressing is read here. A virtual-host request names its
|
|
23
|
+
* Bucket in the hostname, and simulated Route 53 resolves that to the Bucket's
|
|
24
|
+
* own endpoint before this endpoint is ever reached, so a request that gets
|
|
25
|
+
* this far put its Bucket in the path.
|
|
26
|
+
*/
|
|
27
|
+
export declare function readSimS3ApiRequest(request: Request, body: Uint8Array): SimS3ApiRequest;
|
|
28
|
+
/**
|
|
29
|
+
* Which level of the S3 API a request addressed, taken from its path.
|
|
30
|
+
*/
|
|
31
|
+
export declare function simS3ApiRequestTarget(request: SimS3ApiRequest): "service" | "bucket" | "object";
|
|
32
|
+
//# sourceMappingURL=sim-s3-api-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-api-request.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/serve/api/sim-s3-api-request.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,UAAU,GACf,eAAe,CAmBjB;AAgBD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,GACvB,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAMjC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read a request that arrived at the served AWS API endpoint as an S3 request.
|
|
3
|
+
*
|
|
4
|
+
* Only path-style addressing is read here. A virtual-host request names its
|
|
5
|
+
* Bucket in the hostname, and simulated Route 53 resolves that to the Bucket's
|
|
6
|
+
* own endpoint before this endpoint is ever reached, so a request that gets
|
|
7
|
+
* this far put its Bucket in the path.
|
|
8
|
+
*/
|
|
9
|
+
export function readSimS3ApiRequest(request, body) {
|
|
10
|
+
const url = new URL(request.url);
|
|
11
|
+
// The first segment is the Bucket and everything after it is the key, which
|
|
12
|
+
// can itself contain slashes.
|
|
13
|
+
const path = url.pathname.replace(/^\//, "");
|
|
14
|
+
const separator = path.indexOf("/");
|
|
15
|
+
const bucketName = separator === -1 ? path : path.slice(0, separator);
|
|
16
|
+
const objectKey = separator === -1 ? "" : path.slice(separator + 1);
|
|
17
|
+
return {
|
|
18
|
+
method: request.method,
|
|
19
|
+
bucketName: decodeURIComponent(bucketName),
|
|
20
|
+
objectKey: decodeSimS3ObjectKey(objectKey),
|
|
21
|
+
query: url.searchParams,
|
|
22
|
+
headers: request.headers,
|
|
23
|
+
body,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Decode an Object key from the path it was sent in.
|
|
28
|
+
*
|
|
29
|
+
* Each segment is decoded on its own, because a key containing an encoded
|
|
30
|
+
* slash names one segment of the key rather than two, and decoding the whole
|
|
31
|
+
* path at once would lose that distinction.
|
|
32
|
+
*/
|
|
33
|
+
function decodeSimS3ObjectKey(path) {
|
|
34
|
+
return path
|
|
35
|
+
.split("/")
|
|
36
|
+
.map((segment) => decodeURIComponent(segment))
|
|
37
|
+
.join("/");
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Which level of the S3 API a request addressed, taken from its path.
|
|
41
|
+
*/
|
|
42
|
+
export function simS3ApiRequestTarget(request) {
|
|
43
|
+
if (request.bucketName.length === 0) {
|
|
44
|
+
return "service";
|
|
45
|
+
}
|
|
46
|
+
return request.objectKey.length === 0 ? "bucket" : "object";
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=sim-s3-api-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-api-request.js","sourceRoot":"","sources":["../../../../../src/service/s3/serve/api/sim-s3-api-request.ts"],"names":[],"mappings":"AAmBA;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,IAAgB;IAEhB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEjC,4EAA4E;IAC5E,8BAA8B;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC,MAAM,UAAU,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAEpE,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC;QAC1C,SAAS,EAAE,oBAAoB,CAAC,SAAS,CAAC;QAC1C,KAAK,EAAE,GAAG,CAAC,YAAY;QACvB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;SAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAwB;IAExB,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SimS3ApiRequest } from "./sim-s3-api-request.js";
|
|
2
|
+
/**
|
|
3
|
+
* One S3 REST operation, and how to read its input out of a request.
|
|
4
|
+
*
|
|
5
|
+
* S3 states its operation in the method, the shape of the path and a
|
|
6
|
+
* sub-resource in the query string, so a route is matched on those three and
|
|
7
|
+
* nothing else. Real S3 reads a request the same way, which is why `?policy`
|
|
8
|
+
* and `?website` on the same `PUT /{Bucket}` reach different operations.
|
|
9
|
+
*/
|
|
10
|
+
export interface SimS3ApiRoute {
|
|
11
|
+
readonly method: string;
|
|
12
|
+
readonly target: "service" | "bucket" | "object";
|
|
13
|
+
/**
|
|
14
|
+
* The query string that picks this operation out of the others sharing its
|
|
15
|
+
* method and path. Undefined matches a request naming no sub-resource at all.
|
|
16
|
+
*/
|
|
17
|
+
readonly subResource?: string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* A further condition on the query string, for the operations that share a
|
|
20
|
+
* method, a path and a sub-resource with another. Only the two listings do.
|
|
21
|
+
*/
|
|
22
|
+
readonly matches?: ((query: URLSearchParams) => boolean) | undefined;
|
|
23
|
+
readonly commandName: string;
|
|
24
|
+
readonly input: (request: SimS3ApiRequest) => object;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=sim-s3-api-route.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-api-route.type.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/serve/api/sim-s3-api-route.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-api-route.type.js","sourceRoot":"","sources":["../../../../../src/service/s3/serve/api/sim-s3-api-route.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type SimS3ApiRequest } from "./sim-s3-api-request.js";
|
|
2
|
+
import type { SimS3ApiRoute } from "./sim-s3-api-route.type.js";
|
|
3
|
+
/**
|
|
4
|
+
* The S3 operations reachable through the served AWS API endpoint, which are
|
|
5
|
+
* the ones simulated S3 implements.
|
|
6
|
+
*/
|
|
7
|
+
export declare const simS3ApiRoutes: readonly SimS3ApiRoute[];
|
|
8
|
+
/**
|
|
9
|
+
* The sub-resource a request names that this endpoint does not serve.
|
|
10
|
+
*
|
|
11
|
+
* A sub-resource separates one operation from another on the same method and
|
|
12
|
+
* path, so one that is not served has to be refused rather than ignored. An
|
|
13
|
+
* ignored `?acl` on `GET /{Bucket}` is an Object listing, which is a confident
|
|
14
|
+
* wrong answer to a question about permissions.
|
|
15
|
+
*/
|
|
16
|
+
export declare function simS3UnservedSubResource(request: SimS3ApiRequest): string | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Find the S3 operation a request names.
|
|
19
|
+
*
|
|
20
|
+
* Returns undefined for a request matching no route, which is either an
|
|
21
|
+
* operation simulated S3 has not implemented or one real S3 does not have.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveSimS3ApiRoute(request: SimS3ApiRequest): SimS3ApiRoute | undefined;
|
|
24
|
+
//# sourceMappingURL=sim-s3-api-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-api-routes.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/serve/api/sim-s3-api-routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAoDhE;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,aAAa,EAGlD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,GACvB,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,eAAe,GACvB,aAAa,GAAG,SAAS,CAW3B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { simS3BucketApiRoutes } from "./sim-s3-api-bucket-routes.js";
|
|
2
|
+
import { simS3ObjectApiRoutes } from "./sim-s3-api-object-routes.js";
|
|
3
|
+
import { simS3ApiRequestTarget, } from "./sim-s3-api-request.js";
|
|
4
|
+
/**
|
|
5
|
+
* The sub-resources these routes serve, which are the ones simulated S3
|
|
6
|
+
* implements an operation for.
|
|
7
|
+
*/
|
|
8
|
+
const servedSubResources = [
|
|
9
|
+
"policy",
|
|
10
|
+
"website",
|
|
11
|
+
"publicAccessBlock",
|
|
12
|
+
"notification",
|
|
13
|
+
"delete",
|
|
14
|
+
];
|
|
15
|
+
/**
|
|
16
|
+
* Every sub-resource S3 defines, served here or not.
|
|
17
|
+
*
|
|
18
|
+
* A sub-resource has to be recognised by name rather than by shape. Both the
|
|
19
|
+
* SDK and the CLI write one as `?acl=`, with an equals and nothing after it,
|
|
20
|
+
* which is exactly how the CLI also writes the empty `prefix=` it sends on
|
|
21
|
+
* every listing. Nothing in the query string separates the two, so the names
|
|
22
|
+
* are listed instead of guessed at.
|
|
23
|
+
*/
|
|
24
|
+
const knownSubResources = new Set([
|
|
25
|
+
...servedSubResources,
|
|
26
|
+
"accelerate",
|
|
27
|
+
"acl",
|
|
28
|
+
"analytics",
|
|
29
|
+
"cors",
|
|
30
|
+
"encryption",
|
|
31
|
+
"intelligent-tiering",
|
|
32
|
+
"inventory",
|
|
33
|
+
"legal-hold",
|
|
34
|
+
"lifecycle",
|
|
35
|
+
"location",
|
|
36
|
+
"logging",
|
|
37
|
+
"metrics",
|
|
38
|
+
"object-lock",
|
|
39
|
+
"ownershipControls",
|
|
40
|
+
"policyStatus",
|
|
41
|
+
"replication",
|
|
42
|
+
"requestPayment",
|
|
43
|
+
"restore",
|
|
44
|
+
"retention",
|
|
45
|
+
"select",
|
|
46
|
+
"tagging",
|
|
47
|
+
"torrent",
|
|
48
|
+
"uploads",
|
|
49
|
+
"versioning",
|
|
50
|
+
"versions",
|
|
51
|
+
]);
|
|
52
|
+
/**
|
|
53
|
+
* The S3 operations reachable through the served AWS API endpoint, which are
|
|
54
|
+
* the ones simulated S3 implements.
|
|
55
|
+
*/
|
|
56
|
+
export const simS3ApiRoutes = [
|
|
57
|
+
...simS3BucketApiRoutes,
|
|
58
|
+
...simS3ObjectApiRoutes,
|
|
59
|
+
];
|
|
60
|
+
/**
|
|
61
|
+
* The sub-resource a request names that this endpoint does not serve.
|
|
62
|
+
*
|
|
63
|
+
* A sub-resource separates one operation from another on the same method and
|
|
64
|
+
* path, so one that is not served has to be refused rather than ignored. An
|
|
65
|
+
* ignored `?acl` on `GET /{Bucket}` is an Object listing, which is a confident
|
|
66
|
+
* wrong answer to a question about permissions.
|
|
67
|
+
*/
|
|
68
|
+
export function simS3UnservedSubResource(request) {
|
|
69
|
+
for (const name of request.query.keys()) {
|
|
70
|
+
if (knownSubResources.has(name) && !servedSubResources.includes(name)) {
|
|
71
|
+
return name;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Find the S3 operation a request names.
|
|
78
|
+
*
|
|
79
|
+
* Returns undefined for a request matching no route, which is either an
|
|
80
|
+
* operation simulated S3 has not implemented or one real S3 does not have.
|
|
81
|
+
*/
|
|
82
|
+
export function resolveSimS3ApiRoute(request) {
|
|
83
|
+
const target = simS3ApiRequestTarget(request);
|
|
84
|
+
const named = servedSubResources.find((name) => request.query.has(name));
|
|
85
|
+
return simS3ApiRoutes.find((route) => route.method === request.method &&
|
|
86
|
+
route.target === target &&
|
|
87
|
+
route.subResource === named &&
|
|
88
|
+
(route.matches?.(request.query) ?? true));
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=sim-s3-api-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-api-routes.js","sourceRoot":"","sources":["../../../../../src/service/s3/serve/api/sim-s3-api-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EACL,qBAAqB,GAEtB,MAAM,yBAAyB,CAAC;AAGjC;;;GAGG;AACH,MAAM,kBAAkB,GAAsB;IAC5C,QAAQ;IACR,SAAS;IACT,mBAAmB;IACnB,cAAc;IACd,QAAQ;CACT,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IACrD,GAAG,kBAAkB;IACrB,YAAY;IACZ,KAAK;IACL,WAAW;IACX,MAAM;IACN,YAAY;IACZ,qBAAqB;IACrB,WAAW;IACX,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,aAAa;IACb,mBAAmB;IACnB,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,SAAS;IACT,WAAW;IACX,QAAQ;IACR,SAAS;IACT,SAAS;IACT,SAAS;IACT,YAAY;IACZ,UAAU;CACX,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,GAAG,oBAAoB;IACvB,GAAG,oBAAoB;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAwB;IAExB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAwB;IAExB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzE,OAAO,cAAc,CAAC,IAAI,CACxB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QAC/B,KAAK,CAAC,MAAM,KAAK,MAAM;QACvB,KAAK,CAAC,WAAW,KAAK,KAAK;QAC3B,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read the S3 request bodies that arrive as XML.
|
|
3
|
+
*
|
|
4
|
+
* Real S3 takes these configurations as XML documents, which is why the
|
|
5
|
+
* operations that set them are the only ones here with a body to read. An
|
|
6
|
+
* absent or unreadable member comes back undefined, and the operation itself
|
|
7
|
+
* decides whether that is a refusal.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Read a DeleteObjects body, which names the Objects to remove.
|
|
11
|
+
*/
|
|
12
|
+
export declare function readSimS3DeleteRequest(body: string): object;
|
|
13
|
+
/**
|
|
14
|
+
* Read a Block Public Access configuration.
|
|
15
|
+
*/
|
|
16
|
+
export declare function readSimS3PublicAccessBlock(body: string): object;
|
|
17
|
+
/**
|
|
18
|
+
* Read a website configuration.
|
|
19
|
+
*/
|
|
20
|
+
export declare function readSimS3WebsiteConfiguration(body: string): object;
|
|
21
|
+
//# sourceMappingURL=sim-s3-api-xml-read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-api-xml-read.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/serve/api/sim-s3-api-xml-read.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AAEH;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU3D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAY/D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA6BlE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { parseXmlDocument, xmlBoolean, xmlChild, xmlChildren, xmlText, } from "../../../../util/xml/xml-document.js";
|
|
2
|
+
/**
|
|
3
|
+
* Read the S3 request bodies that arrive as XML.
|
|
4
|
+
*
|
|
5
|
+
* Real S3 takes these configurations as XML documents, which is why the
|
|
6
|
+
* operations that set them are the only ones here with a body to read. An
|
|
7
|
+
* absent or unreadable member comes back undefined, and the operation itself
|
|
8
|
+
* decides whether that is a refusal.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Read a DeleteObjects body, which names the Objects to remove.
|
|
12
|
+
*/
|
|
13
|
+
export function readSimS3DeleteRequest(body) {
|
|
14
|
+
const root = parseXmlDocument(body);
|
|
15
|
+
const quiet = xmlBoolean(root, "Quiet");
|
|
16
|
+
return {
|
|
17
|
+
Objects: xmlChildren(root, "Object").map((object) => ({
|
|
18
|
+
...defined("Key", xmlText(object, "Key")),
|
|
19
|
+
})),
|
|
20
|
+
...defined("Quiet", quiet),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Read a Block Public Access configuration.
|
|
25
|
+
*/
|
|
26
|
+
export function readSimS3PublicAccessBlock(body) {
|
|
27
|
+
const root = parseXmlDocument(body);
|
|
28
|
+
return {
|
|
29
|
+
...defined("BlockPublicAcls", xmlBoolean(root, "BlockPublicAcls")),
|
|
30
|
+
...defined("IgnorePublicAcls", xmlBoolean(root, "IgnorePublicAcls")),
|
|
31
|
+
...defined("BlockPublicPolicy", xmlBoolean(root, "BlockPublicPolicy")),
|
|
32
|
+
...defined("RestrictPublicBuckets", xmlBoolean(root, "RestrictPublicBuckets")),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Read a website configuration.
|
|
37
|
+
*/
|
|
38
|
+
export function readSimS3WebsiteConfiguration(body) {
|
|
39
|
+
const root = parseXmlDocument(body);
|
|
40
|
+
const index = xmlChild(root, "IndexDocument");
|
|
41
|
+
const error = xmlChild(root, "ErrorDocument");
|
|
42
|
+
const redirect = xmlChild(root, "RedirectAllRequestsTo");
|
|
43
|
+
return {
|
|
44
|
+
...defined("IndexDocument", index === undefined
|
|
45
|
+
? undefined
|
|
46
|
+
: { ...defined("Suffix", xmlText(index, "Suffix")) }),
|
|
47
|
+
...defined("ErrorDocument", error === undefined
|
|
48
|
+
? undefined
|
|
49
|
+
: { ...defined("Key", xmlText(error, "Key")) }),
|
|
50
|
+
...defined("RedirectAllRequestsTo", redirect === undefined
|
|
51
|
+
? undefined
|
|
52
|
+
: {
|
|
53
|
+
...defined("HostName", xmlText(redirect, "HostName")),
|
|
54
|
+
...defined("Protocol", xmlText(redirect, "Protocol")),
|
|
55
|
+
}),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Include a member only when the document stated it.
|
|
60
|
+
*/
|
|
61
|
+
function defined(name, value) {
|
|
62
|
+
return value === undefined ? {} : { [name]: value };
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=sim-s3-api-xml-read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-api-xml-read.js","sourceRoot":"","sources":["../../../../../src/service/s3/serve/api/sim-s3-api-xml-read.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,GACR,MAAM,sCAAsC,CAAC;AAE9C;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAExC,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACpD,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SAC1C,CAAC,CAAC;QACH,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEpC,OAAO;QACL,GAAG,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAClE,GAAG,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACpE,GAAG,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACtE,GAAG,OAAO,CACR,uBAAuB,EACvB,UAAU,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAC1C;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAY;IACxD,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IAEzD,OAAO;QACL,GAAG,OAAO,CACR,eAAe,EACf,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CACvD;QACD,GAAG,OAAO,CACR,eAAe,EACf,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CACjD;QACD,GAAG,OAAO,CACR,uBAAuB,EACvB,QAAQ,KAAK,SAAS;YACpB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACrD,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;aACtD,CACN;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAI,IAAY,EAAE,KAAoB;IACpD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
|
|
2
|
+
import type { SimAws } from "../../../aws/sim-aws.js";
|
|
3
|
+
interface SimS3ApiEndpointProperties {
|
|
4
|
+
readonly simAws: SimAws;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Serves the S3 REST API to a client given an endpoint URL.
|
|
8
|
+
*
|
|
9
|
+
* S3 states its operation in the method, the path and a query-string
|
|
10
|
+
* sub-resource rather than in a header, so the operation is resolved from the
|
|
11
|
+
* request before anything else. What happens after that is the same as for
|
|
12
|
+
* every other served AWS API request: the operation runs through the Command
|
|
13
|
+
* the SDK would have sent, so an HTTP caller reaches exactly the code an
|
|
14
|
+
* in-process caller does, and IAM authorizes it the same way.
|
|
15
|
+
*/
|
|
16
|
+
export declare class SimS3ApiEndpoint {
|
|
17
|
+
private readonly dispatcher;
|
|
18
|
+
constructor(properties: SimS3ApiEndpointProperties);
|
|
19
|
+
/**
|
|
20
|
+
* Answer one S3 REST request as the caller that signed it.
|
|
21
|
+
*
|
|
22
|
+
* The Region is the one the request was signed for, read from its credential
|
|
23
|
+
* scope, so it arrives as whatever the client wrote rather than as a Region
|
|
24
|
+
* the simulator has already recognised.
|
|
25
|
+
*/
|
|
26
|
+
handle(request: Request, body: Uint8Array, caller: SimAwsCaller, regionName: string): Promise<Response>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=sim-s3-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-api.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/serve/api/sim-s3-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAoBtD,UAAU,0BAA0B;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IAErD,YAAY,UAAU,EAAE,0BAA0B,EAEjD;IAED;;;;;;OAMG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CAqCnB;CACF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { SimSdkUnsupportedCommandError } from "../../../../sdk/error/sim-sdk.error.js";
|
|
2
|
+
import { SimSdkCommandDispatcher } from "../../../../sdk/sim-sdk-command-dispatcher.js";
|
|
3
|
+
import { makeSimSdkWireClient, makeSimSdkWireCommand, } from "../../../../sdk/wire/sim-sdk-wire-command.js";
|
|
4
|
+
import { SimS3RestErrorResponse } from "../sim-s3-rest-error-response.js";
|
|
5
|
+
import { simS3ApiResponse } from "./sim-s3-api-output.js";
|
|
6
|
+
import { readSimS3ApiRequest } from "./sim-s3-api-request.js";
|
|
7
|
+
import { resolveSimS3ApiRoute, simS3UnservedSubResource, } from "./sim-s3-api-routes.js";
|
|
8
|
+
/**
|
|
9
|
+
* The SDK service id simulated S3's Command router is registered under.
|
|
10
|
+
*/
|
|
11
|
+
const s3ServiceId = "S3";
|
|
12
|
+
/**
|
|
13
|
+
* Serves the S3 REST API to a client given an endpoint URL.
|
|
14
|
+
*
|
|
15
|
+
* S3 states its operation in the method, the path and a query-string
|
|
16
|
+
* sub-resource rather than in a header, so the operation is resolved from the
|
|
17
|
+
* request before anything else. What happens after that is the same as for
|
|
18
|
+
* every other served AWS API request: the operation runs through the Command
|
|
19
|
+
* the SDK would have sent, so an HTTP caller reaches exactly the code an
|
|
20
|
+
* in-process caller does, and IAM authorizes it the same way.
|
|
21
|
+
*/
|
|
22
|
+
export class SimS3ApiEndpoint {
|
|
23
|
+
dispatcher;
|
|
24
|
+
constructor(properties) {
|
|
25
|
+
this.dispatcher = new SimSdkCommandDispatcher(properties.simAws);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Answer one S3 REST request as the caller that signed it.
|
|
29
|
+
*
|
|
30
|
+
* The Region is the one the request was signed for, read from its credential
|
|
31
|
+
* scope, so it arrives as whatever the client wrote rather than as a Region
|
|
32
|
+
* the simulator has already recognised.
|
|
33
|
+
*/
|
|
34
|
+
async handle(request, body, caller, regionName) {
|
|
35
|
+
const apiRequest = readSimS3ApiRequest(request, body);
|
|
36
|
+
const errors = new SimS3RestErrorResponse({
|
|
37
|
+
bucketName: apiRequest.bucketName,
|
|
38
|
+
objectKey: apiRequest.objectKey,
|
|
39
|
+
});
|
|
40
|
+
const unserved = simS3UnservedSubResource(apiRequest);
|
|
41
|
+
if (unserved !== undefined) {
|
|
42
|
+
return errors.notImplemented(`Simulated S3 does not serve the ${unserved} sub-resource`);
|
|
43
|
+
}
|
|
44
|
+
const route = resolveSimS3ApiRoute(apiRequest);
|
|
45
|
+
if (route === undefined) {
|
|
46
|
+
return errors.notImplemented(`Simulated S3 does not serve ${apiRequest.method} ${new URL(request.url).pathname}`);
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const output = await this.dispatcher.dispatch(makeSimSdkWireCommand(route.commandName, route.input(apiRequest)), makeSimSdkWireClient(s3ServiceId, regionName), undefined, caller);
|
|
50
|
+
return await simS3ApiResponse(route.commandName, output);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (error instanceof SimSdkUnsupportedCommandError) {
|
|
54
|
+
return errors.notImplemented(error.message);
|
|
55
|
+
}
|
|
56
|
+
return errors.build(error);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=sim-s3-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-api.js","sourceRoot":"","sources":["../../../../../src/service/s3/serve/api/sim-s3-api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,GAAG,IAAI,CAAC;AAMzB;;;;;;;;;GASG;AACH,MAAM,OAAO,gBAAgB;IACV,UAAU,CAA0B;IAErD,YAAY,UAAsC;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,OAAgB,EAChB,IAAgB,EAChB,MAAoB,EACpB,UAAkB;QAElB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC;YACxC,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,SAAS,EAAE,UAAU,CAAC,SAAS;SAChC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC,cAAc,CAC1B,mCAAmC,QAAQ,eAAe,CAC3D,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,cAAc,CAC1B,+BAA+B,UAAU,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAC3C,qBAAqB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EACjE,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,EAC7C,SAAS,EACT,MAAM,CACP,CAAC;YAEF,OAAO,MAAM,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,6BAA6B,EAAE,CAAC;gBACnD,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -22,6 +22,14 @@ export declare class SimS3RestErrorResponse {
|
|
|
22
22
|
* masquerade as an AWS failure the test then asserts on.
|
|
23
23
|
*/
|
|
24
24
|
build(error: unknown): Response;
|
|
25
|
+
/**
|
|
26
|
+
* Refuse an operation simulated S3 does not serve.
|
|
27
|
+
*
|
|
28
|
+
* `NotImplemented` is the code real S3 answers with for an operation it does
|
|
29
|
+
* not recognise, so a client reads this as an S3 failure rather than as a
|
|
30
|
+
* broken endpoint.
|
|
31
|
+
*/
|
|
32
|
+
notImplemented(message: string): Response;
|
|
25
33
|
private xml;
|
|
26
34
|
}
|
|
27
35
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-rest-error-response.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-rest-error-response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-s3-rest-error-response.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-rest-error-response.ts"],"names":[],"mappings":"AAKA,UAAU,wBAAwB;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,YAAY,UAAU,EAAE,wBAAwB,EAG/C;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAkB9B;IAED;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAExC;IAED,OAAO,CAAC,GAAG;CAmBZ"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { escapeXmlText } from "../../../util/xml/xml-writer.js";
|
|
1
2
|
import { SimIamAccessDenied } from "../../iam/error/sim-iam.error.js";
|
|
2
3
|
import { SimS3Error } from "../error/sim-s3.error.js";
|
|
3
4
|
import { SimS3ChecksumMismatch } from "../error/sim-s3-checksum.error.js";
|
|
@@ -35,14 +36,24 @@ export class SimS3RestErrorResponse {
|
|
|
35
36
|
}
|
|
36
37
|
throw error;
|
|
37
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Refuse an operation simulated S3 does not serve.
|
|
41
|
+
*
|
|
42
|
+
* `NotImplemented` is the code real S3 answers with for an operation it does
|
|
43
|
+
* not recognise, so a client reads this as an S3 failure rather than as a
|
|
44
|
+
* broken endpoint.
|
|
45
|
+
*/
|
|
46
|
+
notImplemented(message) {
|
|
47
|
+
return this.xml(501, "NotImplemented", message);
|
|
48
|
+
}
|
|
38
49
|
xml(status, code, message) {
|
|
39
50
|
const body = [
|
|
40
51
|
`<?xml version="1.0" encoding="UTF-8"?>`,
|
|
41
52
|
`<Error>`,
|
|
42
|
-
` <Code>${
|
|
43
|
-
` <Message>${
|
|
44
|
-
` <BucketName>${
|
|
45
|
-
` <Key>${
|
|
53
|
+
` <Code>${escapeXmlText(code)}</Code>`,
|
|
54
|
+
` <Message>${escapeXmlText(message)}</Message>`,
|
|
55
|
+
` <BucketName>${escapeXmlText(this.bucketName)}</BucketName>`,
|
|
56
|
+
` <Key>${escapeXmlText(this.objectKey)}</Key>`,
|
|
46
57
|
`</Error>`,
|
|
47
58
|
``,
|
|
48
59
|
].join("\n");
|
|
@@ -54,10 +65,4 @@ export class SimS3RestErrorResponse {
|
|
|
54
65
|
});
|
|
55
66
|
}
|
|
56
67
|
}
|
|
57
|
-
function escapeXml(value) {
|
|
58
|
-
return value
|
|
59
|
-
.replaceAll("&", "&")
|
|
60
|
-
.replaceAll("<", "<")
|
|
61
|
-
.replaceAll(">", ">");
|
|
62
|
-
}
|
|
63
68
|
//# sourceMappingURL=sim-s3-rest-error-response.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-s3-rest-error-response.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-rest-error-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAO1E;;;;;;;GAOG;AACH,MAAM,OAAO,sBAAsB;IAChB,UAAU,CAAS;IACnB,SAAS,CAAS;IAEnC,YAAY,UAAoC;QAC9C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAc;QAClB,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,CAAC,SAAS,CAAC,cAAc,IAAI,GAAG,EACrC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,CACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;IAEO,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,OAAe;QACvD,MAAM,IAAI,GAAG;YACX,wCAAwC;YACxC,SAAS;YACT,WAAW,
|
|
1
|
+
{"version":3,"file":"sim-s3-rest-error-response.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-rest-error-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAO1E;;;;;;;GAOG;AACH,MAAM,OAAO,sBAAsB;IAChB,UAAU,CAAS;IACnB,SAAS,CAAS;IAEnC,YAAY,UAAoC;QAC9C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAc;QAClB,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,CAAC,SAAS,CAAC,cAAc,IAAI,GAAG,EACrC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,CACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAEO,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,OAAe;QACvD,MAAM,IAAI,GAAG;YACX,wCAAwC;YACxC,SAAS;YACT,WAAW,aAAa,CAAC,IAAI,CAAC,SAAS;YACvC,cAAc,aAAa,CAAC,OAAO,CAAC,YAAY;YAChD,iBAAiB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe;YAC9D,UAAU,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ;YAC/C,UAAU;YACV,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACxB,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,iBAAiB;aAClC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type * as simS3Commands from "./command/sim-s3-command.types.js";
|
|
2
|
+
import type { SimS3RequestOptions } from "./command/sim-s3-request-options.js";
|
|
3
|
+
import type { SimS3Commands } from "./sim-s3-commands.js";
|
|
4
|
+
/**
|
|
5
|
+
* The AWS operations simulated S3 answers. One delegation per SDK Command,
|
|
6
|
+
* onto the handler in `SimS3Commands` that runs it.
|
|
7
|
+
*
|
|
8
|
+
* `SimS3` extends this. A caller reaches every operation on the one service
|
|
9
|
+
* object, alongside the simulator-only controls `SimS3` holds itself.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class SimS3Operations {
|
|
12
|
+
protected readonly commands: SimS3Commands;
|
|
13
|
+
protected constructor(commands: SimS3Commands);
|
|
14
|
+
/** Handle a Create Bucket Command from the SDK. */
|
|
15
|
+
createBucket(command: simS3Commands.SimCreateBucketCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimCreateBucketCommandOutput>;
|
|
16
|
+
/** Handle a Head Bucket Command from the SDK. */
|
|
17
|
+
headBucket(command: simS3Commands.SimHeadBucketCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimHeadBucketCommandOutput>;
|
|
18
|
+
/** Handle a Head Object Command from the SDK. */
|
|
19
|
+
headObject(command: simS3Commands.SimHeadObjectCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimHeadObjectCommandOutput>;
|
|
20
|
+
/** Handle a Delete Bucket Command from the SDK. */
|
|
21
|
+
deleteBucket(command: simS3Commands.SimDeleteBucketCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeleteBucketCommandOutput>;
|
|
22
|
+
/** Handle a Put Bucket Policy Command from the SDK. */
|
|
23
|
+
putBucketPolicy(command: simS3Commands.SimPutBucketPolicyCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutBucketPolicyCommandOutput>;
|
|
24
|
+
/** Handle a Get Bucket Policy Command from the SDK. */
|
|
25
|
+
getBucketPolicy(command: simS3Commands.SimGetBucketPolicyCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetBucketPolicyCommandOutput>;
|
|
26
|
+
/** Handle a Delete Bucket Policy Command from the SDK. */
|
|
27
|
+
deleteBucketPolicy(command: simS3Commands.SimDeleteBucketPolicyCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeleteBucketPolicyCommandOutput>;
|
|
28
|
+
/** Handle a Put Public Access Block Command from the SDK. */
|
|
29
|
+
putPublicAccessBlock(command: simS3Commands.SimPutPublicAccessBlockCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutPublicAccessBlockCommandOutput>;
|
|
30
|
+
/** Handle a Get Public Access Block Command from the SDK. */
|
|
31
|
+
getPublicAccessBlock(command: simS3Commands.SimGetPublicAccessBlockCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetPublicAccessBlockCommandOutput>;
|
|
32
|
+
/** Handle a Delete Public Access Block Command from the SDK. */
|
|
33
|
+
deletePublicAccessBlock(command: simS3Commands.SimDeletePublicAccessBlockCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeletePublicAccessBlockCommandOutput>;
|
|
34
|
+
/** Handle a Put Bucket Website Command from the SDK. */
|
|
35
|
+
putBucketWebsite(command: simS3Commands.SimPutBucketWebsiteCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutBucketWebsiteCommandOutput>;
|
|
36
|
+
/** Handle a Put Bucket Notification Configuration Command from the SDK. */
|
|
37
|
+
putBucketNotificationConfiguration(command: simS3Commands.SimPutBucketNotificationConfigurationCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutBucketNotificationConfigurationCommandOutput>;
|
|
38
|
+
/** Handle a Get Bucket Notification Configuration Command from the SDK. */
|
|
39
|
+
getBucketNotificationConfiguration(command: simS3Commands.SimGetBucketNotificationConfigurationCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetBucketNotificationConfigurationCommandOutput>;
|
|
40
|
+
/** Handle a List Buckets Command from the SDK. */
|
|
41
|
+
listBuckets(command: simS3Commands.SimListBucketsCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimListBucketsCommandOutput>;
|
|
42
|
+
/** Handle a Put Object Command from the SDK. */
|
|
43
|
+
putObject(command: simS3Commands.SimPutObjectCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimPutObjectCommandOutput>;
|
|
44
|
+
/** Handle a Get Object Command from the SDK. */
|
|
45
|
+
getObject(command: simS3Commands.SimGetObjectCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimGetObjectCommandOutput>;
|
|
46
|
+
/** Handle a Delete Object Command from the SDK. */
|
|
47
|
+
deleteObject(command: simS3Commands.SimDeleteObjectCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeleteObjectCommandOutput>;
|
|
48
|
+
/** Handle a Delete Objects Command from the SDK. */
|
|
49
|
+
deleteObjects(command: simS3Commands.SimDeleteObjectsCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimDeleteObjectsCommandOutput>;
|
|
50
|
+
/** Handle a List Objects Command from the SDK. */
|
|
51
|
+
listObjects(command: simS3Commands.SimListObjectsCommand, options?: SimS3RequestOptions): Promise<simS3Commands.SimListObjectsCommandOutput>;
|
|
52
|
+
/** Handle a List Objects V2 Command from the SDK. */
|
|
53
|
+
listObjectsV2(command: simS3Commands.SimListObjectsV2Command, options?: SimS3RequestOptions): Promise<simS3Commands.SimListObjectsV2CommandOutput>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=sim-s3-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-s3-operations.d.ts","sourceRoot":"","sources":["../../../src/service/s3/sim-s3-operations.ts"],"names":[],"mappings":"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"}
|