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

@notifi-network/notifi-node

Package Overview
Dependencies
Maintainers
0
Versions
460
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@notifi-network/notifi-node - npm Package Compare versions

Comparing version

to
3.1.0

0

dist/client/createNotifiService.d.ts

@@ -0,0 +0,0 @@ import { NotifiDataplaneClient } from '@notifi-network/notifi-dataplane';

@@ -0,0 +0,0 @@ "use strict";

@@ -0,0 +0,0 @@ export * from '../utils';

@@ -0,0 +0,0 @@ "use strict";

11

dist/client/NotifiNodeClient.d.ts

@@ -24,11 +24,6 @@ import { FusionMessage, NotifiDataplaneClient, PublishFusionMessageResponse } from '@notifi-network/notifi-dataplane';

/**
* @important To remove event listener, check the README.md of `notifi-node` package for more details. https://github.com/notifi-network/notifi-sdk-ts/tree/main/packages/notifi-node
* @returns {string} - The id of the event listener (used to remove the event listener)
*/
addEventListener<T extends keyof NotifiEmitterEvents>(event: T, callBack: (...args: NotifiEmitterEvents[T]) => void): import("relay-runtime").Subscription | null;
/**
* @important To remove event listener, check the README.md of `notifi-node` or `notifi-frontend-client` package for more details.
* - `notifi-node`: https://github.com/notifi-network/notifi-sdk-ts/tree/main/packages/notifi-node
* - `notifi-frontend-client`: https://github.com/notifi-network/notifi-sdk-ts/tree/main/packages/notifi-frontend-client
*/
removeEventListener<T extends keyof NotifiEmitterEvents>(event: T, callBack: (...args: NotifiEmitterEvents[T]) => void): void;
addEventListener<T extends keyof NotifiEmitterEvents>(event: T, callBack: (...args: NotifiEmitterEvents[T]) => void, onError?: (error: unknown) => void, onComplete?: () => void): string;
removeEventListener<T extends keyof NotifiEmitterEvents>(event: T, id: string): void;
/** NOTE: throw if client is not initialized */

@@ -35,0 +30,0 @@ private isClientValid;

@@ -65,17 +65,12 @@ "use strict";

