@bitblit/ratchet-aws 4.0.99-alpha → 4.0.103-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 → lib}/batch/aws-batch-background-processor.d.ts +1 -5
  2. package/{dist/es → lib}/batch/aws-batch-background-processor.js +6 -1
  3. package/lib/batch/aws-batch-background-processor.spec.js +15 -0
  4. package/{dist/types → lib}/batch/aws-batch-ratchet.d.ts +0 -3
  5. package/{dist/es → lib}/batch/aws-batch-ratchet.js +5 -1
  6. package/lib/batch/aws-batch-ratchet.spec.js +33 -0
  7. package/{dist/types → lib}/build/ratchet-aws-info.d.ts +1 -1
  8. package/{dist/types → lib}/cache/dynamo-db-storage-provider.d.ts +3 -3
  9. package/{dist/es → lib}/cache/dynamo-db-storage-provider.js +3 -1
  10. package/{dist/types → lib}/cache/s3-storage-provider.d.ts +3 -3
  11. package/{dist/es → lib}/cache/s3-storage-provider.js +4 -1
  12. package/{dist/types → lib}/cache/simple-cache-storage-provider.d.ts +1 -1
  13. package/{dist/types → lib}/cache/simple-cache.d.ts +3 -3
  14. package/{dist/es → lib}/cache/simple-cache.js +4 -2
  15. package/lib/cache/simple-cache.spec.js +67 -0
  16. package/{dist/es → lib}/cloudwatch/cloud-watch-log-group-ratchet.js +4 -2
  17. package/lib/cloudwatch/cloud-watch-log-group-ratchet.spec.js +19 -0
  18. package/{dist/es → lib}/cloudwatch/cloud-watch-logs-ratchet.js +6 -5
  19. package/lib/cloudwatch/cloud-watch-logs-ratchet.spec.js +84 -0
  20. package/{dist/types → lib}/cloudwatch/cloud-watch-metrics-ratchet.d.ts +3 -3
  21. package/{dist/es → lib}/cloudwatch/cloud-watch-metrics-ratchet.js +3 -2
  22. package/lib/cloudwatch/cloud-watch-metrics-ratchet.spec.js +23 -0
  23. package/{dist/types → lib}/daemon/daemon-like.d.ts +3 -3
  24. package/{dist/types → lib}/daemon/daemon-process-state-public-token.d.ts +1 -1
  25. package/{dist/types → lib}/daemon/daemon-util.d.ts +5 -11
  26. package/{dist/es → lib}/daemon/daemon-util.js +3 -3
  27. package/lib/daemon/daemon-util.spec.d.ts +4 -0
  28. package/lib/daemon/daemon-util.spec.js +79 -0
  29. package/{dist/types → lib}/daemon/daemon.d.ts +5 -5
  30. package/{dist/es → lib}/daemon/daemon.js +12 -6
  31. package/{dist/types → lib}/dao/prototype-dao-provider.d.ts +1 -1
  32. package/{dist/types → lib}/dao/prototype-dao.d.ts +2 -2
  33. package/{dist/es → lib}/dao/prototype-dao.js +13 -9
  34. package/lib/dao/prototype-dao.spec.d.ts +8 -0
  35. package/lib/dao/prototype-dao.spec.js +26 -0
  36. package/{dist/types → lib}/dao/s3-prototype-dao-provider.d.ts +3 -3
  37. package/{dist/es → lib}/dao/s3-prototype-dao-provider.js +3 -1
  38. package/{dist/types → lib}/dao/s3-simple-dao.d.ts +2 -2
  39. package/{dist/es → lib}/dao/s3-simple-dao.js +4 -2
  40. package/{dist/types → lib}/dynamodb/dynamo-ratchet-like.d.ts +3 -3
  41. package/{dist/types → lib}/dynamodb/dynamo-ratchet.d.ts +4 -4
  42. package/{dist/es → lib}/dynamodb/dynamo-ratchet.js +7 -6
  43. package/lib/dynamodb/dynamo-ratchet.spec.js +156 -0
  44. package/{dist/es → lib}/dynamodb/dynamo-table-ratchet.js +5 -4
  45. package/{dist/es → lib}/dynamodb/hash-spreader.js +8 -1
  46. package/lib/dynamodb/hash-spreader.spec.js +17 -0
  47. package/{dist/types → lib}/ec2/ec2-ratchet.d.ts +0 -11
  48. package/{dist/es → lib}/ec2/ec2-ratchet.js +7 -3
  49. package/lib/ec2/ec2-ratchet.spec.js +31 -0
  50. package/{dist/types → lib}/environment/cascade-environment-service-provider.d.ts +1 -4
  51. package/{dist/es → lib}/environment/cascade-environment-service-provider.js +3 -2
  52. package/{dist/types → lib}/environment/env-var-environment-service-provider.d.ts +1 -5
  53. package/{dist/es → lib}/environment/env-var-environment-service-provider.js +5 -4
  54. package/{dist/types → lib}/environment/environment-service-config.d.ts +0 -3
  55. package/lib/environment/environment-service-provider.d.ts +3 -0
  56. package/{dist/types → lib}/environment/environment-service.d.ts +2 -5
  57. package/{dist/es → lib}/environment/environment-service.js +13 -11
  58. package/lib/environment/environment-service.spec.js +22 -0
  59. package/{dist/types → lib}/environment/fixed-environment-service-provider.d.ts +1 -4
  60. package/{dist/es → lib}/environment/fixed-environment-service-provider.js +3 -2
  61. package/{dist/types → lib}/environment/s3-environment-service-provider.d.ts +1 -4
  62. package/{dist/es → lib}/environment/s3-environment-service-provider.js +7 -5
  63. package/{dist/types → lib}/environment/ssm-environment-service-provider.d.ts +1 -5
  64. package/{dist/es → lib}/environment/ssm-environment-service-provider.js +9 -6
  65. package/{dist/types → lib}/expiring-code/dynamo-expiring-code-provider.d.ts +4 -4
  66. package/{dist/es → lib}/expiring-code/dynamo-expiring-code-provider.js +2 -0
  67. package/{dist/types → lib}/expiring-code/expiring-code-provider.d.ts +1 -1
  68. package/{dist/types → lib}/expiring-code/expiring-code-ratchet.d.ts +3 -6
  69. package/{dist/es → lib}/expiring-code/expiring-code-ratchet.js +3 -2
  70. package/lib/expiring-code/expiring-code-ratchet.spec.js +7 -0
  71. package/{dist/types → lib}/expiring-code/s3-expiring-code-provider.d.ts +3 -3
  72. package/{dist/es → lib}/expiring-code/s3-expiring-code-provider.js +4 -1
  73. package/lib/expiring-code/s3-expiring-code-provider.spec.js +46 -0
  74. package/{dist/types → lib}/iam/aws-credentials-ratchet.d.ts +0 -5
  75. package/{dist/es → lib}/iam/aws-credentials-ratchet.js +2 -1
  76. package/{dist/es → lib}/lambda/lambda-event-type-guards.js +1 -1
  77. package/{dist/types → lib}/model/cloud-watch-metrics-minute-level-dynamo-count-request.d.ts +2 -2
  78. package/lib/model/dynamo/doc-put-item-command-input.js +1 -0
  79. package/lib/model/dynamo/doc-query-command-input.js +1 -0
  80. package/lib/model/dynamo/doc-scan-command-input.js +1 -0
  81. package/lib/model/dynamo/doc-update-item-command-input.js +1 -0
  82. package/{dist/es → lib}/route53/route-53-ratchet.js +3 -1
  83. package/{dist/types → lib}/runtime-parameter/cached-stored-runtime-parameter.d.ts +1 -1
  84. package/lib/runtime-parameter/cached-stored-runtime-parameter.js +1 -0
  85. package/{dist/types → lib}/runtime-parameter/dynamo-runtime-parameter-provider.d.ts +3 -3
  86. package/{dist/es → lib}/runtime-parameter/dynamo-runtime-parameter-provider.js +4 -2
  87. package/lib/runtime-parameter/dynamo-runtime-parameter-provider.spec.d.ts +1 -0
  88. package/lib/runtime-parameter/dynamo-runtime-parameter-provider.spec.js +49 -0
  89. package/{dist/types → lib}/runtime-parameter/global-variable-override-runtime-parameter-provider.d.ts +2 -9
  90. package/{dist/es → lib}/runtime-parameter/global-variable-override-runtime-parameter-provider.js +10 -8
  91. package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.spec.d.ts +1 -0
  92. package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.spec.js +37 -0
  93. package/{dist/types → lib}/runtime-parameter/memory-runtime-parameter-provider.d.ts +2 -6
  94. package/{dist/es → lib}/runtime-parameter/memory-runtime-parameter-provider.js +2 -1
  95. package/{dist/types → lib}/runtime-parameter/runtime-parameter-provider.d.ts +1 -6
  96. package/lib/runtime-parameter/runtime-parameter-provider.js +1 -0
  97. package/{dist/types → lib}/runtime-parameter/runtime-parameter-ratchet.d.ts +2 -2
  98. package/{dist/es → lib}/runtime-parameter/runtime-parameter-ratchet.js +4 -3
  99. package/lib/runtime-parameter/runtime-parameter-ratchet.spec.d.ts +1 -0
  100. package/lib/runtime-parameter/runtime-parameter-ratchet.spec.js +39 -0
  101. package/lib/runtime-parameter/stored-runtime-parameter.js +1 -0
  102. package/{dist/types → lib}/s3/s3-cache-ratchet.d.ts +3 -4
  103. package/{dist/es → lib}/s3/s3-cache-ratchet.js +7 -5
  104. package/lib/s3/s3-cache-ratchet.spec.d.ts +1 -0
  105. package/lib/s3/s3-cache-ratchet.spec.js +97 -0
  106. package/{dist/types → lib}/s3/s3-cache-to-local-disk-ratchet.d.ts +2 -5
  107. package/{dist/es → lib}/s3/s3-cache-to-local-disk-ratchet.js +8 -3
  108. package/lib/s3/s3-cache-to-local-dist-ratchet.spec.d.ts +1 -0
  109. package/lib/s3/s3-cache-to-local-dist-ratchet.spec.js +22 -0
  110. package/{dist/es → lib}/s3/s3-location-sync-ratchet.js +4 -1
  111. package/{dist/es → lib}/s3/s3-ratchet.js +1 -1
  112. package/lib/s3/s3-ratchet.spec.d.ts +1 -0
  113. package/lib/s3/s3-ratchet.spec.js +20 -0
  114. package/lib/ses/email-attachment.d.ts +5 -0
  115. package/lib/ses/email-attachment.js +1 -0
  116. package/{dist/types → lib}/ses/mailer-config.d.ts +2 -5
  117. package/lib/ses/mailer-config.js +1 -0
  118. package/{dist/types → lib}/ses/mailer-like.d.ts +2 -9
  119. package/lib/ses/mailer-like.js +1 -0
  120. package/{dist/types → lib}/ses/mailer.d.ts +4 -11
  121. package/{dist/es → lib}/ses/mailer.js +8 -6
  122. package/lib/ses/mailer.spec.d.ts +1 -0
  123. package/lib/ses/mailer.spec.js +104 -0
  124. package/{dist/types → lib}/ses/ratchet-template-renderer.d.ts +0 -4
  125. package/lib/ses/ratchet-template-renderer.js +1 -0
  126. package/lib/ses/ready-to-send-email.d.ts +13 -0
  127. package/lib/ses/ready-to-send-email.js +1 -0
  128. package/{dist/types → lib}/ses/remote-handlebars-template-renderer.d.ts +1 -3
  129. package/{dist/es → lib}/ses/remote-handlebars-template-renderer.js +6 -2
  130. package/lib/ses/resolved-ready-to-send-email.d.ts +5 -0
  131. package/lib/ses/resolved-ready-to-send-email.js +1 -0
  132. package/{dist/es → lib}/sns/sns-ratchet.js +4 -2
  133. package/lib/sns/sns-ratchet.spec.d.ts +1 -0
  134. package/lib/sns/sns-ratchet.spec.js +17 -0
  135. package/{dist/types → lib}/sync-lock/dynamo-db-sync-lock.d.ts +2 -2
  136. package/{dist/es → lib}/sync-lock/dynamo-db-sync-lock.js +5 -1
  137. package/lib/sync-lock/dynamo-db-sync-lock.spec.d.ts +1 -0
  138. package/lib/sync-lock/dynamo-db-sync-lock.spec.js +30 -0
  139. package/{dist/types → lib}/sync-lock/memory-sync-lock.d.ts +1 -4
  140. package/{dist/es → lib}/sync-lock/memory-sync-lock.js +3 -4
  141. package/lib/sync-lock/sync-lock-provider.js +1 -0
  142. package/package.json +11 -12
  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 → lib/batch/aws-batch-background-processor.spec.d.ts} +0 -0
  232. /package/{dist/es/cache/simple-cache-read-options.js → lib/batch/aws-batch-ratchet.spec.d.ts} +0 -0
  233. /package/{dist/es → lib}/build/ratchet-aws-info.js +0 -0
  234. /package/{dist/types → lib}/cache/simple-cache-object-wrapper.d.ts +0 -0
  235. /package/{dist/es/cache/simple-cache-storage-provider.js → lib/cache/simple-cache-object-wrapper.js} +0 -0
  236. /package/{dist/types → lib}/cache/simple-cache-read-options.d.ts +0 -0
  237. /package/{dist/es/daemon/daemon-like.js → lib/cache/simple-cache-read-options.js} +0 -0
  238. /package/{dist/es/daemon/daemon-process-create-options.js → lib/cache/simple-cache-storage-provider.js} +0 -0
  239. /package/{dist/es/daemon/daemon-process-state-public-token.js → lib/cache/simple-cache.spec.d.ts} +0 -0
  240. /package/{dist/types → lib}/cloudwatch/cloud-watch-log-group-ratchet.d.ts +0 -0
  241. /package/{dist/es/daemon/daemon-process-state.js → lib/cloudwatch/cloud-watch-log-group-ratchet.spec.d.ts} +0 -0
  242. /package/{dist/types → lib}/cloudwatch/cloud-watch-logs-ratchet.d.ts +0 -0
  243. /package/{dist/es/dao/prototype-dao-config.js → lib/cloudwatch/cloud-watch-logs-ratchet.spec.d.ts} +0 -0
  244. /package/{dist/es/dao/prototype-dao-db.js → lib/cloudwatch/cloud-watch-metrics-ratchet.spec.d.ts} +0 -0
  245. /package/{dist/es/dao/prototype-dao-provider.js → lib/daemon/daemon-like.js} +0 -0
  246. /package/{dist/types → lib}/daemon/daemon-process-create-options.d.ts +0 -0
  247. /package/{dist/es/dao/simple-dao-item.js → lib/daemon/daemon-process-create-options.js} +0 -0
  248. /package/{dist/es/dynamodb/dynamo-ratchet-like.js → lib/daemon/daemon-process-state-public-token.js} +0 -0
  249. /package/{dist/types → lib}/daemon/daemon-process-state.d.ts +0 -0
  250. /package/{dist/es/environment/environment-service-config.js → lib/daemon/daemon-process-state.js} +0 -0
  251. /package/{dist/types → lib}/dao/prototype-dao-config.d.ts +0 -0
  252. /package/{dist/es/environment/environment-service-provider.js → lib/dao/prototype-dao-config.js} +0 -0
  253. /package/{dist/types → lib}/dao/prototype-dao-db.d.ts +0 -0
  254. /package/{dist/es/expiring-code/expiring-code-params.js → lib/dao/prototype-dao-db.js} +0 -0
  255. /package/{dist/es/expiring-code/expiring-code-provider.js → lib/dao/prototype-dao-provider.js} +0 -0
  256. /package/{dist/types → lib}/dao/simple-dao-item.d.ts +0 -0
  257. /package/{dist/es/expiring-code/expiring-code.js → lib/dao/simple-dao-item.js} +0 -0
  258. /package/{dist/es/model/cloud-watch-metrics-minute-level-dynamo-count-request.js → lib/dynamodb/dynamo-ratchet-like.js} +0 -0
  259. /package/{dist/es/model/dynamo-count-result.js → lib/dynamodb/dynamo-ratchet.spec.d.ts} +0 -0
  260. /package/{dist/types → lib}/dynamodb/dynamo-table-ratchet.d.ts +0 -0
  261. /package/{dist/types → lib}/dynamodb/hash-spreader.d.ts +0 -0
  262. /package/{dist/es/model/dynamo/doc-put-item-command-input.js → lib/dynamodb/hash-spreader.spec.d.ts} +0 -0
  263. /package/{dist/es/model/dynamo/doc-query-command-input.js → lib/ec2/ec2-ratchet.spec.d.ts} +0 -0
  264. /package/{dist/es/model/dynamo/doc-scan-command-input.js → lib/environment/environment-service-config.js} +0 -0
  265. /package/{dist/es/model/dynamo/doc-update-item-command-input.js → lib/environment/environment-service-provider.js} +0 -0
  266. /package/{dist/es/runtime-parameter/cached-stored-runtime-parameter.js → lib/environment/environment-service.spec.d.ts} +0 -0
  267. /package/{dist/types → lib}/expiring-code/expiring-code-params.d.ts +0 -0
  268. /package/{dist/es/runtime-parameter/runtime-parameter-provider.js → lib/expiring-code/expiring-code-params.js} +0 -0
  269. /package/{dist/es/runtime-parameter/stored-runtime-parameter.js → lib/expiring-code/expiring-code-provider.js} +0 -0
  270. /package/{dist/es/ses/email-attachment.js → lib/expiring-code/expiring-code-ratchet.spec.d.ts} +0 -0
  271. /package/{dist/types → lib}/expiring-code/expiring-code.d.ts +0 -0
  272. /package/{dist/es/ses/mailer-config.js → lib/expiring-code/expiring-code.js} +0 -0
  273. /package/{dist/es/ses/mailer-like.js → lib/expiring-code/s3-expiring-code-provider.spec.d.ts} +0 -0
  274. /package/{dist/es/ses/ratchet-template-renderer.js → lib/index.d.ts} +0 -0
  275. /package/{dist/es/ses/ready-to-send-email.js → lib/index.js} +0 -0
  276. /package/{dist/types → lib}/lambda/lambda-event-detector.d.ts +0 -0
  277. /package/{dist/es → lib}/lambda/lambda-event-detector.js +0 -0
  278. /package/{dist/types → lib}/lambda/lambda-event-type-guards.d.ts +0 -0
  279. /package/{dist/es/ses/resolved-ready-to-send-email.js → lib/model/cloud-watch-metrics-minute-level-dynamo-count-request.js} +0 -0
  280. /package/{dist/types → lib}/model/cloud-watch-metrics-unit.d.ts +0 -0
  281. /package/{dist/es → lib}/model/cloud-watch-metrics-unit.js +0 -0
  282. /package/{dist/types → lib}/model/dynamo/doc-put-item-command-input.d.ts +0 -0
  283. /package/{dist/types → lib}/model/dynamo/doc-query-command-input.d.ts +0 -0
  284. /package/{dist/types → lib}/model/dynamo/doc-scan-command-input.d.ts +0 -0
  285. /package/{dist/types → lib}/model/dynamo/doc-update-item-command-input.d.ts +0 -0
  286. /package/{dist/types → lib}/model/dynamo-count-result.d.ts +0 -0
  287. /package/{dist/es/sync-lock/sync-lock-provider.js → lib/model/dynamo-count-result.js} +0 -0
  288. /package/{dist/types → lib}/route53/route-53-ratchet.d.ts +0 -0
  289. /package/{dist/types → lib}/runtime-parameter/stored-runtime-parameter.d.ts +0 -0
  290. /package/{dist/types → lib}/s3/s3-location-sync-ratchet.d.ts +0 -0
  291. /package/{dist/types → lib}/s3/s3-ratchet.d.ts +0 -0
  292. /package/{dist/types → lib}/sns/sns-ratchet.d.ts +0 -0
  293. /package/{dist/types → lib}/sync-lock/sync-lock-provider.d.ts +0 -0
