dd-harness 0.38.0 → 0.38.1
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/dist/index.js +15 -26
- package/dist/pergunta.js +18 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -446,32 +446,21 @@ async function comandoStart(argv) {
|
|
|
446
446
|
`${desatualizado.atual}, e a mais recente é ${desatualizado.ultima}: rode ` +
|
|
447
447
|
"`npm install -g dd-harness@latest` quando puder. O start continua assim mesmo.\n");
|
|
448
448
|
}
|
|
449
|
-
// 1. Credencial.
|
|
450
|
-
//
|
|
451
|
-
//
|
|
452
|
-
//
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
}
|
|
465
|
-
if (!token) {
|
|
466
|
-
const url = `${API_PADRAO}/tokens`;
|
|
467
|
-
console.log(`\nCrie um token pessoal em ${url} — abrindo no navegador...`);
|
|
468
|
-
tentaAbrirNavegador(url);
|
|
469
|
-
token = await pergunta("Cole o token aqui: ");
|
|
470
|
-
if (!token)
|
|
471
|
-
throw new Error("sem token não dá para seguir: `start` fala com o serviço em todos os passos.");
|
|
472
|
-
await guardaToken(API_PADRAO, token);
|
|
473
|
-
console.log("Credencial guardada.");
|
|
474
|
-
}
|
|
449
|
+
// 1. Credencial. SEMPRE digitada, mesmo havendo uma guardada nesta maquina.
|
|
450
|
+
//
|
|
451
|
+
// Oferecer a credencial salva como opcao de menu transformava o segredo num clique:
|
|
452
|
+
// quem tivesse acesso ao terminal comecava a operar como o dono da conta sem nunca
|
|
453
|
+
// provar posse do token. Guardar para os comandos seguintes e outra coisa — ali a
|
|
454
|
+
// pessoa ja demonstrou que o tem. O `start` e a porta, e a porta pede a chave.
|
|
455
|
+
const url = `${API_PADRAO}/tokens`;
|
|
456
|
+
console.log(`Cole o seu token de ${API_PADRAO}.`);
|
|
457
|
+
console.log(`Crie um em ${url} — abrindo no navegador...`);
|
|
458
|
+
tentaAbrirNavegador(url);
|
|
459
|
+
const token = await pergunta("Token: ");
|
|
460
|
+
if (!token)
|
|
461
|
+
throw new Error("sem token não dá para seguir: `start` fala com o serviço em todos os passos.");
|
|
462
|
+
await guardaToken(API_PADRAO, token);
|
|
463
|
+
console.log("Credencial guardada.");
|
|
475
464
|
console.log("");
|
|
476
465
|
// 2. Espaco (tenant). Criar um e ato de dono — nunca por aqui — mas ESCOLHER entre
|
|
477
466
|
// os que ja existem e so leitura, e e o que faltava para nao exigir o slug de memoria.
|
package/dist/pergunta.js
CHANGED
|
@@ -8,8 +8,24 @@ import { createInterface } from "node:readline/promises";
|
|
|
8
8
|
* projeto do zero, sem saber os slugs de memoria.
|
|
9
9
|
*/
|
|
10
10
|
let rl = null;
|
|
11
|
+
let fechada = false;
|
|
12
|
+
/**
|
|
13
|
+
* Uma interface por vez, recriada quando a anterior morreu.
|
|
14
|
+
*
|
|
15
|
+
* Com stdin vindo de pipe (script, `printf | dd-harness start`), o readline consome o
|
|
16
|
+
* buffer e emite `close` no EOF. A referencia continua valendo, mas todo `question`
|
|
17
|
+
* seguinte rejeita com "readline was closed" — e o wizard morre no meio, depois de ja ter
|
|
18
|
+
* gravado credencial. Enquanto houve UMA pergunta por execucao isso nunca apareceu.
|
|
19
|
+
*/
|
|
11
20
|
function interfaceAtual() {
|
|
12
|
-
|
|
21
|
+
if (rl && fechada)
|
|
22
|
+
rl = null;
|
|
23
|
+
if (!rl) {
|
|
24
|
+
fechada = false;
|
|
25
|
+
rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
26
|
+
rl.once("close", () => { fechada = true; });
|
|
27
|
+
}
|
|
28
|
+
return rl;
|
|
13
29
|
}
|
|
14
30
|
export async function pergunta(texto) {
|
|
15
31
|
return (await interfaceAtual().question(texto)).trim();
|
|
@@ -17,6 +33,7 @@ export async function pergunta(texto) {
|
|
|
17
33
|
export function fechaPerguntas() {
|
|
18
34
|
rl?.close();
|
|
19
35
|
rl = null;
|
|
36
|
+
fechada = false;
|
|
20
37
|
}
|
|
21
38
|
/**
|
|
22
39
|
* Escolha de uma opcao: setas e Enter quando ha terminal, numeracao quando nao ha.
|
package/package.json
CHANGED