@bitblit/ratchet-aws 4.0.99-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.
- package/dist/{types/batch → batch}/aws-batch-background-processor.d.ts +1 -5
- package/dist/{es/batch → batch}/aws-batch-background-processor.js +6 -1
- package/dist/batch/aws-batch-background-processor.spec.js +15 -0
- package/dist/{types/batch → batch}/aws-batch-ratchet.d.ts +0 -3
- package/dist/{es/batch → batch}/aws-batch-ratchet.js +5 -1
- package/dist/batch/aws-batch-ratchet.spec.js +33 -0
- package/dist/{types/build → build}/ratchet-aws-info.d.ts +1 -1
- package/dist/{types/cache → cache}/dynamo-db-storage-provider.d.ts +3 -3
- package/dist/{es/cache → cache}/dynamo-db-storage-provider.js +3 -1
- package/dist/{types/cache → cache}/s3-storage-provider.d.ts +3 -3
- package/dist/{es/cache → cache}/s3-storage-provider.js +4 -1
- package/dist/{types/cache → cache}/simple-cache-storage-provider.d.ts +1 -1
- package/dist/{types/cache → cache}/simple-cache.d.ts +3 -3
- package/dist/{es/cache → cache}/simple-cache.js +4 -2
- package/dist/cache/simple-cache.spec.js +67 -0
- package/dist/{es/cloudwatch → cloudwatch}/cloud-watch-log-group-ratchet.js +4 -2
- package/dist/cloudwatch/cloud-watch-log-group-ratchet.spec.js +19 -0
- package/dist/{es/cloudwatch → cloudwatch}/cloud-watch-logs-ratchet.js +6 -5
- package/dist/cloudwatch/cloud-watch-logs-ratchet.spec.js +84 -0
- package/dist/{types/cloudwatch → cloudwatch}/cloud-watch-metrics-ratchet.d.ts +3 -3
- package/dist/{es/cloudwatch → cloudwatch}/cloud-watch-metrics-ratchet.js +3 -2
- package/dist/cloudwatch/cloud-watch-metrics-ratchet.spec.js +23 -0
- package/dist/{types/daemon → daemon}/daemon-like.d.ts +3 -3
- package/dist/{types/daemon → daemon}/daemon-process-state-public-token.d.ts +1 -1
- package/dist/{types/daemon → daemon}/daemon-util.d.ts +5 -11
- package/dist/{es/daemon → daemon}/daemon-util.js +3 -3
- package/dist/daemon/daemon-util.spec.d.ts +4 -0
- package/dist/daemon/daemon-util.spec.js +79 -0
- package/dist/{types/daemon → daemon}/daemon.d.ts +5 -5
- package/dist/{es/daemon → daemon}/daemon.js +12 -6
- package/dist/{types/dao → dao}/prototype-dao-provider.d.ts +1 -1
- package/dist/{types/dao → dao}/prototype-dao.d.ts +2 -2
- package/dist/{es/dao → dao}/prototype-dao.js +13 -9
- package/dist/dao/prototype-dao.spec.d.ts +8 -0
- package/dist/dao/prototype-dao.spec.js +26 -0
- package/dist/{types/dao → dao}/s3-prototype-dao-provider.d.ts +3 -3
- package/dist/{es/dao → dao}/s3-prototype-dao-provider.js +3 -1
- package/dist/{types/dao → dao}/s3-simple-dao.d.ts +2 -2
- package/dist/{es/dao → dao}/s3-simple-dao.js +4 -2
- package/dist/{types/dynamodb → dynamodb}/dynamo-ratchet-like.d.ts +3 -3
- package/dist/{types/dynamodb → dynamodb}/dynamo-ratchet.d.ts +4 -4
- package/dist/{es/dynamodb → dynamodb}/dynamo-ratchet.js +7 -6
- package/dist/dynamodb/dynamo-ratchet.spec.js +156 -0
- package/dist/{es/dynamodb → dynamodb}/dynamo-table-ratchet.js +5 -4
- package/dist/{es/dynamodb → dynamodb}/hash-spreader.js +8 -1
- package/dist/dynamodb/hash-spreader.spec.js +17 -0
- package/dist/{types/ec2 → ec2}/ec2-ratchet.d.ts +0 -11
- package/dist/{es/ec2 → ec2}/ec2-ratchet.js +7 -3
- package/dist/ec2/ec2-ratchet.spec.js +31 -0
- package/dist/{types/environment → environment}/cascade-environment-service-provider.d.ts +1 -4
- package/dist/{es/environment → environment}/cascade-environment-service-provider.js +3 -2
- package/dist/{types/environment → environment}/env-var-environment-service-provider.d.ts +1 -5
- package/dist/{es/environment → environment}/env-var-environment-service-provider.js +5 -4
- package/dist/{types/environment → environment}/environment-service-config.d.ts +0 -3
- package/dist/environment/environment-service-provider.d.ts +3 -0
- package/dist/{types/environment → environment}/environment-service.d.ts +2 -5
- package/dist/{es/environment → environment}/environment-service.js +13 -11
- package/dist/environment/environment-service.spec.js +22 -0
- package/dist/{types/environment → environment}/fixed-environment-service-provider.d.ts +1 -4
- package/dist/{es/environment → environment}/fixed-environment-service-provider.js +3 -2
- package/dist/{types/environment → environment}/s3-environment-service-provider.d.ts +1 -4
- package/dist/{es/environment → environment}/s3-environment-service-provider.js +7 -5
- package/dist/{types/environment → environment}/ssm-environment-service-provider.d.ts +1 -5
- package/dist/{es/environment → environment}/ssm-environment-service-provider.js +9 -6
- package/dist/{types/expiring-code → expiring-code}/dynamo-expiring-code-provider.d.ts +4 -4
- package/dist/{es/expiring-code → expiring-code}/dynamo-expiring-code-provider.js +2 -0
- package/dist/{types/expiring-code → expiring-code}/expiring-code-provider.d.ts +1 -1
- package/dist/{types/expiring-code → expiring-code}/expiring-code-ratchet.d.ts +3 -6
- package/dist/{es/expiring-code → expiring-code}/expiring-code-ratchet.js +3 -2
- package/dist/expiring-code/expiring-code-ratchet.spec.js +7 -0
- package/dist/{types/expiring-code → expiring-code}/s3-expiring-code-provider.d.ts +3 -3
- package/dist/{es/expiring-code → expiring-code}/s3-expiring-code-provider.js +4 -1
- package/dist/expiring-code/s3-expiring-code-provider.spec.js +46 -0
- package/dist/{types/iam → iam}/aws-credentials-ratchet.d.ts +0 -5
- package/dist/{es/iam → iam}/aws-credentials-ratchet.js +2 -1
- package/dist/{es/lambda → lambda}/lambda-event-type-guards.js +1 -1
- package/dist/{types/model → model}/cloud-watch-metrics-minute-level-dynamo-count-request.d.ts +2 -2
- package/dist/model/dynamo/doc-put-item-command-input.js +1 -0
- package/dist/model/dynamo/doc-query-command-input.js +1 -0
- package/dist/model/dynamo/doc-scan-command-input.js +1 -0
- package/dist/model/dynamo/doc-update-item-command-input.js +1 -0
- package/dist/{es/route53 → route53}/route-53-ratchet.js +3 -1
- package/dist/{types/runtime-parameter → runtime-parameter}/cached-stored-runtime-parameter.d.ts +1 -1
- package/dist/runtime-parameter/cached-stored-runtime-parameter.js +1 -0
- package/dist/{types/runtime-parameter → runtime-parameter}/dynamo-runtime-parameter-provider.d.ts +3 -3
- package/dist/{es/runtime-parameter → runtime-parameter}/dynamo-runtime-parameter-provider.js +4 -2
- package/dist/runtime-parameter/dynamo-runtime-parameter-provider.spec.d.ts +1 -0
- package/dist/runtime-parameter/dynamo-runtime-parameter-provider.spec.js +49 -0
- package/dist/{types/runtime-parameter → runtime-parameter}/global-variable-override-runtime-parameter-provider.d.ts +2 -9
- package/dist/{es/runtime-parameter → runtime-parameter}/global-variable-override-runtime-parameter-provider.js +10 -8
- package/dist/runtime-parameter/global-variable-override-runtime-parameter-provider.spec.d.ts +1 -0
- package/dist/runtime-parameter/global-variable-override-runtime-parameter-provider.spec.js +37 -0
- package/dist/{types/runtime-parameter → runtime-parameter}/memory-runtime-parameter-provider.d.ts +2 -6
- package/dist/{es/runtime-parameter → runtime-parameter}/memory-runtime-parameter-provider.js +2 -1
- package/dist/{types/runtime-parameter → runtime-parameter}/runtime-parameter-provider.d.ts +1 -6
- package/dist/runtime-parameter/runtime-parameter-provider.js +1 -0
- package/dist/{types/runtime-parameter → runtime-parameter}/runtime-parameter-ratchet.d.ts +2 -2
- package/dist/{es/runtime-parameter → runtime-parameter}/runtime-parameter-ratchet.js +4 -3
- package/dist/runtime-parameter/runtime-parameter-ratchet.spec.d.ts +1 -0
- package/dist/runtime-parameter/runtime-parameter-ratchet.spec.js +39 -0
- package/dist/runtime-parameter/stored-runtime-parameter.js +1 -0
- package/dist/{types/s3 → s3}/s3-cache-ratchet.d.ts +3 -4
- package/dist/{es/s3 → s3}/s3-cache-ratchet.js +7 -5
- package/dist/s3/s3-cache-ratchet.spec.d.ts +1 -0
- package/dist/s3/s3-cache-ratchet.spec.js +97 -0
- package/dist/{types/s3 → s3}/s3-cache-to-local-disk-ratchet.d.ts +2 -5
- package/dist/{es/s3 → s3}/s3-cache-to-local-disk-ratchet.js +8 -3
- package/dist/s3/s3-cache-to-local-dist-ratchet.spec.d.ts +1 -0
- package/dist/s3/s3-cache-to-local-dist-ratchet.spec.js +22 -0
- package/dist/{es/s3 → s3}/s3-location-sync-ratchet.js +4 -1
- package/dist/{es/s3 → s3}/s3-ratchet.js +1 -1
- package/dist/s3/s3-ratchet.spec.d.ts +1 -0
- package/dist/s3/s3-ratchet.spec.js +20 -0
- package/dist/ses/email-attachment.d.ts +5 -0
- package/dist/ses/email-attachment.js +1 -0
- package/dist/{types/ses → ses}/mailer-config.d.ts +2 -5
- package/dist/ses/mailer-config.js +1 -0
- package/dist/{types/ses → ses}/mailer-like.d.ts +2 -9
- package/dist/ses/mailer-like.js +1 -0
- package/dist/{types/ses → ses}/mailer.d.ts +4 -11
- package/dist/{es/ses → ses}/mailer.js +8 -6
- package/dist/ses/mailer.spec.d.ts +1 -0
- package/dist/ses/mailer.spec.js +104 -0
- package/dist/{types/ses → ses}/ratchet-template-renderer.d.ts +0 -4
- package/dist/ses/ratchet-template-renderer.js +1 -0
- package/dist/ses/ready-to-send-email.d.ts +13 -0
- package/dist/ses/ready-to-send-email.js +1 -0
- package/dist/{types/ses → ses}/remote-handlebars-template-renderer.d.ts +1 -3
- package/dist/{es/ses → ses}/remote-handlebars-template-renderer.js +6 -2
- package/dist/ses/resolved-ready-to-send-email.d.ts +5 -0
- package/dist/ses/resolved-ready-to-send-email.js +1 -0
- package/dist/{es/sns → sns}/sns-ratchet.js +4 -2
- package/dist/sns/sns-ratchet.spec.d.ts +1 -0
- package/dist/sns/sns-ratchet.spec.js +17 -0
- package/dist/{types/sync-lock → sync-lock}/dynamo-db-sync-lock.d.ts +2 -2
- package/dist/{es/sync-lock → sync-lock}/dynamo-db-sync-lock.js +5 -1
- package/dist/sync-lock/dynamo-db-sync-lock.spec.d.ts +1 -0
- package/dist/sync-lock/dynamo-db-sync-lock.spec.js +30 -0
- package/dist/{types/sync-lock → sync-lock}/memory-sync-lock.d.ts +1 -4
- package/dist/{es/sync-lock → sync-lock}/memory-sync-lock.js +3 -4
- package/dist/sync-lock/sync-lock-provider.js +1 -0
- package/package.json +10 -11
- package/dist/cjs/batch/aws-batch-background-processor.js +0 -44
- package/dist/cjs/batch/aws-batch-ratchet.js +0 -55
- package/dist/cjs/build/ratchet-aws-info.js +0 -18
- package/dist/cjs/cache/dynamo-db-storage-provider.js +0 -111
- package/dist/cjs/cache/s3-storage-provider.js +0 -44
- package/dist/cjs/cache/simple-cache-object-wrapper.js +0 -2
- package/dist/cjs/cache/simple-cache-read-options.js +0 -2
- package/dist/cjs/cache/simple-cache-storage-provider.js +0 -2
- package/dist/cjs/cache/simple-cache.js +0 -66
- package/dist/cjs/cloudwatch/cloud-watch-log-group-ratchet.js +0 -73
- package/dist/cjs/cloudwatch/cloud-watch-logs-ratchet.js +0 -173
- package/dist/cjs/cloudwatch/cloud-watch-metrics-ratchet.js +0 -57
- package/dist/cjs/daemon/daemon-like.js +0 -2
- package/dist/cjs/daemon/daemon-process-create-options.js +0 -2
- package/dist/cjs/daemon/daemon-process-state-public-token.js +0 -2
- package/dist/cjs/daemon/daemon-process-state.js +0 -2
- package/dist/cjs/daemon/daemon-util.js +0 -152
- package/dist/cjs/daemon/daemon.js +0 -126
- package/dist/cjs/dao/prototype-dao-config.js +0 -2
- package/dist/cjs/dao/prototype-dao-db.js +0 -2
- package/dist/cjs/dao/prototype-dao-provider.js +0 -2
- package/dist/cjs/dao/prototype-dao.js +0 -88
- package/dist/cjs/dao/s3-prototype-dao-provider.js +0 -28
- package/dist/cjs/dao/s3-simple-dao.js +0 -78
- package/dist/cjs/dao/simple-dao-item.js +0 -2
- package/dist/cjs/dynamodb/dynamo-ratchet-like.js +0 -2
- package/dist/cjs/dynamodb/dynamo-ratchet.js +0 -667
- package/dist/cjs/dynamodb/dynamo-table-ratchet.js +0 -91
- package/dist/cjs/dynamodb/hash-spreader.js +0 -62
- package/dist/cjs/ec2/ec2-ratchet.js +0 -107
- package/dist/cjs/environment/cascade-environment-service-provider.js +0 -27
- package/dist/cjs/environment/env-var-environment-service-provider.js +0 -33
- package/dist/cjs/environment/environment-service-config.js +0 -2
- package/dist/cjs/environment/environment-service-provider.js +0 -2
- package/dist/cjs/environment/environment-service.js +0 -52
- package/dist/cjs/environment/fixed-environment-service-provider.js +0 -24
- package/dist/cjs/environment/s3-environment-service-provider.js +0 -29
- package/dist/cjs/environment/ssm-environment-service-provider.js +0 -61
- package/dist/cjs/expiring-code/dynamo-expiring-code-provider.js +0 -26
- package/dist/cjs/expiring-code/expiring-code-params.js +0 -2
- package/dist/cjs/expiring-code/expiring-code-provider.js +0 -2
- package/dist/cjs/expiring-code/expiring-code-ratchet.js +0 -37
- package/dist/cjs/expiring-code/expiring-code.js +0 -2
- package/dist/cjs/expiring-code/s3-expiring-code-provider.js +0 -49
- package/dist/cjs/iam/aws-credentials-ratchet.js +0 -21
- package/dist/cjs/index.js +0 -81
- package/dist/cjs/lambda/lambda-event-detector.js +0 -42
- package/dist/cjs/lambda/lambda-event-type-guards.js +0 -28
- package/dist/cjs/model/cloud-watch-metrics-minute-level-dynamo-count-request.js +0 -2
- package/dist/cjs/model/cloud-watch-metrics-unit.js +0 -33
- package/dist/cjs/model/dynamo/doc-put-item-command-input.js +0 -2
- package/dist/cjs/model/dynamo/doc-query-command-input.js +0 -2
- package/dist/cjs/model/dynamo/doc-scan-command-input.js +0 -2
- package/dist/cjs/model/dynamo/doc-update-item-command-input.js +0 -2
- package/dist/cjs/model/dynamo-count-result.js +0 -2
- package/dist/cjs/route53/route-53-ratchet.js +0 -57
- package/dist/cjs/runtime-parameter/cached-stored-runtime-parameter.js +0 -2
- package/dist/cjs/runtime-parameter/dynamo-runtime-parameter-provider.js +0 -38
- package/dist/cjs/runtime-parameter/global-variable-override-runtime-parameter-provider.js +0 -54
- package/dist/cjs/runtime-parameter/memory-runtime-parameter-provider.js +0 -30
- package/dist/cjs/runtime-parameter/runtime-parameter-provider.js +0 -2
- package/dist/cjs/runtime-parameter/runtime-parameter-ratchet.js +0 -74
- package/dist/cjs/runtime-parameter/stored-runtime-parameter.js +0 -2
- package/dist/cjs/s3/s3-cache-ratchet.js +0 -332
- package/dist/cjs/s3/s3-cache-to-local-disk-ratchet.js +0 -105
- package/dist/cjs/s3/s3-location-sync-ratchet.js +0 -142
- package/dist/cjs/s3/s3-ratchet.js +0 -26
- package/dist/cjs/ses/email-attachment.js +0 -2
- package/dist/cjs/ses/mailer-config.js +0 -2
- package/dist/cjs/ses/mailer-like.js +0 -2
- package/dist/cjs/ses/mailer.js +0 -208
- package/dist/cjs/ses/ratchet-template-renderer.js +0 -2
- package/dist/cjs/ses/ready-to-send-email.js +0 -2
- package/dist/cjs/ses/remote-handlebars-template-renderer.js +0 -79
- package/dist/cjs/ses/resolved-ready-to-send-email.js +0 -2
- package/dist/cjs/sns/sns-ratchet.js +0 -47
- package/dist/cjs/sync-lock/dynamo-db-sync-lock.js +0 -69
- package/dist/cjs/sync-lock/memory-sync-lock.js +0 -40
- package/dist/cjs/sync-lock/sync-lock-provider.js +0 -2
- package/dist/es/index.js +0 -78
- package/dist/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.es.tsbuildinfo +0 -1
- package/dist/tsconfig.types.tsbuildinfo +0 -1
- package/dist/types/environment/environment-service-provider.d.ts +0 -7
- package/dist/types/index.d.ts +0 -81
- package/dist/types/ses/email-attachment.d.ts +0 -23
- package/dist/types/ses/ready-to-send-email.d.ts +0 -66
- package/dist/types/ses/resolved-ready-to-send-email.d.ts +0 -16
- /package/dist/{es/cache/simple-cache-object-wrapper.js → batch/aws-batch-background-processor.spec.d.ts} +0 -0
- /package/dist/{es/cache/simple-cache-read-options.js → batch/aws-batch-ratchet.spec.d.ts} +0 -0
- /package/dist/{es/build → build}/ratchet-aws-info.js +0 -0
- /package/dist/{types/cache → cache}/simple-cache-object-wrapper.d.ts +0 -0
- /package/dist/{es/cache/simple-cache-storage-provider.js → cache/simple-cache-object-wrapper.js} +0 -0
- /package/dist/{types/cache → cache}/simple-cache-read-options.d.ts +0 -0
- /package/dist/{es/daemon/daemon-like.js → cache/simple-cache-read-options.js} +0 -0
- /package/dist/{es/daemon/daemon-process-create-options.js → cache/simple-cache-storage-provider.js} +0 -0
- /package/dist/{es/daemon/daemon-process-state-public-token.js → cache/simple-cache.spec.d.ts} +0 -0
- /package/dist/{types/cloudwatch → cloudwatch}/cloud-watch-log-group-ratchet.d.ts +0 -0
- /package/dist/{es/daemon/daemon-process-state.js → cloudwatch/cloud-watch-log-group-ratchet.spec.d.ts} +0 -0
- /package/dist/{types/cloudwatch → cloudwatch}/cloud-watch-logs-ratchet.d.ts +0 -0
- /package/dist/{es/dao/prototype-dao-config.js → cloudwatch/cloud-watch-logs-ratchet.spec.d.ts} +0 -0
- /package/dist/{es/dao/prototype-dao-db.js → cloudwatch/cloud-watch-metrics-ratchet.spec.d.ts} +0 -0
- /package/dist/{es/dao/prototype-dao-provider.js → daemon/daemon-like.js} +0 -0
- /package/dist/{types/daemon → daemon}/daemon-process-create-options.d.ts +0 -0
- /package/dist/{es/dao/simple-dao-item.js → daemon/daemon-process-create-options.js} +0 -0
- /package/dist/{es/dynamodb/dynamo-ratchet-like.js → daemon/daemon-process-state-public-token.js} +0 -0
- /package/dist/{types/daemon → daemon}/daemon-process-state.d.ts +0 -0
- /package/dist/{es/environment/environment-service-config.js → daemon/daemon-process-state.js} +0 -0
- /package/dist/{types/dao → dao}/prototype-dao-config.d.ts +0 -0
- /package/dist/{es/environment/environment-service-provider.js → dao/prototype-dao-config.js} +0 -0
- /package/dist/{types/dao → dao}/prototype-dao-db.d.ts +0 -0
- /package/dist/{es/expiring-code/expiring-code-params.js → dao/prototype-dao-db.js} +0 -0
- /package/dist/{es/expiring-code/expiring-code-provider.js → dao/prototype-dao-provider.js} +0 -0
- /package/dist/{types/dao → dao}/simple-dao-item.d.ts +0 -0
- /package/dist/{es/expiring-code/expiring-code.js → dao/simple-dao-item.js} +0 -0
- /package/dist/{es/model/cloud-watch-metrics-minute-level-dynamo-count-request.js → dynamodb/dynamo-ratchet-like.js} +0 -0
- /package/dist/{es/model/dynamo-count-result.js → dynamodb/dynamo-ratchet.spec.d.ts} +0 -0
- /package/dist/{types/dynamodb → dynamodb}/dynamo-table-ratchet.d.ts +0 -0
- /package/dist/{types/dynamodb → dynamodb}/hash-spreader.d.ts +0 -0
- /package/dist/{es/model/dynamo/doc-put-item-command-input.js → dynamodb/hash-spreader.spec.d.ts} +0 -0
- /package/dist/{es/model/dynamo/doc-query-command-input.js → ec2/ec2-ratchet.spec.d.ts} +0 -0
- /package/dist/{es/model/dynamo/doc-scan-command-input.js → environment/environment-service-config.js} +0 -0
- /package/dist/{es/model/dynamo/doc-update-item-command-input.js → environment/environment-service-provider.js} +0 -0
- /package/dist/{es/runtime-parameter/cached-stored-runtime-parameter.js → environment/environment-service.spec.d.ts} +0 -0
- /package/dist/{types/expiring-code → expiring-code}/expiring-code-params.d.ts +0 -0
- /package/dist/{es/runtime-parameter/runtime-parameter-provider.js → expiring-code/expiring-code-params.js} +0 -0
- /package/dist/{es/runtime-parameter/stored-runtime-parameter.js → expiring-code/expiring-code-provider.js} +0 -0
- /package/dist/{es/ses/email-attachment.js → expiring-code/expiring-code-ratchet.spec.d.ts} +0 -0
- /package/dist/{types/expiring-code → expiring-code}/expiring-code.d.ts +0 -0
- /package/dist/{es/ses/mailer-config.js → expiring-code/expiring-code.js} +0 -0
- /package/dist/{es/ses/mailer-like.js → expiring-code/s3-expiring-code-provider.spec.d.ts} +0 -0
- /package/dist/{es/ses/ratchet-template-renderer.js → index.d.ts} +0 -0
- /package/dist/{es/ses/ready-to-send-email.js → index.js} +0 -0
- /package/dist/{types/lambda → lambda}/lambda-event-detector.d.ts +0 -0
- /package/dist/{es/lambda → lambda}/lambda-event-detector.js +0 -0
- /package/dist/{types/lambda → lambda}/lambda-event-type-guards.d.ts +0 -0
- /package/dist/{es/ses/resolved-ready-to-send-email.js → model/cloud-watch-metrics-minute-level-dynamo-count-request.js} +0 -0
- /package/dist/{types/model → model}/cloud-watch-metrics-unit.d.ts +0 -0
- /package/dist/{es/model → model}/cloud-watch-metrics-unit.js +0 -0
- /package/dist/{types/model → model}/dynamo/doc-put-item-command-input.d.ts +0 -0
- /package/dist/{types/model → model}/dynamo/doc-query-command-input.d.ts +0 -0
- /package/dist/{types/model → model}/dynamo/doc-scan-command-input.d.ts +0 -0
- /package/dist/{types/model → model}/dynamo/doc-update-item-command-input.d.ts +0 -0
- /package/dist/{types/model → model}/dynamo-count-result.d.ts +0 -0
- /package/dist/{es/sync-lock/sync-lock-provider.js → model/dynamo-count-result.js} +0 -0
- /package/dist/{types/route53 → route53}/route-53-ratchet.d.ts +0 -0
- /package/dist/{types/runtime-parameter → runtime-parameter}/stored-runtime-parameter.d.ts +0 -0
- /package/dist/{types/s3 → s3}/s3-location-sync-ratchet.d.ts +0 -0
- /package/dist/{types/s3 → s3}/s3-ratchet.d.ts +0 -0
- /package/dist/{types/sns → sns}/sns-ratchet.d.ts +0 -0
- /package/dist/{types/sync-lock → sync-lock}/sync-lock-provider.d.ts +0 -0
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { SubmitJobCommandOutput } from '@aws-sdk/client-batch';
|
|
2
|
-
import { AwsBatchRatchet } from './aws-batch-ratchet';
|
|
3
|
-
/**
|
|
4
|
-
* Class to simplify using AWS batch as a background processor
|
|
5
|
-
* (Primarily used by Epsilon)
|
|
6
|
-
*/
|
|
2
|
+
import { AwsBatchRatchet } from './aws-batch-ratchet.js';
|
|
7
3
|
export declare class AwsBatchBackgroundProcessor {
|
|
8
4
|
private batchRatchet;
|
|
9
5
|
private validTaskNames?;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { DateTime } from 'luxon';
|
|
2
|
-
import { ErrorRatchet
|
|
2
|
+
import { ErrorRatchet } from '@bitblit/ratchet-common/dist/lang/error-ratchet.js';
|
|
3
|
+
import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
|
|
4
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
|
|
5
|
+
import { StringRatchet } from '@bitblit/ratchet-common/dist/lang/string-ratchet.js';
|
|
3
6
|
export class AwsBatchBackgroundProcessor {
|
|
7
|
+
batchRatchet;
|
|
8
|
+
validTaskNames;
|
|
4
9
|
constructor(batchRatchet, validTaskNames) {
|
|
5
10
|
this.batchRatchet = batchRatchet;
|
|
6
11
|
this.validTaskNames = validTaskNames;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { JestRatchet } from '@bitblit/ratchet-jest/dist/jest/jest-ratchet.js';
|
|
2
|
+
import { AwsBatchBackgroundProcessor } from './aws-batch-background-processor.js';
|
|
3
|
+
import { jest } from '@jest/globals';
|
|
4
|
+
let mockBatchRatchet;
|
|
5
|
+
describe('#AwsBatchBackgroundProcessor', () => {
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
mockBatchRatchet = JestRatchet.mock(jest.fn);
|
|
8
|
+
});
|
|
9
|
+
it('Should schedule background task', async () => {
|
|
10
|
+
mockBatchRatchet.scheduleJob.mockResolvedValue({ jobId: 'newID', jobName: 'name', $metadata: null });
|
|
11
|
+
const svc = new AwsBatchBackgroundProcessor(mockBatchRatchet, null);
|
|
12
|
+
const res = await svc.scheduleBackgroundTask('BACKGROUND_TASK_NAME', {}, {});
|
|
13
|
+
expect(res).not.toBeNull();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { BatchClient, JobStatus, JobSummary, SubmitJobCommandInput, SubmitJobCommandOutput } from '@aws-sdk/client-batch';
|
|
2
|
-
/**
|
|
3
|
-
* Ratchet for simplifying interacting with AWS Batch
|
|
4
|
-
*/
|
|
5
2
|
export declare class AwsBatchRatchet {
|
|
6
3
|
private _batchClient;
|
|
7
4
|
private _defaultQueueName?;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { ListJobsCommand, SubmitJobCommand, } from '@aws-sdk/client-batch';
|
|
2
|
-
import {
|
|
2
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
|
|
3
|
+
import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
|
|
3
4
|
export class AwsBatchRatchet {
|
|
5
|
+
_batchClient;
|
|
6
|
+
_defaultQueueName;
|
|
7
|
+
_defaultJobDefinition;
|
|
4
8
|
constructor(_batchClient, _defaultQueueName, _defaultJobDefinition) {
|
|
5
9
|
this._batchClient = _batchClient;
|
|
6
10
|
this._defaultQueueName = _defaultQueueName;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { AwsBatchRatchet } from './aws-batch-ratchet.js';
|
|
2
|
+
import { BatchClient, JobStatus, ListJobsCommand, SubmitJobCommand } from '@aws-sdk/client-batch';
|
|
3
|
+
import { mockClient } from 'aws-sdk-client-mock';
|
|
4
|
+
let mockBatch;
|
|
5
|
+
describe('#AwsBatchService', () => {
|
|
6
|
+
mockBatch = mockClient(BatchClient);
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
mockBatch.reset();
|
|
9
|
+
});
|
|
10
|
+
it('Should schedule batch job', async () => {
|
|
11
|
+
const svc = new AwsBatchRatchet(mockBatch);
|
|
12
|
+
mockBatch.on(SubmitJobCommand).resolves({ jobName: 'b' });
|
|
13
|
+
const res = await svc.scheduleJob({
|
|
14
|
+
jobName: 'testName',
|
|
15
|
+
jobDefinition: 'testDefinition',
|
|
16
|
+
jobQueue: 'testQueue',
|
|
17
|
+
});
|
|
18
|
+
expect(res).not.toBeNull();
|
|
19
|
+
});
|
|
20
|
+
it('Should list jobs', async () => {
|
|
21
|
+
const svc = new AwsBatchRatchet(mockBatch);
|
|
22
|
+
mockBatch.on(ListJobsCommand).resolves([{}]);
|
|
23
|
+
const res = await svc.listJobs('testQueue');
|
|
24
|
+
expect(res).not.toBeNull();
|
|
25
|
+
expect(res.length).toEqual(1);
|
|
26
|
+
});
|
|
27
|
+
it('Should count jobs in state', async () => {
|
|
28
|
+
const svc = new AwsBatchRatchet(mockBatch);
|
|
29
|
+
mockBatch.on(ListJobsCommand).resolves([{}]);
|
|
30
|
+
const res = await svc.jobCountInState(JobStatus.RUNNABLE, 'testQueue');
|
|
31
|
+
expect(res).toEqual(1);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper';
|
|
2
|
-
import { SimpleCacheStorageProvider } from './simple-cache-storage-provider';
|
|
3
|
-
import { DynamoRatchet } from '../dynamodb/dynamo-ratchet';
|
|
1
|
+
import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper.js';
|
|
2
|
+
import { SimpleCacheStorageProvider } from './simple-cache-storage-provider.js';
|
|
3
|
+
import { DynamoRatchet } from '../dynamodb/dynamo-ratchet.js';
|
|
4
4
|
export declare class DynamoDbStorageProvider implements SimpleCacheStorageProvider {
|
|
5
5
|
private dynamo;
|
|
6
6
|
private opts;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { RequireRatchet } from '@bitblit/ratchet-common';
|
|
1
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
|
|
2
2
|
export class DynamoDbStorageProvider {
|
|
3
|
+
dynamo;
|
|
4
|
+
opts;
|
|
3
5
|
constructor(dynamo, opts) {
|
|
4
6
|
this.dynamo = dynamo;
|
|
5
7
|
this.opts = opts;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper';
|
|
2
|
-
import { SimpleCacheStorageProvider } from './simple-cache-storage-provider';
|
|
3
|
-
import { S3CacheRatchet } from '../s3/s3-cache-ratchet';
|
|
1
|
+
import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper.js';
|
|
2
|
+
import { SimpleCacheStorageProvider } from './simple-cache-storage-provider.js';
|
|
3
|
+
import { S3CacheRatchet } from '../s3/s3-cache-ratchet.js';
|
|
4
4
|
export declare class S3StorageProvider implements SimpleCacheStorageProvider {
|
|
5
5
|
private s3CacheRatchet;
|
|
6
6
|
private prefix;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { RequireRatchet
|
|
1
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
|
|
2
|
+
import { StringRatchet } from '@bitblit/ratchet-common/dist/lang/string-ratchet.js';
|
|
2
3
|
export class S3StorageProvider {
|
|
4
|
+
s3CacheRatchet;
|
|
5
|
+
prefix;
|
|
3
6
|
constructor(s3CacheRatchet, prefix) {
|
|
4
7
|
this.s3CacheRatchet = s3CacheRatchet;
|
|
5
8
|
this.prefix = prefix;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper';
|
|
1
|
+
import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper.js';
|
|
2
2
|
export interface SimpleCacheStorageProvider {
|
|
3
3
|
readFromCache<T>(cacheKey: string): Promise<SimpleCacheObjectWrapper<T>>;
|
|
4
4
|
storeInCache<T>(value: SimpleCacheObjectWrapper<T>): Promise<boolean>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SimpleCacheStorageProvider } from './simple-cache-storage-provider';
|
|
2
|
-
import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper';
|
|
3
|
-
import { SimpleCacheReadOptions } from './simple-cache-read-options';
|
|
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
4
|
export declare class SimpleCache {
|
|
5
5
|
private provider;
|
|
6
6
|
private defaultTimeToLiveMS;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Logger } from '@bitblit/ratchet-common';
|
|
1
|
+
import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
|
|
2
2
|
export class SimpleCache {
|
|
3
|
-
|
|
3
|
+
provider;
|
|
4
|
+
defaultTimeToLiveMS;
|
|
5
|
+
constructor(provider, defaultTimeToLiveMS = 1_000 * 60) {
|
|
4
6
|
this.provider = provider;
|
|
5
7
|
this.defaultTimeToLiveMS = defaultTimeToLiveMS;
|
|
6
8
|
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { S3StorageProvider } from './s3-storage-provider.js';
|
|
2
|
+
import { SimpleCache } from './simple-cache.js';
|
|
3
|
+
import { S3CacheRatchet } from '../s3/s3-cache-ratchet.js';
|
|
4
|
+
import { DynamoRatchet } from '../dynamodb/dynamo-ratchet.js';
|
|
5
|
+
import { DynamoDbStorageProvider } from './dynamo-db-storage-provider.js';
|
|
6
|
+
import { S3Client } from '@aws-sdk/client-s3';
|
|
7
|
+
import { DynamoDBDocument } from '@aws-sdk/lib-dynamodb';
|
|
8
|
+
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
|
|
9
|
+
describe('#simpleCache', function () {
|
|
10
|
+
xit('should read/write/delete with an S3 handler', async () => {
|
|
11
|
+
const s3 = new S3Client({ region: 'us-east-1' });
|
|
12
|
+
const cache = new S3CacheRatchet(s3, 'test-bucket');
|
|
13
|
+
const s3StorageProvider = new S3StorageProvider(cache, 'test-cache');
|
|
14
|
+
const simpleCache = new SimpleCache(s3StorageProvider, 2000000);
|
|
15
|
+
await simpleCache.removeFromCache('test1');
|
|
16
|
+
const test1a = await simpleCache.fetchWrapper('test1', () => Promise.resolve({ x: 1 }));
|
|
17
|
+
expect(test1a).not.toBeNull();
|
|
18
|
+
expect(test1a.generated).toBeTruthy();
|
|
19
|
+
expect(test1a.value).not.toBeNull();
|
|
20
|
+
expect(test1a.value['x']).toEqual(1);
|
|
21
|
+
const test1b = await simpleCache.fetchWrapper('test1', () => Promise.resolve({ x: 1 }));
|
|
22
|
+
expect(test1b).not.toBeNull();
|
|
23
|
+
expect(test1b.generated).toBeFalsy();
|
|
24
|
+
expect(test1b.value).not.toBeNull();
|
|
25
|
+
expect(test1b.value['x']).toEqual(1);
|
|
26
|
+
await simpleCache.removeFromCache('test1');
|
|
27
|
+
}, 60_000);
|
|
28
|
+
xit('should read/write/delete with an dynamo handler', async () => {
|
|
29
|
+
const dr = new DynamoRatchet(DynamoDBDocument.from(new DynamoDBClient({ region: 'us-east-1' })));
|
|
30
|
+
const opts = DynamoDbStorageProvider.createDefaultOptions();
|
|
31
|
+
opts.tableName = 'test-table';
|
|
32
|
+
opts.useRangeKeys = false;
|
|
33
|
+
opts.hashKeyName = 'cacheUid';
|
|
34
|
+
opts.dynamoExpiresColumnName = 'expiresEpochSeconds';
|
|
35
|
+
const ddbStorage = new DynamoDbStorageProvider(dr, opts);
|
|
36
|
+
const simpleCache = new SimpleCache(ddbStorage, 2000000);
|
|
37
|
+
await simpleCache.removeFromCache('test1');
|
|
38
|
+
const test1a = await simpleCache.fetchWrapper('test1', () => Promise.resolve({ x: 1 }));
|
|
39
|
+
expect(test1a).not.toBeNull();
|
|
40
|
+
expect(test1a.generated).toBeTruthy();
|
|
41
|
+
expect(test1a.value).not.toBeNull();
|
|
42
|
+
expect(test1a.value['x']).toEqual(1);
|
|
43
|
+
const test1b = await simpleCache.fetchWrapper('test1', () => Promise.resolve({ x: 1 }));
|
|
44
|
+
expect(test1b).not.toBeNull();
|
|
45
|
+
expect(test1b.generated).toBeFalsy();
|
|
46
|
+
expect(test1b.value).not.toBeNull();
|
|
47
|
+
expect(test1b.value['x']).toEqual(1);
|
|
48
|
+
await simpleCache.removeFromCache('test1');
|
|
49
|
+
}, 60_000);
|
|
50
|
+
xit('should write a bunch', async () => {
|
|
51
|
+
const dr = new DynamoRatchet(DynamoDBDocument.from(new DynamoDBClient({ region: 'us-east-1' })));
|
|
52
|
+
const opts = DynamoDbStorageProvider.createDefaultOptions();
|
|
53
|
+
opts.tableName = 'test-table';
|
|
54
|
+
opts.useRangeKeys = false;
|
|
55
|
+
opts.hashKeyName = 'cacheUid';
|
|
56
|
+
opts.dynamoExpiresColumnName = 'expiresEpochSeconds';
|
|
57
|
+
const ddbStorage = new DynamoDbStorageProvider(dr, opts);
|
|
58
|
+
const simpleCache = new SimpleCache(ddbStorage, 1000);
|
|
59
|
+
for (let i = 0; i < 10; i++) {
|
|
60
|
+
const tests = await simpleCache.fetchWrapper('test' + i, () => Promise.resolve({ x: i }));
|
|
61
|
+
}
|
|
62
|
+
const all = await simpleCache.readAll();
|
|
63
|
+
expect(all).not.toBeNull();
|
|
64
|
+
expect(all.length).toBeGreaterThan(9);
|
|
65
|
+
await simpleCache.clearCache();
|
|
66
|
+
}, 60_000);
|
|
67
|
+
});
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { CloudWatchLogsClient, DescribeLogStreamsCommand, FilterLogEventsCommand, } from '@aws-sdk/client-cloudwatch-logs';
|
|
2
|
-
import { Logger } from '@bitblit/ratchet-common';
|
|
3
|
-
import { StopWatch } from '@bitblit/ratchet-common';
|
|
2
|
+
import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
|
|
3
|
+
import { StopWatch } from '@bitblit/ratchet-common/dist/lang/stop-watch.js';
|
|
4
4
|
export class CloudWatchLogGroupRatchet {
|
|
5
|
+
logGroup;
|
|
6
|
+
awsCWLogs;
|
|
5
7
|
constructor(logGroup, awsCWLogs = new CloudWatchLogsClient({ region: 'us-east-1' })) {
|
|
6
8
|
this.logGroup = logGroup;
|
|
7
9
|
this.awsCWLogs = awsCWLogs;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CloudWatchLogsClient, DescribeLogStreamsCommand } from '@aws-sdk/client-cloudwatch-logs';
|
|
2
|
+
import { CloudWatchLogGroupRatchet } from './cloud-watch-log-group-ratchet.js';
|
|
3
|
+
import { mockClient } from 'aws-sdk-client-mock';
|
|
4
|
+
let mockCW;
|
|
5
|
+
describe('#CloudWatchLogGroupRatchet', function () {
|
|
6
|
+
mockCW = mockClient(CloudWatchLogsClient);
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
mockCW.reset();
|
|
9
|
+
});
|
|
10
|
+
it('should read log stream names', async () => {
|
|
11
|
+
mockCW.on(DescribeLogStreamsCommand).resolves({
|
|
12
|
+
logStreams: [{ logStreamName: '1' }, { logStreamName: '2' }],
|
|
13
|
+
});
|
|
14
|
+
const cw = new CloudWatchLogGroupRatchet('testGroup', mockCW);
|
|
15
|
+
const res = await cw.readLogStreamNames();
|
|
16
|
+
expect(res).toBeTruthy();
|
|
17
|
+
expect(res.length).toEqual(2);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { CloudWatchLogsClient, DeleteLogGroupCommand, DeleteLogStreamCommand, DescribeLogGroupsCommand, DescribeLogStreamsCommand, GetQueryResultsCommand, StartQueryCommand, StopQueryCommand, } from '@aws-sdk/client-cloudwatch-logs';
|
|
2
|
-
import { Logger } from '@bitblit/ratchet-common';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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 { PromiseRatchet } from '@bitblit/ratchet-common/dist/lang/promise-ratchet.js';
|
|
6
6
|
export class CloudWatchLogsRatchet {
|
|
7
|
+
static MAX_DELETE_RETRIES = 5;
|
|
8
|
+
cwLogs;
|
|
7
9
|
constructor(cloudwatchLogs = null) {
|
|
8
10
|
this.cwLogs = cloudwatchLogs ? cloudwatchLogs : new CloudWatchLogsClient({ region: 'us-east-1' });
|
|
9
11
|
}
|
|
@@ -166,4 +168,3 @@ export class CloudWatchLogsRatchet {
|
|
|
166
168
|
return rval;
|
|
167
169
|
}
|
|
168
170
|
}
|
|
169
|
-
CloudWatchLogsRatchet.MAX_DELETE_RETRIES = 5;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
|
|
2
|
+
import { CloudWatchLogsRatchet } from './cloud-watch-logs-ratchet.js';
|
|
3
|
+
import { CloudWatchLogsClient, DeleteLogGroupCommand, DeleteLogStreamCommand, DescribeLogGroupsCommand, DescribeLogStreamsCommand, GetQueryResultsCommand, StartQueryCommand, } from '@aws-sdk/client-cloudwatch-logs';
|
|
4
|
+
import { mockClient } from 'aws-sdk-client-mock';
|
|
5
|
+
let mockCW;
|
|
6
|
+
describe('#cloudWatchLogsRatchet', function () {
|
|
7
|
+
mockCW = mockClient(CloudWatchLogsClient);
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
mockCW.reset();
|
|
10
|
+
});
|
|
11
|
+
it('should find the stream with the oldest timestamp in a group', async () => {
|
|
12
|
+
mockCW.on(DescribeLogStreamsCommand).resolves({
|
|
13
|
+
logStreams: [
|
|
14
|
+
{ logStreamName: '1', firstEventTimestamp: 100 },
|
|
15
|
+
{ logStreamName: '2', firstEventTimestamp: 200 },
|
|
16
|
+
],
|
|
17
|
+
});
|
|
18
|
+
const cw = new CloudWatchLogsRatchet(mockCW);
|
|
19
|
+
const res = await cw.findStreamWithOldestEventInGroup('test');
|
|
20
|
+
expect(res).toBeTruthy();
|
|
21
|
+
expect(res.logStreamName).toEqual('1');
|
|
22
|
+
});
|
|
23
|
+
it('should find the oldest timestamp in group', async () => {
|
|
24
|
+
mockCW.on(DescribeLogStreamsCommand).resolves({
|
|
25
|
+
logStreams: [
|
|
26
|
+
{ logStreamName: '1', firstEventTimestamp: 100 },
|
|
27
|
+
{ logStreamName: '2', firstEventTimestamp: 200 },
|
|
28
|
+
],
|
|
29
|
+
});
|
|
30
|
+
const cw = new CloudWatchLogsRatchet(mockCW);
|
|
31
|
+
const res = await cw.findOldestEventTimestampInGroup('test');
|
|
32
|
+
expect(res).toEqual(100);
|
|
33
|
+
});
|
|
34
|
+
it('should remove log groups', async () => {
|
|
35
|
+
mockCW.on(DeleteLogGroupCommand).resolves(null);
|
|
36
|
+
const cw = new CloudWatchLogsRatchet(mockCW);
|
|
37
|
+
const res = await cw.removeLogGroups([{ logGroupName: '1' }, { logGroupName: '2' }]);
|
|
38
|
+
expect(res.length).toEqual(2);
|
|
39
|
+
});
|
|
40
|
+
it('should remove log groups with prefix', async () => {
|
|
41
|
+
mockCW.on(DescribeLogGroupsCommand).resolves({
|
|
42
|
+
logGroups: [{ logGroupName: 'pre1' }, { logGroupName: 'pre2' }],
|
|
43
|
+
});
|
|
44
|
+
mockCW.on(DeleteLogGroupCommand).resolves(null);
|
|
45
|
+
const cw = new CloudWatchLogsRatchet(mockCW);
|
|
46
|
+
const res = await cw.removeLogGroupsWithPrefix('pre');
|
|
47
|
+
expect(res.length).toEqual(2);
|
|
48
|
+
});
|
|
49
|
+
it('should remove empty or old log streams', async () => {
|
|
50
|
+
mockCW.on(DescribeLogStreamsCommand).resolves({
|
|
51
|
+
logStreams: [{ logStreamName: '1' }, { logStreamName: '2' }],
|
|
52
|
+
});
|
|
53
|
+
mockCW.on(DeleteLogStreamCommand).resolves(null);
|
|
54
|
+
const cw = new CloudWatchLogsRatchet(mockCW);
|
|
55
|
+
const res = await cw.removeEmptyOrOldLogStreams('test', 1000);
|
|
56
|
+
expect(res).toBeTruthy();
|
|
57
|
+
expect(res.length).toEqual(2);
|
|
58
|
+
});
|
|
59
|
+
it('should find all matching groups', async () => {
|
|
60
|
+
mockCW.on(DescribeLogGroupsCommand).resolves({ logGroups: [{ logGroupName: '1' }, { logGroupName: '2' }] });
|
|
61
|
+
const cw = new CloudWatchLogsRatchet(mockCW);
|
|
62
|
+
const prefix = '/';
|
|
63
|
+
const res = await cw.findLogGroups(prefix);
|
|
64
|
+
expect(res).toBeTruthy();
|
|
65
|
+
expect(res.length).toEqual(2);
|
|
66
|
+
});
|
|
67
|
+
it('should execute an insights query', async () => {
|
|
68
|
+
mockCW.on(StartQueryCommand).resolves({ queryId: 'test' });
|
|
69
|
+
mockCW.on(GetQueryResultsCommand).resolves({});
|
|
70
|
+
const cw = new CloudWatchLogsRatchet(mockCW);
|
|
71
|
+
const logGroups = ['/someGroup'];
|
|
72
|
+
const now = Math.floor(new Date().getTime() / 1000);
|
|
73
|
+
const req = {
|
|
74
|
+
endTime: now,
|
|
75
|
+
limit: 200,
|
|
76
|
+
logGroupNames: logGroups,
|
|
77
|
+
queryString: 'fields @timestamp, @message | sort @timestamp desc',
|
|
78
|
+
startTime: now - 60 * 60 * 24,
|
|
79
|
+
};
|
|
80
|
+
const res = await cw.fullyExecuteInsightsQuery(req);
|
|
81
|
+
expect(res).toBeTruthy();
|
|
82
|
+
Logger.info('Got : %j', res);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CloudWatchClient } from '@aws-sdk/client-cloudwatch';
|
|
2
|
-
import { KeyValue } from '@bitblit/ratchet-common';
|
|
3
|
-
import { CloudWatchMetricsUnit } from '../model/cloud-watch-metrics-unit';
|
|
4
|
-
import { CloudWatchMetricsMinuteLevelDynamoCountRequest } from '../model/cloud-watch-metrics-minute-level-dynamo-count-request';
|
|
2
|
+
import { KeyValue } from '@bitblit/ratchet-common/dist/lang/key-value.js';
|
|
3
|
+
import { CloudWatchMetricsUnit } from '../model/cloud-watch-metrics-unit.js';
|
|
4
|
+
import { CloudWatchMetricsMinuteLevelDynamoCountRequest } from '../model/cloud-watch-metrics-minute-level-dynamo-count-request.js';
|
|
5
5
|
export declare class CloudWatchMetricsRatchet {
|
|
6
6
|
private cw;
|
|
7
7
|
constructor(cloudWatch?: CloudWatchClient);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { CloudWatchClient, PutMetricDataCommand } from '@aws-sdk/client-cloudwatch';
|
|
2
|
-
import { Logger } from '@bitblit/ratchet-common';
|
|
3
|
-
import { CloudWatchMetricsUnit } from '../model/cloud-watch-metrics-unit';
|
|
2
|
+
import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
|
|
3
|
+
import { CloudWatchMetricsUnit } from '../model/cloud-watch-metrics-unit.js';
|
|
4
4
|
import { DateTime } from 'luxon';
|
|
5
5
|
export class CloudWatchMetricsRatchet {
|
|
6
|
+
cw;
|
|
6
7
|
constructor(cloudWatch = null) {
|
|
7
8
|
this.cw = cloudWatch ? cloudWatch : new CloudWatchClient({ region: 'us-east-1', apiVersion: '2010-08-01' });
|
|
8
9
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CloudWatchMetricsRatchet } from './cloud-watch-metrics-ratchet.js';
|
|
2
|
+
import { CloudWatchMetricsUnit } from '../model/cloud-watch-metrics-unit.js';
|
|
3
|
+
import { CloudWatchClient, PutMetricDataCommand } from '@aws-sdk/client-cloudwatch';
|
|
4
|
+
import { mockClient } from 'aws-sdk-client-mock';
|
|
5
|
+
let mockCW;
|
|
6
|
+
describe('#cloudWatchMetricsRatchet', function () {
|
|
7
|
+
mockCW = mockClient(CloudWatchClient);
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
mockCW.reset();
|
|
10
|
+
mockCW.reset();
|
|
11
|
+
});
|
|
12
|
+
it('should log a cloudwatch metric', async () => {
|
|
13
|
+
mockCW.on(PutMetricDataCommand).resolves({ ok: true });
|
|
14
|
+
const cw = new CloudWatchMetricsRatchet(mockCW);
|
|
15
|
+
const dims = [
|
|
16
|
+
{ key: 'server', value: 'prod' },
|
|
17
|
+
{ key: 'stage', value: 'v0' },
|
|
18
|
+
{ key: 'version', value: '20190529-01' },
|
|
19
|
+
];
|
|
20
|
+
const res = await cw.writeSingleMetric('Ratchet/TestMetric01', 'MyMetric01', dims, CloudWatchMetricsUnit.Count, 2, new Date(), false);
|
|
21
|
+
expect(res).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { DaemonProcessState } from './daemon-process-state';
|
|
3
|
-
import { DaemonProcessCreateOptions } from './daemon-process-create-options';
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { DaemonProcessState } from './daemon-process-state.js';
|
|
3
|
+
import { DaemonProcessCreateOptions } from './daemon-process-create-options.js';
|
|
4
4
|
export interface DaemonLike {
|
|
5
5
|
get defaultGroup(): string;
|
|
6
6
|
keyToPublicToken(key: string, expirationSeconds: number): Promise<string>;
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
import { DaemonProcessState } from './daemon-process-state';
|
|
4
|
-
import { S3CacheRatchet } from '../s3/s3-cache-ratchet';
|
|
5
|
-
import { DaemonProcessCreateOptions } from './daemon-process-create-options';
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import { DaemonProcessState } from './daemon-process-state.js';
|
|
4
|
+
import { S3CacheRatchet } from '../s3/s3-cache-ratchet.js';
|
|
5
|
+
import { DaemonProcessCreateOptions } from './daemon-process-create-options.js';
|
|
6
6
|
import { Readable } from 'stream';
|
|
7
|
-
/**
|
|
8
|
-
* Internal utilities which are here for the USE OF THE DAEMON OBJECT ONLY - if you are trying to use this
|
|
9
|
-
* class outside of Ratchet, you are doing it wrong. Instantiate a Daemon object and use that instead.
|
|
10
|
-
*
|
|
11
|
-
* The details of storage and retrieval of a DaemonProcessState is meant to be transparent to the user
|
|
12
|
-
*/
|
|
13
7
|
export declare class DaemonUtil {
|
|
14
8
|
static DEFAULT_CONTENT: Buffer;
|
|
15
9
|
static DAEMON_METADATA_KEY: string;
|
|
@@ -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 { PutObjectCommand, } from '@aws-sdk/client-s3';
|
|
3
3
|
import { Upload } from '@aws-sdk/lib-storage';
|
|
4
4
|
export class DaemonUtil {
|
|
5
|
+
static DEFAULT_CONTENT = Buffer.from('DAEMON_PLACEHOLDER');
|
|
6
|
+
static DAEMON_METADATA_KEY = 'daemon_meta';
|
|
5
7
|
static async start(cache, id, s3Key, options) {
|
|
6
8
|
try {
|
|
7
9
|
options.meta = options.meta || {};
|
|
@@ -144,5 +146,3 @@ export class DaemonUtil {
|
|
|
144
146
|
}
|
|
145
147
|
}
|
|
146
148
|
}
|
|
147
|
-
DaemonUtil.DEFAULT_CONTENT = Buffer.from('DAEMON_PLACEHOLDER');
|
|
148
|
-
DaemonUtil.DAEMON_METADATA_KEY = 'daemon_meta';
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { S3CacheRatchet } from '../s3/s3-cache-ratchet.js';
|
|
2
|
+
import { DaemonUtil } from './daemon-util.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 { PromiseRatchet } from '@bitblit/ratchet-common/dist/lang/promise-ratchet.js';
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import { JestRatchet } from '@bitblit/ratchet-jest/dist/jest/jest-ratchet.js';
|
|
8
|
+
import { Subject } from 'rxjs';
|
|
9
|
+
import { PassThrough } from 'stream';
|
|
10
|
+
import { CsvRatchet } from '@bitblit/ratchet-node-only/dist/csv/csv-ratchet.js';
|
|
11
|
+
import { S3Client } from '@aws-sdk/client-s3';
|
|
12
|
+
import { jest } from '@jest/globals';
|
|
13
|
+
let mockS3CR;
|
|
14
|
+
describe('#DaemonUtil', function () {
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
mockS3CR = JestRatchet.mock(jest.fn);
|
|
17
|
+
});
|
|
18
|
+
it('should test the daemon util', async () => {
|
|
19
|
+
mockS3CR.getDefaultBucket.mockReturnValueOnce('TEST-BUCKET');
|
|
20
|
+
mockS3CR.fetchMetaForCacheFile.mockResolvedValue({
|
|
21
|
+
Metadata: { daemon_meta: '{"id":"testid", "completedEpochMS":123456}' },
|
|
22
|
+
$metadata: null,
|
|
23
|
+
});
|
|
24
|
+
mockS3CR.preSignedDownloadUrlForCacheFile.mockResolvedValue('https://test-link');
|
|
25
|
+
const t1 = await DaemonUtil.stat(mockS3CR, 'test1.csv');
|
|
26
|
+
Logger.info('Got : %j', t1);
|
|
27
|
+
expect(t1).not.toBeNull();
|
|
28
|
+
expect(t1.link).not.toBeNull();
|
|
29
|
+
});
|
|
30
|
+
xit('should test the daemon util streaming', async () => {
|
|
31
|
+
const s3 = new S3Client({ region: 'us-east-1' });
|
|
32
|
+
const cache = new S3CacheRatchet(s3, 'test-bucket');
|
|
33
|
+
const key = 's3-cache-ratchet.spec.ts';
|
|
34
|
+
const newDaemonOptions = {
|
|
35
|
+
title: 'test',
|
|
36
|
+
contentType: 'text/plain',
|
|
37
|
+
group: 'NA',
|
|
38
|
+
meta: {},
|
|
39
|
+
targetFileName: 's3-cache-ratchet.spec.ts',
|
|
40
|
+
};
|
|
41
|
+
const t2 = await DaemonUtil.start(cache, key, 's3-cache-ratchet.spec.ts', newDaemonOptions);
|
|
42
|
+
const t1 = await DaemonUtil.stat(cache, key);
|
|
43
|
+
Logger.info('Got : %j', t1);
|
|
44
|
+
const stream = fs.createReadStream('test/aws/s3-cache-ratchet.spec.ts');
|
|
45
|
+
const result = await DaemonUtil.streamDataAndFinish(cache, key, stream);
|
|
46
|
+
expect(result).toBeTruthy();
|
|
47
|
+
Logger.info('Got objects : %j', result);
|
|
48
|
+
});
|
|
49
|
+
xit('should stream objects to a csv', async () => {
|
|
50
|
+
Logger.setLevel(LoggerLevelName.debug);
|
|
51
|
+
const sub = new Subject();
|
|
52
|
+
const out = new PassThrough();
|
|
53
|
+
const s3 = new S3Client({ region: 'us-east-1' });
|
|
54
|
+
const cache = new S3CacheRatchet(s3, 'test-bucket');
|
|
55
|
+
const key = 'test.csv';
|
|
56
|
+
const newDaemonOptions = {
|
|
57
|
+
title: 'test',
|
|
58
|
+
contentType: 'text/csv',
|
|
59
|
+
group: 'NA',
|
|
60
|
+
meta: {},
|
|
61
|
+
targetFileName: 'test.csv',
|
|
62
|
+
};
|
|
63
|
+
const t2 = await DaemonUtil.start(cache, key, key, newDaemonOptions);
|
|
64
|
+
const dProm = DaemonUtil.streamDataAndFinish(cache, key, out);
|
|
65
|
+
const prom = CsvRatchet.streamObjectsToCsv(sub, out);
|
|
66
|
+
for (let i = 1; i < 6; i++) {
|
|
67
|
+
Logger.debug('Proc : %d', i);
|
|
68
|
+
sub.next({ a: i, b: 'test ' + i + ' ,,' });
|
|
69
|
+
await PromiseRatchet.wait(10);
|
|
70
|
+
}
|
|
71
|
+
sub.complete();
|
|
72
|
+
Logger.debug('Waiting on write');
|
|
73
|
+
const result = await prom;
|
|
74
|
+
Logger.debug('Write complete');
|
|
75
|
+
const val = await dProm;
|
|
76
|
+
expect(result).toEqual(5);
|
|
77
|
+
Logger.debug('Have res : %d and val : \n%j', result, val);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { JwtRatchetLike } from '@bitblit/ratchet-common/dist/jwt/jwt-ratchet-like.js';
|
|
3
|
+
import { DaemonProcessState } from './daemon-process-state.js';
|
|
4
|
+
import { DaemonProcessCreateOptions } from './daemon-process-create-options.js';
|
|
5
|
+
import { DaemonLike } from './daemon-like.js';
|
|
6
6
|
import { S3Client } from '@aws-sdk/client-s3';
|
|
7
7
|
export declare class Daemon implements DaemonLike {
|
|
8
8
|
private s3;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { Logger } from '@bitblit/ratchet-common';
|
|
2
|
-
import {
|
|
3
|
-
import { StringRatchet } from '@bitblit/ratchet-common';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { Logger } from '@bitblit/ratchet-common/dist/logger/logger.js';
|
|
2
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/dist/lang/require-ratchet.js';
|
|
3
|
+
import { StringRatchet } from '@bitblit/ratchet-common/dist/lang/string-ratchet.js';
|
|
4
|
+
import { S3CacheRatchet } from '../s3/s3-cache-ratchet.js';
|
|
5
|
+
import { DaemonUtil } from './daemon-util.js';
|
|
6
6
|
export class Daemon {
|
|
7
|
+
s3;
|
|
8
|
+
bucket;
|
|
9
|
+
prefix;
|
|
10
|
+
_defaultGroup;
|
|
11
|
+
jwtRatchet;
|
|
12
|
+
static DEFAULT_DEFAULT_GROUP = 'DEFAULT';
|
|
13
|
+
cache;
|
|
7
14
|
constructor(s3, bucket, prefix = '', _defaultGroup = Daemon.DEFAULT_DEFAULT_GROUP, jwtRatchet) {
|
|
8
15
|
this.s3 = s3;
|
|
9
16
|
this.bucket = bucket;
|
|
@@ -119,4 +126,3 @@ export class Daemon {
|
|
|
119
126
|
return DaemonUtil.finalize(this.cache, this.keyToPath(id), contents);
|
|
120
127
|
}
|
|
121
128
|
}
|
|
122
|
-
Daemon.DEFAULT_DEFAULT_GROUP = 'DEFAULT';
|