@bitblit/ratchet-aws 4.0.98-alpha → 4.0.102-alpha

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 (293) hide show
  1. package/dist/{types/batch → batch}/aws-batch-background-processor.d.ts +1 -5
  2. package/dist/{es/batch → batch}/aws-batch-background-processor.js +6 -1
  3. package/dist/batch/aws-batch-background-processor.spec.js +15 -0
  4. package/dist/{types/batch → batch}/aws-batch-ratchet.d.ts +0 -3
  5. package/dist/{es/batch → batch}/aws-batch-ratchet.js +5 -1
  6. package/dist/batch/aws-batch-ratchet.spec.js +33 -0
  7. package/dist/{types/build → build}/ratchet-aws-info.d.ts +1 -1
  8. package/dist/{types/cache → cache}/dynamo-db-storage-provider.d.ts +3 -3
  9. package/dist/{es/cache → cache}/dynamo-db-storage-provider.js +3 -1
  10. package/dist/{types/cache → cache}/s3-storage-provider.d.ts +3 -3
  11. package/dist/{es/cache → cache}/s3-storage-provider.js +4 -1
  12. package/dist/{types/cache → cache}/simple-cache-storage-provider.d.ts +1 -1
  13. package/dist/{types/cache → cache}/simple-cache.d.ts +3 -3
  14. package/dist/{es/cache → cache}/simple-cache.js +4 -2
  15. package/dist/cache/simple-cache.spec.js +67 -0
  16. package/dist/{es/cloudwatch → cloudwatch}/cloud-watch-log-group-ratchet.js +4 -2
  17. package/dist/cloudwatch/cloud-watch-log-group-ratchet.spec.js +19 -0
  18. package/dist/{es/cloudwatch → cloudwatch}/cloud-watch-logs-ratchet.js +6 -5
  19. package/dist/cloudwatch/cloud-watch-logs-ratchet.spec.js +84 -0
  20. package/dist/{types/cloudwatch → cloudwatch}/cloud-watch-metrics-ratchet.d.ts +3 -3
  21. package/dist/{es/cloudwatch → cloudwatch}/cloud-watch-metrics-ratchet.js +3 -2
  22. package/dist/cloudwatch/cloud-watch-metrics-ratchet.spec.js +23 -0
  23. package/dist/{types/daemon → daemon}/daemon-like.d.ts +3 -3
  24. package/dist/{types/daemon → daemon}/daemon-process-state-public-token.d.ts +1 -1
  25. package/dist/{types/daemon → daemon}/daemon-util.d.ts +5 -11
  26. package/dist/{es/daemon → daemon}/daemon-util.js +3 -3
  27. package/dist/daemon/daemon-util.spec.d.ts +4 -0
  28. package/dist/daemon/daemon-util.spec.js +79 -0
  29. package/dist/{types/daemon → daemon}/daemon.d.ts +5 -5
  30. package/dist/{es/daemon → daemon}/daemon.js +12 -6
  31. package/dist/{types/dao → dao}/prototype-dao-provider.d.ts +1 -1
  32. package/dist/{types/dao → dao}/prototype-dao.d.ts +2 -2
  33. package/dist/{es/dao → dao}/prototype-dao.js +5 -1
  34. package/dist/dao/prototype-dao.spec.d.ts +8 -0
  35. package/dist/dao/prototype-dao.spec.js +26 -0
  36. package/dist/{types/dao → dao}/s3-prototype-dao-provider.d.ts +3 -3
  37. package/dist/{es/dao → dao}/s3-prototype-dao-provider.js +3 -1
  38. package/dist/{types/dao → dao}/s3-simple-dao.d.ts +2 -2
  39. package/dist/{es/dao → dao}/s3-simple-dao.js +4 -2
  40. package/dist/{types/dynamodb → dynamodb}/dynamo-ratchet-like.d.ts +3 -3
  41. package/dist/{types/dynamodb → dynamodb}/dynamo-ratchet.d.ts +4 -4
  42. package/dist/{es/dynamodb → dynamodb}/dynamo-ratchet.js +7 -6
  43. package/dist/dynamodb/dynamo-ratchet.spec.js +156 -0
  44. package/dist/{es/dynamodb → dynamodb}/dynamo-table-ratchet.js +5 -4
  45. package/dist/{es/dynamodb → dynamodb}/hash-spreader.js +8 -1
  46. package/dist/dynamodb/hash-spreader.spec.js +17 -0
  47. package/dist/{types/ec2 → ec2}/ec2-ratchet.d.ts +0 -11
  48. package/dist/{es/ec2 → ec2}/ec2-ratchet.js +7 -3
  49. package/dist/ec2/ec2-ratchet.spec.js +31 -0
  50. package/dist/{types/environment → environment}/cascade-environment-service-provider.d.ts +1 -4
  51. package/dist/{es/environment → environment}/cascade-environment-service-provider.js +3 -2
  52. package/dist/{types/environment → environment}/env-var-environment-service-provider.d.ts +1 -5
  53. package/dist/{es/environment → environment}/env-var-environment-service-provider.js +5 -4
  54. package/dist/{types/environment → environment}/environment-service-config.d.ts +0 -3
  55. package/dist/environment/environment-service-provider.d.ts +3 -0
  56. package/dist/{types/environment → environment}/environment-service.d.ts +2 -5
  57. package/dist/{es/environment → environment}/environment-service.js +7 -5
  58. package/dist/environment/environment-service.spec.js +22 -0
  59. package/dist/{types/environment → environment}/fixed-environment-service-provider.d.ts +1 -4
  60. package/dist/{es/environment → environment}/fixed-environment-service-provider.js +3 -2
  61. package/dist/{types/environment → environment}/s3-environment-service-provider.d.ts +1 -4
  62. package/dist/{es/environment → environment}/s3-environment-service-provider.js +7 -5
  63. package/dist/{types/environment → environment}/ssm-environment-service-provider.d.ts +1 -5
  64. package/dist/{es/environment → environment}/ssm-environment-service-provider.js +9 -6
  65. package/dist/{types/expiring-code → expiring-code}/dynamo-expiring-code-provider.d.ts +4 -4
  66. package/dist/{es/expiring-code → expiring-code}/dynamo-expiring-code-provider.js +2 -0
  67. package/dist/{types/expiring-code → expiring-code}/expiring-code-provider.d.ts +1 -1
  68. package/dist/{types/expiring-code → expiring-code}/expiring-code-ratchet.d.ts +3 -6
  69. package/dist/{es/expiring-code → expiring-code}/expiring-code-ratchet.js +3 -2
  70. package/dist/expiring-code/expiring-code-ratchet.spec.js +7 -0
  71. package/dist/{types/expiring-code → expiring-code}/s3-expiring-code-provider.d.ts +3 -3
  72. package/dist/{es/expiring-code → expiring-code}/s3-expiring-code-provider.js +4 -1
  73. package/dist/expiring-code/s3-expiring-code-provider.spec.js +46 -0
  74. package/dist/{types/iam → iam}/aws-credentials-ratchet.d.ts +0 -5
  75. package/dist/{es/iam → iam}/aws-credentials-ratchet.js +2 -1
  76. package/dist/{es/lambda → lambda}/lambda-event-type-guards.js +1 -1
  77. package/dist/{types/model → model}/cloud-watch-metrics-minute-level-dynamo-count-request.d.ts +2 -2
  78. package/dist/model/dynamo/doc-put-item-command-input.js +1 -0
  79. package/dist/model/dynamo/doc-query-command-input.js +1 -0
  80. package/dist/model/dynamo/doc-scan-command-input.js +1 -0
  81. package/dist/model/dynamo/doc-update-item-command-input.js +1 -0
  82. package/dist/{es/route53 → route53}/route-53-ratchet.js +3 -1
  83. package/dist/{types/runtime-parameter → runtime-parameter}/cached-stored-runtime-parameter.d.ts +1 -1
  84. package/dist/runtime-parameter/cached-stored-runtime-parameter.js +1 -0
  85. package/dist/{types/runtime-parameter → runtime-parameter}/dynamo-runtime-parameter-provider.d.ts +3 -3
  86. package/dist/{es/runtime-parameter → runtime-parameter}/dynamo-runtime-parameter-provider.js +4 -2
  87. package/dist/runtime-parameter/dynamo-runtime-parameter-provider.spec.d.ts +1 -0
  88. package/dist/runtime-parameter/dynamo-runtime-parameter-provider.spec.js +49 -0
  89. package/dist/{types/runtime-parameter → runtime-parameter}/global-variable-override-runtime-parameter-provider.d.ts +2 -9
  90. package/dist/{es/runtime-parameter → runtime-parameter}/global-variable-override-runtime-parameter-provider.js +10 -8
  91. package/dist/runtime-parameter/global-variable-override-runtime-parameter-provider.spec.d.ts +1 -0
  92. package/dist/runtime-parameter/global-variable-override-runtime-parameter-provider.spec.js +37 -0
  93. package/dist/{types/runtime-parameter → runtime-parameter}/memory-runtime-parameter-provider.d.ts +2 -6
  94. package/dist/{es/runtime-parameter → runtime-parameter}/memory-runtime-parameter-provider.js +2 -1
  95. package/dist/{types/runtime-parameter → runtime-parameter}/runtime-parameter-provider.d.ts +1 -6
  96. package/dist/runtime-parameter/runtime-parameter-provider.js +1 -0
  97. package/dist/{types/runtime-parameter → runtime-parameter}/runtime-parameter-ratchet.d.ts +2 -2
  98. package/dist/{es/runtime-parameter → runtime-parameter}/runtime-parameter-ratchet.js +4 -3
  99. package/dist/runtime-parameter/runtime-parameter-ratchet.spec.d.ts +1 -0
  100. package/dist/runtime-parameter/runtime-parameter-ratchet.spec.js +39 -0
  101. package/dist/runtime-parameter/stored-runtime-parameter.js +1 -0
  102. package/dist/{types/s3 → s3}/s3-cache-ratchet.d.ts +3 -4
  103. package/dist/{es/s3 → s3}/s3-cache-ratchet.js +7 -5
  104. package/dist/s3/s3-cache-ratchet.spec.d.ts +1 -0
  105. package/dist/s3/s3-cache-ratchet.spec.js +97 -0
  106. package/dist/{types/s3 → s3}/s3-cache-to-local-disk-ratchet.d.ts +2 -5
  107. package/dist/{es/s3 → s3}/s3-cache-to-local-disk-ratchet.js +8 -3
  108. package/dist/s3/s3-cache-to-local-dist-ratchet.spec.d.ts +1 -0
  109. package/dist/s3/s3-cache-to-local-dist-ratchet.spec.js +22 -0
  110. package/dist/{es/s3 → s3}/s3-location-sync-ratchet.js +4 -1
  111. package/dist/{es/s3 → s3}/s3-ratchet.js +1 -1
  112. package/dist/s3/s3-ratchet.spec.d.ts +1 -0
  113. package/dist/s3/s3-ratchet.spec.js +20 -0
  114. package/dist/ses/email-attachment.d.ts +5 -0
  115. package/dist/ses/email-attachment.js +1 -0
  116. package/dist/{types/ses → ses}/mailer-config.d.ts +2 -5
  117. package/dist/ses/mailer-config.js +1 -0
  118. package/dist/{types/ses → ses}/mailer-like.d.ts +2 -9
  119. package/dist/ses/mailer-like.js +1 -0
  120. package/dist/{types/ses → ses}/mailer.d.ts +4 -11
  121. package/dist/{es/ses → ses}/mailer.js +8 -6
  122. package/dist/ses/mailer.spec.d.ts +1 -0
  123. package/dist/ses/mailer.spec.js +104 -0
  124. package/dist/{types/ses → ses}/ratchet-template-renderer.d.ts +0 -4
  125. package/dist/ses/ratchet-template-renderer.js +1 -0
  126. package/dist/ses/ready-to-send-email.d.ts +13 -0
  127. package/dist/ses/ready-to-send-email.js +1 -0
  128. package/dist/{types/ses → ses}/remote-handlebars-template-renderer.d.ts +1 -3
  129. package/dist/{es/ses → ses}/remote-handlebars-template-renderer.js +6 -2
  130. package/dist/ses/resolved-ready-to-send-email.d.ts +5 -0
  131. package/dist/ses/resolved-ready-to-send-email.js +1 -0
  132. package/dist/{es/sns → sns}/sns-ratchet.js +4 -2
  133. package/dist/sns/sns-ratchet.spec.d.ts +1 -0
  134. package/dist/sns/sns-ratchet.spec.js +17 -0
  135. package/dist/{types/sync-lock → sync-lock}/dynamo-db-sync-lock.d.ts +2 -2
  136. package/dist/{es/sync-lock → sync-lock}/dynamo-db-sync-lock.js +5 -1
  137. package/dist/sync-lock/dynamo-db-sync-lock.spec.d.ts +1 -0
  138. package/dist/sync-lock/dynamo-db-sync-lock.spec.js +30 -0
  139. package/dist/{types/sync-lock → sync-lock}/memory-sync-lock.d.ts +1 -4
  140. package/dist/{es/sync-lock → sync-lock}/memory-sync-lock.js +3 -4
  141. package/dist/sync-lock/sync-lock-provider.js +1 -0
  142. package/package.json +50 -51
  143. package/dist/cjs/batch/aws-batch-background-processor.js +0 -44
  144. package/dist/cjs/batch/aws-batch-ratchet.js +0 -55
  145. package/dist/cjs/build/ratchet-aws-info.js +0 -18
  146. package/dist/cjs/cache/dynamo-db-storage-provider.js +0 -111
  147. package/dist/cjs/cache/s3-storage-provider.js +0 -44
  148. package/dist/cjs/cache/simple-cache-object-wrapper.js +0 -2
  149. package/dist/cjs/cache/simple-cache-read-options.js +0 -2
  150. package/dist/cjs/cache/simple-cache-storage-provider.js +0 -2
  151. package/dist/cjs/cache/simple-cache.js +0 -66
  152. package/dist/cjs/cloudwatch/cloud-watch-log-group-ratchet.js +0 -73
  153. package/dist/cjs/cloudwatch/cloud-watch-logs-ratchet.js +0 -173
  154. package/dist/cjs/cloudwatch/cloud-watch-metrics-ratchet.js +0 -57
  155. package/dist/cjs/daemon/daemon-like.js +0 -2
  156. package/dist/cjs/daemon/daemon-process-create-options.js +0 -2
  157. package/dist/cjs/daemon/daemon-process-state-public-token.js +0 -2
  158. package/dist/cjs/daemon/daemon-process-state.js +0 -2
  159. package/dist/cjs/daemon/daemon-util.js +0 -152
  160. package/dist/cjs/daemon/daemon.js +0 -126
  161. package/dist/cjs/dao/prototype-dao-config.js +0 -2
  162. package/dist/cjs/dao/prototype-dao-db.js +0 -2
  163. package/dist/cjs/dao/prototype-dao-provider.js +0 -2
  164. package/dist/cjs/dao/prototype-dao.js +0 -88
  165. package/dist/cjs/dao/s3-prototype-dao-provider.js +0 -28
  166. package/dist/cjs/dao/s3-simple-dao.js +0 -78
  167. package/dist/cjs/dao/simple-dao-item.js +0 -2
  168. package/dist/cjs/dynamodb/dynamo-ratchet-like.js +0 -2
  169. package/dist/cjs/dynamodb/dynamo-ratchet.js +0 -667
  170. package/dist/cjs/dynamodb/dynamo-table-ratchet.js +0 -91
  171. package/dist/cjs/dynamodb/hash-spreader.js +0 -62
  172. package/dist/cjs/ec2/ec2-ratchet.js +0 -107
  173. package/dist/cjs/environment/cascade-environment-service-provider.js +0 -27
  174. package/dist/cjs/environment/env-var-environment-service-provider.js +0 -33
  175. package/dist/cjs/environment/environment-service-config.js +0 -2
  176. package/dist/cjs/environment/environment-service-provider.js +0 -2
  177. package/dist/cjs/environment/environment-service.js +0 -52
  178. package/dist/cjs/environment/fixed-environment-service-provider.js +0 -24
  179. package/dist/cjs/environment/s3-environment-service-provider.js +0 -29
  180. package/dist/cjs/environment/ssm-environment-service-provider.js +0 -61
  181. package/dist/cjs/expiring-code/dynamo-expiring-code-provider.js +0 -26
  182. package/dist/cjs/expiring-code/expiring-code-params.js +0 -2
  183. package/dist/cjs/expiring-code/expiring-code-provider.js +0 -2
  184. package/dist/cjs/expiring-code/expiring-code-ratchet.js +0 -37
  185. package/dist/cjs/expiring-code/expiring-code.js +0 -2
  186. package/dist/cjs/expiring-code/s3-expiring-code-provider.js +0 -49
  187. package/dist/cjs/iam/aws-credentials-ratchet.js +0 -21
  188. package/dist/cjs/index.js +0 -81
  189. package/dist/cjs/lambda/lambda-event-detector.js +0 -42
  190. package/dist/cjs/lambda/lambda-event-type-guards.js +0 -28
  191. package/dist/cjs/model/cloud-watch-metrics-minute-level-dynamo-count-request.js +0 -2
  192. package/dist/cjs/model/cloud-watch-metrics-unit.js +0 -33
  193. package/dist/cjs/model/dynamo/doc-put-item-command-input.js +0 -2
  194. package/dist/cjs/model/dynamo/doc-query-command-input.js +0 -2
  195. package/dist/cjs/model/dynamo/doc-scan-command-input.js +0 -2
  196. package/dist/cjs/model/dynamo/doc-update-item-command-input.js +0 -2
  197. package/dist/cjs/model/dynamo-count-result.js +0 -2
  198. package/dist/cjs/route53/route-53-ratchet.js +0 -57
  199. package/dist/cjs/runtime-parameter/cached-stored-runtime-parameter.js +0 -2
  200. package/dist/cjs/runtime-parameter/dynamo-runtime-parameter-provider.js +0 -38
  201. package/dist/cjs/runtime-parameter/global-variable-override-runtime-parameter-provider.js +0 -54
  202. package/dist/cjs/runtime-parameter/memory-runtime-parameter-provider.js +0 -30
  203. package/dist/cjs/runtime-parameter/runtime-parameter-provider.js +0 -2
  204. package/dist/cjs/runtime-parameter/runtime-parameter-ratchet.js +0 -74
  205. package/dist/cjs/runtime-parameter/stored-runtime-parameter.js +0 -2
  206. package/dist/cjs/s3/s3-cache-ratchet.js +0 -332
  207. package/dist/cjs/s3/s3-cache-to-local-disk-ratchet.js +0 -105
  208. package/dist/cjs/s3/s3-location-sync-ratchet.js +0 -142
  209. package/dist/cjs/s3/s3-ratchet.js +0 -26
  210. package/dist/cjs/ses/email-attachment.js +0 -2
  211. package/dist/cjs/ses/mailer-config.js +0 -2
  212. package/dist/cjs/ses/mailer-like.js +0 -2
  213. package/dist/cjs/ses/mailer.js +0 -208
  214. package/dist/cjs/ses/ratchet-template-renderer.js +0 -2
  215. package/dist/cjs/ses/ready-to-send-email.js +0 -2
  216. package/dist/cjs/ses/remote-handlebars-template-renderer.js +0 -79
  217. package/dist/cjs/ses/resolved-ready-to-send-email.js +0 -2
  218. package/dist/cjs/sns/sns-ratchet.js +0 -47
  219. package/dist/cjs/sync-lock/dynamo-db-sync-lock.js +0 -69
  220. package/dist/cjs/sync-lock/memory-sync-lock.js +0 -40
  221. package/dist/cjs/sync-lock/sync-lock-provider.js +0 -2
  222. package/dist/es/index.js +0 -78
  223. package/dist/tsconfig.cjs.tsbuildinfo +0 -1
  224. package/dist/tsconfig.es.tsbuildinfo +0 -1
  225. package/dist/tsconfig.types.tsbuildinfo +0 -1
  226. package/dist/types/environment/environment-service-provider.d.ts +0 -7
  227. package/dist/types/index.d.ts +0 -81
  228. package/dist/types/ses/email-attachment.d.ts +0 -23
  229. package/dist/types/ses/ready-to-send-email.d.ts +0 -66
  230. package/dist/types/ses/resolved-ready-to-send-email.d.ts +0 -16
  231. /package/dist/{es/cache/simple-cache-object-wrapper.js → batch/aws-batch-background-processor.spec.d.ts} +0 -0
  232. /package/dist/{es/cache/simple-cache-read-options.js → batch/aws-batch-ratchet.spec.d.ts} +0 -0
  233. /package/dist/{es/build → build}/ratchet-aws-info.js +0 -0
  234. /package/dist/{types/cache → cache}/simple-cache-object-wrapper.d.ts +0 -0
  235. /package/dist/{es/cache/simple-cache-storage-provider.js → cache/simple-cache-object-wrapper.js} +0 -0
  236. /package/dist/{types/cache → cache}/simple-cache-read-options.d.ts +0 -0
  237. /package/dist/{es/daemon/daemon-like.js → cache/simple-cache-read-options.js} +0 -0
  238. /package/dist/{es/daemon/daemon-process-create-options.js → cache/simple-cache-storage-provider.js} +0 -0
  239. /package/dist/{es/daemon/daemon-process-state-public-token.js → cache/simple-cache.spec.d.ts} +0 -0
  240. /package/dist/{types/cloudwatch → cloudwatch}/cloud-watch-log-group-ratchet.d.ts +0 -0
  241. /package/dist/{es/daemon/daemon-process-state.js → cloudwatch/cloud-watch-log-group-ratchet.spec.d.ts} +0 -0
  242. /package/dist/{types/cloudwatch → cloudwatch}/cloud-watch-logs-ratchet.d.ts +0 -0
  243. /package/dist/{es/dao/prototype-dao-config.js → cloudwatch/cloud-watch-logs-ratchet.spec.d.ts} +0 -0
  244. /package/dist/{es/dao/prototype-dao-db.js → cloudwatch/cloud-watch-metrics-ratchet.spec.d.ts} +0 -0
  245. /package/dist/{es/dao/prototype-dao-provider.js → daemon/daemon-like.js} +0 -0
  246. /package/dist/{types/daemon → daemon}/daemon-process-create-options.d.ts +0 -0
  247. /package/dist/{es/dao/simple-dao-item.js → daemon/daemon-process-create-options.js} +0 -0
  248. /package/dist/{es/dynamodb/dynamo-ratchet-like.js → daemon/daemon-process-state-public-token.js} +0 -0
  249. /package/dist/{types/daemon → daemon}/daemon-process-state.d.ts +0 -0
  250. /package/dist/{es/environment/environment-service-config.js → daemon/daemon-process-state.js} +0 -0
  251. /package/dist/{types/dao → dao}/prototype-dao-config.d.ts +0 -0
  252. /package/dist/{es/environment/environment-service-provider.js → dao/prototype-dao-config.js} +0 -0
  253. /package/dist/{types/dao → dao}/prototype-dao-db.d.ts +0 -0
  254. /package/dist/{es/expiring-code/expiring-code-params.js → dao/prototype-dao-db.js} +0 -0
  255. /package/dist/{es/expiring-code/expiring-code-provider.js → dao/prototype-dao-provider.js} +0 -0
  256. /package/dist/{types/dao → dao}/simple-dao-item.d.ts +0 -0
  257. /package/dist/{es/expiring-code/expiring-code.js → dao/simple-dao-item.js} +0 -0
  258. /package/dist/{es/model/cloud-watch-metrics-minute-level-dynamo-count-request.js → dynamodb/dynamo-ratchet-like.js} +0 -0
  259. /package/dist/{es/model/dynamo-count-result.js → dynamodb/dynamo-ratchet.spec.d.ts} +0 -0
  260. /package/dist/{types/dynamodb → dynamodb}/dynamo-table-ratchet.d.ts +0 -0
  261. /package/dist/{types/dynamodb → dynamodb}/hash-spreader.d.ts +0 -0
  262. /package/dist/{es/model/dynamo/doc-put-item-command-input.js → dynamodb/hash-spreader.spec.d.ts} +0 -0
  263. /package/dist/{es/model/dynamo/doc-query-command-input.js → ec2/ec2-ratchet.spec.d.ts} +0 -0
  264. /package/dist/{es/model/dynamo/doc-scan-command-input.js → environment/environment-service-config.js} +0 -0
  265. /package/dist/{es/model/dynamo/doc-update-item-command-input.js → environment/environment-service-provider.js} +0 -0
  266. /package/dist/{es/runtime-parameter/cached-stored-runtime-parameter.js → environment/environment-service.spec.d.ts} +0 -0
  267. /package/dist/{types/expiring-code → expiring-code}/expiring-code-params.d.ts +0 -0
  268. /package/dist/{es/runtime-parameter/runtime-parameter-provider.js → expiring-code/expiring-code-params.js} +0 -0
  269. /package/dist/{es/runtime-parameter/stored-runtime-parameter.js → expiring-code/expiring-code-provider.js} +0 -0
  270. /package/dist/{es/ses/email-attachment.js → expiring-code/expiring-code-ratchet.spec.d.ts} +0 -0
  271. /package/dist/{types/expiring-code → expiring-code}/expiring-code.d.ts +0 -0
  272. /package/dist/{es/ses/mailer-config.js → expiring-code/expiring-code.js} +0 -0
  273. /package/dist/{es/ses/mailer-like.js → expiring-code/s3-expiring-code-provider.spec.d.ts} +0 -0
  274. /package/dist/{es/ses/ratchet-template-renderer.js → index.d.ts} +0 -0
  275. /package/dist/{es/ses/ready-to-send-email.js → index.js} +0 -0
  276. /package/dist/{types/lambda → lambda}/lambda-event-detector.d.ts +0 -0
  277. /package/dist/{es/lambda → lambda}/lambda-event-detector.js +0 -0
  278. /package/dist/{types/lambda → lambda}/lambda-event-type-guards.d.ts +0 -0
  279. /package/dist/{es/ses/resolved-ready-to-send-email.js → model/cloud-watch-metrics-minute-level-dynamo-count-request.js} +0 -0
  280. /package/dist/{types/model → model}/cloud-watch-metrics-unit.d.ts +0 -0
  281. /package/dist/{es/model → model}/cloud-watch-metrics-unit.js +0 -0
  282. /package/dist/{types/model → model}/dynamo/doc-put-item-command-input.d.ts +0 -0
  283. /package/dist/{types/model → model}/dynamo/doc-query-command-input.d.ts +0 -0
  284. /package/dist/{types/model → model}/dynamo/doc-scan-command-input.d.ts +0 -0
  285. /package/dist/{types/model → model}/dynamo/doc-update-item-command-input.d.ts +0 -0
  286. /package/dist/{types/model → model}/dynamo-count-result.d.ts +0 -0
  287. /package/dist/{es/sync-lock/sync-lock-provider.js → model/dynamo-count-result.js} +0 -0
  288. /package/dist/{types/route53 → route53}/route-53-ratchet.d.ts +0 -0
  289. /package/dist/{types/runtime-parameter → runtime-parameter}/stored-runtime-parameter.d.ts +0 -0
  290. /package/dist/{types/s3 → s3}/s3-location-sync-ratchet.d.ts +0 -0
  291. /package/dist/{types/s3 → s3}/s3-ratchet.d.ts +0 -0
  292. /package/dist/{types/sns → sns}/sns-ratchet.d.ts +0 -0
  293. /package/dist/{types/sync-lock → sync-lock}/sync-lock-provider.d.ts +0 -0