@@ -1,8 +1,4 @@
1
- import { EnvironmentServiceProvider } from './environment-service-provider';
2
- /**
3
- * Service for reading environmental variables
4
- * Also hides the decryption detail from higher up services
5
- */
1
+ import { EnvironmentServiceProvider } from './environment-service-provider.js';
6
2
  export declare class SsmEnvironmentServiceProvider<T> implements EnvironmentServiceProvider<T> {
7
3
  private region;
8
4
  private ssmEncrypted;
@@ -1,10 +1,13 @@
1
- import { Logger } from '@bitblit/ratchet-common';
1
+ import { ErrorRatchet } from '@bitblit/ratchet-common/lib/lang/error-ratchet.js';
2
+ import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
3
+ import { RequireRatchet } from '@bitblit/ratchet-common/lib/lang/require-ratchet.js';
4
+ import { StringRatchet } from '@bitblit/ratchet-common/lib/lang/string-ratchet.js';
5
+ import { PromiseRatchet } from '@bitblit/ratchet-common/lib/lang/promise-ratchet.js';
2
6
  import { GetParameterCommand, SSMClient } from '@aws-sdk/client-ssm';
3
- import { PromiseRatchet } from '@bitblit/ratchet-common';
4
- import { RequireRatchet } from '@bitblit/ratchet-common';
5
- import { ErrorRatchet } from '@bitblit/ratchet-common';
6
- import { StringRatchet } from '@bitblit/ratchet-common';
7
7
  export class SsmEnvironmentServiceProvider {
8
+ region;
9
+ ssmEncrypted;
10
+ ssm;
8
11
  constructor(region = 'us-east-1', ssmEncrypted = true) {
9
12
  this.region = region;
10
13
  this.ssmEncrypted = ssmEncrypted;
@@ -28,7 +31,7 @@ export class SsmEnvironmentServiceProvider {
28
31
  const errCode = err['code'] || '';
29
32
  if (errCode.toLowerCase().indexOf('throttlingexception') !== -1) {
30
33
  Logger.warn('Throttled while trying to read parameters - waiting 1 second before allowing retry');
31
- await PromiseRatchet.wait(1000);
34
+ await PromiseRatchet.wait(1_000);
32
35
  }
33
36
  else if (errCode.toLowerCase().indexOf('parameternotfound') !== -1) {
34
37
  const errMsg = Logger.warn('AWS could not find parameter %s - are you using the right AWS key?', name);
@@ -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/lib/lang/require-ratchet.js';
2
+ import { StringRatchet } from '@bitblit/ratchet-common/lib/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/lib/logger/logger.js';
2
+ import { RequireRatchet } from '@bitblit/ratchet-common/lib/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/lib/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/lib/lang/error-ratchet.js';
2
+ import { StringRatchet } from '@bitblit/ratchet-common/lib/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/lib/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/lib/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/lib/lang/require-ratchet.js';
2
+ import { Logger } from '@bitblit/ratchet-common/lib/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/lib/jest/jest-ratchet.js';
3
+ import { RuntimeParameterRatchet } from './runtime-parameter-ratchet.js';
4
+ import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
5
+ import { LoggerLevelName } from '@bitblit/ratchet-common/lib/logger/logger-level-name.js';
6
+ import { PromiseRatchet } from '@bitblit/ratchet-common/lib/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/lib/lang/require-ratchet.js';
2
+ import { ErrorRatchet } from '@bitblit/ratchet-common/lib/lang/error-ratchet.js';
3
+ import { StringRatchet } from '@bitblit/ratchet-common/lib/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/lib/jest/jest-ratchet.js';
3
+ import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
4
+ import { LoggerLevelName } from '@bitblit/ratchet-common/lib/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/lib/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/lib/logger/logger.js';
2
+ import { RequireRatchet } from '@bitblit/ratchet-common/lib/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/lib/logger/logger.js';
3
+ import { LoggerLevelName } from '@bitblit/ratchet-common/lib/logger/logger-level-name.js';
4
+ import { PromiseRatchet } from '@bitblit/ratchet-common/lib/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/lib/logger/logger.js';
3
+ import { RequireRatchet } from '@bitblit/ratchet-common/lib/lang/require-ratchet.js';
4
+ import { StringRatchet } from '@bitblit/ratchet-common/lib/lang/string-ratchet.js';
5
+ import { StopWatch } from '@bitblit/ratchet-common/lib/lang/stop-watch.js';
6
+ import { StreamRatchet } from '@bitblit/ratchet-common/lib/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 {};