@adtrackify/at-service-common 3.0.98 → 3.0.99

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 (251) hide show
  1. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  2. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +527 -527
  3. package/dist/cjs/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  4. package/dist/cjs/__tests__/libs/compress-decompress.spec.js +16 -16
  5. package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  6. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +26 -26
  7. package/dist/cjs/clients/generic/cognito-client.d.ts +20 -20
  8. package/dist/cjs/clients/generic/cognito-client.js +164 -164
  9. package/dist/cjs/clients/generic/dynamodb-client.d.ts +17 -17
  10. package/dist/cjs/clients/generic/dynamodb-client.js +167 -167
  11. package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
  12. package/dist/cjs/clients/generic/eventbridge-client.js +49 -49
  13. package/dist/cjs/clients/generic/http-client.d.ts +88 -88
  14. package/dist/cjs/clients/generic/http-client.js +60 -60
  15. package/dist/cjs/clients/generic/index.d.ts +10 -10
  16. package/dist/cjs/clients/generic/index.js +26 -26
  17. package/dist/cjs/clients/generic/lambda-invoke-client.d.ts +10 -10
  18. package/dist/cjs/clients/generic/lambda-invoke-client.js +35 -35
  19. package/dist/cjs/clients/generic/location-client.d.ts +8 -8
  20. package/dist/cjs/clients/generic/location-client.js +31 -31
  21. package/dist/cjs/clients/generic/redis-client.d.ts +17 -17
  22. package/dist/cjs/clients/generic/redis-client.js +117 -117
  23. package/dist/cjs/clients/generic/s3-client.d.ts +16 -16
  24. package/dist/cjs/clients/generic/s3-client.js +110 -110
  25. package/dist/cjs/clients/generic/singlestore-db-client.d.ts +14 -14
  26. package/dist/cjs/clients/generic/singlestore-db-client.js +67 -67
  27. package/dist/cjs/clients/generic/sqs-client.d.ts +14 -20
  28. package/dist/cjs/clients/generic/sqs-client.js +36 -36
  29. package/dist/cjs/clients/generic/sqs-client.js.map +1 -1
  30. package/dist/cjs/clients/index.d.ts +3 -3
  31. package/dist/cjs/clients/index.js +19 -19
  32. package/dist/cjs/clients/internal-api/accounts-client.d.ts +112 -112
  33. package/dist/cjs/clients/internal-api/accounts-client.js +117 -117
  34. package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +23 -23
  35. package/dist/cjs/clients/internal-api/cache-lambda-client.js +59 -59
  36. package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
  37. package/dist/cjs/clients/internal-api/db-management-client.js +39 -39
  38. package/dist/cjs/clients/internal-api/destinations-client.d.ts +29 -29
  39. package/dist/cjs/clients/internal-api/destinations-client.js +54 -54
  40. package/dist/cjs/clients/internal-api/event-collector-client.d.ts +20 -20
  41. package/dist/cjs/clients/internal-api/event-collector-client.js +39 -39
  42. package/dist/cjs/clients/internal-api/identity-client.d.ts +25 -25
  43. package/dist/cjs/clients/internal-api/identity-client.js +92 -92
  44. package/dist/cjs/clients/internal-api/index.d.ts +8 -8
  45. package/dist/cjs/clients/internal-api/index.js +24 -24
  46. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +34 -34
  47. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +63 -63
  48. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +31 -31
  49. package/dist/cjs/clients/internal-api/users-auth-client.js +92 -92
  50. package/dist/cjs/clients/third-party/index.d.ts +1 -1
  51. package/dist/cjs/clients/third-party/index.js +17 -17
  52. package/dist/cjs/clients/third-party/shopify-client.d.ts +197 -198
  53. package/dist/cjs/clients/third-party/shopify-client.js +196 -150
  54. package/dist/cjs/clients/third-party/shopify-client.js.map +1 -1
  55. package/dist/cjs/helpers/identity-cache-helper.d.ts +4 -4
  56. package/dist/cjs/helpers/identity-cache-helper.js +150 -150
  57. package/dist/cjs/helpers/index.d.ts +5 -5
  58. package/dist/cjs/helpers/index.js +21 -21
  59. package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
  60. package/dist/cjs/helpers/input-validation-helper.js +22 -22
  61. package/dist/cjs/helpers/logging-helper.d.ts +16 -16
  62. package/dist/cjs/helpers/logging-helper.js +84 -84
  63. package/dist/cjs/helpers/response-helper.d.ts +15 -15
  64. package/dist/cjs/helpers/response-helper.js +42 -42
  65. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  66. package/dist/cjs/helpers/shopify-helper.js +28 -28
  67. package/dist/cjs/index.d.ts +5 -5
  68. package/dist/cjs/index.js +21 -21
  69. package/dist/cjs/libs/clickId-parser.d.ts +23 -23
  70. package/dist/cjs/libs/clickId-parser.js +49 -49
  71. package/dist/cjs/libs/compression.d.ts +2 -2
  72. package/dist/cjs/libs/compression.js +33 -33
  73. package/dist/cjs/libs/crypto.d.ts +1 -1
  74. package/dist/cjs/libs/crypto.js +12 -12
  75. package/dist/cjs/libs/dates.d.ts +6 -6
  76. package/dist/cjs/libs/dates.js +31 -31
  77. package/dist/cjs/libs/http-error.d.ts +21 -21
  78. package/dist/cjs/libs/http-error.js +59 -59
  79. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  80. package/dist/cjs/libs/http-status-codes.js +62 -62
  81. package/dist/cjs/libs/index.d.ts +9 -9
  82. package/dist/cjs/libs/index.js +25 -25
  83. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  84. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  85. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  86. package/dist/cjs/libs/referrer-parser/referrer-data.js +4712 -4712
  87. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  88. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +128 -128
  89. package/dist/cjs/libs/url.d.ts +1 -1
  90. package/dist/cjs/libs/url.js +13 -13
  91. package/dist/cjs/services/db/destinations-db-service.d.ts +8 -8
  92. package/dist/cjs/services/db/destinations-db-service.js +47 -47
  93. package/dist/cjs/services/db/identity-cache-db-service.d.ts +24 -24
  94. package/dist/cjs/services/db/identity-cache-db-service.js +233 -233
  95. package/dist/cjs/services/db/index.d.ts +7 -7
  96. package/dist/cjs/services/db/index.js +23 -23
  97. package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
  98. package/dist/cjs/services/db/log-events-db-service.js +172 -172
  99. package/dist/cjs/services/db/purchased-contacts-db-service.d.ts +9 -9
  100. package/dist/cjs/services/db/purchased-contacts-db-service.js +38 -38
  101. package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +7 -7
  102. package/dist/cjs/services/db/shopify-app-installs-db-service.js +47 -47
  103. package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +9 -9
  104. package/dist/cjs/services/db/shopify-products-cache-db-service.js +64 -64
  105. package/dist/cjs/services/db/shopify-products-cache-db-service.js.map +1 -1
  106. package/dist/cjs/services/db/tracking-events-db-service.d.ts +20 -20
  107. package/dist/cjs/services/db/tracking-events-db-service.js +162 -162
  108. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  109. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  110. package/dist/cjs/services/index.d.ts +5 -5
  111. package/dist/cjs/services/index.js +21 -21
  112. package/dist/cjs/services/ipdata-lookup-service.d.ts +17 -17
  113. package/dist/cjs/services/ipdata-lookup-service.js +71 -71
  114. package/dist/cjs/services/log-event-service.d.ts +9 -9
  115. package/dist/cjs/services/log-event-service.js +56 -56
  116. package/dist/cjs/services/metric-event-service.d.ts +9 -9
  117. package/dist/cjs/services/metric-event-service.js +49 -49
  118. package/dist/cjs/types/api-response.d.ts +6 -6
  119. package/dist/cjs/types/api-response.js +2 -2
  120. package/dist/cjs/types/index.d.ts +1 -1
  121. package/dist/cjs/types/index.js +17 -17
  122. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  123. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  124. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  125. package/dist/cjs/types/internal-events/index.js +17 -17
  126. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  127. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +525 -525
  128. package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  129. package/dist/esm/__tests__/libs/compress-decompress.spec.js +14 -14
  130. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  131. package/dist/esm/__tests__/s3-client/s3-client.spec.js +24 -24
  132. package/dist/esm/clients/generic/cognito-client.d.ts +20 -20
  133. package/dist/esm/clients/generic/cognito-client.js +159 -159
  134. package/dist/esm/clients/generic/dynamodb-client.d.ts +17 -17
  135. package/dist/esm/clients/generic/dynamodb-client.js +163 -163
  136. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  137. package/dist/esm/clients/generic/eventbridge-client.js +45 -45
  138. package/dist/esm/clients/generic/http-client.d.ts +88 -88
  139. package/dist/esm/clients/generic/http-client.js +52 -52
  140. package/dist/esm/clients/generic/index.d.ts +10 -10
  141. package/dist/esm/clients/generic/index.js +10 -10
  142. package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
  143. package/dist/esm/clients/generic/lambda-invoke-client.js +31 -31
  144. package/dist/esm/clients/generic/location-client.d.ts +8 -8
  145. package/dist/esm/clients/generic/location-client.js +27 -27
  146. package/dist/esm/clients/generic/redis-client.d.ts +17 -17
  147. package/dist/esm/clients/generic/redis-client.js +110 -110
  148. package/dist/esm/clients/generic/s3-client.d.ts +16 -16
  149. package/dist/esm/clients/generic/s3-client.js +106 -106
  150. package/dist/esm/clients/generic/singlestore-db-client.d.ts +14 -14
  151. package/dist/esm/clients/generic/singlestore-db-client.js +40 -40
  152. package/dist/esm/clients/generic/sqs-client.d.ts +14 -20
  153. package/dist/esm/clients/generic/sqs-client.js +32 -32
  154. package/dist/esm/clients/generic/sqs-client.js.map +1 -1
  155. package/dist/esm/clients/index.d.ts +3 -3
  156. package/dist/esm/clients/index.js +3 -3
  157. package/dist/esm/clients/internal-api/accounts-client.d.ts +112 -112
  158. package/dist/esm/clients/internal-api/accounts-client.js +113 -113
  159. package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +23 -23
  160. package/dist/esm/clients/internal-api/cache-lambda-client.js +55 -55
  161. package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
  162. package/dist/esm/clients/internal-api/db-management-client.js +32 -32
  163. package/dist/esm/clients/internal-api/destinations-client.d.ts +29 -29
  164. package/dist/esm/clients/internal-api/destinations-client.js +50 -50
  165. package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
  166. package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
  167. package/dist/esm/clients/internal-api/identity-client.d.ts +25 -25
  168. package/dist/esm/clients/internal-api/identity-client.js +88 -88
  169. package/dist/esm/clients/internal-api/index.d.ts +8 -8
  170. package/dist/esm/clients/internal-api/index.js +8 -8
  171. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +34 -34
  172. package/dist/esm/clients/internal-api/shopify-app-install-client.js +56 -56
  173. package/dist/esm/clients/internal-api/users-auth-client.d.ts +31 -31
  174. package/dist/esm/clients/internal-api/users-auth-client.js +88 -88
  175. package/dist/esm/clients/third-party/index.d.ts +1 -1
  176. package/dist/esm/clients/third-party/index.js +1 -1
  177. package/dist/esm/clients/third-party/shopify-client.d.ts +197 -198
  178. package/dist/esm/clients/third-party/shopify-client.js +192 -146
  179. package/dist/esm/clients/third-party/shopify-client.js.map +1 -1
  180. package/dist/esm/helpers/identity-cache-helper.d.ts +4 -4
  181. package/dist/esm/helpers/identity-cache-helper.js +145 -145
  182. package/dist/esm/helpers/index.d.ts +5 -5
  183. package/dist/esm/helpers/index.js +5 -5
  184. package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
  185. package/dist/esm/helpers/input-validation-helper.js +18 -18
  186. package/dist/esm/helpers/logging-helper.d.ts +16 -16
  187. package/dist/esm/helpers/logging-helper.js +56 -56
  188. package/dist/esm/helpers/response-helper.d.ts +15 -15
  189. package/dist/esm/helpers/response-helper.js +36 -36
  190. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  191. package/dist/esm/helpers/shopify-helper.js +23 -23
  192. package/dist/esm/index.d.ts +5 -5
  193. package/dist/esm/index.js +5 -5
  194. package/dist/esm/libs/clickId-parser.d.ts +23 -23
  195. package/dist/esm/libs/clickId-parser.js +45 -45
  196. package/dist/esm/libs/compression.d.ts +2 -2
  197. package/dist/esm/libs/compression.js +25 -25
  198. package/dist/esm/libs/crypto.d.ts +1 -1
  199. package/dist/esm/libs/crypto.js +5 -5
  200. package/dist/esm/libs/dates.d.ts +6 -6
  201. package/dist/esm/libs/dates.js +22 -22
  202. package/dist/esm/libs/http-error.d.ts +21 -21
  203. package/dist/esm/libs/http-error.js +55 -55
  204. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  205. package/dist/esm/libs/http-status-codes.js +59 -59
  206. package/dist/esm/libs/index.d.ts +9 -9
  207. package/dist/esm/libs/index.js +9 -9
  208. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  209. package/dist/esm/libs/referrer-parser/index.js +2 -2
  210. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  211. package/dist/esm/libs/referrer-parser/referrer-data.js +4709 -4709
  212. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  213. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +121 -121
  214. package/dist/esm/libs/url.d.ts +1 -1
  215. package/dist/esm/libs/url.js +9 -9
  216. package/dist/esm/services/db/destinations-db-service.d.ts +8 -8
  217. package/dist/esm/services/db/destinations-db-service.js +43 -43
  218. package/dist/esm/services/db/identity-cache-db-service.d.ts +24 -24
  219. package/dist/esm/services/db/identity-cache-db-service.js +229 -229
  220. package/dist/esm/services/db/index.d.ts +7 -7
  221. package/dist/esm/services/db/index.js +7 -7
  222. package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
  223. package/dist/esm/services/db/log-events-db-service.js +168 -168
  224. package/dist/esm/services/db/purchased-contacts-db-service.d.ts +9 -9
  225. package/dist/esm/services/db/purchased-contacts-db-service.js +34 -34
  226. package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +7 -7
  227. package/dist/esm/services/db/shopify-app-installs-db-service.js +43 -43
  228. package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +9 -9
  229. package/dist/esm/services/db/shopify-products-cache-db-service.js +60 -60
  230. package/dist/esm/services/db/shopify-products-cache-db-service.js.map +1 -1
  231. package/dist/esm/services/db/tracking-events-db-service.d.ts +20 -20
  232. package/dist/esm/services/db/tracking-events-db-service.js +158 -158
  233. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  234. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  235. package/dist/esm/services/index.d.ts +5 -5
  236. package/dist/esm/services/index.js +5 -5
  237. package/dist/esm/services/ipdata-lookup-service.d.ts +17 -17
  238. package/dist/esm/services/ipdata-lookup-service.js +67 -67
  239. package/dist/esm/services/log-event-service.d.ts +9 -9
  240. package/dist/esm/services/log-event-service.js +52 -52
  241. package/dist/esm/services/metric-event-service.d.ts +9 -9
  242. package/dist/esm/services/metric-event-service.js +45 -45
  243. package/dist/esm/types/api-response.d.ts +6 -6
  244. package/dist/esm/types/api-response.js +1 -1
  245. package/dist/esm/types/index.d.ts +1 -1
  246. package/dist/esm/types/index.js +1 -1
  247. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  248. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  249. package/dist/esm/types/internal-events/index.d.ts +1 -1
  250. package/dist/esm/types/internal-events/index.js +1 -1
  251. package/package.json +6 -3
@@ -1,164 +1,164 @@
1
- import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
2
- import { DynamoDBDocument } from '@aws-sdk/lib-dynamodb';
3
- import { HttpStatusCodes, Logger } from '../../index.js';
4
- const marshallOptions = {
5
- convertEmptyValues: false,
6
- removeUndefinedValues: true,
7
- convertClassInstanceToMap: true
8
- };
9
- const unmarshallOptions = {
10
- wrapNumbers: false,
11
- };
12
- const translateConfig = { marshallOptions, unmarshallOptions };
13
- const ddbClient = new DynamoDBClient({});
14
- const client = DynamoDBDocument.from(ddbClient, translateConfig);
15
- export class DynamoDbClient {
16
- static safeGet = async (tableName, keyName, keyValue) => {
17
- try {
18
- const params = {
19
- TableName: tableName,
20
- Key: {
21
- [keyName]: keyValue
22
- }
23
- };
24
- const res = await client.get(params);
25
- return res?.Item ?? null;
26
- }
27
- catch (e) {
28
- Logger.error(e, { message: 'Dynamo Client Get Failed', tableName, keyName, keyValue });
29
- return null;
30
- }
31
- };
32
- static safePut = async (tableName, data) => {
33
- try {
34
- const params = {
35
- TableName: tableName,
36
- Item: data
37
- };
38
- const res = await client.put(params);
39
- return res;
40
- }
41
- catch (e) {
42
- Logger.error(e, { message: 'Dynamo failed simplePut', tableName, data });
43
- return null;
44
- }
45
- };
46
- static safeDelete = async (tableName, keyName, keyValue) => {
47
- try {
48
- const params = {
49
- TableName: tableName,
50
- Key: {
51
- [keyName]: keyValue
52
- }
53
- };
54
- const res = await client.delete(params);
55
- return res;
56
- }
57
- catch (e) {
58
- Logger.error(e, { message: 'Dynamo failed safeDelete' });
59
- return null;
60
- }
61
- };
62
- static safeQueryByGSI = async (tableName, gsiName, keyName, keyValue) => {
63
- const query = {
64
- TableName: tableName,
65
- IndexName: gsiName,
66
- KeyConditionExpression: `${keyName} = :value`,
67
- ExpressionAttributeValues: {
68
- ':value': keyValue
69
- }
70
- };
71
- const results = await DynamoDbClient.queryAll(query);
72
- return results;
73
- };
74
- static safeBatchGet = async (tableName, keys) => {
75
- try {
76
- const params = {
77
- RequestItems: {}
78
- };
79
- params.RequestItems[tableName] = {
80
- Keys: keys
81
- };
82
- const res = await client.batchGet(params);
83
- if (res?.Responses?.[tableName]) {
84
- return res?.Responses?.[tableName];
85
- }
86
- return [];
87
- }
88
- catch (e) {
89
- Logger.error(e, { message: 'Dynamo failed safeBatchGet' });
90
- return [];
91
- }
92
- };
93
- static safeBatchPut = async (tableName, items) => {
94
- try {
95
- const params = {
96
- RequestItems: {}
97
- };
98
- params.RequestItems[tableName] = items.map((item) => {
99
- return {
100
- PutRequest: {
101
- Item: item
102
- }
103
- };
104
- });
105
- const res = await client.batchWrite(params);
106
- if (res?.$metadata?.httpStatusCode === HttpStatusCodes.OK) {
107
- return res;
108
- }
109
- return null;
110
- }
111
- catch (e) {
112
- Logger.error(e, { message: 'Dynamo failed safeBatchPut' });
113
- return null;
114
- }
115
- };
116
- static queryAll = async (params) => {
117
- try {
118
- let currentResult, exclusiveStartKey;
119
- let accumulatedResults = [];
120
- do {
121
- params.ExclusiveStartKey = exclusiveStartKey;
122
- params.Limit = 200;
123
- currentResult = await client.query(params);
124
- if (currentResult.Items) {
125
- exclusiveStartKey = currentResult.LastEvaluatedKey;
126
- accumulatedResults = [...accumulatedResults, ...currentResult.Items];
127
- }
128
- } while (currentResult.Items && currentResult.Items.length > 0 && currentResult.LastEvaluatedKey);
129
- return accumulatedResults;
130
- }
131
- catch (e) {
132
- Logger.error(e, { message: 'Dynamo failed queryAll' });
133
- return null;
134
- }
135
- };
136
- static scanAll = async (params) => {
137
- try {
138
- let currentResult, exclusiveStartKey;
139
- let accumulatedResults = [];
140
- do {
141
- params.ExclusiveStartKey = exclusiveStartKey;
142
- params.Limit = 200;
143
- currentResult = await client.scan(params);
144
- if (currentResult.Items) {
145
- exclusiveStartKey = currentResult.LastEvaluatedKey;
146
- accumulatedResults = [...accumulatedResults, ...currentResult.Items];
147
- }
148
- } while (currentResult.Items && currentResult.Items.length > 0 && currentResult.LastEvaluatedKey);
149
- return accumulatedResults;
150
- }
151
- catch (e) {
152
- Logger.error(e, { message: 'Dynamo failed scanAll' });
153
- return null;
154
- }
155
- };
156
- static batchGet = (params) => client.batchGet(params);
157
- static get = (params) => client.get(params);
158
- static put = (params) => client.put(params);
159
- static query = (params) => client.query(params);
160
- static scan = (params) => client.scan(params);
161
- static update = (params) => client.update(params);
162
- static delete = (params) => client.delete(params);
163
- }
1
+ import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
2
+ import { DynamoDBDocument } from '@aws-sdk/lib-dynamodb';
3
+ import { HttpStatusCodes, Logger } from '../../index.js';
4
+ const marshallOptions = {
5
+ convertEmptyValues: false,
6
+ removeUndefinedValues: true,
7
+ convertClassInstanceToMap: true
8
+ };
9
+ const unmarshallOptions = {
10
+ wrapNumbers: false,
11
+ };
12
+ const translateConfig = { marshallOptions, unmarshallOptions };
13
+ const ddbClient = new DynamoDBClient({});
14
+ const client = DynamoDBDocument.from(ddbClient, translateConfig);
15
+ export class DynamoDbClient {
16
+ static safeGet = async (tableName, keyName, keyValue) => {
17
+ try {
18
+ const params = {
19
+ TableName: tableName,
20
+ Key: {
21
+ [keyName]: keyValue
22
+ }
23
+ };
24
+ const res = await client.get(params);
25
+ return res?.Item ?? null;
26
+ }
27
+ catch (e) {
28
+ Logger.error(e, { message: 'Dynamo Client Get Failed', tableName, keyName, keyValue });
29
+ return null;
30
+ }
31
+ };
32
+ static safePut = async (tableName, data) => {
33
+ try {
34
+ const params = {
35
+ TableName: tableName,
36
+ Item: data
37
+ };
38
+ const res = await client.put(params);
39
+ return res;
40
+ }
41
+ catch (e) {
42
+ Logger.error(e, { message: 'Dynamo failed simplePut', tableName, data });
43
+ return null;
44
+ }
45
+ };
46
+ static safeDelete = async (tableName, keyName, keyValue) => {
47
+ try {
48
+ const params = {
49
+ TableName: tableName,
50
+ Key: {
51
+ [keyName]: keyValue
52
+ }
53
+ };
54
+ const res = await client.delete(params);
55
+ return res;
56
+ }
57
+ catch (e) {
58
+ Logger.error(e, { message: 'Dynamo failed safeDelete' });
59
+ return null;
60
+ }
61
+ };
62
+ static safeQueryByGSI = async (tableName, gsiName, keyName, keyValue) => {
63
+ const query = {
64
+ TableName: tableName,
65
+ IndexName: gsiName,
66
+ KeyConditionExpression: `${keyName} = :value`,
67
+ ExpressionAttributeValues: {
68
+ ':value': keyValue
69
+ }
70
+ };
71
+ const results = await DynamoDbClient.queryAll(query);
72
+ return results;
73
+ };
74
+ static safeBatchGet = async (tableName, keys) => {
75
+ try {
76
+ const params = {
77
+ RequestItems: {}
78
+ };
79
+ params.RequestItems[tableName] = {
80
+ Keys: keys
81
+ };
82
+ const res = await client.batchGet(params);
83
+ if (res?.Responses?.[tableName]) {
84
+ return res?.Responses?.[tableName];
85
+ }
86
+ return [];
87
+ }
88
+ catch (e) {
89
+ Logger.error(e, { message: 'Dynamo failed safeBatchGet' });
90
+ return [];
91
+ }
92
+ };
93
+ static safeBatchPut = async (tableName, items) => {
94
+ try {
95
+ const params = {
96
+ RequestItems: {}
97
+ };
98
+ params.RequestItems[tableName] = items.map((item) => {
99
+ return {
100
+ PutRequest: {
101
+ Item: item
102
+ }
103
+ };
104
+ });
105
+ const res = await client.batchWrite(params);
106
+ if (res?.$metadata?.httpStatusCode === HttpStatusCodes.OK) {
107
+ return res;
108
+ }
109
+ return null;
110
+ }
111
+ catch (e) {
112
+ Logger.error(e, { message: 'Dynamo failed safeBatchPut' });
113
+ return null;
114
+ }
115
+ };
116
+ static queryAll = async (params) => {
117
+ try {
118
+ let currentResult, exclusiveStartKey;
119
+ let accumulatedResults = [];
120
+ do {
121
+ params.ExclusiveStartKey = exclusiveStartKey;
122
+ params.Limit = 200;
123
+ currentResult = await client.query(params);
124
+ if (currentResult.Items) {
125
+ exclusiveStartKey = currentResult.LastEvaluatedKey;
126
+ accumulatedResults = [...accumulatedResults, ...currentResult.Items];
127
+ }
128
+ } while (currentResult.Items && currentResult.Items.length > 0 && currentResult.LastEvaluatedKey);
129
+ return accumulatedResults;
130
+ }
131
+ catch (e) {
132
+ Logger.error(e, { message: 'Dynamo failed queryAll' });
133
+ return null;
134
+ }
135
+ };
136
+ static scanAll = async (params) => {
137
+ try {
138
+ let currentResult, exclusiveStartKey;
139
+ let accumulatedResults = [];
140
+ do {
141
+ params.ExclusiveStartKey = exclusiveStartKey;
142
+ params.Limit = 200;
143
+ currentResult = await client.scan(params);
144
+ if (currentResult.Items) {
145
+ exclusiveStartKey = currentResult.LastEvaluatedKey;
146
+ accumulatedResults = [...accumulatedResults, ...currentResult.Items];
147
+ }
148
+ } while (currentResult.Items && currentResult.Items.length > 0 && currentResult.LastEvaluatedKey);
149
+ return accumulatedResults;
150
+ }
151
+ catch (e) {
152
+ Logger.error(e, { message: 'Dynamo failed scanAll' });
153
+ return null;
154
+ }
155
+ };
156
+ static batchGet = (params) => client.batchGet(params);
157
+ static get = (params) => client.get(params);
158
+ static put = (params) => client.put(params);
159
+ static query = (params) => client.query(params);
160
+ static scan = (params) => client.scan(params);
161
+ static update = (params) => client.update(params);
162
+ static delete = (params) => client.delete(params);
163
+ }
164
164
  //# sourceMappingURL=dynamodb-client.js.map