@@ -1,7 +1,7 @@
1
- import { ExpiringCodeProvider } from './expiring-code-provider';
2
- import { DynamoRatchet } from '../dynamodb/dynamo-ratchet';
3
- import { ExpiringCode } from './expiring-code';
4
- import { DynamoTableRatchet } from '../dynamodb/dynamo-table-ratchet';
1
+ import { ExpiringCodeProvider } from './expiring-code-provider.js';
2
+ import { DynamoRatchet } from '../dynamodb/dynamo-ratchet.js';
3
+ import { ExpiringCode } from './expiring-code.js';
4
+ import { DynamoTableRatchet } from '../dynamodb/dynamo-table-ratchet.js';
5
5
  export declare class DynamoExpiringCodeProvider implements ExpiringCodeProvider {
6
6
  private tableName;
7
7
  private dynamoRatchet;
@@ -1,4 +1,6 @@
1
1
  export class DynamoExpiringCodeProvider {
2
+ tableName;
3
+ dynamoRatchet;
2
4
  constructor(tableName, dynamoRatchet) {
3
5
  this.tableName = tableName;
4
6
  this.dynamoRatchet = dynamoRatchet;
@@ -1,4 +1,4 @@
1
- import { ExpiringCode } from './expiring-code';
1
+ import { ExpiringCode } from './expiring-code.js';
2
2
  export interface ExpiringCodeProvider {
3
3
  storeCode(code: ExpiringCode): Promise<boolean>;
4
4
  checkCode(code: string, context: string, deleteOnMatch?: boolean): Promise<boolean>;
@@ -1,9 +1,6 @@
1
- import { ExpiringCodeProvider } from './expiring-code-provider';
2
- import { ExpiringCodeParams } from './expiring-code-params';
3
- import { ExpiringCode } from './expiring-code';
4
- /**
5
- * Supports creating and checking single use codes
6
- */
1
+ import { ExpiringCodeProvider } from './expiring-code-provider.js';
2
+ import { ExpiringCodeParams } from './expiring-code-params.js';
3
+ import { ExpiringCode } from './expiring-code.js';
7
4
  export declare class ExpiringCodeRatchet {
8
5
  private provider;
9
6
  constructor(provider: ExpiringCodeProvider);
@@ -1,6 +1,7 @@
1
- import { RequireRatchet } from '@bitblit/ratchet-common';
2
- import { StringRatchet } from '@bitblit/ratchet-common';
1
+ import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
2
+ import { StringRatchet } from '@bitblit/ratchet-common/dist/lang/string-ratchet.js';
3
3
  export class ExpiringCodeRatchet {
4
+ provider;
4
5
  constructor(provider) {
5
6
  this.provider = provider;
6
7
  }
@@ -0,0 +1,7 @@
1
+ import { ExpiringCodeRatchet } from './expiring-code-ratchet.js';
2
+ describe('#ExpiringCodeRatchet', () => {
3
+ it('Should generate valid codes', async () => {
4
+ const output = ExpiringCodeRatchet.generateCode({ context: 'test', length: 5, timeToLiveSeconds: 10, alphabet: 'A' });
5
+ expect(output.code).toEqual('AAAAA');
6
+ });
7
+ });
@@ -1,6 +1,6 @@
1
- import { ExpiringCodeProvider } from './expiring-code-provider';
2
- import { ExpiringCode } from './expiring-code';
3
- import { S3CacheRatchet } from '../s3/s3-cache-ratchet';
1
+ import { ExpiringCodeProvider } from './expiring-code-provider.js';
2
+ import { ExpiringCode } from './expiring-code.js';
3
+ import { S3CacheRatchet } from '../s3/s3-cache-ratchet.js';
4
4
  import { PutObjectOutput } from '@aws-sdk/client-s3';
5
5
  export declare class S3ExpiringCodeProvider implements ExpiringCodeProvider {
6
6
  private s3CacheRatchet;
@@ -1,5 +1,8 @@
1
- import { Logger, RequireRatchet } from '@bitblit/ratchet-common';
1
+ import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
2
+ import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
2
3
  export class S3ExpiringCodeProvider {
4
+ s3CacheRatchet;
5
+ keyName;
3
6
  constructor(s3CacheRatchet, keyName) {
4
7
  this.s3CacheRatchet = s3CacheRatchet;
5
8
  this.keyName = keyName;
@@ -0,0 +1,46 @@
1
+ import { JestRatchet } from '@bitblit/ratchet-jest/dist/jest/jest-ratchet.js';
2
+ import { S3ExpiringCodeProvider } from './s3-expiring-code-provider.js';
3
+ import { jest } from '@jest/globals';
4
+ let mockS3Ratchet;
5
+ const testCode = { code: '12345', context: 'ctx', expiresEpochMS: Date.now() + 100_000, tags: ['tag1'] };
6
+ const testCode2 = { code: '45678', context: 'ctx', expiresEpochMS: Date.now() + 100_000, tags: ['tag1'] };
7
+ describe('#S3ExpiringCodeProvider', () => {
8
+ beforeEach(() => {
9
+ mockS3Ratchet = JestRatchet.mock(jest.fn);
10
+ mockS3Ratchet.getDefaultBucket.mockReturnValue('TEST-BUCKET');
11
+ });
12
+ it('Should fetch file', async () => {
13
+ const val = new S3ExpiringCodeProvider(mockS3Ratchet, 'test.json');
14
+ const output = await val.fetchFile();
15
+ expect(output).not.toBeFalsy();
16
+ expect(output.data).not.toBeFalsy();
17
+ expect(output.lastModifiedEpochMS).not.toBeFalsy();
18
+ });
19
+ it('Should update file', async () => {
20
+ const val = new S3ExpiringCodeProvider(mockS3Ratchet, 'test.json');
21
+ mockS3Ratchet.writeObjectToCacheFile.mockResolvedValue({});
22
+ const wrote = await val.updateFile([testCode]);
23
+ expect(wrote).not.toBeFalsy();
24
+ });
25
+ it('Should check code', async () => {
26
+ mockS3Ratchet.fetchCacheFileAsObject.mockResolvedValue({
27
+ data: [testCode],
28
+ lastModifiedEpochMS: 1234,
29
+ });
30
+ const val = new S3ExpiringCodeProvider(mockS3Ratchet, 'test.json');
31
+ const testValidCode = await val.checkCode('12345', 'ctx', false);
32
+ const testInvalidCode = await val.checkCode('09876', 'ctx', false);
33
+ expect(testValidCode).toBeTruthy();
34
+ expect(testInvalidCode).toBeFalsy();
35
+ });
36
+ it('Should store code', async () => {
37
+ mockS3Ratchet.fetchCacheFileAsObject.mockResolvedValue({
38
+ data: [testCode],
39
+ lastModifiedEpochMS: 1234,
40
+ });
41
+ mockS3Ratchet.writeObjectToCacheFile.mockResolvedValue({});
42
+ const val = new S3ExpiringCodeProvider(mockS3Ratchet, 'test.json');
43
+ const output = await val.storeCode(testCode2);
44
+ expect(output).toBeTruthy();
45
+ });
46
+ });
@@ -1,8 +1,3 @@
1
- /**
2
- * Ratchet for manipulating credentials
3
- *
4
- * Mainly here so I don't have to remember certain specific AWS environmental variable names
5
- */
6
1
  export declare class AwsCredentialsRatchet {
7
2
  private constructor();
8
3
  static applySetProfileEnvironmentalVariable(newProfile: string): void;
@@ -1,4 +1,5 @@
1
- import { ErrorRatchet, StringRatchet } from '@bitblit/ratchet-common';
1
+ import { ErrorRatchet } from '@bitblit/ratchet-common/dist/lang/error-ratchet.js';
2
+ import { StringRatchet } from '@bitblit/ratchet-common/dist/lang/string-ratchet.js';
2
3
  export class AwsCredentialsRatchet {
3
4
  constructor() { }
4
5
  static applySetProfileEnvironmentalVariable(newProfile) {
@@ -1,4 +1,4 @@
1
- import { LambdaEventDetector } from './lambda-event-detector';
1
+ import { LambdaEventDetector } from './lambda-event-detector.js';
2
2
  export class LambdaEventTypeGuards {
3
3
  static isValidCronEvent(event) {
4
4
  return LambdaEventDetector.isValidCronEvent(event);
@@ -1,5 +1,5 @@
1
- import { KeyValue } from '@bitblit/ratchet-common';
2
- import { DynamoRatchet } from '../dynamodb/dynamo-ratchet';
1
+ import { KeyValue } from '@bitblit/ratchet-common/dist/lang/key-value.js';
2
+ import { DynamoRatchet } from '../dynamodb/dynamo-ratchet.js';
3
3
  import { QueryInput, ScanCommandInput } from '@aws-sdk/client-dynamodb';
4
4
  export interface CloudWatchMetricsMinuteLevelDynamoCountRequest {
5
5
  dynamoRatchet: DynamoRatchet;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,7 +1,9 @@
1
- import { Logger } from '@bitblit/ratchet-common';
1
+ import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
2
2
  import { ChangeResourceRecordSetsCommand, waitUntilResourceRecordSetsChanged, } from '@aws-sdk/client-route-53';
3
3
  import { WaiterState } from '@aws-sdk/util-waiter';
4
4
  export class Route53Ratchet {
5
+ route53;
6
+ hostedZoneId;
5
7
  constructor(route53, hostedZoneId) {
6
8
  this.route53 = route53;
7
9
  this.hostedZoneId = hostedZoneId;
@@ -1,4 +1,4 @@
1
- import { StoredRuntimeParameter } from './stored-runtime-parameter';
1
+ import { StoredRuntimeParameter } from './stored-runtime-parameter.js';
2
2
  export interface CachedStoredRuntimeParameter extends StoredRuntimeParameter {
3
3
  storedEpochMS: number;
4
4
  }
@@ -1,6 +1,6 @@
1
- import { RuntimeParameterProvider } from './runtime-parameter-provider';
2
- import { StoredRuntimeParameter } from './stored-runtime-parameter';
3
- import { DynamoRatchet } from '../dynamodb/dynamo-ratchet';
1
+ import { RuntimeParameterProvider } from './runtime-parameter-provider.js';
2
+ import { StoredRuntimeParameter } from './stored-runtime-parameter.js';
3
+ import { DynamoRatchet } from '../dynamodb/dynamo-ratchet.js';
4
4
  export declare class DynamoRuntimeParameterProvider implements RuntimeParameterProvider {
5
5
  private dynamo;
6
6
  private tableName;
@@ -1,6 +1,8 @@
1
- import { RequireRatchet } from '@bitblit/ratchet-common';
2
- import { Logger } from '@bitblit/ratchet-common';
1
+ import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
2
+ import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
3
3
  export class DynamoRuntimeParameterProvider {
4
+ dynamo;
5
+ tableName;
4
6
  constructor(dynamo, tableName) {
5
7
  this.dynamo = dynamo;
6
8
  this.tableName = tableName;
@@ -0,0 +1,49 @@
1
+ import { DynamoRuntimeParameterProvider } from './dynamo-runtime-parameter-provider.js';
2
+ import { JestRatchet } from '@bitblit/ratchet-jest/dist/jest/jest-ratchet.js';
3
+ import { RuntimeParameterRatchet } from './runtime-parameter-ratchet.js';
4
+ import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
5
+ import { LoggerLevelName } from '@bitblit/ratchet-common/dist/logger/logger-level-name.js';
6
+ import { PromiseRatchet } from '@bitblit/ratchet-common/dist/lang/promise-ratchet.js';
7
+ import { jest } from '@jest/globals';
8
+ let mockDynamoRatchet;
9
+ const testEntry = { groupId: 'test', paramKey: 'test', paramValue: '15', ttlSeconds: 0.5 };
10
+ const testEntry2 = { groupId: 'test', paramKey: 'test1', paramValue: '20', ttlSeconds: 0.5 };
11
+ describe('#runtimeParameterRatchet', function () {
12
+ beforeEach(() => {
13
+ mockDynamoRatchet = JestRatchet.mock(jest.fn);
14
+ });
15
+ it('fetch and cache a runtime parameter', async () => {
16
+ Logger.setLevel(LoggerLevelName.silly);
17
+ const tableName = 'default-table';
18
+ mockDynamoRatchet.simpleGet.mockResolvedValue(testEntry);
19
+ mockDynamoRatchet.simplePut.mockResolvedValue({});
20
+ const drpp = new DynamoRuntimeParameterProvider(mockDynamoRatchet, tableName);
21
+ const rpr = new RuntimeParameterRatchet(drpp);
22
+ const stored = await rpr.storeParameter('test', 'test1', 15, 0.5);
23
+ Logger.info('Stored : %j', stored);
24
+ const cache1 = await rpr.fetchParameter('test', 'test1');
25
+ const cache1a = await rpr.fetchParameter('test', 'test1');
26
+ const cache1b = await rpr.fetchParameter('test', 'test1');
27
+ expect(cache1).toEqual(15);
28
+ expect(cache1a).toEqual(15);
29
+ expect(cache1b).toEqual(15);
30
+ await PromiseRatchet.wait(1000);
31
+ const cache2 = await rpr.fetchParameter('test', 'test1');
32
+ expect(cache2).toEqual(15);
33
+ mockDynamoRatchet.simpleGet.mockResolvedValue(null);
34
+ const cacheMiss = await rpr.fetchParameter('test', 'test-miss');
35
+ expect(cacheMiss).toBeNull();
36
+ const cacheDefault = await rpr.fetchParameter('test', 'test-miss', 27);
37
+ expect(cacheDefault).toEqual(27);
38
+ }, 30_000);
39
+ it('reads underlying entries', async () => {
40
+ Logger.setLevel(LoggerLevelName.silly);
41
+ const tableName = 'default-table';
42
+ mockDynamoRatchet.fullyExecuteQuery.mockResolvedValue([testEntry, testEntry2]);
43
+ const drpp = new DynamoRuntimeParameterProvider(mockDynamoRatchet, tableName);
44
+ const rpr = new RuntimeParameterRatchet(drpp);
45
+ const vals = await rpr.readUnderlyingEntries('test');
46
+ expect(vals).not.toBeFalsy();
47
+ expect(vals.length).toEqual(2);
48
+ }, 30_000);
49
+ });
@@ -1,12 +1,5 @@
1
- import { RuntimeParameterProvider } from './runtime-parameter-provider';
2
- import { StoredRuntimeParameter } from './stored-runtime-parameter';
3
- /**
4
- * Provides parameters for a runtime parameter from an global (ie, process.env or global.xx) variable, where the key follows
5
- * a given format
6
- *
7
- * "Simple" because it forces all ttls to be the same value (ignores what is passed in) so that the
8
- * envvar itself can be just a string instead of a complex value
9
- */
1
+ import { RuntimeParameterProvider } from './runtime-parameter-provider.js';
2
+ import { StoredRuntimeParameter } from './stored-runtime-parameter.js';
10
3
  export declare class GlobalVariableOverrideRuntimeParameterProvider implements RuntimeParameterProvider {
11
4
  private wrapped;
12
5
  private options;
@@ -1,14 +1,16 @@
1
- import { RequireRatchet } from '@bitblit/ratchet-common';
2
- import { ErrorRatchet, StringRatchet } from '@bitblit/ratchet-common';
1
+ import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
2
+ import { ErrorRatchet } from '@bitblit/ratchet-common/dist/lang/error-ratchet.js';
3
+ import { StringRatchet } from '@bitblit/ratchet-common/dist/lang/string-ratchet.js';
3
4
  export class GlobalVariableOverrideRuntimeParameterProvider {
5
+ wrapped;
6
+ options = {
7
+ globalTTL: 1,
8
+ separator: '.',
9
+ prefix: 'RuntimeEnv-',
10
+ suffix: '',
11
+ };
4
12
  constructor(wrapped, opts) {
5
13
  this.wrapped = wrapped;
6
- this.options = {
7
- globalTTL: 1,
8
- separator: '.',
9
- prefix: 'RuntimeEnv-',
10
- suffix: '',
11
- };
12
14
  RequireRatchet.notNullOrUndefined(this.wrapped, 'wrapped');
13
15
  RequireRatchet.notNullOrUndefined(global?.process?.env, '"process" not found - this only runs in Node, not the browser');
14
16
  if (opts) {
@@ -0,0 +1,37 @@
1
+ import { DynamoRuntimeParameterProvider } from './dynamo-runtime-parameter-provider.js';
2
+ import { JestRatchet } from '@bitblit/ratchet-jest/dist/jest/jest-ratchet.js';
3
+ import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
4
+ import { LoggerLevelName } from '@bitblit/ratchet-common/dist/logger/logger-level-name.js';
5
+ import { RuntimeParameterRatchet } from './runtime-parameter-ratchet.js';
6
+ import { GlobalVariableOverrideRuntimeParameterProvider } from './global-variable-override-runtime-parameter-provider.js';
7
+ import { jest } from '@jest/globals';
8
+ let mockDynamoRatchet;
9
+ const testEntry = { groupId: 'test', paramKey: 'test', paramValue: '15', ttlSeconds: 0.5 };
10
+ const testEntry2 = { groupId: 'test', paramKey: 'test1', paramValue: '"not-overridden"', ttlSeconds: 0.5 };
11
+ describe('#globalVariableOverrideRuntimeParameterProvider', function () {
12
+ beforeEach(() => {
13
+ mockDynamoRatchet = JestRatchet.mock(jest.fn);
14
+ });
15
+ it('reads underlying entries', async () => {
16
+ Logger.setLevel(LoggerLevelName.silly);
17
+ mockDynamoRatchet.simpleGet.mockResolvedValue(testEntry2);
18
+ const drpp = new DynamoRuntimeParameterProvider(mockDynamoRatchet, 'test-table');
19
+ const er = new GlobalVariableOverrideRuntimeParameterProvider(drpp, {
20
+ globalTTL: 1,
21
+ separator: '.',
22
+ prefix: 'p-',
23
+ suffix: null,
24
+ });
25
+ process.env[er.generateName('test', 'test1')] = '"override"';
26
+ const rpr = new RuntimeParameterRatchet(er);
27
+ const root = await drpp.readParameter('test', 'test1');
28
+ const override = await er.readParameter('test', 'test1');
29
+ const fetched = await rpr.fetchParameter('test', 'test1');
30
+ expect(root).not.toBeNull();
31
+ expect(override).not.toBeNull();
32
+ expect(fetched).not.toBeNull();
33
+ expect(root.paramValue).toEqual('"not-overridden"');
34
+ expect(override.paramValue).toEqual('"override"');
35
+ expect(fetched).toEqual('override');
36
+ }, 30_000);
37
+ });
@@ -1,9 +1,5 @@
1
- import { RuntimeParameterProvider } from './runtime-parameter-provider';
2
- import { StoredRuntimeParameter } from './stored-runtime-parameter';
3
- /**
4
- * Very simple class, basically here just for unit testing although I suppose you could
5
- * use it for something else
6
- */
1
+ import { RuntimeParameterProvider } from './runtime-parameter-provider.js';
2
+ import { StoredRuntimeParameter } from './stored-runtime-parameter.js';
7
3
  export declare class MemoryRuntimeParameterProvider implements RuntimeParameterProvider {
8
4
  private data;
9
5
  constructor(data?: Promise<Record<string, StoredRuntimeParameter>>);
@@ -1,5 +1,6 @@
1
- import { Logger } from '@bitblit/ratchet-common';
1
+ import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
2
2
  export class MemoryRuntimeParameterProvider {
3
+ data;
3
4
  constructor(data = Promise.resolve({})) {
4
5
  this.data = data;
5
6
  }
@@ -1,9 +1,4 @@
1
- /**
2
- * Classes implementing RuntimeParameterProvider offer the ability to fetch a runtime parameter
3
- * object from _somewhere_
4
- * They do NOT handle local caching - the RuntimeParameterRatchet does that
5
- */
6
- import { StoredRuntimeParameter } from './stored-runtime-parameter';
1
+ import { StoredRuntimeParameter } from './stored-runtime-parameter.js';
7
2
  export interface RuntimeParameterProvider {
8
3
  readParameter(groupId: string, paramKey: string): Promise<StoredRuntimeParameter>;
9
4
  readAllParametersForGroup(groupId: string): Promise<StoredRuntimeParameter[]>;
@@ -1,5 +1,5 @@
1
- import { RuntimeParameterProvider } from './runtime-parameter-provider';
2
- import { StoredRuntimeParameter } from './stored-runtime-parameter';
1
+ import { RuntimeParameterProvider } from './runtime-parameter-provider.js';
2
+ import { StoredRuntimeParameter } from './stored-runtime-parameter.js';
3
3
  export declare class RuntimeParameterRatchet {
4
4
  private provider;
5
5
  private cache;
@@ -1,9 +1,10 @@
1
- import { Logger } from '@bitblit/ratchet-common';
2
- import { RequireRatchet } from '@bitblit/ratchet-common';
1
+ import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
2
+ import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
3
3
  export class RuntimeParameterRatchet {
4
+ provider;
5
+ cache = new Map();
4
6
  constructor(provider) {
5
7
  this.provider = provider;
6
- this.cache = new Map();
7
8
  RequireRatchet.notNullOrUndefined(this.provider);
8
9
  }
9
10
  async fetchParameter(groupId, paramKey, defaultValue = null, forceFreshRead = false) {
@@ -0,0 +1,39 @@
1
+ import { RuntimeParameterRatchet } from './runtime-parameter-ratchet.js';
2
+ import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
3
+ import { LoggerLevelName } from '@bitblit/ratchet-common/dist/logger/logger-level-name.js';
4
+ import { PromiseRatchet } from '@bitblit/ratchet-common/dist/lang/promise-ratchet.js';
5
+ import { MemoryRuntimeParameterProvider } from './memory-runtime-parameter-provider.js';
6
+ const testEntry = { groupId: 'test', paramKey: 'test', paramValue: '15', ttlSeconds: 0.5 };
7
+ const testEntry2 = { groupId: 'test', paramKey: 'test1', paramValue: '20', ttlSeconds: 0.5 };
8
+ describe('#runtimeParameterRatchet', function () {
9
+ it('fetch and cache a runtime parameter', async () => {
10
+ Logger.setLevel(LoggerLevelName.silly);
11
+ const mp = new MemoryRuntimeParameterProvider();
12
+ const rpr = new RuntimeParameterRatchet(mp);
13
+ const stored = await rpr.storeParameter('test', 'test1', 15, 0.5);
14
+ Logger.info('Stored : %j', stored);
15
+ const cache1 = await rpr.fetchParameter('test', 'test1');
16
+ const cache1a = await rpr.fetchParameter('test', 'test1');
17
+ const cache1b = await rpr.fetchParameter('test', 'test1');
18
+ expect(cache1).toEqual(15);
19
+ expect(cache1a).toEqual(15);
20
+ expect(cache1b).toEqual(15);
21
+ await PromiseRatchet.wait(1000);
22
+ const cache2 = await rpr.fetchParameter('test', 'test1');
23
+ expect(cache2).toEqual(15);
24
+ const cacheMiss = await rpr.fetchParameter('test', 'test-miss');
25
+ expect(cacheMiss).toBeNull();
26
+ const cacheDefault = await rpr.fetchParameter('test', 'test-miss', 27);
27
+ expect(cacheDefault).toEqual(27);
28
+ }, 30_000);
29
+ it('reads underlying entries', async () => {
30
+ Logger.setLevel(LoggerLevelName.silly);
31
+ const mrpp = new MemoryRuntimeParameterProvider();
32
+ await mrpp.writeParameter(testEntry);
33
+ await mrpp.writeParameter(testEntry2);
34
+ const rpr = new RuntimeParameterRatchet(mrpp);
35
+ const vals = await rpr.readUnderlyingEntries('test');
36
+ expect(vals).not.toBeFalsy();
37
+ expect(vals.length).toEqual(2);
38
+ }, 30_000);
39
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,5 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
3
  import { CompleteMultipartUploadCommandOutput, CopyObjectCommandOutput, DeleteObjectCommandOutput, GetObjectCommandOutput, HeadObjectCommandOutput, PutObjectCommandInput, S3Client } from '@aws-sdk/client-s3';
4
4
  import { Readable } from 'stream';
5
5
  export declare class S3CacheRatchet {
@@ -17,8 +17,7 @@ export declare class S3CacheRatchet {
17
17
  fetchCacheFileAsString(key: string, bucket?: string): Promise<string>;
18
18
  fetchCacheFileAsObject<T>(key: string, bucket?: string): Promise<T>;
19
19
  removeCacheFile(key: string, bucket?: string): Promise<DeleteObjectCommandOutput>;
20
- writeObjectToCacheFile(key: string, dataObject: any, // eslint-disable-line @typescript-eslint/explicit-module-boundary-types
21
- template?: PutObjectCommandInput, bucket?: string): Promise<CompleteMultipartUploadCommandOutput>;
20
+ writeObjectToCacheFile(key: string, dataObject: any, template?: PutObjectCommandInput, bucket?: string): Promise<CompleteMultipartUploadCommandOutput>;
22
21
  writeStringToCacheFile(key: string, dataString: string, template?: PutObjectCommandInput, bucket?: string): Promise<CompleteMultipartUploadCommandOutput>;
23
22
  writeStreamToCacheFile(key: string, data: ReadableStream | Readable, template?: PutObjectCommandInput, bucket?: string): Promise<CompleteMultipartUploadCommandOutput>;
24
23
  synchronize(srcPrefix: string, targetPrefix: string, targetRatchet?: S3CacheRatchet, recurseSubFolders?: boolean): Promise<string[]>;
@@ -1,12 +1,14 @@
1
1
  import { CopyObjectCommand, DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, ListObjectsCommand, NoSuchKey, } from '@aws-sdk/client-s3';
2
- import { Logger } from '@bitblit/ratchet-common';
3
- import { RequireRatchet } from '@bitblit/ratchet-common';
4
- import { StopWatch } from '@bitblit/ratchet-common';
2
+ import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
3
+ import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
4
+ import { StringRatchet } from '@bitblit/ratchet-common/dist/lang/string-ratchet.js';
5
+ import { StopWatch } from '@bitblit/ratchet-common/dist/lang/stop-watch.js';
6
+ import { StreamRatchet } from '@bitblit/ratchet-common/dist/stream/stream-ratchet.js';
5
7
  import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
6
8
  import { Upload } from '@aws-sdk/lib-storage';
7
- import { StringRatchet } from '@bitblit/ratchet-common';
8
- import { StreamRatchet } from '@bitblit/ratchet-common';
9
9
  export class S3CacheRatchet {
10
+ s3;
11
+ defaultBucket;
10
12
  constructor(s3, defaultBucket = null) {
11
13
  this.s3 = s3;
12
14
  this.defaultBucket = defaultBucket;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,97 @@
1
+ import { CopyObjectCommand, CreateMultipartUploadCommand, GetObjectCommand, HeadObjectCommand, PutObjectCommand, S3Client, UploadPartCommand, } from '@aws-sdk/client-s3';
2
+ import { S3CacheRatchet } from './s3-cache-ratchet.js';
3
+ import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
4
+ import { StringRatchet } from '@bitblit/ratchet-common/dist/lang/string-ratchet.js';
5
+ import { StreamRatchet } from '@bitblit/ratchet-common/dist/stream/stream-ratchet.js';
6
+ import { mockClient } from 'aws-sdk-client-mock';
7
+ import { jest } from '@jest/globals';
8
+ jest.mock('@aws-sdk/s3-request-presigner', () => ({
9
+ getSignedUrl: jest.fn(() => Promise.resolve('https://test.link/test.jpg')),
10
+ }));
11
+ let mockS3 = null;
12
+ let mockS3OtherAccount = null;
13
+ describe('#fileExists', function () {
14
+ mockS3 = mockClient(S3Client);
15
+ mockS3OtherAccount = mockClient(S3Client);
16
+ beforeEach(() => {
17
+ mockS3.reset();
18
+ mockS3OtherAccount.reset();
19
+ });
20
+ it('should return false for files that do not exist', async () => {
21
+ mockS3.on(HeadObjectCommand).rejects({ statusCode: 404, $metadata: null });
22
+ const cache = new S3CacheRatchet(mockS3, 'test-bucket');
23
+ const out = await cache.fileExists('test-missing-file');
24
+ expect(out).toEqual(false);
25
+ });
26
+ xit('should create a expiring link', async () => {
27
+ const cache = new S3CacheRatchet(mockS3, 'test-bucket');
28
+ const out = await cache.preSignedDownloadUrlForCacheFile('test.jpg', 300);
29
+ expect(out).toEqual('https://test.link/test.jpg');
30
+ });
31
+ it('should copy an object', async () => {
32
+ mockS3.on(CopyObjectCommand).resolves({});
33
+ const cache = new S3CacheRatchet(mockS3, 'test-bucket');
34
+ const out = await cache.quietCopyFile('test.png', 'test2.png');
35
+ expect(out).toBeTruthy();
36
+ });
37
+ xit('should copy a file to s3', async () => {
38
+ mockS3.on(PutObjectCommand).resolves({});
39
+ mockS3.on(CreateMultipartUploadCommand).resolves({ UploadId: '1' });
40
+ mockS3.on(UploadPartCommand).resolves({ ETag: '1' });
41
+ const cache = new S3CacheRatchet(mockS3, 'test-bucket');
42
+ const stream = StreamRatchet.stringToWebReadableStream(StringRatchet.createRandomHexString(1024 * 1024 * 6));
43
+ const out = await cache.writeStreamToCacheFile('s3-cache-ratchet.spec.ts', stream, {
44
+ ContentType: 'text/typescript',
45
+ });
46
+ Logger.info('Calls: %j', mockS3.calls());
47
+ expect(out).toBeTruthy();
48
+ });
49
+ it('should pull a file as a string', async () => {
50
+ async function createNew() {
51
+ return {
52
+ Body: {
53
+ transformToByteArray: async () => Promise.resolve(StringRatchet.stringToUint8Array(JSON.stringify({ test: StringRatchet.createRandomHexString(128) }))),
54
+ transformToString: async () => Promise.resolve(JSON.stringify({ test: StringRatchet.createRandomHexString(128) })),
55
+ },
56
+ $metadata: null,
57
+ };
58
+ }
59
+ mockS3.on(GetObjectCommand).resolves(createNew());
60
+ const cache = new S3CacheRatchet(mockS3, 'test-bucket');
61
+ const fileName = 'test-file.json';
62
+ const outBuf = await cache.fetchCacheFileAsBuffer(fileName);
63
+ expect(outBuf).toBeTruthy();
64
+ expect(outBuf.length).toBeGreaterThan(100);
65
+ mockS3.reset();
66
+ mockS3.on(GetObjectCommand).resolves(createNew());
67
+ const outString = await cache.fetchCacheFileAsString(fileName);
68
+ expect(outString).toBeTruthy();
69
+ expect(outString.length).toBeGreaterThan(100);
70
+ mockS3.reset();
71
+ mockS3.on(GetObjectCommand).resolves(createNew());
72
+ const outObject = await cache.fetchCacheFileAsObject(fileName);
73
+ expect(outObject).toBeTruthy();
74
+ expect(outObject['test']).toBeTruthy();
75
+ });
76
+ xit('should sync 2 folders', async () => {
77
+ const cache1 = new S3CacheRatchet(mockS3, 'test1');
78
+ const cache2 = new S3CacheRatchet(mockS3, 'test2');
79
+ const out = await cache1.synchronize('src/', 'dst/', cache2);
80
+ expect(out).not.toBeNull();
81
+ }, 60_000);
82
+ xit('should list direct children past 1000', async () => {
83
+ const s3 = new S3Client({ region: 'us-east-1' });
84
+ const cache = new S3CacheRatchet(s3, 'test-bucket');
85
+ const out = await cache.directChildrenOfPrefix('test/aws/test-path-with-lots-of-childen/');
86
+ expect(out).toBeTruthy();
87
+ expect(out.length).toBeGreaterThan(1000);
88
+ Logger.info('Got: %s', out);
89
+ expect(out).toBeTruthy();
90
+ });
91
+ xit('should sync cross-account', async () => {
92
+ const cache1 = new S3CacheRatchet(mockS3, 'bucket1');
93
+ const cache2 = new S3CacheRatchet(mockS3OtherAccount, 'bucket2');
94
+ const res = await cache1.synchronize('test1/', 'test2/', cache2, true);
95
+ expect(res).not.toBeNull();
96
+ }, 50_000);
97
+ });
@@ -1,8 +1,5 @@
1
- /// <reference types="node" />
2
- import { S3CacheRatchet } from './s3-cache-ratchet';
3
- /**
4
- * Use this when you want a lambda to cache a remote S3 bucket locally on disk for faster access
5
- */
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { S3CacheRatchet } from './s3-cache-ratchet.js';
6
3
  export declare class S3CacheToLocalDiskRatchet {
7
4
  private s3;
8
5
  private tmpFolder;