/**
* @important To remove event listener, check the README.md of `notifi-node` package for more details. https://github.com/notifi-network/notifi-sdk-ts/tree/main/packages/notifi-node
* @returns {string} - The id of the event listener (used to remove the event listener)
*/
addEventListener(event, callBack) {
addEventListener(event, callBack, onError, onComplete) {
if (this.clientState.status !== 'initialized')
throw new Error('notifi-node - addEventListener: Client not initialized, call initialize() first');
return this.service.addEventListener(event, callBack);
return this.service.addEventListener(event, callBack, onError, onComplete);
}
/**
* @important To remove event listener, check the README.md of `notifi-node` or `notifi-frontend-client` package for more details.
* - `notifi-node`: https://github.com/notifi-network/notifi-sdk-ts/tree/main/packages/notifi-node
* - `notifi-frontend-client`: https://github.com/notifi-network/notifi-sdk-ts/tree/main/packages/notifi-frontend-client
*/
removeEventListener(event, callBack) {
removeEventListener(event, id) {
this.isClientValid('removeEventListener');
return this.service.removeEventListener(event, callBack);
return this.service.removeEventListener(event, id);
}

@@ -90,2 +85,2 @@ /** NOTE: throw if client is not initialized */

exports.NotifiNodeClient = NotifiNodeClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpTm9kZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9jbGllbnQvTm90aWZpTm9kZUNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF3QkEsTUFBYSxnQkFBZ0I7SUFFM0IsWUFDVSxPQUFzQixFQUN0QixZQUFvQztRQURwQyxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQUh0QyxnQkFBVyxHQUEyQixFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsQ0FBQztJQUl2RSxDQUFDO0lBRUosVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDbEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUNULEtBQXFEO1FBRXJELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELG9CQUFvQixDQUNs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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpTm9kZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9jbGllbnQvTm90aWZpTm9kZUNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF3QkEsTUFBYSxnQkFBZ0I7SUFFM0IsWUFDVSxPQUFzQixFQUN0QixZQUFvQztRQURwQyxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQUh0QyxnQkFBVyxHQUEyQixFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsQ0FBQztJQUl2RSxDQUFDO0lBRUosVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDbEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUNULEtBQXFEO1FBRXJELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELG9CQUFvQixDQUNs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
export * from './utils';
export * from './client';
//# sourceMappingURL=index.d.ts.map

@@ -0,0 +0,0 @@ "use strict";

export * from './notifiConfigs';
//# sourceMappingURL=index.d.ts.map

@@ -0,0 +0,0 @@ "use strict";

@@ -0,0 +0,0 @@ export type NotifiEnvironment = 'Production' | 'Staging' | 'Development' | 'Local';

@@ -0,0 +0,0 @@ "use strict";

{
"name": "@notifi-network/notifi-node",
"version": "3.0.2-alpha.11+1cedd3be",
"version": "3.1.0",
"description": "Server-initiated operations with Notifi",

@@ -34,4 +34,4 @@ "homepage": "https://github.com/notifi-network/notifi-sdk-ts#readme",

"dependencies": {
"@notifi-network/notifi-dataplane": "^3.0.2-alpha.11+1cedd3be",
"@notifi-network/notifi-graphql": "^3.0.2-alpha.11+1cedd3be",
"@notifi-network/notifi-dataplane": "^3.1.0",
"@notifi-network/notifi-graphql": "^3.1.0",
"graphql": "^16.6.0",

@@ -45,3 +45,3 @@ "graphql-request": "^6.0.0",

},
"gitHead": "1cedd3be1f08ba8f9e318b65ce9d8b6a36f02107"
"gitHead": "23052e48ac17f22c51635ea827d6f1a107352ec5"
}

@@ -153,92 +153,25 @@ # Notifi Node (@notifi-network/notifi-node)

Notifi Node SDK provides a way to listen to the events using the `addEventListener` method. There are three main categories of events:
Using `addEventListener` method allows to monitor the `tenantActiveAlertChanged` event.
- [GraphQL subscription events](#1-graphql-subscription-events)
- [WebSocket status events](#2-websocket-status-events)
- [GraphQL subscription status](#3-graphql-subscription-status)
**Listening to event**
#### 1. GraphQL subscription events
Notifi provides several GraphQL subscription events by which we can easily tracking the entity changes. When listening to this category of events, it returns a `Subscription` object which is used to stop the Graphql subscription.
- `tenantActiveAlertChanged`: When the active alert is changed (created or deleted).
To stop listening to the events, we need to do the following:
1. Call the `subscription.unsubscribe` method. This will stop the Graphql subscription.
2. Call the `removeEventListener` method with the event name and the callback function. This will remove the event listener.
**Example:**
```ts
const eventHandler = (event) => {
console.log('Event received:', event);
};
// Listen to the tenant entity updated event
const subscription = client.addEventListener(
const id = client.addEventListener(
'tenantActiveAlertChanged',
eventHandler,
errorHandler,
);
// Stop the subscription
subscription.unsubscribe();
client.removeEventListener('tenantActiveAlertChanged', eventHandler);
```
#### 2. WebSocket status events :
> NOTE: This events are particularly for some advanced use cases especially when you want to interact with the WebSocket connection.
> Example, you can utilize the WebSocket client object from `wsConnected` handler to dispose the WebSocket connection.
Since websocket connection is automatically opened when the GraphQL subscription is started, we might listen to the WebSocket status events to understand the status of the WebSocket connection under some circumstances.
- `wsConnected`: When the WebSocket connection is established.
- `wsConnecting`: When the WebSocket connection is being established.
- `wsClosed`: When the WebSocket connection is closed.
- `wsError`: When there is an error in the WebSocket connection.
To stop listening to the WebSocket status events, simply call the `removeEventListener` method with the event name and the callback function.
**Example:**
```ts
const eventHandler = (event) => {
console.log('Event received:', event);
console.info('Event received:', event);
};
// Listen to the WebSocket status events (The return type of addEventListener is never)
client.addEventListener('wsConnected', eventHandler);
client.addEventListener('wsConnecting', eventHandler);
client.addEventListener('wsClosed', eventHandler);
client.addEventListener('wsError', eventHandler);
// Stop listening to the WebSocket status events
client.removeEventListener('wsConnected', eventHandler);
client.removeEventListener('wsConnecting', eventHandler);
client.removeEventListener('wsClosed', eventHandler);
client.removeEventListener('wsError', eventHandler);
const errorHandler = (error: Error) => {
console.error('Error occurred', error);
};
```
#### 3. GraphQL subscription status:
**Removing event listener**
We can also listen to the following events to understand the status of the GraphQL subscription:
- `gqlSubscriptionError`: When there is an error in the GraphQL subscription.
- `gqlComplete`: When the GraphQL subscription is completed.
To stop listening to the GraphQL subscription status events, simply call the `removeEventListener` method with the event name and the callback function.
```ts
const eventHandler = (event) => {
console.log('Event received:', event);
};
// Listen to the GraphQL subscription status events (The return type of addEventListener is never)
client.addEventListener('gqlSubscriptionError', eventHandler);
client.addEventListener('gqlComplete', eventHandler);
// Stop listening to the GraphQL subscription status events
client.removeEventListener('gqlSubscriptionError', eventHandler);
client.removeEventListener('gqlComplete', eventHandler);
client.removeEventListener('tenantActiveAlertChanged', id);
```

@@ -252,4 +185,4 @@

- Fill in the credentials in the `.env.example` file and rename it to `.env`.
- Run `npm run test` to execute all tests.
- Fill in the credentials in the `.env.example` file and rename it to `.env`.
- Run `npm run test` to execute all tests.

@@ -256,0 +189,0 @@ If your contribution includes a new feature, you may also want to create a dedicated test case within the` __tests__/NotifiNodeClient.test.ts` file to validate its functionality.

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet