@kwirthmagnify/kwirth-common-back 0.5.48 → 0.5.50

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.
@@ -50,6 +50,21 @@ export interface IProviderSubscriptionHelp {
50
50
  * IConfigFieldDef, el mismo que usan senders, webhooks, idps y logins.
51
51
  */
52
52
  export type IProviderFieldDef = IConfigFieldDef;
53
+ /**
54
+ * Lo que un provider sabe contar de si mismo.
55
+ *
56
+ * Existe para que kwirth pueda decir si algo esta siendo consumido o esta emitiendo para nadie, que
57
+ * es de las pocas preguntas que NADIE puede responder desde fuera: cada provider guarda sus
58
+ * suscriptores en su propia estructura y hasta ahora no habia forma de preguntarselo.
59
+ *
60
+ * ⚠️ Solo el NUMERO, no quienes son: 'IProviderSubscriber' es una interfaz de un solo metodo y no
61
+ * lleva identidad, asi que un provider no tiene con que identificarlos. Dibujar el grafo de quien
62
+ * consume a quien pedira ampliar ese contrato, y es una decision aparte.
63
+ */
64
+ export interface IProviderStats {
65
+ /** Cuantos suscriptores tiene AHORA. Cero significa que esta emitiendo para nadie. */
66
+ subscribers: number;
67
+ }
53
68
  /**
54
69
  * Interface that all provider plugins must implement.
55
70
  * Use 'any' for clusterInfo to avoid pulling in kubernetes/docker dependencies.
@@ -89,10 +104,32 @@ export interface IProvider extends IExtension {
89
104
  * mismo array desde el back.js, que el core lee al instalar sin instanciar nada.
90
105
  */
91
106
  getConfigSchema?(): IProviderFieldDef[];
107
+ /**
108
+ * Que sabe el provider de si mismo ahora mismo. OPCIONAL, como el resto de este bloque: quien no
109
+ * lo implemente se muestra como "no informa", que es distinto de cero — un cero seria una
110
+ * afirmacion que nadie puede sostener.
111
+ *
112
+ * ⚠️ Tiene que ser BARATO: devuelve lo que ya tienes, no lo calcules. Se llama cuando alguien
113
+ * abre una pantalla de estado, pero un provider no sabe con que frecuencia, y recorrer
114
+ * estructuras aqui convierte una consulta en trabajo para todos.
115
+ */
116
+ getStats?(): IProviderStats;
92
117
  startProvider(): Promise<void>;
93
118
  stopProvider(): Promise<void>;
94
119
  router: any;
95
120
  routerAlias: string | undefined;
121
+ /**
122
+ * El provider quiere el cuerpo de las peticiones de su router publico EN CRUDO (Buffer), sin que
123
+ * el bodyParser global del core lo toque.
124
+ *
125
+ * Hace falta para todo lo que no sea JSON plano: ndjson, msgpack, protobuf, o verificar una firma
126
+ * sobre los bytes exactos que llegaron. Sin esto, una extension que INGIERE recibe el cuerpo ya
127
+ * parseado —y con el limite del parser global—, que es justo lo que el core resolvio para los
128
+ * webhooks montandolos por delante.
129
+ *
130
+ * Por defecto es false: los providers que hoy leen 'req.body' como objeto siguen igual.
131
+ */
132
+ readonly rawBody?: boolean;
96
133
  /**
97
134
  * Router de gestion del provider (su propia configuracion). El core lo monta SIEMPRE detras de
98
135
  * validacion de accessKey, igual que hace con los endpoints de un canal, en la ruta
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kwirthmagnify/kwirth-common-back",
3
- "version": "0.5.48",
3
+ "version": "0.5.50",
4
4
  "description": "Backend interfaces for building Kwirth provider and channel plugins",
5
5
  "scripts": {
6
6
  "build": "tsc",