@kensio/yulin 1.3.0 → 1.4.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/README.md +1 -0
- package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
- package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
- package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +10 -8
- 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 +22 -23
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-s3-notification-destinations.d.ts +11 -0
- package/dist/service/aws/factory/sim-aws-s3-notification-destinations.d.ts.map +1 -0
- package/dist/service/aws/factory/sim-aws-s3-notification-destinations.js +23 -0
- package/dist/service/aws/factory/sim-aws-s3-notification-destinations.js.map +1 -0
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
- package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
- package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
- package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
- package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -0
- package/dist/service/aws/sim-aws-service-accessors.d.ts.map +1 -1
- package/dist/service/aws/sim-aws-service-accessors.js +4 -0
- package/dist/service/aws/sim-aws-service-accessors.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-cfn-value-adapter.d.ts +4 -0
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-cfn-value-adapter.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-cfn-value-adapter.js +19 -2
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-cfn-value-adapter.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.d.ts +20 -4
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.js +28 -6
- package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.js.map +1 -1
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-capacity.d.ts +26 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-capacity.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-capacity.js +28 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-capacity.js.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.d.ts +26 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.js +27 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.js.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-indexes.d.ts +17 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-indexes.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-indexes.js +62 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-indexes.js.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-properties.d.ts +37 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-properties.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-properties.js +88 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-properties.js.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property-rules.d.ts +23 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property-rules.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property-rules.js +151 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property-rules.js.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property.d.ts +29 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property.js +26 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property.js.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replica-rules.d.ts +15 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replica-rules.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replica-rules.js +98 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replica-rules.js.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replicas.d.ts +48 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replicas.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replicas.js +78 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replicas.js.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-resource.factory.d.ts +53 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-resource.factory.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-resource.factory.js +46 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-resource.factory.js.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-simulated.d.ts +18 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-simulated.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-simulated.js +41 -0
- package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-simulated.js.map +1 -0
- package/dist/service/dynamodb/cfn/{table/sim-cfn-dynamodb-table-property-error.d.ts → property/sim-cfn-dynamodb-property-error.d.ts} +9 -5
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-error.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/{table/sim-cfn-dynamodb-table-property-error.js → property/sim-cfn-dynamodb-property-error.js} +11 -7
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-error.js.map +1 -0
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-rules.d.ts +54 -0
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-rules.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-rules.js +71 -0
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-rules.js.map +1 -0
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-scalars.d.ts +17 -0
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-scalars.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-scalars.js +35 -0
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-scalars.js.map +1 -0
- package/dist/service/dynamodb/cfn/{table/sim-cfn-dynamodb-table-values.d.ts → property/sim-cfn-dynamodb-property-values.d.ts} +23 -17
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-values.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/{table/sim-cfn-dynamodb-table-values.js → property/sim-cfn-dynamodb-property-values.js} +33 -30
- package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-values.js.map +1 -0
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +6 -4
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +15 -5
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js.map +1 -1
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-type.d.ts +14 -0
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-type.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-type.js +14 -0
- package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-type.js.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.d.ts +8 -26
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.js +23 -59
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.d.ts +2 -2
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.d.ts +2 -2
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js +4 -2
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts +2 -3
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js +13 -18
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-resource.factory.d.ts +7 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-resource.factory.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-resource.factory.js +5 -2
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-resource.factory.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.d.ts +3 -15
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.js +11 -33
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.d.ts +2 -2
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.d.ts +2 -2
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-time-to-live.d.ts +2 -2
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-time-to-live.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-time-to-live.js.map +1 -1
- package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.d.ts +26 -0
- package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.d.ts.map +1 -0
- package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.js +45 -0
- package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.js.map +1 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces-request.d.ts +12 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces-request.d.ts.map +1 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces-request.js +18 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces-request.js.map +1 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces.command.d.ts +133 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces.command.d.ts.map +1 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces.command.js +2 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces.command.js.map +1 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces.handler.d.ts +35 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces.handler.d.ts.map +1 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces.handler.js +39 -0
- package/dist/service/rekognition/command/detect-faces/detect-faces.handler.js.map +1 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels-request.d.ts +30 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels-request.d.ts.map +1 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels-request.js +71 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels-request.js.map +1 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels.command.d.ts +57 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels.command.d.ts.map +1 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels.command.js +2 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels.command.js.map +1 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels.handler.d.ts +35 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels.handler.d.ts.map +1 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels.handler.js +41 -0
- package/dist/service/rekognition/command/detect-labels/detect-labels.handler.js.map +1 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels-request.d.ts +17 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels-request.d.ts.map +1 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels-request.js +30 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels-request.js.map +1 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.command.d.ts +42 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.command.d.ts.map +1 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.command.js +2 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.command.js.map +1 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.handler.d.ts +36 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.handler.d.ts.map +1 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.handler.js +47 -0
- package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.handler.js.map +1 -0
- package/dist/service/rekognition/command/sim-rekognition-min-confidence.d.ts +19 -0
- package/dist/service/rekognition/command/sim-rekognition-min-confidence.d.ts.map +1 -0
- package/dist/service/rekognition/command/sim-rekognition-min-confidence.js +34 -0
- package/dist/service/rekognition/command/sim-rekognition-min-confidence.js.map +1 -0
- package/dist/service/rekognition/command/sim-rekognition-request-options.d.ts +16 -0
- package/dist/service/rekognition/command/sim-rekognition-request-options.d.ts.map +1 -0
- package/dist/service/rekognition/command/sim-rekognition-request-options.js +2 -0
- package/dist/service/rekognition/command/sim-rekognition-request-options.js.map +1 -0
- package/dist/service/rekognition/command/sim-rekognition-unsimulated-input.d.ts +19 -0
- package/dist/service/rekognition/command/sim-rekognition-unsimulated-input.d.ts.map +1 -0
- package/dist/service/rekognition/command/sim-rekognition-unsimulated-input.js +30 -0
- package/dist/service/rekognition/command/sim-rekognition-unsimulated-input.js.map +1 -0
- package/dist/service/rekognition/error/sim-rekognition.error.d.ts +87 -0
- package/dist/service/rekognition/error/sim-rekognition.error.d.ts.map +1 -0
- package/dist/service/rekognition/error/sim-rekognition.error.js +95 -0
- package/dist/service/rekognition/error/sim-rekognition.error.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-declared-value.d.ts +26 -0
- package/dist/service/rekognition/face/sim-rekognition-declared-value.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-declared-value.js +28 -0
- package/dist/service/rekognition/face/sim-rekognition-declared-value.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-detected-face.d.ts +29 -0
- package/dist/service/rekognition/face/sim-rekognition-detected-face.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-detected-face.js +53 -0
- package/dist/service/rekognition/face/sim-rekognition-detected-face.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-emotion-name.d.ts +18 -0
- package/dist/service/rekognition/face/sim-rekognition-emotion-name.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-emotion-name.js +27 -0
- package/dist/service/rekognition/face/sim-rekognition-emotion-name.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-age-and-gender.d.ts +24 -0
- package/dist/service/rekognition/face/sim-rekognition-face-age-and-gender.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-age-and-gender.js +62 -0
- package/dist/service/rekognition/face/sim-rekognition-face-age-and-gender.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-attributes.d.ts +41 -0
- package/dist/service/rekognition/face/sim-rekognition-face-attributes.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-attributes.js +75 -0
- package/dist/service/rekognition/face/sim-rekognition-face-attributes.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-declaration.d.ts +116 -0
- package/dist/service/rekognition/face/sim-rekognition-face-declaration.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-declaration.js +2 -0
- package/dist/service/rekognition/face/sim-rekognition-face-declaration.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-defaults.d.ts +31 -0
- package/dist/service/rekognition/face/sim-rekognition-face-defaults.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-defaults.js +120 -0
- package/dist/service/rekognition/face/sim-rekognition-face-defaults.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-detail-builder.d.ts +31 -0
- package/dist/service/rekognition/face/sim-rekognition-face-detail-builder.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-detail-builder.js +38 -0
- package/dist/service/rekognition/face/sim-rekognition-face-detail-builder.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-detection.d.ts +21 -0
- package/dist/service/rekognition/face/sim-rekognition-face-detection.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-detection.js +33 -0
- package/dist/service/rekognition/face/sim-rekognition-face-detection.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-emotions.d.ts +23 -0
- package/dist/service/rekognition/face/sim-rekognition-face-emotions.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-emotions.js +55 -0
- package/dist/service/rekognition/face/sim-rekognition-face-emotions.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-eye-direction.d.ts +19 -0
- package/dist/service/rekognition/face/sim-rekognition-face-eye-direction.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-eye-direction.js +31 -0
- package/dist/service/rekognition/face/sim-rekognition-face-eye-direction.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-feature-members.d.ts +56 -0
- package/dist/service/rekognition/face/sim-rekognition-face-feature-members.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-feature-members.js +22 -0
- package/dist/service/rekognition/face/sim-rekognition-face-feature-members.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-features.d.ts +19 -0
- package/dist/service/rekognition/face/sim-rekognition-face-features.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-features.js +39 -0
- package/dist/service/rekognition/face/sim-rekognition-face-features.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-frame.d.ts +27 -0
- package/dist/service/rekognition/face/sim-rekognition-face-frame.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-frame.js +74 -0
- package/dist/service/rekognition/face/sim-rekognition-face-frame.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-landmark-points.d.ts +25 -0
- package/dist/service/rekognition/face/sim-rekognition-face-landmark-points.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-landmark-points.js +89 -0
- package/dist/service/rekognition/face/sim-rekognition-face-landmark-points.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-landmarks.d.ts +20 -0
- package/dist/service/rekognition/face/sim-rekognition-face-landmarks.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-landmarks.js +32 -0
- package/dist/service/rekognition/face/sim-rekognition-face-landmarks.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-measures.d.ts +27 -0
- package/dist/service/rekognition/face/sim-rekognition-face-measures.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-face-measures.js +49 -0
- package/dist/service/rekognition/face/sim-rekognition-face-measures.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-faces.d.ts +36 -0
- package/dist/service/rekognition/face/sim-rekognition-faces.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-faces.js +49 -0
- package/dist/service/rekognition/face/sim-rekognition-faces.js.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-landmark-name.d.ts +30 -0
- package/dist/service/rekognition/face/sim-rekognition-landmark-name.d.ts.map +1 -0
- package/dist/service/rekognition/face/sim-rekognition-landmark-name.js +66 -0
- package/dist/service/rekognition/face/sim-rekognition-landmark-name.js.map +1 -0
- package/dist/service/rekognition/image/s3/sim-aws-rekognition-image-objects.d.ts +48 -0
- package/dist/service/rekognition/image/s3/sim-aws-rekognition-image-objects.d.ts.map +1 -0
- package/dist/service/rekognition/image/s3/sim-aws-rekognition-image-objects.js +78 -0
- package/dist/service/rekognition/image/s3/sim-aws-rekognition-image-objects.js.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-bounding-box.d.ts +48 -0
- package/dist/service/rekognition/image/sim-rekognition-bounding-box.d.ts.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-bounding-box.js +50 -0
- package/dist/service/rekognition/image/sim-rekognition-bounding-box.js.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image-format.d.ts +17 -0
- package/dist/service/rekognition/image/sim-rekognition-image-format.d.ts.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image-format.js +28 -0
- package/dist/service/rekognition/image/sim-rekognition-image-format.js.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image-hash.d.ts +15 -0
- package/dist/service/rekognition/image/sim-rekognition-image-hash.d.ts.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image-hash.js +20 -0
- package/dist/service/rekognition/image/sim-rekognition-image-hash.js.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image-input.d.ts +23 -0
- package/dist/service/rekognition/image/sim-rekognition-image-input.d.ts.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image-input.js +2 -0
- package/dist/service/rekognition/image/sim-rekognition-image-input.js.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image-objects.d.ts +35 -0
- package/dist/service/rekognition/image/sim-rekognition-image-objects.d.ts.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image-objects.js +21 -0
- package/dist/service/rekognition/image/sim-rekognition-image-objects.js.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image-request.d.ts +59 -0
- package/dist/service/rekognition/image/sim-rekognition-image-request.d.ts.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image-request.js +88 -0
- package/dist/service/rekognition/image/sim-rekognition-image-request.js.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image.d.ts +30 -0
- package/dist/service/rekognition/image/sim-rekognition-image.d.ts.map +1 -0
- package/dist/service/rekognition/image/sim-rekognition-image.js +36 -0
- package/dist/service/rekognition/image/sim-rekognition-image.js.map +1 -0
- package/dist/service/rekognition/index.d.ts +18 -0
- package/dist/service/rekognition/index.d.ts.map +1 -0
- package/dist/service/rekognition/index.js +13 -0
- package/dist/service/rekognition/index.js.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-detected-label.d.ts +11 -0
- package/dist/service/rekognition/label/sim-rekognition-detected-label.d.ts.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-detected-label.js +49 -0
- package/dist/service/rekognition/label/sim-rekognition-detected-label.js.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-label-declaration.d.ts +43 -0
- package/dist/service/rekognition/label/sim-rekognition-label-declaration.d.ts.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-label-declaration.js +10 -0
- package/dist/service/rekognition/label/sim-rekognition-label-declaration.js.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-label-defaults.d.ts +22 -0
- package/dist/service/rekognition/label/sim-rekognition-label-defaults.d.ts.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-label-defaults.js +42 -0
- package/dist/service/rekognition/label/sim-rekognition-label-defaults.js.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-label-detection.d.ts +32 -0
- package/dist/service/rekognition/label/sim-rekognition-label-detection.d.ts.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-label-detection.js +35 -0
- package/dist/service/rekognition/label/sim-rekognition-label-detection.js.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-label-instances.d.ts +19 -0
- package/dist/service/rekognition/label/sim-rekognition-label-instances.d.ts.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-label-instances.js +28 -0
- package/dist/service/rekognition/label/sim-rekognition-label-instances.js.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-labels.d.ts +30 -0
- package/dist/service/rekognition/label/sim-rekognition-labels.d.ts.map +1 -0
- package/dist/service/rekognition/label/sim-rekognition-labels.js +38 -0
- package/dist/service/rekognition/label/sim-rekognition-labels.js.map +1 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-labels.d.ts +29 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-labels.d.ts.map +1 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-labels.js +85 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-labels.js.map +1 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-result.d.ts +46 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-result.d.ts.map +1 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-result.js +79 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-result.js.map +1 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.d.ts +55 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.d.ts.map +1 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.js +87 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.js.map +1 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation.d.ts +35 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation.d.ts.map +1 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation.js +57 -0
- package/dist/service/rekognition/moderation/sim-rekognition-moderation.js.map +1 -0
- package/dist/service/rekognition/rule/sim-rekognition-declared-confidence.d.ts +21 -0
- package/dist/service/rekognition/rule/sim-rekognition-declared-confidence.d.ts.map +1 -0
- package/dist/service/rekognition/rule/sim-rekognition-declared-confidence.js +34 -0
- package/dist/service/rekognition/rule/sim-rekognition-declared-confidence.js.map +1 -0
- package/dist/service/rekognition/rule/sim-rekognition-result-rules.d.ts +51 -0
- package/dist/service/rekognition/rule/sim-rekognition-result-rules.d.ts.map +1 -0
- package/dist/service/rekognition/rule/sim-rekognition-result-rules.js +80 -0
- package/dist/service/rekognition/rule/sim-rekognition-result-rules.js.map +1 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-image-files.d.ts +27 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-image-files.d.ts.map +1 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-image-files.js +62 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-image-files.js.map +1 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-image.d.ts +26 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-image.d.ts.map +1 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-image.js +32 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-image.js.map +1 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-images.d.ts +52 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-images.d.ts.map +1 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-images.js +63 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-images.js.map +1 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-rules.d.ts +29 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-rules.d.ts.map +1 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-rules.js +31 -0
- package/dist/service/rekognition/sample/sim-rekognition-sample-rules.js.map +1 -0
- package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.d.ts +20 -0
- package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.d.ts.map +1 -0
- package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.js +38 -0
- package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.js.map +1 -0
- package/dist/service/rekognition/sim-rekognition.d.ts +95 -0
- package/dist/service/rekognition/sim-rekognition.d.ts.map +1 -0
- package/dist/service/rekognition/sim-rekognition.js +124 -0
- package/dist/service/rekognition/sim-rekognition.js.map +1 -0
- package/package.json +6 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.d.ts.map +0 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.js.map +0 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.d.ts.map +0 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-face-landmarks.d.ts","sourceRoot":"","sources":["../../../../src/service/rekognition/face/sim-rekognition-face-landmarks.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAIhG;;GAEG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0C;IAEpE,YAAY,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,+BAAoC,EAK1E;IAED;;;;;;OAMG;IACH,KAAK,CACH,OAAO,EAAE,+BAA+B,EACxC,UAAU,EAAE,4BAA4B,GACvC,IAAI,CAMN;IAED,OAAO,CAAC,QAAQ;CAejB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { simRekognitionDefaultFaceAttribute, } from "./sim-rekognition-face-attributes.js";
|
|
2
|
+
import { SimRekognitionFaceLandmarkPoints } from "./sim-rekognition-face-landmark-points.js";
|
|
3
|
+
import { simRekognitionDefaultLandmarkNames } from "./sim-rekognition-landmark-name.js";
|
|
4
|
+
/**
|
|
5
|
+
* The landmarks one declared face reports.
|
|
6
|
+
*/
|
|
7
|
+
export class SimRekognitionFaceLandmarks {
|
|
8
|
+
landmarks;
|
|
9
|
+
constructor(subject, declared = {}) {
|
|
10
|
+
this.landmarks = new SimRekognitionFaceLandmarkPoints(subject, declared).resolve();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Add the landmarks this face declared to a detail.
|
|
14
|
+
*
|
|
15
|
+
* A request that did not ask for `ALL` gets the five landmarks real
|
|
16
|
+
* Rekognition reports by default, so a caller reading `chinBottom` from a
|
|
17
|
+
* default request reads nothing here and nothing on AWS.
|
|
18
|
+
*/
|
|
19
|
+
addTo(builder, attributes) {
|
|
20
|
+
builder.carry("Landmarks", simRekognitionDefaultFaceAttribute, this.reported(attributes));
|
|
21
|
+
}
|
|
22
|
+
reported(attributes) {
|
|
23
|
+
if (this.landmarks.length === 0) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
if (attributes.wantsEveryLandmark()) {
|
|
27
|
+
return this.landmarks;
|
|
28
|
+
}
|
|
29
|
+
return this.landmarks.filter((landmark) => simRekognitionDefaultLandmarkNames.has(landmark.Type));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=sim-rekognition-face-landmarks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-face-landmarks.js","sourceRoot":"","sources":["../../../../src/service/rekognition/face/sim-rekognition-face-landmarks.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kCAAkC,GAEnC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAExF;;GAEG;AACH,MAAM,OAAO,2BAA2B;IACrB,SAAS,CAA0C;IAEpE,YAAY,OAAe,EAAE,QAAQ,GAAoC,EAAE;QACzE,IAAI,CAAC,SAAS,GAAG,IAAI,gCAAgC,CACnD,OAAO,EACP,QAAQ,CACT,CAAC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CACH,OAAwC,EACxC,UAAwC;QAExC,OAAO,CAAC,KAAK,CACX,WAAW,EACX,kCAAkC,EAClC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC1B,CAAC;IACJ,CAAC;IAEO,QAAQ,CACd,UAAwC;QAExC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACxC,kCAAkC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CACtD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ranges the numbers declared for a face have to sit in.
|
|
3
|
+
*
|
|
4
|
+
* Pose, eye direction, quality and age all carry plain numbers with a meaning
|
|
5
|
+
* of their own, so each is checked against the range real Rekognition reports
|
|
6
|
+
* it in and refused where it was declared.
|
|
7
|
+
*
|
|
8
|
+
* Angles and percentages go through `Math.fround`, as confidences do: real
|
|
9
|
+
* Rekognition reports them as float32 values such as `-5.83309268951416`.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SimRekognitionFaceMeasures {
|
|
12
|
+
private readonly subject;
|
|
13
|
+
constructor(subject: string);
|
|
14
|
+
/**
|
|
15
|
+
* An angle in degrees.
|
|
16
|
+
*/
|
|
17
|
+
angle(part: string, value: number): number;
|
|
18
|
+
/**
|
|
19
|
+
* A measure Rekognition reports from 0 to 100.
|
|
20
|
+
*/
|
|
21
|
+
percentage(part: string, value: number): number;
|
|
22
|
+
/**
|
|
23
|
+
* A whole number of years.
|
|
24
|
+
*/
|
|
25
|
+
years(part: string, value: number): number;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=sim-rekognition-face-measures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-face-measures.d.ts","sourceRoot":"","sources":["../../../../src/service/rekognition/face/sim-rekognition-face-measures.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,MAAM,EAAI;IAEhD;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CASzC;IAED;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAS9C;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUzC;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SimRekognitionDeclarationError } from "../error/sim-rekognition.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* The ranges the numbers declared for a face have to sit in.
|
|
4
|
+
*
|
|
5
|
+
* Pose, eye direction, quality and age all carry plain numbers with a meaning
|
|
6
|
+
* of their own, so each is checked against the range real Rekognition reports
|
|
7
|
+
* it in and refused where it was declared.
|
|
8
|
+
*
|
|
9
|
+
* Angles and percentages go through `Math.fround`, as confidences do: real
|
|
10
|
+
* Rekognition reports them as float32 values such as `-5.83309268951416`.
|
|
11
|
+
*/
|
|
12
|
+
export class SimRekognitionFaceMeasures {
|
|
13
|
+
subject;
|
|
14
|
+
constructor(subject) {
|
|
15
|
+
this.subject = subject;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* An angle in degrees.
|
|
19
|
+
*/
|
|
20
|
+
angle(part, value) {
|
|
21
|
+
if (!Number.isFinite(value) || value < -180 || value > 180) {
|
|
22
|
+
throw new SimRekognitionDeclarationError(`A ${part} declared for '${this.subject}' is ${String(value)}, which ` +
|
|
23
|
+
`is not an angle in degrees from -180 to 180.`);
|
|
24
|
+
}
|
|
25
|
+
return Math.fround(value);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A measure Rekognition reports from 0 to 100.
|
|
29
|
+
*/
|
|
30
|
+
percentage(part, value) {
|
|
31
|
+
if (!Number.isFinite(value) || value < 0 || value > 100) {
|
|
32
|
+
throw new SimRekognitionDeclarationError(`A ${part} declared for '${this.subject}' is ${String(value)}, which ` +
|
|
33
|
+
`is not a measure from 0 to 100.`);
|
|
34
|
+
}
|
|
35
|
+
return Math.fround(value);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* A whole number of years.
|
|
39
|
+
*/
|
|
40
|
+
years(part, value) {
|
|
41
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
42
|
+
throw new SimRekognitionDeclarationError(`An age declared for '${this.subject}' has a ${part} of ` +
|
|
43
|
+
`${String(value)}, which is not a whole number of years from 0 ` +
|
|
44
|
+
`upwards.`);
|
|
45
|
+
}
|
|
46
|
+
return value;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=sim-rekognition-face-measures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-face-measures.js","sourceRoot":"","sources":["../../../../src/service/rekognition/face/sim-rekognition-face-measures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAEnF;;;;;;;;;GASG;AACH,MAAM,OAAO,0BAA0B;IACR,OAAO;IAApC,YAA6B,OAAe;uBAAf,OAAO;IAAW,CAAC;IAEhD;;OAEG;IACH,KAAK,CAAC,IAAY,EAAE,KAAa;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAC3D,MAAM,IAAI,8BAA8B,CACtC,KAAK,IAAI,kBAAkB,IAAI,CAAC,OAAO,QAAQ,MAAM,CAAC,KAAK,CAAC,UAAU;gBACpE,8CAA8C,CACjD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAY,EAAE,KAAa;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YACxD,MAAM,IAAI,8BAA8B,CACtC,KAAK,IAAI,kBAAkB,IAAI,CAAC,OAAO,QAAQ,MAAM,CAAC,KAAK,CAAC,UAAU;gBACpE,iCAAiC,CACpC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAY,EAAE,KAAa;QAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,8BAA8B,CACtC,wBAAwB,IAAI,CAAC,OAAO,WAAW,IAAI,MAAM;gBACvD,GAAG,MAAM,CAAC,KAAK,CAAC,gDAAgD;gBAChE,UAAU,CACb,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { SimRekognitionImage } from "../image/sim-rekognition-image.js";
|
|
2
|
+
import type { SimRekognitionFacesResult } from "./sim-rekognition-face-declaration.js";
|
|
3
|
+
import { SimRekognitionFaceDetection } from "./sim-rekognition-face-detection.js";
|
|
4
|
+
/**
|
|
5
|
+
* The face results simulated Rekognition answers with.
|
|
6
|
+
*
|
|
7
|
+
* The rules are grouped per operation rather than hung off the service, so
|
|
8
|
+
* `faces()` and the operation groups beside it each own the result shape their
|
|
9
|
+
* own operation answers with.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SimRekognitionFaces {
|
|
12
|
+
private readonly rules;
|
|
13
|
+
/**
|
|
14
|
+
* The sample images are declared as ordinary hash rules, so a rule a test
|
|
15
|
+
* registers for the same image replaces the built-in one through the usual
|
|
16
|
+
* precedence rather than through anything special-cased here.
|
|
17
|
+
*/
|
|
18
|
+
constructor();
|
|
19
|
+
/**
|
|
20
|
+
* Answer with this result for any image no other rule matches.
|
|
21
|
+
*/
|
|
22
|
+
byDefault(result: SimRekognitionFacesResult): void;
|
|
23
|
+
/**
|
|
24
|
+
* Answer with this result for the S3 object with this exact name.
|
|
25
|
+
*/
|
|
26
|
+
onName(name: string, result: SimRekognitionFacesResult): void;
|
|
27
|
+
/**
|
|
28
|
+
* Answer with this result for the image with this exact content hash.
|
|
29
|
+
*/
|
|
30
|
+
onHash(hash: string, result: SimRekognitionFacesResult): void;
|
|
31
|
+
/**
|
|
32
|
+
* The face result for one image.
|
|
33
|
+
*/
|
|
34
|
+
detectionFor(image: SimRekognitionImage): SimRekognitionFaceDetection;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=sim-rekognition-faces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-faces.d.ts","sourceRoot":"","sources":["../../../../src/service/rekognition/face/sim-rekognition-faces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAG7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAGlF;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAGlB;IAEJ;;;;OAIG;IACH,cAIC;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAEjD;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAE5D;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAE5D;IAED;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,2BAA2B,CAEpE;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SimRekognitionResultRules } from "../rule/sim-rekognition-result-rules.js";
|
|
2
|
+
import { simRekognitionSampleFaceRules } from "../sample/sim-rekognition-sample-rules.js";
|
|
3
|
+
import { SimRekognitionFaceDetection } from "./sim-rekognition-face-detection.js";
|
|
4
|
+
import { simRekognitionDefaultFaces } from "./sim-rekognition-face-defaults.js";
|
|
5
|
+
/**
|
|
6
|
+
* The face results simulated Rekognition answers with.
|
|
7
|
+
*
|
|
8
|
+
* The rules are grouped per operation rather than hung off the service, so
|
|
9
|
+
* `faces()` and the operation groups beside it each own the result shape their
|
|
10
|
+
* own operation answers with.
|
|
11
|
+
*/
|
|
12
|
+
export class SimRekognitionFaces {
|
|
13
|
+
rules = new SimRekognitionResultRules(new SimRekognitionFaceDetection(simRekognitionDefaultFaces));
|
|
14
|
+
/**
|
|
15
|
+
* The sample images are declared as ordinary hash rules, so a rule a test
|
|
16
|
+
* registers for the same image replaces the built-in one through the usual
|
|
17
|
+
* precedence rather than through anything special-cased here.
|
|
18
|
+
*/
|
|
19
|
+
constructor() {
|
|
20
|
+
for (const sample of simRekognitionSampleFaceRules) {
|
|
21
|
+
this.onHash(sample.image.hash, sample.result);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Answer with this result for any image no other rule matches.
|
|
26
|
+
*/
|
|
27
|
+
byDefault(result) {
|
|
28
|
+
this.rules.byDefault(new SimRekognitionFaceDetection(result));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Answer with this result for the S3 object with this exact name.
|
|
32
|
+
*/
|
|
33
|
+
onName(name, result) {
|
|
34
|
+
this.rules.onName(name, new SimRekognitionFaceDetection(result));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Answer with this result for the image with this exact content hash.
|
|
38
|
+
*/
|
|
39
|
+
onHash(hash, result) {
|
|
40
|
+
this.rules.onHash(hash, new SimRekognitionFaceDetection(result));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The face result for one image.
|
|
44
|
+
*/
|
|
45
|
+
detectionFor(image) {
|
|
46
|
+
return this.rules.resultFor(image);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=sim-rekognition-faces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-faces.js","sourceRoot":"","sources":["../../../../src/service/rekognition/face/sim-rekognition-faces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAE1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,OAAO,mBAAmB;IACb,KAAK,GACpB,IAAI,yBAAyB,CAC3B,IAAI,2BAA2B,CAAC,0BAA0B,CAAC,CAC5D,CAAC;IAEJ;;;;OAIG;IACH;QACE,KAAK,MAAM,MAAM,IAAI,6BAA6B,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAiC;QACzC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAY,EAAE,MAAiC;QACpD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAY,EAAE,MAAiC;QACpD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAA0B;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every facial landmark real Rekognition reports, in the order it reports
|
|
3
|
+
* them in.
|
|
4
|
+
*
|
|
5
|
+
* The order is the one the AWS `DetectFaces` example response uses, so
|
|
6
|
+
* landmarks come back in the same order whichever order a declaration wrote
|
|
7
|
+
* them in.
|
|
8
|
+
*
|
|
9
|
+
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_Landmark.html
|
|
10
|
+
*/
|
|
11
|
+
export declare const simRekognitionLandmarkNames: readonly ["eyeLeft", "eyeRight", "mouthLeft", "mouthRight", "nose", "leftEyeBrowLeft", "leftEyeBrowRight", "leftEyeBrowUp", "rightEyeBrowLeft", "rightEyeBrowRight", "rightEyeBrowUp", "leftEyeLeft", "leftEyeRight", "leftEyeUp", "leftEyeDown", "rightEyeLeft", "rightEyeRight", "rightEyeUp", "rightEyeDown", "noseLeft", "noseRight", "mouthUp", "mouthDown", "leftPupil", "rightPupil", "upperJawlineLeft", "midJawlineLeft", "chinBottom", "midJawlineRight", "upperJawlineRight"];
|
|
12
|
+
/**
|
|
13
|
+
* The name of one facial landmark.
|
|
14
|
+
*/
|
|
15
|
+
export type SimRekognitionLandmarkName = (typeof simRekognitionLandmarkNames)[number];
|
|
16
|
+
/**
|
|
17
|
+
* The landmarks a response carries when `ALL` was not asked for.
|
|
18
|
+
*
|
|
19
|
+
* Real Rekognition reports these five for a default request and the whole set
|
|
20
|
+
* for `ALL`, which is what makes `Attributes` worth simulating: a caller
|
|
21
|
+
* reading `chinBottom` from a default request reads nothing on AWS either.
|
|
22
|
+
*
|
|
23
|
+
* https://docs.aws.amazon.com/rekognition/latest/dg/faces-detect-images.html
|
|
24
|
+
*/
|
|
25
|
+
export declare const simRekognitionDefaultLandmarkNames: ReadonlySet<string>;
|
|
26
|
+
/**
|
|
27
|
+
* Whether a name is one of the landmarks Rekognition reports.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isSimRekognitionLandmarkName(name: string): name is SimRekognitionLandmarkName;
|
|
30
|
+
//# sourceMappingURL=sim-rekognition-landmark-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-landmark-name.d.ts","sourceRoot":"","sources":["../../../../src/service/rekognition/face/sim-rekognition-landmark-name.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,YACtC,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACZ,MAAM,EACN,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,CACX,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC,EAAE,WAAW,CAAC,MAAM,CAO/D,CAAC;AAIL;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,GACX,IAAI,IAAI,0BAA0B,CAEpC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every facial landmark real Rekognition reports, in the order it reports
|
|
3
|
+
* them in.
|
|
4
|
+
*
|
|
5
|
+
* The order is the one the AWS `DetectFaces` example response uses, so
|
|
6
|
+
* landmarks come back in the same order whichever order a declaration wrote
|
|
7
|
+
* them in.
|
|
8
|
+
*
|
|
9
|
+
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_Landmark.html
|
|
10
|
+
*/
|
|
11
|
+
export const simRekognitionLandmarkNames = [
|
|
12
|
+
"eyeLeft",
|
|
13
|
+
"eyeRight",
|
|
14
|
+
"mouthLeft",
|
|
15
|
+
"mouthRight",
|
|
16
|
+
"nose",
|
|
17
|
+
"leftEyeBrowLeft",
|
|
18
|
+
"leftEyeBrowRight",
|
|
19
|
+
"leftEyeBrowUp",
|
|
20
|
+
"rightEyeBrowLeft",
|
|
21
|
+
"rightEyeBrowRight",
|
|
22
|
+
"rightEyeBrowUp",
|
|
23
|
+
"leftEyeLeft",
|
|
24
|
+
"leftEyeRight",
|
|
25
|
+
"leftEyeUp",
|
|
26
|
+
"leftEyeDown",
|
|
27
|
+
"rightEyeLeft",
|
|
28
|
+
"rightEyeRight",
|
|
29
|
+
"rightEyeUp",
|
|
30
|
+
"rightEyeDown",
|
|
31
|
+
"noseLeft",
|
|
32
|
+
"noseRight",
|
|
33
|
+
"mouthUp",
|
|
34
|
+
"mouthDown",
|
|
35
|
+
"leftPupil",
|
|
36
|
+
"rightPupil",
|
|
37
|
+
"upperJawlineLeft",
|
|
38
|
+
"midJawlineLeft",
|
|
39
|
+
"chinBottom",
|
|
40
|
+
"midJawlineRight",
|
|
41
|
+
"upperJawlineRight",
|
|
42
|
+
];
|
|
43
|
+
/**
|
|
44
|
+
* The landmarks a response carries when `ALL` was not asked for.
|
|
45
|
+
*
|
|
46
|
+
* Real Rekognition reports these five for a default request and the whole set
|
|
47
|
+
* for `ALL`, which is what makes `Attributes` worth simulating: a caller
|
|
48
|
+
* reading `chinBottom` from a default request reads nothing on AWS either.
|
|
49
|
+
*
|
|
50
|
+
* https://docs.aws.amazon.com/rekognition/latest/dg/faces-detect-images.html
|
|
51
|
+
*/
|
|
52
|
+
export const simRekognitionDefaultLandmarkNames = new Set([
|
|
53
|
+
"eyeLeft",
|
|
54
|
+
"eyeRight",
|
|
55
|
+
"nose",
|
|
56
|
+
"mouthLeft",
|
|
57
|
+
"mouthRight",
|
|
58
|
+
]);
|
|
59
|
+
const landmarkNames = new Set(simRekognitionLandmarkNames);
|
|
60
|
+
/**
|
|
61
|
+
* Whether a name is one of the landmarks Rekognition reports.
|
|
62
|
+
*/
|
|
63
|
+
export function isSimRekognitionLandmarkName(name) {
|
|
64
|
+
return landmarkNames.has(name);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=sim-rekognition-landmark-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-landmark-name.js","sourceRoot":"","sources":["../../../../src/service/rekognition/face/sim-rekognition-landmark-name.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;IACZ,MAAM;IACN,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,WAAW;IACX,aAAa;IACb,cAAc;IACd,eAAe;IACf,YAAY;IACZ,cAAc;IACd,UAAU;IACV,WAAW;IACX,SAAS;IACT,WAAW;IACX,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,mBAAmB;CACX,CAAC;AAQX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,IAAI,GAAG,CAA6B;IAClC,SAAS;IACT,UAAU;IACV,MAAM;IACN,WAAW;IACX,YAAY;CACb,CAAC,CAAC;AAEL,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAY;IAEZ,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
|
|
2
|
+
import type { SimAws } from "../../../aws/sim-aws.js";
|
|
3
|
+
import type { SimRekognitionImageObjectRequest, SimRekognitionImageObjects } from "../sim-rekognition-image-objects.js";
|
|
4
|
+
interface SimAwsRekognitionImageObjectsProperties {
|
|
5
|
+
readonly simAws: SimAws;
|
|
6
|
+
readonly accountRegionScope: SimAwsAccountRegionScope;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The simulated S3 objects of one simulated AWS instance, as images
|
|
10
|
+
* Rekognition can detect on.
|
|
11
|
+
*
|
|
12
|
+
* The Bucket is found through the S3 Bucket registry rather than through this
|
|
13
|
+
* scope's own S3, so a Bucket owned by another Account resolves, as real
|
|
14
|
+
* Rekognition reads across Accounts given a Bucket policy that allows it.
|
|
15
|
+
* The read itself is an ordinary simulated GetObject made as the caller, so
|
|
16
|
+
* that policy is what decides it.
|
|
17
|
+
*/
|
|
18
|
+
export declare class SimAwsRekognitionImageObjects implements SimRekognitionImageObjects {
|
|
19
|
+
private readonly simAws;
|
|
20
|
+
private readonly accountRegionScope;
|
|
21
|
+
constructor(properties: SimAwsRekognitionImageObjectsProperties);
|
|
22
|
+
/**
|
|
23
|
+
* Read an image object's bytes.
|
|
24
|
+
*
|
|
25
|
+
* Every way this can fail becomes InvalidS3ObjectException, as it does on
|
|
26
|
+
* real Rekognition, which reports a missing Bucket, a missing object and an
|
|
27
|
+
* object it may not read with the same error. The underlying simulator error
|
|
28
|
+
* is kept as the `cause`, so a missing `s3:GetObject` grant is still
|
|
29
|
+
* diagnosable from the error that was thrown.
|
|
30
|
+
*/
|
|
31
|
+
read(request: SimRekognitionImageObjectRequest): Promise<Uint8Array>;
|
|
32
|
+
/**
|
|
33
|
+
* Where the named Bucket lives, refusing one this Region cannot reach.
|
|
34
|
+
*
|
|
35
|
+
* Real Rekognition reads a Bucket in its own Region only, and reports one
|
|
36
|
+
* in another Region as an S3 object problem rather than as a request
|
|
37
|
+
* problem. The message says which Region the Bucket is in, because that is
|
|
38
|
+
* the part a caller cannot see from the request.
|
|
39
|
+
*/
|
|
40
|
+
private requireBucketScope;
|
|
41
|
+
private getObjectBytes;
|
|
42
|
+
/**
|
|
43
|
+
* The message real Rekognition reports every S3 failure with.
|
|
44
|
+
*/
|
|
45
|
+
private unableToGet;
|
|
46
|
+
}
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=sim-aws-rekognition-image-objects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-aws-rekognition-image-objects.d.ts","sourceRoot":"","sources":["../../../../../src/service/rekognition/image/s3/sim-aws-rekognition-image-objects.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EACV,gCAAgC,EAChC,0BAA0B,EAC3B,MAAM,qCAAqC,CAAC;AAE7C,UAAU,uCAAuC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;CACvD;AAED;;;;;;;;;GASG;AACH,qBAAa,6BAA8B,YAAW,0BAA0B;IAC9E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAE9D,YAAY,UAAU,EAAE,uCAAuC,EAG9D;IAED;;;;;;;;OAQG;IACG,IAAI,CAAC,OAAO,EAAE,gCAAgC,GAAG,OAAO,CAAC,UAAU,CAAC,CAWzE;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;YAwBZ,cAAc;IAqB5B;;OAEG;IACH,OAAO,CAAC,WAAW;CAOpB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { buffer } from "node:stream/consumers";
|
|
2
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
3
|
+
import { SimRekognitionInvalidS3ObjectException } from "../../error/sim-rekognition.error.js";
|
|
4
|
+
/**
|
|
5
|
+
* The simulated S3 objects of one simulated AWS instance, as images
|
|
6
|
+
* Rekognition can detect on.
|
|
7
|
+
*
|
|
8
|
+
* The Bucket is found through the S3 Bucket registry rather than through this
|
|
9
|
+
* scope's own S3, so a Bucket owned by another Account resolves, as real
|
|
10
|
+
* Rekognition reads across Accounts given a Bucket policy that allows it.
|
|
11
|
+
* The read itself is an ordinary simulated GetObject made as the caller, so
|
|
12
|
+
* that policy is what decides it.
|
|
13
|
+
*/
|
|
14
|
+
export class SimAwsRekognitionImageObjects {
|
|
15
|
+
simAws;
|
|
16
|
+
accountRegionScope;
|
|
17
|
+
constructor(properties) {
|
|
18
|
+
this.simAws = properties.simAws;
|
|
19
|
+
this.accountRegionScope = properties.accountRegionScope;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Read an image object's bytes.
|
|
23
|
+
*
|
|
24
|
+
* Every way this can fail becomes InvalidS3ObjectException, as it does on
|
|
25
|
+
* real Rekognition, which reports a missing Bucket, a missing object and an
|
|
26
|
+
* object it may not read with the same error. The underlying simulator error
|
|
27
|
+
* is kept as the `cause`, so a missing `s3:GetObject` grant is still
|
|
28
|
+
* diagnosable from the error that was thrown.
|
|
29
|
+
*/
|
|
30
|
+
async read(request) {
|
|
31
|
+
const bucketScope = this.requireBucketScope(request);
|
|
32
|
+
try {
|
|
33
|
+
return await this.getObjectBytes(bucketScope, request);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
throw new SimRekognitionInvalidS3ObjectException(`${this.unableToGet(request)} (${String(error)})`, { cause: error });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Where the named Bucket lives, refusing one this Region cannot reach.
|
|
41
|
+
*
|
|
42
|
+
* Real Rekognition reads a Bucket in its own Region only, and reports one
|
|
43
|
+
* in another Region as an S3 object problem rather than as a request
|
|
44
|
+
* problem. The message says which Region the Bucket is in, because that is
|
|
45
|
+
* the part a caller cannot see from the request.
|
|
46
|
+
*/
|
|
47
|
+
requireBucketScope(request) {
|
|
48
|
+
const bucketScope = this.simAws.s3().findBucketScope(request.bucketName);
|
|
49
|
+
if (bucketScope === undefined) {
|
|
50
|
+
throw new SimRekognitionInvalidS3ObjectException(`${this.unableToGet(request)} (no simulated Bucket is named ` +
|
|
51
|
+
`${request.bucketName})`);
|
|
52
|
+
}
|
|
53
|
+
if (bucketScope.regionName !== this.accountRegionScope.regionName) {
|
|
54
|
+
throw new SimRekognitionInvalidS3ObjectException(`${this.unableToGet(request)} (the Bucket is in ` +
|
|
55
|
+
`${bucketScope.regionName} and Rekognition is in ` +
|
|
56
|
+
`${this.accountRegionScope.regionName}, and Rekognition reads only ` +
|
|
57
|
+
`Buckets in its own Region)`);
|
|
58
|
+
}
|
|
59
|
+
return bucketScope;
|
|
60
|
+
}
|
|
61
|
+
async getObjectBytes(bucketScope, request) {
|
|
62
|
+
const s3 = this.simAws
|
|
63
|
+
.accountRegionScope(bucketScope.accountId, bucketScope.regionName)
|
|
64
|
+
.s3();
|
|
65
|
+
const output = await s3.getObject({ input: { Bucket: request.bucketName, Key: request.objectName } }, request.caller === undefined ? undefined : { caller: request.caller });
|
|
66
|
+
assertDefined(output.Body, `s3://${request.bucketName}/${request.objectName} has no body`);
|
|
67
|
+
return await buffer(output.Body);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The message real Rekognition reports every S3 failure with.
|
|
71
|
+
*/
|
|
72
|
+
unableToGet(request) {
|
|
73
|
+
return (`Unable to get object metadata from S3 for ` +
|
|
74
|
+
`s3://${request.bucketName}/${request.objectName}. Check object key, ` +
|
|
75
|
+
`region and/or access permissions.`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=sim-aws-rekognition-image-objects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-aws-rekognition-image-objects.js","sourceRoot":"","sources":["../../../../../src/service/rekognition/image/s3/sim-aws-rekognition-image-objects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAGvE,OAAO,EAAE,sCAAsC,EAAE,MAAM,sCAAsC,CAAC;AAW9F;;;;;;;;;GASG;AACH,MAAM,OAAO,6BAA6B;IACvB,MAAM,CAAS;IACf,kBAAkB,CAA2B;IAE9D,YAAY,UAAmD;QAC7D,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAC1D,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CAAC,OAAyC;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,sCAAsC,CAC9C,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EACjD,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB,CACxB,OAAyC;QAEzC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEzE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,sCAAsC,CAC9C,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,iCAAiC;gBAC3D,GAAG,OAAO,CAAC,UAAU,GAAG,CAC3B,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,UAAU,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;YAClE,MAAM,IAAI,sCAAsC,CAC9C,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,qBAAqB;gBAC/C,GAAG,WAAW,CAAC,UAAU,yBAAyB;gBAClD,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,+BAA+B;gBACpE,4BAA4B,CAC/B,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,WAAqC,EACrC,OAAyC;QAEzC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM;aACnB,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC;aACjE,EAAE,EAAE,CAAC;QAER,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,CAC/B,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,EAClE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CACtE,CAAC;QAEF,aAAa,CACX,MAAM,CAAC,IAAI,EACX,QAAQ,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,cAAc,CAC/D,CAAC;QAEF,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,OAAyC;QAC3D,OAAO,CACL,4CAA4C;YAC5C,QAAQ,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,sBAAsB;YACtE,mCAAmC,CACpC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where something declared against an image sits in it, as ratios of the
|
|
3
|
+
* image's own width and height.
|
|
4
|
+
*
|
|
5
|
+
* The four numbers are the `BoundingBox` real Rekognition reports, in the same
|
|
6
|
+
* units: `left` and `top` are the corner nearest the image origin, and `width`
|
|
7
|
+
* and `height` are the size, each from 0 to 1.
|
|
8
|
+
*/
|
|
9
|
+
export interface SimRekognitionDeclaredBoundingBox {
|
|
10
|
+
readonly left: number;
|
|
11
|
+
readonly top: number;
|
|
12
|
+
readonly width: number;
|
|
13
|
+
readonly height: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A bounding box as a response carries it.
|
|
17
|
+
*
|
|
18
|
+
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_BoundingBox.html
|
|
19
|
+
*/
|
|
20
|
+
export interface SimRekognitionBoundingBoxOutput {
|
|
21
|
+
readonly Left: number;
|
|
22
|
+
readonly Top: number;
|
|
23
|
+
readonly Width: number;
|
|
24
|
+
readonly Height: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolves the bounding boxes declared for one label or one face.
|
|
28
|
+
*
|
|
29
|
+
* Values go through `Math.fround` for the same reason confidences do: real
|
|
30
|
+
* ones are float32 values such as `0.26779675483703613`.
|
|
31
|
+
*
|
|
32
|
+
* A box has to sit inside the image. Real Rekognition can return a box that
|
|
33
|
+
* does not, for an object at the image edge that is only partly visible, so
|
|
34
|
+
* this is stricter than AWS. It is the check that catches a box written in
|
|
35
|
+
* pixels, which is the mistake worth catching: a `left` of 350 would otherwise
|
|
36
|
+
* be reported as a face 350 image widths from the left.
|
|
37
|
+
*/
|
|
38
|
+
export declare class SimRekognitionBoundingBoxes {
|
|
39
|
+
private readonly subject;
|
|
40
|
+
constructor(subject: string);
|
|
41
|
+
/**
|
|
42
|
+
* Resolve one declared bounding box.
|
|
43
|
+
*/
|
|
44
|
+
of(box: SimRekognitionDeclaredBoundingBox): SimRekognitionBoundingBoxOutput;
|
|
45
|
+
private ratio;
|
|
46
|
+
private refuseOverflow;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=sim-rekognition-bounding-box.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-bounding-box.d.ts","sourceRoot":"","sources":["../../../../src/service/rekognition/image/sim-rekognition-bounding-box.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,MAAM,EAAI;IAEhD;;OAEG;IACH,EAAE,CAAC,GAAG,EAAE,iCAAiC,GAAG,+BAA+B,CAY1E;IAED,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,cAAc;CAgBvB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { SimRekognitionDeclarationError } from "../error/sim-rekognition.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the bounding boxes declared for one label or one face.
|
|
4
|
+
*
|
|
5
|
+
* Values go through `Math.fround` for the same reason confidences do: real
|
|
6
|
+
* ones are float32 values such as `0.26779675483703613`.
|
|
7
|
+
*
|
|
8
|
+
* A box has to sit inside the image. Real Rekognition can return a box that
|
|
9
|
+
* does not, for an object at the image edge that is only partly visible, so
|
|
10
|
+
* this is stricter than AWS. It is the check that catches a box written in
|
|
11
|
+
* pixels, which is the mistake worth catching: a `left` of 350 would otherwise
|
|
12
|
+
* be reported as a face 350 image widths from the left.
|
|
13
|
+
*/
|
|
14
|
+
export class SimRekognitionBoundingBoxes {
|
|
15
|
+
subject;
|
|
16
|
+
constructor(subject) {
|
|
17
|
+
this.subject = subject;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Resolve one declared bounding box.
|
|
21
|
+
*/
|
|
22
|
+
of(box) {
|
|
23
|
+
const resolved = {
|
|
24
|
+
Left: this.ratio("left", box.left),
|
|
25
|
+
Top: this.ratio("top", box.top),
|
|
26
|
+
Width: this.ratio("width", box.width),
|
|
27
|
+
Height: this.ratio("height", box.height),
|
|
28
|
+
};
|
|
29
|
+
this.refuseOverflow("left", box.left, "width", box.width);
|
|
30
|
+
this.refuseOverflow("top", box.top, "height", box.height);
|
|
31
|
+
return resolved;
|
|
32
|
+
}
|
|
33
|
+
ratio(part, value) {
|
|
34
|
+
if (!Number.isFinite(value) || value < 0 || value > 1) {
|
|
35
|
+
throw new SimRekognitionDeclarationError(`A bounding box declared for '${this.subject}' has a ${part} of ` +
|
|
36
|
+
`${String(value)}, which is not a ratio of the image size from 0 ` +
|
|
37
|
+
`to 1.`);
|
|
38
|
+
}
|
|
39
|
+
return Math.fround(value);
|
|
40
|
+
}
|
|
41
|
+
refuseOverflow(corner, cornerValue, size, sizeValue) {
|
|
42
|
+
if (cornerValue + sizeValue <= 1) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
throw new SimRekognitionDeclarationError(`A bounding box declared for '${this.subject}' has a ${corner} of ` +
|
|
46
|
+
`${String(cornerValue)} and a ${size} of ${String(sizeValue)}, which ` +
|
|
47
|
+
`puts it outside the image.`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=sim-rekognition-bounding-box.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-bounding-box.js","sourceRoot":"","sources":["../../../../src/service/rekognition/image/sim-rekognition-bounding-box.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AA6BnF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,2BAA2B;IACT,OAAO;IAApC,YAA6B,OAAe;uBAAf,OAAO;IAAW,CAAC;IAEhD;;OAEG;IACH,EAAE,CAAC,GAAsC;QACvC,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;YAClC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;SACzC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAE1D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,IAAY,EAAE,KAAa;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,8BAA8B,CACtC,gCAAgC,IAAI,CAAC,OAAO,WAAW,IAAI,MAAM;gBAC/D,GAAG,MAAM,CAAC,KAAK,CAAC,kDAAkD;gBAClE,OAAO,CACV,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,cAAc,CACpB,MAAc,EACd,WAAmB,EACnB,IAAY,EACZ,SAAiB;QAEjB,IAAI,WAAW,GAAG,SAAS,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,8BAA8B,CACtC,gCAAgC,IAAI,CAAC,OAAO,WAAW,MAAM,MAAM;YACjE,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU;YACtE,4BAA4B,CAC/B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The image formats Rekognition detection operations accept.
|
|
3
|
+
*/
|
|
4
|
+
export type SimRekognitionImageFormatName = "PNG" | "JPEG";
|
|
5
|
+
/**
|
|
6
|
+
* Identify the format of some image bytes, from the bytes themselves.
|
|
7
|
+
*
|
|
8
|
+
* Real Rekognition accepts PNG and JPEG and refuses everything else, and it
|
|
9
|
+
* decides which it has from the content rather than from anything the caller
|
|
10
|
+
* said about it. The stored content type of an S3 object is deliberately not
|
|
11
|
+
* consulted for the same reason: simulated S3 keeps a supplied `ContentType`
|
|
12
|
+
* as a metadata key and has none at all unless the uploader set one, so
|
|
13
|
+
* trusting it would make the same bytes detectable or not depending on how
|
|
14
|
+
* they were uploaded.
|
|
15
|
+
*/
|
|
16
|
+
export declare function simRekognitionImageFormat(bytes: Uint8Array): SimRekognitionImageFormatName;
|
|
17
|
+
//# sourceMappingURL=sim-rekognition-image-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-image-format.d.ts","sourceRoot":"","sources":["../../../../src/service/rekognition/image/sim-rekognition-image-format.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,KAAK,GAAG,MAAM,CAAC;AAS3D;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,UAAU,GAChB,6BAA6B,CAa/B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SimRekognitionInvalidImageFormatException } from "../error/sim-rekognition.error.js";
|
|
2
|
+
const pngMagicBytes = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];
|
|
3
|
+
const jpegMagicBytes = [0xff, 0xd8, 0xff];
|
|
4
|
+
function startsWith(bytes, magic) {
|
|
5
|
+
return magic.every((byte, index) => bytes.at(index) === byte);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Identify the format of some image bytes, from the bytes themselves.
|
|
9
|
+
*
|
|
10
|
+
* Real Rekognition accepts PNG and JPEG and refuses everything else, and it
|
|
11
|
+
* decides which it has from the content rather than from anything the caller
|
|
12
|
+
* said about it. The stored content type of an S3 object is deliberately not
|
|
13
|
+
* consulted for the same reason: simulated S3 keeps a supplied `ContentType`
|
|
14
|
+
* as a metadata key and has none at all unless the uploader set one, so
|
|
15
|
+
* trusting it would make the same bytes detectable or not depending on how
|
|
16
|
+
* they were uploaded.
|
|
17
|
+
*/
|
|
18
|
+
export function simRekognitionImageFormat(bytes) {
|
|
19
|
+
if (startsWith(bytes, pngMagicBytes)) {
|
|
20
|
+
return "PNG";
|
|
21
|
+
}
|
|
22
|
+
if (startsWith(bytes, jpegMagicBytes)) {
|
|
23
|
+
return "JPEG";
|
|
24
|
+
}
|
|
25
|
+
throw new SimRekognitionInvalidImageFormatException("Request has invalid image format: the image bytes are neither PNG " +
|
|
26
|
+
"nor JPEG");
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=sim-rekognition-image-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-rekognition-image-format.js","sourceRoot":"","sources":["../../../../src/service/rekognition/image/sim-rekognition-image-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yCAAyC,EAAE,MAAM,mCAAmC,CAAC;AAO9F,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvE,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE1C,SAAS,UAAU,CAAC,KAAiB,EAAE,KAAwB;IAC7D,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAiB;IAEjB,IAAI,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,yCAAyC,CACjD,oEAAoE;QAClE,UAAU,CACb,CAAC;AACJ,CAAC"}
|