@trunkrs/common 1.12.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/models/enum/MimeType.d.ts +2 -1
  2. package/models/enum/MimeType.js +1 -0
  3. package/models/enum/MimeType.js.map +1 -1
  4. package/package.json +33 -6
  5. package/providers/email.d.ts +1 -0
  6. package/providers/email.js +6 -5
  7. package/providers/email.js.map +1 -1
  8. package/services/aws/LambdaClient/LambdaInvocationFailedError.d.ts +1 -1
  9. package/services/aws/LambdaClient/LambdaInvocationFailedError.js +3 -3
  10. package/services/aws/LambdaClient/LambdaInvocationFailedError.js.map +1 -1
  11. package/services/aws/LambdaClient/index.d.ts +3 -2
  12. package/services/aws/LambdaClient/index.js +6 -4
  13. package/services/aws/LambdaClient/index.js.map +1 -1
  14. package/services/aws/SecretsClient.js +7 -13
  15. package/services/aws/SecretsClient.js.map +1 -1
  16. package/services/aws/dynamodb/BaseDynamoDataStorage.d.ts +6 -4
  17. package/services/aws/dynamodb/BaseDynamoDataStorage.js +55 -42
  18. package/services/aws/dynamodb/BaseDynamoDataStorage.js.map +1 -1
  19. package/services/aws/dynamodb/DynamoDataStorage.d.ts +8 -6
  20. package/services/aws/dynamodb/DynamoDataStorage.js +50 -40
  21. package/services/aws/dynamodb/DynamoDataStorage.js.map +1 -1
  22. package/services/aws/dynamodb/DynamoIndexDataStorage.d.ts +5 -2
  23. package/services/aws/dynamodb/DynamoIndexDataStorage.js +27 -17
  24. package/services/aws/dynamodb/DynamoIndexDataStorage.js.map +1 -1
  25. package/services/aws/dynamodb/interfaces/QueryableDataStorage.d.ts +5 -1
  26. package/services/aws/dynamodb/types/DeleteRequest.d.ts +4 -0
  27. package/services/aws/dynamodb/types/DeleteRequest.js +3 -0
  28. package/services/aws/dynamodb/types/DeleteRequest.js.map +1 -0
  29. package/services/aws/dynamodb/types/PutRequest.d.ts +4 -0
  30. package/services/aws/dynamodb/types/PutRequest.js +3 -0
  31. package/services/aws/dynamodb/types/PutRequest.js.map +1 -0
  32. package/services/aws/dynamodb/types/WriteRequest.d.ts +7 -0
  33. package/services/aws/dynamodb/types/WriteRequest.js +3 -0
  34. package/services/aws/dynamodb/types/WriteRequest.js.map +1 -0
  35. package/services/aws/dynamodb/utils/query/QueryBuilder.d.ts +3 -3
  36. package/services/aws/dynamodb/utils/query/QueryBuilder.js.map +1 -1
  37. package/services/aws/dynamodb/utils/query/QueryParameters.d.ts +0 -3
  38. package/services/email/SESTemplateClient.d.ts +2 -2
  39. package/services/email/SESTemplateClient.js +5 -3
  40. package/services/email/SESTemplateClient.js.map +1 -1
  41. package/services/email/__tests__/SESTemplateClient.spec.js +15 -13
  42. package/services/email/__tests__/SESTemplateClient.spec.js.map +1 -1
  43. package/services/queue/EventBridgeClient.js +8 -14
  44. package/services/queue/EventBridgeClient.js.map +1 -1
  45. package/services/queue/KinesisClient.d.ts +2 -2
  46. package/services/queue/KinesisClient.js +9 -10
  47. package/services/queue/KinesisClient.js.map +1 -1
  48. package/services/queue/SNSQueueClient.js +8 -20
  49. package/services/queue/SNSQueueClient.js.map +1 -1
  50. package/services/queue/SQSQueueClient.js +7 -11
  51. package/services/queue/SQSQueueClient.js.map +1 -1
  52. package/services/state-machine/StepFunctionsClient.js +5 -10
  53. package/services/state-machine/StepFunctionsClient.js.map +1 -1
  54. package/utils/caching/S3Cache.js +26 -31
  55. package/utils/caching/S3Cache.js.map +1 -1
  56. package/utils/caching/SecretCache.js +16 -22
  57. package/utils/caching/SecretCache.js.map +1 -1
  58. package/utils/handlers/QueueHandlerBuilder/extractors/DynamoStreamExtractor.d.ts +2 -1
  59. package/utils/handlers/QueueHandlerBuilder/extractors/DynamoStreamExtractor.js +2 -2
  60. package/utils/handlers/QueueHandlerBuilder/extractors/DynamoStreamExtractor.js.map +1 -1
  61. package/utils/tracing.d.ts +1 -1
  62. package/utils/tracing.js +11 -15
  63. package/utils/tracing.js.map +1 -1
  64. package/utils/getAWS.d.ts +0 -3
  65. package/utils/getAWS.js +0 -15
  66. package/utils/getAWS.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  declare enum MimeType {
2
2
  JSON = "application/json",
3
3
  PDF = "application/pdf",
4
- FormUrlEncoded = "application/x-www-form-urlencoded"
4
+ FormUrlEncoded = "application/x-www-form-urlencoded",
5
+ CSV = "text/csv"
5
6
  }
