@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.
Files changed (260) hide show
  1. package/README.md +3 -0
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
  3. package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
  4. package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
  5. package/dist/service/aws/factory/sim-aws-scoped-service-registries.d.ts +31 -0
  6. package/dist/service/aws/factory/sim-aws-scoped-service-registries.d.ts.map +1 -0
  7. package/dist/service/aws/factory/sim-aws-scoped-service-registries.js +31 -0
  8. package/dist/service/aws/factory/sim-aws-scoped-service-registries.js.map +1 -0
  9. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +10 -21
  10. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  11. package/dist/service/aws/factory/sim-aws-service-factory.js +22 -29
  12. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  13. package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
  14. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  15. package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
  16. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  17. package/dist/service/aws/sim-aws.d.ts +5 -0
  18. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  19. package/dist/service/aws/sim-aws.js +6 -0
  20. package/dist/service/aws/sim-aws.js.map +1 -1
  21. package/dist/service/cloudformation/resource/cfn/acm/sim-acm-cfn-value-adapter.d.ts +6 -0
  22. package/dist/service/cloudformation/resource/cfn/acm/sim-acm-cfn-value-adapter.d.ts.map +1 -0
  23. package/dist/service/cloudformation/resource/cfn/acm/sim-acm-cfn-value-adapter.js +13 -0
  24. package/dist/service/cloudformation/resource/cfn/acm/sim-acm-cfn-value-adapter.js.map +1 -0
  25. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.d.ts +6 -0
  26. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.d.ts.map +1 -0
  27. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +21 -0
  28. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js.map +1 -0
  29. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.d.ts +6 -0
  30. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.d.ts.map +1 -0
  31. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.js +17 -0
  32. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.js.map +1 -0
  33. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-alias-cfn.d.ts +26 -0
  34. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-alias-cfn.d.ts.map +1 -0
  35. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-alias-cfn.js +26 -0
  36. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-alias-cfn.js.map +1 -0
  37. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-cfn-value-adapter.d.ts +6 -0
  38. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-cfn-value-adapter.d.ts.map +1 -0
  39. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-cfn-value-adapter.js +19 -0
  40. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-cfn-value-adapter.js.map +1 -0
  41. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-key-cfn.d.ts +25 -0
  42. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-key-cfn.d.ts.map +1 -0
  43. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-key-cfn.js +34 -0
  44. package/dist/service/cloudformation/resource/cfn/kms/sim-kms-key-cfn.js.map +1 -0
  45. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.d.ts +6 -0
  46. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.d.ts.map +1 -0
  47. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.js +19 -0
  48. package/dist/service/cloudformation/resource/cfn/lambda/sim-lambda-cfn-value-adapter.js.map +1 -0
  49. package/dist/service/cloudformation/resource/cfn/route53/sim-route53-cfn-value-adapter.d.ts +6 -0
  50. package/dist/service/cloudformation/resource/cfn/route53/sim-route53-cfn-value-adapter.d.ts.map +1 -0
  51. package/dist/service/cloudformation/resource/cfn/route53/sim-route53-cfn-value-adapter.js +13 -0
  52. package/dist/service/cloudformation/resource/cfn/route53/sim-route53-cfn-value-adapter.js.map +1 -0
  53. package/dist/service/cloudformation/resource/cfn/s3/sim-s3-cfn-value-adapter.d.ts +6 -0
  54. package/dist/service/cloudformation/resource/cfn/s3/sim-s3-cfn-value-adapter.d.ts.map +1 -0
  55. package/dist/service/cloudformation/resource/cfn/s3/sim-s3-cfn-value-adapter.js +13 -0
  56. package/dist/service/cloudformation/resource/cfn/s3/sim-s3-cfn-value-adapter.js.map +1 -0
  57. package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-cfn-value-adapter.d.ts +7 -0
  58. package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-cfn-value-adapter.d.ts.map +1 -0
  59. package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-cfn-value-adapter.js +14 -0
  60. package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-cfn-value-adapter.js.map +1 -0
  61. package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-secret-cfn.d.ts +24 -0
  62. package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-secret-cfn.d.ts.map +1 -0
  63. package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-secret-cfn.js +30 -0
  64. package/dist/service/cloudformation/resource/cfn/secretsmanager/sim-secrets-manager-secret-cfn.js.map +1 -0
  65. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.d.ts +11 -2
  66. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.d.ts.map +1 -1
  67. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js +24 -71
  68. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js.map +1 -1
  69. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.d.ts.map +1 -1
  70. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.js +6 -0
  71. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.js.map +1 -1
  72. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.d.ts +25 -0
  73. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.d.ts.map +1 -0
  74. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.js +36 -0
  75. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.js.map +1 -0
  76. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-properties.d.ts +32 -0
  77. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-properties.d.ts.map +1 -0
  78. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-properties.js +35 -0
  79. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-properties.js.map +1 -0
  80. package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.d.ts +36 -0
  81. package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.d.ts.map +1 -0
  82. package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.js +53 -0
  83. package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.js.map +1 -0
  84. package/dist/service/kms/cfn/key/sim-cfn-kms-key-properties.d.ts +57 -0
  85. package/dist/service/kms/cfn/key/sim-cfn-kms-key-properties.d.ts.map +1 -0
  86. package/dist/service/kms/cfn/key/sim-cfn-kms-key-properties.js +74 -0
  87. package/dist/service/kms/cfn/key/sim-cfn-kms-key-properties.js.map +1 -0
  88. package/dist/service/kms/cfn/key/sim-cfn-kms-unsimulated-key-properties.d.ts +49 -0
  89. package/dist/service/kms/cfn/key/sim-cfn-kms-unsimulated-key-properties.d.ts.map +1 -0
  90. package/dist/service/kms/cfn/key/sim-cfn-kms-unsimulated-key-properties.js +72 -0
  91. package/dist/service/kms/cfn/key/sim-cfn-kms-unsimulated-key-properties.js.map +1 -0
  92. package/dist/service/kms/cfn/sim-cfn-kms-property-parser.d.ts +56 -0
  93. package/dist/service/kms/cfn/sim-cfn-kms-property-parser.d.ts.map +1 -0
  94. package/dist/service/kms/cfn/sim-cfn-kms-property-parser.js +95 -0
  95. package/dist/service/kms/cfn/sim-cfn-kms-property-parser.js.map +1 -0
  96. package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.d.ts +23 -0
  97. package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.d.ts.map +1 -0
  98. package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.js +34 -0
  99. package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.js.map +1 -0
  100. package/dist/service/kms/key/sim-kms-key-store.d.ts +8 -0
  101. package/dist/service/kms/key/sim-kms-key-store.d.ts.map +1 -1
  102. package/dist/service/kms/key/sim-kms-key-store.js +10 -0
  103. package/dist/service/kms/key/sim-kms-key-store.js.map +1 -1
  104. package/dist/service/kms/sim-kms.d.ts +15 -0
  105. package/dist/service/kms/sim-kms.d.ts.map +1 -1
  106. package/dist/service/kms/sim-kms.js +18 -0
  107. package/dist/service/kms/sim-kms.js.map +1 -1
  108. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generate-secret-string-parser.d.ts +22 -0
  109. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generate-secret-string-parser.d.ts.map +1 -0
  110. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generate-secret-string-parser.js +47 -0
  111. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generate-secret-string-parser.js.map +1 -0
  112. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.d.ts +24 -0
  113. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.d.ts.map +1 -0
  114. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.js +38 -0
  115. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.js.map +1 -0
  116. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts +54 -0
  117. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts.map +1 -0
  118. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js +82 -0
  119. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js.map +1 -0
  120. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-property-parser.d.ts +58 -0
  121. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-property-parser.d.ts.map +1 -0
  122. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-property-parser.js +122 -0
  123. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-property-parser.js.map +1 -0
  124. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.d.ts +24 -0
  125. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.d.ts.map +1 -0
  126. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.js +31 -0
  127. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.js.map +1 -0
  128. package/dist/service/secretsmanager/command/authorize/sim-secrets-manager-authorizer.d.ts +29 -0
  129. package/dist/service/secretsmanager/command/authorize/sim-secrets-manager-authorizer.d.ts.map +1 -0
  130. package/dist/service/secretsmanager/command/authorize/sim-secrets-manager-authorizer.js +47 -0
  131. package/dist/service/secretsmanager/command/authorize/sim-secrets-manager-authorizer.js.map +1 -0
  132. package/dist/service/secretsmanager/command/secret/secret.command.d.ts +144 -0
  133. package/dist/service/secretsmanager/command/secret/secret.command.d.ts.map +1 -0
  134. package/dist/service/secretsmanager/command/secret/secret.command.js +2 -0
  135. package/dist/service/secretsmanager/command/secret/secret.command.js.map +1 -0
  136. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-lifecycle-commands.d.ts +44 -0
  137. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-lifecycle-commands.d.ts.map +1 -0
  138. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-lifecycle-commands.js +61 -0
  139. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-lifecycle-commands.js.map +1 -0
  140. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-list-secrets.d.ts +44 -0
  141. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-list-secrets.d.ts.map +1 -0
  142. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-list-secrets.js +61 -0
  143. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-list-secrets.js.map +1 -0
  144. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.d.ts +48 -0
  145. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.d.ts.map +1 -0
  146. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.js +62 -0
  147. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.js.map +1 -0
  148. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-detail.d.ts +26 -0
  149. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-detail.d.ts.map +1 -0
  150. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-detail.js +38 -0
  151. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-detail.js.map +1 -0
  152. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-page.d.ts +29 -0
  153. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-page.d.ts.map +1 -0
  154. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-page.js +55 -0
  155. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-page.js.map +1 -0
  156. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.d.ts +46 -0
  157. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.d.ts.map +1 -0
  158. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.js +67 -0
  159. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.js.map +1 -0
  160. package/dist/service/secretsmanager/command/sim-secrets-manager-command.types.d.ts +6 -0
  161. package/dist/service/secretsmanager/command/sim-secrets-manager-command.types.d.ts.map +1 -0
  162. package/dist/service/secretsmanager/command/sim-secrets-manager-command.types.js +2 -0
  163. package/dist/service/secretsmanager/command/sim-secrets-manager-command.types.js.map +1 -0
  164. package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.d.ts +39 -0
  165. package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.d.ts.map +1 -0
  166. package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.js +61 -0
  167. package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.js.map +1 -0
  168. package/dist/service/secretsmanager/command/value/value.command.d.ts +47 -0
  169. package/dist/service/secretsmanager/command/value/value.command.d.ts.map +1 -0
  170. package/dist/service/secretsmanager/command/value/value.command.js +2 -0
  171. package/dist/service/secretsmanager/command/value/value.command.js.map +1 -0
  172. package/dist/service/secretsmanager/error/sim-secrets-manager.error.d.ts +55 -0
  173. package/dist/service/secretsmanager/error/sim-secrets-manager.error.d.ts.map +1 -0
  174. package/dist/service/secretsmanager/error/sim-secrets-manager.error.js +60 -0
  175. package/dist/service/secretsmanager/error/sim-secrets-manager.error.js.map +1 -0
  176. package/dist/service/secretsmanager/index.d.ts +7 -0
  177. package/dist/service/secretsmanager/index.d.ts.map +1 -0
  178. package/dist/service/secretsmanager/index.js +7 -0
  179. package/dist/service/secretsmanager/index.js.map +1 -0
  180. package/dist/service/secretsmanager/sdk/sim-secrets-manager-sdk-command-router.d.ts +19 -0
  181. package/dist/service/secretsmanager/sdk/sim-secrets-manager-sdk-command-router.d.ts.map +1 -0
  182. package/dist/service/secretsmanager/sdk/sim-secrets-manager-sdk-command-router.js +57 -0
  183. package/dist/service/secretsmanager/sdk/sim-secrets-manager-sdk-command-router.js.map +1 -0
  184. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-generated-secret-string.d.ts +37 -0
  185. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-generated-secret-string.d.ts.map +1 -0
  186. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-generated-secret-string.js +70 -0
  187. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-generated-secret-string.js.map +1 -0
  188. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-set.d.ts +53 -0
  189. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-set.d.ts.map +1 -0
  190. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-set.js +65 -0
  191. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-set.js.map +1 -0
  192. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-sets.d.ts +40 -0
  193. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-sets.d.ts.map +1 -0
  194. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-sets.js +66 -0
  195. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-sets.js.map +1 -0
  196. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-generator.d.ts +31 -0
  197. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-generator.d.ts.map +1 -0
  198. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-generator.js +52 -0
  199. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-generator.js.map +1 -0
  200. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-spec.d.ts +35 -0
  201. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-spec.d.ts.map +1 -0
  202. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-spec.js +64 -0
  203. package/dist/service/secretsmanager/secret/generate/sim-secrets-manager-password-spec.js.map +1 -0
  204. package/dist/service/secretsmanager/secret/sim-secrets-manager-deletion-schedule.d.ts +33 -0
  205. package/dist/service/secretsmanager/secret/sim-secrets-manager-deletion-schedule.d.ts.map +1 -0
  206. package/dist/service/secretsmanager/secret/sim-secrets-manager-deletion-schedule.js +60 -0
  207. package/dist/service/secretsmanager/secret/sim-secrets-manager-deletion-schedule.js.map +1 -0
  208. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-arn.d.ts +42 -0
  209. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-arn.d.ts.map +1 -0
  210. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-arn.js +64 -0
  211. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-arn.js.map +1 -0
  212. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-expiry.d.ts +30 -0
  213. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-expiry.d.ts.map +1 -0
  214. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-expiry.js +32 -0
  215. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-expiry.js.map +1 -0
  216. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-factory.d.ts +31 -0
  217. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-factory.d.ts.map +1 -0
  218. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-factory.js +35 -0
  219. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-factory.js.map +1 -0
  220. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-id.d.ts +27 -0
  221. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-id.d.ts.map +1 -0
  222. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-id.js +48 -0
  223. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-id.js.map +1 -0
  224. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts +23 -0
  225. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts.map +1 -0
  226. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js +50 -0
  227. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js.map +1 -0
  228. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.d.ts +53 -0
  229. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.d.ts.map +1 -0
  230. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.js +92 -0
  231. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.js.map +1 -0
  232. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.d.ts +47 -0
  233. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.d.ts.map +1 -0
  234. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.js +81 -0
  235. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.js.map +1 -0
  236. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.d.ts +56 -0
  237. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.d.ts.map +1 -0
  238. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.js +62 -0
  239. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.js.map +1 -0
  240. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-versions.d.ts +47 -0
  241. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-versions.d.ts.map +1 -0
  242. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-versions.js +83 -0
  243. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-versions.js.map +1 -0
  244. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret.d.ts +75 -0
  245. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret.d.ts.map +1 -0
  246. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret.js +86 -0
  247. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret.js.map +1 -0
  248. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-selector.d.ts +28 -0
  249. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-selector.d.ts.map +1 -0
  250. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-selector.js +43 -0
  251. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-selector.js.map +1 -0
  252. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.d.ts +42 -0
  253. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.d.ts.map +1 -0
  254. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.js +60 -0
  255. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.js.map +1 -0
  256. package/dist/service/secretsmanager/sim-secrets-manager.d.ts +85 -0
  257. package/dist/service/secretsmanager/sim-secrets-manager.d.ts.map +1 -0
  258. package/dist/service/secretsmanager/sim-secrets-manager.js +156 -0
  259. package/dist/service/secretsmanager/sim-secrets-manager.js.map +1 -0
  260. package/package.json +6 -1
