@ikonintegration/ikapi 5.0.9 → 5.0.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/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikonintegration/ikapi",
3
- "version": "5.0.9",
3
+ "version": "5.0.11",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,6 +20,7 @@
20
20
  "license": "ISC",
21
21
  "dependencies": {
22
22
  "@aws-sdk/client-dynamodb": "^3.650.0",
23
+ "@aws-sdk/client-eventbridge": "^3.916.0",
23
24
  "@aws-sdk/client-kms": "^3.650.0",
24
25
  "@aws-sdk/client-secrets-manager": "^3.650.0",
25
26
  "@aws-sdk/client-ses": "^3.650.0",
@@ -35,7 +36,7 @@
35
36
  "cors": "^2.8.5",
36
37
  "cuid": "^3.0.0",
37
38
  "dotenv": "^16.4.1",
38
- "email-templates": "^12.0.1",
39
+ "email-templates": "^12.0.3",
39
40
  "express": "^4.21.1",
40
41
  "json-stringify-safe": "^5.0.1",
41
42
  "kysely": "^0.27.2",
@@ -1 +1 @@
1
- {"version":3,"file":"Mailer.js","sourceRoot":"","sources":["../../../src/Mailer/Mailer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mailer.js","sourceRoot":"","sources":["../../../src/Mailer/Mailer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { PutEventsCommandOutput } from '@aws-sdk/client-eventbridge';
1
2
  import { PublishCommandOutput } from '@aws-sdk/client-sns';
2
3
  /**
3
4
  * Represents the configuration options for a publisher.
@@ -36,4 +37,18 @@ export default class Publisher {
36
37
  * @returns None
37
38
  */
38
39
  private connect;
40
+ /**
41
+ * Publishes a message on EventBridge.
42
+ * @param {any} messageObject - The message object to be published.
43
+ * @param {string} eventBusName - The name of the event bus to publish to.
44
+ * @param {string} source - The source of the event.
45
+ * @param {string} detailType - The detail-type of the event.
46
+ * @returns {Promise<PutEventsCommandOutput>} - A promise that resolves to the response from the publish command.
47
+ */
48
+ publishOnEventBridge(messageObject: any, eventBusName: string, source: string, detailType: string): Promise<PutEventsCommandOutput | undefined>;
49
+ /**
50
+ * Establishes a connection to the EventBridge client if it does not already exist or if the region has changed.
51
+ * @returns None
52
+ */
53
+ private connectEventBridge;
39
54
  }
@@ -7,9 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import { EventBridgeClient, PutEventsCommand, } from '@aws-sdk/client-eventbridge';
10
11
  import { SNSClient, PublishCommand, } from '@aws-sdk/client-sns';
11
12
  import sha1 from 'sha1';
12
- //reusable client
13
+ //reusable client - sns
13
14
  /**
14
15
  * A variable that holds the connection to the SNS client for publishing messages.
15
16
  * @type {SNSClient | null}
@@ -22,6 +23,19 @@ let PUBLISHER_CONN = null;
22
23
  */
23
24
  // eslint-disable-next-line no-var
24
25
  let PUBLISHER_CONN_HASH = null;
26
+ //reusable client - event bridge
27
+ /**
28
+ * A variable that holds the connection to the EventBridge client for publishing events.
29
+ * @type {EventBridgeClient | null}
30
+ */
31
+ // eslint-disable-next-line no-var
32
+ let EVENT_BRIDGE_CONN = null;
33
+ /**
34
+ * The connection hash for the event bridge publisher. It is initially set to null.
35
+ * @type {string | null}
36
+ */
37
+ // eslint-disable-next-line no-var
38
+ let EVENT_BRIDGE_CONN_HASH = null;
25
39
  /**
26
40
  * Represents a publisher that can publish messages to an SNS topic.
27
41
  */
@@ -73,5 +87,50 @@ export default class Publisher {
73
87
  PUBLISHER_CONN_HASH = sha1(this.region).toString();
74
88
  }
75
89
  }
90
+ /**
91
+ * Publishes a message on EventBridge.
92
+ * @param {any} messageObject - The message object to be published.
93
+ * @param {string} eventBusName - The name of the event bus to publish to.
94
+ * @param {string} source - The source of the event.
95
+ * @param {string} detailType - The detail-type of the event.
96
+ * @returns {Promise<PutEventsCommandOutput>} - A promise that resolves to the response from the publish command.
97
+ */
98
+ publishOnEventBridge(messageObject, eventBusName, source, detailType) {
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ let resp = undefined;
101
+ try {
102
+ this.connectEventBridge();
103
+ const params = {
104
+ Entries: [
105
+ {
106
+ Source: source,
107
+ EventBusName: eventBusName,
108
+ DetailType: detailType,
109
+ Detail: JSON.stringify(messageObject),
110
+ },
111
+ ],
112
+ };
113
+ resp = yield EVENT_BRIDGE_CONN.send(new PutEventsCommand(params));
114
+ }
115
+ catch (e) {
116
+ console.error(`Error while publishing into event bus ${eventBusName} - ${source} - ${detailType} with error: ${e}`);
117
+ }
118
+ console.debug('Publisher event resp', resp);
119
+ return resp;
120
+ });
121
+ }
122
+ /**
123
+ * Establishes a connection to the EventBridge client if it does not already exist or if the region has changed.
124
+ * @returns None
125
+ */
126
+ connectEventBridge() {
127
+ if ((!EVENT_BRIDGE_CONN && !EVENT_BRIDGE_CONN_HASH) ||
128
+ EVENT_BRIDGE_CONN_HASH != sha1(this.region)) {
129
+ EVENT_BRIDGE_CONN = new EventBridgeClient({
130
+ region: this.region,
131
+ });
132
+ EVENT_BRIDGE_CONN_HASH = sha1(this.region).toString();
133
+ }
134
+ }
76
135
  }
77
136
  //# sourceMappingURL=Publisher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Publisher.js","sourceRoot":"","sources":["../../../src/Publisher/Publisher.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,SAAS,EACT,cAAc,GAGf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,iBAAiB;AACjB;;;GAGG;AACH,kCAAkC;AAClC,IAAI,cAAc,GAAqB,IAAI,CAAA;AAC3C;;;GAGG;AACH,kCAAkC;AAClC,IAAI,mBAAmB,GAAkB,IAAI,CAAA;AAW7C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAQ5B;;;;OAIG;IACH,YAAY,MAAwB;QAClC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YAC3B,iDAAiD;QACnD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACU,cAAc,CACzB,aAAkB,EAClB,KAAa,EACb,eAAwB;;YAExB,IAAI,IAAI,GAAqC,SAAS,CAAA;YACtD,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,aAAa;gBACb,MAAM,MAAM,mBACV,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EACtC,QAAQ,EAAE,KAAK,IACZ,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5C,CAAA;gBACD,IAAI,GAAG,MAAM,cAAe,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;YAC/D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,gBAAgB,CAAC,EAAE,CAAC,CAAA;YAC9E,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;YACrC,OAAO,IAAI,CAAA;QACb,CAAC;KAAA;IAED;;;OAGG;IACK,OAAO;QACb,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1F,cAAc,GAAG,IAAI,SAAS,CAAC;gBAC7B,UAAU,EAAE,YAAY;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAA;YACF,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;QACpD,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"Publisher.js","sourceRoot":"","sources":["../../../src/Publisher/Publisher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"root":["../index.ts","../src/globals.ts","../src/api/request.ts","../src/api/response.ts","../src/baseevent/dynamotransaction.ts","../src/baseevent/eventprocessor.ts","../src/baseevent/process.ts","../src/baseevent/steptransaction.ts","../src/baseevent/transaction.ts","../src/baseevent/launchable/containerexec.ts","../src/baseevent/launchable/index.ts","../src/baseevent/launchable/types.ts","../src/cache/redis.ts","../src/cache/types.ts","../src/config/configuration.ts","../src/config/environmentvar.ts","../src/crypto/crypto.ts","../src/database/database.ts","../src/database/databasemanager.ts","../src/database/databasetransaction.ts","../src/database/index.ts","../src/database/types.ts","../src/database/integrations/dynamo/dynamodatabase.ts","../src/database/integrations/kysely/kyselydatabase.ts","../src/database/integrations/kysely/kyselytransaction.ts","../src/database/integrations/pgsql/postgresdatabase.ts","../src/database/integrations/pgsql/postgrestransaction.ts","../src/logger/logger.ts","../src/mailer/mailer.ts","../src/publisher/publisher.ts","../src/server/routeresolver.ts","../src/server/router.ts","../src/server/lib/containerserver.ts","../src/server/lib/server.ts","../src/server/lib/container/generichandler.ts","../src/server/lib/container/generichandlerevent.ts","../src/server/lib/container/healthhandler.ts","../src/server/lib/container/proxy.ts","../src/server/lib/container/utils.ts","../src/util/asyncsingleton.ts","../src/util/utils.ts","../src/validation/validator.ts","../package-lock.json","../package.json"],"version":"5.6.2"}
