@kensio/yulin 1.20.17 → 1.21.1
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.js +4 -0
- package/dist/service/athena/engine/sim-athena-comparison-shims.d.ts +13 -0
- package/dist/service/athena/engine/sim-athena-comparison-shims.js +68 -0
- package/dist/service/athena/engine/sim-athena-shims.js +2 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
- package/dist/service/aws/factory/sim-aws-lambda-collaborators.d.ts +2 -0
- package/dist/service/aws/factory/sim-aws-lambda-collaborators.js +3 -0
- package/dist/service/aws/factory/sim-aws-logs-collaborators.d.ts +7 -0
- package/dist/service/aws/factory/sim-aws-logs-collaborators.js +10 -0
- package/dist/service/aws/factory/sim-aws-self-contained-service-builder.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-self-contained-service-builder.js +5 -0
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
- package/dist/service/aws/sim-aws-account-region-scope.d.ts +3 -0
- package/dist/service/aws/sim-aws-account-region-scope.js +4 -0
- package/dist/service/aws/sim-aws-account.d.ts +3 -0
- package/dist/service/aws/sim-aws-account.js +4 -0
- package/dist/service/aws/sim-aws-region.d.ts +3 -0
- package/dist/service/aws/sim-aws-region.js +4 -0
- package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -0
- package/dist/service/aws/sim-aws-service-accessors.js +4 -0
- package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.d.ts +6 -0
- package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.js +12 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.d.ts +12 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.js +31 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.d.ts +15 -0
- package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.js +38 -0
- package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.d.ts +6 -0
- package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.js +17 -0
- package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.d.ts +6 -0
- package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.js +29 -0
- package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.d.ts +11 -0
- package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.js +37 -0
- package/dist/service/backup/cfn/sim-cfn-backup-properties.d.ts +12 -0
- package/dist/service/backup/cfn/sim-cfn-backup-properties.js +37 -0
- package/dist/service/backup/cfn/sim-cfn-backup-property-reader.d.ts +17 -0
- package/dist/service/backup/cfn/sim-cfn-backup-property-reader.js +62 -0
- package/dist/service/backup/cfn/sim-cfn-backup-resource-error.d.ts +7 -0
- package/dist/service/backup/cfn/sim-cfn-backup-resource-error.js +22 -0
- package/dist/service/backup/command/sim-backup-authorizer.d.ts +11 -0
- package/dist/service/backup/command/sim-backup-authorizer.js +24 -0
- package/dist/service/backup/command/sim-backup-command.types.d.ts +238 -0
- package/dist/service/backup/command/sim-backup-command.types.js +1 -0
- package/dist/service/backup/command/sim-backup-configuration-commands.d.ts +32 -0
- package/dist/service/backup/command/sim-backup-configuration-commands.js +138 -0
- package/dist/service/backup/command/sim-backup-job-commands.d.ts +23 -0
- package/dist/service/backup/command/sim-backup-job-commands.js +52 -0
- package/dist/service/backup/command/sim-backup-recovery-point-commands.d.ts +18 -0
- package/dist/service/backup/command/sim-backup-recovery-point-commands.js +38 -0
- package/dist/service/backup/command/sim-backup-request-options.d.ts +4 -0
- package/dist/service/backup/command/sim-backup-request-options.js +1 -0
- package/dist/service/backup/command/sim-backup-required-string.d.ts +2 -0
- package/dist/service/backup/command/sim-backup-required-string.js +8 -0
- package/dist/service/backup/error/sim-backup.error.d.ts +38 -0
- package/dist/service/backup/error/sim-backup.error.js +50 -0
- package/dist/service/backup/index.d.ts +9 -0
- package/dist/service/backup/index.js +7 -0
- package/dist/service/backup/job/sim-backup-job-input.d.ts +11 -0
- package/dist/service/backup/job/sim-backup-job-input.js +1 -0
- package/dist/service/backup/job/sim-backup-job-page.d.ts +22 -0
- package/dist/service/backup/job/sim-backup-job-page.js +54 -0
- package/dist/service/backup/job/sim-backup-job.d.ts +25 -0
- package/dist/service/backup/job/sim-backup-job.factory.d.ts +10 -0
- package/dist/service/backup/job/sim-backup-job.factory.js +24 -0
- package/dist/service/backup/job/sim-backup-job.js +54 -0
- package/dist/service/backup/job/sim-backup-jobs.d.ts +18 -0
- package/dist/service/backup/job/sim-backup-jobs.js +33 -0
- package/dist/service/backup/plan/sim-backup-plan-schedules.d.ts +21 -0
- package/dist/service/backup/plan/sim-backup-plan-schedules.js +66 -0
- package/dist/service/backup/plan/sim-backup-plan.d.ts +22 -0
- package/dist/service/backup/plan/sim-backup-plan.js +37 -0
- package/dist/service/backup/plan/sim-backup-rule.d.ts +9 -0
- package/dist/service/backup/plan/sim-backup-rule.js +71 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.d.ts +28 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.d.ts +9 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.js +23 -0
- package/dist/service/backup/recovery-point/sim-backup-recovery-point.js +62 -0
- package/dist/service/backup/sdk/sim-backup-sdk-command-router.d.ts +9 -0
- package/dist/service/backup/sdk/sim-backup-sdk-command-router.js +37 -0
- package/dist/service/backup/selection/sim-backup-selection.d.ts +22 -0
- package/dist/service/backup/selection/sim-backup-selection.js +43 -0
- package/dist/service/backup/sim-backup-arn.d.ts +7 -0
- package/dist/service/backup/sim-backup-arn.js +12 -0
- package/dist/service/backup/sim-backup-properties.d.ts +8 -0
- package/dist/service/backup/sim-backup-properties.js +1 -0
- package/dist/service/backup/sim-backup-resource-resolver.d.ts +24 -0
- package/dist/service/backup/sim-backup-resource-resolver.js +44 -0
- package/dist/service/backup/sim-backup-store.d.ts +29 -0
- package/dist/service/backup/sim-backup-store.js +80 -0
- package/dist/service/backup/sim-backup.d.ts +48 -0
- package/dist/service/backup/sim-backup.js +139 -0
- package/dist/service/backup/vault/sim-backup-vault-description.d.ts +12 -0
- package/dist/service/backup/vault/sim-backup-vault-description.js +15 -0
- package/dist/service/backup/vault/sim-backup-vault-lock-configuration.d.ts +5 -0
- package/dist/service/backup/vault/sim-backup-vault-lock-configuration.js +31 -0
- package/dist/service/backup/vault/sim-backup-vault-lock.d.ts +15 -0
- package/dist/service/backup/vault/sim-backup-vault-lock.js +23 -0
- package/dist/service/backup/vault/sim-backup-vault-recovery-points.d.ts +12 -0
- package/dist/service/backup/vault/sim-backup-vault-recovery-points.js +30 -0
- package/dist/service/backup/vault/sim-backup-vault-retention.d.ts +4 -0
- package/dist/service/backup/vault/sim-backup-vault-retention.js +20 -0
- package/dist/service/backup/vault/sim-backup-vault.d.ts +33 -0
- package/dist/service/backup/vault/sim-backup-vault.js +49 -0
- package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.d.ts +3 -0
- package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.js +66 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +8 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.d.ts +24 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.js +31 -0
- package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.js +6 -0
- package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.d.ts +23 -0
- package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.js +22 -0
- package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.js +2 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.d.ts +49 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.js +61 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.d.ts +51 -0
- package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.js +1 -0
- package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js +4 -0
- package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +12 -1
- package/dist/service/cloudfront/cache/sim-cf-accept-encoding.d.ts +11 -0
- package/dist/service/cloudfront/cache/sim-cf-accept-encoding.js +27 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-control.d.ts +28 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-control.js +49 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.d.ts +11 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.js +22 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.d.ts +32 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.js +112 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-status.d.ts +27 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-status.js +53 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-ttl.d.ts +28 -0
- package/dist/service/cloudfront/cache/sim-cf-cache-ttl.js +50 -0
- package/dist/service/cloudfront/cache/sim-cf-cacheable-request.d.ts +35 -0
- package/dist/service/cloudfront/cache/sim-cf-cacheable-request.js +32 -0
- package/dist/service/cloudfront/cache/sim-cf-distribution-cache.d.ts +57 -0
- package/dist/service/cloudfront/cache/sim-cf-distribution-cache.js +115 -0
- package/dist/service/cloudfront/cache/sim-cf-edge.d.ts +37 -0
- package/dist/service/cloudfront/cache/sim-cf-edge.js +34 -0
- package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.d.ts +36 -0
- package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.js +28 -0
- package/dist/service/cloudfront/cache/sim-cf-http-date.d.ts +15 -0
- package/dist/service/cloudfront/cache/sim-cf-http-date.js +40 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.d.ts +63 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.js +70 -0
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +13 -3
- package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +31 -3
- package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +8 -3
- package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +96 -12
- package/dist/service/cloudfront/cff/sim-cff-search-distribution.fixture.js +4 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +9 -8
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +40 -11
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.d.ts +10 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.js +50 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.d.ts +28 -0
- package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.js +29 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.d.ts +16 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.js +23 -0
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-behavior-policies.d.ts +3 -2
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-behavior-policies.js +3 -2
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -6
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +6 -6
- package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +8 -23
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.d.ts +28 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.js +46 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.d.ts +24 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.js +32 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.d.ts +10 -0
- package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.js +51 -0
- package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.d.ts +22 -0
- package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.js +54 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +1 -0
- package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +12 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +1 -0
- package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.d.ts +28 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.js +59 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.d.ts +19 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.js +32 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.d.ts +36 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.js +45 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.d.ts +80 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.js +1 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.d.ts +39 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.js +35 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.d.ts +23 -0
- package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.js +39 -0
- package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +2 -0
- package/dist/service/cloudfront/controller/content/sim-cf-content-stage.d.ts +51 -0
- package/dist/service/cloudfront/controller/content/sim-cf-content-stage.js +65 -0
- package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +2 -3
- package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +4 -4
- package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.d.ts +4 -0
- package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.js +12 -8
- package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.d.ts +2 -2
- package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.js +2 -2
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +6 -6
- package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +35 -20
- package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.d.ts +23 -5
- package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.js +8 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.d.ts +18 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.js +30 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +7 -5
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +8 -5
- package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +4 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +2 -0
- package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +6 -2
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.d.ts +13 -3
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.js +27 -6
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +3 -1
- package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +4 -1
- package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +5 -3
- package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +2 -0
- package/dist/service/cloudfront/distribution/sim-cf-distribution-view.js +1 -1
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +25 -2
- package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +24 -0
- package/dist/service/cloudfront/error/sim-cf-invalidation.error.d.ts +22 -0
- package/dist/service/cloudfront/error/sim-cf-invalidation.error.js +26 -0
- package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.d.ts +22 -0
- package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.js +26 -0
- package/dist/service/cloudfront/index.d.ts +2 -0
- package/dist/service/cloudfront/index.js +1 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.d.ts +22 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.js +32 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.d.ts +43 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.js +33 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation.d.ts +55 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidation.js +56 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidations.d.ts +41 -0
- package/dist/service/cloudfront/invalidation/sim-cf-invalidations.js +58 -0
- package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.d.ts +15 -0
- package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.js +23 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.d.ts +19 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.js +116 -0
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +15 -5
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +13 -8
- package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.js +8 -5
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts +13 -0
- package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +8 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.d.ts +24 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.js +21 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.d.ts +57 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.js +129 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.d.ts +30 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.js +121 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.d.ts +56 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.js +67 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.d.ts +38 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.js +51 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.d.ts +32 -0
- package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.js +30 -0
- package/dist/service/cloudfront/registry/sim-cloud-front-registry.d.ts +25 -0
- package/dist/service/cloudfront/registry/sim-cloud-front-registry.js +23 -0
- package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +12 -0
- package/dist/service/cloudfront/sim-cloudfront-caching.d.ts +31 -0
- package/dist/service/cloudfront/sim-cloudfront-caching.js +38 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +12 -0
- package/dist/service/cloudfront/sim-cloudfront-commands.js +12 -0
- package/dist/service/cloudfront/sim-cloudfront-distributions.d.ts +21 -0
- package/dist/service/cloudfront/sim-cloudfront-distributions.js +23 -0
- package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.d.ts +30 -0
- package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.js +35 -0
- package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +22 -5
- package/dist/service/cloudfront/sim-cloudfront-policies.js +27 -5
- package/dist/service/cloudfront/sim-cloudfront.d.ts +15 -31
- package/dist/service/cloudfront/sim-cloudfront.js +23 -41
- package/dist/service/cloudwatch/index.d.ts +1 -0
- package/dist/service/cloudwatch/index.js +1 -0
- package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +2 -0
- package/dist/service/cloudwatch/sim-cloudwatch-commands.js +6 -0
- package/dist/service/cloudwatch/sim-cloudwatch.d.ts +9 -0
- package/dist/service/cloudwatch/sim-cloudwatch.js +10 -0
- package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.d.ts +58 -0
- package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.js +53 -0
- package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.js +8 -2
- package/dist/service/cognito/command/auth/sim-cognito-auth-commands.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-auth-commands.js +4 -0
- package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.d.ts +11 -1
- package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.js +13 -1
- package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.js +16 -4
- package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.d.ts +7 -0
- package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.js +11 -1
- package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.d.ts +3 -0
- package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.js +8 -2
- package/dist/service/cognito/command/hosted/hosted-auth.command.d.ts +19 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.d.ts +1 -1
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.js +3 -2
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.d.ts +8 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.js +11 -3
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.d.ts +11 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.js +13 -2
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.d.ts +11 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.js +11 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.d.ts +7 -1
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.js +18 -7
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.d.ts +20 -3
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.js +19 -3
- package/dist/service/cognito/command/hosted/sim-cognito-token-endpoint.d.ts +2 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-grants.d.ts +8 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-grants.js +13 -4
- package/dist/service/cognito/command/sim-cognito-commands.d.ts +5 -0
- package/dist/service/cognito/command/sim-cognito-commands.js +22 -2
- package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.d.ts +74 -0
- package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.js +110 -0
- package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.d.ts +5 -49
- package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.js +7 -87
- package/dist/service/cognito/command/user/sim-cognito-user-commands.d.ts +4 -0
- package/dist/service/cognito/command/user/sim-cognito-user-commands.js +38 -29
- package/dist/service/cognito/error/sim-cognito-managed-login.error.d.ts +23 -0
- package/dist/service/cognito/error/sim-cognito-managed-login.error.js +36 -0
- package/dist/service/cognito/error/sim-cognito-throttle.error.d.ts +13 -0
- package/dist/service/cognito/error/sim-cognito-throttle.error.js +15 -0
- package/dist/service/cognito/index.d.ts +2 -0
- package/dist/service/cognito/index.js +2 -0
- package/dist/service/cognito/metric/sim-cognito-counted-request.d.ts +50 -0
- package/dist/service/cognito/metric/sim-cognito-counted-request.js +51 -0
- package/dist/service/cognito/metric/sim-cognito-metrics.d.ts +22 -0
- package/dist/service/cognito/metric/sim-cognito-metrics.js +26 -0
- package/dist/service/cognito/metric/sim-cognito-pool-metrics.d.ts +40 -0
- package/dist/service/cognito/metric/sim-cognito-pool-metrics.js +51 -0
- package/dist/service/cognito/metric/sim-cognito-throttled-request.d.ts +11 -0
- package/dist/service/cognito/metric/sim-cognito-throttled-request.js +15 -0
- package/dist/service/cognito/serve/page/sim-cognito-managed-login.d.ts +1 -0
- package/dist/service/cognito/serve/page/sim-cognito-managed-login.js +6 -1
- package/dist/service/cognito/serve/page/sim-cognito-page-markup.d.ts +4 -1
- package/dist/service/cognito/serve/page/sim-cognito-page-markup.js +6 -2
- package/dist/service/cognito/serve/page/sim-cognito-provider-page.d.ts +35 -0
- package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +50 -0
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts +6 -0
- package/dist/service/cognito/sim-cognito-identity-provider.js +1 -0
- package/dist/service/cognito/sim-cognito-user-directory.js +3 -3
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.d.ts +9 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.js +2 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.d.ts +8 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.js +8 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.d.ts +36 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.js +45 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.d.ts +42 -9
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.js +56 -27
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.d.ts +52 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.js +49 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +48 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +94 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.d.ts +13 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.js +19 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.d.ts +7 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.js +9 -0
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.d.ts +3 -2
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.js +3 -2
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.d.ts +18 -1
- package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.js +35 -18
- package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +6 -5
- package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +6 -5
- package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +6 -4
- package/dist/service/kms/command/sim-kms-request-options.d.ts +9 -5
- package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
- package/dist/service/lambda/command/create-function/create-function.handler.js +4 -1
- package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
- package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +7 -11
- package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +7 -8
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.d.ts +11 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.js +31 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.d.ts +10 -0
- package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.js +12 -0
- package/dist/service/lambda/function/sim-lambda-function.d.ts +3 -0
- package/dist/service/lambda/function/sim-lambda-function.js +6 -2
- package/dist/service/lambda/function/sim-lambda-function.type.d.ts +7 -0
- package/dist/service/lambda/metric/sim-lambda-function-metrics.d.ts +47 -0
- package/dist/service/lambda/metric/sim-lambda-function-metrics.js +83 -0
- package/dist/service/lambda/metric/sim-lambda-iterator-age.d.ts +29 -0
- package/dist/service/lambda/metric/sim-lambda-iterator-age.js +41 -0
- package/dist/service/lambda/metric/sim-lambda-metrics.d.ts +12 -0
- package/dist/service/lambda/metric/sim-lambda-metrics.js +13 -0
- package/dist/service/lambda/sim-lambda-commands.d.ts +2 -0
- package/dist/service/lambda/sim-lambda-commands.js +2 -1
- package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.d.ts +9 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.js +25 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.d.ts +30 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.js +52 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.d.ts +40 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.js +66 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.d.ts +19 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.js +40 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.d.ts +5 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.js +23 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.d.ts +25 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.js +58 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.d.ts +6 -0
- package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.js +19 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -0
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +5 -3
- package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +12 -3
- package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.d.ts +6 -4
- package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js +13 -4
- package/dist/service/logs/command/event/sim-logs-put-log-events.d.ts +3 -0
- package/dist/service/logs/command/event/sim-logs-put-log-events.js +3 -0
- package/dist/service/logs/command/group/sim-logs-log-group-commands.js +3 -3
- package/dist/service/logs/command/metric/metric-filter.command.d.ts +79 -0
- package/dist/service/logs/command/metric/metric-filter.command.js +1 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.d.ts +48 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.js +95 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-input.d.ts +11 -0
- package/dist/service/logs/command/metric/sim-logs-metric-filter-input.js +79 -0
- package/dist/service/logs/command/sim-logs-command.types.d.ts +1 -0
- package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.d.ts +23 -0
- package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.js +28 -0
- package/dist/service/logs/group/sim-logs-log-group.d.ts +6 -0
- package/dist/service/logs/group/sim-logs-log-group.js +6 -0
- package/dist/service/logs/index.d.ts +6 -0
- package/dist/service/logs/index.js +4 -0
- package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.d.ts +40 -0
- package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.js +78 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.d.ts +25 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.js +81 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.d.ts +57 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.js +85 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.d.ts +24 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.js +41 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.d.ts +20 -0
- package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.js +39 -0
- package/dist/service/logs/metric/sim-logs-metric-datapoint.d.ts +25 -0
- package/dist/service/logs/metric/sim-logs-metric-datapoint.js +1 -0
- package/dist/service/logs/metric/sim-logs-metric-fan-out.d.ts +62 -0
- package/dist/service/logs/metric/sim-logs-metric-fan-out.js +116 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-selection.d.ts +17 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-selection.js +17 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-store.d.ts +35 -0
- package/dist/service/logs/metric/sim-logs-metric-filter-store.js +47 -0
- package/dist/service/logs/metric/sim-logs-metric-filter.d.ts +49 -0
- package/dist/service/logs/metric/sim-logs-metric-filter.js +95 -0
- package/dist/service/logs/metric/sim-logs-metric-publication-failure.d.ts +31 -0
- package/dist/service/logs/metric/sim-logs-metric-publication-failure.js +12 -0
- package/dist/service/logs/metric/sim-logs-metric-publications.d.ts +11 -0
- package/dist/service/logs/metric/sim-logs-metric-publications.js +1 -0
- package/dist/service/logs/metric/sim-logs-metric-transformation.d.ts +45 -0
- package/dist/service/logs/metric/sim-logs-metric-transformation.js +127 -0
- package/dist/service/logs/sdk/sim-logs-sdk-command-router.js +12 -0
- package/dist/service/logs/sim-logs-commands.d.ts +12 -0
- package/dist/service/logs/sim-logs-commands.js +17 -0
- package/dist/service/logs/sim-logs-metric-operations.d.ts +31 -0
- package/dist/service/logs/sim-logs-metric-operations.js +37 -0
- package/dist/service/logs/sim-logs.d.ts +4 -3
- package/dist/service/logs/sim-logs.js +4 -3
- package/dist/service/logs/write/sim-logs-service-writer.d.ts +3 -0
- package/dist/service/logs/write/sim-logs-service-writer.js +5 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +32 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +31 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +13 -2
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +18 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +17 -1
- package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +27 -3
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +45 -0
- package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +90 -0
- package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.d.ts +42 -0
- package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.js +59 -0
- package/dist/service/s3/bucket/lock/sim-s3-default-retention.d.ts +8 -0
- package/dist/service/s3/bucket/lock/sim-s3-default-retention.js +15 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.d.ts +49 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.js +102 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.d.ts +14 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.js +1 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock.d.ts +62 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-lock.js +100 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-retention.d.ts +55 -0
- package/dist/service/s3/bucket/lock/sim-s3-object-retention.js +82 -0
- package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +9 -1
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.d.ts +1 -1
- package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +1 -2
- package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +114 -0
- package/dist/service/s3/bucket/sim-s3-bucket-objects.js +148 -0
- package/dist/service/s3/bucket/sim-s3-bucket.d.ts +30 -29
- package/dist/service/s3/bucket/sim-s3-bucket.js +42 -45
- package/dist/service/s3/bucket/sim-s3-object-deletion.d.ts +30 -0
- package/dist/service/s3/bucket/sim-s3-object-deletion.js +29 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.d.ts +61 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.js +65 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.d.ts +97 -0
- package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.js +176 -0
- package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.d.ts +10 -0
- package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.js +16 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +85 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +101 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-versions.d.ts +52 -0
- package/dist/service/s3/bucket/versioning/sim-s3-object-versions.js +91 -0
- package/dist/service/s3/bucket/versioning/sim-s3-version-page.d.ts +32 -0
- package/dist/service/s3/bucket/versioning/sim-s3-version-page.js +45 -0
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.d.ts +0 -5
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +3 -14
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +18 -1
- package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +34 -1
- package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.d.ts +37 -0
- package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.js +78 -0
- package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.d.ts +20 -0
- package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.js +107 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +14 -7
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +29 -37
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +62 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +89 -0
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +9 -5
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +16 -16
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.d.ts +9 -5
- package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.js +17 -6
- package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.d.ts +19 -0
- package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.js +28 -0
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +24 -0
- package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +30 -0
- package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.command.d.ts +2 -0
- package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.handler.js +3 -1
- package/dist/service/s3/command/copy-object/copy-object.command.d.ts +3 -1
- package/dist/service/s3/command/copy-object/copy-object.handler.js +3 -1
- package/dist/service/s3/command/delete-object/delete-object-version-removal.d.ts +50 -0
- package/dist/service/s3/command/delete-object/delete-object-version-removal.js +52 -0
- package/dist/service/s3/command/delete-object/delete-object.command.d.ts +19 -2
- package/dist/service/s3/command/delete-object/delete-object.handler.d.ts +7 -1
- package/dist/service/s3/command/delete-object/delete-object.handler.js +28 -16
- package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.d.ts +24 -0
- package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.js +32 -0
- package/dist/service/s3/command/delete-objects/delete-object-attempt.d.ts +6 -2
- package/dist/service/s3/command/delete-objects/delete-object-attempt.js +6 -2
- package/dist/service/s3/command/delete-objects/delete-objects-key-removal.js +10 -9
- package/dist/service/s3/command/delete-objects/delete-objects-outcome.js +9 -1
- package/dist/service/s3/command/delete-objects/delete-objects.command.d.ts +6 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.d.ts +23 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.js +1 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.d.ts +31 -0
- package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.js +40 -0
- package/dist/service/s3/command/get-object/get-object-loader.d.ts +3 -2
- package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
- package/dist/service/s3/command/get-object/get-object.command.d.ts +9 -1
- package/dist/service/s3/command/get-object/get-object.handler.js +1 -1
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.d.ts +25 -0
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.js +1 -0
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.d.ts +31 -0
- package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.js +41 -0
- package/dist/service/s3/command/head-object/head-object-loader.d.ts +1 -1
- package/dist/service/s3/command/head-object/head-object-loader.js +7 -3
- package/dist/service/s3/command/head-object/head-object.command.d.ts +9 -1
- package/dist/service/s3/command/head-object/head-object.handler.js +1 -1
- package/dist/service/s3/command/list-object-versions/list-object-versions-listing.d.ts +31 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions-listing.js +55 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.d.ts +17 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +34 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.command.d.ts +59 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.command.js +1 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.handler.d.ts +34 -0
- package/dist/service/s3/command/list-object-versions/list-object-versions.handler.js +62 -0
- package/dist/service/s3/command/object/sim-s3-read-object-version.d.ts +34 -0
- package/dist/service/s3/command/object/sim-s3-read-object-version.js +52 -0
- package/dist/service/s3/command/object-lock/sim-s3-locked-version.d.ts +11 -0
- package/dist/service/s3/command/object-lock/sim-s3-locked-version.js +27 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.d.ts +42 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.js +66 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.d.ts +30 -0
- package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.js +41 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.d.ts +21 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.js +1 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.d.ts +31 -0
- package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.js +44 -0
- package/dist/service/s3/command/put-object/put-object.command.d.ts +3 -0
- package/dist/service/s3/command/put-object/put-object.handler.js +10 -10
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.d.ts +24 -0
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.js +1 -0
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.d.ts +32 -0
- package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.js +41 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.d.ts +21 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.js +1 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.d.ts +32 -0
- package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.js +47 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.command.d.ts +29 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.command.js +1 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.handler.d.ts +31 -0
- package/dist/service/s3/command/put-object-retention/put-object-retention.handler.js +42 -0
- package/dist/service/s3/command/sim-s3-command.types.d.ts +7 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.d.ts +35 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.js +57 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-commands.d.ts +26 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-commands.js +34 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.d.ts +13 -0
- package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.js +28 -0
- package/dist/service/s3/error/sim-s3-object-lock.error.d.ts +22 -0
- package/dist/service/s3/error/sim-s3-object-lock.error.js +26 -0
- package/dist/service/s3/error/sim-s3.error.d.ts +22 -0
- package/dist/service/s3/error/sim-s3.error.js +26 -0
- package/dist/service/s3/notification/event/sim-s3-event-records.js +3 -0
- package/dist/service/s3/notification/event/sim-s3-event.type.d.ts +5 -3
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +15 -0
- package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +4 -1
- package/dist/service/s3/notification/event/sim-s3-object-event.d.ts +6 -0
- package/dist/service/s3/notification/event/sim-s3-object-event.js +2 -0
- package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +1 -1
- package/dist/service/s3/notification/sim-s3-object-notifier.js +2 -2
- package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.d.ts +10 -0
- package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +84 -0
- package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +6 -132
- package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.d.ts +10 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.js +28 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-routes.d.ts +7 -0
- package/dist/service/s3/sdk/sim-s3-sdk-object-routes.js +80 -0
- package/dist/service/s3/sim-s3-commands.d.ts +4 -0
- package/dist/service/s3/sim-s3-commands.js +6 -0
- package/dist/service/s3/sim-s3-operations.d.ts +5 -5
- package/dist/service/s3/sim-s3-operations.js +5 -6
- package/dist/service/s3/sim-s3-version-operations.d.ts +32 -0
- package/dist/service/s3/sim-s3-version-operations.js +45 -0
- package/dist/service/scheduler/command/schedule/schedule.command.d.ts +9 -2
- package/dist/service/scheduler/command/schedule/sim-scheduler-described-schedule.js +2 -0
- package/dist/service/scheduler/command/schedule/sim-scheduler-unsimulated-target.js +0 -6
- package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -1
- package/dist/service/scheduler/command/sim-scheduler-commands.js +1 -0
- package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.d.ts +17 -0
- package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.js +29 -0
- package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.d.ts +6 -1
- package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +9 -0
- package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.d.ts +18 -0
- package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.js +62 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.d.ts +29 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.js +81 -0
- package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +9 -5
- package/dist/service/scheduler/delivery/sim-scheduler-delivery.d.ts +11 -0
- package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.d.ts +5 -1
- package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.js +8 -0
- package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.d.ts +4 -1
- package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.js +20 -15
- package/dist/service/scheduler/index.d.ts +1 -1
- package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.d.ts +15 -0
- package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.js +24 -0
- package/dist/service/scheduler/target/sim-scheduler-retry-policy.d.ts +20 -0
- package/dist/service/scheduler/target/sim-scheduler-retry-policy.js +37 -0
- package/dist/service/scheduler/target/sim-scheduler-target.d.ts +6 -0
- package/dist/service/scheduler/target/sim-scheduler-target.js +12 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.d.ts +15 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.js +33 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts +16 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js +33 -1
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.d.ts +12 -6
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.js +18 -13
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts +1 -0
- package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js +9 -1
- package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +7 -10
- package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +10 -11
- package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +11 -16
- package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts +4 -3
- package/dist/terraform/map/sim-tf-map-sqs-redrive.js +4 -3
- package/docs/README.md +1 -0
- package/docs/services/athena/README.md +7 -1
- package/docs/services/backup/README.md +553 -0
- package/docs/services/cloudformation/README.md +18 -7
- package/docs/services/cloudfront/README.md +903 -25
- package/docs/services/cloudwatch/README.md +159 -3
- package/docs/services/cognito/README.md +370 -7
- package/docs/services/ecs/README.md +5 -2
- package/docs/services/kms/README.md +9 -5
- package/docs/services/lambda/README.md +28 -0
- package/docs/services/logs/README.md +290 -3
- package/docs/services/s3/README.md +463 -20
- package/docs/services/scheduler/README.md +48 -9
- package/docs/services/sqs/README.md +47 -10
- package/docs/services/ssm/README.md +26 -33
- package/llms.txt +1 -0
- package/package.json +7 -2
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { SimCfnTemplateValueRecord } from "../../template/value/sim-cfn-template-value.js";
|
|
2
|
+
import type { SimCfnSkippedPropertyRules } from "./sim-cfn-skipped-property.type.js";
|
|
3
|
+
interface SimCfnSkippedPropertiesProperties {
|
|
4
|
+
readonly rules: SimCfnSkippedPropertyRules;
|
|
5
|
+
readonly properties: SimCfnTemplateValueRecord;
|
|
6
|
+
readonly error: (reason: string) => Error;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* What one Resource's skipped properties say, and what they still have to
|
|
10
|
+
* satisfy.
|
|
11
|
+
*
|
|
12
|
+
* Simulated CloudFormation deploys what it can, so a property a service cannot
|
|
13
|
+
* act on is recorded against the Resource rather than taking it down. That
|
|
14
|
+
* leaves a gap. A skipped property can carry a value real AWS answers with a
|
|
15
|
+
* 400 as readily as a simulated one can, and deploying it here reports a
|
|
16
|
+
* template AWS refuses as working, which is the one failure a local deploy of
|
|
17
|
+
* a real template exists to catch.
|
|
18
|
+
*
|
|
19
|
+
* This is where a service closes that gap. The constraint sits beside the
|
|
20
|
+
* reason in the same map, and every service reaches it the same way, so the
|
|
21
|
+
* next one to need it has nothing to build.
|
|
22
|
+
*/
|
|
23
|
+
export declare class SimCfnSkippedProperties {
|
|
24
|
+
private readonly rules;
|
|
25
|
+
private readonly properties;
|
|
26
|
+
private readonly error;
|
|
27
|
+
constructor(properties: SimCfnSkippedPropertiesProperties);
|
|
28
|
+
/**
|
|
29
|
+
* Refuse the Resource where a skipped value is one real AWS would answer
|
|
30
|
+
* with a 400.
|
|
31
|
+
*
|
|
32
|
+
* Every constraint runs before anything is recorded, so a Resource that
|
|
33
|
+
* fails one leaves no half-written list of what it was created without.
|
|
34
|
+
*/
|
|
35
|
+
assertConstraints(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Why a property is skipped, or nothing where this service has no entry for
|
|
38
|
+
* it.
|
|
39
|
+
*/
|
|
40
|
+
reasonFor(name: string): string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* What a property's value has to satisfy, where the service stated it.
|
|
43
|
+
*
|
|
44
|
+
* A rule that is a bare reason states nothing, which is the common case and
|
|
45
|
+
* the reason both shapes share one map.
|
|
46
|
+
*/
|
|
47
|
+
private constraintOn;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What one Resource's skipped properties say, and what they still have to
|
|
3
|
+
* satisfy.
|
|
4
|
+
*
|
|
5
|
+
* Simulated CloudFormation deploys what it can, so a property a service cannot
|
|
6
|
+
* act on is recorded against the Resource rather than taking it down. That
|
|
7
|
+
* leaves a gap. A skipped property can carry a value real AWS answers with a
|
|
8
|
+
* 400 as readily as a simulated one can, and deploying it here reports a
|
|
9
|
+
* template AWS refuses as working, which is the one failure a local deploy of
|
|
10
|
+
* a real template exists to catch.
|
|
11
|
+
*
|
|
12
|
+
* This is where a service closes that gap. The constraint sits beside the
|
|
13
|
+
* reason in the same map, and every service reaches it the same way, so the
|
|
14
|
+
* next one to need it has nothing to build.
|
|
15
|
+
*/
|
|
16
|
+
export class SimCfnSkippedProperties {
|
|
17
|
+
rules;
|
|
18
|
+
properties;
|
|
19
|
+
error;
|
|
20
|
+
constructor(properties) {
|
|
21
|
+
this.rules = properties.rules;
|
|
22
|
+
this.properties = properties.properties;
|
|
23
|
+
this.error = properties.error;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Refuse the Resource where a skipped value is one real AWS would answer
|
|
27
|
+
* with a 400.
|
|
28
|
+
*
|
|
29
|
+
* Every constraint runs before anything is recorded, so a Resource that
|
|
30
|
+
* fails one leaves no half-written list of what it was created without.
|
|
31
|
+
*/
|
|
32
|
+
assertConstraints() {
|
|
33
|
+
for (const [name, value] of Object.entries(this.properties)) {
|
|
34
|
+
this.constraintOn(name)?.({
|
|
35
|
+
value,
|
|
36
|
+
properties: this.properties,
|
|
37
|
+
refuse: (reason) => {
|
|
38
|
+
throw this.error(reason);
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Why a property is skipped, or nothing where this service has no entry for
|
|
45
|
+
* it.
|
|
46
|
+
*/
|
|
47
|
+
reasonFor(name) {
|
|
48
|
+
const rule = this.rules.get(name);
|
|
49
|
+
return typeof rule === "string" ? rule : rule?.reason;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* What a property's value has to satisfy, where the service stated it.
|
|
53
|
+
*
|
|
54
|
+
* A rule that is a bare reason states nothing, which is the common case and
|
|
55
|
+
* the reason both shapes share one map.
|
|
56
|
+
*/
|
|
57
|
+
constraintOn(name) {
|
|
58
|
+
const rule = this.rules.get(name);
|
|
59
|
+
return typeof rule === "string" ? undefined : rule?.constraint;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { SimCfnTemplateValue, SimCfnTemplateValueRecord } from "../../template/value/sim-cfn-template-value.js";
|
|
2
|
+
/**
|
|
3
|
+
* One skipped property, as a constraint on it reads the Resource.
|
|
4
|
+
*
|
|
5
|
+
* The whole Resource comes with it, because the constraints AWS enforces on a
|
|
6
|
+
* property it is not acting on are usually about a second one. Replication on
|
|
7
|
+
* an S3 Bucket needs versioning turned on beside it, and neither property is
|
|
8
|
+
* simulated.
|
|
9
|
+
*/
|
|
10
|
+
export interface SimCfnSkippedPropertyValue {
|
|
11
|
+
/** What the template declared for the skipped property. */
|
|
12
|
+
readonly value: SimCfnTemplateValue;
|
|
13
|
+
/** Everything else the Resource declared. */
|
|
14
|
+
readonly properties: SimCfnTemplateValueRecord;
|
|
15
|
+
/**
|
|
16
|
+
* Refuse the Resource, in the service's own words.
|
|
17
|
+
*
|
|
18
|
+
* The wording matters. Sim CloudFormation downgrades a failure that reads as
|
|
19
|
+
* an unsupported Resource type into a skip, and a skipped Resource here
|
|
20
|
+
* would deploy the very template this exists to refuse, so each service
|
|
21
|
+
* passes the error builder it already refuses its own Resources with.
|
|
22
|
+
*/
|
|
23
|
+
refuse(reason: string): never;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* What a skipped value has to satisfy even though nothing acts on it.
|
|
27
|
+
*
|
|
28
|
+
* A value that passes is recorded against the Resource as any skipped value
|
|
29
|
+
* is. One that fails takes the Resource with it, before anything is recorded.
|
|
30
|
+
*/
|
|
31
|
+
export type SimCfnSkippedPropertyConstraint = (declared: SimCfnSkippedPropertyValue) => void;
|
|
32
|
+
/**
|
|
33
|
+
* What a service says about a property its Resource is created without acting
|
|
34
|
+
* on.
|
|
35
|
+
*
|
|
36
|
+
* A reason on its own is the common case and stays a bare string. A property
|
|
37
|
+
* carrying a value real AWS answers with a 400 states the constraint here too,
|
|
38
|
+
* beside the reason, rather than in a check of its own somewhere up the call
|
|
39
|
+
* path.
|
|
40
|
+
*/
|
|
41
|
+
export interface SimCfnSkippedPropertyRule {
|
|
42
|
+
readonly reason: string;
|
|
43
|
+
readonly constraint: SimCfnSkippedPropertyConstraint;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The properties one Resource type is created without acting on, by name.
|
|
47
|
+
*
|
|
48
|
+
* Most name a reason and nothing more. The rest state what the value has to
|
|
49
|
+
* satisfy alongside it.
|
|
50
|
+
*/
|
|
51
|
+
export type SimCfnSkippedPropertyRules = ReadonlyMap<string, SimCfnSkippedPropertyRule | string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -23,6 +23,10 @@ export const simCfnServiceResourceFactories = new Map([
|
|
|
23
23
|
"Athena",
|
|
24
24
|
(scopedAws) => scopedAws.athena().cfnResourceFactory(),
|
|
25
25
|
],
|
|
26
|
+
[
|
|
27
|
+
"Backup",
|
|
28
|
+
(scopedAws) => scopedAws.backup().cfnResourceFactory(),
|
|
29
|
+
],
|
|
26
30
|
[
|
|
27
31
|
"ApiGateway",
|
|
28
32
|
(scopedAws) => scopedAws.apiGateway().cfnResourceFactory(),
|
|
@@ -5,6 +5,10 @@ export interface SimCloudFrontBehavior {
|
|
|
5
5
|
pathPattern?: string;
|
|
6
6
|
targetOriginName: string;
|
|
7
7
|
allowedMethods: Set<string>;
|
|
8
|
+
/**
|
|
9
|
+
* The methods this Behavior caches a response for. A request made with any
|
|
10
|
+
* other method reaches the Origin every time.
|
|
11
|
+
*/
|
|
8
12
|
cachedMethods: Set<string>;
|
|
9
13
|
viewerProtocolPolicy?: "allow-all" | "redirect-to-https" | "https-only";
|
|
10
14
|
originPath?: string;
|
|
@@ -14,9 +18,16 @@ export interface SimCloudFrontBehavior {
|
|
|
14
18
|
responseHeadersPolicyId?: string | undefined;
|
|
15
19
|
/**
|
|
16
20
|
* The cache policy this Behavior was given, whether a template created it or
|
|
17
|
-
* AWS manages it.
|
|
21
|
+
* AWS manages it. It decides what the Distribution's cache keys on, and a
|
|
22
|
+
* Behavior naming no policy this simulation holds caches nothing.
|
|
18
23
|
*/
|
|
19
24
|
cachePolicyId?: string | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* The origin request policy this Behavior was given, whether a template
|
|
27
|
+
* created it or AWS manages it. What reaches the Origin does not read it
|
|
28
|
+
* yet.
|
|
29
|
+
*/
|
|
30
|
+
originRequestPolicyId?: string | undefined;
|
|
20
31
|
functionAssociations?: undefined | {
|
|
21
32
|
viewerRequest?: SimArn;
|
|
22
33
|
viewerResponse?: SimArn;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SimCloudFrontCacheKey } from "../cache-policy/sim-cf-cache-key.js";
|
|
2
|
+
/**
|
|
3
|
+
* The compression the policy keys on, as CloudFront's normalized
|
|
4
|
+
* `Accept-Encoding`.
|
|
5
|
+
*
|
|
6
|
+
* This is what caches one object twice, once compressed and once not, without
|
|
7
|
+
* the header being in the policy's whitelist. An encoding the viewer accepts
|
|
8
|
+
* but the policy does not enable is left out, since CloudFront would not have
|
|
9
|
+
* asked the Origin for it.
|
|
10
|
+
*/
|
|
11
|
+
export declare function simCfNormalizedAcceptEncoding(headers: Headers, cacheKey: SimCloudFrontCacheKey): string[];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The compression the policy keys on, as CloudFront's normalized
|
|
3
|
+
* `Accept-Encoding`.
|
|
4
|
+
*
|
|
5
|
+
* This is what caches one object twice, once compressed and once not, without
|
|
6
|
+
* the header being in the policy's whitelist. An encoding the viewer accepts
|
|
7
|
+
* but the policy does not enable is left out, since CloudFront would not have
|
|
8
|
+
* asked the Origin for it.
|
|
9
|
+
*/
|
|
10
|
+
export function simCfNormalizedAcceptEncoding(headers, cacheKey) {
|
|
11
|
+
const enabled = [
|
|
12
|
+
...(cacheKey.enableAcceptEncodingBrotli ? ["br"] : []),
|
|
13
|
+
...(cacheKey.enableAcceptEncodingGzip ? ["gzip"] : []),
|
|
14
|
+
];
|
|
15
|
+
const accepted = acceptedEncodings(headers.get("accept-encoding"));
|
|
16
|
+
return enabled.filter((encoding) => accepted.has(encoding));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The encodings a viewer said it accepts, by name alone. A quality value is
|
|
20
|
+
* ignored, so a viewer that sent `gzip;q=0` is taken to accept gzip.
|
|
21
|
+
*/
|
|
22
|
+
function acceptedEncodings(headerValue) {
|
|
23
|
+
return new Set((headerValue ?? "").split(",").map((encoding) => {
|
|
24
|
+
const [name = ""] = encoding.split(";", 1);
|
|
25
|
+
return name.trim().toLowerCase();
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What an Origin's `Cache-Control` header says about holding the object at an
|
|
3
|
+
* edge.
|
|
4
|
+
*
|
|
5
|
+
* Only the directives that move CloudFront's own cache duration are read.
|
|
6
|
+
* `stale-while-revalidate` and `stale-if-error` are left out, because serving
|
|
7
|
+
* a stale object is a behaviour of its own that this simulation does not have.
|
|
8
|
+
*
|
|
9
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html
|
|
10
|
+
*/
|
|
11
|
+
export interface SimCfCacheControl {
|
|
12
|
+
/**
|
|
13
|
+
* Whether the Origin asked for the object to stay out of a shared cache,
|
|
14
|
+
* through `no-store`, `no-cache` or `private`.
|
|
15
|
+
*/
|
|
16
|
+
readonly uncacheable: boolean;
|
|
17
|
+
/** The seconds `s-maxage` names, where it names a usable number of them. */
|
|
18
|
+
readonly sharedMaxAgeSec: number | undefined;
|
|
19
|
+
/** The seconds `max-age` names, where it names a usable number of them. */
|
|
20
|
+
readonly maxAgeSec: number | undefined;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Read the `Cache-Control` directives a response carries.
|
|
24
|
+
*
|
|
25
|
+
* A directive naming something other than a whole number of seconds is read as
|
|
26
|
+
* absent. `max-age=soon` falls through to whatever the response says next.
|
|
27
|
+
*/
|
|
28
|
+
export declare function simCfCacheControl(header: string | null): SimCfCacheControl;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The three directives CloudFront and a browser both respect as a refusal.
|
|
3
|
+
*/
|
|
4
|
+
const uncacheableDirectives = ["no-store", "no-cache", "private"];
|
|
5
|
+
/**
|
|
6
|
+
* Read the `Cache-Control` directives a response carries.
|
|
7
|
+
*
|
|
8
|
+
* A directive naming something other than a whole number of seconds is read as
|
|
9
|
+
* absent. `max-age=soon` falls through to whatever the response says next.
|
|
10
|
+
*/
|
|
11
|
+
export function simCfCacheControl(header) {
|
|
12
|
+
const directives = cacheControlDirectives(header);
|
|
13
|
+
return {
|
|
14
|
+
uncacheable: uncacheableDirectives.some((directive) => directives.has(directive)),
|
|
15
|
+
sharedMaxAgeSec: directiveSeconds(directives.get("s-maxage")),
|
|
16
|
+
maxAgeSec: directiveSeconds(directives.get("max-age")),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Split a header into its directives, by lower-cased name.
|
|
21
|
+
*
|
|
22
|
+
* A directive carrying no value is held under an empty string, which is what
|
|
23
|
+
* makes `no-store` findable the same way as `max-age=60`.
|
|
24
|
+
*/
|
|
25
|
+
function cacheControlDirectives(header) {
|
|
26
|
+
const directives = new Map();
|
|
27
|
+
const parts = (header ?? "").split(",");
|
|
28
|
+
for (const part of parts) {
|
|
29
|
+
const trimmed = part.trim();
|
|
30
|
+
if (trimmed.length === 0) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const separator = trimmed.indexOf("=");
|
|
34
|
+
const name = separator === -1 ? trimmed : trimmed.slice(0, Math.max(0, separator));
|
|
35
|
+
directives.set(name.trim().toLowerCase(), separator === -1 ? "" : trimmed.slice(separator + 1).trim());
|
|
36
|
+
}
|
|
37
|
+
return directives;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The seconds a directive's value names, or none where it names no whole
|
|
41
|
+
* number of them.
|
|
42
|
+
*/
|
|
43
|
+
function directiveSeconds(value) {
|
|
44
|
+
if (value === undefined) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const seconds = value.replace(/^"(.*)"$/, "$1");
|
|
48
|
+
return /^\d+$/.test(seconds) ? Number(seconds) : undefined;
|
|
49
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The request path one cache entry was keyed under.
|
|
3
|
+
*
|
|
4
|
+
* `simCfCacheEntryKey` builds the key as a JSON array with the path third in
|
|
5
|
+
* it, and this reads that element back out. An invalidation matches entries by
|
|
6
|
+
* path this way, and the cache keeps its one map keyed on the whole key.
|
|
7
|
+
*
|
|
8
|
+
* A key of another shape answers with nothing. An invalidation then leaves the
|
|
9
|
+
* entry where it is.
|
|
10
|
+
*/
|
|
11
|
+
export declare function simCfCacheEntryKeyPath(key: string): string | undefined;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the request path sits in a cache entry key.
|
|
3
|
+
*/
|
|
4
|
+
const cacheEntryKeyPathIndex = 2;
|
|
5
|
+
/**
|
|
6
|
+
* The request path one cache entry was keyed under.
|
|
7
|
+
*
|
|
8
|
+
* `simCfCacheEntryKey` builds the key as a JSON array with the path third in
|
|
9
|
+
* it, and this reads that element back out. An invalidation matches entries by
|
|
10
|
+
* path this way, and the cache keeps its one map keyed on the whole key.
|
|
11
|
+
*
|
|
12
|
+
* A key of another shape answers with nothing. An invalidation then leaves the
|
|
13
|
+
* entry where it is.
|
|
14
|
+
*/
|
|
15
|
+
export function simCfCacheEntryKeyPath(key) {
|
|
16
|
+
const parts = JSON.parse(key);
|
|
17
|
+
if (!Array.isArray(parts)) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
const path = parts.at(cacheEntryKeyPathIndex);
|
|
21
|
+
return typeof path === "string" ? path : undefined;
|
|
22
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { SimCloudFrontCacheKey } from "../cache-policy/sim-cf-cache-key.js";
|
|
2
|
+
interface SimCfCacheEntryKeyProperties {
|
|
3
|
+
readonly request: Request;
|
|
4
|
+
/**
|
|
5
|
+
* What the Behavior's cache policy keys on.
|
|
6
|
+
*/
|
|
7
|
+
readonly cacheKey: SimCloudFrontCacheKey;
|
|
8
|
+
/**
|
|
9
|
+
* The edge the request arrived at, which caches apart from every other edge.
|
|
10
|
+
*/
|
|
11
|
+
readonly edgeId: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The key one request is cached under.
|
|
15
|
+
*
|
|
16
|
+
* CloudFront keys on the request path plus whatever the cache policy names:
|
|
17
|
+
* the query strings, the headers and the cookies it lists, and the normalized
|
|
18
|
+
* `Accept-Encoding` where it enables gzip or brotli. Two requests differing
|
|
19
|
+
* only in something the policy leaves out share one entry, which is the whole
|
|
20
|
+
* point of a cache key.
|
|
21
|
+
*
|
|
22
|
+
* The path sits third in the key, which `simCfCacheEntryKeyPath` reads it back
|
|
23
|
+
* out of when an invalidation matches an entry.
|
|
24
|
+
*
|
|
25
|
+
* The method is part of the key here because a HEAD response carries no body
|
|
26
|
+
* and a GET response does, so serving one from the other would answer with the
|
|
27
|
+
* wrong thing.
|
|
28
|
+
*
|
|
29
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-the-cache-key.html
|
|
30
|
+
*/
|
|
31
|
+
export declare function simCfCacheEntryKey(properties: SimCfCacheEntryKeyProperties): string;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { jsonStringify } from "../../../util/type-guard/json.js";
|
|
2
|
+
import { simCfNormalizedAcceptEncoding } from "./sim-cf-accept-encoding.js";
|
|
3
|
+
/**
|
|
4
|
+
* The key one request is cached under.
|
|
5
|
+
*
|
|
6
|
+
* CloudFront keys on the request path plus whatever the cache policy names:
|
|
7
|
+
* the query strings, the headers and the cookies it lists, and the normalized
|
|
8
|
+
* `Accept-Encoding` where it enables gzip or brotli. Two requests differing
|
|
9
|
+
* only in something the policy leaves out share one entry, which is the whole
|
|
10
|
+
* point of a cache key.
|
|
11
|
+
*
|
|
12
|
+
* The path sits third in the key, which `simCfCacheEntryKeyPath` reads it back
|
|
13
|
+
* out of when an invalidation matches an entry.
|
|
14
|
+
*
|
|
15
|
+
* The method is part of the key here because a HEAD response carries no body
|
|
16
|
+
* and a GET response does, so serving one from the other would answer with the
|
|
17
|
+
* wrong thing.
|
|
18
|
+
*
|
|
19
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-the-cache-key.html
|
|
20
|
+
*/
|
|
21
|
+
export function simCfCacheEntryKey(properties) {
|
|
22
|
+
const { request, cacheKey, edgeId } = properties;
|
|
23
|
+
const url = new URL(request.url);
|
|
24
|
+
return jsonStringify([
|
|
25
|
+
edgeId,
|
|
26
|
+
request.method.toUpperCase(),
|
|
27
|
+
url.pathname,
|
|
28
|
+
keyedQueryStrings(url.searchParams, cacheKey),
|
|
29
|
+
keyedHeaders(request.headers, cacheKey),
|
|
30
|
+
keyedCookies(request.headers, cacheKey),
|
|
31
|
+
simCfNormalizedAcceptEncoding(request.headers, cacheKey),
|
|
32
|
+
]);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The query strings the policy keys on, in an order two requests sending them
|
|
36
|
+
* differently still agree on.
|
|
37
|
+
*/
|
|
38
|
+
function keyedQueryStrings(searchParameters, cacheKey) {
|
|
39
|
+
return [...searchParameters]
|
|
40
|
+
.filter(([name]) => isKeyedOn(cacheKey.queryStringBehavior, cacheKey.queryStrings, name))
|
|
41
|
+
.map(([name, value]) => `${name}=${value}`)
|
|
42
|
+
.toSorted(byCodePoint);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The headers the policy keys on, by lower-case name since a header name is
|
|
46
|
+
* case insensitive.
|
|
47
|
+
*
|
|
48
|
+
* A header the policy names and the viewer did not send keys as an empty
|
|
49
|
+
* value, so a request sending it and one leaving it out are kept apart.
|
|
50
|
+
*/
|
|
51
|
+
function keyedHeaders(headers, cacheKey) {
|
|
52
|
+
if (cacheKey.headerBehavior === "none") {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
return cacheKey.headers
|
|
56
|
+
.map((name) => `${name.toLowerCase()}=${headers.get(name) ?? ""}`)
|
|
57
|
+
.toSorted(byCodePoint);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The cookies the policy keys on, read out of the one `Cookie` header a
|
|
61
|
+
* request sends them all in.
|
|
62
|
+
*/
|
|
63
|
+
function keyedCookies(headers, cacheKey) {
|
|
64
|
+
return (headers.get("cookie") ?? "")
|
|
65
|
+
.split(";")
|
|
66
|
+
.map((cookie) => cookie.trim())
|
|
67
|
+
.filter((cookie) => cookie.length > 0)
|
|
68
|
+
.filter((cookie) => isKeyedOn(cacheKey.cookieBehavior, cacheKey.cookies, cookieName(cookie)))
|
|
69
|
+
.toSorted(byCodePoint);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Order two parts of a key the same way whatever the host's locale is, which a
|
|
73
|
+
* key two requests have to agree on cannot be left to `localeCompare`.
|
|
74
|
+
*/
|
|
75
|
+
function byCodePoint(one, other) {
|
|
76
|
+
if (one === other) {
|
|
77
|
+
return 0;
|
|
78
|
+
}
|
|
79
|
+
return one < other ? -1 : 1;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The name half of one `name=value` cookie.
|
|
83
|
+
*/
|
|
84
|
+
function cookieName(cookie) {
|
|
85
|
+
const [name = ""] = cookie.split("=", 1);
|
|
86
|
+
return name;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Whether one name is in the cache key, under the behaviour its section names.
|
|
90
|
+
*
|
|
91
|
+
* A `whitelist` keys on the names listed and an `allExcept` keys on everything
|
|
92
|
+
* but them, which is the same list read two ways.
|
|
93
|
+
*
|
|
94
|
+
* The cookie behaviours and the query string behaviours are the same four
|
|
95
|
+
* values, so one function reads both.
|
|
96
|
+
*/
|
|
97
|
+
function isKeyedOn(behavior, names, name) {
|
|
98
|
+
switch (behavior) {
|
|
99
|
+
case "all": {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
case "whitelist": {
|
|
103
|
+
return names.includes(name);
|
|
104
|
+
}
|
|
105
|
+
case "allExcept": {
|
|
106
|
+
return !names.includes(name);
|
|
107
|
+
}
|
|
108
|
+
case "none": {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The header a hit carries its age in, in seconds.
|
|
3
|
+
*/
|
|
4
|
+
export declare const simCfAgeHeaderName = "age";
|
|
5
|
+
/**
|
|
6
|
+
* What `X-Cache` reads when the Distribution's cache answered.
|
|
7
|
+
*/
|
|
8
|
+
export declare const simCfCacheHit = "Hit from cloudfront";
|
|
9
|
+
/**
|
|
10
|
+
* What `X-Cache` reads when the Origin answered.
|
|
11
|
+
*/
|
|
12
|
+
export declare const simCfCacheMiss = "Miss from cloudfront";
|
|
13
|
+
/**
|
|
14
|
+
* The response with `X-Cache` saying which of the two answered it.
|
|
15
|
+
*
|
|
16
|
+
* An `X-Cache` an Origin sent is replaced, the way CloudFront replaces one.
|
|
17
|
+
*/
|
|
18
|
+
export declare function simCfCacheStatusResponse(response: Response, hit: boolean): Response;
|
|
19
|
+
/**
|
|
20
|
+
* How long an entry stored at one instant has been held at another, in whole
|
|
21
|
+
* seconds.
|
|
22
|
+
*
|
|
23
|
+
* Both instants come off the simulation's clock. A test reaches any age it
|
|
24
|
+
* wants by advancing simulated time. A clock wound backwards would give a
|
|
25
|
+
* negative age, and HTTP has no such thing, so zero is the floor.
|
|
26
|
+
*/
|
|
27
|
+
export declare function simCfCacheAgeSec(storedAt: Date, now: Date): number;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What CloudFront tells the viewer about the cache that answered.
|
|
3
|
+
*
|
|
4
|
+
* `X-Cache` says whether the Distribution held the object, and `Age` says how
|
|
5
|
+
* long it has held it. Both go on ahead of the Behavior's response headers
|
|
6
|
+
* policy and the viewer-response event. A policy can take either off, and a
|
|
7
|
+
* viewer-response function sees them.
|
|
8
|
+
*
|
|
9
|
+
* Real CloudFront writes several other values into `X-Cache` (`RefreshHit` and
|
|
10
|
+
* `LambdaGeneratedResponse` among them). A hit and a miss are the two this
|
|
11
|
+
* simulation reaches, and a response answered before the cache was consulted
|
|
12
|
+
* carries no `X-Cache` at all.
|
|
13
|
+
*
|
|
14
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html
|
|
15
|
+
*/
|
|
16
|
+
const xCacheHeaderName = "x-cache";
|
|
17
|
+
/**
|
|
18
|
+
* The header a hit carries its age in, in seconds.
|
|
19
|
+
*/
|
|
20
|
+
export const simCfAgeHeaderName = "age";
|
|
21
|
+
/**
|
|
22
|
+
* What `X-Cache` reads when the Distribution's cache answered.
|
|
23
|
+
*/
|
|
24
|
+
export const simCfCacheHit = "Hit from cloudfront";
|
|
25
|
+
/**
|
|
26
|
+
* What `X-Cache` reads when the Origin answered.
|
|
27
|
+
*/
|
|
28
|
+
export const simCfCacheMiss = "Miss from cloudfront";
|
|
29
|
+
/**
|
|
30
|
+
* The response with `X-Cache` saying which of the two answered it.
|
|
31
|
+
*
|
|
32
|
+
* An `X-Cache` an Origin sent is replaced, the way CloudFront replaces one.
|
|
33
|
+
*/
|
|
34
|
+
export function simCfCacheStatusResponse(response, hit) {
|
|
35
|
+
const headers = new Headers(response.headers);
|
|
36
|
+
headers.set(xCacheHeaderName, hit ? simCfCacheHit : simCfCacheMiss);
|
|
37
|
+
return new Response(response.body, {
|
|
38
|
+
status: response.status,
|
|
39
|
+
statusText: response.statusText,
|
|
40
|
+
headers,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* How long an entry stored at one instant has been held at another, in whole
|
|
45
|
+
* seconds.
|
|
46
|
+
*
|
|
47
|
+
* Both instants come off the simulation's clock. A test reaches any age it
|
|
48
|
+
* wants by advancing simulated time. A clock wound backwards would give a
|
|
49
|
+
* negative age, and HTTP has no such thing, so zero is the floor.
|
|
50
|
+
*/
|
|
51
|
+
export function simCfCacheAgeSec(storedAt, now) {
|
|
52
|
+
return Math.max(0, Math.floor((now.getTime() - storedAt.getTime()) / 1000));
|
|
53
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { SimCloudFrontCachePolicy } from "../cache-policy/sim-cf-cache-policy.js";
|
|
2
|
+
interface SimCfCacheTtlProperties {
|
|
3
|
+
/** The response the Origin answered with, whose headers carry the ask. */
|
|
4
|
+
readonly response: Response;
|
|
5
|
+
/** The Behavior's cache policy, whose three TTLs decide the answer. */
|
|
6
|
+
readonly policy: SimCloudFrontCachePolicy;
|
|
7
|
+
/** Now, off the simulation's clock, which `Expires` is measured from. */
|
|
8
|
+
readonly now: Date;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* How many seconds a Distribution holds this response for. Zero says it holds
|
|
12
|
+
* it not at all.
|
|
13
|
+
*
|
|
14
|
+
* The Origin asks and the policy decides how much of the ask to grant. An
|
|
15
|
+
* Origin naming a duration gets it held between the policy's `MinTTL` and
|
|
16
|
+
* `MaxTTL`, and one naming none gets the greater of `MinTTL` and `DefaultTTL`.
|
|
17
|
+
* `s-maxage` is preferred to `max-age`, and `max-age` to `Expires`, which is
|
|
18
|
+
* the order CloudFront reads them in.
|
|
19
|
+
*
|
|
20
|
+
* `no-store`, `no-cache` and `private` are respected where `MinTTL` is 0, and
|
|
21
|
+
* held for `MinTTL` where it is higher. That last one is CloudFront's own
|
|
22
|
+
* surprise. A policy with a floor overrides an Origin that asked for nothing to
|
|
23
|
+
* be stored.
|
|
24
|
+
*
|
|
25
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html
|
|
26
|
+
*/
|
|
27
|
+
export declare function simCfCacheTtlSec(properties: SimCfCacheTtlProperties): number;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { simCfCacheControl } from "./sim-cf-cache-control.js";
|
|
2
|
+
import { simCfHttpDateInstant } from "./sim-cf-http-date.js";
|
|
3
|
+
/**
|
|
4
|
+
* How many seconds a Distribution holds this response for. Zero says it holds
|
|
5
|
+
* it not at all.
|
|
6
|
+
*
|
|
7
|
+
* The Origin asks and the policy decides how much of the ask to grant. An
|
|
8
|
+
* Origin naming a duration gets it held between the policy's `MinTTL` and
|
|
9
|
+
* `MaxTTL`, and one naming none gets the greater of `MinTTL` and `DefaultTTL`.
|
|
10
|
+
* `s-maxage` is preferred to `max-age`, and `max-age` to `Expires`, which is
|
|
11
|
+
* the order CloudFront reads them in.
|
|
12
|
+
*
|
|
13
|
+
* `no-store`, `no-cache` and `private` are respected where `MinTTL` is 0, and
|
|
14
|
+
* held for `MinTTL` where it is higher. That last one is CloudFront's own
|
|
15
|
+
* surprise. A policy with a floor overrides an Origin that asked for nothing to
|
|
16
|
+
* be stored.
|
|
17
|
+
*
|
|
18
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html
|
|
19
|
+
*/
|
|
20
|
+
export function simCfCacheTtlSec(properties) {
|
|
21
|
+
const { response, policy, now } = properties;
|
|
22
|
+
const control = simCfCacheControl(response.headers.get("cache-control"));
|
|
23
|
+
if (control.uncacheable) {
|
|
24
|
+
return policy.minTtlSec;
|
|
25
|
+
}
|
|
26
|
+
const asked = control.sharedMaxAgeSec ??
|
|
27
|
+
control.maxAgeSec ??
|
|
28
|
+
expiresTtlSec(response, now);
|
|
29
|
+
if (asked === undefined) {
|
|
30
|
+
return Math.max(policy.minTtlSec, policy.defaultTtlSec);
|
|
31
|
+
}
|
|
32
|
+
return Math.min(Math.max(asked, policy.minTtlSec), policy.maxTtlSec);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The seconds left until the `Expires` header's instant, or none where the
|
|
36
|
+
* response carries no such header.
|
|
37
|
+
*
|
|
38
|
+
* A date already gone by counts as no seconds, which the policy's `MinTTL`
|
|
39
|
+
* then raises where it has one. A value that is not an HTTP date counts the
|
|
40
|
+
* same way, following RFC 9111, which reads an unparsable `Expires` as an
|
|
41
|
+
* object that has already expired.
|
|
42
|
+
*/
|
|
43
|
+
function expiresTtlSec(response, now) {
|
|
44
|
+
const expires = response.headers.get("expires");
|
|
45
|
+
if (expires === null) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
const instant = simCfHttpDateInstant(expires.trim());
|
|
49
|
+
return instant === undefined ? 0 : (instant - now.getTime()) / 1000;
|
|
50
|
+
}
|