@kwirthmagnify/kwirth-common-back 0.5.44 → 0.5.46

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.
@@ -6,8 +6,9 @@ export interface IClusterEndpoint {
6
6
  id?: string;
7
7
  }
8
8
  export declare enum ERemoteConnState {
9
- CONNECTED = "connected",
10
- RECONNECTING = "reconnecting",
9
+ CONNECTED = "connected",// socket abierto Y instance válido capturado → operativo
10
+ HANDSHAKING = "handshaking",// socket abierto pero SIN instance aún (canal remoto arrancando / re-handshake)
11
+ RECONNECTING = "reconnecting",// sin socket, reintentando con backoff
11
12
  DOWN = "down"
12
13
  }
13
14
  export interface IRemoteChannelHandlers {
@@ -2,9 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ERemoteConnState = void 0;
4
4
  // Estado de una conexión remota gestionada por el core. Nunca string literals.
5
+ // Progresión al establecerse: DOWN → RECONNECTING (buscando socket) → HANDSHAKING (socket abierto, pidiendo
6
+ // instance al canal remoto) → CONNECTED (socket + instance = operativo). CONNECTED es el ÚNICO estado en el
7
+ // que un comando llega de verdad al canal remoto.
5
8
  var ERemoteConnState;
6
9
  (function (ERemoteConnState) {
7
10
  ERemoteConnState["CONNECTED"] = "connected";
11
+ ERemoteConnState["HANDSHAKING"] = "handshaking";
8
12
  ERemoteConnState["RECONNECTING"] = "reconnecting";
9
- ERemoteConnState["DOWN"] = "down";
13
+ ERemoteConnState["DOWN"] = "down"; // conexión cerrada / nunca establecida (terminal o sin credenciales)
10
14
  })(ERemoteConnState || (exports.ERemoteConnState = ERemoteConnState = {}));
@@ -0,0 +1,53 @@
1
+ import { IProviderSubscriber, IProviderSubscriptionHelp } from './IProvider';
2
+ /**
3
+ * Lo que el gestor de extensiones y provider-debug enseñan de un pluvider. El consumidor de un
4
+ * pluvider es OTRO EQUIPO, asi que hace falta algo que mostrar sin leerse el codigo.
5
+ */
6
+ export interface IPluviderData {
7
+ /** Que produce, en una linea. */
8
+ description: string;
9
+ /** Nombre del tipo del evento que emite (p.ej. 'IAgoraAlert'), para orientar al consumidor. */
10
+ eventTypeName?: string;
11
+ }
12
+ /**
13
+ * Un plugin que ADEMAS produce: expone in-process la informacion que ya genera, para que otros
14
+ * plugins se suscriban a ella. No es una segunda extension empaquetada dentro del plugin: lo
15
+ * implementa la MISMA clase del canal, sobre la misma instancia y los mismos datos.
16
+ *
17
+ * NO extiende IProvider a proposito. Un pluvider no pasa por la maquinaria de providers —no se mete
18
+ * en 'clusterInfo.providers', que es lo que recorren los bucles que montan routers, escriben
19
+ * 'apiKeyApi' o marcan 'started'—, asi que no tiene 'id', 'router', 'routerAlias', 'providesRouter',
20
+ * 'requiresApiKeyApi' ni 'apiKeyApi'.
21
+ *
22
+ * El id tampoco lo escribe el autor: lo compone el core como '<PLUVIDER_ID_PREFIX><channelId>', para
23
+ * que nadie se equivoque con el prefijo.
24
+ *
25
+ * 'TSub' es la forma del filtro de suscripcion. Como en los providers, cada pluvider decide si
26
+ * filtra y con que forma; si no filtra, se deja el generico sin especificar.
27
+ *
28
+ * Ejemplo:
29
+ *
30
+ * class AgoraChannel implements IChannel, IPluvider<IAgoraAlertSubscription> { … }
31
+ */
32
+ export interface IPluvider<TSub = unknown> {
33
+ /**
34
+ * Metadatos del pluvider. Su PRESENCIA es la declaracion: un canal que implementa este metodo se
35
+ * ofrece como productor, y el core lo registra. No hay flags ni deteccion por duck-typing.
36
+ */
37
+ getPluviderData(): IPluviderData;
38
+ addSubscriber(c: IProviderSubscriber, data: TSub): Promise<void>;
39
+ removeSubscriber(c: IProviderSubscriber): Promise<void>;
40
+ updateSubscription?(c: IProviderSubscriber, data: TSub): Promise<void>;
41
+ /**
42
+ * Arranca la produccion. El core lo llama en la fase de pluviders, es decir ANTES de
43
+ * 'startChannel()': el trabajo de fondo vive en este lado y el front se engancha despues.
44
+ */
45
+ startProvider(): Promise<void>;
46
+ stopProvider(): Promise<void>;
47
+ /**
48
+ * Obligatorio, a diferencia del homonimo de IProvider, que es opcional. Un provider suele
49
+ * consumirlo quien lo escribio; un pluvider lo consume gente de fuera, y sin esto no tiene como
50
+ * saber que escribir en la suscripcion ni que va a recibir.
51
+ */
52
+ getSubscriptionHelp(): IProviderSubscriptionHelp;
53
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from './IFederation';
3
3
  export * from './ILogin';
4
4
  export * from './IChannel';
5
5
  export * from './IProvider';
6
+ export * from './IPluvider';
6
7
  export * from './ISender';
7
8
  export * from './IWebhook';
8
9
  export * from './IIdpConnector';
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ __exportStar(require("./IFederation"), exports);
19
19
  __exportStar(require("./ILogin"), exports);
20
20
  __exportStar(require("./IChannel"), exports);
21
21
  __exportStar(require("./IProvider"), exports);
22
+ __exportStar(require("./IPluvider"), exports);
22
23
  __exportStar(require("./ISender"), exports);
23
24
  __exportStar(require("./IWebhook"), exports);
24
25
  __exportStar(require("./IIdpConnector"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kwirthmagnify/kwirth-common-back",
3
- "version": "0.5.44",
3
+ "version": "0.5.46",
4
4
  "description": "Backend interfaces for building Kwirth provider and channel plugins",
5
5
  "scripts": {
6
6
  "build": "tsc",