@esfaenza/extensions 11.2.22 → 11.2.23

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.
@@ -0,0 +1,5 @@
1
+ /** Enumeratore dei tipi di messaggio che i moduli esterni possono contattare sull'applicazione principale */
2
+ export declare enum InboundMessageTypes {
3
+ /** Evento di navigazione */
4
+ Navigation = 0
5
+ }
@@ -0,0 +1,12 @@
1
+ /** Classe che rappresenta un generico messaggio scambiato fra applicazione e moduli */
2
+ export declare class InterComMessage {
3
+ type: any;
4
+ message: any;
5
+ /**
6
+ * Costruttore
7
+ *
8
+ * @param type Tipo di messaggio
9
+ * @param message Contenuto del messaggio
10
+ */
11
+ constructor(type: any, message: any);
12
+ }
@@ -8,6 +8,7 @@ import { ExtensionsModuleConfig } from '../models/ExtensionsModuleConfig';
8
8
  * HashingService,
9
9
  * MessageService,
10
10
  * UtilityService
11
+ * InterComService
11
12
  *
12
13
  * con eventuali provider che utilizzano
13
14
  */
@@ -0,0 +1,25 @@
1
+ import { Subject } from "rxjs";
2
+ import { InterComMessage } from "../models/InterComMessage";
3
+ /** Service che si occupa di gestire la comunicazione fra i moduli interni ed esterni dell'applicativo */
4
+ export declare class InterComService {
5
+ /** Messaggi in uscita, uno per ogni recipient registratosi dall'entrypoint **register** */
6
+ outbounds: {
7
+ [id: string]: Subject<InterComMessage>;
8
+ };
9
+ /** Messaggi in entrata, unico per applicazione principale */
10
+ inbounds: Subject<InterComMessage>;
11
+ /**
12
+ * Metodo che permette di inviare un messaggio dall'applicazione ad un modulo esterno o viceversa
13
+ *
14
+ * @param {any} messageType Tipologia di messaggio. Sarà di tipo **InboundMessageTypes** per tutti i messaggi inbound, dinamico per tutti i mesaggi outbound (il tipo dipenderà dagli enum dei messaggi dei moduli esterni)
15
+ * @param {any} message Messaggio da inviare che può essere un dto in casi complessi ma dovrà essere gestito a dovere lato implementativo
16
+ * @param {string} recipient Destinatario del messaggio. Per i messaggi inbound dev'essere lasciato vuoto, per i messaggi outbound sarà valorizzato alla chiave del modulo a cui si vuole inviare il messaggio
17
+ */
18
+ send(messageType: any, message: any, recipient?: string): void;
19
+ /**
20
+ * Permette di registrare un modulo esterno alla lista dei moduli in listening sulla coda di messaggi
21
+ *
22
+ * @param {string} key Chiave del modulo da registrare. Tutti i messaggi inbound saranno inviati dall'applicazione principale su questa chiave
23
+ */
24
+ register(key: string): void;
25
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/extensions",
3
- "version": "11.2.22",
3
+ "version": "11.2.23",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },
package/public-api.d.ts CHANGED
@@ -10,3 +10,7 @@ export * from './lib/tokens';
10
10
  export * from './lib/models/CallResult';
11
11
  export * from './lib/models/CsvHeaders';
12
12
  export * from './lib/models/GenericItem';
13
+ /** Intercom */
14
+ export * from './lib/models/InboundMessageTypes';
15
+ export * from './lib/models/InterComMessage';
16
+ export * from './lib/services/extensions.intercom.service';