@kensio/yulin 1.9.0 → 1.10.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 (712) hide show
  1. package/README.md +25 -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-account-region-service-builder.d.ts +17 -0
  6. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
  7. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +37 -42
  8. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
  9. package/dist/service/aws/factory/sim-aws-s3-notification-destinations.d.ts.map +1 -1
  10. package/dist/service/aws/factory/sim-aws-s3-notification-destinations.js +5 -0
  11. package/dist/service/aws/factory/sim-aws-s3-notification-destinations.js.map +1 -1
  12. package/dist/service/aws/factory/sim-aws-scoped-service-properties.d.ts +18 -0
  13. package/dist/service/aws/factory/sim-aws-scoped-service-properties.d.ts.map +1 -0
  14. package/dist/service/aws/factory/sim-aws-scoped-service-properties.js +2 -0
  15. package/dist/service/aws/factory/sim-aws-scoped-service-properties.js.map +1 -0
  16. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
  17. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  18. package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
  19. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  20. package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
  21. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  22. package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
  23. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  24. package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -0
  25. package/dist/service/aws/sim-aws-service-accessors.d.ts.map +1 -1
  26. package/dist/service/aws/sim-aws-service-accessors.js +4 -0
  27. package/dist/service/aws/sim-aws-service-accessors.js.map +1 -1
  28. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +36 -0
  29. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts.map +1 -0
  30. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +64 -0
  31. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js.map +1 -0
  32. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +31 -0
  33. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts.map +1 -0
  34. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +42 -0
  35. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js.map +1 -0
  36. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-files.d.ts +13 -0
  37. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-files.d.ts.map +1 -0
  38. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-files.js +68 -0
  39. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-files.js.map +1 -0
  40. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +30 -0
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts.map +1 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +35 -0
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js.map +1 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/filter/sim-cdk-bucket-deploy-filter.d.ts +27 -0
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/filter/sim-cdk-bucket-deploy-filter.d.ts.map +1 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/filter/sim-cdk-bucket-deploy-filter.js +76 -0
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/filter/sim-cdk-bucket-deploy-filter.js.map +1 -0
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/property/sim-cdk-bucket-deploy-properties.d.ts +24 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/property/sim-cdk-bucket-deploy-properties.d.ts.map +1 -0
  50. package/dist/service/cloudformation/cdk/s3/bucket-deployment/property/sim-cdk-bucket-deploy-properties.js +46 -0
  51. package/dist/service/cloudformation/cdk/s3/bucket-deployment/property/sim-cdk-bucket-deploy-properties.js.map +1 -0
  52. package/dist/service/cloudformation/cdk/s3/bucket-deployment/property/sim-cdk-bucket-deploy-values.d.ts +42 -0
  53. package/dist/service/cloudformation/cdk/s3/bucket-deployment/property/sim-cdk-bucket-deploy-values.d.ts.map +1 -0
  54. package/dist/service/cloudformation/cdk/s3/bucket-deployment/property/sim-cdk-bucket-deploy-values.js +96 -0
  55. package/dist/service/cloudformation/cdk/s3/bucket-deployment/property/sim-cdk-bucket-deploy-values.js.map +1 -0
  56. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.d.ts +1 -1
  57. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.d.ts.map +1 -1
  58. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +10 -35
  59. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js.map +1 -1
  60. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.d.ts +2 -0
  61. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.d.ts.map +1 -1
  62. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.js +15 -1
  63. package/dist/service/cloudformation/cdk/s3/bucket-notifications/configuration/sim-cdk-bucket-notification-configuration.js.map +1 -1
  64. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.d.ts.map +1 -1
  65. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +8 -0
  66. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js.map +1 -1
  67. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-rh-policy-cfn.d.ts +25 -0
  68. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-rh-policy-cfn.d.ts.map +1 -0
  69. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-rh-policy-cfn.js +32 -0
  70. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-rh-policy-cfn.js.map +1 -0
  71. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.d.ts.map +1 -1
  72. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js +2 -0
  73. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js.map +1 -1
  74. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-cfn-value-adapter.d.ts +11 -0
  75. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-cfn-value-adapter.d.ts.map +1 -0
  76. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-cfn-value-adapter.js +24 -0
  77. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-cfn-value-adapter.js.map +1 -0
  78. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-subscription-cfn.d.ts +27 -0
  79. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-subscription-cfn.d.ts.map +1 -0
  80. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-subscription-cfn.js +29 -0
  81. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-subscription-cfn.js.map +1 -0
  82. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-topic-cfn.d.ts +30 -0
  83. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-topic-cfn.d.ts.map +1 -0
  84. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-topic-cfn.js +39 -0
  85. package/dist/service/cloudformation/resource/cfn/sns/sim-sns-topic-cfn.js.map +1 -0
  86. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.d.ts.map +1 -1
  87. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js +4 -0
  88. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js.map +1 -1
  89. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +4 -0
  90. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts.map +1 -1
  91. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.js.map +1 -1
  92. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.d.ts +38 -0
  93. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.d.ts.map +1 -0
  94. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.js +127 -0
  95. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-config.js.map +1 -0
  96. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-creator.d.ts +25 -0
  97. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-creator.d.ts.map +1 -0
  98. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-creator.js +33 -0
  99. package/dist/service/cloudfront/cfn/response-headers-policy/sim-cfn-cf-rh-policy-creator.js.map +1 -0
  100. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +1 -0
  101. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts.map +1 -1
  102. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +11 -0
  103. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js.map +1 -1
  104. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +1 -0
  105. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts.map +1 -1
  106. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +3 -0
  107. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts.map +1 -1
  108. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +3 -0
  109. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js.map +1 -1
  110. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.d.ts +19 -0
  111. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.d.ts.map +1 -0
  112. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.js +31 -0
  113. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.js.map +1 -0
  114. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +4 -8
  115. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts.map +1 -1
  116. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +16 -19
  117. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js.map +1 -1
  118. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +3 -0
  119. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js.map +1 -1
  120. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +19 -0
  121. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -1
  122. package/dist/service/cloudfront/error/sim-cloudfront.error.js +23 -0
  123. package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -1
  124. package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.d.ts.map +1 -1
  125. package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.js +2 -5
  126. package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.js.map +1 -1
  127. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-header.d.ts +25 -0
  128. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-header.d.ts.map +1 -0
  129. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-header.js +30 -0
  130. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-header.js.map +1 -0
  131. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.d.ts +29 -0
  132. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.d.ts.map +1 -0
  133. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.js +40 -0
  134. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.js.map +1 -0
  135. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.d.ts +35 -0
  136. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.d.ts.map +1 -0
  137. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.js +44 -0
  138. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.js.map +1 -0
  139. package/dist/service/cloudfront/sim-cloudfront.d.ts +18 -0
  140. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  141. package/dist/service/cloudfront/sim-cloudfront.js +24 -0
  142. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  143. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.d.ts.map +1 -1
  144. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js +4 -1
  145. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js.map +1 -1
  146. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-looked-up-zone.d.ts +39 -0
  147. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-looked-up-zone.d.ts.map +1 -0
  148. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-looked-up-zone.js +46 -0
  149. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-looked-up-zone.js.map +1 -0
  150. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-rec-set-zone-resolver.d.ts +2 -0
  151. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-rec-set-zone-resolver.d.ts.map +1 -1
  152. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-rec-set-zone-resolver.js +17 -1
  153. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-rec-set-zone-resolver.js.map +1 -1
  154. package/dist/service/route53/hosted-zone/register-sim-route53-hosted-zone.d.ts +6 -0
  155. package/dist/service/route53/hosted-zone/register-sim-route53-hosted-zone.d.ts.map +1 -1
  156. package/dist/service/route53/hosted-zone/register-sim-route53-hosted-zone.js +1 -0
  157. package/dist/service/route53/hosted-zone/register-sim-route53-hosted-zone.js.map +1 -1
  158. package/dist/service/route53/hosted-zone/sim-route53-hosted-zone.d.ts +23 -10
  159. package/dist/service/route53/hosted-zone/sim-route53-hosted-zone.d.ts.map +1 -1
  160. package/dist/service/route53/hosted-zone/sim-route53-hosted-zone.js +32 -45
  161. package/dist/service/route53/hosted-zone/sim-route53-hosted-zone.js.map +1 -1
  162. package/dist/service/route53/hosted-zone/sim-route53-zone-name-widening.d.ts +16 -0
  163. package/dist/service/route53/hosted-zone/sim-route53-zone-name-widening.d.ts.map +1 -0
  164. package/dist/service/route53/hosted-zone/sim-route53-zone-name-widening.js +35 -0
  165. package/dist/service/route53/hosted-zone/sim-route53-zone-name-widening.js.map +1 -0
  166. package/dist/service/route53/hosted-zone/sim-route53-zone-synchronization.d.ts +23 -0
  167. package/dist/service/route53/hosted-zone/sim-route53-zone-synchronization.d.ts.map +1 -0
  168. package/dist/service/route53/hosted-zone/sim-route53-zone-synchronization.js +43 -0
  169. package/dist/service/route53/hosted-zone/sim-route53-zone-synchronization.js.map +1 -0
  170. package/dist/service/route53/sim-route53.d.ts +1 -1
  171. package/dist/service/route53/sim-route53.d.ts.map +1 -1
  172. package/dist/service/route53/sim-route53.js +1 -1
  173. package/dist/service/route53/sim-route53.js.map +1 -1
  174. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.d.ts.map +1 -1
  175. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.js +2 -0
  176. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration-reader.js.map +1 -1
  177. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.d.ts +3 -0
  178. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.d.ts.map +1 -1
  179. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.js +10 -1
  180. package/dist/service/s3/bucket/notification/sim-s3-notification-configuration.js.map +1 -1
  181. package/dist/service/s3/bucket/notification/sim-s3-topic-notification.d.ts +21 -0
  182. package/dist/service/s3/bucket/notification/sim-s3-topic-notification.d.ts.map +1 -0
  183. package/dist/service/s3/bucket/notification/sim-s3-topic-notification.js +24 -0
  184. package/dist/service/s3/bucket/notification/sim-s3-topic-notification.js.map +1 -0
  185. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.d.ts +1 -1
  186. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.d.ts.map +1 -1
  187. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.js +3 -3
  188. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-destinations.js.map +1 -1
  189. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.d.ts +9 -6
  190. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.d.ts.map +1 -1
  191. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.js +32 -7
  192. package/dist/service/s3/cfn/bucket/notification/sim-cfn-s3-bucket-notification-configuration.js.map +1 -1
  193. package/dist/service/s3/command/get-bucket-notification-configuration/get-bucket-notification-configuration.command.d.ts +2 -1
  194. package/dist/service/s3/command/get-bucket-notification-configuration/get-bucket-notification-configuration.command.d.ts.map +1 -1
  195. package/dist/service/s3/command/put-bucket-notification-configuration/put-bucket-notification-configuration.command.d.ts +10 -1
  196. package/dist/service/s3/command/put-bucket-notification-configuration/put-bucket-notification-configuration.command.d.ts.map +1 -1
  197. package/dist/service/s3/command/put-object/put-object-builder.d.ts +13 -4
  198. package/dist/service/s3/command/put-object/put-object-builder.d.ts.map +1 -1
  199. package/dist/service/s3/command/put-object/put-object-builder.js +27 -10
  200. package/dist/service/s3/command/put-object/put-object-builder.js.map +1 -1
  201. package/dist/service/s3/command/put-object/put-object.command.d.ts +11 -0
  202. package/dist/service/s3/command/put-object/put-object.command.d.ts.map +1 -1
  203. package/dist/service/s3/notification/destination/sim-s3-notification-destination.d.ts +1 -1
  204. package/dist/service/s3/notification/destination/sim-s3-notification-destination.d.ts.map +1 -1
  205. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.d.ts +2 -0
  206. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.d.ts.map +1 -1
  207. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.js +5 -0
  208. package/dist/service/s3/notification/destination/sim-s3-service-notification-destinations.js.map +1 -1
  209. package/dist/service/s3/notification/destination/sns/sim-aws-s3-notification-topics.d.ts +38 -0
  210. package/dist/service/s3/notification/destination/sns/sim-aws-s3-notification-topics.d.ts.map +1 -0
  211. package/dist/service/s3/notification/destination/sns/sim-aws-s3-notification-topics.js +50 -0
  212. package/dist/service/s3/notification/destination/sns/sim-aws-s3-notification-topics.js.map +1 -0
  213. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic-arn.d.ts +31 -0
  214. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic-arn.d.ts.map +1 -0
  215. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic-arn.js +48 -0
  216. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic-arn.js.map +1 -0
  217. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic.d.ts +43 -0
  218. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic.d.ts.map +1 -0
  219. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic.js +71 -0
  220. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic.js.map +1 -0
  221. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topics.d.ts +22 -0
  222. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topics.d.ts.map +1 -0
  223. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topics.js +2 -0
  224. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topics.js.map +1 -0
  225. package/dist/service/s3/notification/destination/sns/sim-s3-sns-notification-destination.d.ts +40 -0
  226. package/dist/service/s3/notification/destination/sns/sim-s3-sns-notification-destination.d.ts.map +1 -0
  227. package/dist/service/s3/notification/destination/sns/sim-s3-sns-notification-destination.js +51 -0
  228. package/dist/service/s3/notification/destination/sns/sim-s3-sns-notification-destination.js.map +1 -0
  229. package/dist/service/s3/object/s3-object-response-headers.d.ts +17 -0
  230. package/dist/service/s3/object/s3-object-response-headers.d.ts.map +1 -0
  231. package/dist/service/s3/object/s3-object-response-headers.js +29 -0
  232. package/dist/service/s3/object/s3-object-response-headers.js.map +1 -0
  233. package/dist/service/s3/object/s3-system-metadata.d.ts +32 -0
  234. package/dist/service/s3/object/s3-system-metadata.d.ts.map +1 -0
  235. package/dist/service/s3/object/s3-system-metadata.js +35 -0
  236. package/dist/service/s3/object/s3-system-metadata.js.map +1 -0
  237. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts.map +1 -1
  238. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +2 -5
  239. package/dist/service/s3/serve/sim-s3-rest-object-reader.js.map +1 -1
  240. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -1
  241. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js.map +1 -1
  242. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +3 -4
  243. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts.map +1 -1
  244. package/dist/service/s3/serve/website/sim-s3-website-object.js +6 -11
  245. package/dist/service/s3/serve/website/sim-s3-website-object.js.map +1 -1
  246. package/dist/service/sns/cfn/sim-cfn-sns-attribute-value.d.ts +15 -0
  247. package/dist/service/sns/cfn/sim-cfn-sns-attribute-value.d.ts.map +1 -0
  248. package/dist/service/sns/cfn/sim-cfn-sns-attribute-value.js +23 -0
  249. package/dist/service/sns/cfn/sim-cfn-sns-attribute-value.js.map +1 -0
  250. package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.d.ts +38 -0
  251. package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.d.ts.map +1 -0
  252. package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.js +73 -0
  253. package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.js.map +1 -0
  254. package/dist/service/sns/cfn/sim-cfn-sns-resource-error.d.ts +24 -0
  255. package/dist/service/sns/cfn/sim-cfn-sns-resource-error.d.ts.map +1 -0
  256. package/dist/service/sns/cfn/sim-cfn-sns-resource-error.js +39 -0
  257. package/dist/service/sns/cfn/sim-cfn-sns-resource-error.js.map +1 -0
  258. package/dist/service/sns/cfn/sim-cfn-sns-resource-types.d.ts +11 -0
  259. package/dist/service/sns/cfn/sim-cfn-sns-resource-types.d.ts.map +1 -0
  260. package/dist/service/sns/cfn/sim-cfn-sns-resource-types.js +11 -0
  261. package/dist/service/sns/cfn/sim-cfn-sns-resource-types.js.map +1 -0
  262. package/dist/service/sns/cfn/sim-sns-cfn-resource-factory.d.ts +31 -0
  263. package/dist/service/sns/cfn/sim-sns-cfn-resource-factory.d.ts.map +1 -0
  264. package/dist/service/sns/cfn/sim-sns-cfn-resource-factory.js +54 -0
  265. package/dist/service/sns/cfn/sim-sns-cfn-resource-factory.js.map +1 -0
  266. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.d.ts +26 -0
  267. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.d.ts.map +1 -0
  268. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.js +37 -0
  269. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.js.map +1 -0
  270. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-properties.d.ts +47 -0
  271. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-properties.d.ts.map +1 -0
  272. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-properties.js +88 -0
  273. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-properties.js.map +1 -0
  274. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-property-names.d.ts +36 -0
  275. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-property-names.d.ts.map +1 -0
  276. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-property-names.js +55 -0
  277. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-property-names.js.map +1 -0
  278. package/dist/service/sns/cfn/topic/sim-cfn-sns-inline-subscriptions.d.ts +23 -0
  279. package/dist/service/sns/cfn/topic/sim-cfn-sns-inline-subscriptions.d.ts.map +1 -0
  280. package/dist/service/sns/cfn/topic/sim-cfn-sns-inline-subscriptions.js +49 -0
  281. package/dist/service/sns/cfn/topic/sim-cfn-sns-inline-subscriptions.js.map +1 -0
  282. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.d.ts +34 -0
  283. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.d.ts.map +1 -0
  284. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.js +60 -0
  285. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.js.map +1 -0
  286. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-name.d.ts +22 -0
  287. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-name.d.ts.map +1 -0
  288. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-name.js +27 -0
  289. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-name.js.map +1 -0
  290. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-properties.d.ts +58 -0
  291. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-properties.d.ts.map +1 -0
  292. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-properties.js +93 -0
  293. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-properties.js.map +1 -0
  294. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-property-names.d.ts +31 -0
  295. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-property-names.d.ts.map +1 -0
  296. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-property-names.js +52 -0
  297. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-property-names.js.map +1 -0
  298. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.d.ts +34 -0
  299. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.d.ts.map +1 -0
  300. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.js +58 -0
  301. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.js.map +1 -0
  302. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-properties.d.ts +20 -0
  303. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-properties.d.ts.map +1 -0
  304. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-properties.js +44 -0
  305. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-properties.js.map +1 -0
  306. package/dist/service/sns/command/authorize/sim-sns-authorizer.d.ts +58 -0
  307. package/dist/service/sns/command/authorize/sim-sns-authorizer.d.ts.map +1 -0
  308. package/dist/service/sns/command/authorize/sim-sns-authorizer.js +83 -0
  309. package/dist/service/sns/command/authorize/sim-sns-authorizer.js.map +1 -0
  310. package/dist/service/sns/command/authorize/sim-sns-condition-context.d.ts +13 -0
  311. package/dist/service/sns/command/authorize/sim-sns-condition-context.d.ts.map +1 -0
  312. package/dist/service/sns/command/authorize/sim-sns-condition-context.js +21 -0
  313. package/dist/service/sns/command/authorize/sim-sns-condition-context.js.map +1 -0
  314. package/dist/service/sns/command/authorize/sim-sns-service-publish-authorizer.d.ts +41 -0
  315. package/dist/service/sns/command/authorize/sim-sns-service-publish-authorizer.d.ts.map +1 -0
  316. package/dist/service/sns/command/authorize/sim-sns-service-publish-authorizer.js +40 -0
  317. package/dist/service/sns/command/authorize/sim-sns-service-publish-authorizer.js.map +1 -0
  318. package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.d.ts +12 -0
  319. package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.d.ts.map +1 -0
  320. package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.js +25 -0
  321. package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.js.map +1 -0
  322. package/dist/service/sns/command/publish/publish.command.d.ts +70 -0
  323. package/dist/service/sns/command/publish/publish.command.d.ts.map +1 -0
  324. package/dist/service/sns/command/publish/publish.command.js +2 -0
  325. package/dist/service/sns/command/publish/publish.command.js.map +1 -0
  326. package/dist/service/sns/command/publish/sim-sns-batch-entries.d.ts +52 -0
  327. package/dist/service/sns/command/publish/sim-sns-batch-entries.d.ts.map +1 -0
  328. package/dist/service/sns/command/publish/sim-sns-batch-entries.js +85 -0
  329. package/dist/service/sns/command/publish/sim-sns-batch-entries.js.map +1 -0
  330. package/dist/service/sns/command/publish/sim-sns-publish-commands.d.ts +53 -0
  331. package/dist/service/sns/command/publish/sim-sns-publish-commands.d.ts.map +1 -0
  332. package/dist/service/sns/command/publish/sim-sns-publish-commands.js +83 -0
  333. package/dist/service/sns/command/publish/sim-sns-publish-commands.js.map +1 -0
  334. package/dist/service/sns/command/publish/sim-sns-publish-input.d.ts +23 -0
  335. package/dist/service/sns/command/publish/sim-sns-publish-input.d.ts.map +1 -0
  336. package/dist/service/sns/command/publish/sim-sns-publish-input.js +47 -0
  337. package/dist/service/sns/command/publish/sim-sns-publish-input.js.map +1 -0
  338. package/dist/service/sns/command/sim-sns-command.types.d.ts +7 -0
  339. package/dist/service/sns/command/sim-sns-command.types.d.ts.map +1 -0
  340. package/dist/service/sns/command/sim-sns-command.types.js +2 -0
  341. package/dist/service/sns/command/sim-sns-command.types.js.map +1 -0
  342. package/dist/service/sns/command/sim-sns-commands.d.ts +45 -0
  343. package/dist/service/sns/command/sim-sns-commands.d.ts.map +1 -0
  344. package/dist/service/sns/command/sim-sns-commands.js +83 -0
  345. package/dist/service/sns/command/sim-sns-commands.js.map +1 -0
  346. package/dist/service/sns/command/sim-sns-page.d.ts +19 -0
  347. package/dist/service/sns/command/sim-sns-page.d.ts.map +1 -0
  348. package/dist/service/sns/command/sim-sns-page.js +51 -0
  349. package/dist/service/sns/command/sim-sns-page.js.map +1 -0
  350. package/dist/service/sns/command/sim-sns-request-options.d.ts +47 -0
  351. package/dist/service/sns/command/sim-sns-request-options.d.ts.map +1 -0
  352. package/dist/service/sns/command/sim-sns-request-options.js +19 -0
  353. package/dist/service/sns/command/sim-sns-request-options.js.map +1 -0
  354. package/dist/service/sns/command/subscription/sim-sns-subscription-access.d.ts +42 -0
  355. package/dist/service/sns/command/subscription/sim-sns-subscription-access.d.ts.map +1 -0
  356. package/dist/service/sns/command/subscription/sim-sns-subscription-access.js +57 -0
  357. package/dist/service/sns/command/subscription/sim-sns-subscription-access.js.map +1 -0
  358. package/dist/service/sns/command/subscription/sim-sns-subscription-attribute-commands.d.ts +31 -0
  359. package/dist/service/sns/command/subscription/sim-sns-subscription-attribute-commands.d.ts.map +1 -0
  360. package/dist/service/sns/command/subscription/sim-sns-subscription-attribute-commands.js +44 -0
  361. package/dist/service/sns/command/subscription/sim-sns-subscription-attribute-commands.js.map +1 -0
  362. package/dist/service/sns/command/subscription/sim-sns-subscription-commands.d.ts +50 -0
  363. package/dist/service/sns/command/subscription/sim-sns-subscription-commands.d.ts.map +1 -0
  364. package/dist/service/sns/command/subscription/sim-sns-subscription-commands.js +73 -0
  365. package/dist/service/sns/command/subscription/sim-sns-subscription-commands.js.map +1 -0
  366. package/dist/service/sns/command/subscription/sim-sns-subscription-listings.d.ts +34 -0
  367. package/dist/service/sns/command/subscription/sim-sns-subscription-listings.d.ts.map +1 -0
  368. package/dist/service/sns/command/subscription/sim-sns-subscription-listings.js +57 -0
  369. package/dist/service/sns/command/subscription/sim-sns-subscription-listings.js.map +1 -0
  370. package/dist/service/sns/command/subscription/subscription.command.d.ts +118 -0
  371. package/dist/service/sns/command/subscription/subscription.command.d.ts.map +1 -0
  372. package/dist/service/sns/command/subscription/subscription.command.js +2 -0
  373. package/dist/service/sns/command/subscription/subscription.command.js.map +1 -0
  374. package/dist/service/sns/command/topic/sim-sns-create-topic.d.ts +41 -0
  375. package/dist/service/sns/command/topic/sim-sns-create-topic.d.ts.map +1 -0
  376. package/dist/service/sns/command/topic/sim-sns-create-topic.js +54 -0
  377. package/dist/service/sns/command/topic/sim-sns-create-topic.js.map +1 -0
  378. package/dist/service/sns/command/topic/sim-sns-request-topic-name.d.ts +11 -0
  379. package/dist/service/sns/command/topic/sim-sns-request-topic-name.d.ts.map +1 -0
  380. package/dist/service/sns/command/topic/sim-sns-request-topic-name.js +28 -0
  381. package/dist/service/sns/command/topic/sim-sns-request-topic-name.js.map +1 -0
  382. package/dist/service/sns/command/topic/sim-sns-topic-access.d.ts +76 -0
  383. package/dist/service/sns/command/topic/sim-sns-topic-access.d.ts.map +1 -0
  384. package/dist/service/sns/command/topic/sim-sns-topic-access.js +81 -0
  385. package/dist/service/sns/command/topic/sim-sns-topic-access.js.map +1 -0
  386. package/dist/service/sns/command/topic/sim-sns-topic-attribute-commands.d.ts +36 -0
  387. package/dist/service/sns/command/topic/sim-sns-topic-attribute-commands.d.ts.map +1 -0
  388. package/dist/service/sns/command/topic/sim-sns-topic-attribute-commands.js +47 -0
  389. package/dist/service/sns/command/topic/sim-sns-topic-attribute-commands.js.map +1 -0
  390. package/dist/service/sns/command/topic/sim-sns-topic-commands.d.ts +42 -0
  391. package/dist/service/sns/command/topic/sim-sns-topic-commands.d.ts.map +1 -0
  392. package/dist/service/sns/command/topic/sim-sns-topic-commands.js +51 -0
  393. package/dist/service/sns/command/topic/sim-sns-topic-commands.js.map +1 -0
  394. package/dist/service/sns/command/topic/sim-sns-unsimulated-topic-input.d.ts +11 -0
  395. package/dist/service/sns/command/topic/sim-sns-unsimulated-topic-input.d.ts.map +1 -0
  396. package/dist/service/sns/command/topic/sim-sns-unsimulated-topic-input.js +20 -0
  397. package/dist/service/sns/command/topic/sim-sns-unsimulated-topic-input.js.map +1 -0
  398. package/dist/service/sns/command/topic/topic.command.d.ts +95 -0
  399. package/dist/service/sns/command/topic/topic.command.d.ts.map +1 -0
  400. package/dist/service/sns/command/topic/topic.command.js +2 -0
  401. package/dist/service/sns/command/topic/topic.command.js.map +1 -0
  402. package/dist/service/sns/delivery/lambda/sim-aws-sns-delivery-functions.d.ts +27 -0
  403. package/dist/service/sns/delivery/lambda/sim-aws-sns-delivery-functions.d.ts.map +1 -0
  404. package/dist/service/sns/delivery/lambda/sim-aws-sns-delivery-functions.js +31 -0
  405. package/dist/service/sns/delivery/lambda/sim-aws-sns-delivery-functions.js.map +1 -0
  406. package/dist/service/sns/delivery/lambda/sim-sns-delivery-function.d.ts +31 -0
  407. package/dist/service/sns/delivery/lambda/sim-sns-delivery-function.d.ts.map +1 -0
  408. package/dist/service/sns/delivery/lambda/sim-sns-delivery-function.js +62 -0
  409. package/dist/service/sns/delivery/lambda/sim-sns-delivery-function.js.map +1 -0
  410. package/dist/service/sns/delivery/lambda/sim-sns-lambda-event.d.ts +10 -0
  411. package/dist/service/sns/delivery/lambda/sim-sns-lambda-event.d.ts.map +1 -0
  412. package/dist/service/sns/delivery/lambda/sim-sns-lambda-event.js +53 -0
  413. package/dist/service/sns/delivery/lambda/sim-sns-lambda-event.js.map +1 -0
  414. package/dist/service/sns/delivery/sim-aws-sns-delivery-endpoints.d.ts +17 -0
  415. package/dist/service/sns/delivery/sim-aws-sns-delivery-endpoints.d.ts.map +1 -0
  416. package/dist/service/sns/delivery/sim-aws-sns-delivery-endpoints.js +21 -0
  417. package/dist/service/sns/delivery/sim-aws-sns-delivery-endpoints.js.map +1 -0
  418. package/dist/service/sns/delivery/sim-sns-canonical-message.d.ts +32 -0
  419. package/dist/service/sns/delivery/sim-sns-canonical-message.d.ts.map +1 -0
  420. package/dist/service/sns/delivery/sim-sns-canonical-message.js +24 -0
  421. package/dist/service/sns/delivery/sim-sns-canonical-message.js.map +1 -0
  422. package/dist/service/sns/delivery/sim-sns-delivery-failures.d.ts +60 -0
  423. package/dist/service/sns/delivery/sim-sns-delivery-failures.d.ts.map +1 -0
  424. package/dist/service/sns/delivery/sim-sns-delivery-failures.js +84 -0
  425. package/dist/service/sns/delivery/sim-sns-delivery-failures.js.map +1 -0
  426. package/dist/service/sns/delivery/sim-sns-delivery-request.d.ts +28 -0
  427. package/dist/service/sns/delivery/sim-sns-delivery-request.d.ts.map +1 -0
  428. package/dist/service/sns/delivery/sim-sns-delivery-request.js +34 -0
  429. package/dist/service/sns/delivery/sim-sns-delivery-request.js.map +1 -0
  430. package/dist/service/sns/delivery/sim-sns-delivery.d.ts +55 -0
  431. package/dist/service/sns/delivery/sim-sns-delivery.d.ts.map +1 -0
  432. package/dist/service/sns/delivery/sim-sns-delivery.js +18 -0
  433. package/dist/service/sns/delivery/sim-sns-delivery.js.map +1 -0
  434. package/dist/service/sns/delivery/sim-sns-envelope.d.ts +26 -0
  435. package/dist/service/sns/delivery/sim-sns-envelope.d.ts.map +1 -0
  436. package/dist/service/sns/delivery/sim-sns-envelope.js +41 -0
  437. package/dist/service/sns/delivery/sim-sns-envelope.js.map +1 -0
  438. package/dist/service/sns/delivery/sim-sns-fan-out.d.ts +53 -0
  439. package/dist/service/sns/delivery/sim-sns-fan-out.d.ts.map +1 -0
  440. package/dist/service/sns/delivery/sim-sns-fan-out.js +69 -0
  441. package/dist/service/sns/delivery/sim-sns-fan-out.js.map +1 -0
  442. package/dist/service/sns/delivery/sim-sns-no-delivery-endpoints.d.ts +17 -0
  443. package/dist/service/sns/delivery/sim-sns-no-delivery-endpoints.d.ts.map +1 -0
  444. package/dist/service/sns/delivery/sim-sns-no-delivery-endpoints.js +23 -0
  445. package/dist/service/sns/delivery/sim-sns-no-delivery-endpoints.js.map +1 -0
  446. package/dist/service/sns/delivery/sim-sns-notification.d.ts +57 -0
  447. package/dist/service/sns/delivery/sim-sns-notification.d.ts.map +1 -0
  448. package/dist/service/sns/delivery/sim-sns-notification.js +64 -0
  449. package/dist/service/sns/delivery/sim-sns-notification.js.map +1 -0
  450. package/dist/service/sns/delivery/sim-sns-protocol-delivery-endpoints.d.ts +32 -0
  451. package/dist/service/sns/delivery/sim-sns-protocol-delivery-endpoints.d.ts.map +1 -0
  452. package/dist/service/sns/delivery/sim-sns-protocol-delivery-endpoints.js +22 -0
  453. package/dist/service/sns/delivery/sim-sns-protocol-delivery-endpoints.js.map +1 -0
  454. package/dist/service/sns/delivery/sqs/sim-aws-sns-delivery-queues.d.ts +29 -0
  455. package/dist/service/sns/delivery/sqs/sim-aws-sns-delivery-queues.d.ts.map +1 -0
  456. package/dist/service/sns/delivery/sqs/sim-aws-sns-delivery-queues.js +33 -0
  457. package/dist/service/sns/delivery/sqs/sim-aws-sns-delivery-queues.js.map +1 -0
  458. package/dist/service/sns/delivery/sqs/sim-sns-delivery-queue.d.ts +31 -0
  459. package/dist/service/sns/delivery/sqs/sim-sns-delivery-queue.d.ts.map +1 -0
  460. package/dist/service/sns/delivery/sqs/sim-sns-delivery-queue.js +63 -0
  461. package/dist/service/sns/delivery/sqs/sim-sns-delivery-queue.js.map +1 -0
  462. package/dist/service/sns/delivery/sqs/sim-sns-queue-message.d.ts +24 -0
  463. package/dist/service/sns/delivery/sqs/sim-sns-queue-message.d.ts.map +1 -0
  464. package/dist/service/sns/delivery/sqs/sim-sns-queue-message.js +38 -0
  465. package/dist/service/sns/delivery/sqs/sim-sns-queue-message.js.map +1 -0
  466. package/dist/service/sns/error/sim-sns-delivery.error.d.ts +13 -0
  467. package/dist/service/sns/error/sim-sns-delivery.error.d.ts.map +1 -0
  468. package/dist/service/sns/error/sim-sns-delivery.error.js +13 -0
  469. package/dist/service/sns/error/sim-sns-delivery.error.js.map +1 -0
  470. package/dist/service/sns/error/sim-sns.error.d.ts +107 -0
  471. package/dist/service/sns/error/sim-sns.error.d.ts.map +1 -0
  472. package/dist/service/sns/error/sim-sns.error.js +124 -0
  473. package/dist/service/sns/error/sim-sns.error.js.map +1 -0
  474. package/dist/service/sns/filter/match/sim-sns-anything-but-match.d.ts +30 -0
  475. package/dist/service/sns/filter/match/sim-sns-anything-but-match.d.ts.map +1 -0
  476. package/dist/service/sns/filter/match/sim-sns-anything-but-match.js +82 -0
  477. package/dist/service/sns/filter/match/sim-sns-anything-but-match.js.map +1 -0
  478. package/dist/service/sns/filter/match/sim-sns-equals-ignore-case-match.d.ts +24 -0
  479. package/dist/service/sns/filter/match/sim-sns-equals-ignore-case-match.d.ts.map +1 -0
  480. package/dist/service/sns/filter/match/sim-sns-equals-ignore-case-match.js +30 -0
  481. package/dist/service/sns/filter/match/sim-sns-equals-ignore-case-match.js.map +1 -0
  482. package/dist/service/sns/filter/match/sim-sns-exact-match.d.ts +22 -0
  483. package/dist/service/sns/filter/match/sim-sns-exact-match.d.ts.map +1 -0
  484. package/dist/service/sns/filter/match/sim-sns-exact-match.js +49 -0
  485. package/dist/service/sns/filter/match/sim-sns-exact-match.js.map +1 -0
  486. package/dist/service/sns/filter/match/sim-sns-exists-match.d.ts +27 -0
  487. package/dist/service/sns/filter/match/sim-sns-exists-match.d.ts.map +1 -0
  488. package/dist/service/sns/filter/match/sim-sns-exists-match.js +38 -0
  489. package/dist/service/sns/filter/match/sim-sns-exists-match.js.map +1 -0
  490. package/dist/service/sns/filter/match/sim-sns-filter-match.d.ts +24 -0
  491. package/dist/service/sns/filter/match/sim-sns-filter-match.d.ts.map +1 -0
  492. package/dist/service/sns/filter/match/sim-sns-filter-match.js +19 -0
  493. package/dist/service/sns/filter/match/sim-sns-filter-match.js.map +1 -0
  494. package/dist/service/sns/filter/match/sim-sns-numeric-match.d.ts +48 -0
  495. package/dist/service/sns/filter/match/sim-sns-numeric-match.d.ts.map +1 -0
  496. package/dist/service/sns/filter/match/sim-sns-numeric-match.js +107 -0
  497. package/dist/service/sns/filter/match/sim-sns-numeric-match.js.map +1 -0
  498. package/dist/service/sns/filter/match/sim-sns-prefix-match.d.ts +26 -0
  499. package/dist/service/sns/filter/match/sim-sns-prefix-match.d.ts.map +1 -0
  500. package/dist/service/sns/filter/match/sim-sns-prefix-match.js +32 -0
  501. package/dist/service/sns/filter/match/sim-sns-prefix-match.js.map +1 -0
  502. package/dist/service/sns/filter/match/sim-sns-suffix-match.d.ts +23 -0
  503. package/dist/service/sns/filter/match/sim-sns-suffix-match.d.ts.map +1 -0
  504. package/dist/service/sns/filter/match/sim-sns-suffix-match.js +29 -0
  505. package/dist/service/sns/filter/match/sim-sns-suffix-match.js.map +1 -0
  506. package/dist/service/sns/filter/sim-sns-attribute-subject.d.ts +31 -0
  507. package/dist/service/sns/filter/sim-sns-attribute-subject.d.ts.map +1 -0
  508. package/dist/service/sns/filter/sim-sns-attribute-subject.js +85 -0
  509. package/dist/service/sns/filter/sim-sns-attribute-subject.js.map +1 -0
  510. package/dist/service/sns/filter/sim-sns-body-subject.d.ts +30 -0
  511. package/dist/service/sns/filter/sim-sns-body-subject.d.ts.map +1 -0
  512. package/dist/service/sns/filter/sim-sns-body-subject.js +67 -0
  513. package/dist/service/sns/filter/sim-sns-body-subject.js.map +1 -0
  514. package/dist/service/sns/filter/sim-sns-filter-any-rule.d.ts +21 -0
  515. package/dist/service/sns/filter/sim-sns-filter-any-rule.d.ts.map +1 -0
  516. package/dist/service/sns/filter/sim-sns-filter-any-rule.js +23 -0
  517. package/dist/service/sns/filter/sim-sns-filter-any-rule.js.map +1 -0
  518. package/dist/service/sns/filter/sim-sns-filter-key-rule.d.ts +28 -0
  519. package/dist/service/sns/filter/sim-sns-filter-key-rule.d.ts.map +1 -0
  520. package/dist/service/sns/filter/sim-sns-filter-key-rule.js +48 -0
  521. package/dist/service/sns/filter/sim-sns-filter-key-rule.js.map +1 -0
  522. package/dist/service/sns/filter/sim-sns-filter-matches.d.ts +9 -0
  523. package/dist/service/sns/filter/sim-sns-filter-matches.d.ts.map +1 -0
  524. package/dist/service/sns/filter/sim-sns-filter-matches.js +40 -0
  525. package/dist/service/sns/filter/sim-sns-filter-matches.js.map +1 -0
  526. package/dist/service/sns/filter/sim-sns-filter-operators.d.ts +22 -0
  527. package/dist/service/sns/filter/sim-sns-filter-operators.d.ts.map +1 -0
  528. package/dist/service/sns/filter/sim-sns-filter-operators.js +50 -0
  529. package/dist/service/sns/filter/sim-sns-filter-operators.js.map +1 -0
  530. package/dist/service/sns/filter/sim-sns-filter-or-eligibility.d.ts +17 -0
  531. package/dist/service/sns/filter/sim-sns-filter-or-eligibility.d.ts.map +1 -0
  532. package/dist/service/sns/filter/sim-sns-filter-or-eligibility.js +47 -0
  533. package/dist/service/sns/filter/sim-sns-filter-or-eligibility.js.map +1 -0
  534. package/dist/service/sns/filter/sim-sns-filter-policy-scope.d.ts +36 -0
  535. package/dist/service/sns/filter/sim-sns-filter-policy-scope.d.ts.map +1 -0
  536. package/dist/service/sns/filter/sim-sns-filter-policy-scope.js +67 -0
  537. package/dist/service/sns/filter/sim-sns-filter-policy-scope.js.map +1 -0
  538. package/dist/service/sns/filter/sim-sns-filter-policy.d.ts +48 -0
  539. package/dist/service/sns/filter/sim-sns-filter-policy.d.ts.map +1 -0
  540. package/dist/service/sns/filter/sim-sns-filter-policy.js +84 -0
  541. package/dist/service/sns/filter/sim-sns-filter-policy.js.map +1 -0
  542. package/dist/service/sns/filter/sim-sns-filter-refusals.d.ts +38 -0
  543. package/dist/service/sns/filter/sim-sns-filter-refusals.d.ts.map +1 -0
  544. package/dist/service/sns/filter/sim-sns-filter-refusals.js +53 -0
  545. package/dist/service/sns/filter/sim-sns-filter-refusals.js.map +1 -0
  546. package/dist/service/sns/filter/sim-sns-filter-rule.d.ts +15 -0
  547. package/dist/service/sns/filter/sim-sns-filter-rule.d.ts.map +1 -0
  548. package/dist/service/sns/filter/sim-sns-filter-rule.js +2 -0
  549. package/dist/service/sns/filter/sim-sns-filter-rule.js.map +1 -0
  550. package/dist/service/sns/filter/sim-sns-filter-rules.d.ts +27 -0
  551. package/dist/service/sns/filter/sim-sns-filter-rules.d.ts.map +1 -0
  552. package/dist/service/sns/filter/sim-sns-filter-rules.js +66 -0
  553. package/dist/service/sns/filter/sim-sns-filter-rules.js.map +1 -0
  554. package/dist/service/sns/filter/sim-sns-filter-subject.d.ts +31 -0
  555. package/dist/service/sns/filter/sim-sns-filter-subject.d.ts.map +1 -0
  556. package/dist/service/sns/filter/sim-sns-filter-subject.js +2 -0
  557. package/dist/service/sns/filter/sim-sns-filter-subject.js.map +1 -0
  558. package/dist/service/sns/filter/sim-sns-filter-value.d.ts +45 -0
  559. package/dist/service/sns/filter/sim-sns-filter-value.d.ts.map +1 -0
  560. package/dist/service/sns/filter/sim-sns-filter-value.js +83 -0
  561. package/dist/service/sns/filter/sim-sns-filter-value.js.map +1 -0
  562. package/dist/service/sns/filter/sim-sns-json-filter-values.d.ts +12 -0
  563. package/dist/service/sns/filter/sim-sns-json-filter-values.d.ts.map +1 -0
  564. package/dist/service/sns/filter/sim-sns-json-filter-values.js +25 -0
  565. package/dist/service/sns/filter/sim-sns-json-filter-values.js.map +1 -0
  566. package/dist/service/sns/index.d.ts +33 -0
  567. package/dist/service/sns/index.d.ts.map +1 -0
  568. package/dist/service/sns/index.js +29 -0
  569. package/dist/service/sns/index.js.map +1 -0
  570. package/dist/service/sns/message/sim-sns-message-attribute-rules.d.ts +23 -0
  571. package/dist/service/sns/message/sim-sns-message-attribute-rules.d.ts.map +1 -0
  572. package/dist/service/sns/message/sim-sns-message-attribute-rules.js +74 -0
  573. package/dist/service/sns/message/sim-sns-message-attribute-rules.js.map +1 -0
  574. package/dist/service/sns/message/sim-sns-message-attribute-value.d.ts +15 -0
  575. package/dist/service/sns/message/sim-sns-message-attribute-value.d.ts.map +1 -0
  576. package/dist/service/sns/message/sim-sns-message-attribute-value.js +2 -0
  577. package/dist/service/sns/message/sim-sns-message-attribute-value.js.map +1 -0
  578. package/dist/service/sns/message/sim-sns-message-attribute.d.ts +55 -0
  579. package/dist/service/sns/message/sim-sns-message-attribute.d.ts.map +1 -0
  580. package/dist/service/sns/message/sim-sns-message-attribute.js +78 -0
  581. package/dist/service/sns/message/sim-sns-message-attribute.js.map +1 -0
  582. package/dist/service/sns/message/sim-sns-message-attributes.d.ts +71 -0
  583. package/dist/service/sns/message/sim-sns-message-attributes.d.ts.map +1 -0
  584. package/dist/service/sns/message/sim-sns-message-attributes.js +80 -0
  585. package/dist/service/sns/message/sim-sns-message-attributes.js.map +1 -0
  586. package/dist/service/sns/message/sim-sns-message-body.d.ts +17 -0
  587. package/dist/service/sns/message/sim-sns-message-body.d.ts.map +1 -0
  588. package/dist/service/sns/message/sim-sns-message-body.js +26 -0
  589. package/dist/service/sns/message/sim-sns-message-body.js.map +1 -0
  590. package/dist/service/sns/message/sim-sns-message-subject.d.ts +27 -0
  591. package/dist/service/sns/message/sim-sns-message-subject.d.ts.map +1 -0
  592. package/dist/service/sns/message/sim-sns-message-subject.js +74 -0
  593. package/dist/service/sns/message/sim-sns-message-subject.js.map +1 -0
  594. package/dist/service/sns/message/sim-sns-published-message.d.ts +55 -0
  595. package/dist/service/sns/message/sim-sns-published-message.d.ts.map +1 -0
  596. package/dist/service/sns/message/sim-sns-published-message.js +69 -0
  597. package/dist/service/sns/message/sim-sns-published-message.js.map +1 -0
  598. package/dist/service/sns/sdk/sim-sns-sdk-command-router.d.ts +18 -0
  599. package/dist/service/sns/sdk/sim-sns-sdk-command-router.d.ts.map +1 -0
  600. package/dist/service/sns/sdk/sim-sns-sdk-command-router.js +76 -0
  601. package/dist/service/sns/sdk/sim-sns-sdk-command-router.js.map +1 -0
  602. package/dist/service/sns/signature/sim-sns-certificate.d.ts +30 -0
  603. package/dist/service/sns/signature/sim-sns-certificate.d.ts.map +1 -0
  604. package/dist/service/sns/signature/sim-sns-certificate.js +110 -0
  605. package/dist/service/sns/signature/sim-sns-certificate.js.map +1 -0
  606. package/dist/service/sns/signature/sim-sns-der.d.ts +40 -0
  607. package/dist/service/sns/signature/sim-sns-der.d.ts.map +1 -0
  608. package/dist/service/sns/signature/sim-sns-der.js +64 -0
  609. package/dist/service/sns/signature/sim-sns-der.js.map +1 -0
  610. package/dist/service/sns/signature/sim-sns-host.d.ts +28 -0
  611. package/dist/service/sns/signature/sim-sns-host.d.ts.map +1 -0
  612. package/dist/service/sns/signature/sim-sns-host.js +33 -0
  613. package/dist/service/sns/signature/sim-sns-host.js.map +1 -0
  614. package/dist/service/sns/signature/sim-sns-message-signer.d.ts +51 -0
  615. package/dist/service/sns/signature/sim-sns-message-signer.d.ts.map +1 -0
  616. package/dist/service/sns/signature/sim-sns-message-signer.js +60 -0
  617. package/dist/service/sns/signature/sim-sns-message-signer.js.map +1 -0
  618. package/dist/service/sns/signature/sim-sns-signing-key.d.ts +34 -0
  619. package/dist/service/sns/signature/sim-sns-signing-key.d.ts.map +1 -0
  620. package/dist/service/sns/signature/sim-sns-signing-key.js +69 -0
  621. package/dist/service/sns/signature/sim-sns-signing-key.js.map +1 -0
  622. package/dist/service/sns/sim-sns.d.ts +139 -0
  623. package/dist/service/sns/sim-sns.d.ts.map +1 -0
  624. package/dist/service/sns/sim-sns.js +188 -0
  625. package/dist/service/sns/sim-sns.js.map +1 -0
  626. package/dist/service/sns/subscription/sim-sns-function-endpoint-arn.d.ts +31 -0
  627. package/dist/service/sns/subscription/sim-sns-function-endpoint-arn.d.ts.map +1 -0
  628. package/dist/service/sns/subscription/sim-sns-function-endpoint-arn.js +54 -0
  629. package/dist/service/sns/subscription/sim-sns-function-endpoint-arn.js.map +1 -0
  630. package/dist/service/sns/subscription/sim-sns-queue-endpoint-arn.d.ts +30 -0
  631. package/dist/service/sns/subscription/sim-sns-queue-endpoint-arn.d.ts.map +1 -0
  632. package/dist/service/sns/subscription/sim-sns-queue-endpoint-arn.js +78 -0
  633. package/dist/service/sns/subscription/sim-sns-queue-endpoint-arn.js.map +1 -0
  634. package/dist/service/sns/subscription/sim-sns-requested-subscription-attributes.d.ts +28 -0
  635. package/dist/service/sns/subscription/sim-sns-requested-subscription-attributes.d.ts.map +1 -0
  636. package/dist/service/sns/subscription/sim-sns-requested-subscription-attributes.js +43 -0
  637. package/dist/service/sns/subscription/sim-sns-requested-subscription-attributes.js.map +1 -0
  638. package/dist/service/sns/subscription/sim-sns-subscription-arn.d.ts +43 -0
  639. package/dist/service/sns/subscription/sim-sns-subscription-arn.d.ts.map +1 -0
  640. package/dist/service/sns/subscription/sim-sns-subscription-arn.js +70 -0
  641. package/dist/service/sns/subscription/sim-sns-subscription-arn.js.map +1 -0
  642. package/dist/service/sns/subscription/sim-sns-subscription-attribute-changes.d.ts +20 -0
  643. package/dist/service/sns/subscription/sim-sns-subscription-attribute-changes.d.ts.map +1 -0
  644. package/dist/service/sns/subscription/sim-sns-subscription-attribute-changes.js +52 -0
  645. package/dist/service/sns/subscription/sim-sns-subscription-attribute-changes.js.map +1 -0
  646. package/dist/service/sns/subscription/sim-sns-subscription-attribute-names.d.ts +26 -0
  647. package/dist/service/sns/subscription/sim-sns-subscription-attribute-names.d.ts.map +1 -0
  648. package/dist/service/sns/subscription/sim-sns-subscription-attribute-names.js +64 -0
  649. package/dist/service/sns/subscription/sim-sns-subscription-attribute-names.js.map +1 -0
  650. package/dist/service/sns/subscription/sim-sns-subscription-attributes.d.ts +47 -0
  651. package/dist/service/sns/subscription/sim-sns-subscription-attributes.d.ts.map +1 -0
  652. package/dist/service/sns/subscription/sim-sns-subscription-attributes.js +67 -0
  653. package/dist/service/sns/subscription/sim-sns-subscription-attributes.js.map +1 -0
  654. package/dist/service/sns/subscription/sim-sns-subscription-endpoint.d.ts +26 -0
  655. package/dist/service/sns/subscription/sim-sns-subscription-endpoint.d.ts.map +1 -0
  656. package/dist/service/sns/subscription/sim-sns-subscription-endpoint.js +21 -0
  657. package/dist/service/sns/subscription/sim-sns-subscription-endpoint.js.map +1 -0
  658. package/dist/service/sns/subscription/sim-sns-subscription-protocol.d.ts +33 -0
  659. package/dist/service/sns/subscription/sim-sns-subscription-protocol.d.ts.map +1 -0
  660. package/dist/service/sns/subscription/sim-sns-subscription-protocol.js +63 -0
  661. package/dist/service/sns/subscription/sim-sns-subscription-protocol.js.map +1 -0
  662. package/dist/service/sns/subscription/sim-sns-subscription-store.d.ts +71 -0
  663. package/dist/service/sns/subscription/sim-sns-subscription-store.d.ts.map +1 -0
  664. package/dist/service/sns/subscription/sim-sns-subscription-store.js +88 -0
  665. package/dist/service/sns/subscription/sim-sns-subscription-store.js.map +1 -0
  666. package/dist/service/sns/subscription/sim-sns-subscription.d.ts +72 -0
  667. package/dist/service/sns/subscription/sim-sns-subscription.d.ts.map +1 -0
  668. package/dist/service/sns/subscription/sim-sns-subscription.js +116 -0
  669. package/dist/service/sns/subscription/sim-sns-subscription.js.map +1 -0
  670. package/dist/service/sns/topic/sim-sns-topic-arn.d.ts +52 -0
  671. package/dist/service/sns/topic/sim-sns-topic-arn.d.ts.map +1 -0
  672. package/dist/service/sns/topic/sim-sns-topic-arn.js +71 -0
  673. package/dist/service/sns/topic/sim-sns-topic-arn.js.map +1 -0
  674. package/dist/service/sns/topic/sim-sns-topic-attribute-names.d.ts +19 -0
  675. package/dist/service/sns/topic/sim-sns-topic-attribute-names.d.ts.map +1 -0
  676. package/dist/service/sns/topic/sim-sns-topic-attribute-names.js +79 -0
  677. package/dist/service/sns/topic/sim-sns-topic-attribute-names.js.map +1 -0
  678. package/dist/service/sns/topic/sim-sns-topic-attributes.d.ts +56 -0
  679. package/dist/service/sns/topic/sim-sns-topic-attributes.d.ts.map +1 -0
  680. package/dist/service/sns/topic/sim-sns-topic-attributes.js +85 -0
  681. package/dist/service/sns/topic/sim-sns-topic-attributes.js.map +1 -0
  682. package/dist/service/sns/topic/sim-sns-topic-name.d.ts +21 -0
  683. package/dist/service/sns/topic/sim-sns-topic-name.d.ts.map +1 -0
  684. package/dist/service/sns/topic/sim-sns-topic-name.js +48 -0
  685. package/dist/service/sns/topic/sim-sns-topic-name.js.map +1 -0
  686. package/dist/service/sns/topic/sim-sns-topic-policy.d.ts +23 -0
  687. package/dist/service/sns/topic/sim-sns-topic-policy.d.ts.map +1 -0
  688. package/dist/service/sns/topic/sim-sns-topic-policy.js +59 -0
  689. package/dist/service/sns/topic/sim-sns-topic-policy.js.map +1 -0
  690. package/dist/service/sns/topic/sim-sns-topic-store.d.ts +35 -0
  691. package/dist/service/sns/topic/sim-sns-topic-store.d.ts.map +1 -0
  692. package/dist/service/sns/topic/sim-sns-topic-store.js +50 -0
  693. package/dist/service/sns/topic/sim-sns-topic-store.js.map +1 -0
  694. package/dist/service/sns/topic/sim-sns-topic.d.ts +48 -0
  695. package/dist/service/sns/topic/sim-sns-topic.d.ts.map +1 -0
  696. package/dist/service/sns/topic/sim-sns-topic.js +80 -0
  697. package/dist/service/sns/topic/sim-sns-topic.js.map +1 -0
  698. package/dist/service/sqs/command/authorize/sim-sqs-authorizer.d.ts +3 -6
  699. package/dist/service/sqs/command/authorize/sim-sqs-authorizer.d.ts.map +1 -1
  700. package/dist/service/sqs/command/authorize/sim-sqs-authorizer.js +13 -7
  701. package/dist/service/sqs/command/authorize/sim-sqs-authorizer.js.map +1 -1
  702. package/dist/service/sqs/index.d.ts +1 -1
  703. package/dist/service/sqs/index.d.ts.map +1 -1
  704. package/dist/service/sqs/index.js +1 -1
  705. package/dist/service/sqs/index.js.map +1 -1
  706. package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts +0 -7
  707. package/dist/service/sqs/queue/sim-sqs-queue-arn.d.ts.map +1 -1
  708. package/dist/service/sqs/queue/sim-sqs-queue-arn.js +0 -9
  709. package/dist/service/sqs/queue/sim-sqs-queue-arn.js.map +1 -1
  710. package/dist/service/sqs/sim-sqs.js +1 -1
  711. package/dist/service/sqs/sim-sqs.js.map +1 -1
  712. package/package.json +7 -1
@@ -0,0 +1,74 @@
1
+ import { assertDefined } from "../../../util/type-guard/defined.js";
2
+ import { SimSnsInvalidParameterException } from "../error/sim-sns.error.js";
3
+ /**
4
+ * Real SNS states the limit as fewer than 100 characters, so a subject of
5
+ * exactly 100 is already too long.
6
+ */
7
+ const maximumCharacters = 100;
8
+ const lastC0Control = 0x1f;
9
+ const firstC1Control = 0x7f;
10
+ const lastC1Control = 0x9f;
11
+ /**
12
+ * Whether a code point is one real SNS refuses in a subject.
13
+ *
14
+ * The refused set is the C0 controls, which is where a line break lives, and
15
+ * delete through the C1 controls. Everything else is allowed, because a subject
16
+ * is UTF-8 text rather than ASCII text: one carrying an accented character or
17
+ * an emoji reaches AWS, so it has to reach this simulation too.
18
+ */
19
+ function isControlCharacter(codePoint) {
20
+ if (codePoint <= lastC0Control) {
21
+ return true;
22
+ }
23
+ return codePoint >= firstC1Control && codePoint <= lastC1Control;
24
+ }
25
+ /**
26
+ * The subject of one published message.
27
+ *
28
+ * Only the email protocols put a subject anywhere a person sees it, and neither
29
+ * is simulated. It is still validated and carried, because it travels in the
30
+ * SNS envelope a queue or a function receives, where a consumer can read it.
31
+ */
32
+ export class SimSnsMessageSubject {
33
+ value;
34
+ constructor(value) {
35
+ this.value = value;
36
+ }
37
+ /**
38
+ * Read the subject a request carries, if it carries one.
39
+ */
40
+ static optional(value) {
41
+ if (value === undefined) {
42
+ return undefined;
43
+ }
44
+ return this.of(value);
45
+ }
46
+ /**
47
+ * Read a subject, refusing one real SNS would refuse.
48
+ */
49
+ static of(value) {
50
+ if (value.length >= maximumCharacters || this.hasControlCharacter(value)) {
51
+ throw new SimSnsInvalidParameterException(`Invalid parameter: Subject: Must be UTF-8 text with no line breaks ` +
52
+ `or control characters, and fewer than ` +
53
+ `${String(maximumCharacters)} characters long`);
54
+ }
55
+ return new this(value);
56
+ }
57
+ /**
58
+ * Whether a subject carries a character real SNS refuses.
59
+ *
60
+ * Iterating a string yields whole code points, so a surrogate pair is one
61
+ * character here rather than two unpaired halves.
62
+ */
63
+ static hasControlCharacter(value) {
64
+ for (const character of value) {
65
+ const codePoint = character.codePointAt(0);
66
+ assertDefined(codePoint, "Every character has a first code point");
67
+ if (isControlCharacter(codePoint)) {
68
+ return true;
69
+ }
70
+ }
71
+ return false;
72
+ }
73
+ }
74
+ //# sourceMappingURL=sim-sns-message-subject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sns-message-subject.js","sourceRoot":"","sources":["../../../../src/service/sns/message/sim-sns-message-subject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAE5E;;;GAGG;AACH,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,IAAI,cAAc,IAAI,SAAS,IAAI,aAAa,CAAC;AACnE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,oBAAoB;IACf,KAAK,CAAS;IAE9B,YAAoB,KAAa;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAyB;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,KAAa;QACrB,IAAI,KAAK,CAAC,MAAM,IAAI,iBAAiB,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,+BAA+B,CACvC,qEAAqE;gBACnE,wCAAwC;gBACxC,GAAG,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CACjD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,mBAAmB,CAAC,KAAa;QAC9C,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAE3C,aAAa,CAAC,SAAS,EAAE,wCAAwC,CAAC,CAAC;YAEnE,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,55 @@
1
+ import type { SimSnsMessageAttributes } from "./sim-sns-message-attributes.js";
2
+ import { SimSnsMessageBody } from "./sim-sns-message-body.js";
3
+ import { SimSnsMessageSubject } from "./sim-sns-message-subject.js";
4
+ /**
5
+ * The largest a published message may be, counting its attributes.
6
+ *
7
+ * Real SNS states the limit as 256 KB for a publish and counts the message
8
+ * attributes against it alongside the body, so both are added up here. The
9
+ * exact accounting AWS uses for an attribute is not documented, so this counts
10
+ * the bytes of each attribute's name, data type and value.
11
+ */
12
+ export declare const simSnsMaximumPublishBytes = 262144;
13
+ /**
14
+ * Refuse a publish weighing more than one message is allowed to.
15
+ *
16
+ * A publish of its own is held to the limit here. A batch is held to the same
17
+ * limit over the whole batch rather than over each entry, so it does its own
18
+ * checking and reports its own error.
19
+ */
20
+ export declare function assertSimSnsMessageWithinLimit(byteSize: number): void;
21
+ /**
22
+ * One message as a publisher describes it, with the request's own wrapping
23
+ * removed.
24
+ */
25
+ export interface SimSnsPublishedMessageInput {
26
+ readonly message: string | undefined;
27
+ readonly subject: string | undefined;
28
+ readonly attributes: SimSnsMessageAttributes;
29
+ }
30
+ /**
31
+ * One message a publish put on a topic.
32
+ *
33
+ * A topic keeps no messages, so nothing holds this after the publish that made
34
+ * it. It exists so that everything a message has to be checked for happens in
35
+ * one place, whether the publish was one of its own or one entry of a batch.
36
+ * The size limit is the one thing left to the caller, because a batch is held
37
+ * to it over the whole batch rather than over each entry.
38
+ */
39
+ export declare class SimSnsPublishedMessage {
40
+ readonly messageId: string;
41
+ readonly body: SimSnsMessageBody;
42
+ readonly subject: SimSnsMessageSubject | undefined;
43
+ readonly attributes: SimSnsMessageAttributes;
44
+ readonly publishedAt: Date;
45
+ private constructor();
46
+ /**
47
+ * Read the message a publish describes, refusing one real SNS would refuse.
48
+ */
49
+ static of(input: SimSnsPublishedMessageInput, publishedAt: Date): SimSnsPublishedMessage;
50
+ /**
51
+ * What this message weighs against the publish size limit.
52
+ */
53
+ get byteSize(): number;
54
+ }
55
+ //# sourceMappingURL=sim-sns-published-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sns-published-message.d.ts","sourceRoot":"","sources":["../../../../src/service/sns/message/sim-sns-published-message.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,SAAU,CAAC;AAEjD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQrE;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;CAC9C;AAUD;;;;;;;;GAQG;AACH,qBAAa,sBAAsB;IACjC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,IAAI,EAAE,iBAAiB,CAAC;IACxC,SAAgB,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC1D,SAAgB,UAAU,EAAE,uBAAuB,CAAC;IACpD,SAAgB,WAAW,EAAE,IAAI,CAAC;IAElC,OAAO,eAMN;IAED;;OAEG;IACH,MAAM,CAAC,EAAE,CACP,KAAK,EAAE,2BAA2B,EAClC,WAAW,EAAE,IAAI,GAChB,sBAAsB,CAQxB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF"}
@@ -0,0 +1,69 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { SimSnsInvalidParameterException } from "../error/sim-sns.error.js";
3
+ import { SimSnsMessageBody } from "./sim-sns-message-body.js";
4
+ import { SimSnsMessageSubject } from "./sim-sns-message-subject.js";
5
+ /**
6
+ * The largest a published message may be, counting its attributes.
7
+ *
8
+ * Real SNS states the limit as 256 KB for a publish and counts the message
9
+ * attributes against it alongside the body, so both are added up here. The
10
+ * exact accounting AWS uses for an attribute is not documented, so this counts
11
+ * the bytes of each attribute's name, data type and value.
12
+ */
13
+ export const simSnsMaximumPublishBytes = 262_144;
14
+ /**
15
+ * Refuse a publish weighing more than one message is allowed to.
16
+ *
17
+ * A publish of its own is held to the limit here. A batch is held to the same
18
+ * limit over the whole batch rather than over each entry, so it does its own
19
+ * checking and reports its own error.
20
+ */
21
+ export function assertSimSnsMessageWithinLimit(byteSize) {
22
+ if (byteSize > simSnsMaximumPublishBytes) {
23
+ throw new SimSnsInvalidParameterException(`Invalid parameter: Message too long. A message and its attributes may ` +
24
+ `be up to ${String(simSnsMaximumPublishBytes)} bytes, and this one ` +
25
+ `is ${String(byteSize)} bytes.`);
26
+ }
27
+ }
28
+ /**
29
+ * One message a publish put on a topic.
30
+ *
31
+ * A topic keeps no messages, so nothing holds this after the publish that made
32
+ * it. It exists so that everything a message has to be checked for happens in
33
+ * one place, whether the publish was one of its own or one entry of a batch.
34
+ * The size limit is the one thing left to the caller, because a batch is held
35
+ * to it over the whole batch rather than over each entry.
36
+ */
37
+ export class SimSnsPublishedMessage {
38
+ messageId;
39
+ body;
40
+ subject;
41
+ attributes;
42
+ publishedAt;
43
+ constructor(properties) {
44
+ this.messageId = properties.messageId;
45
+ this.body = properties.body;
46
+ this.subject = properties.subject;
47
+ this.attributes = properties.attributes;
48
+ this.publishedAt = properties.publishedAt;
49
+ }
50
+ /**
51
+ * Read the message a publish describes, refusing one real SNS would refuse.
52
+ */
53
+ static of(input, publishedAt) {
54
+ return new this({
55
+ messageId: randomUUID(),
56
+ body: SimSnsMessageBody.of(input.message),
57
+ subject: SimSnsMessageSubject.optional(input.subject),
58
+ attributes: input.attributes,
59
+ publishedAt,
60
+ });
61
+ }
62
+ /**
63
+ * What this message weighs against the publish size limit.
64
+ */
65
+ get byteSize() {
66
+ return this.body.byteSize + this.attributes.byteSize;
67
+ }
68
+ }
69
+ //# sourceMappingURL=sim-sns-published-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sns-published-message.js","sourceRoot":"","sources":["../../../../src/service/sns/message/sim-sns-published-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAgB;IAC7D,IAAI,QAAQ,GAAG,yBAAyB,EAAE,CAAC;QACzC,MAAM,IAAI,+BAA+B,CACvC,wEAAwE;YACtE,YAAY,MAAM,CAAC,yBAAyB,CAAC,uBAAuB;YACpE,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,CAClC,CAAC;IACJ,CAAC;AACH,CAAC;AAoBD;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAsB;IACjB,SAAS,CAAS;IAClB,IAAI,CAAoB;IACxB,OAAO,CAAmC;IAC1C,UAAU,CAA0B;IACpC,WAAW,CAAO;IAElC,YAAoB,UAA4C;QAC9D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAE,CACP,KAAkC,EAClC,WAAiB;QAEjB,OAAO,IAAI,IAAI,CAAC;YACd,SAAS,EAAE,UAAU,EAAE;YACvB,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACzC,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YACrD,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IACvD,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { type SimSdkCommandRoute, type SimSdkCommandRouter } from "../../../sdk/index.js";
2
+ import type { SimSns } from "../sim-sns.js";
3
+ /**
4
+ * Routes intercepted SDK Commands to one scoped simulated SNS.
5
+ */
6
+ export declare class SimSnsSdkCommandRouter implements SimSdkCommandRouter {
7
+ private readonly routes;
8
+ constructor(simSns: SimSns);
9
+ /**
10
+ * The SDK Command names simulated SNS can handle.
11
+ */
12
+ supportedCommandNames(): readonly string[];
13
+ /**
14
+ * Get the route for an SDK Command name, if simulated SNS supports it.
15
+ */
16
+ route(commandName: string): SimSdkCommandRoute | undefined;
17
+ }
18
+ //# sourceMappingURL=sim-sns-sdk-command-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sns-sdk-command-router.d.ts","sourceRoot":"","sources":["../../../../src/service/sns/sdk/sim-sns-sdk-command-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAoB/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IAEjE,YAAY,MAAM,EAAE,MAAM,EA2GzB;IAED;;OAEG;IACH,qBAAqB,IAAI,SAAS,MAAM,EAAE,CAEzC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEzD;CACF"}
@@ -0,0 +1,76 @@
1
+ import { simSdkCallerOptions, } from "../../../sdk/index.js";
2
+ /**
3
+ * Routes intercepted SDK Commands to one scoped simulated SNS.
4
+ */
5
+ export class SimSnsSdkCommandRouter {
6
+ routes;
7
+ constructor(simSns) {
8
+ this.routes = new Map([
9
+ [
10
+ "CreateTopicCommand",
11
+ async (command, context) => await simSns.createTopic(command, simSdkCallerOptions(context)),
12
+ ],
13
+ [
14
+ "ListTopicsCommand",
15
+ async (command, context) => await simSns.listTopics(command, simSdkCallerOptions(context)),
16
+ ],
17
+ [
18
+ "DeleteTopicCommand",
19
+ async (command, context) => await simSns.deleteTopic(command, simSdkCallerOptions(context)),
20
+ ],
21
+ [
22
+ "GetTopicAttributesCommand",
23
+ async (command, context) => await simSns.getTopicAttributes(command, simSdkCallerOptions(context)),
24
+ ],
25
+ [
26
+ "SetTopicAttributesCommand",
27
+ async (command, context) => await simSns.setTopicAttributes(command, simSdkCallerOptions(context)),
28
+ ],
29
+ [
30
+ "SubscribeCommand",
31
+ async (command, context) => await simSns.subscribe(command, simSdkCallerOptions(context)),
32
+ ],
33
+ [
34
+ "UnsubscribeCommand",
35
+ async (command, context) => await simSns.unsubscribe(command, simSdkCallerOptions(context)),
36
+ ],
37
+ [
38
+ "ListSubscriptionsCommand",
39
+ async (command, context) => await simSns.listSubscriptions(command, simSdkCallerOptions(context)),
40
+ ],
41
+ [
42
+ "ListSubscriptionsByTopicCommand",
43
+ async (command, context) => await simSns.listSubscriptionsByTopic(command, simSdkCallerOptions(context)),
44
+ ],
45
+ [
46
+ "GetSubscriptionAttributesCommand",
47
+ async (command, context) => await simSns.getSubscriptionAttributes(command, simSdkCallerOptions(context)),
48
+ ],
49
+ [
50
+ "SetSubscriptionAttributesCommand",
51
+ async (command, context) => await simSns.setSubscriptionAttributes(command, simSdkCallerOptions(context)),
52
+ ],
53
+ [
54
+ "PublishCommand",
55
+ async (command, context) => await simSns.publish(command, simSdkCallerOptions(context)),
56
+ ],
57
+ [
58
+ "PublishBatchCommand",
59
+ async (command, context) => await simSns.publishBatch(command, simSdkCallerOptions(context)),
60
+ ],
61
+ ]);
62
+ }
63
+ /**
64
+ * The SDK Command names simulated SNS can handle.
65
+ */
66
+ supportedCommandNames() {
67
+ return this.routes.keys().toArray();
68
+ }
69
+ /**
70
+ * Get the route for an SDK Command name, if simulated SNS supports it.
71
+ */
72
+ route(commandName) {
73
+ return this.routes.get(commandName);
74
+ }
75
+ }
76
+ //# sourceMappingURL=sim-sns-sdk-command-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sns-sdk-command-router.js","sourceRoot":"","sources":["../../../../src/service/sns/sdk/sim-sns-sdk-command-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { KeyObject } from "node:crypto";
2
+ interface SimSnsCertificateInput {
3
+ readonly privateKey: KeyObject;
4
+ readonly publicKey: KeyObject;
5
+ readonly subjectName: string;
6
+ readonly serialNumber: Buffer;
7
+ }
8
+ /**
9
+ * Build a self-signed X.509 certificate for a key pair, as PEM.
10
+ *
11
+ * It is the smallest certificate that is still a certificate: a version, a
12
+ * serial number, one common name as both issuer and subject, a validity window,
13
+ * the public key, and an RSA signature over all of it. There are no extensions,
14
+ * because nothing verifying an SNS message looks at any.
15
+ */
16
+ export declare function simSnsSelfSignedCertificatePem(input: SimSnsCertificateInput): string;
17
+ /**
18
+ * Read a certificate serial number out of a digest of the public key.
19
+ *
20
+ * A real certificate authority allocates serial numbers. Nothing here has one
21
+ * to allocate, and a serial derived from the key is unique in the only way that
22
+ * matters: two simulated scopes with different keys have different serials.
23
+ *
24
+ * The top bit of the first byte is cleared, because a certificate serial number
25
+ * has to be positive and a DER integer is signed. Clearing it is one byte of
26
+ * uniqueness given up for a serial that never needs a leading zero.
27
+ */
28
+ export declare function simSnsSerialNumber(digest: Buffer): Buffer;
29
+ export {};
30
+ //# sourceMappingURL=sim-sns-certificate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sns-certificate.d.ts","sourceRoot":"","sources":["../../../../src/service/sns/signature/sim-sns-certificate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA6D7C,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAuED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,sBAAsB,GAC5B,MAAM,CAaR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMzD"}
@@ -0,0 +1,110 @@
1
+ import { createSign } from "node:crypto";
2
+ import { derBitStringTag, derBytes, derExplicitZeroTag, derIntegerTag, derNullTag, derObjectIdentifierTag, derPrintableStringTag, derSequenceTag, derSetTag, derText, derUtcTimeTag, derValue, } from "./sim-sns-der.js";
3
+ /**
4
+ * The body bytes of the sha1WithRSAEncryption object identifier,
5
+ * 1.2.840.113549.1.1.5.
6
+ *
7
+ * This is the algorithm signature version 1 names, which is the version real
8
+ * SNS signs with unless a topic opts into version 2.
9
+ */
10
+ const sha1WithRsaEncryption = [
11
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05,
12
+ ];
13
+ /**
14
+ * The body bytes of the commonName object identifier, 2.5.4.3.
15
+ */
16
+ const commonName = [0x55, 0x04, 0x03];
17
+ /**
18
+ * The version number of an X.509 v3 certificate, which counts from zero.
19
+ */
20
+ const version3 = 2;
21
+ /**
22
+ * When the certificate becomes valid, and when it stops being valid.
23
+ *
24
+ * Both are fixed rather than taken from the clock, so the same key always
25
+ * produces the same certificate and nothing in a test suite depends on when it
26
+ * ran. The end is before 2050 because a certificate valid past then cannot use
27
+ * the UTCTime encoding, and nothing here is a real trust anchor that ought to
28
+ * expire.
29
+ */
30
+ const notBefore = new Date("2000-01-01T00:00:00.000Z");
31
+ const notAfter = new Date("2049-12-31T23:59:59.000Z");
32
+ /**
33
+ * How many bytes of the public key digest become the serial number.
34
+ */
35
+ const serialNumberBytes = 8;
36
+ /**
37
+ * How many base64 characters a PEM document puts on one line.
38
+ */
39
+ const pemLineLength = 64;
40
+ /**
41
+ * A UTCTime, which is the two digit year form certificates date things with.
42
+ *
43
+ * Two digits means the year has to be before 2050, which is what X.509 says: a
44
+ * certificate valid past then carries a GeneralizedTime instead.
45
+ */
46
+ function utcTime(instant) {
47
+ const digits = instant.toISOString().replaceAll(/\D/gu, "");
48
+ return derText(derUtcTimeTag, `${digits.slice(2, 14)}Z`);
49
+ }
50
+ /**
51
+ * Wrap DER bytes as the PEM document a verifier reads.
52
+ */
53
+ function toPem(der) {
54
+ const base64 = der.toString("base64");
55
+ const lines = Array.from({ length: Math.ceil(base64.length / pemLineLength) }, (_unused, index) => base64.slice(index * pemLineLength, (index + 1) * pemLineLength));
56
+ return `-----BEGIN CERTIFICATE-----\n${lines.join("\n")}\n-----END CERTIFICATE-----\n`;
57
+ }
58
+ /**
59
+ * The algorithm identifier both the certificate body and its signature carry.
60
+ */
61
+ function signatureAlgorithm() {
62
+ return derValue(derSequenceTag, derBytes(derObjectIdentifierTag, ...sha1WithRsaEncryption), derValue(derNullTag));
63
+ }
64
+ /**
65
+ * An X.509 Name carrying one common name, which is all this certificate needs.
66
+ */
67
+ function distinguishedName(name) {
68
+ const attribute = derValue(derSequenceTag, derBytes(derObjectIdentifierTag, ...commonName), derText(derPrintableStringTag, name));
69
+ return derValue(derSequenceTag, derValue(derSetTag, attribute));
70
+ }
71
+ /**
72
+ * The part of a certificate that is signed.
73
+ */
74
+ function certificateBody(input) {
75
+ const name = distinguishedName(input.subjectName);
76
+ return derValue(derSequenceTag, derValue(derExplicitZeroTag, derBytes(derIntegerTag, version3)), derValue(derIntegerTag, input.serialNumber), signatureAlgorithm(), name, derValue(derSequenceTag, utcTime(notBefore), utcTime(notAfter)),
77
+ // Self-signed, so the issuer and the subject are the same Name.
78
+ name, input.publicKey.export({ type: "spki", format: "der" }));
79
+ }
80
+ /**
81
+ * Build a self-signed X.509 certificate for a key pair, as PEM.
82
+ *
83
+ * It is the smallest certificate that is still a certificate: a version, a
84
+ * serial number, one common name as both issuer and subject, a validity window,
85
+ * the public key, and an RSA signature over all of it. There are no extensions,
86
+ * because nothing verifying an SNS message looks at any.
87
+ */
88
+ export function simSnsSelfSignedCertificatePem(input) {
89
+ const body = certificateBody(input);
90
+ const signature = createSign("RSA-SHA1").update(body).sign(input.privateKey);
91
+ const unusedBits = Buffer.from([0]);
92
+ return toPem(derValue(derSequenceTag, body, signatureAlgorithm(), derValue(derBitStringTag, unusedBits, signature)));
93
+ }
94
+ /**
95
+ * Read a certificate serial number out of a digest of the public key.
96
+ *
97
+ * A real certificate authority allocates serial numbers. Nothing here has one
98
+ * to allocate, and a serial derived from the key is unique in the only way that
99
+ * matters: two simulated scopes with different keys have different serials.
100
+ *
101
+ * The top bit of the first byte is cleared, because a certificate serial number
102
+ * has to be positive and a DER integer is signed. Clearing it is one byte of
103
+ * uniqueness given up for a serial that never needs a leading zero.
104
+ */
105
+ export function simSnsSerialNumber(digest) {
106
+ const serial = Buffer.from(digest.subarray(0, serialNumberBytes));
107
+ serial.writeUInt8(serial.readUInt8(0) & 0x7f, 0);
108
+ return serial;
109
+ }
110
+ //# sourceMappingURL=sim-sns-certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sns-certificate.js","sourceRoot":"","sources":["../../../../src/service/sns/signature/sim-sns-certificate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * The little bit of DER writing a self-signed certificate needs.
3
+ *
4
+ * Node's `crypto` reads an X.509 certificate but does not write one, and the
5
+ * signature a simulated SNS message carries is only useful if a verifier can
6
+ * check it against a certificate. So the certificate is assembled by hand, and
7
+ * this is the encoding it is assembled with: every ASN.1 value is a tag, a
8
+ * length and a body, and that is the whole of what is here.
9
+ *
10
+ * The tags are exported alongside it because the shapes X.509 uses are the
11
+ * caller's business rather than this module's. It is not a general ASN.1
12
+ * encoder and does not try to be one.
13
+ */
14
+ export declare const derSequenceTag = 48;
15
+ export declare const derSetTag = 49;
16
+ export declare const derIntegerTag = 2;
17
+ export declare const derBitStringTag = 3;
18
+ export declare const derNullTag = 5;
19
+ export declare const derObjectIdentifierTag = 6;
20
+ export declare const derPrintableStringTag = 19;
21
+ export declare const derUtcTimeTag = 23;
22
+ /**
23
+ * The tag of an explicitly tagged context specific zero, which is how a
24
+ * certificate carries its version.
25
+ */
26
+ export declare const derExplicitZeroTag = 160;
27
+ /**
28
+ * One ASN.1 value: a tag, the length of what follows, and what follows.
29
+ */
30
+ export declare function derValue(tag: number, ...contents: Buffer[]): Buffer;
31
+ /**
32
+ * A DER value holding ASCII text, which is what a common name and a UTCTime
33
+ * both are.
34
+ */
35
+ export declare function derText(tag: number, value: string): Buffer;
36
+ /**
37
+ * A DER value holding bytes given one at a time.
38
+ */
39
+ export declare function derBytes(tag: number, ...bytes: number[]): Buffer;
40
+ //# sourceMappingURL=sim-sns-der.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sns-der.d.ts","sourceRoot":"","sources":["../../../../src/service/sns/signature/sim-sns-der.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,cAAc,KAAO,CAAC;AAEnC,eAAO,MAAM,SAAS,KAAO,CAAC;AAE9B,eAAO,MAAM,aAAa,IAAO,CAAC;AAElC,eAAO,MAAM,eAAe,IAAO,CAAC;AAEpC,eAAO,MAAM,UAAU,IAAO,CAAC;AAE/B,eAAO,MAAM,sBAAsB,IAAO,CAAC;AAE3C,eAAO,MAAM,qBAAqB,KAAO,CAAC;AAE1C,eAAO,MAAM,aAAa,KAAO,CAAC;AAElC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,MAAO,CAAC;AAwBvC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAInE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAEhE"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * The little bit of DER writing a self-signed certificate needs.
3
+ *
4
+ * Node's `crypto` reads an X.509 certificate but does not write one, and the
5
+ * signature a simulated SNS message carries is only useful if a verifier can
6
+ * check it against a certificate. So the certificate is assembled by hand, and
7
+ * this is the encoding it is assembled with: every ASN.1 value is a tag, a
8
+ * length and a body, and that is the whole of what is here.
9
+ *
10
+ * The tags are exported alongside it because the shapes X.509 uses are the
11
+ * caller's business rather than this module's. It is not a general ASN.1
12
+ * encoder and does not try to be one.
13
+ */
14
+ export const derSequenceTag = 0x30;
15
+ export const derSetTag = 0x31;
16
+ export const derIntegerTag = 0x02;
17
+ export const derBitStringTag = 0x03;
18
+ export const derNullTag = 0x05;
19
+ export const derObjectIdentifierTag = 0x06;
20
+ export const derPrintableStringTag = 0x13;
21
+ export const derUtcTimeTag = 0x17;
22
+ /**
23
+ * The tag of an explicitly tagged context specific zero, which is how a
24
+ * certificate carries its version.
25
+ */
26
+ export const derExplicitZeroTag = 0xa0;
27
+ /**
28
+ * The largest length DER writes in the length byte itself.
29
+ */
30
+ const shortFormLimit = 0x80;
31
+ /**
32
+ * Encode a length in DER's short or long form.
33
+ */
34
+ function derLength(length) {
35
+ if (length < shortFormLimit) {
36
+ return Buffer.from([length]);
37
+ }
38
+ const bytes = [];
39
+ for (let rest = length; rest > 0; rest = Math.floor(rest / 256)) {
40
+ bytes.unshift(rest % 256);
41
+ }
42
+ return Buffer.from([shortFormLimit | bytes.length, ...bytes]);
43
+ }
44
+ /**
45
+ * One ASN.1 value: a tag, the length of what follows, and what follows.
46
+ */
47
+ export function derValue(tag, ...contents) {
48
+ const body = Buffer.concat(contents);
49
+ return Buffer.concat([Buffer.from([tag]), derLength(body.length), body]);
50
+ }
51
+ /**
52
+ * A DER value holding ASCII text, which is what a common name and a UTCTime
53
+ * both are.
54
+ */
55
+ export function derText(tag, value) {
56
+ return derValue(tag, Buffer.from(value, "ascii"));
57
+ }
58
+ /**
59
+ * A DER value holding bytes given one at a time.
60
+ */
61
+ export function derBytes(tag, ...bytes) {
62
+ return derValue(tag, Buffer.from(bytes));
63
+ }
64
+ //# sourceMappingURL=sim-sns-der.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sns-der.js","sourceRoot":"","sources":["../../../../src/service/sns/signature/sim-sns-der.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAEnC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAE9B,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAE/B,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC;;GAEG;AACH,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;;GAEG;AACH,SAAS,SAAS,CAAC,MAAc;IAC/B,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,IAAI,IAAI,GAAG,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QAChE,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,GAAG,QAAkB;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAErC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,KAAa;IAChD,OAAO,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,GAAG,KAAe;IACtD,OAAO,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The hostname the URLs in a delivered message name.
3
+ *
4
+ * Real SNS puts `sns.<region>.amazonaws.com` in the `SigningCertURL` and the
5
+ * `UnsubscribeURL` of every message it delivers. A simulated message names
6
+ * `sns.<region>.yulin.invalid` instead, because neither URL can be fetched:
7
+ * simulated SNS is not served over HTTP, and the certificate is handed out
8
+ * in process by `SimSns.signingCertificate`.
9
+ *
10
+ * `.invalid` is the reserved top level domain for exactly this. A consumer that
11
+ * does try to fetch one of these URLs fails to resolve it, rather than reaching
12
+ * real AWS and being answered by a certificate that signed nothing here.
13
+ *
14
+ * This is a divergence a real signature verifier notices. `sns-validator`
15
+ * hard-codes an `amazonaws.com` certificate host and fetches the URL itself, so
16
+ * it cannot verify a simulated message as it stands. Verifying one means
17
+ * checking the signature against the certificate `SimSns.signingCertificate`
18
+ * hands over, which is what the docs show.
19
+ */
20
+ export declare function simSnsHost(regionName: string): string;
21
+ /**
22
+ * The URL a delivered message names to say how to stop receiving them.
23
+ *
24
+ * Real SNS carries this in every envelope, and it is the same shape here with
25
+ * the simulated host in front of it.
26
+ */
27
+ export declare function simSnsUnsubscribeUrl(regionName: string, subscriptionArn: string): string;
28
+ //# sourceMappingURL=sim-sns-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sns-host.d.ts","sourceRoot":"","sources":["../../../../src/service/sns/signature/sim-sns-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,GACtB,MAAM,CAKR"}