New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@frontegg/client

Package Overview
Dependencies
Maintainers
1
Versions
184
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@frontegg/client - npm Package Compare versions

Comparing version 1.1.1 to 1.1.2

dist/src/events/types/EventStatuses.interface.d.ts

8

dist/src/events/EventsClient.d.ts
import { channelTypes, ITriggerOptions } from './types';
import { IEventStatuses, IEventStatusesResponse } from './types/EventStatuses.interface';
export declare type EventStatusCallback = (error: Error | undefined, status: IEventStatusesResponse | undefined) => any;
export declare class EventsClient {

@@ -9,3 +11,7 @@ private authenticator;

triggerEvent(eventKey: string, metadata: object, channels: channelTypes[] | channelTypes, tenantId: string): Promise<any>;
trigger(options: ITriggerOptions): Promise<void>;
trigger(options: ITriggerOptions, callback?: EventStatusCallback): Promise<{
eventId: string;
}>;
triggerAsync(options: ITriggerOptions): Promise<IEventStatuses>;
private pollEventStatus;
}
"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -42,2 +53,6 @@ return new (P || (P = Promise))(function (resolve, reject) {

var logger_1 = require("../helpers/logger");
var sleep_1 = require("../utils/sleep");
var POLLING_LIMIT = 20;
var POLLING_START_TIMEOUT = 3 * 1000;
var POLLING_INCREASE_PERCENTAGE = 1.2;
var EventsClient = /** @class */ (function () {

@@ -121,3 +136,3 @@ function EventsClient() {

};
EventsClient.prototype.trigger = function (options) {
EventsClient.prototype.trigger = function (options, callback) {
return __awaiter(this, void 0, void 0, function () {

@@ -150,3 +165,3 @@ var response, e_2;

case 1:
_a.trys.push([1, 4, , 5]);
_a.trys.push([1, 6, , 7]);
logger_1.default.info('going to trigger event');

@@ -169,8 +184,14 @@ return [4 /*yield*/, this.authenticator.validateAuthentication()];

logger_1.default.info('triggered event successfully');
return [2 /*return*/, response.data];
if (!callback) return [3 /*break*/, 5];
logger_1.default.info('found callback, will poll for event status');
return [4 /*yield*/, this.pollEventStatus(response.data.eventId, callback)];
case 4:
_a.sent();
_a.label = 5;
case 5: return [2 /*return*/, response.data];
case 6:
e_2 = _a.sent();
logger_1.default.error('failed to trigger event ', e_2);
throw e_2;
case 5: return [2 /*return*/];
case 7: return [2 /*return*/];
}

@@ -180,2 +201,90 @@ });

};
EventsClient.prototype.triggerAsync = function (options) {
return __awaiter(this, void 0, void 0, function () {
var _this = this;
return __generator(this, function (_a) {
return [2 /*return*/, new Promise(function (resolve) {
_this.trigger(options, function (error, status) {
if (error) {
throw error;
}
resolve(status);
});
})];
});
});
};
EventsClient.prototype.pollEventStatus = function (eventId, callback) {
return __awaiter(this, void 0, void 0, function () {
var intervalCounter, time, getStatus, response, isThereStatusPending, allSucceeded, callbackResponse, callbackResponse, e_3;
var _this = this;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
intervalCounter = 0;
time = POLLING_START_TIMEOUT;
getStatus = function () { return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.authenticator.validateAuthentication()];
case 1:
_a.sent();
return [2 /*return*/, axios_1.default.get(config_1.config.urls.eventService + "/resources/triggers/v2/statuses/" + eventId, {
headers: {
'x-access-token': this.authenticator.accessToken,
},
})];
}
});
}); };
_a.label = 1;
case 1:
if (!(intervalCounter <= 20)) return [3 /*break*/, 7];
return [4 /*yield*/, sleep_1.sleep(time)];
case 2:
_a.sent();
time = time * POLLING_INCREASE_PERCENTAGE;
intervalCounter++;
_a.label = 3;
case 3:
_a.trys.push([3, 5, , 6]);
return [4 /*yield*/, getStatus()];
case 4:
response = _a.sent();
isThereStatusPending = Object.values(response.data.channels).some(function (_a) {
var status = _a.status;
return status === 'PENDING';
});
if (isThereStatusPending) {
logger_1.default.info('there are still channels with pending status');
intervalCounter++;
}
else {
logger_1.default.info('all channels statuses are not pending, will call callback');
allSucceeded = Object.values(response.data.channels).every(function (_a) {
var status = _a.status;
return status === 'SUCCEEDED';
});
callbackResponse = __assign({}, response.data, { generalStatus: allSucceeded ? 'SUCCEEDED' : 'FAILED' });
callback(undefined, callbackResponse);
return [3 /*break*/, 7];
}
if (intervalCounter >= POLLING_LIMIT) {
logger_1.default.info('there are still channels with pending status, but we passed the limit of the polling');
callbackResponse = __assign({}, response.data, { generalStatus: 'FAILED' });
callback(undefined, callbackResponse);
return [3 /*break*/, 7];
}
return [3 /*break*/, 6];
case 5:
e_3 = _a.sent();
logger_1.default.error('could not get event status', e_3);
callback(e_3, undefined);
return [3 /*break*/, 7];
case 6: return [3 /*break*/, 1];
case 7: return [2 /*return*/];
}
});
});
};
return EventsClient;

@@ -182,0 +291,0 @@ }());

2

package.json
{
"name": "@frontegg/client",
"version": "1.1.1",
"version": "1.1.2",
"description": "Frontegg Javascript Library for backend",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc