@kensio/yulin 0.38.0 → 0.40.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 +3 -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-scoped-service-registries.d.ts +31 -0
- package/dist/service/aws/factory/sim-aws-scoped-service-registries.d.ts.map +1 -0
- package/dist/service/aws/factory/sim-aws-scoped-service-registries.js +31 -0
- package/dist/service/aws/factory/sim-aws-scoped-service-registries.js.map +1 -0
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +10 -21
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.js +22 -29
- 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.d.ts +5 -0
- package/dist/service/aws/sim-aws.d.ts.map +1 -1
- package/dist/service/aws/sim-aws.js +6 -0
- package/dist/service/aws/sim-aws.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/acm/sim-acm-cfn-value-adapter.d.ts +6 -0
- package/dist/service/cloudformation/resource/cfn/acm/sim-acm-cfn-value-adapter.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/acm/sim-acm-cfn-value-adapter.js +13 -0
- package/dist/service/cloudformation/resource/cfn/acm/sim-acm-cfn-value-adapter.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.d.ts +6 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +21 -0
- package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.d.ts +6 -0
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.js +17 -0
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-alias-cfn.d.ts +26 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-alias-cfn.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-alias-cfn.js +26 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-alias-cfn.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-cfn-value-adapter.d.ts +6 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-cfn-value-adapter.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-cfn-value-adapter.js +19 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-cfn-value-adapter.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-key-cfn.d.ts +25 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-key-cfn.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-key-cfn.js +34 -0
- package/dist/service/cloudformation/resource/cfn/kms/sim-kms-key-cfn.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.d.ts +6 -0
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.js +19 -0
- package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/route53/sim-route53-cfn-value-adapter.d.ts +6 -0
- package/dist/service/cloudformation/resource/cfn/route53/sim-route53-cfn-value-adapter.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/route53/sim-route53-cfn-value-adapter.js +13 -0
- package/dist/service/cloudformation/resource/cfn/route53/sim-route53-cfn-value-adapter.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/s3/sim-s3-cfn-value-adapter.d.ts +6 -0
- package/dist/service/cloudformation/resource/cfn/s3/sim-s3-cfn-value-adapter.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/s3/sim-s3-cfn-value-adapter.js +13 -0
- package/dist/service/cloudformation/resource/cfn/s3/sim-s3-cfn-value-adapter.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-cfn-value-adapter.d.ts +7 -0
- package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-cfn-value-adapter.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-cfn-value-adapter.js +14 -0
- package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-cfn-value-adapter.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-secret-cfn.d.ts +24 -0
- package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-secret-cfn.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-secret-cfn.js +30 -0
- package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-secret-cfn.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.d.ts +11 -2
- package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js +24 -71
- package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js.map +1 -1
- package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.js +6 -0
- package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.js.map +1 -1
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.d.ts +25 -0
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.d.ts.map +1 -0
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.js +36 -0
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.js.map +1 -0
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-properties.d.ts +32 -0
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-properties.d.ts.map +1 -0
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-properties.js +35 -0
- package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-properties.js.map +1 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.d.ts +36 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.d.ts.map +1 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.js +53 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.js.map +1 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-properties.d.ts +57 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-properties.d.ts.map +1 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-properties.js +74 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-key-properties.js.map +1 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-unsimulated-key-properties.d.ts +49 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-unsimulated-key-properties.d.ts.map +1 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-unsimulated-key-properties.js +72 -0
- package/dist/service/kms/cfn/key/sim-cfn-kms-unsimulated-key-properties.js.map +1 -0
- package/dist/service/kms/cfn/sim-cfn-kms-property-parser.d.ts +56 -0
- package/dist/service/kms/cfn/sim-cfn-kms-property-parser.d.ts.map +1 -0
- package/dist/service/kms/cfn/sim-cfn-kms-property-parser.js +95 -0
- package/dist/service/kms/cfn/sim-cfn-kms-property-parser.js.map +1 -0
- package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.d.ts +23 -0
- package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.d.ts.map +1 -0
- package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.js +34 -0
- package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.js.map +1 -0
- package/dist/service/kms/key/sim-kms-key-store.d.ts +8 -0
- package/dist/service/kms/key/sim-kms-key-store.d.ts.map +1 -1
- package/dist/service/kms/key/sim-kms-key-store.js +10 -0
- package/dist/service/kms/key/sim-kms-key-store.js.map +1 -1
- package/dist/service/kms/sim-kms.d.ts +15 -0
- package/dist/service/kms/sim-kms.d.ts.map +1 -1
- package/dist/service/kms/sim-kms.js +18 -0
- package/dist/service/kms/sim-kms.js.map +1 -1
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generate-secret-string-parser.d.ts +22 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generate-secret-string-parser.d.ts.map +1 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generate-secret-string-parser.js +47 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generate-secret-string-parser.js.map +1 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.d.ts +24 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.d.ts.map +1 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.js +38 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.js.map +1 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts +54 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts.map +1 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js +82 -0
- package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js.map +1 -0
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-property-parser.d.ts +58 -0
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-property-parser.d.ts.map +1 -0
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-property-parser.js +122 -0
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-property-parser.js.map +1 -0
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.d.ts +24 -0
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.d.ts.map +1 -0
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.js +31 -0
- package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.js.map +1 -0
- package/dist/service/secretsmanager/command/authorize/sim-secrets-manager-authorizer.d.ts +29 -0
- package/dist/service/secretsmanager/command/authorize/sim-secrets-manager-authorizer.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/authorize/sim-secrets-manager-authorizer.js +47 -0
- package/dist/service/secretsmanager/command/authorize/sim-secrets-manager-authorizer.js.map +1 -0
- package/dist/service/secretsmanager/command/secret/secret.command.d.ts +144 -0
- package/dist/service/secretsmanager/command/secret/secret.command.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/secret/secret.command.js +2 -0
- package/dist/service/secretsmanager/command/secret/secret.command.js.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-lifecycle-commands.d.ts +44 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-lifecycle-commands.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-lifecycle-commands.js +61 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-lifecycle-commands.js.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-list-secrets.d.ts +44 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-list-secrets.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-list-secrets.js +61 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-list-secrets.js.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.d.ts +48 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.js +62 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.js.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-detail.d.ts +26 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-detail.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-detail.js +38 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-detail.js.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-page.d.ts +29 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-page.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-page.js +55 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-page.js.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.d.ts +46 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.js +67 -0
- package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.js.map +1 -0
- package/dist/service/secretsmanager/command/sim-secrets-manager-command.types.d.ts +6 -0
- package/dist/service/secretsmanager/command/sim-secrets-manager-command.types.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/sim-secrets-manager-command.types.js +2 -0
- package/dist/service/secretsmanager/command/sim-secrets-manager-command.types.js.map +1 -0
- package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.d.ts +39 -0
- package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.js +61 -0
- package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.js.map +1 -0
- package/dist/service/secretsmanager/command/value/value.command.d.ts +47 -0
- package/dist/service/secretsmanager/command/value/value.command.d.ts.map +1 -0
- package/dist/service/secretsmanager/command/value/value.command.js +2 -0
- package/dist/service/secretsmanager/command/value/value.command.js.map +1 -0
- package/dist/service/secretsmanager/error/sim-secrets-manager.error.d.ts +55 -0
- package/dist/service/secretsmanager/error/sim-secrets-manager.error.d.ts.map +1 -0
- package/dist/service/secretsmanager/error/sim-secrets-manager.error.js +60 -0
- package/dist/service/secretsmanager/error/sim-secrets-manager.error.js.map +1 -0
- package/dist/service/secretsmanager/index.d.ts +7 -0
- package/dist/service/secretsmanager/index.d.ts.map +1 -0
- package/dist/service/secretsmanager/index.js +7 -0
- package/dist/service/secretsmanager/index.js.map +1 -0
- package/dist/service/secretsmanager/sdk/sim-secrets-manager-sdk-command-router.d.ts +19 -0
- package/dist/service/secretsmanager/sdk/sim-secrets-manager-sdk-command-router.d.ts.map +1 -0
- package/dist/service/secretsmanager/sdk/sim-secrets-manager-sdk-command-router.js +57 -0
- package/dist/service/secretsmanager/sdk/sim-secrets-manager-sdk-command-router.js.map +1 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-generated-secret-string.d.ts +37 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-generated-secret-string.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-generated-secret-string.js +70 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-generated-secret-string.js.map +1 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-set.d.ts +53 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-set.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-set.js +65 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-set.js.map +1 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-sets.d.ts +40 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-sets.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-sets.js +66 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-sets.js.map +1 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-generator.d.ts +31 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-generator.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-generator.js +52 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-generator.js.map +1 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-spec.d.ts +35 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-spec.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-spec.js +64 -0
- package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-spec.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-deletion-schedule.d.ts +33 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-deletion-schedule.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-deletion-schedule.js +60 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-deletion-schedule.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-arn.d.ts +42 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-arn.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-arn.js +64 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-arn.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-expiry.d.ts +30 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-expiry.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-expiry.js +32 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-expiry.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-factory.d.ts +31 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-factory.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-factory.js +35 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-factory.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-id.d.ts +27 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-id.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-id.js +48 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-id.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts +23 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js +50 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.d.ts +53 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.js +92 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.d.ts +47 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.js +81 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.d.ts +56 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.js +62 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-versions.d.ts +47 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-versions.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-versions.js +83 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-versions.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret.d.ts +75 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret.js +86 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-secret.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-version-selector.d.ts +28 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-version-selector.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-version-selector.js +43 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-version-selector.js.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.d.ts +42 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.d.ts.map +1 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.js +60 -0
- package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.js.map +1 -0
- package/dist/service/secretsmanager/sim-secrets-manager.d.ts +85 -0
- package/dist/service/secretsmanager/sim-secrets-manager.d.ts.map +1 -0
- package/dist/service/secretsmanager/sim-secrets-manager.js +156 -0
- package/dist/service/secretsmanager/sim-secrets-manager.js.map +1 -0
- package/package.json +6 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-factory.js","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-factory.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,uBAAuB,GAExB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAcnF;;;;;;GAMG;AACH,MAAM,OAAO,8BAA8B;IACxB,kBAAkB,CAA2B;IAC7C,KAAK,CAAW;IAEjC,YAAY,UAAoD;QAC9D,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,CACF,UAAiD;QAEjD,MAAM,IAAI,GAAG,IAAI,2BAA2B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE9D,OAAO,IAAI,uBAAuB,CAAC;YACjC,GAAG,EAAE,IAAI,0BAA0B,CAAC;gBAClC,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;aAC5C,CAAC;YACF,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7B,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
|
|
2
|
+
interface SimSecretsManagerSecretIdParserProperties {
|
|
3
|
+
readonly accountRegionScope: SimAwsAccountRegionScope;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Turns the SecretId every Secrets Manager operation takes into the resource
|
|
7
|
+
* part it names.
|
|
8
|
+
*
|
|
9
|
+
* Real Secrets Manager accepts three forms — a friendly name, a full ARN with
|
|
10
|
+
* its six-character suffix, and a partial ARN without it — so working out
|
|
11
|
+
* which one is in hand belongs in one place rather than in each command.
|
|
12
|
+
*
|
|
13
|
+
* An ARN naming another Account or Region resolves to nothing rather than
|
|
14
|
+
* having its name read out and looked up locally, so a foreign ARN cannot
|
|
15
|
+
* reach a secret that happens to share a name.
|
|
16
|
+
*/
|
|
17
|
+
export declare class SimSecretsManagerSecretIdParser {
|
|
18
|
+
private readonly accountRegionScope;
|
|
19
|
+
constructor(properties: SimSecretsManagerSecretIdParserProperties);
|
|
20
|
+
/**
|
|
21
|
+
* The resource part a SecretId names in this scope, if it names one here.
|
|
22
|
+
*/
|
|
23
|
+
resolveResource(secretId: string): string | undefined;
|
|
24
|
+
private arnResource;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=sim-secrets-manager-secret-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-id.d.ts","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAO1F,UAAU,yCAAyC;IACjD,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;CACvD;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,+BAA+B;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAE9D,YAAY,UAAU,EAAE,yCAAyC,EAEhE;IAED;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpD;IAED,OAAO,CAAC,WAAW;CA0BpB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const arnPrefix = "arn:";
|
|
2
|
+
const arnPartCount = 7;
|
|
3
|
+
const secretsManagerService = "secretsmanager";
|
|
4
|
+
const secretResourceType = "secret";
|
|
5
|
+
/**
|
|
6
|
+
* Turns the SecretId every Secrets Manager operation takes into the resource
|
|
7
|
+
* part it names.
|
|
8
|
+
*
|
|
9
|
+
* Real Secrets Manager accepts three forms — a friendly name, a full ARN with
|
|
10
|
+
* its six-character suffix, and a partial ARN without it — so working out
|
|
11
|
+
* which one is in hand belongs in one place rather than in each command.
|
|
12
|
+
*
|
|
13
|
+
* An ARN naming another Account or Region resolves to nothing rather than
|
|
14
|
+
* having its name read out and looked up locally, so a foreign ARN cannot
|
|
15
|
+
* reach a secret that happens to share a name.
|
|
16
|
+
*/
|
|
17
|
+
export class SimSecretsManagerSecretIdParser {
|
|
18
|
+
accountRegionScope;
|
|
19
|
+
constructor(properties) {
|
|
20
|
+
this.accountRegionScope = properties.accountRegionScope;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The resource part a SecretId names in this scope, if it names one here.
|
|
24
|
+
*/
|
|
25
|
+
resolveResource(secretId) {
|
|
26
|
+
if (!secretId.startsWith(arnPrefix)) {
|
|
27
|
+
return secretId;
|
|
28
|
+
}
|
|
29
|
+
return this.arnResource(secretId);
|
|
30
|
+
}
|
|
31
|
+
arnResource(arn) {
|
|
32
|
+
const parts = arn.split(":");
|
|
33
|
+
if (parts.length !== arnPartCount) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
const [service, regionName, accountId, resourceType, resource] = parts.slice(2);
|
|
37
|
+
if (service !== secretsManagerService ||
|
|
38
|
+
resourceType !== secretResourceType) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
if (regionName !== this.accountRegionScope.regionName ||
|
|
42
|
+
accountId !== this.accountRegionScope.accountId) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
return resource;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=sim-secrets-manager-secret-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-id.js","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-id.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAC/C,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAMpC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,+BAA+B;IACzB,kBAAkB,CAA2B;IAE9D,YAAY,UAAqD;QAC/D,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,QAAgB;QAC9B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEO,WAAW,CAAC,GAAW;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,GAC5D,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjB,IACE,OAAO,KAAK,qBAAqB;YACjC,YAAY,KAAK,kBAAkB,EACnC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IACE,UAAU,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU;YACjD,SAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAC/C,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The name of one simulated secret, validated as real Secrets Manager does.
|
|
3
|
+
*
|
|
4
|
+
* Kept as a value object rather than a bare string because the rules are worth
|
|
5
|
+
* applying in one place: a name that a simulation accepts and real Secrets
|
|
6
|
+
* Manager refuses is exactly the divergence that makes a passing test worthless.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SimSecretsManagerSecretName {
|
|
9
|
+
readonly value: string;
|
|
10
|
+
constructor(name: string | undefined);
|
|
11
|
+
private static validated;
|
|
12
|
+
/**
|
|
13
|
+
* Refuse a name that would be ambiguous with an ARN suffix.
|
|
14
|
+
*
|
|
15
|
+
* Real AWS only advises against this rather than refusing it, so this is a
|
|
16
|
+
* deliberate divergence and a deliberately strict one. A name ending in a
|
|
17
|
+
* hyphen and six characters cannot be told apart from a full ARN's resource
|
|
18
|
+
* part, so a partial ARN naming it could resolve to the wrong secret. A
|
|
19
|
+
* puzzling error at creation is better than a quietly wrong lookup later.
|
|
20
|
+
*/
|
|
21
|
+
private static refuseAmbiguousSuffix;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=sim-secrets-manager-secret-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-name.d.ts","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-name.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,qBAAa,2BAA2B;IACtC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,YAAY,IAAI,EAAE,MAAM,GAAG,SAAS,EAEnC;IAED,OAAO,CAAC,MAAM,CAAC,SAAS;IAyBxB;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;CAYrC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { SimSecretsManagerInvalidParameterException } from "../error/sim-secrets-manager.error.js";
|
|
2
|
+
import { secretArnSuffixPattern } from "./sim-secrets-manager-secret-arn.js";
|
|
3
|
+
const maxNameLength = 512;
|
|
4
|
+
const allowedCharacters = /^[\w+=./@-]+$/;
|
|
5
|
+
/**
|
|
6
|
+
* The name of one simulated secret, validated as real Secrets Manager does.
|
|
7
|
+
*
|
|
8
|
+
* Kept as a value object rather than a bare string because the rules are worth
|
|
9
|
+
* applying in one place: a name that a simulation accepts and real Secrets
|
|
10
|
+
* Manager refuses is exactly the divergence that makes a passing test worthless.
|
|
11
|
+
*/
|
|
12
|
+
export class SimSecretsManagerSecretName {
|
|
13
|
+
value;
|
|
14
|
+
constructor(name) {
|
|
15
|
+
this.value = SimSecretsManagerSecretName.validated(name);
|
|
16
|
+
}
|
|
17
|
+
static validated(name) {
|
|
18
|
+
if (name === undefined || name === "") {
|
|
19
|
+
throw new SimSecretsManagerInvalidParameterException("Name is required to create a secret");
|
|
20
|
+
}
|
|
21
|
+
if (name.length > maxNameLength) {
|
|
22
|
+
throw new SimSecretsManagerInvalidParameterException(`Secret name '${name}' is longer than the ${String(maxNameLength)} characters Secrets Manager allows`);
|
|
23
|
+
}
|
|
24
|
+
if (!allowedCharacters.test(name)) {
|
|
25
|
+
throw new SimSecretsManagerInvalidParameterException(`Secret name '${name}' contains characters Secrets Manager does not allow: ` +
|
|
26
|
+
`only letters, digits and the characters /_+=.@- are permitted`);
|
|
27
|
+
}
|
|
28
|
+
this.refuseAmbiguousSuffix(name);
|
|
29
|
+
return name;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Refuse a name that would be ambiguous with an ARN suffix.
|
|
33
|
+
*
|
|
34
|
+
* Real AWS only advises against this rather than refusing it, so this is a
|
|
35
|
+
* deliberate divergence and a deliberately strict one. A name ending in a
|
|
36
|
+
* hyphen and six characters cannot be told apart from a full ARN's resource
|
|
37
|
+
* part, so a partial ARN naming it could resolve to the wrong secret. A
|
|
38
|
+
* puzzling error at creation is better than a quietly wrong lookup later.
|
|
39
|
+
*/
|
|
40
|
+
static refuseAmbiguousSuffix(name) {
|
|
41
|
+
if (!secretArnSuffixPattern.test(name)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
throw new SimSecretsManagerInvalidParameterException(`Secret name '${name}' ends in a hyphen and six characters, which is ` +
|
|
45
|
+
`ambiguous with the suffix Secrets Manager appends to a secret ARN. ` +
|
|
46
|
+
`AWS advises against such names because a partial ARN naming one ` +
|
|
47
|
+
`cannot be resolved reliably; simulated Secrets Manager refuses them.`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=sim-secrets-manager-secret-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-name.js","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,OAAO,2BAA2B;IACtB,KAAK,CAAS;IAE9B,YAAY,IAAwB;QAClC,IAAI,CAAC,KAAK,GAAG,2BAA2B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,IAAwB;QAC/C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,0CAA0C,CAClD,qCAAqC,CACtC,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YAChC,MAAM,IAAI,0CAA0C,CAClD,gBAAgB,IAAI,wBAAwB,MAAM,CAAC,aAAa,CAAC,oCAAoC,CACtG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,0CAA0C,CAClD,gBAAgB,IAAI,wDAAwD;gBAC1E,+DAA+D,CAClE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,qBAAqB,CAAC,IAAY;QAC/C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,0CAA0C,CAClD,gBAAgB,IAAI,kDAAkD;YACpE,qEAAqE;YACrE,kEAAkE;YAClE,sEAAsE,CACzE,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
|
|
2
|
+
import type { SimSecretsManagerSecret } from "./sim-secrets-manager-secret.js";
|
|
3
|
+
interface SimSecretsManagerSecretStoreProperties {
|
|
4
|
+
readonly accountRegionScope: SimAwsAccountRegionScope;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The secrets of one simulated Secrets Manager scope, and how a SecretId
|
|
8
|
+
* resolves to one of them.
|
|
9
|
+
*
|
|
10
|
+
* Every operation names its target as a SecretId that may be a friendly name,
|
|
11
|
+
* a full ARN or a partial ARN, so resolution belongs here rather than in each
|
|
12
|
+
* command handler.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SimSecretsManagerSecretStore {
|
|
15
|
+
private readonly secrets;
|
|
16
|
+
private readonly accountRegionScope;
|
|
17
|
+
private readonly secretIds;
|
|
18
|
+
constructor(properties: SimSecretsManagerSecretStoreProperties);
|
|
19
|
+
/**
|
|
20
|
+
* Every secret in this scope, in creation order.
|
|
21
|
+
*/
|
|
22
|
+
get all(): readonly SimSecretsManagerSecret[];
|
|
23
|
+
/**
|
|
24
|
+
* Store a newly created secret.
|
|
25
|
+
*/
|
|
26
|
+
add(secret: SimSecretsManagerSecret): void;
|
|
27
|
+
/**
|
|
28
|
+
* Forget a secret, as happens when its recovery window runs out or when it
|
|
29
|
+
* is deleted without one.
|
|
30
|
+
*/
|
|
31
|
+
remove(secret: SimSecretsManagerSecret): void;
|
|
32
|
+
/**
|
|
33
|
+
* Resolve a SecretId to the secret it names, or refuse.
|
|
34
|
+
*
|
|
35
|
+
* A secret scheduled for deletion still resolves, because it still exists:
|
|
36
|
+
* it can be described and restored until its window runs out.
|
|
37
|
+
*/
|
|
38
|
+
require(secretId: string | undefined): SimSecretsManagerSecret;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve a SecretId in any of the forms real Secrets Manager accepts.
|
|
41
|
+
*/
|
|
42
|
+
find(secretId: string): SimSecretsManagerSecret | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Refuse a name that is already taken, saying which way it is taken.
|
|
45
|
+
*
|
|
46
|
+
* A name held by a secret waiting out its recovery window is the failure
|
|
47
|
+
* people actually hit when a stack is deleted and redeployed, so it is worth
|
|
48
|
+
* telling apart from a name held by a live secret.
|
|
49
|
+
*/
|
|
50
|
+
requireNameAvailable(name: string): void;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=sim-secrets-manager-secret-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-store.d.ts","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAO1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG/E,UAAU,sCAAsC;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;CACvD;AAED;;;;;;;GAOG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IACtE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAE5D,YAAY,UAAU,EAAE,sCAAsC,EAK7D;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,SAAS,uBAAuB,EAAE,CAE5C;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAEzC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAE5C;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,uBAAuB,CAmB7D;IAED;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAU1D;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAoBvC;CACF"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { SimSecretsManagerInvalidParameterException, SimSecretsManagerInvalidRequestException, SimSecretsManagerResourceExistsException, SimSecretsManagerResourceNotFoundException, } from "../error/sim-secrets-manager.error.js";
|
|
2
|
+
import { SimSecretsManagerSecretIdParser } from "./sim-secrets-manager-secret-id.js";
|
|
3
|
+
/**
|
|
4
|
+
* The secrets of one simulated Secrets Manager scope, and how a SecretId
|
|
5
|
+
* resolves to one of them.
|
|
6
|
+
*
|
|
7
|
+
* Every operation names its target as a SecretId that may be a friendly name,
|
|
8
|
+
* a full ARN or a partial ARN, so resolution belongs here rather than in each
|
|
9
|
+
* command handler.
|
|
10
|
+
*/
|
|
11
|
+
export class SimSecretsManagerSecretStore {
|
|
12
|
+
secrets = new Map();
|
|
13
|
+
accountRegionScope;
|
|
14
|
+
secretIds;
|
|
15
|
+
constructor(properties) {
|
|
16
|
+
this.accountRegionScope = properties.accountRegionScope;
|
|
17
|
+
this.secretIds = new SimSecretsManagerSecretIdParser({
|
|
18
|
+
accountRegionScope: properties.accountRegionScope,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Every secret in this scope, in creation order.
|
|
23
|
+
*/
|
|
24
|
+
get all() {
|
|
25
|
+
return this.secrets.values().toArray();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Store a newly created secret.
|
|
29
|
+
*/
|
|
30
|
+
add(secret) {
|
|
31
|
+
this.secrets.set(secret.arn.value, secret);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Forget a secret, as happens when its recovery window runs out or when it
|
|
35
|
+
* is deleted without one.
|
|
36
|
+
*/
|
|
37
|
+
remove(secret) {
|
|
38
|
+
this.secrets.delete(secret.arn.value);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolve a SecretId to the secret it names, or refuse.
|
|
42
|
+
*
|
|
43
|
+
* A secret scheduled for deletion still resolves, because it still exists:
|
|
44
|
+
* it can be described and restored until its window runs out.
|
|
45
|
+
*/
|
|
46
|
+
require(secretId) {
|
|
47
|
+
if (secretId === undefined || secretId === "") {
|
|
48
|
+
throw new SimSecretsManagerInvalidParameterException("SecretId is required");
|
|
49
|
+
}
|
|
50
|
+
const found = this.find(secretId);
|
|
51
|
+
if (found === undefined) {
|
|
52
|
+
const { accountId, regionName } = this.accountRegionScope;
|
|
53
|
+
throw new SimSecretsManagerResourceNotFoundException(`Secrets Manager can't find the specified secret '${secretId}' in ` +
|
|
54
|
+
`Account ${accountId} Region ${regionName}`);
|
|
55
|
+
}
|
|
56
|
+
return found;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Resolve a SecretId in any of the forms real Secrets Manager accepts.
|
|
60
|
+
*/
|
|
61
|
+
find(secretId) {
|
|
62
|
+
const resource = this.secretIds.resolveResource(secretId);
|
|
63
|
+
if (resource === undefined) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return this.secrets
|
|
67
|
+
.values()
|
|
68
|
+
.find((secret) => secret.arn.matchesResource(resource));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Refuse a name that is already taken, saying which way it is taken.
|
|
72
|
+
*
|
|
73
|
+
* A name held by a secret waiting out its recovery window is the failure
|
|
74
|
+
* people actually hit when a stack is deleted and redeployed, so it is worth
|
|
75
|
+
* telling apart from a name held by a live secret.
|
|
76
|
+
*/
|
|
77
|
+
requireNameAvailable(name) {
|
|
78
|
+
const existing = this.secrets
|
|
79
|
+
.values()
|
|
80
|
+
.find((secret) => secret.name === name);
|
|
81
|
+
if (existing === undefined) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (existing.isScheduledForDeletion) {
|
|
85
|
+
throw new SimSecretsManagerInvalidRequestException(`A secret with the name '${name}' is scheduled for deletion. ` +
|
|
86
|
+
`Wait for the recovery window to elapse, or restore it with ` +
|
|
87
|
+
`RestoreSecret and delete it with ForceDeleteWithoutRecovery.`);
|
|
88
|
+
}
|
|
89
|
+
throw new SimSecretsManagerResourceExistsException(`The secret '${name}' already exists`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=sim-secrets-manager-secret-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-store.js","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-store.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0CAA0C,EAC1C,wCAAwC,EACxC,wCAAwC,EACxC,0CAA0C,GAC3C,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AAMrF;;;;;;;GAOG;AACH,MAAM,OAAO,4BAA4B;IACtB,OAAO,GAAG,IAAI,GAAG,EAAmC,CAAC;IACrD,kBAAkB,CAA2B;IAC7C,SAAS,CAAkC;IAE5D,YAAY,UAAkD;QAC5D,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,IAAI,+BAA+B,CAAC;YACnD,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;SAClD,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,MAA+B;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAA+B;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAA4B;QAClC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,0CAA0C,CAClD,sBAAsB,CACvB,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAE1D,MAAM,IAAI,0CAA0C,CAClD,oDAAoD,QAAQ,OAAO;gBACjE,WAAW,SAAS,WAAW,UAAU,EAAE,CAC9C,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,QAAgB;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE1D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,EAAE;aACR,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,IAAY;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO;aAC1B,MAAM,EAAE;aACR,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAE1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,sBAAsB,EAAE,CAAC;YACpC,MAAM,IAAI,wCAAwC,CAChD,2BAA2B,IAAI,+BAA+B;gBAC5D,6DAA6D;gBAC7D,8DAA8D,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,wCAAwC,CAChD,eAAe,IAAI,kBAAkB,CACtC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two ways a Secrets Manager request can carry a secret value.
|
|
3
|
+
*/
|
|
4
|
+
export interface SimSecretsManagerSecretValueInput {
|
|
5
|
+
readonly SecretString?: string | undefined;
|
|
6
|
+
readonly SecretBinary?: Uint8Array | undefined;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The value held by one version of a simulated secret.
|
|
10
|
+
*
|
|
11
|
+
* Real Secrets Manager stores either text or binary and never both, and hands
|
|
12
|
+
* back whichever one it stored. Holding one content field rather than two
|
|
13
|
+
* optional ones keeps that invariant true by construction, so no reader has to
|
|
14
|
+
* cope with a value that is somehow neither.
|
|
15
|
+
*/
|
|
16
|
+
export declare class SimSecretsManagerSecretValue {
|
|
17
|
+
private readonly content;
|
|
18
|
+
private constructor();
|
|
19
|
+
/**
|
|
20
|
+
* Read a value from request input, refusing a request carrying neither.
|
|
21
|
+
*/
|
|
22
|
+
static required(input: SimSecretsManagerSecretValueInput): SimSecretsManagerSecretValue;
|
|
23
|
+
/**
|
|
24
|
+
* Read a value from request input where supplying one is optional.
|
|
25
|
+
*/
|
|
26
|
+
static optional(input: SimSecretsManagerSecretValueInput): SimSecretsManagerSecretValue | undefined;
|
|
27
|
+
private static bytesEqual;
|
|
28
|
+
/**
|
|
29
|
+
* The text value, if this version holds text.
|
|
30
|
+
*/
|
|
31
|
+
get secretString(): string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* The binary value, if this version holds binary.
|
|
34
|
+
*
|
|
35
|
+
* A copy is handed out so a caller mutating the array it receives cannot
|
|
36
|
+
* change the stored secret, as it could not over a real API.
|
|
37
|
+
*/
|
|
38
|
+
get secretBinary(): Uint8Array | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Whether another value holds exactly the same content.
|
|
41
|
+
*
|
|
42
|
+
* This is what makes a retried write with the same client request token a
|
|
43
|
+
* no-op rather than a failure, as it is on real AWS.
|
|
44
|
+
*/
|
|
45
|
+
equals(other: SimSecretsManagerSecretValue): boolean;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=sim-secrets-manager-secret-value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-value.d.ts","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-value.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAChD;AAED;;;;;;;GAOG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,OAAO,eAEN;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,KAAK,EAAE,iCAAiC,GACvC,4BAA4B,CAU9B;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,KAAK,EAAE,iCAAiC,GACvC,4BAA4B,GAAG,SAAS,CAkB1C;IAED,OAAO,CAAC,MAAM,CAAC,UAAU;IAQzB;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAMrC;IAED;;;;;OAKG;IACH,IAAI,YAAY,IAAI,UAAU,GAAG,SAAS,CAMzC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAMnD;CACF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { SimSecretsManagerInvalidParameterException } from "../error/sim-secrets-manager.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* The value held by one version of a simulated secret.
|
|
4
|
+
*
|
|
5
|
+
* Real Secrets Manager stores either text or binary and never both, and hands
|
|
6
|
+
* back whichever one it stored. Holding one content field rather than two
|
|
7
|
+
* optional ones keeps that invariant true by construction, so no reader has to
|
|
8
|
+
* cope with a value that is somehow neither.
|
|
9
|
+
*/
|
|
10
|
+
export class SimSecretsManagerSecretValue {
|
|
11
|
+
content;
|
|
12
|
+
constructor(content) {
|
|
13
|
+
this.content = content;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Read a value from request input, refusing a request carrying neither.
|
|
17
|
+
*/
|
|
18
|
+
static required(input) {
|
|
19
|
+
const value = this.optional(input);
|
|
20
|
+
if (value === undefined) {
|
|
21
|
+
throw new SimSecretsManagerInvalidParameterException("Either SecretString or SecretBinary must be supplied");
|
|
22
|
+
}
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Read a value from request input where supplying one is optional.
|
|
27
|
+
*/
|
|
28
|
+
static optional(input) {
|
|
29
|
+
const { SecretString: text, SecretBinary: bytes } = input;
|
|
30
|
+
if (text !== undefined && bytes !== undefined) {
|
|
31
|
+
throw new SimSecretsManagerInvalidParameterException("SecretString and SecretBinary cannot both be supplied");
|
|
32
|
+
}
|
|
33
|
+
if (text !== undefined) {
|
|
34
|
+
return new SimSecretsManagerSecretValue(text);
|
|
35
|
+
}
|
|
36
|
+
if (bytes !== undefined) {
|
|
37
|
+
return new SimSecretsManagerSecretValue(Uint8Array.from(bytes));
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
static bytesEqual(mine, theirs) {
|
|
42
|
+
if (mine.length !== theirs.length) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return mine.every((byte, index) => byte === theirs.at(index));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The text value, if this version holds text.
|
|
49
|
+
*/
|
|
50
|
+
get secretString() {
|
|
51
|
+
if (typeof this.content === "string") {
|
|
52
|
+
return this.content;
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The binary value, if this version holds binary.
|
|
58
|
+
*
|
|
59
|
+
* A copy is handed out so a caller mutating the array it receives cannot
|
|
60
|
+
* change the stored secret, as it could not over a real API.
|
|
61
|
+
*/
|
|
62
|
+
get secretBinary() {
|
|
63
|
+
if (typeof this.content === "string") {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return Uint8Array.from(this.content);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Whether another value holds exactly the same content.
|
|
70
|
+
*
|
|
71
|
+
* This is what makes a retried write with the same client request token a
|
|
72
|
+
* no-op rather than a failure, as it is on real AWS.
|
|
73
|
+
*/
|
|
74
|
+
equals(other) {
|
|
75
|
+
if (typeof this.content === "string" || typeof other.content === "string") {
|
|
76
|
+
return this.content === other.content;
|
|
77
|
+
}
|
|
78
|
+
return SimSecretsManagerSecretValue.bytesEqual(this.content, other.content);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=sim-secrets-manager-secret-value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-value.js","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC;AAUnG;;;;;;;GAOG;AACH,MAAM,OAAO,4BAA4B;IACtB,OAAO,CAAsB;IAE9C,YAAoB,OAA4B;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,KAAwC;QAExC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,0CAA0C,CAClD,sDAAsD,CACvD,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,KAAwC;QAExC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAE1D,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9C,MAAM,IAAI,0CAA0C,CAClD,uDAAuD,CACxD,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,4BAA4B,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,IAAgB,EAAE,MAAkB;QAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,IAAI,YAAY;QACd,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAmC;QACxC,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC1E,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC;QACxC,CAAC;QAED,OAAO,4BAA4B,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;CACF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { SimSecretsManagerSecretValue } from "./sim-secrets-manager-secret-value.js";
|
|
2
|
+
/**
|
|
3
|
+
* The staging labels Secrets Manager gives a meaning of its own.
|
|
4
|
+
*
|
|
5
|
+
* Any other label is a custom one, which real Secrets Manager also allows and
|
|
6
|
+
* treats as a plain marker.
|
|
7
|
+
*/
|
|
8
|
+
export declare const SimSecretsManagerStagingLabel: {
|
|
9
|
+
readonly Current: "AWSCURRENT";
|
|
10
|
+
readonly Previous: "AWSPREVIOUS";
|
|
11
|
+
};
|
|
12
|
+
export type SimSecretsManagerStagingLabel = (typeof SimSecretsManagerStagingLabel)[keyof typeof SimSecretsManagerStagingLabel];
|
|
13
|
+
interface SimSecretsManagerSecretVersionProperties {
|
|
14
|
+
readonly versionId: string;
|
|
15
|
+
readonly value: SimSecretsManagerSecretValue;
|
|
16
|
+
readonly createdDate: Date;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* One stored version of a simulated secret.
|
|
20
|
+
*
|
|
21
|
+
* A version's value never changes once written: real Secrets Manager creates a
|
|
22
|
+
* new version for every write and moves staging labels between them, which is
|
|
23
|
+
* what makes AWSPREVIOUS able to hold the value that was current before.
|
|
24
|
+
*/
|
|
25
|
+
export declare class SimSecretsManagerSecretVersion {
|
|
26
|
+
readonly versionId: string;
|
|
27
|
+
readonly value: SimSecretsManagerSecretValue;
|
|
28
|
+
readonly createdDate: Date;
|
|
29
|
+
private readonly labels;
|
|
30
|
+
constructor(properties: SimSecretsManagerSecretVersionProperties);
|
|
31
|
+
/**
|
|
32
|
+
* The staging labels currently attached to this version.
|
|
33
|
+
*/
|
|
34
|
+
get stages(): readonly string[];
|
|
35
|
+
/**
|
|
36
|
+
* Whether this version carries any staging label at all.
|
|
37
|
+
*
|
|
38
|
+
* A version that carries none is deprecated on real AWS: it is no longer
|
|
39
|
+
* reported by DescribeSecret, and nothing can reach it by label.
|
|
40
|
+
*/
|
|
41
|
+
get isLabelled(): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Whether a staging label is attached to this version.
|
|
44
|
+
*/
|
|
45
|
+
hasStage(label: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Attach a staging label to this version.
|
|
48
|
+
*/
|
|
49
|
+
addStage(label: string): void;
|
|
50
|
+
/**
|
|
51
|
+
* Detach a staging label from this version.
|
|
52
|
+
*/
|
|
53
|
+
removeStage(label: string): void;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=sim-secrets-manager-secret-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-version.d.ts","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAE1F;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B;aACxC,OAAO,EAAE,YAAY;aACrB,QAAQ,EAAE,aAAa;CACf,CAAC;AAEX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,OAAO,6BAA6B,CAAC,CAAC;AAErF,UAAU,wCAAwC;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,qBAAa,8BAA8B;IACzC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,KAAK,EAAE,4BAA4B,CAAC;IACpD,SAAgB,WAAW,EAAE,IAAI,CAAC;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YAAY,UAAU,EAAE,wCAAwC,EAI/D;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,SAAS,MAAM,EAAE,CAE9B;IAED;;;;;OAKG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/B;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5B;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE/B;CACF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The staging labels Secrets Manager gives a meaning of its own.
|
|
3
|
+
*
|
|
4
|
+
* Any other label is a custom one, which real Secrets Manager also allows and
|
|
5
|
+
* treats as a plain marker.
|
|
6
|
+
*/
|
|
7
|
+
export const SimSecretsManagerStagingLabel = {
|
|
8
|
+
Current: "AWSCURRENT",
|
|
9
|
+
Previous: "AWSPREVIOUS",
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* One stored version of a simulated secret.
|
|
13
|
+
*
|
|
14
|
+
* A version's value never changes once written: real Secrets Manager creates a
|
|
15
|
+
* new version for every write and moves staging labels between them, which is
|
|
16
|
+
* what makes AWSPREVIOUS able to hold the value that was current before.
|
|
17
|
+
*/
|
|
18
|
+
export class SimSecretsManagerSecretVersion {
|
|
19
|
+
versionId;
|
|
20
|
+
value;
|
|
21
|
+
createdDate;
|
|
22
|
+
labels = new Set();
|
|
23
|
+
constructor(properties) {
|
|
24
|
+
this.versionId = properties.versionId;
|
|
25
|
+
this.value = properties.value;
|
|
26
|
+
this.createdDate = properties.createdDate;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The staging labels currently attached to this version.
|
|
30
|
+
*/
|
|
31
|
+
get stages() {
|
|
32
|
+
return this.labels.values().toArray();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Whether this version carries any staging label at all.
|
|
36
|
+
*
|
|
37
|
+
* A version that carries none is deprecated on real AWS: it is no longer
|
|
38
|
+
* reported by DescribeSecret, and nothing can reach it by label.
|
|
39
|
+
*/
|
|
40
|
+
get isLabelled() {
|
|
41
|
+
return this.labels.size > 0;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Whether a staging label is attached to this version.
|
|
45
|
+
*/
|
|
46
|
+
hasStage(label) {
|
|
47
|
+
return this.labels.has(label);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Attach a staging label to this version.
|
|
51
|
+
*/
|
|
52
|
+
addStage(label) {
|
|
53
|
+
this.labels.add(label);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Detach a staging label from this version.
|
|
57
|
+
*/
|
|
58
|
+
removeStage(label) {
|
|
59
|
+
this.labels.delete(label);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=sim-secrets-manager-secret-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-version.js","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-version.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,aAAa;CACf,CAAC;AAWX;;;;;;GAMG;AACH,MAAM,OAAO,8BAA8B;IACzB,SAAS,CAAS;IAClB,KAAK,CAA+B;IACpC,WAAW,CAAO;IAEjB,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAE5C,YAAY,UAAoD;QAC9D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type SimSecretsManagerSecretVersion } from "./sim-secrets-manager-secret-version.js";
|
|
2
|
+
/**
|
|
3
|
+
* The versions of one simulated secret, and how staging labels move between
|
|
4
|
+
* them.
|
|
5
|
+
*
|
|
6
|
+
* The label rules are the interesting part of Secrets Manager's data model and
|
|
7
|
+
* they belong together: a label names exactly one version at a time, and
|
|
8
|
+
* making a version current demotes the one that was.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SimSecretsManagerSecretVersions {
|
|
11
|
+
private readonly versions;
|
|
12
|
+
/**
|
|
13
|
+
* Store a version and give it the staging labels it was written with.
|
|
14
|
+
*/
|
|
15
|
+
add(version: SimSecretsManagerSecretVersion, stages: readonly string[]): void;
|
|
16
|
+
/**
|
|
17
|
+
* Find a version by its version id.
|
|
18
|
+
*/
|
|
19
|
+
byId(versionId: string): SimSecretsManagerSecretVersion | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Find the version a staging label currently names.
|
|
22
|
+
*/
|
|
23
|
+
byStage(label: string): SimSecretsManagerSecretVersion | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* The version AWSCURRENT names, which is what a plain read returns.
|
|
26
|
+
*/
|
|
27
|
+
get current(): SimSecretsManagerSecretVersion | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* The version ids carrying at least one staging label, as DescribeSecret
|
|
30
|
+
* reports them.
|
|
31
|
+
*
|
|
32
|
+
* Versions that have lost every label are left out, because that is how real
|
|
33
|
+
* Secrets Manager reports a version on its way out of existence.
|
|
34
|
+
*/
|
|
35
|
+
versionIdsToStages(): Record<string, string[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Attach a staging label to one version, taking it off whichever version
|
|
38
|
+
* held it before.
|
|
39
|
+
*
|
|
40
|
+
* Making a version current is the one move with a consequence of its own:
|
|
41
|
+
* the version that was current becomes AWSPREVIOUS, and whatever was
|
|
42
|
+
* AWSPREVIOUS loses the label.
|
|
43
|
+
*/
|
|
44
|
+
private moveStage;
|
|
45
|
+
private demoteCurrent;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=sim-secrets-manager-secret-versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-secrets-manager-secret-versions.d.ts","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,8BAA8B,EAEpC,MAAM,yCAAyC,CAAC;AAEjD;;;;;;;GAOG;AACH,qBAAa,+BAA+B;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqD;IAE9E;;OAEG;IACH,GAAG,CACD,OAAO,EAAE,8BAA8B,EACvC,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,IAAI,CAMN;IAED;;OAEG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,8BAA8B,GAAG,SAAS,CAElE;IAED;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,8BAA8B,GAAG,SAAS,CAEjE;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,8BAA8B,GAAG,SAAS,CAExD;IAED;;;;;;OAMG;IACH,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAU7C;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,aAAa;CAYtB"}
|