@@ -0,0 +1,66 @@
1
+ import { SimSecretsManagerInvalidParameterException } from "../../error/sim-secrets-manager.error.js";
2
+ import { secretsManagerPasswordCharacters, SimSecretsManagerPasswordCharacterSet, } from "./sim-secrets-manager-password-character-set.js";
3
+ /**
4
+ * The character sets one generated password is allowed to draw on.
5
+ *
6
+ * The `Exclude*` flags decide which types are included at all, and
7
+ * `ExcludeCharacters` then narrows each included type. Keeping the types apart
8
+ * rather than merging them into one alphabet is what lets
9
+ * `RequireEachIncludedType` mean anything.
10
+ */
11
+ export class SimSecretsManagerPasswordCharacterSets {
12
+ included;
13
+ constructor(options = {}) {
14
+ this.included = SimSecretsManagerPasswordCharacterSets.include(options);
15
+ }
16
+ static include(options) {
17
+ const excluded = options.excludeCharacters ?? "";
18
+ const candidates = secretsManagerPasswordCharacters
19
+ .filter((set) => {
20
+ return this.isIncluded(set.name, options);
21
+ })
22
+ .map((set) => {
23
+ return new SimSecretsManagerPasswordCharacterSet(set.name, set.characters).without(excluded);
24
+ });
25
+ for (const set of candidates) {
26
+ set.requireNotEmpty();
27
+ }
28
+ if (candidates.length === 0) {
29
+ throw new SimSecretsManagerInvalidParameterException("A generated password needs at least one character type: every one " +
30
+ "of uppercase, lowercase, numbers and punctuation was excluded");
31
+ }
32
+ return candidates;
33
+ }
34
+ /**
35
+ * Whether a character type is included, by the flag that governs it.
36
+ *
37
+ * Every type but the space is included unless excluded; the space is the
38
+ * other way round, as it is on real AWS.
39
+ */
40
+ static isIncluded(name, options) {
41
+ switch (name) {
42
+ case "uppercase": {
43
+ return options.excludeUppercase !== true;
44
+ }
45
+ case "lowercase": {
46
+ return options.excludeLowercase !== true;
47
+ }
48
+ case "numbers": {
49
+ return options.excludeNumbers !== true;
50
+ }
51
+ case "punctuation": {
52
+ return options.excludePunctuation !== true;
53
+ }
54
+ case "space": {
55
+ return options.includeSpace === true;
56
+ }
57
+ }
58
+ }
59
+ /**
60
+ * Every character any included type allows, as one pool.
61
+ */
62
+ get alphabet() {
63
+ return this.included.map((set) => set.characters).join("");
64
+ }
65
+ }
66
+ //# sourceMappingURL=sim-secrets-manager-password-character-sets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-password-character-sets.js","sourceRoot":"","sources":["../../../../../src/service/secretsmanager/secret/generate/sim-secrets-manager-password-character-sets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0CAA0C,EAAE,MAAM,0CAA0C,CAAC;AACtG,OAAO,EACL,gCAAgC,EAChC,qCAAqC,GACtC,MAAM,iDAAiD,CAAC;AAiBzD;;;;;;;GAOG;AACH,MAAM,OAAO,sCAAsC;IACjC,QAAQ,CAAmD;IAE3E,YAAY,OAAO,GAA8C,EAAE;QACjE,IAAI,CAAC,QAAQ,GAAG,sCAAsC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;IAEO,MAAM,CAAC,OAAO,CACpB,OAAkD;QAElD,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,gCAAgC;aAChD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,OAAO,IAAI,qCAAqC,CAC9C,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,UAAU,CACf,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEL,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,GAAG,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,0CAA0C,CAClD,oEAAoE;gBAClE,+DAA+D,CAClE,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,UAAU,CACvB,IAA+D,EAC/D,OAAkD;QAElD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW,EAAE,CAAC;gBACjB,OAAO,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAAC;YAC3C,CAAC;YACD,KAAK,WAAW,EAAE,CAAC;gBACjB,OAAO,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAAC;YAC3C,CAAC;YACD,KAAK,SAAS,EAAE,CAAC;gBACf,OAAO,OAAO,CAAC,cAAc,KAAK,IAAI,CAAC;YACzC,CAAC;YACD,KAAK,aAAa,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,kBAAkB,KAAK,IAAI,CAAC;YAC7C,CAAC;YACD,KAAK,OAAO,EAAE,CAAC;gBACb,OAAO,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ import type { SimSecretsManagerPasswordSpec } from "./sim-secrets-manager-password-spec.js";
2
+ /**
3
+ * Generates the random passwords Secrets Manager generates.
4
+ *
5
+ * The randomness is real rather than seedable: a test that wants the value
6
+ * reads it back out of the simulation, the same way a deployed application
7
+ * does, rather than predicting it. A predictable generator would make a test
8
+ * pass for a reason that says nothing about the deployed system.
9
+ */
10
+ export declare class SimSecretsManagerPasswordGenerator {
11
+ /**
12
+ * Generate one password meeting a validated spec.
13
+ *
14
+ * Each required type contributes a character first and the rest is drawn
15
+ * from the whole pool, then the result is shuffled so the required
16
+ * characters do not always land at the front.
17
+ */
18
+ generate(spec: SimSecretsManagerPasswordSpec): string;
19
+ private requiredCharacters;
20
+ /**
21
+ * Pick one character uniformly, without the modulo bias a raw random byte
22
+ * would introduce.
23
+ */
24
+ private pick;
25
+ /**
26
+ * Take characters from the pool at random until it is empty, which is the
27
+ * Fisher-Yates shuffle written as a drawing rather than as index swaps.
28
+ */
29
+ private shuffled;
30
+ }
31
+ //# sourceMappingURL=sim-secrets-manager-password-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-password-generator.d.ts","sourceRoot":"","sources":["../../../../../src/service/secretsmanager/secret/generate/sim-secrets-manager-password-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAE5F;;;;;;;GAOG;AACH,qBAAa,kCAAkC;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,6BAA6B,GAAG,MAAM,CASpD;IAED,OAAO,CAAC,kBAAkB;IAQ1B;;;OAGG;IACH,OAAO,CAAC,IAAI;IAIZ;;;OAGG;IACH,OAAO,CAAC,QAAQ;CAUjB"}
@@ -0,0 +1,52 @@
1
+ import { randomInt } from "node:crypto";
2
+ /**
3
+ * Generates the random passwords Secrets Manager generates.
4
+ *
5
+ * The randomness is real rather than seedable: a test that wants the value
6
+ * reads it back out of the simulation, the same way a deployed application
7
+ * does, rather than predicting it. A predictable generator would make a test
8
+ * pass for a reason that says nothing about the deployed system.
9
+ */
10
+ export class SimSecretsManagerPasswordGenerator {
11
+ /**
12
+ * Generate one password meeting a validated spec.
13
+ *
14
+ * Each required type contributes a character first and the rest is drawn
15
+ * from the whole pool, then the result is shuffled so the required
16
+ * characters do not always land at the front.
17
+ */
18
+ generate(spec) {
19
+ const characters = this.requiredCharacters(spec);
20
+ const alphabet = spec.characterSets.alphabet;
21
+ while (characters.length < spec.length) {
22
+ characters.push(this.pick(alphabet));
23
+ }
24
+ return this.shuffled(characters).join("");
25
+ }
26
+ requiredCharacters(spec) {
27
+ if (!spec.requireEachIncludedType) {
28
+ return [];
29
+ }
30
+ return spec.characterSets.included.map((set) => this.pick(set.characters));
31
+ }
32
+ /**
33
+ * Pick one character uniformly, without the modulo bias a raw random byte
34
+ * would introduce.
35
+ */
36
+ pick(characters) {
37
+ return characters.charAt(randomInt(characters.length));
38
+ }
39
+ /**
40
+ * Take characters from the pool at random until it is empty, which is the
41
+ * Fisher-Yates shuffle written as a drawing rather than as index swaps.
42
+ */
43
+ shuffled(characters) {
44
+ const pool = [...characters];
45
+ const shuffled = [];
46
+ while (pool.length > 0) {
47
+ shuffled.push(...pool.splice(randomInt(pool.length), 1));
48
+ }
49
+ return shuffled;
50
+ }
51
+ }
52
+ //# sourceMappingURL=sim-secrets-manager-password-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-password-generator.js","sourceRoot":"","sources":["../../../../../src/service/secretsmanager/secret/generate/sim-secrets-manager-password-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;;;;GAOG;AACH,MAAM,OAAO,kCAAkC;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,IAAmC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAE7C,OAAO,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEO,kBAAkB,CAAC,IAAmC;QAC5D,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACK,IAAI,CAAC,UAAkB;QAC7B,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACK,QAAQ,CAAC,UAA6B;QAC5C,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ import type { SimSecretsManagerPasswordCharacterOptions } from "./sim-secrets-manager-password-character-sets.js";
2
+ import { SimSecretsManagerPasswordCharacterSets } from "./sim-secrets-manager-password-character-sets.js";
3
+ /**
4
+ * Everything a Secrets Manager password request can ask for.
5
+ */
6
+ export interface SimSecretsManagerPasswordOptions extends SimSecretsManagerPasswordCharacterOptions {
7
+ readonly passwordLength?: number | undefined;
8
+ readonly requireEachIncludedType?: boolean | undefined;
9
+ }
10
+ /**
11
+ * A validated request for one generated password.
12
+ *
13
+ * Validation lives here rather than in the generator so a contradictory
14
+ * request — a length of zero, or four required character types in a
15
+ * three-character password — is refused when it is described rather than
16
+ * silently honoured in part when it is generated.
17
+ */
18
+ export declare class SimSecretsManagerPasswordSpec {
19
+ readonly length: number;
20
+ readonly characterSets: SimSecretsManagerPasswordCharacterSets;
21
+ /**
22
+ * Whether every included character type has to appear at least once.
23
+ *
24
+ * Real Secrets Manager defaults this on, so a generated password contains
25
+ * one of everything it was not told to exclude.
26
+ */
27
+ readonly requireEachIncludedType: boolean;
28
+ constructor(options?: SimSecretsManagerPasswordOptions);
29
+ private static validLength;
30
+ /**
31
+ * Refuse a password too short to hold one of each required type.
32
+ */
33
+ private requireTypesFit;
34
+ }
35
+ //# sourceMappingURL=sim-secrets-manager-password-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-password-spec.d.ts","sourceRoot":"","sources":["../../../../../src/service/secretsmanager/secret/generate/sim-secrets-manager-password-spec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,kDAAkD,CAAC;AAClH,OAAO,EAAE,sCAAsC,EAAE,MAAM,kDAAkD,CAAC;AAU1G;;GAEG;AACH,MAAM,WAAW,gCAAiC,SAAQ,yCAAyC;IACjG,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;GAOG;AACH,qBAAa,6BAA6B;IACxC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,aAAa,EAAE,sCAAsC,CAAC;IAEtE;;;;;OAKG;IACH,SAAgB,uBAAuB,EAAE,OAAO,CAAC;IAEjD,YAAY,OAAO,GAAE,gCAAqC,EAQzD;IAED,OAAO,CAAC,MAAM,CAAC,WAAW;IAsB1B;;OAEG;IACH,OAAO,CAAC,eAAe;CAiBxB"}
@@ -0,0 +1,64 @@
1
+ import { SimSecretsManagerInvalidParameterException } from "../../error/sim-secrets-manager.error.js";
2
+ import { SimSecretsManagerPasswordCharacterSets } from "./sim-secrets-manager-password-character-sets.js";
3
+ /**
4
+ * The length real Secrets Manager generates when a request does not ask for
5
+ * one, and the range it accepts.
6
+ */
7
+ const defaultPasswordLength = 32;
8
+ const minimumPasswordLength = 1;
9
+ const maximumPasswordLength = 4096;
10
+ /**
11
+ * A validated request for one generated password.
12
+ *
13
+ * Validation lives here rather than in the generator so a contradictory
14
+ * request — a length of zero, or four required character types in a
15
+ * three-character password — is refused when it is described rather than
16
+ * silently honoured in part when it is generated.
17
+ */
18
+ export class SimSecretsManagerPasswordSpec {
19
+ length;
20
+ characterSets;
21
+ /**
22
+ * Whether every included character type has to appear at least once.
23
+ *
24
+ * Real Secrets Manager defaults this on, so a generated password contains
25
+ * one of everything it was not told to exclude.
26
+ */
27
+ requireEachIncludedType;
28
+ constructor(options = {}) {
29
+ this.length = SimSecretsManagerPasswordSpec.validLength(options.passwordLength);
30
+ this.characterSets = new SimSecretsManagerPasswordCharacterSets(options);
31
+ this.requireEachIncludedType = options.requireEachIncludedType !== false;
32
+ this.requireTypesFit();
33
+ }
34
+ static validLength(length) {
35
+ if (length === undefined) {
36
+ return defaultPasswordLength;
37
+ }
38
+ if (!Number.isSafeInteger(length)) {
39
+ throw new SimSecretsManagerInvalidParameterException(`PasswordLength ${String(length)} must be a whole number`);
40
+ }
41
+ if (length < minimumPasswordLength || length > maximumPasswordLength) {
42
+ throw new SimSecretsManagerInvalidParameterException(`PasswordLength ${String(length)} must be between ` +
43
+ `${String(minimumPasswordLength)} and ` +
44
+ `${String(maximumPasswordLength)} characters`);
45
+ }
46
+ return length;
47
+ }
48
+ /**
49
+ * Refuse a password too short to hold one of each required type.
50
+ */
51
+ requireTypesFit() {
52
+ if (!this.requireEachIncludedType) {
53
+ return;
54
+ }
55
+ const typeCount = this.characterSets.included.length;
56
+ if (typeCount <= this.length) {
57
+ return;
58
+ }
59
+ throw new SimSecretsManagerInvalidParameterException(`PasswordLength ${String(this.length)} is too short to include one of ` +
60
+ `each of the ${String(typeCount)} character types the request ` +
61
+ `requires. Exclude a character type or ask for a longer password.`);
62
+ }
63
+ }
64
+ //# sourceMappingURL=sim-secrets-manager-password-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-password-spec.js","sourceRoot":"","sources":["../../../../../src/service/secretsmanager/secret/generate/sim-secrets-manager-password-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0CAA0C,EAAE,MAAM,0CAA0C,CAAC;AAEtG,OAAO,EAAE,sCAAsC,EAAE,MAAM,kDAAkD,CAAC;AAE1G;;;GAGG;AACH,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAUnC;;;;;;;GAOG;AACH,MAAM,OAAO,6BAA6B;IACxB,MAAM,CAAS;IACf,aAAa,CAAyC;IAEtE;;;;;OAKG;IACa,uBAAuB,CAAU;IAEjD,YAAY,OAAO,GAAqC,EAAE;QACxD,IAAI,CAAC,MAAM,GAAG,6BAA6B,CAAC,WAAW,CACrD,OAAO,CAAC,cAAc,CACvB,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAC;QACzE,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,KAAK,KAAK,CAAC;QAEzE,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,MAA0B;QACnD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,0CAA0C,CAClD,kBAAkB,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,GAAG,qBAAqB,IAAI,MAAM,GAAG,qBAAqB,EAAE,CAAC;YACrE,MAAM,IAAI,0CAA0C,CAClD,kBAAkB,MAAM,CAAC,MAAM,CAAC,mBAAmB;gBACjD,GAAG,MAAM,CAAC,qBAAqB,CAAC,OAAO;gBACvC,GAAG,MAAM,CAAC,qBAAqB,CAAC,aAAa,CAChD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;QAErD,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,0CAA0C,CAClD,kBAAkB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,kCAAkC;YACrE,eAAe,MAAM,CAAC,SAAS,CAAC,+BAA+B;YAC/D,kEAAkE,CACrE,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The two ways a DeleteSecret request can ask for a secret to go.
3
+ */
4
+ export interface SimSecretsManagerDeletionScheduleInput {
5
+ readonly RecoveryWindowInDays?: number | undefined;
6
+ readonly ForceDeleteWithoutRecovery?: boolean | undefined;
7
+ }
8
+ /**
9
+ * How soon a DeleteSecret request wants the secret gone.
10
+ *
11
+ * Real Secrets Manager does not delete on request: it waits out a recovery
12
+ * window of 7 to 30 days, defaulting to 30, during which the secret can be
13
+ * restored and its name cannot be reused. ForceDeleteWithoutRecovery skips
14
+ * that, and asking for both at once is a contradiction real AWS refuses.
15
+ */
16
+ export declare class SimSecretsManagerDeletionSchedule {
17
+ readonly isImmediate: boolean;
18
+ /**
19
+ * The recovery window in days, or undefined when deletion is immediate.
20
+ */
21
+ readonly recoveryWindowInDays: number | undefined;
22
+ constructor(input: SimSecretsManagerDeletionScheduleInput);
23
+ private static refuseWindowWithForce;
24
+ private static validatedDays;
25
+ /**
26
+ * When the secret is due to be gone for good.
27
+ *
28
+ * An immediate deletion is due now, which is what makes the name reusable
29
+ * straight away.
30
+ */
31
+ deletionDateFrom(now: Date): Date;
32
+ }
33
+ //# sourceMappingURL=sim-secrets-manager-deletion-schedule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-deletion-schedule.d.ts","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-deletion-schedule.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3D;AAED;;;;;;;GAOG;AACH,qBAAa,iCAAiC;IAC5C,SAAgB,WAAW,EAAE,OAAO,CAAC;IAErC;;OAEG;IACH,SAAgB,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzD,YAAY,KAAK,EAAE,sCAAsC,EAgBxD;IAED,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAWpC,OAAO,CAAC,MAAM,CAAC,aAAa;IAc5B;;;;;OAKG;IACH,gBAAgB,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAQhC;CACF"}
@@ -0,0 +1,60 @@
1
+ import { SimSecretsManagerInvalidParameterException } from "../error/sim-secrets-manager.error.js";
2
+ const minDays = 7;
3
+ const maxDays = 30;
4
+ const defaultDays = 30;
5
+ const millisecondsPerDay = 24 * 60 * 60 * 1000;
6
+ /**
7
+ * How soon a DeleteSecret request wants the secret gone.
8
+ *
9
+ * Real Secrets Manager does not delete on request: it waits out a recovery
10
+ * window of 7 to 30 days, defaulting to 30, during which the secret can be
11
+ * restored and its name cannot be reused. ForceDeleteWithoutRecovery skips
12
+ * that, and asking for both at once is a contradiction real AWS refuses.
13
+ */
14
+ export class SimSecretsManagerDeletionSchedule {
15
+ isImmediate;
16
+ /**
17
+ * The recovery window in days, or undefined when deletion is immediate.
18
+ */
19
+ recoveryWindowInDays;
20
+ constructor(input) {
21
+ const { RecoveryWindowInDays: requestedDays, ForceDeleteWithoutRecovery: forced, } = input;
22
+ this.isImmediate = forced === true;
23
+ if (this.isImmediate) {
24
+ SimSecretsManagerDeletionSchedule.refuseWindowWithForce(requestedDays);
25
+ this.recoveryWindowInDays = undefined;
26
+ return;
27
+ }
28
+ this.recoveryWindowInDays =
29
+ SimSecretsManagerDeletionSchedule.validatedDays(requestedDays);
30
+ }
31
+ static refuseWindowWithForce(days) {
32
+ if (days === undefined) {
33
+ return;
34
+ }
35
+ throw new SimSecretsManagerInvalidParameterException("RecoveryWindowInDays cannot be used with ForceDeleteWithoutRecovery: " +
36
+ "a forced deletion has no recovery window");
37
+ }
38
+ static validatedDays(days) {
39
+ if (days === undefined) {
40
+ return defaultDays;
41
+ }
42
+ if (!Number.isSafeInteger(days) || days < minDays || days > maxDays) {
43
+ throw new SimSecretsManagerInvalidParameterException(`RecoveryWindowInDays must be a whole number between ${String(minDays)} and ${String(maxDays)}`);
44
+ }
45
+ return days;
46
+ }
47
+ /**
48
+ * When the secret is due to be gone for good.
49
+ *
50
+ * An immediate deletion is due now, which is what makes the name reusable
51
+ * straight away.
52
+ */
53
+ deletionDateFrom(now) {
54
+ if (this.recoveryWindowInDays === undefined) {
55
+ return now;
56
+ }
57
+ return new Date(now.getTime() + this.recoveryWindowInDays * millisecondsPerDay);
58
+ }
59
+ }
60
+ //# sourceMappingURL=sim-secrets-manager-deletion-schedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-deletion-schedule.js","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-deletion-schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC;AAEnG,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAU/C;;;;;;;GAOG;AACH,MAAM,OAAO,iCAAiC;IAC5B,WAAW,CAAU;IAErC;;OAEG;IACa,oBAAoB,CAAqB;IAEzD,YAAY,KAA6C;QACvD,MAAM,EACJ,oBAAoB,EAAE,aAAa,EACnC,0BAA0B,EAAE,MAAM,GACnC,GAAG,KAAK,CAAC;QAEV,IAAI,CAAC,WAAW,GAAG,MAAM,KAAK,IAAI,CAAC;QAEnC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,iCAAiC,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YACvE,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;YACtC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,oBAAoB;YACvB,iCAAiC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACnE,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,IAAwB;QAC3D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,0CAA0C,CAClD,uEAAuE;YACrE,0CAA0C,CAC7C,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,IAAwB;QACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,OAAO,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;YACpE,MAAM,IAAI,0CAA0C,CAClD,uDAAuD,MAAM,CAAC,OAAO,CAAC,QAAQ,MAAM,CAAC,OAAO,CAAC,EAAE,CAChG,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,GAAS;QACxB,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,GAAG,CAAC;QACb,CAAC;QAED,OAAO,IAAI,IAAI,CACb,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,oBAAoB,GAAG,kBAAkB,CAC/D,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,42 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ export declare const secretArnSuffixLength = 6;
3
+ /**
4
+ * A name already carrying something shaped like an ARN suffix.
5
+ *
6
+ * This is the pattern that makes a partial ARN ambiguous, so both ARN building
7
+ * and secret name validation need it.
8
+ */
9
+ export declare const secretArnSuffixPattern: RegExp;
10
+ interface SimSecretsManagerSecretArnProperties {
11
+ readonly name: string;
12
+ readonly accountRegionScope: SimAwsAccountRegionScope;
13
+ readonly suffix?: string | undefined;
14
+ }
15
+ /**
16
+ * The ARN of one simulated secret, and the parts a caller can name it by.
17
+ *
18
+ * Real Secrets Manager appends a hyphen and six random characters to the
19
+ * secret name in its ARN, which is why an IAM policy written against a secret
20
+ * has to end in `-??????` or a wildcard rather than the bare name. Reproducing
21
+ * that is the whole point of this class: a policy that works here is one that
22
+ * would work on real AWS.
23
+ */
24
+ export declare class SimSecretsManagerSecretArn {
25
+ readonly name: string;
26
+ readonly suffix: string;
27
+ /**
28
+ * The name with its ARN suffix, which is the resource part of the ARN.
29
+ */
30
+ readonly suffixedName: string;
31
+ readonly value: string;
32
+ constructor(properties: SimSecretsManagerSecretArnProperties);
33
+ /**
34
+ * Whether a resource part from a full or partial ARN names this secret.
35
+ *
36
+ * A full ARN carries the suffix and a partial ARN does not, and both are
37
+ * valid ways to name a secret on real AWS.
38
+ */
39
+ matchesResource(resource: string): boolean;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=sim-secrets-manager-secret-arn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-secret-arn.d.ts","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-arn.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAS1F,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAAoB,CAAC;AAgBxD,UAAU,oCAAoC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;;;;;;GAQG;AACH,qBAAa,0BAA0B;IACrC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,YAAY,UAAU,EAAE,oCAAoC,EAS3D;IAED;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzC;CACF"}
@@ -0,0 +1,64 @@
1
+ import { randomBytes } from "node:crypto";
2
+ /**
3
+ * The alphabet and length of the suffix real Secrets Manager appends to a
4
+ * secret ARN.
5
+ */
6
+ const suffixAlphabet =
7
+ // eslint-disable-next-line no-secrets/no-secrets -- an alphabet, not a secret.
8
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
9
+ export const secretArnSuffixLength = 6;
10
+ /**
11
+ * A name already carrying something shaped like an ARN suffix.
12
+ *
13
+ * This is the pattern that makes a partial ARN ambiguous, so both ARN building
14
+ * and secret name validation need it.
15
+ */
16
+ export const secretArnSuffixPattern = /-[\dA-Za-z]{6}$/;
17
+ /**
18
+ * Six random characters, as real Secrets Manager appends to every secret ARN.
19
+ */
20
+ function randomSuffix() {
21
+ const bytes = randomBytes(secretArnSuffixLength);
22
+ let suffix = "";
23
+ for (const byte of bytes) {
24
+ suffix += suffixAlphabet.charAt(byte % suffixAlphabet.length);
25
+ }
26
+ return suffix;
27
+ }
28
+ /**
29
+ * The ARN of one simulated secret, and the parts a caller can name it by.
30
+ *
31
+ * Real Secrets Manager appends a hyphen and six random characters to the
32
+ * secret name in its ARN, which is why an IAM policy written against a secret
33
+ * has to end in `-??????` or a wildcard rather than the bare name. Reproducing
34
+ * that is the whole point of this class: a policy that works here is one that
35
+ * would work on real AWS.
36
+ */
37
+ export class SimSecretsManagerSecretArn {
38
+ name;
39
+ suffix;
40
+ /**
41
+ * The name with its ARN suffix, which is the resource part of the ARN.
42
+ */
43
+ suffixedName;
44
+ value;
45
+ constructor(properties) {
46
+ const { name, accountRegionScope, suffix = randomSuffix() } = properties;
47
+ this.name = name;
48
+ this.suffix = suffix;
49
+ this.suffixedName = `${name}-${suffix}`;
50
+ this.value =
51
+ `arn:aws:secretsmanager:${accountRegionScope.regionName}:` +
52
+ `${accountRegionScope.accountId}:secret:${this.suffixedName}`;
53
+ }
54
+ /**
55
+ * Whether a resource part from a full or partial ARN names this secret.
56
+ *
57
+ * A full ARN carries the suffix and a partial ARN does not, and both are
58
+ * valid ways to name a secret on real AWS.
59
+ */
60
+ matchesResource(resource) {
61
+ return resource === this.suffixedName || resource === this.name;
62
+ }
63
+ }
64
+ //# sourceMappingURL=sim-secrets-manager-secret-arn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-secret-arn.js","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-arn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C;;;GAGG;AACH,MAAM,cAAc;AAClB,+EAA+E;AAC/E,gEAAgE,CAAC;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAExD;;GAEG;AACH,SAAS,YAAY;IACnB,MAAM,KAAK,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD;;;;;;;;GAQG;AACH,MAAM,OAAO,0BAA0B;IACrB,IAAI,CAAS;IACb,MAAM,CAAS;IAE/B;;OAEG;IACa,YAAY,CAAS;IAErB,KAAK,CAAS;IAE9B,YAAY,UAAgD;QAC1D,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,GAAG,YAAY,EAAE,EAAE,GAAG,UAAU,CAAC;QAEzE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK;YACR,0BAA0B,kBAAkB,CAAC,UAAU,GAAG;gBAC1D,GAAG,kBAAkB,CAAC,SAAS,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;IAClE,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,QAAgB;QAC9B,OAAO,QAAQ,KAAK,IAAI,CAAC,YAAY,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC;IAClE,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import type { BackgroundScheduler } from "../../../util/background/background.js";
2
+ import type { SimSecretsManagerSecret } from "./sim-secrets-manager-secret.js";
3
+ import type { SimSecretsManagerSecretStore } from "./sim-secrets-manager-secret-store.js";
4
+ interface SimSecretsManagerSecretExpiryProperties {
5
+ readonly secrets: SimSecretsManagerSecretStore;
6
+ readonly background: BackgroundScheduler;
7
+ }
8
+ /**
9
+ * Removes a secret once its recovery window runs out.
10
+ *
11
+ * The window is scheduled on the simulation's clock rather than the host's, so
12
+ * advancing simulated time past it is what frees the name up again. That is
13
+ * the failure people actually hit when a stack is deleted and redeployed, and
14
+ * it is only testable if the window really elapses.
15
+ */
16
+ export declare class SimSecretsManagerSecretExpiry {
17
+ private readonly secrets;
18
+ private readonly background;
19
+ constructor(properties: SimSecretsManagerSecretExpiryProperties);
20
+ /**
21
+ * Arrange for a secret to be gone once its deletion date arrives.
22
+ *
23
+ * The scheduled work checks the secret is still due to go at that same
24
+ * instant, so a RestoreSecret in the meantime, or a second deletion with a
25
+ * different window, leaves the earlier schedule with nothing to do.
26
+ */
27
+ scheduleRemoval(secret: SimSecretsManagerSecret, deletionDate: Date): void;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=sim-secrets-manager-secret-expiry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-secret-expiry.d.ts","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-expiry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAE1F,UAAU,uCAAuC;IAC/C,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,UAAU,EAAE,uCAAuC,EAG9D;IAED;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,GAAG,IAAI,CAQzE;CACF"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Removes a secret once its recovery window runs out.
3
+ *
4
+ * The window is scheduled on the simulation's clock rather than the host's, so
5
+ * advancing simulated time past it is what frees the name up again. That is
6
+ * the failure people actually hit when a stack is deleted and redeployed, and
7
+ * it is only testable if the window really elapses.
8
+ */
9
+ export class SimSecretsManagerSecretExpiry {
10
+ secrets;
11
+ background;
12
+ constructor(properties) {
13
+ this.secrets = properties.secrets;
14
+ this.background = properties.background;
15
+ }
16
+ /**
17
+ * Arrange for a secret to be gone once its deletion date arrives.
18
+ *
19
+ * The scheduled work checks the secret is still due to go at that same
20
+ * instant, so a RestoreSecret in the meantime, or a second deletion with a
21
+ * different window, leaves the earlier schedule with nothing to do.
22
+ */
23
+ scheduleRemoval(secret, deletionDate) {
24
+ this.background.scheduleAt(deletionDate, () => {
25
+ if (secret.deletionDate?.getTime() === deletionDate.getTime()) {
26
+ this.secrets.remove(secret);
27
+ }
28
+ return Promise.resolve();
29
+ });
30
+ }
31
+ }
32
+ //# sourceMappingURL=sim-secrets-manager-secret-expiry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-secret-expiry.js","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-expiry.ts"],"names":[],"mappings":"AASA;;;;;;;GAOG;AACH,MAAM,OAAO,6BAA6B;IACvB,OAAO,CAA+B;IACtC,UAAU,CAAsB;IAEjD,YAAY,UAAmD;QAC7D,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,MAA+B,EAAE,YAAkB;QACjE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,GAAkB,EAAE;YAC3D,IAAI,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC9D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;YAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ import type { SimClock } from "../../../util/clock/sim-clock.js";
2
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
3
+ import { SimSecretsManagerSecret, type SimSecretsManagerTag } from "./sim-secrets-manager-secret.js";
4
+ interface SimSecretsManagerSecretFactoryProperties {
5
+ readonly accountRegionScope: SimAwsAccountRegionScope;
6
+ readonly clock: SimClock;
7
+ }
8
+ interface SimSecretsManagerMakeSecretProperties {
9
+ readonly name: string | undefined;
10
+ readonly description?: string | undefined;
11
+ readonly kmsKeyId?: string | undefined;
12
+ readonly tags?: readonly SimSecretsManagerTag[] | undefined;
13
+ }
14
+ /**
15
+ * Builds simulated secrets, including their name validation and their ARN.
16
+ *
17
+ * Creation has to produce a validated name, an ARN carrying the random suffix
18
+ * that name gets, and a creation timestamp from the simulation's clock, so it
19
+ * happens in one place rather than at each call site that needs a secret.
20
+ */
21
+ export declare class SimSecretsManagerSecretFactory {
22
+ private readonly accountRegionScope;
23
+ private readonly clock;
24
+ constructor(properties: SimSecretsManagerSecretFactoryProperties);
25
+ /**
26
+ * Make a new secret with no versions yet.
27
+ */
28
+ make(properties: SimSecretsManagerMakeSecretProperties): SimSecretsManagerSecret;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=sim-secrets-manager-secret-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-secrets-manager-secret-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/secretsmanager/secret/sim-secrets-manager-secret-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,iCAAiC,CAAC;AAIzC,UAAU,wCAAwC;IAChD,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED,UAAU,qCAAqC;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAC;CAC7D;AAED;;;;;;GAMG;AACH,qBAAa,8BAA8B;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC,YAAY,UAAU,EAAE,wCAAwC,EAG/D;IAED;;OAEG;IACH,IAAI,CACF,UAAU,EAAE,qCAAqC,GAChD,uBAAuB,CAazB;CACF"}
@@ -0,0 +1,35 @@
1
+ import { SimSecretsManagerSecret, } from "./sim-secrets-manager-secret.js";
2
+ import { SimSecretsManagerSecretArn } from "./sim-secrets-manager-secret-arn.js";
3
+ import { SimSecretsManagerSecretName } from "./sim-secrets-manager-secret-name.js";
4
+ /**
5
+ * Builds simulated secrets, including their name validation and their ARN.
6
+ *
7
+ * Creation has to produce a validated name, an ARN carrying the random suffix
8
+ * that name gets, and a creation timestamp from the simulation's clock, so it
9
+ * happens in one place rather than at each call site that needs a secret.
10
+ */
11
+ export class SimSecretsManagerSecretFactory {
12
+ accountRegionScope;
13
+ clock;
14
+ constructor(properties) {
15
+ this.accountRegionScope = properties.accountRegionScope;
16
+ this.clock = properties.clock;
17
+ }
18
+ /**
19
+ * Make a new secret with no versions yet.
20
+ */
21
+ make(properties) {
22
+ const name = new SimSecretsManagerSecretName(properties.name);
23
+ return new SimSecretsManagerSecret({
24
+ arn: new SimSecretsManagerSecretArn({
25
+ name: name.value,
26
+ accountRegionScope: this.accountRegionScope,
27
+ }),
28
+ createdDate: this.clock.now(),
29
+ description: properties.description,
30
+ kmsKeyId: properties.kmsKeyId,
31
+ tags: properties.tags,
32
+ });
33
+ }
34
+ }
35
+ //# sourceMappingURL=sim-secrets-manager-secret-factory.js.map