@neetru/cli 1.0.1 → 2.1.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/CHANGELOG.md +136 -0
- package/README.md +109 -152
- package/dist/commands/add.d.ts +8 -3
- package/dist/commands/add.js +70 -143
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/agent-release.d.ts +13 -0
- package/dist/commands/agent-release.js +204 -0
- package/dist/commands/agent-release.js.map +1 -0
- package/dist/commands/agent-write.d.ts +12 -0
- package/dist/commands/agent-write.js +94 -0
- package/dist/commands/agent-write.js.map +1 -0
- package/dist/commands/ai.d.ts +4 -0
- package/dist/commands/ai.js +88 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/api-catalog.d.ts +20 -0
- package/dist/commands/api-catalog.js +126 -0
- package/dist/commands/api-catalog.js.map +1 -0
- package/dist/commands/audit.d.ts +8 -0
- package/dist/commands/audit.js +69 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/autocomplete.d.ts +7 -0
- package/dist/commands/autocomplete.js +107 -0
- package/dist/commands/autocomplete.js.map +1 -0
- package/dist/commands/billing.d.ts +6 -0
- package/dist/commands/billing.js +69 -0
- package/dist/commands/billing.js.map +1 -0
- package/dist/commands/build.d.ts +18 -0
- package/dist/commands/build.js +295 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/cloud-run.d.ts +11 -0
- package/dist/commands/cloud-run.js +87 -0
- package/dist/commands/cloud-run.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.js +70 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/db.d.ts +14 -0
- package/dist/commands/db.js +187 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/deploy.d.ts +23 -3
- package/dist/commands/deploy.js +530 -177
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/deployments.d.ts +11 -0
- package/dist/commands/deployments.js +69 -0
- package/dist/commands/deployments.js.map +1 -0
- package/dist/commands/doctor.d.ts +27 -0
- package/dist/commands/doctor.js +211 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/dr.d.ts +11 -0
- package/dist/commands/dr.js +79 -0
- package/dist/commands/dr.js.map +1 -0
- package/dist/commands/env.d.ts +15 -0
- package/dist/commands/env.js +56 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/fn.d.ts +6 -0
- package/dist/commands/fn.js +87 -0
- package/dist/commands/fn.js.map +1 -0
- package/dist/commands/infra-read.d.ts +9 -0
- package/dist/commands/infra-read.js +113 -0
- package/dist/commands/infra-read.js.map +1 -0
- package/dist/commands/init.d.ts +10 -3
- package/dist/commands/init.js +275 -142
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts +6 -3
- package/dist/commands/login.js +222 -92
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts +1 -0
- package/dist/commands/logout.js +28 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/logs.d.ts +14 -3
- package/dist/commands/logs.js +132 -106
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/mocks.d.ts +5 -0
- package/dist/commands/mocks.js +23 -0
- package/dist/commands/mocks.js.map +1 -0
- package/dist/commands/open.d.ts +4 -3
- package/dist/commands/open.js +53 -85
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/products-db.d.ts +37 -0
- package/dist/commands/products-db.js +230 -0
- package/dist/commands/products-db.js.map +1 -0
- package/dist/commands/products.d.ts +12 -0
- package/dist/commands/products.js +97 -0
- package/dist/commands/products.js.map +1 -0
- package/dist/commands/promote.d.ts +9 -0
- package/dist/commands/promote.js +114 -0
- package/dist/commands/promote.js.map +1 -0
- package/dist/commands/publish.d.ts +14 -0
- package/dist/commands/publish.js +180 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/servers.d.ts +23 -0
- package/dist/commands/servers.js +166 -0
- package/dist/commands/servers.js.map +1 -0
- package/dist/commands/status.d.ts +5 -3
- package/dist/commands/status.js +91 -93
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/support.d.ts +25 -0
- package/dist/commands/support.js +184 -0
- package/dist/commands/support.js.map +1 -0
- package/dist/commands/surface-status.d.ts +5 -0
- package/dist/commands/surface-status.js +63 -0
- package/dist/commands/surface-status.js.map +1 -0
- package/dist/commands/tenants.d.ts +34 -0
- package/dist/commands/tenants.js +179 -0
- package/dist/commands/tenants.js.map +1 -0
- package/dist/commands/upgrade.d.ts +12 -0
- package/dist/commands/upgrade.js +77 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/validate.d.ts +1 -3
- package/dist/commands/validate.js +83 -91
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/whoami.d.ts +5 -3
- package/dist/commands/whoami.js +76 -28
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workspaces.d.ts +15 -0
- package/dist/commands/workspaces.js +72 -0
- package/dist/commands/workspaces.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1094 -36
- package/dist/index.js.map +1 -1
- package/dist/lib/ai/context.d.ts +11 -0
- package/dist/lib/ai/context.js +112 -0
- package/dist/lib/ai/context.js.map +1 -0
- package/dist/lib/ai/orchestrator.d.ts +10 -0
- package/dist/lib/ai/orchestrator.js +92 -0
- package/dist/lib/ai/orchestrator.js.map +1 -0
- package/dist/lib/api-client.d.ts +39 -0
- package/dist/lib/api-client.js +185 -0
- package/dist/lib/api-client.js.map +1 -0
- package/dist/lib/auth.d.ts +15 -0
- package/dist/lib/auth.js +98 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/cli-read.d.ts +13 -0
- package/dist/lib/cli-read.js +103 -0
- package/dist/lib/cli-read.js.map +1 -0
- package/dist/lib/cli-write.d.ts +47 -0
- package/dist/lib/cli-write.js +137 -0
- package/dist/lib/cli-write.js.map +1 -0
- package/dist/lib/config-schema.d.ts +165 -0
- package/dist/lib/config-schema.js +57 -0
- package/dist/lib/config-schema.js.map +1 -0
- package/dist/lib/config.d.ts +15 -0
- package/dist/lib/config.js +33 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/render.d.ts +16 -0
- package/dist/lib/render.js +74 -0
- package/dist/lib/render.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.js +27 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +35 -33
- package/templates/auth/callback.ts +22 -0
- package/templates/auth/sign-in.tsx +41 -0
- package/templates/billing/checkout.ts +22 -0
- package/templates/billing/page.tsx +43 -0
- package/templates/support/ticket-form.tsx +68 -0
- package/templates/usage/track.ts +30 -0
- package/templates/users/profile.tsx +43 -0
- package/LICENSE +0 -21
- package/dist/commands/add.d.ts.map +0 -1
- package/dist/commands/deploy.d.ts.map +0 -1
- package/dist/commands/generate-types.d.ts +0 -3
- package/dist/commands/generate-types.d.ts.map +0 -1
- package/dist/commands/generate-types.js +0 -150
- package/dist/commands/generate-types.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/logs.d.ts.map +0 -1
- package/dist/commands/open.d.ts.map +0 -1
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/validate.d.ts.map +0 -1
- package/dist/commands/whoami.d.ts.map +0 -1
- package/dist/config.d.ts +0 -14
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -83
- package/dist/config.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/scaffold/auth.d.ts +0 -3
- package/dist/scaffold/auth.d.ts.map +0 -1
- package/dist/scaffold/auth.js +0 -228
- package/dist/scaffold/auth.js.map +0 -1
- package/dist/scaffold/billing.d.ts +0 -3
- package/dist/scaffold/billing.d.ts.map +0 -1
- package/dist/scaffold/billing.js +0 -184
- package/dist/scaffold/billing.js.map +0 -1
- package/dist/scaffold/usage.d.ts +0 -3
- package/dist/scaffold/usage.d.ts.map +0 -1
- package/dist/scaffold/usage.js +0 -173
- package/dist/scaffold/usage.js.map +0 -1
- package/dist/scaffold/users.d.ts +0 -3
- package/dist/scaffold/users.d.ts.map +0 -1
- package/dist/scaffold/users.js +0 -135
- package/dist/scaffold/users.js.map +0 -1
package/dist/commands/logs.js
CHANGED
|
@@ -1,114 +1,140 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
function
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
/**
|
|
2
|
+
* `neetru logs` — visualiza logs do workspace.
|
|
3
|
+
*
|
|
4
|
+
* Endpoint: `GET /api/v1/cli/logs?clientId=<id>&limit=N&since=<ms>&level=<lvl>`.
|
|
5
|
+
* Suporta tail contínuo (`-f`) com poll a cada 5s usando `after=<lastTs>`.
|
|
6
|
+
*/
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import { apiRequest, CliApiError, CliNetworkError } from '../lib/api-client.js';
|
|
9
|
+
import { config } from '../lib/config.js';
|
|
10
|
+
import { log } from '../utils/logger.js';
|
|
11
|
+
function parseDuration(input) {
|
|
12
|
+
const m = input.match(/^(\d+)([smhd])$/i);
|
|
13
|
+
if (!m)
|
|
14
|
+
return 15 * 60 * 1000;
|
|
15
|
+
const n = Number.parseInt(m[1], 10);
|
|
16
|
+
const unit = m[2].toLowerCase();
|
|
17
|
+
switch (unit) {
|
|
18
|
+
case 's': return n * 1000;
|
|
19
|
+
case 'm': return n * 60 * 1000;
|
|
20
|
+
case 'h': return n * 60 * 60 * 1000;
|
|
21
|
+
case 'd': return n * 24 * 60 * 60 * 1000;
|
|
22
|
+
default: return 15 * 60 * 1000;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function colorLevel(level) {
|
|
26
|
+
switch ((level ?? 'info').toLowerCase()) {
|
|
27
|
+
case 'error':
|
|
28
|
+
case 'fatal': return chalk.red;
|
|
29
|
+
case 'warn':
|
|
30
|
+
case 'warning': return chalk.yellow;
|
|
31
|
+
case 'debug': return chalk.gray;
|
|
32
|
+
default: return chalk.blue;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function printLog(entry) {
|
|
36
|
+
const ts = new Date(entry.timestamp).toLocaleTimeString('pt-BR');
|
|
37
|
+
const lvl = (entry.level ?? 'info').toUpperCase().padEnd(5);
|
|
38
|
+
const color = colorLevel(entry.level);
|
|
39
|
+
const src = entry.source ? chalk.dim(`[${entry.source}]`) : '';
|
|
40
|
+
console.log(`${chalk.dim(ts)} ${color(lvl)} ${src} ${entry.message}`);
|
|
41
|
+
}
|
|
42
|
+
async function fetchLogs(clientId, params) {
|
|
43
|
+
const qs = new URLSearchParams({
|
|
44
|
+
clientId,
|
|
45
|
+
limit: String(params.limit),
|
|
46
|
+
});
|
|
47
|
+
if (params.after)
|
|
48
|
+
qs.set('after', params.after);
|
|
49
|
+
else if (params.since !== undefined)
|
|
50
|
+
qs.set('since', String(params.since));
|
|
51
|
+
if (params.level)
|
|
52
|
+
qs.set('level', params.level);
|
|
53
|
+
if (params.product)
|
|
54
|
+
qs.set('product', params.product);
|
|
55
|
+
if (params.channel)
|
|
56
|
+
qs.set('channel', params.channel);
|
|
57
|
+
if (params.correlationId)
|
|
58
|
+
qs.set('correlationId', params.correlationId);
|
|
59
|
+
const res = await apiRequest(`/api/v1/cli/logs?${qs.toString()}`);
|
|
60
|
+
return res.logs ?? [];
|
|
61
|
+
}
|
|
62
|
+
export async function runLogs(opts) {
|
|
63
|
+
if (!opts.clientId) {
|
|
64
|
+
log.error('--client-id <oauthClientId> obrigatório.');
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
if (!config.get('neetruApiKey')) {
|
|
68
|
+
log.error('Não autenticado. Execute: neetru login');
|
|
69
|
+
process.exit(2);
|
|
70
|
+
}
|
|
71
|
+
const lines = Math.max(1, Math.min(1000, Number.parseInt(opts.lines ?? '50', 10) || 50));
|
|
72
|
+
const sinceMs = parseDuration(opts.since ?? '15m');
|
|
73
|
+
const since = Date.now() - sinceMs;
|
|
74
|
+
let entries;
|
|
75
|
+
try {
|
|
76
|
+
entries = await fetchLogs(opts.clientId, {
|
|
77
|
+
limit: lines,
|
|
78
|
+
since,
|
|
79
|
+
level: opts.level,
|
|
80
|
+
product: opts.product,
|
|
81
|
+
channel: opts.channel,
|
|
82
|
+
correlationId: opts.correlationId,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
if (error instanceof CliApiError) {
|
|
87
|
+
if (error.status === 401) {
|
|
88
|
+
log.error('Sessão expirada. Execute: neetru login');
|
|
89
|
+
process.exit(2);
|
|
90
|
+
}
|
|
91
|
+
if (error.status === 404) {
|
|
92
|
+
log.error('Workspace não encontrado.');
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
log.error(`Erro do servidor (${error.status}): ${error.message}`);
|
|
96
|
+
process.exit(4);
|
|
27
97
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
console.error(chalk_1.default.red('Não autenticado. Execute neetru login primeiro.'));
|
|
32
|
-
process.exit(1);
|
|
98
|
+
if (error instanceof CliNetworkError) {
|
|
99
|
+
log.error(error.message);
|
|
100
|
+
process.exit(4);
|
|
33
101
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
102
|
+
log.error(error.message);
|
|
103
|
+
process.exit(4);
|
|
104
|
+
}
|
|
105
|
+
if (entries.length === 0) {
|
|
106
|
+
log.dim(' Nenhum log encontrado no intervalo.');
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
for (const e of entries)
|
|
110
|
+
printLog(e);
|
|
111
|
+
}
|
|
112
|
+
if (!opts.follow)
|
|
113
|
+
return;
|
|
114
|
+
let lastTs = entries.length > 0 ? entries[entries.length - 1].timestamp : new Date().toISOString();
|
|
115
|
+
log.dim(' Aguardando novos logs… (Ctrl+C para sair)');
|
|
116
|
+
while (true) {
|
|
117
|
+
await new Promise((r) => setTimeout(r, 5000));
|
|
118
|
+
try {
|
|
119
|
+
const next = await fetchLogs(opts.clientId, {
|
|
120
|
+
limit: lines,
|
|
121
|
+
after: lastTs,
|
|
122
|
+
level: opts.level,
|
|
123
|
+
product: opts.product,
|
|
124
|
+
channel: opts.channel,
|
|
125
|
+
correlationId: opts.correlationId,
|
|
50
126
|
});
|
|
51
|
-
|
|
52
|
-
|
|
127
|
+
for (const e of next) {
|
|
128
|
+
printLog(e);
|
|
129
|
+
lastTs = e.timestamp;
|
|
53
130
|
}
|
|
54
|
-
const data = await res.json();
|
|
55
|
-
return data.logs ?? [];
|
|
56
|
-
};
|
|
57
|
-
const printLog = (log) => {
|
|
58
|
-
const ts = new Date(log.timestamp).toLocaleTimeString('pt-BR');
|
|
59
|
-
const levelColor = {
|
|
60
|
-
info: chalk_1.default.blue,
|
|
61
|
-
warn: chalk_1.default.yellow,
|
|
62
|
-
error: chalk_1.default.red,
|
|
63
|
-
debug: chalk_1.default.dim,
|
|
64
|
-
}[log.level] ?? chalk_1.default.white;
|
|
65
|
-
console.log(`${chalk_1.default.dim(ts)} ${levelColor(log.level.toUpperCase().padEnd(5))} ${chalk_1.default.cyan(log.source.padEnd(20))} ${log.message}`);
|
|
66
|
-
};
|
|
67
|
-
// Initial fetch
|
|
68
|
-
const spinner = (0, ora_1.default)('Buscando logs...').start();
|
|
69
|
-
let initialLogs;
|
|
70
|
-
try {
|
|
71
|
-
initialLogs = await fetchLogs();
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
spinner.fail(`Erro: ${e.message}`);
|
|
75
|
-
process.exit(1);
|
|
76
|
-
}
|
|
77
|
-
spinner.stop();
|
|
78
|
-
if (initialLogs.length === 0) {
|
|
79
|
-
console.log(chalk_1.default.dim('Nenhum log encontrado nos últimos ' + options.since));
|
|
80
131
|
}
|
|
81
|
-
|
|
82
|
-
|
|
132
|
+
catch (error) {
|
|
133
|
+
// Transient errors no follow não derrubam o tail
|
|
134
|
+
if (error instanceof CliNetworkError)
|
|
135
|
+
continue;
|
|
136
|
+
throw error;
|
|
83
137
|
}
|
|
84
|
-
|
|
85
|
-
return;
|
|
86
|
-
// Tail mode
|
|
87
|
-
console.log(chalk_1.default.dim('\n--- Tail mode (Ctrl+C para sair) ---'));
|
|
88
|
-
let lastTimestamp = initialLogs.at(-1)?.timestamp ?? new Date().toISOString();
|
|
89
|
-
const poll = async () => {
|
|
90
|
-
try {
|
|
91
|
-
const newLogs = await fetchLogs(lastTimestamp);
|
|
92
|
-
if (newLogs.length > 0) {
|
|
93
|
-
newLogs.forEach(printLog);
|
|
94
|
-
lastTimestamp = newLogs.at(-1).timestamp;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
catch (e) {
|
|
98
|
-
console.error(chalk_1.default.dim(`[poll error: ${e.message}]`));
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
setInterval(poll, 5000);
|
|
102
|
-
});
|
|
103
|
-
return cmd;
|
|
104
|
-
}
|
|
105
|
-
function parseDuration(s) {
|
|
106
|
-
const match = s.match(/^(\d+)([smhd])$/);
|
|
107
|
-
if (!match)
|
|
108
|
-
return 15 * 60000;
|
|
109
|
-
const n = parseInt(match[1], 10);
|
|
110
|
-
const unit = match[2];
|
|
111
|
-
const mult = unit === 's' ? 1000 : unit === 'm' ? 60000 : unit === 'h' ? 3600000 : 86400000;
|
|
112
|
-
return n * mult;
|
|
138
|
+
}
|
|
113
139
|
}
|
|
114
140
|
//# sourceMappingURL=logs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `neetru mocks reset` — limpa fixtures dev (`.neetru/dev-fixtures.json`).
|
|
3
|
+
*
|
|
4
|
+
* Útil quando o produto consome SDK em modo `NEETRU_ENV=dev` e quer um
|
|
5
|
+
* estado limpo entre runs locais. Não toca produção.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'node:fs/promises';
|
|
8
|
+
import * as fsSync from 'node:fs';
|
|
9
|
+
import * as path from 'node:path';
|
|
10
|
+
import { log } from '../utils/logger.js';
|
|
11
|
+
const FIXTURE_FILE = '.neetru/dev-fixtures.json';
|
|
12
|
+
export async function runMocksReset(opts = {}) {
|
|
13
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
14
|
+
const filePath = path.join(cwd, FIXTURE_FILE);
|
|
15
|
+
if (!fsSync.existsSync(filePath)) {
|
|
16
|
+
log.info(`Sem fixture pra resetar (${FIXTURE_FILE} não existe).`);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
// Mantém arquivo, sobrescreve com `{}` (mais auditável que delete).
|
|
20
|
+
await fs.writeFile(filePath, '{}\n', 'utf-8');
|
|
21
|
+
log.success(`Fixture resetada: ${FIXTURE_FILE}`);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=mocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../src/commands/mocks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAOzC,MAAM,YAAY,GAAG,2BAA2B,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAqB,EAAE;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE9C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,4BAA4B,YAAY,eAAe,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,oEAAoE;IACpE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,GAAG,CAAC,OAAO,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;AACnD,CAAC"}
|
package/dist/commands/open.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export interface OpenOptions {
|
|
2
|
+
clientId?: string;
|
|
3
|
+
}
|
|
4
|
+
export declare function runOpen(target: string | undefined, opts: OpenOptions): Promise<void>;
|
package/dist/commands/open.js
CHANGED
|
@@ -1,91 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.openCommand = openCommand;
|
|
40
|
-
const commander_1 = require("commander");
|
|
41
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
-
const config_1 = require("../config");
|
|
43
|
-
const child_process_1 = require("child_process");
|
|
44
|
-
const os = __importStar(require("os"));
|
|
1
|
+
/**
|
|
2
|
+
* `neetru open [target]` — abre página do painel Neetru no browser.
|
|
3
|
+
*
|
|
4
|
+
* Targets: dashboard, builds, logs, settings, workspaces, products, servers.
|
|
5
|
+
* Default: dashboard.
|
|
6
|
+
*/
|
|
7
|
+
import { spawn } from 'node:child_process';
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
import { config } from '../lib/config.js';
|
|
10
|
+
import { log } from '../utils/logger.js';
|
|
45
11
|
const TARGETS = {
|
|
46
|
-
dashboard:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
12
|
+
dashboard: '/',
|
|
13
|
+
builds: '/builds',
|
|
14
|
+
logs: '/observability',
|
|
15
|
+
settings: '/settings',
|
|
16
|
+
workspaces: '/workspaces',
|
|
17
|
+
products: '/products/public',
|
|
18
|
+
servers: '/servers',
|
|
19
|
+
incidents: '/incidents',
|
|
54
20
|
};
|
|
55
|
-
function
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
process.exit(1);
|
|
65
|
-
}
|
|
66
|
-
const buildUrl = TARGETS[target];
|
|
67
|
-
if (!buildUrl) {
|
|
68
|
-
console.error(chalk_1.default.red(`Target desconhecido: ${target}`));
|
|
69
|
-
console.log(chalk_1.default.dim(`Disponíveis: ${Object.keys(TARGETS).join(', ')}`));
|
|
70
|
-
process.exit(1);
|
|
21
|
+
function openUrl(url) {
|
|
22
|
+
try {
|
|
23
|
+
if (process.platform === 'win32') {
|
|
24
|
+
spawn('cmd', ['/c', 'start', '""', url], {
|
|
25
|
+
detached: true,
|
|
26
|
+
stdio: 'ignore',
|
|
27
|
+
windowsHide: true,
|
|
28
|
+
}).unref();
|
|
29
|
+
return;
|
|
71
30
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
try {
|
|
76
|
-
const cmdMap = {
|
|
77
|
-
darwin: `open "${url}"`,
|
|
78
|
-
win32: `start "" "${url}"`,
|
|
79
|
-
linux: `xdg-open "${url}"`,
|
|
80
|
-
};
|
|
81
|
-
const command = cmdMap[platform] ?? cmdMap.linux;
|
|
82
|
-
(0, child_process_1.execSync)(command, { stdio: 'ignore' });
|
|
31
|
+
if (process.platform === 'darwin') {
|
|
32
|
+
spawn('open', [url], { detached: true, stdio: 'ignore' }).unref();
|
|
33
|
+
return;
|
|
83
34
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
35
|
+
spawn('xdg-open', [url], { detached: true, stdio: 'ignore' }).unref();
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
log.warn(`Não consegui abrir browser. Acesse manualmente: ${url}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export async function runOpen(target, opts) {
|
|
42
|
+
const key = (target ?? 'dashboard').toLowerCase();
|
|
43
|
+
if (!(key in TARGETS)) {
|
|
44
|
+
log.error(`Target desconhecido: ${target}`);
|
|
45
|
+
log.dim(` Disponíveis: ${Object.keys(TARGETS).join(', ')}`);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
const corePath = TARGETS[key];
|
|
49
|
+
const baseUrl = String(config.get('neetruCoreUrl') ?? 'https://core.neetru.com').replace(/\/+$/, '');
|
|
50
|
+
let url = `${baseUrl}${corePath}`;
|
|
51
|
+
// Para targets workspace-scoped, anexa clientId se disponível
|
|
52
|
+
if (opts.clientId && ['logs', 'builds'].includes(key)) {
|
|
53
|
+
const sep = url.includes('?') ? '&' : '?';
|
|
54
|
+
url = `${url}${sep}clientId=${encodeURIComponent(opts.clientId)}`;
|
|
55
|
+
}
|
|
56
|
+
console.log(chalk.dim(`Abrindo ${url}…`));
|
|
57
|
+
openUrl(url);
|
|
90
58
|
}
|
|
91
59
|
//# sourceMappingURL=open.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface DbListOptions {
|
|
2
|
+
productId?: string;
|
|
3
|
+
engine?: string;
|
|
4
|
+
status?: string;
|
|
5
|
+
json?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function runDbList(opts: DbListOptions): Promise<void>;
|
|
8
|
+
export interface DbCreateOptions {
|
|
9
|
+
productId: string;
|
|
10
|
+
label: string;
|
|
11
|
+
engine: string;
|
|
12
|
+
environment: string;
|
|
13
|
+
region: string;
|
|
14
|
+
serverId?: string;
|
|
15
|
+
replicaCount?: string;
|
|
16
|
+
json?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function runDbCreate(opts: DbCreateOptions): Promise<void>;
|
|
19
|
+
export declare function runDbGet(id: string, opts: {
|
|
20
|
+
json?: boolean;
|
|
21
|
+
}): Promise<void>;
|
|
22
|
+
export declare function runDbStatus(id: string, status: string, opts: {
|
|
23
|
+
reason?: string;
|
|
24
|
+
json?: boolean;
|
|
25
|
+
}): Promise<void>;
|
|
26
|
+
export declare function runDbRetry(id: string, opts: {
|
|
27
|
+
json?: boolean;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
export declare function runDbRotate(id: string, opts: {
|
|
30
|
+
json?: boolean;
|
|
31
|
+
}): Promise<void>;
|
|
32
|
+
export declare function runDbDelete(id: string, opts: {
|
|
33
|
+
json?: boolean;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
export declare function runDbEngines(opts: {
|
|
36
|
+
json?: boolean;
|
|
37
|
+
}): Promise<void>;
|