6
7
  export default MimeType;
@@ -5,6 +5,7 @@ var MimeType;
5
5
  MimeType["JSON"] = "application/json";
6
6
  MimeType["PDF"] = "application/pdf";
7
7
  MimeType["FormUrlEncoded"] = "application/x-www-form-urlencoded";
8
+ MimeType["CSV"] = "text/csv";
8
9
  })(MimeType || (MimeType = {}));
9
10
  exports.default = MimeType;
10
11
  //# sourceMappingURL=MimeType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MimeType.js","sourceRoot":"","sources":["../../../models/enum/MimeType.ts"],"names":[],"mappings":";;AAAA,IAAK,QAIJ;AAJD,WAAK,QAAQ;IACX,qCAAyB,CAAA;IACzB,mCAAuB,CAAA;IACvB,gEAAoD,CAAA;AACtD,CAAC,EAJI,QAAQ,KAAR,QAAQ,QAIZ;AAED,kBAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"MimeType.js","sourceRoot":"","sources":["../../../models/enum/MimeType.ts"],"names":[],"mappings":";;AAAA,IAAK,QAKJ;AALD,WAAK,QAAQ;IACX,qCAAyB,CAAA;IACzB,mCAAuB,CAAA;IACvB,gEAAoD,CAAA;IACpD,4BAAgB,CAAA;AAClB,CAAC,EALI,QAAQ,KAAR,QAAQ,QAKZ;AAED,kBAAe,QAAQ,CAAA"}
package/package.json CHANGED
@@ -1,31 +1,45 @@
1
1
  {
2
2
  "name": "@trunkrs/common",
3
- "version": "1.12.4",
3
+ "version": "3.0.0",
4
4
  "description": "Common standards library for development in Trunkrs",
5
5
  "types": "./index.d.ts",
6
6
  "repository": "https://github.com/Trunkrs/common.git",
7
7
  "author": "Leonard Breitkopf <leonard@trunkrs.nl>",
8
8
  "license": "MIT",
9
9
  "dependencies": {
10
- "aws-xray-sdk": "^3.3.4",
11
10
  "axios": "^0.22.0",
12
11
  "qs": "^6.10.1",
13
12
  "deepmerge": "^4.2.2"
14
13
  },
15
14
  "devDependencies": {
16
- "@types/aws-lambda": "^8.10.92",
15
+ "@aws-sdk/client-dynamodb": "^3.421.0",
16
+ "@aws-sdk/client-eventbridge": "^3.421.0",
17
+ "@aws-sdk/client-kinesis": "^3.421.0",
18
+ "@aws-sdk/client-lambda": "^3.421.0",
19
+ "@aws-sdk/client-s3": "^3.421.0",
20
+ "@aws-sdk/client-secrets-manager": "^3.423.0",
21
+ "@aws-sdk/client-ses": "^3.421.0",
22
+ "@aws-sdk/client-sfn": "^3.423.0",
23
+ "@aws-sdk/client-sns": "^3.421.0",
24
+ "@aws-sdk/client-sqs": "^3.421.0",
25
+ "@aws-sdk/client-ssm": "^3.421.0",
26
+ "@aws-sdk/lib-dynamodb": "^3.421.0",
27
+ "@aws-sdk/util-dynamodb": "^3.421.0",
28
+ "@types/aws-lambda": "^8.10.122",
17
29
  "@types/faker": "^5.5.8",
18
30
  "@types/jest": "^27.0.1",
19
31
  "@types/joi": "^17.2.3",
20
32
  "@types/jsonwebtoken": "^8.5.8",
21
33
  "@types/node": "^14.11.2",
22
- "@types/nodemailer": "^6.4.4",
34
+ "@types/nodemailer": "^6.4.11",
23
35
  "@types/qs": "^6.9.7",
24
36
  "@types/typescript": "^2.0.0",
25
37
  "@types/uuid": "^8.3.1",
26
38
  "@typescript-eslint/eslint-plugin": "^4.0.1",
27
39
  "@typescript-eslint/parser": "^4.0.1",
28
40
  "aws-lambda": "^1.0.6",
41
+ "aws-sdk-client-mock": "^3.0.0",
42
+ "aws-xray-sdk-core": "^3.5.2",
29
43
  "concurrently": "^6.2.1",
30
44
  "eslint": "^7.10.0",
31
45
  "eslint-config-airbnb-base-typescript-prettier": "^3.1.1",
@@ -51,7 +65,6 @@
51
65
  "@typescript-eslint/eslint-plugin": ">=4 || <5",
52
66
  "@typescript-eslint/parser": ">=4 || <5",
53
67
  "redis": ">=4 || <5",
54
- "aws-sdk": ">2.1000.0 || <3",
55
68
  "date-fns": ">=2 || <3",
56
69
  "eslint": ">=7.2.0",
57
70
  "eslint-config-airbnb-base-typescript-prettier": ">=3.1 || <4",
@@ -60,6 +73,20 @@
60
73
  "jsonwebtoken": "8",
61
74
  "uuid": "8",
62
75
  "prettier": ">=2",
63
- "ts-jest": ">=21"
76
+ "ts-jest": ">=21",
77
+ "@aws-sdk/client-dynamodb": "^3.421.0 || < 4",
78
+ "@aws-sdk/client-eventbridge": "^3.421.0 || < 4",
79
+ "@aws-sdk/client-kinesis": "^3.421.0 || < 4",
80
+ "@aws-sdk/client-lambda": "^3.421.0 || < 4",
81
+ "@aws-sdk/client-s3": "^3.421.0 || < 4",
82
+ "@aws-sdk/client-secrets-manager": "^3.423.0 || < 4",
83
+ "@aws-sdk/client-ses": "^3.421.0 || <4",
84
+ "@aws-sdk/client-sfn": "^3.423.0 || <4",
85
+ "@aws-sdk/client-sns": "^3.421.0 || <4",
86
+ "@aws-sdk/client-sqs": "^3.421.0 || <4",
87
+ "@aws-sdk/client-ssm": "^3.421.0 || <4",
88
+ "@aws-sdk/lib-dynamodb": "^3.421.0 || <4",
89
+ "@aws-sdk/util-dynamodb": "^3.421.0 || <4",
90
+ "aws-xray-sdk-core": "^3.5.2 || <4"
64
91
  }
65
92
  }
