@neetru/cli 1.0.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/LICENSE +21 -0
- package/README.md +197 -0
- package/dist/commands/add.d.ts +3 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +150 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/deploy.d.ts +3 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +196 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/generate-types.d.ts +3 -0
- package/dist/commands/generate-types.d.ts.map +1 -0
- package/dist/commands/generate-types.js +150 -0
- package/dist/commands/generate-types.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +149 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +104 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logs.d.ts +3 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +114 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/open.d.ts +3 -0
- package/dist/commands/open.d.ts.map +1 -0
- package/dist/commands/open.js +91 -0
- package/dist/commands/open.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +99 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/validate.d.ts +3 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +99 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/whoami.d.ts +3 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +33 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config.d.ts +14 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +83 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/scaffold/auth.d.ts +3 -0
- package/dist/scaffold/auth.d.ts.map +1 -0
- package/dist/scaffold/auth.js +228 -0
- package/dist/scaffold/auth.js.map +1 -0
- package/dist/scaffold/billing.d.ts +3 -0
- package/dist/scaffold/billing.d.ts.map +1 -0
- package/dist/scaffold/billing.js +184 -0
- package/dist/scaffold/billing.js.map +1 -0
- package/dist/scaffold/usage.d.ts +3 -0
- package/dist/scaffold/usage.d.ts.map +1 -0
- package/dist/scaffold/usage.js +173 -0
- package/dist/scaffold/usage.js.map +1 -0
- package/dist/scaffold/users.d.ts +3 -0
- package/dist/scaffold/users.d.ts.map +1 -0
- package/dist/scaffold/users.js +135 -0
- package/dist/scaffold/users.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
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"));
|
|
45
|
+
const TARGETS = {
|
|
46
|
+
dashboard: (url) => `${url}/`,
|
|
47
|
+
workspace: (url, id) => `${url}/workspaces?clientId=${encodeURIComponent(id)}`,
|
|
48
|
+
builds: (url) => `${url}/builds`,
|
|
49
|
+
deployments: (url) => `${url}/deployments`,
|
|
50
|
+
billing: (url) => `${url}/billing`,
|
|
51
|
+
logs: (url) => `${url}/logs`,
|
|
52
|
+
credentials: (url) => `${url}/admin/credentials`,
|
|
53
|
+
status: (url) => `${url}/status`,
|
|
54
|
+
};
|
|
55
|
+
function openCommand() {
|
|
56
|
+
const cmd = new commander_1.Command('open');
|
|
57
|
+
cmd
|
|
58
|
+
.description('Abre uma página do painel Neetru no navegador')
|
|
59
|
+
.argument('[target]', `Página: ${Object.keys(TARGETS).join(' | ')}`, 'dashboard')
|
|
60
|
+
.action((target) => {
|
|
61
|
+
const config = (0, config_1.readLocalConfig)();
|
|
62
|
+
if (!config) {
|
|
63
|
+
console.error(chalk_1.default.red('neetru.json não encontrado. Execute neetru init primeiro.'));
|
|
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);
|
|
71
|
+
}
|
|
72
|
+
const url = buildUrl(config.coreUrl, config.clientId);
|
|
73
|
+
console.log(chalk_1.default.dim(`Abrindo ${url}`));
|
|
74
|
+
const platform = os.platform();
|
|
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' });
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
console.log(chalk_1.default.yellow('Não foi possível abrir o navegador automaticamente.'));
|
|
86
|
+
console.log(chalk_1.default.cyan(url));
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
return cmd;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=open.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,kCAuCC;AAxDD,yCAAoC;AACpC,kDAA0B;AAC1B,sCAA4C;AAC5C,iDAAyC;AACzC,uCAAyB;AAEzB,MAAM,OAAO,GAAkE;IAC7E,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG;IAC7B,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,EAAE;IAC9E,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,SAAS;IAChC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,cAAc;IAC1C,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,UAAU;IAClC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO;IAC5B,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,oBAAoB;IAChD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,SAAS;CACjC,CAAC;AAEF,SAAgB,WAAW;IACzB,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,GAAG;SACA,WAAW,CAAC,+CAA+C,CAAC;SAC5D,QAAQ,CAAC,UAAU,EAAE,WAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC;SAChF,MAAM,CAAC,CAAC,MAAc,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAA2B;gBACrC,MAAM,EAAE,SAAS,GAAG,GAAG;gBACvB,KAAK,EAAE,aAAa,GAAG,GAAG;gBAC1B,KAAK,EAAE,aAAa,GAAG,GAAG;aAC3B,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC;YACjD,IAAA,wBAAQ,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,aAAa,IAAI,OAAO,CA2FvC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.statusCommand = statusCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const config_1 = require("../config");
|
|
11
|
+
function statusCommand() {
|
|
12
|
+
const cmd = new commander_1.Command('status');
|
|
13
|
+
cmd
|
|
14
|
+
.description('Mostra o status atual do workspace Neetru')
|
|
15
|
+
.option('--json', 'Output em JSON ao invés de tabela')
|
|
16
|
+
.action(async (options) => {
|
|
17
|
+
let config;
|
|
18
|
+
try {
|
|
19
|
+
config = (0, config_1.requireConfig)();
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
console.error(chalk_1.default.red(e.message));
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const global = (0, config_1.readGlobalConfig)();
|
|
26
|
+
const apiKey = global.clientSecret ?? process.env.NEETRU_CLI_API_KEY;
|
|
27
|
+
if (!apiKey) {
|
|
28
|
+
console.error(chalk_1.default.red('Não autenticado. Execute neetru login primeiro.'));
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
const spinner = (0, ora_1.default)('Buscando status...').start();
|
|
32
|
+
let status;
|
|
33
|
+
try {
|
|
34
|
+
const res = await fetch(`${config.coreUrl}/api/v1/cli/workspace/status?clientId=${encodeURIComponent(config.clientId)}`, {
|
|
35
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
36
|
+
signal: AbortSignal.timeout(8000),
|
|
37
|
+
});
|
|
38
|
+
if (!res.ok) {
|
|
39
|
+
spinner.fail(`HTTP ${res.status}`);
|
|
40
|
+
if (res.status === 401)
|
|
41
|
+
console.log(chalk_1.default.dim(' → Sessão expirada. Execute neetru login novamente.'));
|
|
42
|
+
if (res.status === 404)
|
|
43
|
+
console.log(chalk_1.default.dim(' → Workspace não encontrado. Verifique seu clientId.'));
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
status = await res.json();
|
|
47
|
+
spinner.succeed('Status obtido');
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
spinner.fail(`Erro: ${e.message}`);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
if (options.json) {
|
|
54
|
+
console.log(JSON.stringify(status, null, 2));
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const statusColor = (s) => {
|
|
58
|
+
if (!s)
|
|
59
|
+
return chalk_1.default.dim('—');
|
|
60
|
+
if (['ativo', 'success', 'SUCCESS', 'active'].includes(s))
|
|
61
|
+
return chalk_1.default.green(s);
|
|
62
|
+
if (['failed', 'FAILURE', 'suspenso', 'expirado'].includes(s))
|
|
63
|
+
return chalk_1.default.red(s);
|
|
64
|
+
if (['pending', 'running', 'WORKING', 'em provisionamento'].includes(s))
|
|
65
|
+
return chalk_1.default.yellow(s);
|
|
66
|
+
return chalk_1.default.cyan(s);
|
|
67
|
+
};
|
|
68
|
+
console.log('\n' + chalk_1.default.bold('Workspace Status'));
|
|
69
|
+
console.log(chalk_1.default.dim('─'.repeat(50)));
|
|
70
|
+
console.log(` ${chalk_1.default.dim('Workspace ID:')} ${chalk_1.default.cyan(status.workspaceId)}`);
|
|
71
|
+
console.log(` ${chalk_1.default.dim('Status:')} ${statusColor(status.status)}`);
|
|
72
|
+
if (status.primaryDomain) {
|
|
73
|
+
console.log(` ${chalk_1.default.dim('Domain:')} ${chalk_1.default.cyan(status.primaryDomain)}`);
|
|
74
|
+
}
|
|
75
|
+
else if (status.temporaryDomain) {
|
|
76
|
+
console.log(` ${chalk_1.default.dim('Dev Domain:')} ${chalk_1.default.cyan(status.temporaryDomain)}`);
|
|
77
|
+
}
|
|
78
|
+
if (status.resourceTier) {
|
|
79
|
+
console.log(` ${chalk_1.default.dim('Tier:')} ${status.resourceTier}`);
|
|
80
|
+
}
|
|
81
|
+
console.log('');
|
|
82
|
+
console.log(chalk_1.default.bold(' Last Build'));
|
|
83
|
+
console.log(` ${chalk_1.default.dim(' ID:')} ${status.lastBuildId ? chalk_1.default.cyan(status.lastBuildId.slice(0, 12)) : chalk_1.default.dim('—')}`);
|
|
84
|
+
console.log(` ${chalk_1.default.dim(' Status:')} ${statusColor(status.lastBuildStatus)}`);
|
|
85
|
+
console.log('');
|
|
86
|
+
console.log(chalk_1.default.bold(' Last Deployment'));
|
|
87
|
+
console.log(` ${chalk_1.default.dim(' ID:')} ${status.lastDeploymentId ? chalk_1.default.cyan(status.lastDeploymentId.slice(0, 12)) : chalk_1.default.dim('—')}`);
|
|
88
|
+
console.log(` ${chalk_1.default.dim(' Status:')} ${statusColor(status.lastDeploymentStatus)}`);
|
|
89
|
+
if (status.expiresAt) {
|
|
90
|
+
const expiresIn = Math.ceil((new Date(status.expiresAt).getTime() - Date.now()) / (1000 * 60 * 60 * 24));
|
|
91
|
+
const color = expiresIn < 7 ? chalk_1.default.yellow : chalk_1.default.dim;
|
|
92
|
+
console.log('');
|
|
93
|
+
console.log(` ${color(`Expira em ${expiresIn} dias`)}`);
|
|
94
|
+
}
|
|
95
|
+
console.log('');
|
|
96
|
+
});
|
|
97
|
+
return cmd;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,eAAe,IAAI,OAAO,CA2FzC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validateCommand = validateCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const config_1 = require("../config");
|
|
11
|
+
function validateCommand() {
|
|
12
|
+
const cmd = new commander_1.Command('validate');
|
|
13
|
+
cmd
|
|
14
|
+
.description('Valida a configuração Neetru e conexão com o Core')
|
|
15
|
+
.action(async () => {
|
|
16
|
+
let config;
|
|
17
|
+
try {
|
|
18
|
+
config = (0, config_1.requireConfig)();
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
console.error(chalk_1.default.red(e.message));
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
console.log('\n' + chalk_1.default.bold('Validando configuração Neetru...\n'));
|
|
25
|
+
const checks = [
|
|
26
|
+
{
|
|
27
|
+
name: 'neetru.json existe',
|
|
28
|
+
check: async () => ({ ok: true, message: `clientId: ${config.clientId}` }),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'NEETRU_CLIENT_ID definido',
|
|
32
|
+
check: async () => {
|
|
33
|
+
const ok = !!process.env.NEETRU_CLIENT_ID;
|
|
34
|
+
return { ok, message: ok ? 'OK' : 'NEETRU_CLIENT_ID não encontrado no ambiente' };
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'NEETRU_CLIENT_SECRET definido',
|
|
39
|
+
check: async () => {
|
|
40
|
+
const ok = !!process.env.NEETRU_CLIENT_SECRET;
|
|
41
|
+
return { ok, message: ok ? 'OK' : 'NEETRU_CLIENT_SECRET não encontrado (necessário para token exchange)' };
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: `Core acessível (${config.coreUrl})`,
|
|
46
|
+
check: async () => {
|
|
47
|
+
try {
|
|
48
|
+
const res = await fetch(`${config.coreUrl}/api/health`, {
|
|
49
|
+
signal: AbortSignal.timeout(5000),
|
|
50
|
+
});
|
|
51
|
+
return { ok: res.ok, message: res.ok ? `HTTP ${res.status}` : `HTTP ${res.status} — Core inacessível` };
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
return { ok: false, message: `Falha de rede: ${e.message}` };
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'OAuth Client válido',
|
|
60
|
+
check: async () => {
|
|
61
|
+
try {
|
|
62
|
+
const res = await fetch(`${config.coreUrl}/api/v1/oauth/validate-client?client_id=${encodeURIComponent(config.clientId)}`, { signal: AbortSignal.timeout(5000) });
|
|
63
|
+
if (res.ok)
|
|
64
|
+
return { ok: true, message: 'Client ID reconhecido' };
|
|
65
|
+
if (res.status === 404)
|
|
66
|
+
return { ok: false, message: 'Client ID não encontrado no Core' };
|
|
67
|
+
return { ok: false, message: `Status ${res.status}` };
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return { ok: false, message: 'Não foi possível validar (Core offline?)' };
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
let allOk = true;
|
|
76
|
+
for (const check of checks) {
|
|
77
|
+
const spinner = (0, ora_1.default)(check.name).start();
|
|
78
|
+
const result = await check.check();
|
|
79
|
+
if (result.ok) {
|
|
80
|
+
spinner.succeed(`${check.name} — ${chalk_1.default.dim(result.message)}`);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
spinner.fail(`${check.name} — ${chalk_1.default.yellow(result.message)}`);
|
|
84
|
+
allOk = false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
console.log('');
|
|
88
|
+
if (allOk) {
|
|
89
|
+
console.log(chalk_1.default.green.bold('✓ Configuração válida. Pronto para uso!'));
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
console.log(chalk_1.default.yellow.bold('⚠ Algumas verificações falharam. Corrija antes de usar em produção.'));
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
console.log('');
|
|
96
|
+
});
|
|
97
|
+
return cmd;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":";;;;;AAKA,0CA2FC;AAhGD,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,sCAA0C;AAE1C,SAAgB,eAAe;IAC7B,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,UAAU,CAAC,CAAC;IAEpC,GAAG;SACA,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,MAAwC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,GAAG,IAAA,sBAAa,GAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAErE,MAAM,MAAM,GAAoF;YAC9F;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;aAC3E;YACD;gBACE,IAAI,EAAE,2BAA2B;gBACjC,KAAK,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;oBAC1C,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6CAA6C,EAAE,CAAC;gBACpF,CAAC;aACF;YACD;gBACE,IAAI,EAAE,+BAA+B;gBACrC,KAAK,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;oBAC9C,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sEAAsE,EAAE,CAAC;gBAC7G,CAAC;aACF;YACD;gBACE,IAAI,EAAE,mBAAmB,MAAM,CAAC,OAAO,GAAG;gBAC1C,KAAK,EAAE,KAAK,IAAI,EAAE;oBAChB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,aAAa,EAAE;4BACtD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;yBAClC,CAAC,CAAC;wBACH,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,MAAM,qBAAqB,EAAE,CAAC;oBAC1G,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAmB,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC1E,CAAC;gBACH,CAAC;aACF;YACD;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,KAAK,EAAE,KAAK,IAAI,EAAE;oBAChB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,MAAM,CAAC,OAAO,2CAA2C,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EACjG,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CACtC,CAAC;wBACF,IAAI,GAAG,CAAC,EAAE;4BAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;wBAClE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;4BAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;wBAC1F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;oBACxD,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC;oBAC5E,CAAC;gBACH,CAAC;aACF;SACF,CAAC;QAEF,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YAEnC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,MAAM,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,MAAM,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChE,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC,CAAC;YACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,aAAa,IAAI,OAAO,CA0BvC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.whoamiCommand = whoamiCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const config_1 = require("../config");
|
|
10
|
+
function whoamiCommand() {
|
|
11
|
+
const cmd = new commander_1.Command('whoami');
|
|
12
|
+
cmd
|
|
13
|
+
.description('Exibe a configuração Neetru do projeto atual')
|
|
14
|
+
.action(() => {
|
|
15
|
+
const config = (0, config_1.readLocalConfig)();
|
|
16
|
+
if (!config) {
|
|
17
|
+
console.log(chalk_1.default.yellow('Nenhum neetru.json encontrado neste diretório.'));
|
|
18
|
+
console.log(chalk_1.default.dim('Execute neetru init para começar.'));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
console.log('\n' + chalk_1.default.bold('Projeto Neetru:'));
|
|
22
|
+
console.log(` Core URL: ${chalk_1.default.cyan(config.coreUrl)}`);
|
|
23
|
+
console.log(` Client ID: ${chalk_1.default.cyan(config.clientId)}`);
|
|
24
|
+
if (config.projectName) {
|
|
25
|
+
console.log(` Projeto: ${chalk_1.default.cyan(config.projectName)}`);
|
|
26
|
+
}
|
|
27
|
+
console.log(` Features: ${config.features.length > 0 ? chalk_1.default.cyan(config.features.join(', ')) : chalk_1.default.dim('nenhuma')}`);
|
|
28
|
+
console.log(` Criado em: ${chalk_1.default.dim(config.createdAt)}`);
|
|
29
|
+
console.log('');
|
|
30
|
+
});
|
|
31
|
+
return cmd;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":";;;;;AAIA,sCA0BC;AA9BD,yCAAoC;AACpC,kDAA0B;AAC1B,sCAA4C;AAE5C,SAAgB,aAAa;IAC3B,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC,CAAC;IAElC,GAAG;SACA,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;QAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,iBAAiB,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,iBAAiB,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,iBAAiB,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3H,OAAO,CAAC,GAAG,CAAC,iBAAiB,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface NeetruConfig {
|
|
2
|
+
coreUrl: string;
|
|
3
|
+
clientId: string;
|
|
4
|
+
clientSecret?: string;
|
|
5
|
+
projectName?: string;
|
|
6
|
+
features: string[];
|
|
7
|
+
createdAt: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function readLocalConfig(): NeetruConfig | null;
|
|
10
|
+
export declare function writeLocalConfig(config: NeetruConfig): void;
|
|
11
|
+
export declare function readGlobalConfig(): Partial<NeetruConfig>;
|
|
12
|
+
export declare function writeGlobalConfig(config: Partial<NeetruConfig>): void;
|
|
13
|
+
export declare function requireConfig(): NeetruConfig;
|
|
14
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAOrD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAE3D;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC,CAOxD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAGrE;AAED,wBAAgB,aAAa,IAAI,YAAY,CAU5C"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.readLocalConfig = readLocalConfig;
|
|
37
|
+
exports.writeLocalConfig = writeLocalConfig;
|
|
38
|
+
exports.readGlobalConfig = readGlobalConfig;
|
|
39
|
+
exports.writeGlobalConfig = writeGlobalConfig;
|
|
40
|
+
exports.requireConfig = requireConfig;
|
|
41
|
+
const fs = __importStar(require("fs-extra"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const os = __importStar(require("os"));
|
|
44
|
+
const CONFIG_DIR = path.join(os.homedir(), '.neetru');
|
|
45
|
+
const GLOBAL_CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
46
|
+
const LOCAL_CONFIG_FILE = path.join(process.cwd(), 'neetru.json');
|
|
47
|
+
function readLocalConfig() {
|
|
48
|
+
try {
|
|
49
|
+
if (!fs.existsSync(LOCAL_CONFIG_FILE))
|
|
50
|
+
return null;
|
|
51
|
+
return fs.readJsonSync(LOCAL_CONFIG_FILE);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function writeLocalConfig(config) {
|
|
58
|
+
fs.writeJsonSync(LOCAL_CONFIG_FILE, config, { spaces: 2 });
|
|
59
|
+
}
|
|
60
|
+
function readGlobalConfig() {
|
|
61
|
+
try {
|
|
62
|
+
if (!fs.existsSync(GLOBAL_CONFIG_FILE))
|
|
63
|
+
return {};
|
|
64
|
+
return fs.readJsonSync(GLOBAL_CONFIG_FILE);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return {};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function writeGlobalConfig(config) {
|
|
71
|
+
fs.ensureDirSync(CONFIG_DIR);
|
|
72
|
+
fs.writeJsonSync(GLOBAL_CONFIG_FILE, config, { spaces: 2 });
|
|
73
|
+
}
|
|
74
|
+
function requireConfig() {
|
|
75
|
+
const config = readLocalConfig();
|
|
76
|
+
if (!config) {
|
|
77
|
+
throw new Error('neetru.json não encontrado. Execute ' +
|
|
78
|
+
'\x1b[1mneetru init\x1b[0m' +
|
|
79
|
+
' no diretório do seu projeto.');
|
|
80
|
+
}
|
|
81
|
+
return config;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,0CAOC;AAED,4CAEC;AAED,4CAOC;AAED,8CAGC;AAED,sCAUC;AAtDD,6CAA+B;AAC/B,2CAA6B;AAC7B,uCAAyB;AAWzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAChE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;AAElE,SAAgB,eAAe;IAC7B,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,OAAO,IAAI,CAAC;QACnD,OAAO,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAiB,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAoB;IACnD,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAgB,gBAAgB;IAC9B,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAAE,OAAO,EAAE,CAAC;QAClD,OAAO,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAA0B,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,MAA6B;IAC7D,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7B,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,sCAAsC;YACtC,2BAA2B;YAC3B,+BAA+B,CAChC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const init_1 = require("./commands/init");
|
|
10
|
+
const add_1 = require("./commands/add");
|
|
11
|
+
const validate_1 = require("./commands/validate");
|
|
12
|
+
const generate_types_1 = require("./commands/generate-types");
|
|
13
|
+
const whoami_1 = require("./commands/whoami");
|
|
14
|
+
const login_1 = require("./commands/login");
|
|
15
|
+
const status_1 = require("./commands/status");
|
|
16
|
+
const logs_1 = require("./commands/logs");
|
|
17
|
+
const deploy_1 = require("./commands/deploy");
|
|
18
|
+
const open_1 = require("./commands/open");
|
|
19
|
+
const program = new commander_1.Command();
|
|
20
|
+
program
|
|
21
|
+
.name('neetru')
|
|
22
|
+
.description(chalk_1.default.bold('Neetru CLI') +
|
|
23
|
+
' — SDK & DevOps para integrar seu SaaS com Neetru Core\n' +
|
|
24
|
+
chalk_1.default.dim(' init · add · login · status · deploy · logs · open'))
|
|
25
|
+
.version('1.0.0');
|
|
26
|
+
// Setup
|
|
27
|
+
program.addCommand((0, init_1.initCommand)());
|
|
28
|
+
program.addCommand((0, add_1.addCommand)());
|
|
29
|
+
program.addCommand((0, validate_1.validateCommand)());
|
|
30
|
+
program.addCommand((0, generate_types_1.generateTypesCommand)());
|
|
31
|
+
// Auth & info
|
|
32
|
+
program.addCommand((0, login_1.loginCommand)());
|
|
33
|
+
program.addCommand((0, whoami_1.whoamiCommand)());
|
|
34
|
+
// Operations
|
|
35
|
+
program.addCommand((0, status_1.statusCommand)());
|
|
36
|
+
program.addCommand((0, deploy_1.deployCommand)());
|
|
37
|
+
program.addCommand((0, logs_1.logsCommand)());
|
|
38
|
+
program.addCommand((0, open_1.openCommand)());
|
|
39
|
+
program.parseAsync(process.argv);
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,yCAAoC;AACpC,kDAA0B;AAC1B,0CAA8C;AAC9C,wCAA4C;AAC5C,kDAAsD;AACtD,8DAAiE;AACjE,8CAAkD;AAClD,4CAAgD;AAChD,8CAAkD;AAClD,0CAA8C;AAC9C,8CAAkD;AAClD,0CAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,eAAK,CAAC,IAAI,CAAC,YAAY,CAAC;IACxB,0DAA0D;IAC1D,eAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAClE;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,QAAQ;AACR,OAAO,CAAC,UAAU,CAAC,IAAA,kBAAW,GAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,IAAA,gBAAU,GAAE,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,IAAA,0BAAe,GAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,IAAA,qCAAoB,GAAE,CAAC,CAAC;AAE3C,cAAc;AACd,OAAO,CAAC,UAAU,CAAC,IAAA,oBAAY,GAAE,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;AAEpC,aAAa;AACb,OAAO,CAAC,UAAU,CAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,IAAA,kBAAW,GAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,IAAA,kBAAW,GAAE,CAAC,CAAC;AAElC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/scaffold/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA6L1F"}
|