@trunkrs/common 1.5.10 → 1.5.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trunkrs/common",
3
- "version": "1.5.10",
3
+ "version": "1.5.11",
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",
@@ -12,7 +12,7 @@
12
12
  "deepmerge": "^4.2.2"
13
13
  },
14
14
  "devDependencies": {
15
- "@types/aws-lambda": "^8.10.83",
15
+ "@types/aws-lambda": "^8.10.92",
16
16
  "@types/faker": "^5.5.8",
17
17
  "@types/jest": "^27.0.1",
18
18
  "@types/joi": "^17.2.3",
@@ -47,7 +47,7 @@
47
47
  "peerDependencies": {
48
48
  "@typescript-eslint/eslint-plugin": ">=4 || <5",
49
49
  "@typescript-eslint/parser": ">=4 || <5",
50
- "aws-sdk": ">2.900.0 || <3",
50
+ "aws-sdk": ">2.1000.0 || <3",
51
51
  "date-fns": ">=2 || <3",
52
52
  "eslint": ">=7.2.0",
53
53
  "eslint-config-airbnb-base-typescript-prettier": ">=3.1 || <4",
@@ -19,13 +19,14 @@ class AxiosClient {
19
19
  return new errors_1.HttpRequestError(axiosError, request, (_a = axiosError.response) === null || _a === void 0 ? void 0 : _a.status, (_b = axiosError.response) === null || _b === void 0 ? void 0 : _b.headers, (_c = axiosError.response) === null || _c === void 0 ? void 0 : _c.data);
20
20
  }
21
21
  async get(request) {
22
- var _a;
22
+ var _a, _b;
23
23
  try {
24
24
  const response = await this.axiosClient.get(request.url, {
25
25
  auth: request.authentication,
26
26
  params: request.params,
27
27
  headers: request.headers,
28
28
  timeout: (_a = request.timeout) !== null && _a !== void 0 ? _a : defaultTimeout,
29
+ responseType: (_b = request.responseType) !== null && _b !== void 0 ? _b : 'json',
29
30
  });
30
31
  return response.data;
31
32
  }
@@ -34,12 +35,13 @@ class AxiosClient {
34
35
  }
35
36
  }
36
37
  async post(request) {
37
- var _a;
38
+ var _a, _b;
38
39
  try {
39
40
  const response = await this.axiosClient.post(request.url, request.params, {
40
41
  auth: request.authentication,
41
42
  headers: request.headers,
42
43
  timeout: (_a = request.timeout) !== null && _a !== void 0 ? _a : defaultTimeout,
44
+ responseType: (_b = request.responseType) !== null && _b !== void 0 ? _b : 'json',
43
45
  });
44
46
  return response.data;
45
47
  }
@@ -48,12 +50,13 @@ class AxiosClient {
48
50
  }
49
51
  }
50
52
  async put(request) {
51
- var _a;
53
+ var _a, _b;
52
54
  try {
53
55
  const response = await this.axiosClient.put(request.url, request.params, {
54
56
  auth: request.authentication,
55
57
  headers: request.headers,
56
58
  timeout: (_a = request.timeout) !== null && _a !== void 0 ? _a : defaultTimeout,
59
+ responseType: (_b = request.responseType) !== null && _b !== void 0 ? _b : 'json',
57
60
  });
58
61
  return response.data;
59
62
  }
@@ -62,13 +65,14 @@ class AxiosClient {
62
65
  }
63
66
  }
64
67
  async delete(request) {
65
- var _a;
68
+ var _a, _b;
66
69
  try {
67
70
  await this.axiosClient.delete(request.url, {
68
71
  auth: request.authentication,
69
72
  params: request.params,
70
73
  headers: request.headers,
71
74
  timeout: (_a = request.timeout) !== null && _a !== void 0 ? _a : defaultTimeout,
75
+ responseType: (_b = request.responseType) !== null && _b !== void 0 ? _b : 'json',
72
76
  });
73
77
  }
74
78
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"AxiosClient.js","sourceRoot":"","sources":["../../../services/client/AxiosClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AxiosClient.js","sourceRoot":"","sources":["../../../services/client/AxiosClient.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface SQSMessageOptions {
5
5
  export interface SNSMessageOptions {
6
6
  deduplicationId?: string;
7
7
  messageGroupId?: string;
8
+ messageDeduplicationId?: string;
8
9
  attributes?: {
9
10
  [key: string]: string | number | boolean;
10
11
  };
@@ -4,9 +4,10 @@ declare class SNSQueueClient implements QueueClient {
4
4
  private readonly topicArn;
5
5
  private readonly serializer;
6
6
  private static translateJStypeToSNSType;
7
+ private static translateAttributesToSNSAttributes;
7
8
  private readonly client;
8
9
  constructor(topicArn: string, serializer: Serializer);
9
10
  sendMessage<TMessage>(request: QueueMessageRequest<TMessage, SNSMessageOptions>): Promise<void>;
10
- sendBatchMessage<TMessage>(request: QueueBatchMessageRequest<TMessage>): Promise<void>;
11
+ sendBatchMessage<TMessage>(request: QueueBatchMessageRequest<TMessage, SNSMessageOptions>): Promise<void>;
11
12
  }
12
13
  export default SNSQueueClient;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const aws_sdk_1 = require("aws-sdk");
4
+ const uuid_1 = require("uuid");
4
5
  class SNSQueueClient {
5
6
  constructor(topicArn, serializer) {
6
7
  this.topicArn = topicArn;
@@ -19,32 +20,50 @@ class SNSQueueClient {
19
20
  return 'String';
20
21
  }
21
22
  }
23
+ static translateAttributesToSNSAttributes(attributes) {
24
+ return Object.keys(attributes).reduce((keyMap, attrKey) => Object.assign(keyMap, {
25
+ [attrKey]: {
26
+ DataType: SNSQueueClient.translateJStypeToSNSType(typeof attributes[attrKey]),
27
+ StringValue: String(attributes[attrKey]),
28
+ },
29
+ }), {});
30
+ }
22
31
  async sendMessage(request) {
23
32
  var _a, _b, _c, _d;
24
33
  const attributes = ((_a = request.options) === null || _a === void 0 ? void 0 : _a.attributes)
25
- ? Object.keys((_b = request.options) === null || _b === void 0 ? void 0 : _b.attributes).reduce((keyMap, attrKey) => {
26
- var _a, _b, _c, _d;
27
- return Object.assign(keyMap, {
28
- [attrKey]: {
29
- DataType: SNSQueueClient.translateJStypeToSNSType(typeof ((_b = (_a = request.options) === null || _a === void 0 ? void 0 : _a.attributes) === null || _b === void 0 ? void 0 : _b[attrKey])),
30
- StringValue: String((_d = (_c = request.options) === null || _c === void 0 ? void 0 : _c.attributes) === null || _d === void 0 ? void 0 : _d[attrKey]),
31
- },
32
- });
33
- }, {})
34
+ ? SNSQueueClient.translateAttributesToSNSAttributes((_b = request.options) === null || _b === void 0 ? void 0 : _b.attributes)
34
35
  : {};
35
36
  await this.client
36
37
  .publish({
37
38
  TopicArn: this.topicArn,
38
39
  Message: this.serializer.serialize(request.message, 'string'),
39
40
  MessageGroupId: (_c = request.options) === null || _c === void 0 ? void 0 : _c.messageGroupId,
40
- MessageDeduplicationId: (_d = request.options) === null || _d === void 0 ? void 0 : _d.messageGroupId,
41
+ MessageDeduplicationId: (_d = request.options) === null || _d === void 0 ? void 0 : _d.messageDeduplicationId,
41
42
  MessageAttributes: attributes,
42
43
  })
43
44
  .promise();
44
45
  }
45
46
  async sendBatchMessage(request) {
46
- const batchSendMessagePromises = request.messages.map((message) => this.sendMessage({ message, options: request.options }));
47
- await Promise.all(batchSendMessagePromises);
47
+ var _a, _b;
48
+ const attributes = ((_a = request.options) === null || _a === void 0 ? void 0 : _a.attributes)
49
+ ? SNSQueueClient.translateAttributesToSNSAttributes((_b = request.options) === null || _b === void 0 ? void 0 : _b.attributes)
50
+ : {};
51
+ const batchSendMessageEntries = request.messages.map((message) => {
52
+ var _a, _b;
53
+ return ({
54
+ Id: (0, uuid_1.v1)(),
55
+ Message: this.serializer.serialize(message, 'string'),
56
+ MessageGroupId: (_a = request.options) === null || _a === void 0 ? void 0 : _a.messageGroupId,
57
+ MessageDeduplicationId: (_b = request.options) === null || _b === void 0 ? void 0 : _b.messageDeduplicationId,
58
+ MessageAttributes: attributes,
59
+ });
60
+ });
61
+ await this.client
62
+ .publishBatch({
63
+ TopicArn: this.topicArn,
64
+ PublishBatchRequestEntries: batchSendMessageEntries,
65
+ })
66
+ .promise();
48
67
  }
49
68
  }
50
69
  exports.default = SNSQueueClient;
@@ -1 +1 @@
1
- {"version":3,"file":"SNSQueueClient.js","sourceRoot":"","sources":["../../../services/queue/SNSQueueClient.ts"],"names":[],"mappings":";;AAAA,qCAA6B;AAW7B,MAAM,cAAc;IAgBlB,YAImB,QAAgB,EAIhB,UAAsB;QAJtB,aAAQ,GAAR,QAAQ,CAAQ;QAIhB,eAAU,GAAV,UAAU,CAAY;QAVxB,WAAM,GAAG,IAAI,aAAG,EAAE,CAAA;IAWhC,CAAC;IAxBI,MAAM,CAAC,wBAAwB,CAAC,QAAgB;QACtD,QAAQ,QAAQ,EAAE;YAChB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAA;YACjB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAA;YACjB,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAA;YAClB;gBACE,OAAO,QAAQ,CAAA;SAClB;IACH,CAAC;IAeM,KAAK,CAAC,WAAW,CACtB,OAAyD;;QAGzD,MAAM,UAAU,GAAG,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,UAAU;YAC5C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAA,OAAO,CAAC,OAAO,0CAAE,UAAU,CAAC,CAAC,MAAM,CAC7C,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;;gBAClB,OAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;oBACpB,CAAC,OAAO,CAAC,EAAE;wBACT,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAC/C,OAAO,CAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,UAAU,0CAAG,OAAO,CAAC,CAAA,CAC9C;wBACD,WAAW,EAAE,MAAM,CAAC,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,UAAU,0CAAG,OAAO,CAAC,CAAC;qBAC5D;iBACF,CAAC,CAAA;aAAA,EACJ,EAAwD,CACzD;YACH,CAAC,CAAC,EAAE,CAAA;QAEN,MAAM,IAAI,CAAC,MAAM;aACd,OAAO,CAAC;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7D,cAAc,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,cAAc;YAC/C,sBAAsB,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,cAAc;YACvD,iBAAiB,EAAE,UAAU;SAC9B,CAAC;aACD,OAAO,EAAE,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,OAA2C;QAE3C,MAAM,wBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAChE,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CACxD,CAAA;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAC7C,CAAC;CACF;AAED,kBAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"SNSQueueClient.js","sourceRoot":"","sources":["../../../services/queue/SNSQueueClient.ts"],"names":[],"mappings":";;AAAA,qCAA6B;AAC7B,+BAAmC;AAWnC,MAAM,cAAc;IAkClB,YAImB,QAAgB,EAIhB,UAAsB;QAJtB,aAAQ,GAAR,QAAQ,CAAQ;QAIhB,eAAU,GAAV,UAAU,CAAY;QAVxB,WAAM,GAAG,IAAI,aAAG,EAAE,CAAA;IAWhC,CAAC;IA1CI,MAAM,CAAC,wBAAwB,CAAC,QAAgB;QACtD,QAAQ,QAAQ,EAAE;YAChB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAA;YACjB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAA;YACjB,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAA;YAClB;gBACE,OAAO,QAAQ,CAAA;SAClB;IACH,CAAC;IAEO,MAAM,CAAC,kCAAkC,CAAC,UAEjD;QAEC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACnC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAClB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YACpB,CAAC,OAAO,CAAC,EAAE;gBACT,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAC/C,OAAO,UAAU,CAAC,OAAO,CAAC,CAC3B;gBACD,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aACzC;SACF,CAAC,EACJ,EAAwD,CACzD,CAAA;IACH,CAAC;IAeM,KAAK,CAAC,WAAW,CACtB,OAAyD;;QAEzD,MAAM,UAAU,GAAG,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,UAAU;YAC5C,CAAC,CAAC,cAAc,CAAC,kCAAkC,CAC/C,MAAA,OAAO,CAAC,OAAO,0CAAE,UAAU,CAC5B;YACH,CAAC,CAAC,EAAE,CAAA;QAEN,MAAM,IAAI,CAAC,MAAM;aACd,OAAO,CAAC;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7D,cAAc,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,cAAc;YAC/C,sBAAsB,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,sBAAsB;YAC/D,iBAAiB,EAAE,UAAU;SAC9B,CAAC;aACD,OAAO,EAAE,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,OAA8D;;QAE9D,MAAM,UAAU,GAAG,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,UAAU;YAC5C,CAAC,CAAC,cAAc,CAAC,kCAAkC,CAC/C,MAAA,OAAO,CAAC,OAAO,0CAAE,UAAU,CAC5B;YACH,CAAC,CAAC,EAAE,CAAA;QAEN,MAAM,uBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;;YAAC,OAAA,CAAC;gBACjE,EAAE,EAAE,IAAA,SAAM,GAAE;gBACZ,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;gBACrD,cAAc,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,cAAc;gBAC/C,sBAAsB,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,sBAAsB;gBAC/D,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAA;SAAA,CAAC,CAAA;QAEH,MAAM,IAAI,CAAC,MAAM;aACd,YAAY,CAAC;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,0BAA0B,EAAE,uBAAuB;SACpD,CAAC;aACD,OAAO,EAAE,CAAA;IACd,CAAC;CACF;AAED,kBAAe,cAAc,CAAA"}