1
+ {"root":["../index.ts","../src/globals.ts","../src/api/request.ts","../src/api/response.ts","../src/baseevent/dynamotransaction.ts","../src/baseevent/eventprocessor.ts","../src/baseevent/process.ts","../src/baseevent/steptransaction.ts","../src/baseevent/transaction.ts","../src/baseevent/launchable/containerexec.ts","../src/baseevent/launchable/index.ts","../src/baseevent/launchable/types.ts","../src/cache/redis.ts","../src/cache/types.ts","../src/config/configuration.ts","../src/config/environmentvar.ts","../src/crypto/crypto.ts","../src/database/database.ts","../src/database/databasemanager.ts","../src/database/databasetransaction.ts","../src/database/index.ts","../src/database/types.ts","../src/database/integrations/dynamo/dynamodatabase.ts","../src/database/integrations/kysely/kyselydatabase.ts","../src/database/integrations/kysely/kyselytransaction.ts","../src/database/integrations/pgsql/postgresdatabase.ts","../src/database/integrations/pgsql/postgrestransaction.ts","../src/logger/logger.ts","../src/mailer/mailer.ts","../src/publisher/publisher.ts","../src/server/routeresolver.ts","../src/server/router.ts","../src/server/lib/containerserver.ts","../src/server/lib/server.ts","../src/server/lib/container/generichandler.ts","../src/server/lib/container/generichandlerevent.ts","../src/server/lib/container/healthhandler.ts","../src/server/lib/container/proxy.ts","../src/server/lib/container/utils.ts","../src/util/asyncsingleton.ts","../src/util/utils.ts","../src/validation/validator.ts","../package-lock.json","../package.json"],"version":"5.9.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikonintegration/ikapi",
3
- "version": "5.0.9",
3
+ "version": "5.0.11",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,6 +20,7 @@
20
20
  "license": "ISC",
21
21
  "dependencies": {
22
22
  "@aws-sdk/client-dynamodb": "^3.650.0",
23
+ "@aws-sdk/client-eventbridge": "^3.916.0",
23
24
  "@aws-sdk/client-kms": "^3.650.0",
24
25
  "@aws-sdk/client-secrets-manager": "^3.650.0",
25
26
  "@aws-sdk/client-ses": "^3.650.0",
@@ -35,7 +36,7 @@
35
36
  "cors": "^2.8.5",
36
37
  "cuid": "^3.0.0",
37
38
  "dotenv": "^16.4.1",
38
- "email-templates": "^12.0.1",
39
+ "email-templates": "^12.0.3",
39
40
  "express": "^4.21.1",
40
41
  "json-stringify-safe": "^5.0.1",
41
42
  "kysely": "^0.27.2",
@@ -41,7 +41,7 @@ export default class Mailer {
41
41
  }),
42
42
  aws: SES,
43
43
  },
44
- })
44
+ } as SESTransport.Options)
45
45
  }
46
46
 
