xonecode 0.35.0 → 0.37.0
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.
- package/THIRD_PARTY_NOTICES.md +30 -0
- package/apps/web/dist/assets/{EditorDeFichero-CGZ6uZPa.js → EditorDeFichero-DoFEF88O.js} +1 -1
- package/apps/web/dist/assets/index-DRNhZyYF.css +1 -0
- package/apps/web/dist/assets/index-WcouJw-n.js +506 -0
- package/apps/web/dist/assets/{php-DTPkbJvq.js → php-D_qKPndv.js} +1 -1
- package/apps/web/dist/assets/{ruby-D1wBOK7G.js → ruby-Dbo7pTDa.js} +1 -1
- package/apps/web/dist/index.html +2 -2
- package/dist/agent/config/settingsEnDisco.js +30 -0
- package/dist/agent/config/settingsEnDisco.js.map +1 -1
- package/dist/agent/motores/trueforge/sesionTrueforge.js +39 -1
- package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
- package/dist/agent/remoto/ngrokEnMaquina.js +103 -0
- package/dist/agent/remoto/ngrokEnMaquina.js.map +1 -0
- package/dist/agent/remoto/puenteWebSocket.js +175 -0
- package/dist/agent/remoto/puenteWebSocket.js.map +1 -0
- package/dist/agent/remoto/tunelNgrok.js +158 -0
- package/dist/agent/remoto/tunelNgrok.js.map +1 -0
- package/dist/core/idiomaDeLaRespuesta.js +38 -0
- package/dist/core/idiomaDeLaRespuesta.js.map +1 -0
- package/dist/core/panorama.js +93 -0
- package/dist/core/panorama.js.map +1 -0
- package/dist/core/ports.js +100 -0
- package/dist/core/ports.js.map +1 -1
- package/dist/core/remoto.js +117 -0
- package/dist/core/remoto.js.map +1 -0
- package/dist/core/settings.js +83 -0
- package/dist/core/settings.js.map +1 -1
- package/dist/core/tunel.js +101 -0
- package/dist/core/tunel.js.map +1 -0
- package/dist/web/servidor/arranque.js +587 -71
- package/dist/web/servidor/arranque.js.map +1 -1
- package/dist/web/servidor/consolaWeb.js +52 -2
- package/dist/web/servidor/consolaWeb.js.map +1 -1
- package/dist/web/servidor/puenteRemoto.js +272 -0
- package/dist/web/servidor/puenteRemoto.js.map +1 -0
- package/dist/web/servidor/transporte.js.map +1 -1
- package/dist/web/servidor/vestibulo.js +39 -1
- package/dist/web/servidor/vestibulo.js.map +1 -1
- package/node_modules/@xone/xonecode-remoto/dist/base64url.d.ts +2 -0
- package/node_modules/@xone/xonecode-remoto/dist/base64url.js +19 -0
- package/node_modules/@xone/xonecode-remoto/dist/cifrado.d.ts +25 -0
- package/node_modules/@xone/xonecode-remoto/dist/cifrado.js +75 -0
- package/node_modules/@xone/xonecode-remoto/dist/contenido.d.ts +121 -0
- package/node_modules/@xone/xonecode-remoto/dist/contenido.js +191 -0
- package/node_modules/@xone/xonecode-remoto/dist/index.d.ts +6 -0
- package/node_modules/@xone/xonecode-remoto/dist/index.js +6 -0
- package/node_modules/@xone/xonecode-remoto/dist/servidor/salas.d.ts +46 -0
- package/node_modules/@xone/xonecode-remoto/dist/servidor/salas.js +128 -0
- package/node_modules/@xone/xonecode-remoto/dist/servidor/servidor.d.ts +31 -0
- package/node_modules/@xone/xonecode-remoto/dist/servidor/servidor.js +198 -0
- package/node_modules/@xone/xonecode-remoto/dist/sobre.d.ts +53 -0
- package/node_modules/@xone/xonecode-remoto/dist/sobre.js +69 -0
- package/node_modules/@xone/xonecode-remoto/dist/url.d.ts +12 -0
- package/node_modules/@xone/xonecode-remoto/dist/url.js +35 -0
- package/node_modules/@xone/xonecode-remoto/dist/version.d.ts +2 -0
- package/node_modules/@xone/xonecode-remoto/dist/version.js +2 -0
- package/node_modules/@xone/xonecode-remoto/package.json +41 -0
- package/node_modules/@xone/xonecode-remoto/web/assets/index-Bfa2gK3J.css +1 -0
- package/node_modules/@xone/xonecode-remoto/web/assets/index-qBo9eRDN.js +77 -0
- package/node_modules/@xone/xonecode-remoto/web/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- package/node_modules/@xone/xonecode-remoto/web/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- package/node_modules/@xone/xonecode-remoto/web/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- package/node_modules/@xone/xonecode-remoto/web/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- package/node_modules/@xone/xonecode-remoto/web/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- package/node_modules/@xone/xonecode-remoto/web/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- package/node_modules/@xone/xonecode-remoto/web/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- package/node_modules/@xone/xonecode-remoto/web/index.html +14 -0
- package/node_modules/ws/LICENSE +20 -0
- package/node_modules/ws/README.md +548 -0
- package/node_modules/ws/browser.js +8 -0
- package/node_modules/ws/index.js +22 -0
- package/node_modules/ws/lib/buffer-util.js +131 -0
- package/node_modules/ws/lib/constants.js +19 -0
- package/node_modules/ws/lib/event-target.js +292 -0
- package/node_modules/ws/lib/extension.js +203 -0
- package/node_modules/ws/lib/limiter.js +55 -0
- package/node_modules/ws/lib/permessage-deflate.js +530 -0
- package/node_modules/ws/lib/receiver.js +743 -0
- package/node_modules/ws/lib/sender.js +607 -0
- package/node_modules/ws/lib/stream.js +161 -0
- package/node_modules/ws/lib/subprotocol.js +62 -0
- package/node_modules/ws/lib/validation.js +152 -0
- package/node_modules/ws/lib/websocket-server.js +562 -0
- package/node_modules/ws/lib/websocket.js +1407 -0
- package/node_modules/ws/package.json +74 -0
- package/node_modules/ws/wrapper.mjs +21 -0
- package/package.json +7 -1
- package/apps/web/dist/assets/index-BBQH-l_3.css +0 -1
- package/apps/web/dist/assets/index-DqYXrrxo.js +0 -499
|
@@ -64,19 +64,24 @@ function comoRegistro(mapa) {
|
|
|
64
64
|
* en cabeza se comería la respuesta de la espera SIGUIENTE —que sí está viva— y la dejaría
|
|
65
65
|
* colgada hasta su propio plazo.
|
|
66
66
|
*/
|
|
67
|
-
function esperarAUnHumano(cola, alVencer, ms
|
|
67
|
+
function esperarAUnHumano(cola, alVencer, ms, alEncolar,
|
|
68
|
+
/** Cuando la espera se resuelve, por la vía que sea, y ya FUERA de la cola. */
|
|
69
|
+
alTerminar) {
|
|
68
70
|
return new Promise((resuelto) => {
|
|
69
71
|
const responder = (valor) => {
|
|
70
72
|
clearTimeout(temporizador);
|
|
71
73
|
resuelto(valor);
|
|
74
|
+
alTerminar?.();
|
|
72
75
|
};
|
|
73
76
|
const temporizador = setTimeout(() => {
|
|
74
77
|
const indice = cola.indexOf(responder);
|
|
75
78
|
if (indice >= 0)
|
|
76
79
|
cola.splice(indice, 1);
|
|
77
80
|
resuelto(alVencer);
|
|
81
|
+
alTerminar?.();
|
|
78
82
|
}, ms);
|
|
79
83
|
cola.push(responder);
|
|
84
|
+
alEncolar?.(responder);
|
|
80
85
|
});
|
|
81
86
|
}
|
|
82
87
|
export function crearConsolaWeb(opciones = {}) {
|
|
@@ -123,6 +128,11 @@ export function crearConsolaWeb(opciones = {}) {
|
|
|
123
128
|
// Colas FIFO de quien espera respuesta. Son colas y no una ranura única porque dos
|
|
124
129
|
// preguntas encadenadas (el alta de proyecto las hace) no pueden pisarse.
|
|
125
130
|
const esperandoTexto = [];
|
|
131
|
+
/**
|
|
132
|
+
* Las esperas de `esperandoTexto` cuya `pregunta` llevaba una `decision`. El escritorio las
|
|
133
|
+
* contesta como siempre; un móvil NUNCA (`responderDesdeElMovil`), porque no las ha visto.
|
|
134
|
+
*/
|
|
135
|
+
const esperasConDecision = new WeakSet();
|
|
126
136
|
const esperandoSecreto = [];
|
|
127
137
|
const esperandoSeleccion = [];
|
|
128
138
|
/**
|
|
@@ -132,6 +142,22 @@ export function crearConsolaWeb(opciones = {}) {
|
|
|
132
142
|
*/
|
|
133
143
|
const esperandoDecision = [];
|
|
134
144
|
let aprobacionEnVuelo;
|
|
145
|
+
/**
|
|
146
|
+
* Quien quiere enterarse de que nació o terminó una espera de humano (`alCambiarEspera`). Un
|
|
147
|
+
* oyente que lanza no puede romper la espera: el aviso va DENTRO de `terminar` y del
|
|
148
|
+
* resolutor, y un lanzamiento ahí dejaría la aprobación sin resolver.
|
|
149
|
+
*/
|
|
150
|
+
const oyentesDeEspera = new Set();
|
|
151
|
+
const avisarDeLaEspera = () => {
|
|
152
|
+
for (const oyente of [...oyentesDeEspera]) {
|
|
153
|
+
try {
|
|
154
|
+
oyente();
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
// Lo de fuera no tumba la espera.
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
135
161
|
// Sin cliente, TODO el que espera responde lo que responde un readline cerrado: cadena
|
|
136
162
|
// vacía (o `undefined`, que es cancelar el selector). Medido en el e2e de un pipe que se
|
|
137
163
|
// agota a mitad de turno: `aprobar.ts` ya trata esa cadena vacía como rechazo.
|
|
@@ -226,7 +252,9 @@ export function crearConsolaWeb(opciones = {}) {
|
|
|
226
252
|
// texto libre la ponen `politicaInteractiva` antes de subir y `/connect-studio` sin
|
|
227
253
|
// URL, y sin plazo colgaban la sesión web entera. Cadena vacía al vencer, que es lo
|
|
228
254
|
// que `interpretAnswer` trata como rechazo.
|
|
229
|
-
|
|
255
|
+
// Solo la de texto libre AVISA de que nace y de que termina: la de `decision` es un diálogo
|
|
256
|
+
// del escritorio y no cuenta como pregunta pendiente (`hayPreguntaDeTextoPendiente`).
|
|
257
|
+
const espera = esperarAUnHumano(esperandoTexto, "", msDeEspera, decision === undefined ? undefined : (responder) => esperasConDecision.add(responder), decision === undefined ? avisarDeLaEspera : undefined);
|
|
230
258
|
// La FORMA viaja con la pregunta, o no viaja: `decision` ausente es una pregunta de
|
|
231
259
|
// texto libre y el cliente le pone su campo. No se manda un `{lineas: []}` — una
|
|
232
260
|
// decisión sin plan no es una pregunta abierta, y una pregunta abierta con una lista
|
|
@@ -234,6 +262,8 @@ export function crearConsolaWeb(opciones = {}) {
|
|
|
234
262
|
transporte.emitir(decision === undefined
|
|
235
263
|
? { clase: "pregunta", texto: pregunta }
|
|
236
264
|
: { clase: "pregunta", texto: pregunta, decision });
|
|
265
|
+
if (decision === undefined)
|
|
266
|
+
avisarDeLaEspera();
|
|
237
267
|
return espera;
|
|
238
268
|
},
|
|
239
269
|
/**
|
|
@@ -294,11 +324,13 @@ export function crearConsolaWeb(opciones = {}) {
|
|
|
294
324
|
// Soltarlo ANTES de resolver es lo que hace que una decisión tardía no tenga
|
|
295
325
|
// nada que ascender, y que el contenido no sobreviva a la decisión.
|
|
296
326
|
aprobacionEnVuelo = undefined;
|
|
327
|
+
avisarDeLaEspera();
|
|
297
328
|
resuelto(decisiones);
|
|
298
329
|
},
|
|
299
330
|
};
|
|
300
331
|
aprobacionEnVuelo = enVuelo;
|
|
301
332
|
transporte.emitir(enVuelo.mensaje);
|
|
333
|
+
avisarDeLaEspera();
|
|
302
334
|
});
|
|
303
335
|
},
|
|
304
336
|
// Un catálogo VIVO no se puede inventar: sin uno inyectado queda el doble de
|
|
@@ -433,9 +465,20 @@ export function crearConsolaWeb(opciones = {}) {
|
|
|
433
465
|
enVuelo.terminar();
|
|
434
466
|
}
|
|
435
467
|
};
|
|
468
|
+
const responderDesdeElMovil = (texto) => {
|
|
469
|
+
// Ni `esperandoDecision` ni una espera con `decision`: la PRIMERA de texto libre, aunque
|
|
470
|
+
// haya una decisión delante en la cola (esa sigue esperando al escritorio).
|
|
471
|
+
const indice = esperandoTexto.findIndex((espera) => !esperasConDecision.has(espera));
|
|
472
|
+
if (indice < 0)
|
|
473
|
+
return false;
|
|
474
|
+
const [espera] = esperandoTexto.splice(indice, 1);
|
|
475
|
+
espera(texto);
|
|
476
|
+
return true;
|
|
477
|
+
};
|
|
436
478
|
return {
|
|
437
479
|
consola,
|
|
438
480
|
recibir,
|
|
481
|
+
responderDesdeElMovil,
|
|
439
482
|
turno: (activo, detenible) => transporte.emitir({ clase: "turno", activo, ...(activo && detenible === true ? { detenible: true } : {}) }),
|
|
440
483
|
encolar: (linea, sustituye) => {
|
|
441
484
|
if (cerrada)
|
|
@@ -505,6 +548,13 @@ export function crearConsolaWeb(opciones = {}) {
|
|
|
505
548
|
anotar,
|
|
506
549
|
eventosEmitidos: () => transporte.emitidos(),
|
|
507
550
|
mensajesDeAprobacion: () => (aprobacionEnVuelo === undefined ? [] : [aprobacionEnVuelo.mensaje]),
|
|
551
|
+
hayPreguntaDeTextoPendiente: () => esperandoTexto.some((espera) => !esperasConDecision.has(espera)),
|
|
552
|
+
alCambiarEspera: (oyente) => {
|
|
553
|
+
oyentesDeEspera.add(oyente);
|
|
554
|
+
return () => {
|
|
555
|
+
oyentesDeEspera.delete(oyente);
|
|
556
|
+
};
|
|
557
|
+
},
|
|
508
558
|
};
|
|
509
559
|
}
|
|
510
560
|
//# sourceMappingURL=consolaWeb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolaWeb.js","sourceRoot":"","sources":["../../../src/web/servidor/consolaWeb.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"consolaWeb.js","sourceRoot":"","sources":["../../../src/web/servidor/consolaWeb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { MOTIVOS_DEL_TUNEL } from "../../core/tunel.js";
|
|
2
|
+
import { ajustarATope, filtrarSalida, TOPE_DE_SALIDA_BYTES, validarEntradaDelMovil } from "../../core/remoto.js";
|
|
3
|
+
export const MOTIVO_NO_ABRIO = "no se pudo abrir la sesión remota";
|
|
4
|
+
/** Lo que puede llegar al terminal de la clase de un mensaje rechazado del móvil. */
|
|
5
|
+
const CLASE_LEGIBLE = /^[a-zA-Z.]{1,32}$/;
|
|
6
|
+
export const SIN_PAQUETE = "la sesión remota no está disponible en esta instalación";
|
|
7
|
+
const MOTIVOS_FIJOS_DEL_TUNEL = new Set(Object.values(MOTIVOS_DEL_TUNEL));
|
|
8
|
+
/** Lo que ngrok o el sistema digan no cruza: solo un texto nuestro, o el genérico. */
|
|
9
|
+
export const motivoFijoDelTunel = (texto) => typeof texto === "string" && MOTIVOS_FIJOS_DEL_TUNEL.has(texto) ? texto : MOTIVOS_DEL_TUNEL.otro;
|
|
10
|
+
export function crearSesionRemota(o) {
|
|
11
|
+
let estado = { estado: "apagada" };
|
|
12
|
+
let canal;
|
|
13
|
+
let url;
|
|
14
|
+
let reconectando = false;
|
|
15
|
+
const moviles = new Map();
|
|
16
|
+
/** El túnel abierto, si lo hay. Es de la SESIÓN y no de una generación: revocar lo conserva. */
|
|
17
|
+
let tunel;
|
|
18
|
+
let cierreDelTunel = Promise.resolve();
|
|
19
|
+
/** Un `abrir` de túnel que aún no ha vuelto, sea de la generación que sea. */
|
|
20
|
+
let aperturaEnVuelo;
|
|
21
|
+
const cerrarTunel = () => {
|
|
22
|
+
const t = tunel;
|
|
23
|
+
tunel = undefined;
|
|
24
|
+
if (t !== undefined)
|
|
25
|
+
cierreDelTunel = t.cerrar().catch(() => { });
|
|
26
|
+
return cierreDelTunel;
|
|
27
|
+
};
|
|
28
|
+
const poner = (e) => {
|
|
29
|
+
estado = e;
|
|
30
|
+
o.alCambiar(e);
|
|
31
|
+
};
|
|
32
|
+
const ponerActiva = () => {
|
|
33
|
+
if (url !== undefined)
|
|
34
|
+
poner({ estado: reconectando ? "reconectando" : "activa", url, moviles: moviles.size });
|
|
35
|
+
// Antes de la primera `abierta` no hay enlace que enseñar, pero sí un intento que se repite:
|
|
36
|
+
// quedarse en «abriendo» para siempre escondía que el relé no contesta.
|
|
37
|
+
else if (reconectando)
|
|
38
|
+
poner({ estado: "reconectando", moviles: moviles.size });
|
|
39
|
+
};
|
|
40
|
+
/** Lo que sale hacia UN móvil: filtrado y ajustado al tope, como todo lo que cruza. */
|
|
41
|
+
const enviarA = (id, mensaje) => {
|
|
42
|
+
const filtrado = filtrarSalida(mensaje);
|
|
43
|
+
if (filtrado === undefined)
|
|
44
|
+
return;
|
|
45
|
+
// Pasarse del tope no da un error legible: el relé cierra la conexión. Se ajusta aquí.
|
|
46
|
+
const salida = ajustarATope(filtrado, o.topeDeSalida ?? TOPE_DE_SALIDA_BYTES);
|
|
47
|
+
if (salida === undefined) {
|
|
48
|
+
o.informar(`sesión remota: un mensaje no cabe en el tope y no se envía (clase ${filtrado.clase})`);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
void canal?.enviar(id, salida).catch(() => { });
|
|
52
|
+
};
|
|
53
|
+
const soltarTodos = () => {
|
|
54
|
+
for (const s of moviles.values())
|
|
55
|
+
o.soltarCliente(s);
|
|
56
|
+
moviles.clear();
|
|
57
|
+
};
|
|
58
|
+
// Cada encendido es una GENERACIÓN: un canal viejo (apagado, revocado o aún abriéndose) puede
|
|
59
|
+
// seguir hablando, y sin esta marca su `cerrada` borraría el estado del canal nuevo.
|
|
60
|
+
let generacion = 0;
|
|
61
|
+
let abriendo = false;
|
|
62
|
+
/** `anunciar: false` solo para revocar: el apagado de en medio no es un estado que la consola
|
|
63
|
+
* deba ver (su diálogo se cierra al pasar a «apagada»), y le sigue «abriendo» en el acto. */
|
|
64
|
+
const apagar = (anunciar = true) => {
|
|
65
|
+
generacion += 1;
|
|
66
|
+
abriendo = false;
|
|
67
|
+
soltarTodos();
|
|
68
|
+
const cierreDelCanal = canal?.cerrar().catch(() => { });
|
|
69
|
+
canal = undefined;
|
|
70
|
+
url = undefined;
|
|
71
|
+
reconectando = false;
|
|
72
|
+
if (anunciar)
|
|
73
|
+
poner({ estado: "apagada" });
|
|
74
|
+
else
|
|
75
|
+
estado = { estado: "apagada" };
|
|
76
|
+
// Revocar (`anunciar: false`) conserva el túnel: el `encender` que le sigue lo reutiliza.
|
|
77
|
+
if (!anunciar)
|
|
78
|
+
return cierreDelTunel;
|
|
79
|
+
// Por la vía ngrok el «cerrada» que el relé manda a los móviles viaja por el túnel: se mata
|
|
80
|
+
// cuando el canal ya cerró, no en el mismo instante. El túnel deja de ser de la sesión YA,
|
|
81
|
+
// así que un `encender` de justo después espera a este cierre (y no abre un segundo ngrok).
|
|
82
|
+
const t = tunel;
|
|
83
|
+
if (t === undefined || cierreDelCanal === undefined)
|
|
84
|
+
return cerrarTunel();
|
|
85
|
+
tunel = undefined;
|
|
86
|
+
cierreDelTunel = cierreDelCanal.then(() => t.cerrar()).catch(() => { });
|
|
87
|
+
return cierreDelTunel;
|
|
88
|
+
};
|
|
89
|
+
/** Lo que hace la caída de ESTE túnel, si sigue siendo el de la sesión. */
|
|
90
|
+
const alCaerDe = (este) => (motivo) => {
|
|
91
|
+
if (tunel !== este)
|
|
92
|
+
return;
|
|
93
|
+
tunel = undefined;
|
|
94
|
+
generacion += 1;
|
|
95
|
+
abriendo = false;
|
|
96
|
+
soltarTodos();
|
|
97
|
+
void canal?.cerrar().catch(() => { });
|
|
98
|
+
canal = undefined;
|
|
99
|
+
url = undefined;
|
|
100
|
+
reconectando = false;
|
|
101
|
+
poner({ estado: "error", motivo: motivoFijoDelTunel(motivo) });
|
|
102
|
+
};
|
|
103
|
+
const encender = async () => {
|
|
104
|
+
// Idempotente también MIENTRAS abre: un segundo clic abriría un canal que nadie cerraría.
|
|
105
|
+
if (canal !== undefined || abriendo)
|
|
106
|
+
return;
|
|
107
|
+
const mia = ++generacion;
|
|
108
|
+
abriendo = true;
|
|
109
|
+
poner({ estado: "abriendo" });
|
|
110
|
+
try {
|
|
111
|
+
const puerto = await o.puerto();
|
|
112
|
+
if (mia !== generacion)
|
|
113
|
+
return;
|
|
114
|
+
if (puerto === undefined) {
|
|
115
|
+
abriendo = false;
|
|
116
|
+
void cerrarTunel();
|
|
117
|
+
poner({ estado: "error", motivo: SIN_PAQUETE });
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
let servidor;
|
|
121
|
+
const conTunel = o.tunel?.();
|
|
122
|
+
if (conTunel === undefined) {
|
|
123
|
+
// La vía cambió desde que se abrió el que quedaba de un revocar: ya no es de nadie.
|
|
124
|
+
void cerrarTunel();
|
|
125
|
+
servidor = o.servidor();
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
// Un ngrok a la vez: si el de un encendido anterior (apagado a medias) aún está
|
|
129
|
+
// arrancando, se espera a que llegue y a que se cierre. Dos ngrok de la misma cuenta a la
|
|
130
|
+
// vez los rechaza el propio ngrok (ERR_NGROK_108). Lo mismo si el de antes ya estaba ACTIVO
|
|
131
|
+
// y el apagado de justo antes aún no ha terminado de cerrarlo.
|
|
132
|
+
while (tunel === undefined) {
|
|
133
|
+
const vuelo = aperturaEnVuelo;
|
|
134
|
+
if (vuelo !== undefined)
|
|
135
|
+
await vuelo;
|
|
136
|
+
await cierreDelTunel;
|
|
137
|
+
if (mia !== generacion)
|
|
138
|
+
return;
|
|
139
|
+
if (vuelo === undefined)
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
if (tunel === undefined) {
|
|
143
|
+
let terminar;
|
|
144
|
+
const vuelo = new Promise((r) => (terminar = r));
|
|
145
|
+
aperturaEnVuelo = vuelo;
|
|
146
|
+
const acabar = () => {
|
|
147
|
+
if (aperturaEnVuelo === vuelo)
|
|
148
|
+
aperturaEnVuelo = undefined;
|
|
149
|
+
terminar();
|
|
150
|
+
};
|
|
151
|
+
let nuevo;
|
|
152
|
+
try {
|
|
153
|
+
nuevo = await conTunel.abrir();
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
acabar();
|
|
157
|
+
if (mia !== generacion)
|
|
158
|
+
return;
|
|
159
|
+
abriendo = false;
|
|
160
|
+
poner({ estado: "error", motivo: motivoFijoDelTunel(error?.message) });
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
if (mia !== generacion) {
|
|
164
|
+
// Se apagó (o revocó) mientras ngrok arrancaba: este túnel ya no es de nadie. Su cierre
|
|
165
|
+
// queda en `cierreDelTunel` ANTES de soltar a quien espera, que lo espera también.
|
|
166
|
+
cierreDelTunel = nuevo.cerrar().catch(() => { });
|
|
167
|
+
acabar();
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
tunel = nuevo;
|
|
171
|
+
acabar();
|
|
172
|
+
nuevo.alCaer(alCaerDe(nuevo));
|
|
173
|
+
}
|
|
174
|
+
servidor = tunel.servidor;
|
|
175
|
+
}
|
|
176
|
+
const abierto = await puerto.abrir(servidor, {
|
|
177
|
+
alEstado: (e) => {
|
|
178
|
+
if (mia !== generacion)
|
|
179
|
+
return;
|
|
180
|
+
if (e.estado === "abierta") {
|
|
181
|
+
url = e.url;
|
|
182
|
+
reconectando = false;
|
|
183
|
+
ponerActiva();
|
|
184
|
+
}
|
|
185
|
+
else if (e.estado === "reconectando") {
|
|
186
|
+
reconectando = true;
|
|
187
|
+
ponerActiva();
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
// Un canal que se cierra por su cuenta es de una generación acabada, también si aún
|
|
191
|
+
// no había terminado de abrir (entonces se cierra al resolver).
|
|
192
|
+
generacion += 1;
|
|
193
|
+
abriendo = false;
|
|
194
|
+
soltarTodos();
|
|
195
|
+
canal = undefined;
|
|
196
|
+
url = undefined;
|
|
197
|
+
void cerrarTunel();
|
|
198
|
+
poner(e.motivo === undefined ? { estado: "apagada" } : { estado: "error", motivo: e.motivo });
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
alPresencia: (ids) => {
|
|
202
|
+
if (mia !== generacion)
|
|
203
|
+
return;
|
|
204
|
+
for (const [id, s] of moviles) {
|
|
205
|
+
if (!ids.includes(id)) {
|
|
206
|
+
moviles.delete(id);
|
|
207
|
+
o.soltarCliente(s);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
for (const id of ids) {
|
|
211
|
+
if (moviles.has(id))
|
|
212
|
+
continue;
|
|
213
|
+
const sumidero = (mensaje) => enviarA(id, mensaje);
|
|
214
|
+
moviles.set(id, sumidero);
|
|
215
|
+
o.engancharCliente(sumidero);
|
|
216
|
+
o.alEntrarMovil?.((m) => {
|
|
217
|
+
if (moviles.get(id) === sumidero)
|
|
218
|
+
enviarA(id, m);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
ponerActiva();
|
|
222
|
+
},
|
|
223
|
+
alMensaje: (de, mensaje) => {
|
|
224
|
+
if (mia !== generacion || !moviles.has(de))
|
|
225
|
+
return;
|
|
226
|
+
const entrada = validarEntradaDelMovil(mensaje);
|
|
227
|
+
if (entrada === undefined) {
|
|
228
|
+
// La clase la escribe el MÓVIL y va al terminal de quien desarrolla: solo un nombre
|
|
229
|
+
// limpio, o una secuencia de escape (OSC 52, que escribe el portapapeles) llegaría tal cual.
|
|
230
|
+
const bruta = typeof mensaje === "object" && mensaje !== null ? mensaje.clase : undefined;
|
|
231
|
+
const clase = typeof bruta === "string" && CLASE_LEGIBLE.test(bruta) ? bruta : "desconocida";
|
|
232
|
+
o.informar(`sesión remota: se rechazó un mensaje del móvil (clase ${clase})`);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
o.despachar(entrada);
|
|
236
|
+
},
|
|
237
|
+
});
|
|
238
|
+
if (mia !== generacion) {
|
|
239
|
+
// Se apagó (o revocó) mientras abría: este canal ya no es de nadie.
|
|
240
|
+
void abierto.cerrar().catch(() => { });
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
abriendo = false;
|
|
244
|
+
canal = abierto;
|
|
245
|
+
}
|
|
246
|
+
catch (error) {
|
|
247
|
+
if (mia !== generacion)
|
|
248
|
+
return;
|
|
249
|
+
abriendo = false;
|
|
250
|
+
canal = undefined;
|
|
251
|
+
void cerrarTunel();
|
|
252
|
+
// Al cable no cruza un mensaje de Node (lleva rutas de la máquina): solo su `code`.
|
|
253
|
+
const codigo = error?.code;
|
|
254
|
+
poner({ estado: "error", motivo: typeof codigo === "string" ? codigo : MOTIVO_NO_ABRIO });
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
return {
|
|
258
|
+
encender,
|
|
259
|
+
apagar: () => apagar(),
|
|
260
|
+
async revocar() {
|
|
261
|
+
apagar(false);
|
|
262
|
+
await encender();
|
|
263
|
+
},
|
|
264
|
+
estado: () => estado,
|
|
265
|
+
hayMoviles: () => moviles.size > 0,
|
|
266
|
+
difundir(mensaje) {
|
|
267
|
+
for (const id of moviles.keys())
|
|
268
|
+
enviarA(id, mensaje);
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=puenteRemoto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puenteRemoto.js","sourceRoot":"","sources":["../../../src/web/servidor/puenteRemoto.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAsB,EAAwB,MAAM,sBAAsB,CAAC;AAkDvI,MAAM,CAAC,MAAM,eAAe,GAAG,mCAAmC,CAAC;AACnE,qFAAqF;AACrF,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,yDAAyD,CAAC;AAErF,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC/F,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAU,EAAE,CAC3D,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAEnG,MAAM,UAAU,iBAAiB,CAAC,CAAyB;IACzD,IAAI,MAAM,GAAyB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACzD,IAAI,KAA8B,CAAC;IACnC,IAAI,GAAuB,CAAC;IAC5B,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,gGAAgG;IAChG,IAAI,KAA+B,CAAC;IACpC,IAAI,cAAc,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACtD,8EAA8E;IAC9E,IAAI,eAA0C,CAAC;IAC/C,MAAM,WAAW,GAAG,GAAkB,EAAE;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC;QAChB,KAAK,GAAG,SAAS,CAAC;QAClB,IAAI,CAAC,KAAK,SAAS;YAAE,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjE,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,CAAuB,EAAE,EAAE;QACxC,MAAM,GAAG,CAAC,CAAC;QACX,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,GAAG,KAAK,SAAS;YAAE,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/G,6FAA6F;QAC7F,wEAAwE;aACnE,IAAI,YAAY;YAAE,KAAK,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC,CAAC;IACF,uFAAuF;IACvF,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,OAAgB,EAAQ,EAAE;QACrD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QACnC,uFAAuF;QACvF,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,IAAI,oBAAoB,CAAC,CAAC;QAC9E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,CAAC,CAAC,QAAQ,CAAC,qEAAsE,QAA8B,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1H,OAAO;QACT,CAAC;QACD,KAAK,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,8FAA8F;IAC9F,qFAAqF;IACrF,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB;kGAC8F;IAC9F,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAiB,EAAE;QAChD,UAAU,IAAI,CAAC,CAAC;QAChB,QAAQ,GAAG,KAAK,CAAC;QACjB,WAAW,EAAE,CAAC;QACd,MAAM,cAAc,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvD,KAAK,GAAG,SAAS,CAAC;QAClB,GAAG,GAAG,SAAS,CAAC;QAChB,YAAY,GAAG,KAAK,CAAC;QACrB,IAAI,QAAQ;YAAE,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;;YACtC,MAAM,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACpC,0FAA0F;QAC1F,IAAI,CAAC,QAAQ;YAAE,OAAO,cAAc,CAAC;QACrC,4FAA4F;QAC5F,2FAA2F;QAC3F,4FAA4F;QAC5F,MAAM,CAAC,GAAG,KAAK,CAAC;QAChB,IAAI,CAAC,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS;YAAE,OAAO,WAAW,EAAE,CAAC;QAC1E,KAAK,GAAG,SAAS,CAAC;QAClB,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvE,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IAEF,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,CAAC,IAAkB,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;QAC1D,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,KAAK,GAAG,SAAS,CAAC;QAClB,UAAU,IAAI,CAAC,CAAC;QAChB,QAAQ,GAAG,KAAK,CAAC;QACjB,WAAW,EAAE,CAAC;QACd,KAAK,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrC,KAAK,GAAG,SAAS,CAAC;QAClB,GAAG,GAAG,SAAS,CAAC;QAChB,YAAY,GAAG,KAAK,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,0FAA0F;QAC1F,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ;YAAE,OAAO;QAC5C,MAAM,GAAG,GAAG,EAAE,UAAU,CAAC;QACzB,QAAQ,GAAG,IAAI,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,GAAG,KAAK,UAAU;gBAAE,OAAO;YAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,QAAQ,GAAG,KAAK,CAAC;gBACjB,KAAK,WAAW,EAAE,CAAC;gBACnB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,IAAI,QAAgB,CAAC;YACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC7B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,oFAAoF;gBACpF,KAAK,WAAW,EAAE,CAAC;gBACnB,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,gFAAgF;gBAChF,0FAA0F;gBAC1F,4FAA4F;gBAC5F,+DAA+D;gBAC/D,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,KAAK,GAAG,eAAe,CAAC;oBAC9B,IAAI,KAAK,KAAK,SAAS;wBAAE,MAAM,KAAK,CAAC;oBACrC,MAAM,cAAc,CAAC;oBACrB,IAAI,GAAG,KAAK,UAAU;wBAAE,OAAO;oBAC/B,IAAI,KAAK,KAAK,SAAS;wBAAE,MAAM;gBACjC,CAAC;gBACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,IAAI,QAAqB,CAAC;oBAC1B,MAAM,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBACvD,eAAe,GAAG,KAAK,CAAC;oBACxB,MAAM,MAAM,GAAG,GAAG,EAAE;wBAClB,IAAI,eAAe,KAAK,KAAK;4BAAE,eAAe,GAAG,SAAS,CAAC;wBAC3D,QAAQ,EAAE,CAAC;oBACb,CAAC,CAAC;oBACF,IAAI,KAAmB,CAAC;oBACxB,IAAI,CAAC;wBACH,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACjC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,EAAE,CAAC;wBACT,IAAI,GAAG,KAAK,UAAU;4BAAE,OAAO;wBAC/B,QAAQ,GAAG,KAAK,CAAC;wBACjB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAE,KAAsC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;wBACzG,OAAO;oBACT,CAAC;oBACD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;wBACvB,wFAAwF;wBACxF,mFAAmF;wBACnF,cAAc,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBAChD,MAAM,EAAE,CAAC;wBACT,OAAO;oBACT,CAAC;oBACD,KAAK,GAAG,KAAK,CAAC;oBACd,MAAM,EAAE,CAAC;oBACT,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChC,CAAC;gBACD,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC5B,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC3C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,IAAI,GAAG,KAAK,UAAU;wBAAE,OAAO;oBAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC3B,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;wBACZ,YAAY,GAAG,KAAK,CAAC;wBACrB,WAAW,EAAE,CAAC;oBAChB,CAAC;yBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;wBACvC,YAAY,GAAG,IAAI,CAAC;wBACpB,WAAW,EAAE,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACN,oFAAoF;wBACpF,gEAAgE;wBAChE,UAAU,IAAI,CAAC,CAAC;wBAChB,QAAQ,GAAG,KAAK,CAAC;wBACjB,WAAW,EAAE,CAAC;wBACd,KAAK,GAAG,SAAS,CAAC;wBAClB,GAAG,GAAG,SAAS,CAAC;wBAChB,KAAK,WAAW,EAAE,CAAC;wBACnB,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;oBAChG,CAAC;gBACH,CAAC;gBACD,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;oBACnB,IAAI,GAAG,KAAK,UAAU;wBAAE,OAAO;oBAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;wBAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;4BACtB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BACnB,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC;oBACD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;wBACrB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;4BAAE,SAAS;wBAC9B,MAAM,QAAQ,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;wBAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;wBAC1B,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;wBAC7B,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;4BACtB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,QAAQ;gCAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;wBACnD,CAAC,CAAC,CAAC;oBACL,CAAC;oBACD,WAAW,EAAE,CAAC;gBAChB,CAAC;gBACD,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;oBACzB,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,OAAO;oBACnD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;oBAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1B,oFAAoF;wBACpF,6FAA6F;wBAC7F,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAE,OAA+B,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;wBACnH,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;wBAC7F,CAAC,CAAC,QAAQ,CAAC,yDAAyD,KAAK,GAAG,CAAC,CAAC;wBAC9E,OAAO;oBACT,CAAC;oBACD,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC;aACF,CAAC,CAAC;YACH,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBACvB,oEAAoE;gBACpE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,KAAK,CAAC;YACjB,KAAK,GAAG,OAAO,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,GAAG,KAAK,UAAU;gBAAE,OAAO;YAC/B,QAAQ,GAAG,KAAK,CAAC;YACjB,KAAK,GAAG,SAAS,CAAC;YAClB,KAAK,WAAW,EAAE,CAAC;YACnB,oFAAoF;YACpF,MAAM,MAAM,GAAI,KAAmC,EAAE,IAAI,CAAC;YAC1D,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;QACtB,KAAK,CAAC,OAAO;YACX,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,MAAM,QAAQ,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM;QACpB,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;QAClC,QAAQ,CAAC,OAAO;YACd,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE;gBAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transporte.js","sourceRoot":"","sources":["../../../src/web/servidor/transporte.ts"],"names":[],"mappings":"AA6HA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,aAAa;IACb,cAAc;IACd,UAAU;IACV,aAAa;IACb,UAAU;IACV,sBAAsB;CACd,CAAC;AAGX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"transporte.js","sourceRoot":"","sources":["../../../src/web/servidor/transporte.ts"],"names":[],"mappings":"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"}
|
|
@@ -307,6 +307,18 @@ export function crearVestibulo(opciones) {
|
|
|
307
307
|
let escuchaDeTurno;
|
|
308
308
|
/** Y de que la sesión en foco ha consumido más tokens. */
|
|
309
309
|
let escuchaDeConsumo;
|
|
310
|
+
/** Y de que cambió algo de lo que el panel remoto enseña. Varias: ver `alCambiarEsperas`. */
|
|
311
|
+
const escuchasDeEsperas = new Set();
|
|
312
|
+
const avisarDeLasEsperas = () => {
|
|
313
|
+
for (const escucha of [...escuchasDeEsperas]) {
|
|
314
|
+
try {
|
|
315
|
+
escucha();
|
|
316
|
+
}
|
|
317
|
+
catch {
|
|
318
|
+
// Una escucha que lanza no tumba ni el turno ni la aprobación de donde sale el aviso.
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
};
|
|
310
322
|
/**
|
|
311
323
|
* Avisa de que algo cambió en las consolas de persona: un turno empieza o acaba —en
|
|
312
324
|
* CUALQUIERA de ellas— o una de segundo plano se cierra.
|
|
@@ -328,6 +340,9 @@ export function crearVestibulo(opciones) {
|
|
|
328
340
|
? deLaDeAhora.turnoEnVuelo
|
|
329
341
|
: consolaEnFoco()?.turnoEnVuelo === true;
|
|
330
342
|
escuchaDeTurno?.(enfocada);
|
|
343
|
+
// Los mismos disparadores —un flanco de turno de cualquier consola de persona, o una de
|
|
344
|
+
// segundo plano que se cierra— cambian lo que el panel remoto enseña.
|
|
345
|
+
avisarDeLasEsperas();
|
|
331
346
|
};
|
|
332
347
|
const entornoPorId = (id) => {
|
|
333
348
|
const encontrado = registrados.find((e) => e.id === id);
|
|
@@ -412,6 +427,7 @@ export function crearVestibulo(opciones) {
|
|
|
412
427
|
abiertas.delete(raiz);
|
|
413
428
|
if (enFoco === raiz)
|
|
414
429
|
enFoco = undefined;
|
|
430
|
+
avisarDeLasEsperas();
|
|
415
431
|
};
|
|
416
432
|
/** Todas: lo que hacen `cancelar()` y `cerrar()`. Un fallo al cerrar una no puede dejar a
|
|
417
433
|
* las demás vivas — es la misma regla que `cerrarLasDeTareas`. */
|
|
@@ -500,7 +516,7 @@ export function crearVestibulo(opciones) {
|
|
|
500
516
|
* con menos barreras que una persona, y eso no se ve — se descubre cuando el agente ya
|
|
501
517
|
* escribió. Lo único que `alCable` apaga son los dos AVISOS al navegador; ni una regla.
|
|
502
518
|
*/
|
|
503
|
-
const construirConsolaDeProyecto = async ({ raiz, sesion, adjuntos, tarea, enElCable, alFlancoDeTurno, conModoPorDefecto, }) => {
|
|
519
|
+
const construirConsolaDeProyecto = async ({ raiz, sesion, adjuntos, tarea, enElCable, alFlancoDeTurno, alCambiarParaElPanel, conModoPorDefecto, }) => {
|
|
504
520
|
const reabierta = sesion === undefined ? undefined : sesiones.reabrir(raiz, sesion);
|
|
505
521
|
/**
|
|
506
522
|
* Lo que costó esta conversación ANTES de este proceso, leído de los `fin` que el
|
|
@@ -584,6 +600,11 @@ export function crearVestibulo(opciones) {
|
|
|
584
600
|
// `Partial<Consola>` sobre el objeto recién creado: lo que depende de la raíz (`/sync`,
|
|
585
601
|
// los escritores del proyecto) no lo puede saber `consolaWeb`, que no conoce ninguna.
|
|
586
602
|
Object.assign(consolaWeb.consola, opciones.dependenciasDeProyecto?.(raiz) ?? {});
|
|
603
|
+
// Una aprobación o una pregunta que nace o termina AQUÍ, en foco o no: el panel remoto la
|
|
604
|
+
// enseña. Solo si la puerta lo pide (la de las personas); la consola vive lo que vive este
|
|
605
|
+
// objeto, así que la baja no hace falta.
|
|
606
|
+
if (alCambiarParaElPanel !== undefined)
|
|
607
|
+
consolaWeb.alCambiarEspera(alCambiarParaElPanel);
|
|
587
608
|
// La foto del ANTES se toma AQUÍ, al abrir, no en el primer volcado: para entonces el
|
|
588
609
|
// agente ya habría escrito y el «antes» incluiría su trabajo. Se nombra más abajo,
|
|
589
610
|
// cuando el id existe. Se lanza sin esperar —abrir no puede quedarse esperando a git— y
|
|
@@ -726,6 +747,8 @@ export function crearVestibulo(opciones) {
|
|
|
726
747
|
for (const acto of todos.slice(volcados))
|
|
727
748
|
sesiones.anotar(raiz, idSesion, acto);
|
|
728
749
|
volcados = todos.length;
|
|
750
|
+
// Actos nuevos en el índice: el título y la última actividad que el panel remoto enseña.
|
|
751
|
+
alCambiarParaElPanel?.();
|
|
729
752
|
// El dispositivo elegido ANTES de que la sesión estuviera en el índice se anota
|
|
730
753
|
// ahora, que es la primera vez que hay una entrada a la que apuntarlo. Sin esto,
|
|
731
754
|
// elegir dispositivo y hablar después perdía la elección al reabrir.
|
|
@@ -1067,6 +1090,9 @@ export function crearVestibulo(opciones) {
|
|
|
1067
1090
|
get turnoDetenible() {
|
|
1068
1091
|
return turnoEnVuelo && sesionReal?.detener !== undefined;
|
|
1069
1092
|
},
|
|
1093
|
+
get preguntaPendiente() {
|
|
1094
|
+
return consolaWeb.hayPreguntaDeTextoPendiente();
|
|
1095
|
+
},
|
|
1070
1096
|
consola: consolaWeb,
|
|
1071
1097
|
cancelarTurno: () => {
|
|
1072
1098
|
if (sesionReal?.cancelar === undefined)
|
|
@@ -1074,6 +1100,7 @@ export function crearVestibulo(opciones) {
|
|
|
1074
1100
|
sesionReal.cancelar();
|
|
1075
1101
|
return true;
|
|
1076
1102
|
},
|
|
1103
|
+
responderDesdeElMovil: (texto) => consolaWeb.responderDesdeElMovil(texto),
|
|
1077
1104
|
recibir: (mensaje) => {
|
|
1078
1105
|
consolaWeb.recibir(mensaje);
|
|
1079
1106
|
/**
|
|
@@ -1203,6 +1230,8 @@ export function crearVestibulo(opciones) {
|
|
|
1203
1230
|
if (laMisma || volverALoQueTrabaja) {
|
|
1204
1231
|
enFoco = apertura.raiz;
|
|
1205
1232
|
await cerrarLasOciosasSalvo(apertura.raiz);
|
|
1233
|
+
// El foco se ha movido aunque no se haya abierto nada.
|
|
1234
|
+
avisarDeLasEsperas();
|
|
1206
1235
|
return yaAbierta;
|
|
1207
1236
|
}
|
|
1208
1237
|
/**
|
|
@@ -1242,8 +1271,11 @@ export function crearVestibulo(opciones) {
|
|
|
1242
1271
|
if (!activo)
|
|
1243
1272
|
cerrarSiSobra(raiz);
|
|
1244
1273
|
},
|
|
1274
|
+
alCambiarParaElPanel: avisarDeLasEsperas,
|
|
1245
1275
|
});
|
|
1246
1276
|
abiertas.set(raiz, consolaDeProyecto);
|
|
1277
|
+
// Una consola más, y el foco en ella.
|
|
1278
|
+
avisarDeLasEsperas();
|
|
1247
1279
|
return consolaDeProyecto;
|
|
1248
1280
|
};
|
|
1249
1281
|
/**
|
|
@@ -1409,6 +1441,12 @@ export function crearVestibulo(opciones) {
|
|
|
1409
1441
|
alCambiarConsumo(escucha) {
|
|
1410
1442
|
escuchaDeConsumo = escucha;
|
|
1411
1443
|
},
|
|
1444
|
+
alCambiarEsperas(escucha) {
|
|
1445
|
+
escuchasDeEsperas.add(escucha);
|
|
1446
|
+
return () => {
|
|
1447
|
+
escuchasDeEsperas.delete(escucha);
|
|
1448
|
+
};
|
|
1449
|
+
},
|
|
1412
1450
|
// La del FOCO, igual que `proyectoAbierto()`: es la sesión que se está mirando.
|
|
1413
1451
|
consumoDeSesion: () => consolaEnFoco()?.consumo?.(),
|
|
1414
1452
|
opcionesDeEntorno: () => [...ENTORNOS_OFICIALES, ENTORNO_OTRO],
|