@@ -13,5 +13,6 @@ export interface ConfigureEmailClientsRequest {
13
13
  }
14
14
  export declare const NodemailerClient: symbol;
15
15
  export declare const SesNodemailerClient: symbol;
16
+ export declare const SESClientSymbol: symbol;
16
17
  export declare const TemplateFileCache: symbol;
17
18
  export declare const configureEmailClients: (request: ConfigureEmailClientsRequest) => ServiceProvider;
@@ -22,9 +22,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.configureEmailClients = exports.TemplateFileCache = exports.SesNodemailerClient = exports.NodemailerClient = void 0;
25
+ exports.configureEmailClients = exports.TemplateFileCache = exports.SESClientSymbol = exports.SesNodemailerClient = exports.NodemailerClient = void 0;
26
26
  const nodemailer_1 = require("nodemailer");
27
- const aws_sdk_1 = require("aws-sdk");
27
+ const client_ses_1 = require("@aws-sdk/client-ses");
28
28
  const service_provider_1 = __importStar(require("../utils/service-provider"));
29
29
  const aws_1 = __importDefault(require("./aws"));
30
30
  const email_1 = require("../services/email");
@@ -32,17 +32,18 @@ const caching_1 = require("../utils/caching");
32
32
  const utils_1 = __importStar(require("./utils"));
33
33
  exports.NodemailerClient = service_provider_1.default.createSymbol('NodemailerClient');
34
34
  exports.SesNodemailerClient = service_provider_1.default.createSymbol('SesNodemailerClient');
35
+ exports.SESClientSymbol = service_provider_1.default.createSymbol('SESClient');
35
36
  exports.TemplateFileCache = service_provider_1.default.createSymbol('TemplateCache');