47
47
  /**
@@ -1,3 +1,9 @@
1
+ import {
2
+ EventBridgeClient,
3
+ PutEventsCommand,
4
+ PutEventsCommandInput,
5
+ PutEventsCommandOutput,
6
+ } from '@aws-sdk/client-eventbridge'
1
7
  import {
2
8
  SNSClient,
3
9
  PublishCommand,
@@ -5,7 +11,7 @@ import {
5
11
  PublishCommandInput,
6
12
  } from '@aws-sdk/client-sns'
7
13
  import sha1 from 'sha1'
8
- //reusable client
14
+ //reusable client - sns
9
15
  /**
10
16
  * A variable that holds the connection to the SNS client for publishing messages.
11
17
  * @type {SNSClient | null}
@@ -19,6 +25,20 @@ let PUBLISHER_CONN: SNSClient | null = null
19
25
  // eslint-disable-next-line no-var
20
26
  let PUBLISHER_CONN_HASH: string | null = null
21
27
 
28
+ //reusable client - event bridge
29
+ /**
30
+ * A variable that holds the connection to the EventBridge client for publishing events.
31
+ * @type {EventBridgeClient | null}
32
+ */
33
+ // eslint-disable-next-line no-var
34
+ let EVENT_BRIDGE_CONN: EventBridgeClient | null = null
35
+ /**
36
+ * The connection hash for the event bridge publisher. It is initially set to null.
37
+ * @type {string | null}
38
+ */
39
+ // eslint-disable-next-line no-var
40
+ let EVENT_BRIDGE_CONN_HASH: string | null = null
41
+
22
42
  /**
23
43
  * Represents the configuration options for a publisher.
24
44
  * @typedef {Object} PublisherConfig
@@ -93,4 +113,57 @@ export default class Publisher {
93
113
  PUBLISHER_CONN_HASH = sha1(this.region).toString()
94
114
  }
95
115
  }
116
+
117
+ /**
118
+ * Publishes a message on EventBridge.
119
+ * @param {any} messageObject - The message object to be published.
120
+ * @param {string} eventBusName - The name of the event bus to publish to.
121
+ * @param {string} source - The source of the event.
122
+ * @param {string} detailType - The detail-type of the event.
123
+ * @returns {Promise<PutEventsCommandOutput>} - A promise that resolves to the response from the publish command.
124
+ */
125
+ public async publishOnEventBridge(
126
+ messageObject: any,
127
+ eventBusName: string,
128
+ source: string,
129
+ detailType: string
130
+ ): Promise<PutEventsCommandOutput | undefined> {
131
+ let resp: undefined | PutEventsCommandOutput = undefined
132
+ try {
133
+ this.connectEventBridge()
134
+ const params: PutEventsCommandInput = {
135
+ Entries: [
136
+ {
137
+ Source: source,
138
+ EventBusName: eventBusName,
139
+ DetailType: detailType,
140
+ Detail: JSON.stringify(messageObject),
141
+ },
142
+ ],
143
+ }
144
+ resp = await EVENT_BRIDGE_CONN!.send(new PutEventsCommand(params))
145
+ } catch (e) {
146
+ console.error(
147
+ `Error while publishing into event bus ${eventBusName} - ${source} - ${detailType} with error: ${e}`
148
+ )
149
+ }
150
+ console.debug('Publisher event resp', resp)
151
+ return resp
152
+ }
153
+
154
+ /**
155
+ * Establishes a connection to the EventBridge client if it does not already exist or if the region has changed.
156
+ * @returns None
157
+ */
158
+ private connectEventBridge(): void {
159
+ if (
160
+ (!EVENT_BRIDGE_CONN && !EVENT_BRIDGE_CONN_HASH) ||
161
+ EVENT_BRIDGE_CONN_HASH != sha1(this.region)
162
+ ) {
163
+ EVENT_BRIDGE_CONN = new EventBridgeClient({
164
+ region: this.region,
165
+ })
166
+ EVENT_BRIDGE_CONN_HASH = sha1(this.region).toString()
167
+ }
168
+ }
96
169
  }