@bitblit/ratchet-aws 4.0.420-alpha → 4.0.425-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 (303) hide show
  1. package/lib/batch/aws-batch-background-processor.d.ts +8 -0
  2. package/lib/batch/aws-batch-background-processor.js +46 -0
  3. package/lib/batch/aws-batch-background-processor.js.map +1 -0
  4. package/lib/batch/aws-batch-ratchet.d.ts +13 -0
  5. package/lib/batch/aws-batch-ratchet.js +56 -0
  6. package/lib/batch/aws-batch-ratchet.js.map +1 -0
  7. package/lib/batch/index.d.ts +2 -0
  8. package/lib/batch/index.js +3 -0
  9. package/lib/batch/index.js.map +1 -0
  10. package/lib/build/index.d.ts +1 -0
  11. package/lib/build/index.js +2 -0
  12. package/lib/build/index.js.map +1 -0
  13. package/lib/build/ratchet-aws-info.d.ts +5 -0
  14. package/lib/build/ratchet-aws-info.js +15 -0
  15. package/lib/build/ratchet-aws-info.js.map +1 -0
  16. package/lib/cache/index.d.ts +5 -0
  17. package/lib/cache/index.js +6 -0
  18. package/lib/cache/index.js.map +1 -0
  19. package/lib/cache/memory-storage-provider.d.ts +10 -0
  20. package/lib/cache/memory-storage-provider.js +28 -0
  21. package/lib/cache/memory-storage-provider.js.map +1 -0
  22. package/lib/cache/simple-cache-object-wrapper.d.ts +7 -0
  23. package/lib/cache/simple-cache-object-wrapper.js +2 -0
  24. package/lib/cache/simple-cache-object-wrapper.js.map +1 -0
  25. package/lib/cache/simple-cache-read-options.d.ts +5 -0
  26. package/lib/cache/simple-cache-read-options.js +2 -0
  27. package/lib/cache/simple-cache-read-options.js.map +1 -0
  28. package/lib/cache/simple-cache-storage-provider.d.ts +8 -0
  29. package/lib/cache/simple-cache-storage-provider.js +2 -0
  30. package/lib/cache/simple-cache-storage-provider.js.map +1 -0
  31. package/lib/cache/simple-cache.d.ts +14 -0
  32. package/lib/cache/simple-cache.js +65 -0
  33. package/lib/cache/simple-cache.js.map +1 -0
  34. package/lib/cloudwatch/cloud-watch-log-group-ratchet.d.ts +10 -0
  35. package/lib/cloudwatch/cloud-watch-log-group-ratchet.js +75 -0
  36. package/lib/cloudwatch/cloud-watch-log-group-ratchet.js.map +1 -0
  37. package/lib/cloudwatch/cloud-watch-logs-ratchet.d.ts +15 -0
  38. package/lib/cloudwatch/cloud-watch-logs-ratchet.js +174 -0
  39. package/lib/cloudwatch/cloud-watch-logs-ratchet.js.map +1 -0
  40. package/lib/cloudwatch/cloud-watch-metrics-ratchet.d.ts +10 -0
  41. package/lib/cloudwatch/cloud-watch-metrics-ratchet.js +57 -0
  42. package/lib/cloudwatch/cloud-watch-metrics-ratchet.js.map +1 -0
  43. package/lib/cloudwatch/index.d.ts +3 -0
  44. package/lib/cloudwatch/index.js +4 -0
  45. package/lib/cloudwatch/index.js.map +1 -0
  46. package/lib/daemon/daemon-like.d.ts +16 -0
  47. package/lib/daemon/daemon-like.js +2 -0
  48. package/lib/daemon/daemon-like.js.map +1 -0
  49. package/lib/daemon/daemon-process-create-options.d.ts +7 -0
  50. package/lib/daemon/daemon-process-create-options.js +2 -0
  51. package/lib/daemon/daemon-process-create-options.js.map +1 -0
  52. package/lib/daemon/daemon-process-state-public-token.d.ts +4 -0
  53. package/lib/daemon/daemon-process-state-public-token.js +2 -0
  54. package/lib/daemon/daemon-process-state-public-token.js.map +1 -0
  55. package/lib/daemon/daemon-process-state.d.ts +13 -0
  56. package/lib/daemon/daemon-process-state.js +2 -0
  57. package/lib/daemon/daemon-process-state.js.map +1 -0
  58. package/lib/daemon/daemon-stream-data-options.d.ts +5 -0
  59. package/lib/daemon/daemon-stream-data-options.js +2 -0
  60. package/lib/daemon/daemon-stream-data-options.js.map +1 -0
  61. package/lib/daemon/daemon-util.d.ts +17 -0
  62. package/lib/daemon/daemon-util.js +154 -0
  63. package/lib/daemon/daemon-util.js.map +1 -0
  64. package/lib/daemon/daemon.d.ts +32 -0
  65. package/lib/daemon/daemon.js +129 -0
  66. package/lib/daemon/daemon.js.map +1 -0
  67. package/lib/daemon/index.d.ts +7 -0
  68. package/lib/daemon/index.js +8 -0
  69. package/lib/daemon/index.js.map +1 -0
  70. package/lib/dao/example-prototype-dao-item.d.ts +8 -0
  71. package/lib/dao/example-prototype-dao-item.js +2 -0
  72. package/lib/dao/example-prototype-dao-item.js.map +1 -0
  73. package/lib/dao/index.d.ts +8 -0
  74. package/lib/dao/index.js +9 -0
  75. package/lib/dao/index.js.map +1 -0
  76. package/lib/dao/memory-prototype-dao-provider.d.ts +7 -0
  77. package/lib/dao/memory-prototype-dao-provider.js +11 -0
  78. package/lib/dao/memory-prototype-dao-provider.js.map +1 -0
  79. package/lib/dao/prototype-dao-config.d.ts +8 -0
  80. package/lib/dao/prototype-dao-config.js +2 -0
  81. package/lib/dao/prototype-dao-config.js.map +1 -0
  82. package/lib/dao/prototype-dao-db.d.ts +4 -0
  83. package/lib/dao/prototype-dao-db.js +2 -0
  84. package/lib/dao/prototype-dao-db.js.map +1 -0
  85. package/lib/dao/prototype-dao-provider.d.ts +5 -0
  86. package/lib/dao/prototype-dao-provider.js +2 -0
  87. package/lib/dao/prototype-dao-provider.js.map +1 -0
  88. package/lib/dao/prototype-dao.d.ts +15 -0
  89. package/lib/dao/prototype-dao.js +89 -0
  90. package/lib/dao/prototype-dao.js.map +1 -0
  91. package/lib/dao/s3-simple-dao.d.ts +15 -0
  92. package/lib/dao/s3-simple-dao.js +77 -0
  93. package/lib/dao/s3-simple-dao.js.map +1 -0
  94. package/lib/dao/simple-dao-item.d.ts +5 -0
  95. package/lib/dao/simple-dao-item.js +2 -0
  96. package/lib/dao/simple-dao-item.js.map +1 -0
  97. package/lib/dynamodb/dynamo-ratchet-like.d.ts +25 -0
  98. package/lib/dynamodb/dynamo-ratchet-like.js +2 -0
  99. package/lib/dynamodb/dynamo-ratchet-like.js.map +1 -0
  100. package/lib/dynamodb/dynamo-ratchet.d.ts +34 -0
  101. package/lib/dynamodb/dynamo-ratchet.js +671 -0
  102. package/lib/dynamodb/dynamo-ratchet.js.map +1 -0
  103. package/lib/dynamodb/dynamo-table-ratchet.d.ts +13 -0
  104. package/lib/dynamodb/dynamo-table-ratchet.js +140 -0
  105. package/lib/dynamodb/dynamo-table-ratchet.js.map +1 -0
  106. package/lib/dynamodb/hash-spreader.d.ts +15 -0
  107. package/lib/dynamodb/hash-spreader.js +66 -0
  108. package/lib/dynamodb/hash-spreader.js.map +1 -0
  109. package/lib/dynamodb/impl/dynamo-db-storage-provider.d.ts +25 -0
  110. package/lib/dynamodb/impl/dynamo-db-storage-provider.js +110 -0
  111. package/lib/dynamodb/impl/dynamo-db-storage-provider.js.map +1 -0
  112. package/lib/dynamodb/impl/dynamo-db-sync-lock.d.ts +10 -0
  113. package/lib/dynamodb/impl/dynamo-db-sync-lock.js +71 -0
  114. package/lib/dynamodb/impl/dynamo-db-sync-lock.js.map +1 -0
  115. package/lib/dynamodb/impl/dynamo-expiring-code-provider.d.ts +12 -0
  116. package/lib/dynamodb/impl/dynamo-expiring-code-provider.js +25 -0
  117. package/lib/dynamodb/impl/dynamo-expiring-code-provider.js.map +1 -0
  118. package/lib/dynamodb/impl/dynamo-runtime-parameter-provider.d.ts +11 -0
  119. package/lib/dynamodb/impl/dynamo-runtime-parameter-provider.js +37 -0
  120. package/lib/dynamodb/impl/dynamo-runtime-parameter-provider.js.map +1 -0
  121. package/lib/dynamodb/index.d.ts +8 -0
  122. package/lib/dynamodb/index.js +9 -0
  123. package/lib/dynamodb/index.js.map +1 -0
  124. package/lib/ec2/ec2-ratchet.d.ts +16 -0
  125. package/lib/ec2/ec2-ratchet.js +114 -0
  126. package/lib/ec2/ec2-ratchet.js.map +1 -0
  127. package/lib/ec2/index.d.ts +1 -0
  128. package/lib/ec2/index.js +2 -0
  129. package/lib/ec2/index.js.map +1 -0
  130. package/lib/ecr/ecr-unused-image-cleaner-options.d.ts +7 -0
  131. package/lib/ecr/ecr-unused-image-cleaner-options.js +2 -0
  132. package/lib/ecr/ecr-unused-image-cleaner-options.js.map +1 -0
  133. package/lib/ecr/ecr-unused-image-cleaner-output.d.ts +7 -0
  134. package/lib/ecr/ecr-unused-image-cleaner-output.js +2 -0
  135. package/lib/ecr/ecr-unused-image-cleaner-output.js.map +1 -0
  136. package/lib/ecr/ecr-unused-image-cleaner-repository-output.d.ts +8 -0
  137. package/lib/ecr/ecr-unused-image-cleaner-repository-output.js +2 -0
  138. package/lib/ecr/ecr-unused-image-cleaner-repository-output.js.map +1 -0
  139. package/lib/ecr/ecr-unused-image-cleaner.d.ts +18 -0
  140. package/lib/ecr/ecr-unused-image-cleaner.js +136 -0
  141. package/lib/ecr/ecr-unused-image-cleaner.js.map +1 -0
  142. package/lib/ecr/index.d.ts +9 -0
  143. package/lib/ecr/index.js +10 -0
  144. package/lib/ecr/index.js.map +1 -0
  145. package/lib/ecr/retained-image-descriptor.d.ts +6 -0
  146. package/lib/ecr/retained-image-descriptor.js +2 -0
  147. package/lib/ecr/retained-image-descriptor.js.map +1 -0
  148. package/lib/ecr/retained-image-reason.d.ts +4 -0
  149. package/lib/ecr/retained-image-reason.js +6 -0
  150. package/lib/ecr/retained-image-reason.js.map +1 -0
  151. package/lib/ecr/used-image-finder.d.ts +3 -0
  152. package/lib/ecr/used-image-finder.js +2 -0
  153. package/lib/ecr/used-image-finder.js.map +1 -0
  154. package/lib/ecr/used-image-finders/aws-batch-used-image-finder.d.ts +8 -0
  155. package/lib/ecr/used-image-finders/aws-batch-used-image-finder.js +32 -0
  156. package/lib/ecr/used-image-finders/aws-batch-used-image-finder.js.map +1 -0
  157. package/lib/ecr/used-image-finders/lambda-used-image-finder.d.ts +8 -0
  158. package/lib/ecr/used-image-finders/lambda-used-image-finder.js +40 -0
  159. package/lib/ecr/used-image-finders/lambda-used-image-finder.js.map +1 -0
  160. package/lib/environment/cascade-environment-service-provider.d.ts +6 -0
  161. package/lib/environment/cascade-environment-service-provider.js +25 -0
  162. package/lib/environment/cascade-environment-service-provider.js.map +1 -0
  163. package/lib/environment/env-var-environment-service-provider.d.ts +6 -0
  164. package/lib/environment/env-var-environment-service-provider.js +31 -0
  165. package/lib/environment/env-var-environment-service-provider.js.map +1 -0
  166. package/lib/environment/environment-service-config.d.ts +4 -0
  167. package/lib/environment/environment-service-config.js +2 -0
  168. package/lib/environment/environment-service-config.js.map +1 -0
  169. package/lib/environment/environment-service-provider.d.ts +3 -0
  170. package/lib/environment/environment-service-provider.js +2 -0
  171. package/lib/environment/environment-service-provider.js.map +1 -0
  172. package/lib/environment/environment-service.d.ts +11 -0
  173. package/lib/environment/environment-service.js +51 -0
  174. package/lib/environment/environment-service.js.map +1 -0
  175. package/lib/environment/fixed-environment-service-provider.d.ts +7 -0
  176. package/lib/environment/fixed-environment-service-provider.js +22 -0
  177. package/lib/environment/fixed-environment-service-provider.js.map +1 -0
  178. package/lib/environment/index.d.ts +7 -0
  179. package/lib/environment/index.js +8 -0
  180. package/lib/environment/index.js.map +1 -0
  181. package/lib/environment/ssm-environment-service-provider.d.ts +8 -0
  182. package/lib/environment/ssm-environment-service-provider.js +59 -0
  183. package/lib/environment/ssm-environment-service-provider.js.map +1 -0
  184. package/lib/expiring-code/expiring-code-params.d.ts +7 -0
  185. package/lib/expiring-code/expiring-code-params.js +2 -0
  186. package/lib/expiring-code/expiring-code-params.js.map +1 -0
  187. package/lib/expiring-code/expiring-code-provider.d.ts +5 -0
  188. package/lib/expiring-code/expiring-code-provider.js +2 -0
  189. package/lib/expiring-code/expiring-code-provider.js.map +1 -0
  190. package/lib/expiring-code/expiring-code-ratchet.d.ts +10 -0
  191. package/lib/expiring-code/expiring-code-ratchet.js +35 -0
  192. package/lib/expiring-code/expiring-code-ratchet.js.map +1 -0
  193. package/lib/expiring-code/expiring-code.d.ts +6 -0
  194. package/lib/expiring-code/expiring-code.js +2 -0
  195. package/lib/expiring-code/expiring-code.js.map +1 -0
  196. package/lib/expiring-code/index.d.ts +4 -0
  197. package/lib/expiring-code/index.js +5 -0
  198. package/lib/expiring-code/index.js.map +1 -0
  199. package/lib/iam/aws-credentials-ratchet.d.ts +4 -0
  200. package/lib/iam/aws-credentials-ratchet.js +19 -0
  201. package/lib/iam/aws-credentials-ratchet.js.map +1 -0
  202. package/lib/iam/index.d.ts +1 -0
  203. package/lib/iam/index.js +2 -0
  204. package/lib/iam/index.js.map +1 -0
  205. package/lib/lambda/index.d.ts +2 -0
  206. package/lib/lambda/index.js +3 -0
  207. package/lib/lambda/index.js.map +1 -0
  208. package/lib/lambda/lambda-event-detector.d.ts +15 -0
  209. package/lib/lambda/lambda-event-detector.js +42 -0
  210. package/lib/lambda/lambda-event-detector.js.map +1 -0
  211. package/lib/lambda/lambda-event-type-guards.d.ts +11 -0
  212. package/lib/lambda/lambda-event-type-guards.js +28 -0
  213. package/lib/lambda/lambda-event-type-guards.js.map +1 -0
  214. package/lib/model/cloud-watch-metrics-minute-level-dynamo-count-request.d.ts +12 -0
  215. package/lib/model/cloud-watch-metrics-minute-level-dynamo-count-request.js +2 -0
  216. package/lib/model/cloud-watch-metrics-minute-level-dynamo-count-request.js.map +1 -0
  217. package/lib/model/dynamo-count-result.d.ts +5 -0
  218. package/lib/model/dynamo-count-result.js +2 -0
  219. package/lib/model/dynamo-count-result.js.map +1 -0
  220. package/lib/model/index.d.ts +2 -0
  221. package/lib/model/index.js +3 -0
  222. package/lib/model/index.js.map +1 -0
  223. package/lib/route53/index.d.ts +1 -0
  224. package/lib/route53/index.js +2 -0
  225. package/lib/route53/index.js.map +1 -0
  226. package/lib/route53/route-53-ratchet.d.ts +8 -0
  227. package/lib/route53/route-53-ratchet.js +59 -0
  228. package/lib/route53/route-53-ratchet.js.map +1 -0
  229. package/lib/runtime-parameter/cached-stored-runtime-parameter.d.ts +4 -0
  230. package/lib/runtime-parameter/cached-stored-runtime-parameter.js +2 -0
  231. package/lib/runtime-parameter/cached-stored-runtime-parameter.js.map +1 -0
  232. package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.d.ts +17 -0
  233. package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.js +52 -0
  234. package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.js.map +1 -0
  235. package/lib/runtime-parameter/index.d.ts +6 -0
  236. package/lib/runtime-parameter/index.js +7 -0
  237. package/lib/runtime-parameter/index.js.map +1 -0
  238. package/lib/runtime-parameter/memory-runtime-parameter-provider.d.ts +10 -0
  239. package/lib/runtime-parameter/memory-runtime-parameter-provider.js +35 -0
  240. package/lib/runtime-parameter/memory-runtime-parameter-provider.js.map +1 -0
  241. package/lib/runtime-parameter/runtime-parameter-provider.d.ts +6 -0
  242. package/lib/runtime-parameter/runtime-parameter-provider.js +2 -0
  243. package/lib/runtime-parameter/runtime-parameter-provider.js.map +1 -0
  244. package/lib/runtime-parameter/runtime-parameter-ratchet.d.ts +15 -0
  245. package/lib/runtime-parameter/runtime-parameter-ratchet.js +72 -0
  246. package/lib/runtime-parameter/runtime-parameter-ratchet.js.map +1 -0
  247. package/lib/runtime-parameter/stored-runtime-parameter.d.ts +6 -0
  248. package/lib/runtime-parameter/stored-runtime-parameter.js +2 -0
  249. package/lib/runtime-parameter/stored-runtime-parameter.js.map +1 -0
  250. package/lib/s3/expanded-file-children.d.ts +5 -0
  251. package/lib/s3/expanded-file-children.js +2 -0
  252. package/lib/s3/expanded-file-children.js.map +1 -0
  253. package/lib/s3/impl/s3-environment-service-provider.d.ts +15 -0
  254. package/lib/s3/impl/s3-environment-service-provider.js +28 -0
  255. package/lib/s3/impl/s3-environment-service-provider.js.map +1 -0
  256. package/lib/s3/impl/s3-expiring-code-provider.d.ts +17 -0
  257. package/lib/s3/impl/s3-expiring-code-provider.js +49 -0
  258. package/lib/s3/impl/s3-expiring-code-provider.js.map +1 -0
  259. package/lib/s3/impl/s3-prototype-dao-provider.d.ts +10 -0
  260. package/lib/s3/impl/s3-prototype-dao-provider.js +27 -0
  261. package/lib/s3/impl/s3-prototype-dao-provider.js.map +1 -0
  262. package/lib/s3/impl/s3-storage-provider.d.ts +14 -0
  263. package/lib/s3/impl/s3-storage-provider.js +44 -0
  264. package/lib/s3/impl/s3-storage-provider.js.map +1 -0
  265. package/lib/s3/index.d.ts +9 -0
  266. package/lib/s3/index.js +10 -0
  267. package/lib/s3/index.js.map +1 -0
  268. package/lib/s3/s3-cache-ratchet-like.d.ts +25 -0
  269. package/lib/s3/s3-cache-ratchet-like.js +2 -0
  270. package/lib/s3/s3-cache-ratchet-like.js.map +1 -0
  271. package/lib/s3/s3-cache-ratchet.d.ts +35 -0
  272. package/lib/s3/s3-cache-ratchet.js +360 -0
  273. package/lib/s3/s3-cache-ratchet.js.map +1 -0
  274. package/lib/s3/s3-location-sync-ratchet.d.ts +21 -0
  275. package/lib/s3/s3-location-sync-ratchet.js +140 -0
  276. package/lib/s3/s3-location-sync-ratchet.js.map +1 -0
  277. package/lib/s3/s3-ratchet.d.ts +5 -0
  278. package/lib/s3/s3-ratchet.js +23 -0
  279. package/lib/s3/s3-ratchet.js.map +1 -0
  280. package/lib/ses/index.d.ts +1 -0
  281. package/lib/ses/index.js +2 -0
  282. package/lib/ses/index.js.map +1 -0
  283. package/lib/ses/ses-mail-sending-provider.d.ts +15 -0
  284. package/lib/ses/ses-mail-sending-provider.js +68 -0
  285. package/lib/ses/ses-mail-sending-provider.js.map +1 -0
  286. package/lib/sns/index.d.ts +1 -0
  287. package/lib/sns/index.js +2 -0
  288. package/lib/sns/index.js.map +1 -0
  289. package/lib/sns/sns-ratchet.d.ts +9 -0
  290. package/lib/sns/sns-ratchet.js +49 -0
  291. package/lib/sns/sns-ratchet.js.map +1 -0
  292. package/lib/sync-lock/index.d.ts +2 -0
  293. package/lib/sync-lock/index.js +3 -0
  294. package/lib/sync-lock/index.js.map +1 -0
  295. package/lib/sync-lock/memory-sync-lock.d.ts +8 -0
  296. package/lib/sync-lock/memory-sync-lock.js +36 -0
  297. package/lib/sync-lock/memory-sync-lock.js.map +1 -0
  298. package/lib/sync-lock/sync-lock-provider.d.ts +5 -0
  299. package/lib/sync-lock/sync-lock-provider.js +2 -0
  300. package/lib/sync-lock/sync-lock-provider.js.map +1 -0
  301. package/package.json +55 -56
  302. package/lib/index.mjs +0 -2
  303. package/lib/types.d.ts +0 -818
@@ -0,0 +1,8 @@
1
+ import { SubmitJobCommandOutput } from '@aws-sdk/client-batch';
2
+ import { AwsBatchRatchet } from './aws-batch-ratchet.js';
3
+ export declare class AwsBatchBackgroundProcessor {
4
+ private batchRatchet;
5
+ private validTaskNames?;
6
+ constructor(batchRatchet: AwsBatchRatchet, validTaskNames?: string[]);
7
+ scheduleBackgroundTask(taskName: string, data?: Record<string, any>, meta?: Record<string, any>): Promise<SubmitJobCommandOutput>;
8
+ }
@@ -0,0 +1,46 @@
1
+ import { DateTime } from 'luxon';
2
+ import { RequireRatchet } from '@bitblit/ratchet-common/lang/require-ratchet';
3
+ import { StringRatchet } from '@bitblit/ratchet-common/lang/string-ratchet';
4
+ import { ErrorRatchet } from '@bitblit/ratchet-common/lang/error-ratchet';
5
+ import { Logger } from '@bitblit/ratchet-common/logger/logger';
6
+ export class AwsBatchBackgroundProcessor {
7
+ batchRatchet;
8
+ validTaskNames;
9
+ constructor(batchRatchet, validTaskNames) {
10
+ this.batchRatchet = batchRatchet;
11
+ this.validTaskNames = validTaskNames;
12
+ RequireRatchet.notNullOrUndefined(this.batchRatchet, 'batchRatchet');
13
+ RequireRatchet.notNullOrUndefined(this.batchRatchet.batchClient, 'batchRatchet.batchClient');
14
+ RequireRatchet.notNullOrUndefined(this.batchRatchet.defaultJobDefinition, 'batchRatchet.defaultJobDefinition');
15
+ RequireRatchet.notNullOrUndefined(this.batchRatchet.defaultQueueName, 'batchRatchet.defaultQueueName');
16
+ }
17
+ async scheduleBackgroundTask(taskName, data = {}, meta = {}) {
18
+ if (this.validTaskNames &&
19
+ this.validTaskNames.length &&
20
+ (!StringRatchet.trimToNull(taskName) || !this.validTaskNames.includes(taskName))) {
21
+ ErrorRatchet.throwFormattedErr('Cannot start task %s - not found in valid task list', taskName);
22
+ }
23
+ Logger.info('Submitting background task to AWS batch: %s %j %s', taskName, data, this.batchRatchet.defaultQueueName);
24
+ let rval = null;
25
+ const jobName = `${this.batchRatchet.defaultJobDefinition}-${taskName}_${DateTime.utc().toFormat('yyyy-MM-dd-HH-mm')}`;
26
+ const options = {
27
+ jobName: jobName,
28
+ jobDefinition: this.batchRatchet.defaultJobDefinition,
29
+ jobQueue: this.batchRatchet.defaultQueueName,
30
+ parameters: {
31
+ taskName,
32
+ taskData: JSON.stringify(data),
33
+ taskMetadata: JSON.stringify(meta),
34
+ },
35
+ };
36
+ try {
37
+ rval = await this.batchRatchet.scheduleJob(options);
38
+ Logger.info('Job %s(%s) submitted', rval.jobName, rval.jobId);
39
+ }
40
+ catch (err) {
41
+ Logger.error('Cannot submit batch job taskName: %s jobDef: %s queue: %s jobName: %s data: %j', taskName, this.batchRatchet.defaultJobDefinition, this.batchRatchet.defaultQueueName, jobName, data, err);
42
+ }
43
+ return rval;
44
+ }
45
+ }
46
+ //# sourceMappingURL=aws-batch-background-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-batch-background-processor.js","sourceRoot":"","sources":["../../src/batch/aws-batch-background-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAM/D,MAAM,OAAO,2BAA2B;IAE5B;IACA;IAFV,YACU,YAA6B,EAC7B,cAAyB;QADzB,iBAAY,GAAZ,YAAY,CAAiB;QAC7B,mBAAc,GAAd,cAAc,CAAW;QAEjC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACrE,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;QAC7F,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,mCAAmC,CAAC,CAAC;QAC/G,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;IACzG,CAAC;IAEM,KAAK,CAAC,sBAAsB,CACjC,QAAgB,EAChB,OAA4B,EAAE,EAC9B,OAA4B,EAAE;QAE9B,IACE,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,cAAc,CAAC,MAAM;YAC1B,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAChF,CAAC;YACD,YAAY,CAAC,iBAAiB,CAAC,qDAAqD,EAAE,QAAQ,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAErH,IAAI,IAAI,GAA2B,IAAI,CAAC;QAExC,MAAM,OAAO,GAAW,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAE/H,MAAM,OAAO,GAA0B;YACrC,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,oBAAoB;YACrD,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB;YAC5C,UAAU,EAAE;gBACV,QAAQ;gBACR,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC9B,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACnC;SACF,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CACV,gFAAgF,EAChF,QAAQ,EACR,IAAI,CAAC,YAAY,CAAC,oBAAoB,EACtC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAClC,OAAO,EACP,IAAI,EACJ,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { BatchClient, JobStatus, JobSummary, SubmitJobCommandInput, SubmitJobCommandOutput } from '@aws-sdk/client-batch';
2
+ export declare class AwsBatchRatchet {
3
+ private _batchClient;
4
+ private _defaultQueueName?;
5
+ private _defaultJobDefinition?;
6
+ constructor(_batchClient: BatchClient, _defaultQueueName?: string, _defaultJobDefinition?: string);
7
+ get batchClient(): BatchClient;
8
+ get defaultQueueName(): string;
9
+ get defaultJobDefinition(): string;
10
+ scheduleJob(options: SubmitJobCommandInput): Promise<SubmitJobCommandOutput>;
11
+ jobCountInState(jobStatus: JobStatus, queueName?: string): Promise<number>;
12
+ listJobs(queueName?: string, jobStatus?: JobStatus): Promise<JobSummary[]>;
13
+ }
@@ -0,0 +1,56 @@
1
+ import { ListJobsCommand, SubmitJobCommand, } from '@aws-sdk/client-batch';
2
+ import { Logger } from '@bitblit/ratchet-common/logger/logger';
3
+ import { RequireRatchet } from '@bitblit/ratchet-common/lang/require-ratchet';
4
+ export class AwsBatchRatchet {
5
+ _batchClient;
6
+ _defaultQueueName;
7
+ _defaultJobDefinition;
8
+ constructor(_batchClient, _defaultQueueName, _defaultJobDefinition) {
9
+ this._batchClient = _batchClient;
10
+ this._defaultQueueName = _defaultQueueName;
11
+ this._defaultJobDefinition = _defaultJobDefinition;
12
+ }
13
+ get batchClient() {
14
+ return this._batchClient;
15
+ }
16
+ get defaultQueueName() {
17
+ return this._defaultQueueName;
18
+ }
19
+ get defaultJobDefinition() {
20
+ return this._defaultJobDefinition;
21
+ }
22
+ async scheduleJob(options) {
23
+ Logger.info('Submitting batch job %s', options.jobName);
24
+ try {
25
+ const rval = await this._batchClient.send(new SubmitJobCommand(options));
26
+ Logger.info('Job %s(%s) submitted', rval.jobName, rval.jobId);
27
+ return rval;
28
+ }
29
+ catch (err) {
30
+ Logger.error('Cannot submit batch job %s: %s', options.jobName, err);
31
+ }
32
+ return null;
33
+ }
34
+ async jobCountInState(jobStatus, queueName = this.defaultQueueName) {
35
+ const all = await this.listJobs(queueName, jobStatus);
36
+ return all.length;
37
+ }
38
+ async listJobs(queueName = this.defaultQueueName, jobStatus = null) {
39
+ RequireRatchet.notNullOrUndefined(queueName, 'queueName');
40
+ let rval = [];
41
+ const request = {
42
+ jobQueue: queueName,
43
+ jobStatus: jobStatus,
44
+ nextToken: null,
45
+ };
46
+ Logger.info('Fetching %j', request);
47
+ do {
48
+ Logger.info('Pulling page...');
49
+ const tmp = await this._batchClient.send(new ListJobsCommand(request));
50
+ rval = rval.concat(tmp.jobSummaryList);
51
+ request.nextToken = tmp.nextToken;
52
+ } while (request.nextToken);
53
+ return rval;
54
+ }
55
+ }
56
+ //# sourceMappingURL=aws-batch-ratchet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-batch-ratchet.js","sourceRoot":"","sources":["../../src/batch/aws-batch-ratchet.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,EAGf,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAK9E,MAAM,OAAO,eAAe;IAEhB;IACA;IACA;IAHV,YACU,YAAyB,EACzB,iBAA0B,EAC1B,qBAA8B;QAF9B,iBAAY,GAAZ,YAAY,CAAa;QACzB,sBAAiB,GAAjB,iBAAiB,CAAS;QAC1B,0BAAqB,GAArB,qBAAqB,CAAS;IACrC,CAAC;IAEJ,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD,IAAW,oBAAoB;QAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAA8B;QACrD,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,GAA2B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;YACjG,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,SAAoB,EAAE,YAAoB,IAAI,CAAC,gBAAgB;QAC1F,MAAM,GAAG,GAAiB,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,YAAoB,IAAI,CAAC,gBAAgB,EAAE,YAAuB,IAAI;QAC1F,cAAc,CAAC,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC1D,IAAI,IAAI,GAAiB,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAyB;YACpC,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACpC,GAAG,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/B,MAAM,GAAG,GAA0B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9F,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACvC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QACpC,CAAC,QAAQ,OAAO,CAAC,SAAS,EAAE;QAE5B,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from './aws-batch-background-processor.js';
2
+ export * from './aws-batch-ratchet.js';
@@ -0,0 +1,3 @@
1
+ export * from './aws-batch-background-processor.js';
2
+ export * from './aws-batch-ratchet.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAIA,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './ratchet-aws-info.js';
@@ -0,0 +1,2 @@
1
+ export * from './ratchet-aws-info.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/build/index.ts"],"names":[],"mappings":"AAIA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { BuildInformation } from '@bitblit/ratchet-common/build/build-information';
2
+ export declare class RatchetAwsInfo {
3
+ private constructor();
4
+ static buildInformation(): BuildInformation;
5
+ }
@@ -0,0 +1,15 @@
1
+ export class RatchetAwsInfo {
2
+ constructor() { }
3
+ static buildInformation() {
4
+ const val = {
5
+ version: 'LOCAL-SNAPSHOT',
6
+ hash: 'LOCAL-HASH',
7
+ branch: 'LOCAL-BRANCH',
8
+ tag: 'LOCAL-TAG',
9
+ timeBuiltISO: 'LOCAL-TIME-ISO',
10
+ notes: 'LOCAL-NOTES',
11
+ };
12
+ return val;
13
+ }
14
+ }
15
+ //# sourceMappingURL=ratchet-aws-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratchet-aws-info.js","sourceRoot":"","sources":["../../src/build/ratchet-aws-info.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IAGzB,gBAAuB,CAAC;IAEjB,MAAM,CAAC,gBAAgB;QAC5B,MAAM,GAAG,GAAqB;YAC5B,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,gBAAgB;YAC9B,KAAK,EAAE,aAAa;SACrB,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export * from './memory-storage-provider.js';
2
+ export * from './simple-cache-object-wrapper.js';
3
+ export * from './simple-cache-read-options.js';
4
+ export * from './simple-cache-storage-provider.js';
5
+ export * from './simple-cache.js';
@@ -0,0 +1,6 @@
1
+ export * from './memory-storage-provider.js';
2
+ export * from './simple-cache-object-wrapper.js';
3
+ export * from './simple-cache-read-options.js';
4
+ export * from './simple-cache-storage-provider.js';
5
+ export * from './simple-cache.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAIA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper.js';
2
+ import { SimpleCacheStorageProvider } from './simple-cache-storage-provider.js';
3
+ export declare class MemoryStorageProvider implements SimpleCacheStorageProvider {
4
+ private _cache;
5
+ readFromCache<T>(cacheKey: string): Promise<SimpleCacheObjectWrapper<T>>;
6
+ storeInCache<T>(value: SimpleCacheObjectWrapper<T>): Promise<boolean>;
7
+ removeFromCache(cacheKey: string): Promise<void>;
8
+ clearCache(): Promise<number>;
9
+ readAll(): Promise<SimpleCacheObjectWrapper<any>[]>;
10
+ }
@@ -0,0 +1,28 @@
1
+ export class MemoryStorageProvider {
2
+ _cache = new Map();
3
+ async readFromCache(cacheKey) {
4
+ return this._cache.get(cacheKey);
5
+ }
6
+ async storeInCache(value) {
7
+ let rval = false;
8
+ if (value?.cacheKey) {
9
+ this._cache.set(value.cacheKey, value);
10
+ rval = true;
11
+ }
12
+ return rval;
13
+ }
14
+ async removeFromCache(cacheKey) {
15
+ if (cacheKey) {
16
+ this._cache.delete(cacheKey);
17
+ }
18
+ }
19
+ async clearCache() {
20
+ const rval = this._cache.size;
21
+ this._cache = new Map();
22
+ return rval;
23
+ }
24
+ async readAll() {
25
+ return Array.from(this._cache.values());
26
+ }
27
+ }
28
+ //# sourceMappingURL=memory-storage-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-storage-provider.js","sourceRoot":"","sources":["../../src/cache/memory-storage-provider.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,qBAAqB;IACxB,MAAM,GAA+C,IAAI,GAAG,EAAyC,CAAC;IAEvG,KAAK,CAAC,aAAa,CAAI,QAAgB;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,YAAY,CAAI,KAAkC;QAC7D,IAAI,IAAI,GAAY,KAAK,CAAC;QAC1B,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,QAAgB;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAyC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ export interface SimpleCacheObjectWrapper<T> {
2
+ cacheKey: string;
3
+ createdEpochMS: number;
4
+ expiresEpochMS: number;
5
+ value: T;
6
+ generated: boolean;
7
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=simple-cache-object-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-cache-object-wrapper.js","sourceRoot":"","sources":["../../src/cache/simple-cache-object-wrapper.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export interface SimpleCacheReadOptions {
2
+ maxStalenessMS: number;
3
+ timeToLiveMS: number;
4
+ cacheNullValues: boolean;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=simple-cache-read-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-cache-read-options.js","sourceRoot":"","sources":["../../src/cache/simple-cache-read-options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper.js';
2
+ export interface SimpleCacheStorageProvider {
3
+ readFromCache<T>(cacheKey: string): Promise<SimpleCacheObjectWrapper<T>>;
4
+ storeInCache<T>(value: SimpleCacheObjectWrapper<T>): Promise<boolean>;
5
+ removeFromCache(cacheKey: string): Promise<void>;
6
+ clearCache(): Promise<number>;
7
+ readAll(): Promise<SimpleCacheObjectWrapper<any>[]>;
8
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=simple-cache-storage-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-cache-storage-provider.js","sourceRoot":"","sources":["../../src/cache/simple-cache-storage-provider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { SimpleCacheStorageProvider } from './simple-cache-storage-provider.js';
2
+ import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper.js';
3
+ import { SimpleCacheReadOptions } from './simple-cache-read-options.js';
4
+ export declare class SimpleCache {
5
+ private provider;
6
+ private defaultTimeToLiveMS;
7
+ constructor(provider: SimpleCacheStorageProvider, defaultTimeToLiveMS?: number);
8
+ createDefaultReadOptions(): SimpleCacheReadOptions;
9
+ fetchWrapper<T>(cacheKey: string, producer: () => Promise<T>, opts?: SimpleCacheReadOptions): Promise<SimpleCacheObjectWrapper<T>>;
10
+ fetch<T>(cacheKey: string, producer: () => Promise<T>, opts?: SimpleCacheReadOptions): Promise<T>;
11
+ removeFromCache<T>(cacheKey: string, returnOldValue?: boolean): Promise<SimpleCacheObjectWrapper<T>>;
12
+ clearCache(): Promise<number>;
13
+ readAll(): Promise<SimpleCacheObjectWrapper<any>[]>;
14
+ }
@@ -0,0 +1,65 @@
1
+ import { Logger } from '@bitblit/ratchet-common/logger/logger';
2
+ export class SimpleCache {
3
+ provider;
4
+ defaultTimeToLiveMS;
5
+ constructor(provider, defaultTimeToLiveMS = 1_000 * 60) {
6
+ this.provider = provider;
7
+ this.defaultTimeToLiveMS = defaultTimeToLiveMS;
8
+ }
9
+ createDefaultReadOptions() {
10
+ return {
11
+ maxStalenessMS: null,
12
+ timeToLiveMS: this.defaultTimeToLiveMS,
13
+ cacheNullValues: false,
14
+ };
15
+ }
16
+ async fetchWrapper(cacheKey, producer, opts = this.createDefaultReadOptions()) {
17
+ Logger.silly('Fetching %s', cacheKey);
18
+ const now = new Date().getTime();
19
+ let rval = await this.provider.readFromCache(cacheKey);
20
+ if (rval && rval.expiresEpochMS < now) {
21
+ Logger.debug('Object found, but expired - removing');
22
+ rval = null;
23
+ }
24
+ if (rval && opts && opts.maxStalenessMS && now - rval.createdEpochMS > opts.maxStalenessMS) {
25
+ Logger.debug('Object found by too stale - removing');
26
+ rval = null;
27
+ }
28
+ if (!rval) {
29
+ Logger.debug('%s not found in cache, generating', cacheKey);
30
+ const tmp = await producer();
31
+ if (tmp || opts?.cacheNullValues) {
32
+ Logger.debug('Writing %j to cache');
33
+ rval = {
34
+ cacheKey: cacheKey,
35
+ createdEpochMS: now,
36
+ expiresEpochMS: opts && opts.timeToLiveMS ? now + opts.timeToLiveMS : null,
37
+ value: tmp,
38
+ generated: false,
39
+ };
40
+ await this.provider.storeInCache(rval);
41
+ rval.generated = true;
42
+ }
43
+ }
44
+ return rval;
45
+ }
46
+ async fetch(cacheKey, producer, opts = null) {
47
+ const wrapper = await this.fetchWrapper(cacheKey, producer, opts);
48
+ return wrapper ? wrapper.value : null;
49
+ }
50
+ async removeFromCache(cacheKey, returnOldValue) {
51
+ let rval = null;
52
+ if (returnOldValue) {
53
+ rval = await this.fetchWrapper(cacheKey, () => null);
54
+ }
55
+ await this.provider.removeFromCache(cacheKey);
56
+ return rval;
57
+ }
58
+ async clearCache() {
59
+ return this.provider.clearCache();
60
+ }
61
+ async readAll() {
62
+ return this.provider.readAll();
63
+ }
64
+ }
65
+ //# sourceMappingURL=simple-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-cache.js","sourceRoot":"","sources":["../../src/cache/simple-cache.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAK/D,MAAM,OAAO,WAAW;IAGZ;IACA;IAFV,YACU,QAAoC,EACpC,sBAA8B,KAAK,GAAG,EAAE;QADxC,aAAQ,GAAR,QAAQ,CAA4B;QACpC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAC/C,CAAC;IAEG,wBAAwB;QAC7B,OAAO;YACL,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,IAAI,CAAC,mBAAmB;YACtC,eAAe,EAAE,KAAK;SACvB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,QAAgB,EAChB,QAA0B,EAC1B,OAA+B,IAAI,CAAC,wBAAwB,EAAE;QAE9D,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACtC,MAAM,GAAG,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,IAAI,GAAgC,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpF,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACrD,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3F,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACrD,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,QAAQ,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAM,MAAM,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,IAAI,IAAI,EAAE,eAAe,EAAE,CAAC;gBACjC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACpC,IAAI,GAAG;oBACL,QAAQ,EAAE,QAAQ;oBAClB,cAAc,EAAE,GAAG;oBACnB,cAAc,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;oBAC1E,KAAK,EAAE,GAAG;oBACV,SAAS,EAAE,KAAK;iBACjB,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,KAAK,CAAI,QAAgB,EAAE,QAA0B,EAAE,OAA+B,IAAI;QACrG,MAAM,OAAO,GAAgC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAI,QAAgB,EAAE,cAAwB;QACxE,IAAI,IAAI,GAAgC,IAAI,CAAC;QAC7C,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { CloudWatchLogsClient, FilteredLogEvent, LogStream } from '@aws-sdk/client-cloudwatch-logs';
2
+ export declare class CloudWatchLogGroupRatchet {
3
+ private logGroup;
4
+ private awsCWLogs;
5
+ constructor(logGroup: string, awsCWLogs?: CloudWatchLogsClient);
6
+ get cloudWatchLogsClient(): CloudWatchLogsClient;
7
+ readLogStreams(startTimestamp?: number, endTimestamp?: number): Promise<LogStream[]>;
8
+ readLogStreamNames(startTimestamp?: number, endTimestamp?: number): Promise<string[]>;
9
+ readEvents(filter: string, startTimestamp?: number, endTimestamp?: number, sortEvents?: boolean, maxEvents?: number): Promise<FilteredLogEvent[]>;
10
+ }
@@ -0,0 +1,75 @@
1
+ import { CloudWatchLogsClient, DescribeLogStreamsCommand, FilterLogEventsCommand, } from '@aws-sdk/client-cloudwatch-logs';
2
+ import { Logger } from '@bitblit/ratchet-common/logger/logger';
3
+ import { StopWatch } from '@bitblit/ratchet-common/lang/stop-watch';
4
+ export class CloudWatchLogGroupRatchet {
5
+ logGroup;
6
+ awsCWLogs;
7
+ constructor(logGroup, awsCWLogs = new CloudWatchLogsClient({ region: 'us-east-1' })) {
8
+ this.logGroup = logGroup;
9
+ this.awsCWLogs = awsCWLogs;
10
+ }
11
+ get cloudWatchLogsClient() {
12
+ return this.awsCWLogs;
13
+ }
14
+ async readLogStreams(startTimestamp = null, endTimestamp = null) {
15
+ const params = {
16
+ logGroupName: this.logGroup,
17
+ orderBy: 'LastEventTime',
18
+ };
19
+ const rval = [];
20
+ do {
21
+ Logger.debug('Pulling more log streams (%d found so far)', rval.length);
22
+ const temp = await this.awsCWLogs.send(new DescribeLogStreamsCommand(params));
23
+ temp.logStreams.forEach((s) => {
24
+ if (s.lastEventTimestamp !== null) {
25
+ if (!startTimestamp || s.lastEventTimestamp >= startTimestamp) {
26
+ if (!endTimestamp || s.firstEventTimestamp <= endTimestamp) {
27
+ rval.push(s);
28
+ }
29
+ }
30
+ }
31
+ });
32
+ params.nextToken = temp.nextToken;
33
+ } while (params.nextToken);
34
+ Logger.debug('Found %d total, returning', rval.length);
35
+ return rval;
36
+ }
37
+ async readLogStreamNames(startTimestamp = null, endTimestamp = null) {
38
+ const streams = await this.readLogStreams(startTimestamp, endTimestamp);
39
+ const rval = streams.map((s) => s.logStreamName);
40
+ return rval;
41
+ }
42
+ async readEvents(filter, startTimestamp = null, endTimestamp = null, sortEvents = true, maxEvents = null) {
43
+ const sw = new StopWatch();
44
+ const params = {
45
+ logGroupName: this.logGroup,
46
+ endTime: endTimestamp,
47
+ startTime: startTimestamp,
48
+ };
49
+ if (filter) {
50
+ params.filterPattern = filter;
51
+ }
52
+ Logger.debug('Reading log events matching : %j', params);
53
+ let rval = [];
54
+ do {
55
+ Logger.debug('Pulling more log events (%d found so far) : %s', rval.length, sw.dump());
56
+ const temp = await this.awsCWLogs.send(new FilterLogEventsCommand(params));
57
+ rval = rval.concat(temp.events);
58
+ params.nextToken = temp.nextToken;
59
+ } while (!!params.nextToken && (!maxEvents || rval.length < maxEvents));
60
+ Logger.debug('Found %d total in %s', rval.length, sw.dump());
61
+ if (sortEvents) {
62
+ Logger.debug('Sorting events by timestamp');
63
+ rval = rval.sort((a, b) => {
64
+ let rval = a.timestamp - b.timestamp;
65
+ if (rval === 0) {
66
+ rval = a.message.localeCompare(b.message);
67
+ }
68
+ return rval;
69
+ });
70
+ }
71
+ sw.log();
72
+ return rval;
73
+ }
74
+ }
75
+ //# sourceMappingURL=cloud-watch-log-group-ratchet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-watch-log-group-ratchet.js","sourceRoot":"","sources":["../../src/cloudwatch/cloud-watch-log-group-ratchet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { CloudWatchLogsClient, GetQueryResultsCommandOutput, LogGroup, LogStream, StartQueryCommandInput, StopQueryCommandOutput } from '@aws-sdk/client-cloudwatch-logs';
2
+ export declare class CloudWatchLogsRatchet {
3
+ private static readonly MAX_DELETE_RETRIES;
4
+ private cwLogs;
5
+ constructor(cloudwatchLogs?: CloudWatchLogsClient);
6
+ get cloudWatchLogsClient(): CloudWatchLogsClient;
7
+ removeEmptyOrOldLogStreams(logGroupName: string, maxToRemove?: number, oldestEventEpochMS?: number): Promise<LogStream[]>;
8
+ findOldestEventTimestampInGroup(logGroupName: string): Promise<number>;
9
+ findStreamWithOldestEventInGroup(logGroupName: string): Promise<LogStream>;
10
+ findLogGroups(prefix: string): Promise<LogGroup[]>;
11
+ removeLogGroups(groups: LogGroup[]): Promise<boolean[]>;
12
+ removeLogGroupsWithPrefix(prefix: string): Promise<boolean[]>;
13
+ fullyExecuteInsightsQuery(sqr: StartQueryCommandInput): Promise<GetQueryResultsCommandOutput>;
14
+ abortInsightsQuery(queryId: string): Promise<StopQueryCommandOutput>;
15
+ }