@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.
- package/lib/batch/aws-batch-background-processor.d.ts +8 -0
- package/lib/batch/aws-batch-background-processor.js +46 -0
- package/lib/batch/aws-batch-background-processor.js.map +1 -0
- package/lib/batch/aws-batch-ratchet.d.ts +13 -0
- package/lib/batch/aws-batch-ratchet.js +56 -0
- package/lib/batch/aws-batch-ratchet.js.map +1 -0
- package/lib/batch/index.d.ts +2 -0
- package/lib/batch/index.js +3 -0
- package/lib/batch/index.js.map +1 -0
- package/lib/build/index.d.ts +1 -0
- package/lib/build/index.js +2 -0
- package/lib/build/index.js.map +1 -0
- package/lib/build/ratchet-aws-info.d.ts +5 -0
- package/lib/build/ratchet-aws-info.js +15 -0
- package/lib/build/ratchet-aws-info.js.map +1 -0
- package/lib/cache/index.d.ts +5 -0
- package/lib/cache/index.js +6 -0
- package/lib/cache/index.js.map +1 -0
- package/lib/cache/memory-storage-provider.d.ts +10 -0
- package/lib/cache/memory-storage-provider.js +28 -0
- package/lib/cache/memory-storage-provider.js.map +1 -0
- package/lib/cache/simple-cache-object-wrapper.d.ts +7 -0
- package/lib/cache/simple-cache-object-wrapper.js +2 -0
- package/lib/cache/simple-cache-object-wrapper.js.map +1 -0
- package/lib/cache/simple-cache-read-options.d.ts +5 -0
- package/lib/cache/simple-cache-read-options.js +2 -0
- package/lib/cache/simple-cache-read-options.js.map +1 -0
- package/lib/cache/simple-cache-storage-provider.d.ts +8 -0
- package/lib/cache/simple-cache-storage-provider.js +2 -0
- package/lib/cache/simple-cache-storage-provider.js.map +1 -0
- package/lib/cache/simple-cache.d.ts +14 -0
- package/lib/cache/simple-cache.js +65 -0
- package/lib/cache/simple-cache.js.map +1 -0
- package/lib/cloudwatch/cloud-watch-log-group-ratchet.d.ts +10 -0
- package/lib/cloudwatch/cloud-watch-log-group-ratchet.js +75 -0
- package/lib/cloudwatch/cloud-watch-log-group-ratchet.js.map +1 -0
- package/lib/cloudwatch/cloud-watch-logs-ratchet.d.ts +15 -0
- package/lib/cloudwatch/cloud-watch-logs-ratchet.js +174 -0
- package/lib/cloudwatch/cloud-watch-logs-ratchet.js.map +1 -0
- package/lib/cloudwatch/cloud-watch-metrics-ratchet.d.ts +10 -0
- package/lib/cloudwatch/cloud-watch-metrics-ratchet.js +57 -0
- package/lib/cloudwatch/cloud-watch-metrics-ratchet.js.map +1 -0
- package/lib/cloudwatch/index.d.ts +3 -0
- package/lib/cloudwatch/index.js +4 -0
- package/lib/cloudwatch/index.js.map +1 -0
- package/lib/daemon/daemon-like.d.ts +16 -0
- package/lib/daemon/daemon-like.js +2 -0
- package/lib/daemon/daemon-like.js.map +1 -0
- package/lib/daemon/daemon-process-create-options.d.ts +7 -0
- package/lib/daemon/daemon-process-create-options.js +2 -0
- package/lib/daemon/daemon-process-create-options.js.map +1 -0
- package/lib/daemon/daemon-process-state-public-token.d.ts +4 -0
- package/lib/daemon/daemon-process-state-public-token.js +2 -0
- package/lib/daemon/daemon-process-state-public-token.js.map +1 -0
- package/lib/daemon/daemon-process-state.d.ts +13 -0
- package/lib/daemon/daemon-process-state.js +2 -0
- package/lib/daemon/daemon-process-state.js.map +1 -0
- package/lib/daemon/daemon-stream-data-options.d.ts +5 -0
- package/lib/daemon/daemon-stream-data-options.js +2 -0
- package/lib/daemon/daemon-stream-data-options.js.map +1 -0
- package/lib/daemon/daemon-util.d.ts +17 -0
- package/lib/daemon/daemon-util.js +154 -0
- package/lib/daemon/daemon-util.js.map +1 -0
- package/lib/daemon/daemon.d.ts +32 -0
- package/lib/daemon/daemon.js +129 -0
- package/lib/daemon/daemon.js.map +1 -0
- package/lib/daemon/index.d.ts +7 -0
- package/lib/daemon/index.js +8 -0
- package/lib/daemon/index.js.map +1 -0
- package/lib/dao/example-prototype-dao-item.d.ts +8 -0
- package/lib/dao/example-prototype-dao-item.js +2 -0
- package/lib/dao/example-prototype-dao-item.js.map +1 -0
- package/lib/dao/index.d.ts +8 -0
- package/lib/dao/index.js +9 -0
- package/lib/dao/index.js.map +1 -0
- package/lib/dao/memory-prototype-dao-provider.d.ts +7 -0
- package/lib/dao/memory-prototype-dao-provider.js +11 -0
- package/lib/dao/memory-prototype-dao-provider.js.map +1 -0
- package/lib/dao/prototype-dao-config.d.ts +8 -0
- package/lib/dao/prototype-dao-config.js +2 -0
- package/lib/dao/prototype-dao-config.js.map +1 -0
- package/lib/dao/prototype-dao-db.d.ts +4 -0
- package/lib/dao/prototype-dao-db.js +2 -0
- package/lib/dao/prototype-dao-db.js.map +1 -0
- package/lib/dao/prototype-dao-provider.d.ts +5 -0
- package/lib/dao/prototype-dao-provider.js +2 -0
- package/lib/dao/prototype-dao-provider.js.map +1 -0
- package/lib/dao/prototype-dao.d.ts +15 -0
- package/lib/dao/prototype-dao.js +89 -0
- package/lib/dao/prototype-dao.js.map +1 -0
- package/lib/dao/s3-simple-dao.d.ts +15 -0
- package/lib/dao/s3-simple-dao.js +77 -0
- package/lib/dao/s3-simple-dao.js.map +1 -0
- package/lib/dao/simple-dao-item.d.ts +5 -0
- package/lib/dao/simple-dao-item.js +2 -0
- package/lib/dao/simple-dao-item.js.map +1 -0
- package/lib/dynamodb/dynamo-ratchet-like.d.ts +25 -0
- package/lib/dynamodb/dynamo-ratchet-like.js +2 -0
- package/lib/dynamodb/dynamo-ratchet-like.js.map +1 -0
- package/lib/dynamodb/dynamo-ratchet.d.ts +34 -0
- package/lib/dynamodb/dynamo-ratchet.js +671 -0
- package/lib/dynamodb/dynamo-ratchet.js.map +1 -0
- package/lib/dynamodb/dynamo-table-ratchet.d.ts +13 -0
- package/lib/dynamodb/dynamo-table-ratchet.js +140 -0
- package/lib/dynamodb/dynamo-table-ratchet.js.map +1 -0
- package/lib/dynamodb/hash-spreader.d.ts +15 -0
- package/lib/dynamodb/hash-spreader.js +66 -0
- package/lib/dynamodb/hash-spreader.js.map +1 -0
- package/lib/dynamodb/impl/dynamo-db-storage-provider.d.ts +25 -0
- package/lib/dynamodb/impl/dynamo-db-storage-provider.js +110 -0
- package/lib/dynamodb/impl/dynamo-db-storage-provider.js.map +1 -0
- package/lib/dynamodb/impl/dynamo-db-sync-lock.d.ts +10 -0
- package/lib/dynamodb/impl/dynamo-db-sync-lock.js +71 -0
- package/lib/dynamodb/impl/dynamo-db-sync-lock.js.map +1 -0
- package/lib/dynamodb/impl/dynamo-expiring-code-provider.d.ts +12 -0
- package/lib/dynamodb/impl/dynamo-expiring-code-provider.js +25 -0
- package/lib/dynamodb/impl/dynamo-expiring-code-provider.js.map +1 -0
- package/lib/dynamodb/impl/dynamo-runtime-parameter-provider.d.ts +11 -0
- package/lib/dynamodb/impl/dynamo-runtime-parameter-provider.js +37 -0
- package/lib/dynamodb/impl/dynamo-runtime-parameter-provider.js.map +1 -0
- package/lib/dynamodb/index.d.ts +8 -0
- package/lib/dynamodb/index.js +9 -0
- package/lib/dynamodb/index.js.map +1 -0
- package/lib/ec2/ec2-ratchet.d.ts +16 -0
- package/lib/ec2/ec2-ratchet.js +114 -0
- package/lib/ec2/ec2-ratchet.js.map +1 -0
- package/lib/ec2/index.d.ts +1 -0
- package/lib/ec2/index.js +2 -0
- package/lib/ec2/index.js.map +1 -0
- package/lib/ecr/ecr-unused-image-cleaner-options.d.ts +7 -0
- package/lib/ecr/ecr-unused-image-cleaner-options.js +2 -0
- package/lib/ecr/ecr-unused-image-cleaner-options.js.map +1 -0
- package/lib/ecr/ecr-unused-image-cleaner-output.d.ts +7 -0
- package/lib/ecr/ecr-unused-image-cleaner-output.js +2 -0
- package/lib/ecr/ecr-unused-image-cleaner-output.js.map +1 -0
- package/lib/ecr/ecr-unused-image-cleaner-repository-output.d.ts +8 -0
- package/lib/ecr/ecr-unused-image-cleaner-repository-output.js +2 -0
- package/lib/ecr/ecr-unused-image-cleaner-repository-output.js.map +1 -0
- package/lib/ecr/ecr-unused-image-cleaner.d.ts +18 -0
- package/lib/ecr/ecr-unused-image-cleaner.js +136 -0
- package/lib/ecr/ecr-unused-image-cleaner.js.map +1 -0
- package/lib/ecr/index.d.ts +9 -0
- package/lib/ecr/index.js +10 -0
- package/lib/ecr/index.js.map +1 -0
- package/lib/ecr/retained-image-descriptor.d.ts +6 -0
- package/lib/ecr/retained-image-descriptor.js +2 -0
- package/lib/ecr/retained-image-descriptor.js.map +1 -0
- package/lib/ecr/retained-image-reason.d.ts +4 -0
- package/lib/ecr/retained-image-reason.js +6 -0
- package/lib/ecr/retained-image-reason.js.map +1 -0
- package/lib/ecr/used-image-finder.d.ts +3 -0
- package/lib/ecr/used-image-finder.js +2 -0
- package/lib/ecr/used-image-finder.js.map +1 -0
- package/lib/ecr/used-image-finders/aws-batch-used-image-finder.d.ts +8 -0
- package/lib/ecr/used-image-finders/aws-batch-used-image-finder.js +32 -0
- package/lib/ecr/used-image-finders/aws-batch-used-image-finder.js.map +1 -0
- package/lib/ecr/used-image-finders/lambda-used-image-finder.d.ts +8 -0
- package/lib/ecr/used-image-finders/lambda-used-image-finder.js +40 -0
- package/lib/ecr/used-image-finders/lambda-used-image-finder.js.map +1 -0
- package/lib/environment/cascade-environment-service-provider.d.ts +6 -0
- package/lib/environment/cascade-environment-service-provider.js +25 -0
- package/lib/environment/cascade-environment-service-provider.js.map +1 -0
- package/lib/environment/env-var-environment-service-provider.d.ts +6 -0
- package/lib/environment/env-var-environment-service-provider.js +31 -0
- package/lib/environment/env-var-environment-service-provider.js.map +1 -0
- package/lib/environment/environment-service-config.d.ts +4 -0
- package/lib/environment/environment-service-config.js +2 -0
- package/lib/environment/environment-service-config.js.map +1 -0
- package/lib/environment/environment-service-provider.d.ts +3 -0
- package/lib/environment/environment-service-provider.js +2 -0
- package/lib/environment/environment-service-provider.js.map +1 -0
- package/lib/environment/environment-service.d.ts +11 -0
- package/lib/environment/environment-service.js +51 -0
- package/lib/environment/environment-service.js.map +1 -0
- package/lib/environment/fixed-environment-service-provider.d.ts +7 -0
- package/lib/environment/fixed-environment-service-provider.js +22 -0
- package/lib/environment/fixed-environment-service-provider.js.map +1 -0
- package/lib/environment/index.d.ts +7 -0
- package/lib/environment/index.js +8 -0
- package/lib/environment/index.js.map +1 -0
- package/lib/environment/ssm-environment-service-provider.d.ts +8 -0
- package/lib/environment/ssm-environment-service-provider.js +59 -0
- package/lib/environment/ssm-environment-service-provider.js.map +1 -0
- package/lib/expiring-code/expiring-code-params.d.ts +7 -0
- package/lib/expiring-code/expiring-code-params.js +2 -0
- package/lib/expiring-code/expiring-code-params.js.map +1 -0
- package/lib/expiring-code/expiring-code-provider.d.ts +5 -0
- package/lib/expiring-code/expiring-code-provider.js +2 -0
- package/lib/expiring-code/expiring-code-provider.js.map +1 -0
- package/lib/expiring-code/expiring-code-ratchet.d.ts +10 -0
- package/lib/expiring-code/expiring-code-ratchet.js +35 -0
- package/lib/expiring-code/expiring-code-ratchet.js.map +1 -0
- package/lib/expiring-code/expiring-code.d.ts +6 -0
- package/lib/expiring-code/expiring-code.js +2 -0
- package/lib/expiring-code/expiring-code.js.map +1 -0
- package/lib/expiring-code/index.d.ts +4 -0
- package/lib/expiring-code/index.js +5 -0
- package/lib/expiring-code/index.js.map +1 -0
- package/lib/iam/aws-credentials-ratchet.d.ts +4 -0
- package/lib/iam/aws-credentials-ratchet.js +19 -0
- package/lib/iam/aws-credentials-ratchet.js.map +1 -0
- package/lib/iam/index.d.ts +1 -0
- package/lib/iam/index.js +2 -0
- package/lib/iam/index.js.map +1 -0
- package/lib/lambda/index.d.ts +2 -0
- package/lib/lambda/index.js +3 -0
- package/lib/lambda/index.js.map +1 -0
- package/lib/lambda/lambda-event-detector.d.ts +15 -0
- package/lib/lambda/lambda-event-detector.js +42 -0
- package/lib/lambda/lambda-event-detector.js.map +1 -0
- package/lib/lambda/lambda-event-type-guards.d.ts +11 -0
- package/lib/lambda/lambda-event-type-guards.js +28 -0
- package/lib/lambda/lambda-event-type-guards.js.map +1 -0
- package/lib/model/cloud-watch-metrics-minute-level-dynamo-count-request.d.ts +12 -0
- package/lib/model/cloud-watch-metrics-minute-level-dynamo-count-request.js +2 -0
- package/lib/model/cloud-watch-metrics-minute-level-dynamo-count-request.js.map +1 -0
- package/lib/model/dynamo-count-result.d.ts +5 -0
- package/lib/model/dynamo-count-result.js +2 -0
- package/lib/model/dynamo-count-result.js.map +1 -0
- package/lib/model/index.d.ts +2 -0
- package/lib/model/index.js +3 -0
- package/lib/model/index.js.map +1 -0
- package/lib/route53/index.d.ts +1 -0
- package/lib/route53/index.js +2 -0
- package/lib/route53/index.js.map +1 -0
- package/lib/route53/route-53-ratchet.d.ts +8 -0
- package/lib/route53/route-53-ratchet.js +59 -0
- package/lib/route53/route-53-ratchet.js.map +1 -0
- package/lib/runtime-parameter/cached-stored-runtime-parameter.d.ts +4 -0
- package/lib/runtime-parameter/cached-stored-runtime-parameter.js +2 -0
- package/lib/runtime-parameter/cached-stored-runtime-parameter.js.map +1 -0
- package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.d.ts +17 -0
- package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.js +52 -0
- package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.js.map +1 -0
- package/lib/runtime-parameter/index.d.ts +6 -0
- package/lib/runtime-parameter/index.js +7 -0
- package/lib/runtime-parameter/index.js.map +1 -0
- package/lib/runtime-parameter/memory-runtime-parameter-provider.d.ts +10 -0
- package/lib/runtime-parameter/memory-runtime-parameter-provider.js +35 -0
- package/lib/runtime-parameter/memory-runtime-parameter-provider.js.map +1 -0
- package/lib/runtime-parameter/runtime-parameter-provider.d.ts +6 -0
- package/lib/runtime-parameter/runtime-parameter-provider.js +2 -0
- package/lib/runtime-parameter/runtime-parameter-provider.js.map +1 -0
- package/lib/runtime-parameter/runtime-parameter-ratchet.d.ts +15 -0
- package/lib/runtime-parameter/runtime-parameter-ratchet.js +72 -0
- package/lib/runtime-parameter/runtime-parameter-ratchet.js.map +1 -0
- package/lib/runtime-parameter/stored-runtime-parameter.d.ts +6 -0
- package/lib/runtime-parameter/stored-runtime-parameter.js +2 -0
- package/lib/runtime-parameter/stored-runtime-parameter.js.map +1 -0
- package/lib/s3/expanded-file-children.d.ts +5 -0
- package/lib/s3/expanded-file-children.js +2 -0
- package/lib/s3/expanded-file-children.js.map +1 -0
- package/lib/s3/impl/s3-environment-service-provider.d.ts +15 -0
- package/lib/s3/impl/s3-environment-service-provider.js +28 -0
- package/lib/s3/impl/s3-environment-service-provider.js.map +1 -0
- package/lib/s3/impl/s3-expiring-code-provider.d.ts +17 -0
- package/lib/s3/impl/s3-expiring-code-provider.js +49 -0
- package/lib/s3/impl/s3-expiring-code-provider.js.map +1 -0
- package/lib/s3/impl/s3-prototype-dao-provider.d.ts +10 -0
- package/lib/s3/impl/s3-prototype-dao-provider.js +27 -0
- package/lib/s3/impl/s3-prototype-dao-provider.js.map +1 -0
- package/lib/s3/impl/s3-storage-provider.d.ts +14 -0
- package/lib/s3/impl/s3-storage-provider.js +44 -0
- package/lib/s3/impl/s3-storage-provider.js.map +1 -0
- package/lib/s3/index.d.ts +9 -0
- package/lib/s3/index.js +10 -0
- package/lib/s3/index.js.map +1 -0
- package/lib/s3/s3-cache-ratchet-like.d.ts +25 -0
- package/lib/s3/s3-cache-ratchet-like.js +2 -0
- package/lib/s3/s3-cache-ratchet-like.js.map +1 -0
- package/lib/s3/s3-cache-ratchet.d.ts +35 -0
- package/lib/s3/s3-cache-ratchet.js +360 -0
- package/lib/s3/s3-cache-ratchet.js.map +1 -0
- package/lib/s3/s3-location-sync-ratchet.d.ts +21 -0
- package/lib/s3/s3-location-sync-ratchet.js +140 -0
- package/lib/s3/s3-location-sync-ratchet.js.map +1 -0
- package/lib/s3/s3-ratchet.d.ts +5 -0
- package/lib/s3/s3-ratchet.js +23 -0
- package/lib/s3/s3-ratchet.js.map +1 -0
- package/lib/ses/index.d.ts +1 -0
- package/lib/ses/index.js +2 -0
- package/lib/ses/index.js.map +1 -0
- package/lib/ses/ses-mail-sending-provider.d.ts +15 -0
- package/lib/ses/ses-mail-sending-provider.js +68 -0
- package/lib/ses/ses-mail-sending-provider.js.map +1 -0
- package/lib/sns/index.d.ts +1 -0
- package/lib/sns/index.js +2 -0
- package/lib/sns/index.js.map +1 -0
- package/lib/sns/sns-ratchet.d.ts +9 -0
- package/lib/sns/sns-ratchet.js +49 -0
- package/lib/sns/sns-ratchet.js.map +1 -0
- package/lib/sync-lock/index.d.ts +2 -0
- package/lib/sync-lock/index.js +3 -0
- package/lib/sync-lock/index.js.map +1 -0
- package/lib/sync-lock/memory-sync-lock.d.ts +8 -0
- package/lib/sync-lock/memory-sync-lock.js +36 -0
- package/lib/sync-lock/memory-sync-lock.js.map +1 -0
- package/lib/sync-lock/sync-lock-provider.d.ts +5 -0
- package/lib/sync-lock/sync-lock-provider.js +2 -0
- package/lib/sync-lock/sync-lock-provider.js.map +1 -0
- package/package.json +55 -56
- package/lib/index.mjs +0 -2
- package/lib/types.d.ts +0 -818
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { S3CacheRatchet } from '../s3/s3-cache-ratchet.js';
|
|
2
|
+
import { DaemonUtil } from './daemon-util.js';
|
|
3
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/lang/require-ratchet';
|
|
4
|
+
import { StringRatchet } from '@bitblit/ratchet-common/lang/string-ratchet';
|
|
5
|
+
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
6
|
+
export class Daemon {
|
|
7
|
+
s3;
|
|
8
|
+
bucket;
|
|
9
|
+
prefix;
|
|
10
|
+
_defaultGroup;
|
|
11
|
+
jwtRatchet;
|
|
12
|
+
static DEFAULT_DEFAULT_GROUP = 'DEFAULT';
|
|
13
|
+
cache;
|
|
14
|
+
constructor(s3, bucket, prefix = '', _defaultGroup = Daemon.DEFAULT_DEFAULT_GROUP, jwtRatchet) {
|
|
15
|
+
this.s3 = s3;
|
|
16
|
+
this.bucket = bucket;
|
|
17
|
+
this.prefix = prefix;
|
|
18
|
+
this._defaultGroup = _defaultGroup;
|
|
19
|
+
this.jwtRatchet = jwtRatchet;
|
|
20
|
+
this.cache = new S3CacheRatchet(this.s3, this.bucket);
|
|
21
|
+
}
|
|
22
|
+
get defaultGroup() {
|
|
23
|
+
return this._defaultGroup;
|
|
24
|
+
}
|
|
25
|
+
async keyToPublicToken(key, expirationSeconds) {
|
|
26
|
+
RequireRatchet.notNullOrUndefined(this.jwtRatchet, 'You must set jwtRatchet if you wish to use public tokens');
|
|
27
|
+
RequireRatchet.notNullOrUndefined(key, 'key');
|
|
28
|
+
RequireRatchet.true(expirationSeconds > 0, 'Expiration seconds must be larger than 0');
|
|
29
|
+
const token = { daemonKey: key };
|
|
30
|
+
const publicToken = await this.jwtRatchet.createTokenString(token, expirationSeconds);
|
|
31
|
+
return publicToken;
|
|
32
|
+
}
|
|
33
|
+
keyToPath(key) {
|
|
34
|
+
return Buffer.from(key, 'base64').toString();
|
|
35
|
+
}
|
|
36
|
+
pathToKey(path) {
|
|
37
|
+
return Buffer.from(path).toString('base64');
|
|
38
|
+
}
|
|
39
|
+
generatePath(group = this._defaultGroup) {
|
|
40
|
+
return this.generatePrefix(group) + StringRatchet.createType4Guid();
|
|
41
|
+
}
|
|
42
|
+
generatePrefix(group = this._defaultGroup) {
|
|
43
|
+
return this.prefix + group + '/';
|
|
44
|
+
}
|
|
45
|
+
async start(options) {
|
|
46
|
+
options.group = options.group || this._defaultGroup;
|
|
47
|
+
const path = this.generatePath(options.group);
|
|
48
|
+
const key = this.pathToKey(path);
|
|
49
|
+
return DaemonUtil.start(this.cache, key, path, options);
|
|
50
|
+
}
|
|
51
|
+
async writeState(newState, contents) {
|
|
52
|
+
const key = this.keyToPath(newState.id);
|
|
53
|
+
return DaemonUtil.writeState(this.cache, key, newState, contents);
|
|
54
|
+
}
|
|
55
|
+
async clean(group = this._defaultGroup, olderThanSeconds = 60 * 60 * 24 * 7) {
|
|
56
|
+
try {
|
|
57
|
+
Logger.info('Daemon removing items older than %d seconds from group %s', olderThanSeconds, group);
|
|
58
|
+
const original = await this.list(group);
|
|
59
|
+
const now = new Date().getTime();
|
|
60
|
+
const removed = [];
|
|
61
|
+
for (let i = 0; i < original.length; i++) {
|
|
62
|
+
const test = original[i];
|
|
63
|
+
const ageSeconds = (now - test.startedEpochMS) / 1000;
|
|
64
|
+
if (ageSeconds > olderThanSeconds) {
|
|
65
|
+
const remove = await this.cache.removeCacheFile(this.keyToPath(test.id));
|
|
66
|
+
removed.push(test);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
Logger.debug('Removed %d of %d items', removed.length, original.length);
|
|
70
|
+
return removed;
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
Logger.error('Error while trying to clean a daemon: %j %s', group, err);
|
|
74
|
+
throw err;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async listKeys(group = this._defaultGroup) {
|
|
78
|
+
try {
|
|
79
|
+
const prefix = this.generatePrefix(group);
|
|
80
|
+
Logger.info('Fetching children of %s', prefix);
|
|
81
|
+
const rval = await this.cache.directChildrenOfPrefix(prefix);
|
|
82
|
+
Logger.debug('Found : %j', rval);
|
|
83
|
+
return rval;
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
Logger.error('Error while trying to list daemon keys: %j %s', group, err);
|
|
87
|
+
throw err;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async list(group = this._defaultGroup) {
|
|
91
|
+
try {
|
|
92
|
+
const prefix = this.generatePrefix(group);
|
|
93
|
+
Logger.info('Fetching children of %s', prefix);
|
|
94
|
+
const keys = await this.listKeys(group);
|
|
95
|
+
const proms = keys.map((k) => this.stat(this.pathToKey(this.generatePrefix(group) + k)));
|
|
96
|
+
const rval = await Promise.all(proms);
|
|
97
|
+
return rval;
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
Logger.error('Error while trying to list daemon states: %j %s', group, err);
|
|
101
|
+
throw err;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async updateMessage(id, newMessage) {
|
|
105
|
+
const itemPath = this.keyToPath(id);
|
|
106
|
+
return DaemonUtil.updateMessage(this.cache, itemPath, newMessage);
|
|
107
|
+
}
|
|
108
|
+
async stat(key) {
|
|
109
|
+
const itemPath = this.keyToPath(key);
|
|
110
|
+
return DaemonUtil.stat(this.cache, itemPath);
|
|
111
|
+
}
|
|
112
|
+
async statFromPublicToken(publicToken) {
|
|
113
|
+
RequireRatchet.notNullOrUndefined(this.jwtRatchet, 'You must set jwtRatchet if you wish to use public tokens');
|
|
114
|
+
RequireRatchet.notNullOrUndefined(publicToken, 'publicToken');
|
|
115
|
+
const parsed = await this.jwtRatchet.decodeToken(publicToken);
|
|
116
|
+
const key = parsed?.daemonKey;
|
|
117
|
+
return key ? this.stat(key) : null;
|
|
118
|
+
}
|
|
119
|
+
async abort(id) {
|
|
120
|
+
return DaemonUtil.abort(this.cache, this.keyToPath(id));
|
|
121
|
+
}
|
|
122
|
+
async error(id, error) {
|
|
123
|
+
return DaemonUtil.error(this.cache, this.keyToPath(id), error);
|
|
124
|
+
}
|
|
125
|
+
async finalize(id, contents) {
|
|
126
|
+
return DaemonUtil.finalize(this.cache, this.keyToPath(id), contents);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './daemon-like.js';
|
|
2
|
+
export * from './daemon-process-create-options.js';
|
|
3
|
+
export * from './daemon-process-state-public-token.js';
|
|
4
|
+
export * from './daemon-process-state.js';
|
|
5
|
+
export * from './daemon-stream-data-options.js';
|
|
6
|
+
export * from './daemon-util.js';
|
|
7
|
+
export * from './daemon.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './daemon-like.js';
|
|
2
|
+
export * from './daemon-process-create-options.js';
|
|
3
|
+
export * from './daemon-process-state-public-token.js';
|
|
4
|
+
export * from './daemon-process-state.js';
|
|
5
|
+
export * from './daemon-stream-data-options.js';
|
|
6
|
+
export * from './daemon-util.js';
|
|
7
|
+
export * from './daemon.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example-prototype-dao-item.js","sourceRoot":"","sources":["../../src/dao/example-prototype-dao-item.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './example-prototype-dao-item.js';
|
|
2
|
+
export * from './memory-prototype-dao-provider.js';
|
|
3
|
+
export * from './prototype-dao-config.js';
|
|
4
|
+
export * from './prototype-dao-db.js';
|
|
5
|
+
export * from './prototype-dao-provider.js';
|
|
6
|
+
export * from './prototype-dao.js';
|
|
7
|
+
export * from './s3-simple-dao.js';
|
|
8
|
+
export * from './simple-dao-item.js';
|
package/lib/dao/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './example-prototype-dao-item.js';
|
|
2
|
+
export * from './memory-prototype-dao-provider.js';
|
|
3
|
+
export * from './prototype-dao-config.js';
|
|
4
|
+
export * from './prototype-dao-db.js';
|
|
5
|
+
export * from './prototype-dao-provider.js';
|
|
6
|
+
export * from './prototype-dao.js';
|
|
7
|
+
export * from './s3-simple-dao.js';
|
|
8
|
+
export * from './simple-dao-item.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dao/index.ts"],"names":[],"mappings":"AAIA,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PrototypeDaoProvider } from './prototype-dao-provider.js';
|
|
2
|
+
import { PrototypeDaoDb } from './prototype-dao-db.js';
|
|
3
|
+
export declare class MemoryPrototypeDaoProvider implements PrototypeDaoProvider<any> {
|
|
4
|
+
private _db;
|
|
5
|
+
loadDatabase(): Promise<PrototypeDaoDb<any>>;
|
|
6
|
+
storeDatabase(db: PrototypeDaoDb<any>): Promise<boolean>;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-prototype-dao-provider.js","sourceRoot":"","sources":["../../src/dao/memory-prototype-dao-provider.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,0BAA0B;IAC7B,GAAG,GAAwB,IAAI,CAAC;IAEjC,KAAK,CAAC,YAAY;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,EAAuB;QAChD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prototype-dao-config.js","sourceRoot":"","sources":["../../src/dao/prototype-dao-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prototype-dao-db.js","sourceRoot":"","sources":["../../src/dao/prototype-dao-db.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prototype-dao-provider.js","sourceRoot":"","sources":["../../src/dao/prototype-dao-provider.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PrototypeDaoProvider } from './prototype-dao-provider.js';
|
|
2
|
+
import { PrototypeDaoConfig } from './prototype-dao-config.js';
|
|
3
|
+
export declare class PrototypeDao<T> {
|
|
4
|
+
private provider;
|
|
5
|
+
private cfg;
|
|
6
|
+
static defaultDaoConfig(): PrototypeDaoConfig;
|
|
7
|
+
constructor(provider: PrototypeDaoProvider<T>, cfg?: PrototypeDaoConfig);
|
|
8
|
+
fetchAll(): Promise<T[]>;
|
|
9
|
+
resetDatabase(): Promise<void>;
|
|
10
|
+
removeItems(guids: string[]): Promise<T[]>;
|
|
11
|
+
store(value: T): Promise<T>;
|
|
12
|
+
fetchById(guid: string): Promise<T>;
|
|
13
|
+
searchByField<R>(fieldDotPath: string, fieldValue: R): Promise<T[]>;
|
|
14
|
+
searchByFieldMap(input: Record<string, any>): Promise<T[]>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { StringRatchet } from '@bitblit/ratchet-common/lang/string-ratchet';
|
|
3
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/lang/require-ratchet';
|
|
4
|
+
import { MapRatchet } from '@bitblit/ratchet-common/lang/map-ratchet';
|
|
5
|
+
export class PrototypeDao {
|
|
6
|
+
provider;
|
|
7
|
+
cfg;
|
|
8
|
+
static defaultDaoConfig() {
|
|
9
|
+
return {
|
|
10
|
+
guidCreateFunction: StringRatchet.createType4Guid,
|
|
11
|
+
guidFieldName: 'guid',
|
|
12
|
+
createdEpochMSFieldName: 'createdEpochMS',
|
|
13
|
+
updatedEpochMSFieldName: 'updatedEpochMS',
|
|
14
|
+
createdUtcTimestampFieldName: null,
|
|
15
|
+
updatedUtcTimestampFieldName: null,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
constructor(provider, cfg = PrototypeDao.defaultDaoConfig()) {
|
|
19
|
+
this.provider = provider;
|
|
20
|
+
this.cfg = cfg;
|
|
21
|
+
RequireRatchet.notNullOrUndefined(provider, 'provider');
|
|
22
|
+
RequireRatchet.notNullOrUndefined(cfg, 'cfg');
|
|
23
|
+
RequireRatchet.notNullOrUndefined(cfg.guidCreateFunction, 'cfg.guidCreateFunction');
|
|
24
|
+
RequireRatchet.notNullOrUndefined(cfg.guidFieldName, 'cfg.guidFieldName');
|
|
25
|
+
}
|
|
26
|
+
async fetchAll() {
|
|
27
|
+
const db = await this.provider.loadDatabase();
|
|
28
|
+
return db.items || [];
|
|
29
|
+
}
|
|
30
|
+
async resetDatabase() {
|
|
31
|
+
await this.provider.storeDatabase({ items: [], lastModifiedEpochMS: Date.now() });
|
|
32
|
+
}
|
|
33
|
+
async removeItems(guids) {
|
|
34
|
+
let old = await this.fetchAll();
|
|
35
|
+
if (guids) {
|
|
36
|
+
old = old.filter((t) => !guids.includes(t[this.cfg.guidFieldName]));
|
|
37
|
+
await this.provider.storeDatabase({ items: old, lastModifiedEpochMS: Date.now() });
|
|
38
|
+
}
|
|
39
|
+
return old;
|
|
40
|
+
}
|
|
41
|
+
async store(value) {
|
|
42
|
+
let old = await this.fetchAll();
|
|
43
|
+
if (value) {
|
|
44
|
+
value[this.cfg.guidFieldName] = value[this.cfg.guidFieldName] || this.cfg.guidCreateFunction();
|
|
45
|
+
if (this.cfg.createdEpochMSFieldName) {
|
|
46
|
+
value[this.cfg.createdEpochMSFieldName] = value[this.cfg.createdEpochMSFieldName] || Date.now();
|
|
47
|
+
}
|
|
48
|
+
if (this.cfg.createdUtcTimestampFieldName) {
|
|
49
|
+
value[this.cfg.createdUtcTimestampFieldName] = value[this.cfg.createdUtcTimestampFieldName] || DateTime.utc().toISO();
|
|
50
|
+
}
|
|
51
|
+
if (this.cfg.updatedEpochMSFieldName) {
|
|
52
|
+
value[this.cfg.updatedEpochMSFieldName] = Date.now();
|
|
53
|
+
}
|
|
54
|
+
if (this.cfg.updatedUtcTimestampFieldName) {
|
|
55
|
+
value[this.cfg.updatedUtcTimestampFieldName] = DateTime.utc().toISO();
|
|
56
|
+
}
|
|
57
|
+
old = old.filter((t) => t[this.cfg.guidFieldName] !== value[this.cfg.guidFieldName]);
|
|
58
|
+
old.push(value);
|
|
59
|
+
await this.provider.storeDatabase({ items: old, lastModifiedEpochMS: Date.now() });
|
|
60
|
+
}
|
|
61
|
+
return value;
|
|
62
|
+
}
|
|
63
|
+
async fetchById(guid) {
|
|
64
|
+
const old = await this.fetchAll();
|
|
65
|
+
return old.find((t) => t[this.cfg.guidFieldName] === guid);
|
|
66
|
+
}
|
|
67
|
+
async searchByField(fieldDotPath, fieldValue) {
|
|
68
|
+
RequireRatchet.notNullOrUndefined(fieldDotPath, 'fieldDotPath');
|
|
69
|
+
RequireRatchet.notNullOrUndefined(fieldValue, 'fieldValue');
|
|
70
|
+
const map = {};
|
|
71
|
+
map[fieldDotPath] = fieldValue;
|
|
72
|
+
return this.searchByFieldMap(map);
|
|
73
|
+
}
|
|
74
|
+
async searchByFieldMap(input) {
|
|
75
|
+
RequireRatchet.notNullOrUndefined(input, 'input');
|
|
76
|
+
let old = await this.fetchAll();
|
|
77
|
+
old = old.filter((t) => {
|
|
78
|
+
let matchAll = true;
|
|
79
|
+
Object.keys(input).forEach((k) => {
|
|
80
|
+
const val = MapRatchet.findValueDotPath(t, k);
|
|
81
|
+
const fieldValue = input[k];
|
|
82
|
+
matchAll = matchAll && val === fieldValue;
|
|
83
|
+
});
|
|
84
|
+
return matchAll;
|
|
85
|
+
});
|
|
86
|
+
return old;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=prototype-dao.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prototype-dao.js","sourceRoot":"","sources":["../../src/dao/prototype-dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SimpleDaoItem } from './simple-dao-item.js';
|
|
2
|
+
import { S3CacheRatchetLike } from '../s3/s3-cache-ratchet-like.js';
|
|
3
|
+
export declare class S3SimpleDao<T extends SimpleDaoItem> {
|
|
4
|
+
private cache;
|
|
5
|
+
private prefix?;
|
|
6
|
+
constructor(cache: S3CacheRatchetLike, prefix?: string);
|
|
7
|
+
buildPathPrefix(path: string): string;
|
|
8
|
+
buildFullPath(id: string, path?: string): string;
|
|
9
|
+
exists(id: string, path?: string): Promise<boolean>;
|
|
10
|
+
fetch(id: string, path?: string): Promise<T>;
|
|
11
|
+
store(item: T, path?: string): Promise<T>;
|
|
12
|
+
listItems(path?: string): Promise<string[]>;
|
|
13
|
+
fetchItemsInPath(path?: string): Promise<T[]>;
|
|
14
|
+
delete(id: string, path?: string): Promise<boolean>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
2
|
+
import { StringRatchet } from '@bitblit/ratchet-common/lang/string-ratchet';
|
|
3
|
+
export class S3SimpleDao {
|
|
4
|
+
cache;
|
|
5
|
+
prefix;
|
|
6
|
+
constructor(cache, prefix) {
|
|
7
|
+
this.cache = cache;
|
|
8
|
+
this.prefix = prefix;
|
|
9
|
+
if (!cache) {
|
|
10
|
+
throw new Error('cache object may not be null');
|
|
11
|
+
}
|
|
12
|
+
if (!cache.getDefaultBucket()) {
|
|
13
|
+
throw new Error('Supplied cache must have default bucket set');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
buildPathPrefix(path) {
|
|
17
|
+
let rval = '';
|
|
18
|
+
if (this.prefix) {
|
|
19
|
+
rval += this.prefix;
|
|
20
|
+
}
|
|
21
|
+
if (path) {
|
|
22
|
+
rval += path;
|
|
23
|
+
}
|
|
24
|
+
return rval;
|
|
25
|
+
}
|
|
26
|
+
buildFullPath(id, path) {
|
|
27
|
+
let rval = this.buildPathPrefix(path);
|
|
28
|
+
if (rval.length > 0) {
|
|
29
|
+
rval += '/';
|
|
30
|
+
}
|
|
31
|
+
rval += id + '.json';
|
|
32
|
+
return rval;
|
|
33
|
+
}
|
|
34
|
+
async exists(id, path) {
|
|
35
|
+
const fullPath = this.buildFullPath(id, path);
|
|
36
|
+
Logger.debug('Check file existence : %s', fullPath);
|
|
37
|
+
return this.cache.fileExists(fullPath);
|
|
38
|
+
}
|
|
39
|
+
async fetch(id, path) {
|
|
40
|
+
const fullPath = this.buildFullPath(id, path);
|
|
41
|
+
Logger.debug('Fetching : %s', fullPath);
|
|
42
|
+
const rval = (await this.cache.fetchCacheFileAsObject(fullPath));
|
|
43
|
+
rval.id = id;
|
|
44
|
+
rval.path = path;
|
|
45
|
+
return rval;
|
|
46
|
+
}
|
|
47
|
+
async store(item, path) {
|
|
48
|
+
item.id = item.id || StringRatchet.createType4Guid();
|
|
49
|
+
item.lastModifiedEpochMS = new Date().getTime();
|
|
50
|
+
const fullPath = this.buildFullPath(item.id, path);
|
|
51
|
+
Logger.debug('Storing : %s', fullPath);
|
|
52
|
+
const stored = await this.cache.writeObjectToCacheFile(fullPath, item);
|
|
53
|
+
const read = await this.fetch(item.id, path);
|
|
54
|
+
return read;
|
|
55
|
+
}
|
|
56
|
+
async listItems(path) {
|
|
57
|
+
const fullPath = this.buildPathPrefix(path);
|
|
58
|
+
Logger.debug('Listing : %s', fullPath);
|
|
59
|
+
const rval = await this.cache.directChildrenOfPrefix(fullPath);
|
|
60
|
+
return rval;
|
|
61
|
+
}
|
|
62
|
+
async fetchItemsInPath(path) {
|
|
63
|
+
const fullPath = this.buildPathPrefix(path);
|
|
64
|
+
Logger.debug('Full fetch of : %s', fullPath);
|
|
65
|
+
const items = await this.listItems(path);
|
|
66
|
+
const promises = items.map((s) => this.fetch(s, path));
|
|
67
|
+
const rval = await Promise.all(promises);
|
|
68
|
+
return rval;
|
|
69
|
+
}
|
|
70
|
+
async delete(id, path) {
|
|
71
|
+
const fullPath = this.buildFullPath(id, path);
|
|
72
|
+
Logger.debug('Deleting : %s', fullPath);
|
|
73
|
+
const del = await this.cache.removeCacheFile(fullPath);
|
|
74
|
+
return del != null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=s3-simple-dao.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-simple-dao.js","sourceRoot":"","sources":["../../src/dao/s3-simple-dao.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAK5E,MAAM,OAAO,WAAW;IAEZ;IACA;IAFV,YACU,KAAyB,EACzB,MAAe;QADf,UAAK,GAAL,KAAK,CAAoB;QACzB,WAAM,GAAN,MAAM,CAAS;QAEvB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEM,eAAe,CAAC,IAAY;QACjC,IAAI,IAAI,GAAW,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;QACtB,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,IAAI,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,aAAa,CAAC,EAAU,EAAE,IAAa;QAC5C,IAAI,IAAI,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,IAAI,GAAG,CAAC;QACd,CAAC;QACD,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAa;QAC3C,MAAM,QAAQ,GAAW,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,IAAa;QAC1C,MAAM,QAAQ,GAAW,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QACxC,MAAM,IAAI,GAAM,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAM,CAAC;QAEzE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAO,EAAE,IAAa;QACvC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAEhD,MAAM,QAAQ,GAAW,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAoB,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxF,MAAM,IAAI,GAAM,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAa;QAClC,MAAM,QAAQ,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAa,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAa;QACzC,MAAM,QAAQ,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAa,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,MAAM,IAAI,GAAQ,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAa;QAC3C,MAAM,QAAQ,GAAW,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAExC,MAAM,GAAG,GAAuB,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-dao-item.js","sourceRoot":"","sources":["../../src/dao/simple-dao-item.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DynamoCountResult } from '../model/dynamo-count-result.js';
|
|
2
|
+
import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
|
|
3
|
+
import { DeleteCommandOutput, PutCommandOutput, QueryCommandInput, ScanCommandInput } from '@aws-sdk/lib-dynamodb';
|
|
4
|
+
export interface DynamoRatchetLike {
|
|
5
|
+
getDDB(): DynamoDBDocumentClient;
|
|
6
|
+
tableIsEmpty(tableName: string): Promise<boolean>;
|
|
7
|
+
throughputSafeScanOrQuery<T, R>(proc: (T: any) => Promise<R>, input: T, maxTries?: number, inCurrentTry?: number): Promise<R>;
|
|
8
|
+
fullyExecuteQueryCount(qry: QueryCommandInput, delayMS?: number): Promise<DynamoCountResult>;
|
|
9
|
+
fullyExecuteQuery<T>(qry: QueryCommandInput, delayMS?: number, softLimit?: number): Promise<T[]>;
|
|
10
|
+
fullyExecuteProcessOverQuery<T>(qry: QueryCommandInput, proc: (val: T) => Promise<void>, delayMS?: number, softLimit?: number): Promise<number>;
|
|
11
|
+
fullyExecuteScanCount(scan: ScanCommandInput, delayMS?: number): Promise<DynamoCountResult>;
|
|
12
|
+
fullyExecuteScan<T>(scan: ScanCommandInput, delayMS?: number, softLimit?: number): Promise<T[]>;
|
|
13
|
+
fullyExecuteProcessOverScan<T>(scan: ScanCommandInput, proc: (val: T) => Promise<void>, delayMS?: number, softLimit?: number): Promise<number>;
|
|
14
|
+
writeAllInBatches<T>(tableName: string, elements: T[], batchSize: number): Promise<number>;
|
|
15
|
+
fetchFullObjectsMatchingKeysOnlyIndexQuery<T>(qry: QueryCommandInput, keyNames: string[], batchSize?: number): Promise<T[]>;
|
|
16
|
+
fetchAllInBatches<T>(tableName: string, inKeys: any[], batchSize: number): Promise<T[]>;
|
|
17
|
+
deleteAllInBatches(tableName: string, keys: any[], batchSize: number): Promise<number>;
|
|
18
|
+
simplePut(tableName: string, value: any, autoRetryCount?: number): Promise<PutCommandOutput>;
|
|
19
|
+
simplePutOnlyIfFieldIsNullOrUndefined(tableName: string, value: any, fieldName: string): Promise<boolean>;
|
|
20
|
+
simplePutWithCollisionAvoidance<T>(tableName: string, value: T, keyNames: string[], adjustFunction: (val: T) => T, maxAdjusts?: number, autoRetryCount?: number): Promise<T>;
|
|
21
|
+
simpleGet<T>(tableName: string, keys: any, autoRetryCount?: number): Promise<T>;
|
|
22
|
+
simpleGetWithCounterDecrement<T>(tableName: string, keys: any, counterAttributeName: string, deleteOnZero: boolean, autoRetryCount?: number): Promise<T>;
|
|
23
|
+
simpleDelete(tableName: string, keys: any): Promise<DeleteCommandOutput>;
|
|
24
|
+
atomicCounter(tableName: string, keys: any, counterFieldName: string, increment?: number): Promise<number>;
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamo-ratchet-like.js","sourceRoot":"","sources":["../../src/dynamodb/dynamo-ratchet-like.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DeleteCommandOutput, DynamoDBDocumentClient, PutCommandOutput, QueryCommandInput, QueryCommandOutput, ScanCommandInput, ScanCommandOutput } from '@aws-sdk/lib-dynamodb';
|
|
2
|
+
import { DynamoCountResult } from '../model/dynamo-count-result.js';
|
|
3
|
+
import { DynamoRatchetLike } from './dynamo-ratchet-like.js';
|
|
4
|
+
export declare class DynamoRatchet implements DynamoRatchetLike {
|
|
5
|
+
private awsDDB;
|
|
6
|
+
constructor(awsDDB: DynamoDBDocumentClient);
|
|
7
|
+
get dynamoDBDocumentClient(): DynamoDBDocumentClient;
|
|
8
|
+
getDDB(): DynamoDBDocumentClient;
|
|
9
|
+
tableIsEmpty(tableName: string): Promise<boolean>;
|
|
10
|
+
scanPromise(input: ScanCommandInput): Promise<ScanCommandOutput>;
|
|
11
|
+
queryPromise(input: QueryCommandInput): Promise<QueryCommandOutput>;
|
|
12
|
+
throughputSafeScanOrQuery<T, R>(proc: (T: any) => Promise<R>, input: T, maxTries?: number, inCurrentTry?: number): Promise<R>;
|
|
13
|
+
fullyExecuteQueryCount(qry: QueryCommandInput, delayMS?: number): Promise<DynamoCountResult>;
|
|
14
|
+
fullyExecuteQuery<T>(qry: QueryCommandInput, delayMS?: number, softLimit?: number): Promise<T[]>;
|
|
15
|
+
fullyExecuteProcessOverQuery<T>(qry: QueryCommandInput, proc: (val: T) => Promise<void>, delayMS?: number, softLimit?: number): Promise<number>;
|
|
16
|
+
fullyExecuteScanCount(scan: ScanCommandInput, delayMS?: number): Promise<DynamoCountResult>;
|
|
17
|
+
fullyExecuteScan<T>(scan: ScanCommandInput, delayMS?: number, softLimit?: number): Promise<T[]>;
|
|
18
|
+
fullyExecuteProcessOverScan<T>(scan: ScanCommandInput, proc: (val: T) => Promise<void>, delayMS?: number, softLimit?: number): Promise<number>;
|
|
19
|
+
writeAllInBatches<T>(tableName: string, elements: T[], batchSize: number): Promise<number>;
|
|
20
|
+
fetchFullObjectsMatchingKeysOnlyIndexQuery<T>(qry: QueryCommandInput, keyNames: string[], batchSize?: number): Promise<T[]>;
|
|
21
|
+
fetchAllInBatches<T>(tableName: string, inKeys: Record<string, any>[], batchSize: number): Promise<T[]>;
|
|
22
|
+
deleteAllInBatches(tableName: string, keys: Record<string, any>[], batchSize: number): Promise<number>;
|
|
23
|
+
simplePut(tableName: string, value: Record<string, any>, autoRetryCount?: number): Promise<PutCommandOutput>;
|
|
24
|
+
simplePutOnlyIfFieldIsNullOrUndefined(tableName: string, value: Record<string, any>, fieldName: string): Promise<boolean>;
|
|
25
|
+
simplePutWithCollisionAvoidance<T>(tableName: string, value: T, keyNames: string[], adjustFunction: (val: T) => T, maxAdjusts?: number, autoRetryCount?: number): Promise<T>;
|
|
26
|
+
simpleGet<T>(tableName: string, keys: Record<string, any>, autoRetryCount?: number): Promise<T>;
|
|
27
|
+
static objectIsErrorWithProvisionedThroughputExceededExceptionCode(err: Record<string, any>): boolean;
|
|
28
|
+
simpleGetWithCounterDecrement<T>(tableName: string, keys: Record<string, any>, counterAttributeName: string, deleteOnZero: boolean, autoRetryCount?: number): Promise<T>;
|
|
29
|
+
simpleDelete(tableName: string, keys: Record<string, any>): Promise<DeleteCommandOutput>;
|
|
30
|
+
atomicCounter(tableName: string, keys: Record<string, any>, counterFieldName: string, increment?: number): Promise<number>;
|
|
31
|
+
static cleanObject(ob: Record<string, any>): void;
|
|
32
|
+
static stripToKeysOnly(input: Record<string, any>, keysNames: string[]): Record<string, any>;
|
|
33
|
+
static stripAllToKeysOnly(input: Record<string, any>[], keys: string[]): Record<string, any>[];
|
|
34
|
+
}
|