@@ -1,14 +1,14 @@
1
- import { EventBridgeClient as EventBridge } from '@aws-sdk/client-eventbridge';
2
- export declare class EventBridgeClient {
3
- eventBridge: EventBridge;
4
- EVENT_BUS_NAME: string;
5
- constructor(eventBusName: string);
6
- buildAndSendEvent: (eventSource: string, eventType: string, eventData: any) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
7
- buildEvent: (eventType: string, eventData: any, eventId?: string, eventTime?: string) => {
8
- eventId: string;
9
- eventType: string;
10
- eventTime: string;
11
- eventData: any;
12
- };
13
- putEvent: (source: string, detailType: string, data: any, headers?: any) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
14
- }
1
+ import { EventBridgeClient as EventBridge } from '@aws-sdk/client-eventbridge';
2
+ export declare class EventBridgeClient {
3
+ eventBridge: EventBridge;
4
+ EVENT_BUS_NAME: string;
5
+ constructor(eventBusName: string);
6
+ buildAndSendEvent: (eventSource: string, eventType: string, eventData: any) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
7
+ buildEvent: (eventType: string, eventData: any, eventId?: string, eventTime?: string) => {
8
+ eventId: string;
9
+ eventType: string;
10
+ eventTime: string;
11
+ eventData: any;
12
+ };
13
+ putEvent: (source: string, detailType: string, data: any, headers?: any) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
14
+ }
@@ -1,46 +1,46 @@
1
- import { EventBridgeClient as EventBridge, PutEventsCommand } from '@aws-sdk/client-eventbridge';
2
- import { v4 as uuidv4 } from 'uuid';
3
- import { getCurrentTimestamp } from '../../libs/dates.js';
4
- import { Logger } from '../../index.js';
5
- export class EventBridgeClient {
6
- eventBridge;
7
- EVENT_BUS_NAME;
8
- constructor(eventBusName) {
9
- this.eventBridge = new EventBridge({});
10
- this.EVENT_BUS_NAME = eventBusName;
11
- }
12
- buildAndSendEvent = async (eventSource, eventType, eventData) => {
13
- const event = this.buildEvent(eventType, eventData);
14
- return await this.putEvent(eventSource, eventType, event);
15
- };
16
- buildEvent = (eventType, eventData, eventId = uuidv4(), eventTime = getCurrentTimestamp()) => {
17
- return {
18
- eventId,
19
- eventType,
20
- eventTime,
21
- eventData
22
- };
23
- };
24
- putEvent = async (source, detailType, data, headers = null) => {
25
- const params = {
26
- Entries: [{
27
- Detail: JSON.stringify({ headers, data }),
28
- DetailType: detailType,
29
- EventBusName: this.EVENT_BUS_NAME,
30
- Source: source,
31
- Time: new Date(),
32
- }],
33
- };
34
- const putEventscommand = new PutEventsCommand(params);
35
- const response = await this.eventBridge.send(putEventscommand);
36
- Logger.debug('EventBus Event Published', {
37
- eventBusName: this.EVENT_BUS_NAME,
38
- eventSource: source,
39
- eventType: detailType,
40
- event: data,
41
- response
42
- });
43
- return response;
44
- };
45
- }
1
+ import { EventBridgeClient as EventBridge, PutEventsCommand } from '@aws-sdk/client-eventbridge';
2
+ import { v4 as uuidv4 } from 'uuid';
3
+ import { getCurrentTimestamp } from '../../libs/dates.js';
4
+ import { Logger } from '../../index.js';
5
+ export class EventBridgeClient {
6
+ eventBridge;
7
+ EVENT_BUS_NAME;
8
+ constructor(eventBusName) {
9
+ this.eventBridge = new EventBridge({});
10
+ this.EVENT_BUS_NAME = eventBusName;
11
+ }
12
+ buildAndSendEvent = async (eventSource, eventType, eventData) => {
13
+ const event = this.buildEvent(eventType, eventData);
14
+ return await this.putEvent(eventSource, eventType, event);
15
+ };
16
+ buildEvent = (eventType, eventData, eventId = uuidv4(), eventTime = getCurrentTimestamp()) => {
17
+ return {
18
+ eventId,
19
+ eventType,
20
+ eventTime,
21
+ eventData
22
+ };
23
+ };
24
+ putEvent = async (source, detailType, data, headers = null) => {
25
+ const params = {
26
+ Entries: [{
27
+ Detail: JSON.stringify({ headers, data }),
28
+ DetailType: detailType,
29
+ EventBusName: this.EVENT_BUS_NAME,
30
+ Source: source,
31
+ Time: new Date(),
32
+ }],
33
+ };
34
+ const putEventscommand = new PutEventsCommand(params);
35
+ const response = await this.eventBridge.send(putEventscommand);
36
+ Logger.debug('EventBus Event Published', {
37
+ eventBusName: this.EVENT_BUS_NAME,
38
+ eventSource: source,
39
+ eventType: detailType,
40
+ event: data,
41
+ response
42
+ });
43
+ return response;
44
+ };
45
+ }
46
46
  //# sourceMappingURL=eventbridge-client.js.map
