stentor-service-event 1.61.15 → 1.64.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.
@@ -1,10 +1,9 @@
1
1
  /*! Copyright (c) 2019, XAPPmedia */
2
2
  import { Event } from "stentor-models";
3
- import { Firehose } from "aws-sdk";
4
3
  import { AbstractEventStream } from "./AbstractEventStream";
5
4
  export declare class FirehoseStream extends AbstractEventStream {
6
5
  private readonly deliveryStreamName;
7
6
  private readonly firehose;
8
- constructor(deliveryStreamName: string, injectedFirehouse?: Firehose);
7
+ constructor(deliveryStreamName: string, injectedFirehose?: any);
9
8
  flushEvents(events: Event<any>[]): Promise<void>;
10
9
  }
@@ -1,17 +1,40 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.FirehoseStream = void 0;
4
- const aws_sdk_1 = require("aws-sdk");
5
13
  const AbstractEventStream_1 = require("./AbstractEventStream");
6
- const globalFirehouse = new aws_sdk_1.Firehose({ apiVersion: "2015-08-04" });
14
+ // Try AWS SDK v3 first, fallback to v2
15
+ let FirehoseClient;
16
+ let PutRecordBatchCommand;
17
+ let Firehose;
18
+ let globalFirehose;
19
+ try {
20
+ // AWS SDK v3
21
+ const firehoseV3 = require("@aws-sdk/client-firehose");
22
+ FirehoseClient = firehoseV3.FirehoseClient;
23
+ PutRecordBatchCommand = firehoseV3.PutRecordBatchCommand;
24
+ globalFirehose = new FirehoseClient({});
25
+ }
26
+ catch (_a) {
27
+ // AWS SDK v2 fallback
28
+ const awsSdk = require("aws-sdk");
29
+ Firehose = awsSdk.Firehose;
30
+ globalFirehose = new Firehose({ apiVersion: "2015-08-04" });
31
+ }
7
32
  function generateRecords(events = []) {
8
- return new Promise((resolve) => {
9
- resolve(events.map((event) => {
10
- return {
11
- Data: JSON.stringify(event)
12
- };
13
- }));
14
- });
33
+ return Promise.resolve(events.map((event) => {
34
+ return {
35
+ Data: JSON.stringify(event)
36
+ };
37
+ }));
15
38
  }
16
39
  function validateRecords(events = []) {
17
40
  return new Promise((resolve, reject) => {
@@ -34,26 +57,39 @@ function validateRecords(events = []) {
34
57
  });
35
58
  }
36
59
  class FirehoseStream extends AbstractEventStream_1.AbstractEventStream {
37
- constructor(deliveryStreamName, injectedFirehouse = globalFirehouse) {
60
+ constructor(deliveryStreamName, injectedFirehose = globalFirehose) {
38
61
  super();
39
62
  this.deliveryStreamName = deliveryStreamName;
40
- this.firehose = injectedFirehouse;
63
+ this.firehose = injectedFirehose;
41
64
  }
42
65
  flushEvents(events) {
43
- return validateRecords(events).then((events) => {
44
- return generateRecords(events);
45
- }).catch(e => {
46
- console.error("Error generating records.");
47
- console.error(e);
48
- throw e;
49
- }).then((Records) => {
50
- return this.firehose
51
- .putRecordBatch({
52
- DeliveryStreamName: this.deliveryStreamName,
53
- Records
54
- })
55
- .promise();
56
- }).then(() => { return; }); // It returns Void according to interface;
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ try {
68
+ const validatedEvents = yield validateRecords(events);
69
+ const records = yield generateRecords(validatedEvents);
70
+ if (PutRecordBatchCommand) {
71
+ // AWS SDK v3
72
+ const command = new PutRecordBatchCommand({
73
+ DeliveryStreamName: this.deliveryStreamName,
74
+ Records: records
75
+ });
76
+ yield this.firehose.send(command);
77
+ }
78
+ else {
79
+ // AWS SDK v2
80
+ yield this.firehose
81
+ .putRecordBatch({
82
+ DeliveryStreamName: this.deliveryStreamName,
83
+ Records: records
84
+ })
85
+ .promise();
86
+ }
87
+ }
88
+ catch (e) {
89
+ console.error("Error generating records.", e);
90
+ throw e;
91
+ }
92
+ });
57
93
  }
58
94
  }