36
37
  const configureEmailClients = (request) => {
37
38
  const serviceProvider = new service_provider_1.default();
38
39
  serviceProvider.register(exports.NodemailerClient, service_provider_1.Lifecycle.Singleton, () => (0, nodemailer_1.createTransport)({
39
- SES: aws_1.default.provide(aws_sdk_1.SES),
40
+ SES: aws_1.default.provide(exports.SESClientSymbol),
40
41
  }));
41
42
  serviceProvider.register(exports.TemplateFileCache, service_provider_1.Lifecycle.Singleton, () => new caching_1.FileCache(utils_1.default.provide(utils_1.Serializer), 7200000, null, request.templateCacheMountPath));
42
- aws_1.default.register(aws_sdk_1.SES, service_provider_1.Lifecycle.Singleton, () => new aws_sdk_1.SES({
43
+ aws_1.default.register(exports.SESClientSymbol, service_provider_1.Lifecycle.Singleton, () => new client_ses_1.SESClient({
43
44
  region: request.sesRegion,
44
45
  }));
45
- serviceProvider.register(email_1.SESTemplateClient, service_provider_1.Lifecycle.Singleton, () => new email_1.SESTemplateClient(aws_1.default.provide(aws_sdk_1.SES), serviceProvider.provide(exports.TemplateFileCache)));
46
+ serviceProvider.register(email_1.SESTemplateClient, service_provider_1.Lifecycle.Singleton, () => new email_1.SESTemplateClient(aws_1.default.provide(exports.SESClientSymbol), serviceProvider.provide(exports.TemplateFileCache)));
46
47
  serviceProvider.register(exports.SesNodemailerClient, service_provider_1.Lifecycle.Singleton, () => new email_1.NodemailerEmailClient({
47
48
  mailer: serviceProvider.provide(exports.NodemailerClient),
48
49
  templateClient: serviceProvider.provide(email_1.SESTemplateClient),
@@ -1 +1 @@
1
- {"version":3,"file":"email.js","sourceRoot":"","sources":["../../providers/email.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,qCAA6B;AAC7B,8EAAsE;AAEtE,gDAA+B;AAC/B,6CAI0B;AAC1B,8CAAmD;AACnD,iDAAmD;AActC,QAAA,gBAAgB,GAC3B,0BAAe,CAAC,YAAY,CAAO,kBAAkB,CAAC,CAAA;AAE3C,QAAA,mBAAmB,GAAG,0BAAe,CAAC,YAAY,CAC7D,qBAAqB,CACtB,CAAA;AAEY,QAAA,iBAAiB,GAC5B,0BAAe,CAAC,YAAY,CAAQ,eAAe,CAAC,CAAA;AAE/C,MAAM,qBAAqB,GAAG,CACnC,OAAqC,EACpB,EAAE;IACnB,MAAM,eAAe,GAAG,IAAI,0BAAe,EAAE,CAAA;IAE7C,eAAe,CAAC,QAAQ,CAAC,wBAAgB,EAAE,4BAAS,CAAC,SAAS,EAAE,GAAG,EAAE,CACnE,IAAA,4BAAe,EAAC;QACd,GAAG,EAAE,aAAW,CAAC,OAAO,CAAC,aAAG,CAAC;KAC9B,CAAC,CACH,CAAA;IAED,eAAe,CAAC,QAAQ,CACtB,yBAAiB,EACjB,4BAAS,CAAC,SAAS,EACnB,GAAG,EAAE,CACH,IAAI,mBAAS,CACX,eAAa,CAAC,OAAO,CAAC,kBAAU,CAAC,EACjC,OAAO,EACP,IAAI,EACJ,OAAO,CAAC,sBAAsB,CAC/B,CACJ,CAAA;IAED,aAAW,CAAC,QAAQ,CAClB,aAAG,EACH,4BAAS,CAAC,SAAS,EACnB,GAAG,EAAE,CACH,IAAI,aAAG,CAAC;QACN,MAAM,EAAE,OAAO,CAAC,SAAS;KAC1B,CAAC,CACL,CAAA;IAED,eAAe,CAAC,QAAQ,CACtB,yBAAiB,EACjB,4BAAS,CAAC,SAAS,EACnB,GAAG,EAAE,CACH,IAAI,yBAAiB,CACnB,aAAW,CAAC,OAAO,CAAC,aAAG,CAAC,EACxB,eAAe,CAAC,OAAO,CAAC,yBAAiB,CAAC,CAC3C,CACJ,CAAA;IAED,eAAe,CAAC,QAAQ,CACtB,2BAAmB,EACnB,4BAAS,CAAC,SAAS,EACnB,GAAG,EAAE,CACH,IAAI,6BAAqB,CAAC;QACxB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,wBAAgB,CAAC;QACjD,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC,yBAAiB,CAAC;QAC1D,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACxC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;QAC9C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;KAC3D,CAAC,CACL,CAAA;IAED,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AA3DY,QAAA,qBAAqB,yBA2DjC"}
1
+ {"version":3,"file":"email.js","sourceRoot":"","sources":["../../providers/email.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,oDAA+C;AAE/C,8EAAsE;AAEtE,gDAA+B;AAC/B,6CAI0B;AAC1B,8CAAmD;AACnD,iDAAmD;AActC,QAAA,gBAAgB,GAC3B,0BAAe,CAAC,YAAY,CAAO,kBAAkB,CAAC,CAAA;AAE3C,QAAA,mBAAmB,GAAG,0BAAe,CAAC,YAAY,CAC7D,qBAAqB,CACtB,CAAA;AAEY,QAAA,eAAe,GAC1B,0BAAe,CAAC,YAAY,CAAY,WAAW,CAAC,CAAA;AACzC,QAAA,iBAAiB,GAC5B,0BAAe,CAAC,YAAY,CAAQ,eAAe,CAAC,CAAA;AAE/C,MAAM,qBAAqB,GAAG,CACnC,OAAqC,EACpB,EAAE;IACnB,MAAM,eAAe,GAAG,IAAI,0BAAe,EAAE,CAAA;IAE7C,eAAe,CAAC,QAAQ,CAAC,wBAAgB,EAAE,4BAAS,CAAC,SAAS,EAAE,GAAG,EAAE,CACnE,IAAA,4BAAe,EAAC;QACd,GAAG,EAAE,aAAW,CAAC,OAAO,CAAC,uBAAe,CAAC;KAC1C,CAAC,CACH,CAAA;IAED,eAAe,CAAC,QAAQ,CACtB,yBAAiB,EACjB,4BAAS,CAAC,SAAS,EACnB,GAAG,EAAE,CACH,IAAI,mBAAS,CACX,eAAa,CAAC,OAAO,CAAC,kBAAU,CAAC,EACjC,OAAO,EACP,IAAI,EACJ,OAAO,CAAC,sBAAsB,CAC/B,CACJ,CAAA;IAED,aAAW,CAAC,QAAQ,CAClB,uBAAe,EACf,4BAAS,CAAC,SAAS,EACnB,GAAG,EAAE,CACH,IAAI,sBAAS,CAAC;QACZ,MAAM,EAAE,OAAO,CAAC,SAAS;KAC1B,CAAC,CACL,CAAA;IAED,eAAe,CAAC,QAAQ,CACtB,yBAAiB,EACjB,4BAAS,CAAC,SAAS,EACnB,GAAG,EAAE,CACH,IAAI,yBAAiB,CACnB,aAAW,CAAC,OAAO,CAAC,uBAAe,CAAC,EACpC,eAAe,CAAC,OAAO,CAAC,yBAAiB,CAAC,CAC3C,CACJ,CAAA;IAED,eAAe,CAAC,QAAQ,CACtB,2BAAmB,EACnB,4BAAS,CAAC,SAAS,EACnB,GAAG,EAAE,CACH,IAAI,6BAAqB,CAAC;QACxB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,wBAAgB,CAAC;QACjD,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC,yBAAiB,CAAC;QAC1D,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACxC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;QAC9C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;KAC3D,CAAC,CACL,CAAA;IAED,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AA3DY,QAAA,qBAAqB,yBA2DjC"}
@@ -1,5 +1,5 @@
1
1
  import ErrorBase from '../../../models/errors/ErrorBase';
2
2
  declare class LambdaInvocationFailedError extends ErrorBase {
3
- constructor(error?: any);
3
+ constructor(logs: string, error?: any);
4
4
  }
5
5
  export default LambdaInvocationFailedError;
@@ -5,10 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ErrorBase_1 = __importDefault(require("../../../models/errors/ErrorBase"));
7
7
  class LambdaInvocationFailedError extends ErrorBase_1.default {
8
- constructor(error) {
8
+ constructor(logs, error) {
9
9
  super();
10
- this.message =
11
- `Lambda Invocation Failed with error: ${JSON.stringify(error, null, 2)}`;
10
+ this.message = `Lambda Invocation Failed with error: ${JSON.stringify(error, null, 2)}. Last 4KB of executed lambda logs: ${logs}
11
+ `;
12
12
  Error.captureStackTrace(this);
13
13
  }
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LambdaInvocationFailedError.js","sourceRoot":"","sources":["../../../../services/aws/LambdaClient/LambdaInvocationFailedError.ts"],"names":[],"mappings":";;;;;AAAA,iFAAwD;AAExD,MAAM,2BAA4B,SAAQ,mBAAS;IACjD,YAAmB,KAAW;QAC5B,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO;YACV,wCAAwC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAA;QAC1E,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,kBAAe,2BAA2B,CAAA"}
1
+ {"version":3,"file":"LambdaInvocationFailedError.js","sourceRoot":"","sources":["../../../../services/aws/LambdaClient/LambdaInvocationFailedError.ts"],"names":[],"mappings":";;;;;AAAA,iFAAwD;AAExD,MAAM,2BAA4B,SAAQ,mBAAS;IACjD,YAAmB,IAAY,EAAE,KAAW;QAC1C,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,wCAAwC,IAAI,CAAC,SAAS,CACnE,KAAK,EACL,IAAI,EACJ,CAAC,CACF,uCAAuC,IAAI;KAC3C,CAAA;QAED,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,kBAAe,2BAA2B,CAAA"}
@@ -1,9 +1,10 @@
1
+ import { LambdaClient as AWSLambdaClient } from '@aws-sdk/client-lambda';
1
2
  import { Serializer } from '../../../utils/serialization';
2
3
  declare class LambdaClient<TResponse = unknown, TInvokeArgs = unknown> {
3
4
  protected readonly functionArn: string;
4
5
  protected readonly serializer: Serializer;
5
- protected readonly lambdaInstance: AWS.Lambda;
6
- constructor(functionArn: string, serializer: Serializer, lambdaInstance: AWS.Lambda);
6
+ protected readonly lambdaInstance: AWSLambdaClient;
7
+ constructor(functionArn: string, serializer: Serializer, lambdaInstance: AWSLambdaClient);
7
8
  invokeLambda(args?: TInvokeArgs): Promise<TResponse | void>;
8
9
  }
9
10
  export default LambdaClient;
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const client_lambda_1 = require("@aws-sdk/client-lambda");
6
7
  const LambdaInvocationFailedError_1 = __importDefault(require("./LambdaInvocationFailedError"));
7
8
  class LambdaClient {
8
9
  constructor(functionArn, serializer, lambdaInstance) {
@@ -11,15 +12,16 @@ class LambdaClient {
11
12
  this.lambdaInstance = lambdaInstance;
12
13
  }
13
14
  async invokeLambda(args) {
14
- const serializedInput = !!args
15
+ const serializedInput = args
15
16
  ? this.serializer.serialize(args, 'string')
16
17
  : undefined;
17
- const result = await this.lambdaInstance.invoke({
18
+ const command = new client_lambda_1.InvokeCommand({
18
19
  Payload: serializedInput,
19
20
  FunctionName: this.functionArn,
20
- }).promise();
21
+ });
22
+ const result = await this.lambdaInstance.send(command);
21
23
  if (result.FunctionError) {
22
- throw new LambdaInvocationFailedError_1.default(result.FunctionError);
24
+ throw new LambdaInvocationFailedError_1.default(result.LogResult, result.FunctionError);
23
25
  }
24
26
  if (!result.Payload) {
25
27
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../services/aws/LambdaClient/index.ts"],"names":[],"mappings":";;;;;AACA,gGAAuE;AAEvE,MAAM,YAAY;IAChB,YACqB,WAAmB,EACnB,UAAsB,EACtB,cAA0B;QAF1B,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAY;QACtB,mBAAc,GAAd,cAAc,CAAY;IAC5C,CAAC;IAEG,KAAK,CAAC,YAAY,CAAC,IAAkB;QAC1C,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI;YAC5B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAA;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAC9C,OAAO,EAAE,eAAe;YACxB,YAAY,EAAE,IAAI,CAAC,WAAW;SAC/B,CAAC,CAAC,OAAO,EAAE,CAAA;QAGZ,IAAI,MAAM,CAAC,aAAa,EAAE;YACxB,MAAM,IAAI,qCAA2B,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;SAC5D;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,OAAM;SACP;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAiB,CAAC,CACtC,CAAA;QAED,OAAO,kBAAkB,CAAA;IAC3B,CAAC;CACF;AAED,kBAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../services/aws/LambdaClient/index.ts"],"names":[],"mappings":";;;;;AAAA,0DAG+B;AAG/B,gGAAuE;AAEvE,MAAM,YAAY;IAChB,YACqB,WAAmB,EACnB,UAAsB,EACtB,cAA+B;QAF/B,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAY;QACtB,mBAAc,GAAd,cAAc,CAAiB;IACjD,CAAC;IAEG,KAAK,CAAC,YAAY,CAAC,IAAkB;QAC1C,MAAM,eAAe,GAAG,IAAI;YAC1B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAA;QAEb,MAAM,OAAO,GAAG,IAAI,6BAAa,CAAC;YAChC,OAAO,EAAE,eAAe;YACxB,YAAY,EAAE,IAAI,CAAC,WAAW;SAC/B,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEtD,IAAI,MAAM,CAAC,aAAa,EAAE;YACxB,MAAM,IAAI,qCAA2B,CACnC,MAAM,CAAC,SAAmB,EAC1B,MAAM,CAAC,aAAa,CACrB,CAAA;SACF;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,OAAM;SACP;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAC5B,CAAA;QAED,OAAO,kBAAkB,CAAA;IAC3B,CAAC;CACF;AAED,kBAAe,YAAY,CAAA"}
@@ -1,20 +1,15 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const getAWS_1 = __importDefault(require("../../utils/getAWS"));
7
- const { SecretsManager } = (0, getAWS_1.default)();
3
+ const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
8
4
  class SecretsClient {
9
5
  constructor(cache) {
10
6
  this.cache = cache;
11
- this.secretsManager = new SecretsManager();
7
+ this.secretsManager = new client_secrets_manager_1.SecretsManagerClient();
12
8
  }
13
9
  async getSecretValue(secretName) {
14
10
  const getSecret = async () => {
15
- const secret = await this.secretsManager
16
- .getSecretValue({ SecretId: secretName })
17
- .promise();
11
+ const command = new client_secrets_manager_1.GetSecretValueCommand({ SecretId: secretName });
12
+ const secret = await this.secretsManager.send(command);
18
13
  return secret.SecretString;
19
14
  };
20
15
  if (this.cache) {
@@ -24,12 +19,11 @@ class SecretsClient {
24
19
  return getSecret();
25
20
  }
26
21
  async updateSecretValue(secretName, secretValue) {
27
- await this.secretsManager
28
- .putSecretValue({
22
+ const command = new client_secrets_manager_1.PutSecretValueCommand({
29
23
  SecretId: secretName,
30
24
  SecretString: secretValue,
31
- })
32
- .promise();
25
+ });
26
+ await this.secretsManager.send(command);
33
27
  if (this.cache) {
34
28
  const isCacheNotEmpty = await this.cache.hasKey(secretName);
35
29
  if (isCacheNotEmpty) {
@@ -1 +1 @@
1
- {"version":3,"file":"SecretsClient.js","sourceRoot":"","sources":["../../../services/aws/SecretsClient.ts"],"names":[],"mappings":";;;;;AACA,gEAAuC;AAEvC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,gBAAM,GAAE,CAAA;AAEnC,MAAM,aAAa;IAGjB,YAAoC,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAFhC,mBAAc,GAAG,IAAI,cAAc,EAAE,CAAA;IAEF,CAAC;IAE9C,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC5C,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc;iBACrC,cAAc,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;iBACxC,OAAO,EAAE,CAAA;YAEZ,OAAO,MAAM,CAAC,YAAY,CAAA;QAC5B,CAAC,CAAA;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC3C,UAAU,EACV,SAAS,CACV,CAAA;YAED,OAAO,WAAW,CAAA;SACnB;QAED,OAAO,SAAS,EAAE,CAAA;IACpB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,UAAkB,EAClB,WAAmB;QAEnB,MAAM,IAAI,CAAC,cAAc;aACtB,cAAc,CAAC;YACd,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,WAAW;SAC1B,CAAC;aACD,OAAO,EAAE,CAAA;QAEZ,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC3D,IAAI,eAAe,EAAE;gBACnB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;aACpC;YAED,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;SAC9C;IACH,CAAC;CACF;AAED,kBAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"SecretsClient.js","sourceRoot":"","sources":["../../../services/aws/SecretsClient.ts"],"names":[],"mappings":";;AAAA,4EAIwC;AAIxC,MAAM,aAAa;IAGjB,YAAoC,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAFhC,mBAAc,GAAG,IAAI,6CAAoB,EAAE,CAAA;IAER,CAAC;IAE9C,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC5C,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAI,8CAAqB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAA;YAEnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAEtD,OAAO,MAAM,CAAC,YAAY,CAAA;QAC5B,CAAC,CAAA;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC3C,UAAU,EACV,SAAS,CACV,CAAA;YAED,OAAO,WAAW,CAAA;SACnB;QAED,OAAO,SAAS,EAAE,CAAA;IACpB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,UAAkB,EAClB,WAAmB;QAEnB,MAAM,OAAO,GAAG,IAAI,8CAAqB,CAAC;YACxC,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEvC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC3D,IAAI,eAAe,EAAE;gBACnB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;aACpC;YAED,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;SAC9C;IACH,CAAC;CACF;AAED,kBAAe,aAAa,CAAA"}
@@ -1,12 +1,14 @@
1
- import AWS from 'aws-sdk';
1
+ import { DynamoDBDocumentClient, QueryCommandInput, ScanCommandInput } from '@aws-sdk/lib-dynamodb';
2
2
  import PaginatedFindResult from './interfaces/PaginatedFindResult';
3
3
  declare abstract class BaseDynamoDataStorage<TEntity> {
4
4
  protected readonly tableName: string;
5
5
  protected abstract readonly keys: Array<keyof TEntity>;
6
- protected readonly documentClient: AWS.DynamoDB.DocumentClient;
6
+ protected readonly documentClient: DynamoDBDocumentClient;
7
7
  protected constructor(tableName: string);
8
- protected executeOperation<TResultEntity = TEntity>(operation: 'Scan' | 'Query', query: AWS.DynamoDB.DocumentClient.ScanInput): Promise<TResultEntity[]>;
9
- protected executePaginatedOperation<TResultEntity = TEntity>(operation: 'Scan' | 'Query', query: AWS.DynamoDB.DocumentClient.ScanInput, lastEvaluatedKey?: string): Promise<PaginatedFindResult<TResultEntity>>;
8
+ protected executeQuery<TResultEntity = TEntity>(query: QueryCommandInput): Promise<TResultEntity[]>;
9
+ protected executeScan<TResultEntity = TEntity>(query: ScanCommandInput): Promise<TResultEntity[]>;
10
+ protected executePaginatedQuery<TResultEntity = TEntity>(query: QueryCommandInput, lastEvaluatedKey?: string): Promise<PaginatedFindResult<TResultEntity>>;
11
+ protected executePaginatedScan<TResultEntity = TEntity>(query: ScanCommandInput, lastEvaluatedKey?: string): Promise<PaginatedFindResult<TResultEntity>>;
10
12
  protected getKeyPairFromModel(model: TEntity): Partial<TEntity>;
11
13
  }
12
14
  export default BaseDynamoDataStorage;
@@ -1,28 +1,23 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const getAWS_1 = __importDefault(require("../../../utils/getAWS"));
7
- const { DynamoDB } = (0, getAWS_1.default)();
3
+ const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
4
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
8
5
  class BaseDynamoDataStorage {
9
6
  constructor(tableName) {
10
7
  this.tableName = tableName;
11
- this.documentClient = new DynamoDB.DocumentClient();
8
+ this.documentClient = lib_dynamodb_1.DynamoDBDocumentClient.from(new client_dynamodb_1.DynamoDBClient());
12
9
  }
13
- async executeOperation(operation, query) {
10
+ async executeQuery(query) {
14
11
  var _a;
15
12
  const results = [];
16
13
  let lastEvaluatedKey;
17
14
  console.log('DDB Op', query);
18
15
  do {
19
- const page = operation === 'Scan'
20
- ? await this.documentClient
21
- .scan({ ...query, ExclusiveStartKey: lastEvaluatedKey })
22
- .promise()
23
- : await this.documentClient
24
- .query({ ...query, ExclusiveStartKey: lastEvaluatedKey })
25
- .promise();
16
+ const command = new lib_dynamodb_1.QueryCommand({
17
+ ...query,
18
+ ExclusiveStartKey: lastEvaluatedKey,
19
+ });
20
+ const page = await this.documentClient.send(command);
26
21
  if ((_a = page.Items) === null || _a === void 0 ? void 0 : _a.length) {
27
22
  results.push(...page.Items);
28
23
  }
@@ -30,39 +25,57 @@ class BaseDynamoDataStorage {
30
25
  } while (lastEvaluatedKey);
31
26
  return results;
32
27
  }
33
- async executePaginatedOperation(operation, query, lastEvaluatedKey) {
28
+ async executeScan(query) {
34
29
  var _a;
35
30
  const results = [];
31
+ let lastEvaluatedKey;
36
32
  console.log('DDB Op', query);
37
- let decodedLastEvaluatedKey;
38
- if (lastEvaluatedKey) {
39
- decodedLastEvaluatedKey = JSON.parse(Buffer
40
- .from(lastEvaluatedKey, 'base64')
41
- .toString('utf-8'));
42
- }
43
- const page = operation === 'Scan'
44
- ? await this.documentClient
45
- .scan({
46
- ...query,
47
- ExclusiveStartKey: decodedLastEvaluatedKey,
48
- })
49
- .promise()
50
- : await this.documentClient
51
- .query({
33
+ do {
34
+ const command = new client_dynamodb_1.ScanCommand({
52
35
  ...query,
53
- ExclusiveStartKey: decodedLastEvaluatedKey,
54
- })
55
- .promise();
56
- if ((_a = page.Items) === null || _a === void 0 ? void 0 : _a.length) {
57
- results.push(...page.Items);
58
- }
59
- let newLastEvaluatedKey;
60
- if (page.LastEvaluatedKey) {
61
- newLastEvaluatedKey = Buffer
62
- .from(JSON.stringify(page.LastEvaluatedKey, null, 2), 'utf-8').toString('base64');
63
- }
36
+ ExclusiveStartKey: lastEvaluatedKey,
37
+ });
38
+ const page = await this.documentClient.send(command);
39
+ if ((_a = page.Items) === null || _a === void 0 ? void 0 : _a.length) {
40
+ results.push(...page.Items);
41
+ }
42
+ lastEvaluatedKey = page.LastEvaluatedKey;
43
+ } while (lastEvaluatedKey);
44
+ return results;
45
+ }
46
+ async executePaginatedQuery(query, lastEvaluatedKey) {
47
+ const decodedLastEvaluatedKey = lastEvaluatedKey
48
+ ? JSON.parse(Buffer.from(lastEvaluatedKey, 'base64').toString('utf-8'))
49
+ : undefined;
50
+ const command = new lib_dynamodb_1.QueryCommand({
51
+ ...query,
52
+ ExclusiveStartKey: decodedLastEvaluatedKey,
53
+ });
54
+ const page = await this.documentClient.send(command);
55
+ const items = page.Items || [];
56
+ const newLastEvaluatedKey = page.LastEvaluatedKey
57
+ ? Buffer.from(JSON.stringify(page.LastEvaluatedKey, null, 2), 'utf-8').toString('base64')
58
+ : undefined;
59
+ return {
60
+ items,
61
+ lastEvaluatedKey: newLastEvaluatedKey,
62
+ };
63
+ }
64
+ async executePaginatedScan(query, lastEvaluatedKey) {
65
+ const decodedLastEvaluatedKey = lastEvaluatedKey
66
+ ? JSON.parse(Buffer.from(lastEvaluatedKey, 'base64').toString('utf-8'))
67
+ : undefined;
68
+ const command = new client_dynamodb_1.ScanCommand({
69
+ ...query,
70
+ ExclusiveStartKey: decodedLastEvaluatedKey,
71
+ });
72
+ const page = await this.documentClient.send(command);
73
+ const items = page.Items || [];
74
+ const newLastEvaluatedKey = page.LastEvaluatedKey
75
+ ? Buffer.from(JSON.stringify(page.LastEvaluatedKey, null, 2), 'utf-8').toString('base64')
76
+ : undefined;
64
77
  return {
65
- items: results,
78
+ items,
66
79
  lastEvaluatedKey: newLastEvaluatedKey,
67
80
  };
68
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDynamoDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/BaseDynamoDataStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseDynamoDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/BaseDynamoDataStorage.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,17 @@
1
- import { DynamoDB } from 'aws-sdk';
2
1
  import { PrimaryKey, QueryParameters } from './utils';
3
2
  import BaseDynamoDataStorage from './BaseDynamoDataStorage';
4
- import DataStorage from './interfaces/DataStorage';
5
3
  import PaginatedFindResult from './interfaces/PaginatedFindResult';
6
- declare abstract class DynamoDataStorage<TEntity> extends BaseDynamoDataStorage<TEntity> implements DataStorage<TEntity> {
4
+ import WriteRequest from './types/WriteRequest';
5
+ import QueryableDataStorage from './interfaces/QueryableDataStorage';
6
+ declare abstract class DynamoDataStorage<TEntity> extends BaseDynamoDataStorage<TEntity> implements QueryableDataStorage<TEntity> {
7
7
  protected constructor(tableName: string);
8
- protected batchWriteRequest(writeRequests: DynamoDB.DocumentClient.WriteRequests, batchSize?: number): Promise<void>;
8
+ protected batchWriteRequest(writeRequests: WriteRequest[], batchSize?: number): Promise<void>;
9
9
  get(key: PrimaryKey<TEntity>): Promise<TEntity | null>;
10
10
  batchGet(keys: PrimaryKey<TEntity>[], batchSize?: number): Promise<TEntity[]>;
11
- find<TResultEntity = TEntity>(query: QueryParameters<TEntity>): Promise<TResultEntity[]>;
12
- paginatedFind<TResultEntity = TEntity>(query: QueryParameters<TEntity>, lastEvaluatedKey?: string): Promise<PaginatedFindResult<TResultEntity>>;
11
+ query<TResultEntity = TEntity>(query: QueryParameters<TEntity>): Promise<TResultEntity[]>;
12
+ scan<TResultEntity = TEntity>(query: QueryParameters<TEntity>): Promise<TResultEntity[]>;
13
+ queryForPage<TResultEntity = TEntity>(query: QueryParameters<TEntity>, lastEvaluatedKey?: string): Promise<PaginatedFindResult<TResultEntity>>;
14
+ scanForPage<TResultEntity = TEntity>(query: QueryParameters<TEntity>, lastEvaluatedKey?: string): Promise<PaginatedFindResult<TResultEntity>>;
13
15
  findOne(query: Omit<QueryParameters<TEntity>, 'limit'>): Promise<TEntity | null>;
14
16
  remove(entity: Partial<TEntity>): Promise<void>;
15
17
  batchRemove(entities: Partial<TEntity>[], batchSize?: number): Promise<void>;