@@ -1,88 +1,88 @@
1
- import { AxiosInstance, AxiosRequestConfig, CreateAxiosDefaults } from 'axios';
2
- export declare class GenericHttpClient {
3
- _axiosService: AxiosInstance;
4
- constructor(config?: CreateAxiosDefaults);
5
- instance: () => AxiosInstance;
6
- get: (url: string, config?: AxiosRequestConfig) => Promise<{
7
- headers: any;
8
- data: any;
9
- status: any;
10
- } | {
11
- headers: any;
12
- data: any;
13
- status: any;
14
- } | {
15
- status: number;
16
- data: {
17
- message: string;
18
- error: any;
19
- };
20
- headers?: undefined;
21
- }>;
22
- post: (url: string, data?: any, config?: any) => Promise<{
23
- headers: any;
24
- data: any;
25
- status: any;
26
- } | {
27
- headers: any;
28
- data: any;
29
- status: any;
30
- } | {
31
- status: number;
32
- data: {
33
- message: string;
34
- error: any;
35
- };
36
- headers?: undefined;
37
- }>;
38
- delete: (url: string, config?: any) => Promise<{
39
- headers: any;
40
- data: any;
41
- status: any;
42
- } | {
43
- headers: any;
44
- data: any;
45
- status: any;
46
- } | {
47
- status: number;
48
- data: {
49
- message: string;
50
- error: any;
51
- };
52
- headers?: undefined;
53
- }>;
54
- put: (url: string, data?: any, config?: any) => Promise<{
55
- headers: any;
56
- data: any;
57
- status: any;
58
- } | {
59
- headers: any;
60
- data: any;
61
- status: any;
62
- } | {
63
- status: number;
64
- data: {
65
- message: string;
66
- error: any;
67
- };
68
- headers?: undefined;
69
- }>;
70
- patch: (url: string, data?: any, config?: any) => Promise<{
71
- headers: any;
72
- data: any;
73
- status: any;
74
- } | {
75
- headers: any;
76
- data: any;
77
- status: any;
78
- } | {
79
- status: number;
80
- data: {
81
- message: string;
82
- error: any;
83
- };
84
- headers?: undefined;
85
- }>;
86
- setBaseUrl: (url: string) => boolean;
87
- }
88
- export declare const axiosHttpService: (config?: CreateAxiosDefaults) => GenericHttpClient;
1
+ import { AxiosInstance, AxiosRequestConfig, CreateAxiosDefaults } from 'axios';
2
+ export declare class GenericHttpClient {
3
+ _axiosService: AxiosInstance;
4
+ constructor(config?: CreateAxiosDefaults);
5
+ instance: () => AxiosInstance;
6
+ get: (url: string, config?: AxiosRequestConfig) => Promise<{
7
+ headers: any;
8
+ data: any;
9
+ status: any;
10
+ } | {
11
+ headers: any;
12
+ data: any;
13
+ status: any;
14
+ } | {
15
+ status: number;
16
+ data: {
17
+ message: string;
18
+ error: any;
19
+ };
20
+ headers?: undefined;
21
+ }>;
22
+ post: (url: string, data?: any, config?: any) => Promise<{
23
+ headers: any;
24
+ data: any;
25
+ status: any;
26
+ } | {
27
+ headers: any;
28
+ data: any;
29
+ status: any;
30
+ } | {
31
+ status: number;
32
+ data: {
33
+ message: string;
34
+ error: any;
35
+ };
36
+ headers?: undefined;
37
+ }>;
38
+ delete: (url: string, config?: any) => Promise<{
39
+ headers: any;
40
+ data: any;
41
+ status: any;
42
+ } | {
43
+ headers: any;
44
+ data: any;
45
+ status: any;
46
+ } | {
47
+ status: number;
48
+ data: {
49
+ message: string;
50
+ error: any;
51
+ };
52
+ headers?: undefined;
53
+ }>;
54
+ put: (url: string, data?: any, config?: any) => Promise<{
55
+ headers: any;
56
+ data: any;
57
+ status: any;
58
+ } | {
59
+ headers: any;
60
+ data: any;
61
+ status: any;
62
+ } | {
63
+ status: number;
64
+ data: {
65
+ message: string;
66
+ error: any;
67
+ };
68
+ headers?: undefined;
69
+ }>;
70
+ patch: (url: string, data?: any, config?: any) => Promise<{
71
+ headers: any;
72
+ data: any;
73
+ status: any;
74
+ } | {
75
+ headers: any;
76
+ data: any;
77
+ status: any;
78
+ } | {
79
+ status: number;
80
+ data: {
81
+ message: string;
82
+ error: any;
83
+ };
84
+ headers?: undefined;
85
+ }>;
86
+ setBaseUrl: (url: string) => boolean;
87
+ }
88
+ export declare const axiosHttpService: (config?: CreateAxiosDefaults) => GenericHttpClient;