59
95
  exports.FirehoseStream = FirehoseStream;
@@ -1 +1 @@
1
- {"version":3,"file":"FirehoseStream.js","sourceRoot":"","sources":["../src/FirehoseStream.ts"],"names":[],"mappings":";;;AAEA,qCAAmC;AACnC,+DAA4D;AAE5D,MAAM,eAAe,GAAG,IAAI,kBAAQ,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;AAEnE,SAAS,eAAe,CAAC,SAAuB,EAAE;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,OAAO,CACH,MAAM,CAAC,GAAG,CACN,CAAC,KAAK,EAAmB,EAAE;YACvB,OAAO;gBACH,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC9B,CAAC;QACN,CAAC,CACJ,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,SAAuB,EAAE;IAE9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,4CAA4C;YAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC,CAAC;YAC1F,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC,CAAC;YAC7F,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC,CAAC;YAC5F,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC,CAAA;YACxF,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AAEP,CAAC;AAED,MAAa,cAAe,SAAQ,yCAAmB;IAInD,YAAmB,kBAA0B,EAAE,oBAA8B,eAAe;QACxF,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC;IACtC,CAAC;IAEM,WAAW,CAAC,MAAoB;QACnC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3C,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAA0B,EAAE,EAAE;YACnC,OAAO,IAAI,CAAC,QAAQ;iBACf,cAAc,CAAC;gBACZ,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,OAAO;aACV,CAAC;iBACD,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;IAChF,CAAC;CACJ;AA1BD,wCA0BC"}
1
+ {"version":3,"file":"FirehoseStream.js","sourceRoot":"","sources":["../src/FirehoseStream.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  /*! Copyright (c) 2019, XAPPmedia */
2
2
  import { Event } from "stentor-models";
3
- import { Kinesis } from "aws-sdk";
4
3
  import { AbstractEventStream } from "./AbstractEventStream";
5
4
  export type PartitionKeyGenerator = () => string;
6
5
  export declare function staticPartitionGenerator(partition: string): PartitionKeyGenerator;
@@ -8,7 +7,7 @@ export declare function randomPartitionKeyGenerator(stringSize?: number): Partit
8
7
  export interface KinesisStreamProps {
9
8
  streamName: string;
10
9
  partitionKey?: string | PartitionKeyGenerator;
11
- kinesis?: Kinesis;
10
+ kinesis?: any;
12
11
  }
13
12
  export declare class KinesisStream extends AbstractEventStream {
14
13
  private readonly streamName;
@@ -1,12 +1,37 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.KinesisStream = void 0;
4
13
  exports.staticPartitionGenerator = staticPartitionGenerator;
5
14
  exports.randomPartitionKeyGenerator = randomPartitionKeyGenerator;
6
15
  const stentor_utils_1 = require("stentor-utils");
7
- const aws_sdk_1 = require("aws-sdk");
8
16
  const AbstractEventStream_1 = require("./AbstractEventStream");
9
- const globalKinesis = new aws_sdk_1.Kinesis({ apiVersion: "2013-12-02" });
17
+ // Try AWS SDK v3 first, fallback to v2
18
+ let KinesisClient;
19
+ let PutRecordsCommand;
20
+ let Kinesis;
21
+ let globalKinesis;
22
+ try {
23
+ // AWS SDK v3
24
+ const kinesisV3 = require("@aws-sdk/client-kinesis");
25
+ KinesisClient = kinesisV3.KinesisClient;
26
+ PutRecordsCommand = kinesisV3.PutRecordsCommand;
27
+ globalKinesis = new KinesisClient({});
28
+ }
29
+ catch (_a) {
30
+ // AWS SDK v2 fallback
31
+ const awsSdk = require("aws-sdk");
32
+ Kinesis = awsSdk.Kinesis;
33
+ globalKinesis = new Kinesis({ apiVersion: "2013-12-02" });
34
+ }
10
35
  function staticPartitionGenerator(partition) {
11
36
  return () => partition;
12
37
  }
@@ -37,16 +62,27 @@ class KinesisStream extends AbstractEventStream_1.AbstractEventStream {
37
62
  }
38
63
  }
39
64
  flushEvents(events) {
40
- console.time("Kinesis Flush");
41
- const StreamName = this.streamName;
42
- return Promise.resolve(events)
43
- .then(events => generateRecords(events, this.partitionGenerator))
44
- .then(Records => this.kinesis.putRecords({ StreamName, Records }).promise())
45
- .catch(e => {
46
- console.error("Error generating kinesis records.", e);
47
- throw e;
48
- })
49
- .then(() => console.timeEnd("Kinesis Flush"));
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ console.time("Kinesis Flush");
67
+ const StreamName = this.streamName;
68
+ try {
69
+ const records = generateRecords(events, this.partitionGenerator);
70
+ if (PutRecordsCommand) {
71
+ // AWS SDK v3
72
+ const command = new PutRecordsCommand({ StreamName, Records: records });
73
+ yield this.kinesis.send(command);
74
+ }
75
+ else {
76
+ // AWS SDK v2
77
+ yield this.kinesis.putRecords({ StreamName, Records: records }).promise();
78
+ }
79
+ console.timeEnd("Kinesis Flush");
80
+ }
81
+ catch (e) {
82
+ console.error("Error generating kinesis records.", e);
83
+ throw e;
84
+ }
85
+ });
50
86
  }
51
87
  }
52
88
  exports.KinesisStream = KinesisStream;
@@ -1 +1 @@
1
- {"version":3,"file":"KinesisStream.js","sourceRoot":"","sources":["../src/KinesisStream.ts"],"names":[],"mappings":";;;AAWA,4DAEC;AAED,kEAEC;AAdD,iDAA6C;AAC7C,qCAAkC;AAClC,+DAA4D;AAE5D,MAAM,aAAa,GAAG,IAAI,iBAAO,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;AAIhE,SAAgB,wBAAwB,CAAC,SAAiB;IACtD,OAAO,GAAW,EAAE,CAAC,SAAS,CAAC;AACnC,CAAC;AAED,SAAgB,2BAA2B,CAAC,UAAU,GAAG,CAAC;IACtD,OAAO,GAAW,EAAE,CAAC,IAAA,4BAAY,EAAC,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,eAAe,CACpB,SAAuB,EAAE,EACzB,qBAA4C,2BAA2B,EAAE;IAEzE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC3B,YAAY,EAAE,kBAAkB,EAAE;KACrC,CAAC,CAAC,CAAC;AACR,CAAC;AAQD,MAAa,aAAc,SAAQ,yCAAmB;IAKlD,YAAmB,KAAyB;QACxC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC;QAC9C,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACrB,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACzC,IAAI,CAAC,kBAAkB,GAAG,wBAAwB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAAC;YACjD,CAAC;QACL,CAAC;IACL,CAAC;IAEM,WAAW,CAAC,MAAoB;QACnC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;aACzB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAChE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;aAC3E,KAAK,CAAC,CAAC,CAAC,EAAE;YACP,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;YACtD,MAAM,CAAC,CAAC;QACZ,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IACtD,CAAC;CACJ;AAjCD,sCAiCC"}
1
+ {"version":3,"file":"KinesisStream.js","sourceRoot":"","sources":["../src/KinesisStream.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  /*! Copyright (c) 2019, XAPPmedia */
2
2
  import { Event } from "stentor-models";
3
- import { SNS } from "aws-sdk";
4
3
  import { AbstractEventStream } from "./AbstractEventStream";
5
4
  export declare class SNSStream extends AbstractEventStream {
6
5
  private readonly topicArn;
7
6
  private readonly sns;
8
- constructor(topicArn: string, sns?: SNS);
7
+ constructor(topicArn: string, sns?: any);
9
8
  flushEvents(events: Event<any>[]): Promise<void>;
10
9
  }
package/lib/SNSStream.js CHANGED
@@ -1,13 +1,38 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.SNSStream = void 0;
4
- const aws_sdk_1 = require("aws-sdk");
5
13
  const AbstractEventStream_1 = require("./AbstractEventStream");
6
- const globalSNS = new aws_sdk_1.SNS({ apiVersion: "2010-03-31", region: "us-east-1" });
14
+ // Try AWS SDK v3 first, fallback to v2
15
+ let SNSClient;
16
+ let PublishCommand;
17
+ let SNS;
18
+ let globalSNS;
19
+ // Default region can be overridden by AWS_DEFAULT_REGION or AWS_REGION environment variables
20
+ const defaultRegion = process.env.AWS_DEFAULT_REGION || process.env.AWS_REGION || "us-east-1";
21
+ try {
22
+ // AWS SDK v3
23
+ const snsV3 = require("@aws-sdk/client-sns");
24
+ SNSClient = snsV3.SNSClient;
25
+ PublishCommand = snsV3.PublishCommand;
26
+ globalSNS = new SNSClient({ region: defaultRegion });
27
+ }
28
+ catch (_a) {
29
+ // AWS SDK v2 fallback
30
+ const awsSdk = require("aws-sdk");
31
+ SNS = awsSdk.SNS;
32
+ globalSNS = new SNS({ apiVersion: "2010-03-31", region: defaultRegion });
33
+ }
7
34
  function eventsToString(events) {
8
- return new Promise((resolve) => {
9
- resolve(JSON.stringify(events));
10
- });
35
+ return Promise.resolve(JSON.stringify(events));
11
36
  }
12
37
  class SNSStream extends AbstractEventStream_1.AbstractEventStream {
13
38
  constructor(topicArn, sns = globalSNS) {
@@ -16,17 +41,23 @@ class SNSStream extends AbstractEventStream_1.AbstractEventStream {
16
41
  this.sns = sns;
17
42
  }
18
43
  flushEvents(events) {
19
- return eventsToString(events)
20
- .catch(e => {
21
- console.error("Error converting events to a string.");
22
- console.error(e);
23
- throw e;
24
- })
25
- .then((Message) => {
26
- return this.sns.publish({ TopicArn: this.topicArn, Message }).promise();
27
- })
28
- .then(() => {
29
- return;
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ try {
46
+ const Message = yield eventsToString(events);
47
+ if (PublishCommand) {
48
+ // AWS SDK v3
49
+ const command = new PublishCommand({ TopicArn: this.topicArn, Message });
50
+ yield this.sns.send(command);
51
+ }
52
+ else {
53
+ // AWS SDK v2
54
+ yield this.sns.publish({ TopicArn: this.topicArn, Message }).promise();
55
+ }
56
+ }
57
+ catch (e) {
58
+ console.error("Error converting events to a string.", e);
59
+ throw e;
60
+ }
30
61
  });
31
62
  }
32
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SNSStream.js","sourceRoot":"","sources":["../src/SNSStream.ts"],"names":[],"mappings":";;;AAEA,qCAA8B;AAC9B,+DAA4D;AAE5D,MAAM,SAAS,GAAQ,IAAI,aAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AAElF,SAAS,cAAc,CAAC,MAAoB;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAa,SAAU,SAAQ,yCAAmB;IAI9C,YAAmB,QAAgB,EAAE,MAAW,SAAS;QACrD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAEM,WAAW,CAAC,MAAoB;QACnC,OAAO,cAAc,CAAC,MAAM,CAAC;aACxB,KAAK,CAAC,CAAC,CAAC,EAAE;YACP,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,CAAC;QACZ,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE;YACtB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5E,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACP,OAAO;QACX,CAAC,CAAC,CAAC;IACX,CAAC;CACJ;AAxBD,8BAwBC"}
1
+ {"version":3,"file":"SNSStream.js","sourceRoot":"","sources":["../src/SNSStream.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,+DAA4D;AAE5D,uCAAuC;AACvC,IAAI,SAAc,CAAC;AACnB,IAAI,cAAmB,CAAC;AACxB,IAAI,GAAQ,CAAC;AACb,IAAI,SAAc,CAAC;AAEnB,6FAA6F;AAC7F,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,CAAC;AAE9F,IAAI,CAAC;IACD,aAAa;IACb,MAAM,KAAK,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7C,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC5B,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IACtC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AACzD,CAAC;AAAC,WAAM,CAAC;IACL,sBAAsB;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACjB,SAAS,GAAG,IAAI,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,cAAc,CAAC,MAAoB;IACxC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAa,SAAU,SAAQ,yCAAmB;IAI9C,YAAmB,QAAgB,EAAE,MAAW,SAAS;QACrD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAEY,WAAW,CAAC,MAAoB;;YACzC,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;gBAE7C,IAAI,cAAc,EAAE,CAAC;oBACjB,aAAa;oBACb,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;oBACzE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACJ,aAAa;oBACb,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3E,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,CAAC;YACZ,CAAC;QACL,CAAC;KAAA;CACJ;AA3BD,8BA2BC"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "1.61.15",
7
+ "version": "1.64.0",
8
8
  "description": "Event service for 📣 stentor",
9
9
  "types": "lib/index",
10
10
  "main": "lib/index",
@@ -12,9 +12,12 @@
12
12
  "lib"
13
13
  ],
14
14
  "engines": {
15
- "node": "^12 || ^14 || ^16 || ^18 || ^20.0.0 || ^22.0.0"
15
+ "node": "^12 || ^14 || ^16 || ^18 || ^20 || ^22"
16
16
  },
17
17
  "devDependencies": {
18
+ "@aws-sdk/client-firehose": "3.888.0",
19
+ "@aws-sdk/client-kinesis": "3.888.0",
20
+ "@aws-sdk/client-sns": "3.888.0",
18
21
  "@types/chai": "5.2.2",
19
22
  "@types/mocha": "10.0.10",
20
23
  "@types/sinon": "17.0.4",
@@ -25,17 +28,20 @@
25
28
  "mocha": "11.7.2",
26
29
  "sinon": "20.0.0",
27
30
  "sinon-chai": "3.7.0",
28
- "stentor-models": "1.61.11",
31
+ "stentor-models": "1.64.0",
29
32
  "ts-node": "10.9.2",
30
33
  "typescript": "5.9.2"
31
34
  },
32
35
  "dependencies": {
33
36
  "stacktrace-parser": "0.1.11",
34
- "stentor-guards": "1.61.13",
35
- "stentor-logger": "1.61.15",
36
- "stentor-utils": "1.61.13"
37
+ "stentor-guards": "1.64.0",
38
+ "stentor-logger": "1.64.0",
39
+ "stentor-utils": "1.64.0"
37
40
  },
38
41
  "peerDependencies": {
42
+ "@aws-sdk/client-firehose": "3.x",
43
+ "@aws-sdk/client-kinesis": "3.x",
44
+ "@aws-sdk/client-sns": "3.x",
39
45
  "aws-sdk": "2.x",
40
46
  "stentor-models": "1.x"
41
47
  },
@@ -44,5 +50,5 @@
44
50
  "clean": "rm -rf ./lib/*",
45
51
  "test": "mocha --recursive -r ts-node/register \"./src/**/*.test.ts\""
46
52
  },
47
- "gitHead": "b06d5268c608241c562f07c8e24bd4c802d57d95"
53
+ "gitHead": "8e0990d935538de2ebbf77b7782db134b23f5844"
48
54
  }