@neetru/cli 1.0.1 → 2.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.
Files changed (135) hide show
  1. package/CHANGELOG.md +136 -0
  2. package/README.md +109 -152
  3. package/dist/commands/add.d.ts +8 -3
  4. package/dist/commands/add.js +70 -143
  5. package/dist/commands/add.js.map +1 -1
  6. package/dist/commands/ai.d.ts +4 -0
  7. package/dist/commands/ai.js +88 -0
  8. package/dist/commands/ai.js.map +1 -0
  9. package/dist/commands/autocomplete.d.ts +7 -0
  10. package/dist/commands/autocomplete.js +107 -0
  11. package/dist/commands/autocomplete.js.map +1 -0
  12. package/dist/commands/build.d.ts +18 -0
  13. package/dist/commands/build.js +288 -0
  14. package/dist/commands/build.js.map +1 -0
  15. package/dist/commands/config.d.ts +3 -0
  16. package/dist/commands/config.js +70 -0
  17. package/dist/commands/config.js.map +1 -0
  18. package/dist/commands/db.d.ts +14 -0
  19. package/dist/commands/db.js +187 -0
  20. package/dist/commands/db.js.map +1 -0
  21. package/dist/commands/deploy.d.ts +16 -3
  22. package/dist/commands/deploy.js +400 -180
  23. package/dist/commands/deploy.js.map +1 -1
  24. package/dist/commands/doctor.d.ts +27 -0
  25. package/dist/commands/doctor.js +211 -0
  26. package/dist/commands/doctor.js.map +1 -0
  27. package/dist/commands/env.d.ts +15 -0
  28. package/dist/commands/env.js +56 -0
  29. package/dist/commands/env.js.map +1 -0
  30. package/dist/commands/fn.d.ts +6 -0
  31. package/dist/commands/fn.js +87 -0
  32. package/dist/commands/fn.js.map +1 -0
  33. package/dist/commands/init.d.ts +10 -3
  34. package/dist/commands/init.js +212 -143
  35. package/dist/commands/init.js.map +1 -1
  36. package/dist/commands/login.d.ts +6 -3
  37. package/dist/commands/login.js +222 -92
  38. package/dist/commands/login.js.map +1 -1
  39. package/dist/commands/logout.d.ts +1 -0
  40. package/dist/commands/logout.js +28 -0
  41. package/dist/commands/logout.js.map +1 -0
  42. package/dist/commands/logs.d.ts +14 -3
  43. package/dist/commands/logs.js +132 -106
  44. package/dist/commands/logs.js.map +1 -1
  45. package/dist/commands/mocks.d.ts +5 -0
  46. package/dist/commands/mocks.js +23 -0
  47. package/dist/commands/mocks.js.map +1 -0
  48. package/dist/commands/open.d.ts +4 -3
  49. package/dist/commands/open.js +53 -85
  50. package/dist/commands/open.js.map +1 -1
  51. package/dist/commands/promote.d.ts +9 -0
  52. package/dist/commands/promote.js +114 -0
  53. package/dist/commands/promote.js.map +1 -0
  54. package/dist/commands/publish.d.ts +14 -0
  55. package/dist/commands/publish.js +180 -0
  56. package/dist/commands/publish.js.map +1 -0
  57. package/dist/commands/status.d.ts +5 -3
  58. package/dist/commands/status.js +91 -93
  59. package/dist/commands/status.js.map +1 -1
  60. package/dist/commands/upgrade.d.ts +12 -0
  61. package/dist/commands/upgrade.js +77 -0
  62. package/dist/commands/upgrade.js.map +1 -0
  63. package/dist/commands/validate.d.ts +1 -3
  64. package/dist/commands/validate.js +83 -91
  65. package/dist/commands/validate.js.map +1 -1
  66. package/dist/commands/whoami.d.ts +5 -3
  67. package/dist/commands/whoami.js +76 -28
  68. package/dist/commands/whoami.js.map +1 -1
  69. package/dist/index.d.ts +0 -1
  70. package/dist/index.js +337 -36
  71. package/dist/index.js.map +1 -1
  72. package/dist/lib/ai/context.d.ts +11 -0
  73. package/dist/lib/ai/context.js +112 -0
  74. package/dist/lib/ai/context.js.map +1 -0
  75. package/dist/lib/ai/orchestrator.d.ts +10 -0
  76. package/dist/lib/ai/orchestrator.js +92 -0
  77. package/dist/lib/ai/orchestrator.js.map +1 -0
  78. package/dist/lib/api-client.d.ts +21 -0
  79. package/dist/lib/api-client.js +65 -0
  80. package/dist/lib/api-client.js.map +1 -0
  81. package/dist/lib/auth.d.ts +15 -0
  82. package/dist/lib/auth.js +98 -0
  83. package/dist/lib/auth.js.map +1 -0
  84. package/dist/lib/config-schema.d.ts +165 -0
  85. package/dist/lib/config-schema.js +57 -0
  86. package/dist/lib/config-schema.js.map +1 -0
  87. package/dist/lib/config.d.ts +15 -0
  88. package/dist/lib/config.js +33 -0
  89. package/dist/lib/config.js.map +1 -0
  90. package/dist/utils/logger.d.ts +13 -0
  91. package/dist/utils/logger.js +27 -0
  92. package/dist/utils/logger.js.map +1 -0
  93. package/package.json +35 -33
  94. package/templates/auth/callback.ts +22 -0
  95. package/templates/auth/sign-in.tsx +41 -0
  96. package/templates/billing/checkout.ts +22 -0
  97. package/templates/billing/page.tsx +43 -0
  98. package/templates/support/ticket-form.tsx +68 -0
  99. package/templates/usage/track.ts +30 -0
  100. package/templates/users/profile.tsx +43 -0
  101. package/LICENSE +0 -21
  102. package/dist/commands/add.d.ts.map +0 -1
  103. package/dist/commands/deploy.d.ts.map +0 -1
  104. package/dist/commands/generate-types.d.ts +0 -3
  105. package/dist/commands/generate-types.d.ts.map +0 -1
  106. package/dist/commands/generate-types.js +0 -150
  107. package/dist/commands/generate-types.js.map +0 -1
  108. package/dist/commands/init.d.ts.map +0 -1
  109. package/dist/commands/login.d.ts.map +0 -1
  110. package/dist/commands/logs.d.ts.map +0 -1
  111. package/dist/commands/open.d.ts.map +0 -1
  112. package/dist/commands/status.d.ts.map +0 -1
  113. package/dist/commands/validate.d.ts.map +0 -1
  114. package/dist/commands/whoami.d.ts.map +0 -1
  115. package/dist/config.d.ts +0 -14
  116. package/dist/config.d.ts.map +0 -1
  117. package/dist/config.js +0 -83
  118. package/dist/config.js.map +0 -1
  119. package/dist/index.d.ts.map +0 -1
  120. package/dist/scaffold/auth.d.ts +0 -3
  121. package/dist/scaffold/auth.d.ts.map +0 -1
  122. package/dist/scaffold/auth.js +0 -228
  123. package/dist/scaffold/auth.js.map +0 -1
  124. package/dist/scaffold/billing.d.ts +0 -3
  125. package/dist/scaffold/billing.d.ts.map +0 -1
  126. package/dist/scaffold/billing.js +0 -184
  127. package/dist/scaffold/billing.js.map +0 -1
  128. package/dist/scaffold/usage.d.ts +0 -3
  129. package/dist/scaffold/usage.d.ts.map +0 -1
  130. package/dist/scaffold/usage.js +0 -173
  131. package/dist/scaffold/usage.js.map +0 -1
  132. package/dist/scaffold/users.d.ts +0 -3
  133. package/dist/scaffold/users.d.ts.map +0 -1
  134. package/dist/scaffold/users.js +0 -135
  135. package/dist/scaffold/users.js.map +0 -1
@@ -1,149 +1,218 @@
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]; } };
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ import ora from 'ora';
4
+ import { log } from '../utils/logger.js';
5
+ /**
6
+ * Scaffold de projeto SaaS Neetru.
7
+ * Gera estrutura mínima com Core SDK wired: auth, tenant gate, billing hook.
8
+ */
9
+ export async function runInit({ name, type }) {
10
+ log.banner();
11
+ log.heading(`Inicializando produto: ${name}`);
12
+ console.log();
13
+ const dir = path.resolve(process.cwd(), name);
14
+ // Verifica se diretório já existe
15
+ try {
16
+ await fs.access(dir);
17
+ log.error(`Diretório "${name}" já existe.`);
18
+ process.exit(1);
7
19
  }
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.initCommand = initCommand;
40
- const commander_1 = require("commander");
41
- const chalk_1 = __importDefault(require("chalk"));
42
- const ora_1 = __importDefault(require("ora"));
43
- const fs = __importStar(require("fs-extra"));
44
- const path = __importStar(require("path"));
45
- const config_1 = require("../config");
46
- // Dynamically import inquirer to avoid top-level await issues
47
- async function prompt(questions) {
48
- const { default: inquirer } = await Promise.resolve().then(() => __importStar(require('inquirer')));
49
- return inquirer.prompt(questions);
50
- }
51
- function initCommand() {
52
- const cmd = new commander_1.Command('init');
53
- cmd
54
- .description('Inicializa a integração Neetru no projeto atual')
55
- .option('--core-url <url>', 'URL do Neetru Core (ex: https://core.neetru.com)')
56
- .option('--client-id <id>', 'OAuth Client ID fornecido pelo Neetru Core')
57
- .option('--yes', 'Pular confirmações interativas')
58
- .action(async (options) => {
59
- console.log('\n' + chalk_1.default.bold.cyan('🚀 Neetru SDK — Inicialização'));
60
- console.log(chalk_1.default.dim('Conectando seu SaaS ao Neetru Core\n'));
61
- // Check if already initialized
62
- if (fs.existsSync('neetru.json') && !options.yes) {
63
- const { overwrite } = await prompt([{
64
- type: 'confirm',
65
- name: 'overwrite',
66
- message: chalk_1.default.yellow('neetru.json já existe. Sobrescrever?'),
67
- default: false,
68
- }]);
69
- if (!overwrite) {
70
- console.log(chalk_1.default.dim('Cancelado.'));
71
- return;
72
- }
73
- }
74
- // Collect info interactively if not provided via flags
75
- const coreUrl = options.coreUrl ?? (await prompt([{
76
- type: 'input',
77
- name: 'coreUrl',
78
- message: 'URL do Neetru Core:',
79
- default: 'https://core.neetru.com',
80
- validate: (v) => v.startsWith('http') || 'URL inválida',
81
- }])).coreUrl;
82
- const clientId = options.clientId ?? (await prompt([{
83
- type: 'input',
84
- name: 'clientId',
85
- message: 'OAuth Client ID (do painel Neetru → Workspaces → Credenciais):',
86
- validate: (v) => v.length > 0 || 'Client ID obrigatório',
87
- }])).clientId;
88
- const projectName = path.basename(process.cwd());
89
- const { features } = await prompt([{
90
- type: 'checkbox',
91
- name: 'features',
92
- message: 'Quais integrações você precisa?',
93
- choices: [
94
- { name: 'auth — Login com OAuth Neetru (SSO)', value: 'auth', checked: true },
95
- { name: 'billing — Assinaturas e planos', value: 'billing', checked: true },
96
- { name: 'usage — Metered billing (reporte de uso)', value: 'usage' },
97
- { name: 'users — API de usuários Neetru', value: 'users' },
98
- ],
99
- }]);
100
- // Validate connection
101
- const spinner = (0, ora_1.default)('Verificando conexão com o Core...').start();
102
- try {
103
- const res = await fetch(`${coreUrl}/api/health`, { signal: AbortSignal.timeout(5000) });
104
- if (res.ok) {
105
- spinner.succeed('Conexão verificada');
106
- }
107
- else {
108
- spinner.warn(`Core respondeu com status ${res.status} — continuando mesmo assim`);
109
- }
110
- }
111
- catch {
112
- spinner.warn('Não foi possível verificar a conexão — continuando offline');
113
- }
114
- // Write neetru.json
115
- (0, config_1.writeLocalConfig)({
116
- coreUrl,
117
- clientId,
118
- projectName,
119
- features,
120
- createdAt: new Date().toISOString(),
121
- });
122
- // Write .env.example entries
123
- const envPath = '.env.example';
124
- const envEntries = [
125
- '',
126
- '# Neetru Core',
127
- `NEETRU_CORE_URL=${coreUrl}`,
128
- `NEETRU_CLIENT_ID=${clientId}`,
129
- 'NEETRU_CLIENT_SECRET=your_client_secret_here',
130
- ...(features.includes('billing') ? ['NEETRU_WEBHOOK_SECRET=your_webhook_secret_here'] : []),
131
- ].join('\n');
132
- if (fs.existsSync(envPath)) {
133
- fs.appendFileSync(envPath, envEntries);
134
- console.log(chalk_1.default.dim(` → Entradas adicionadas ao ${envPath}`));
20
+ catch {
21
+ // ok, não existe
22
+ }
23
+ const spinner = ora({ text: 'Criando estrutura...', color: 'blue' }).start();
24
+ try {
25
+ await fs.mkdir(dir, { recursive: true });
26
+ if (type === 'nextjs') {
27
+ await scaffoldNextjs(dir, name);
135
28
  }
136
29
  else {
137
- fs.writeFileSync(envPath, envEntries.trimStart());
138
- console.log(chalk_1.default.dim(` → ${envPath} criado`));
30
+ await scaffoldNodeApi(dir, name);
139
31
  }
140
- console.log('\n' + chalk_1.default.green.bold('✓ neetru.json criado'));
141
- console.log(chalk_1.default.dim('\nPróximos passos:'));
142
- features.forEach((f) => {
143
- console.log(chalk_1.default.dim(` neetru add ${f}`));
144
- });
145
- console.log('');
146
- });
147
- return cmd;
32
+ // Arquivo de config do projeto
33
+ const slug = name
34
+ .trim()
35
+ .toLowerCase()
36
+ .replace(/[^a-z0-9-]+/g, '-')
37
+ .replace(/-+/g, '-')
38
+ .replace(/^-|-$/g, '');
39
+ await fs.writeFile(path.join(dir, 'neetru.config.json'), JSON.stringify({
40
+ $schema: 'https://neetru.com/schema/neetru.config.json',
41
+ slug: slug || name,
42
+ name,
43
+ runtime: type,
44
+ tenantId: '',
45
+ publish: {
46
+ tagline: '',
47
+ description: '',
48
+ iconKey: 'spark',
49
+ status: 'soon',
50
+ order: 100,
51
+ },
52
+ }, null, 2));
53
+ spinner.succeed('Projeto criado com sucesso!');
54
+ console.log();
55
+ log.info(`Diretório: ${dir}`);
56
+ log.info(`Próximos passos:`);
57
+ log.dim(` cd ${name}`);
58
+ log.dim(` npm install`);
59
+ log.dim(` neetru ai # inicie o assistente dentro do projeto`);
60
+ log.dim(` neetru dev # inicia servidor de dev local`);
61
+ console.log();
62
+ }
63
+ catch (err) {
64
+ spinner.fail('Falha ao criar projeto.');
65
+ log.error(err?.message);
66
+ process.exit(1);
67
+ }
68
+ }
69
+ async function scaffoldNextjs(dir, name) {
70
+ const src = path.join(dir, 'src', 'app');
71
+ await fs.mkdir(src, { recursive: true });
72
+ await fs.mkdir(path.join(dir, 'src', 'lib'), { recursive: true });
73
+ await fs.mkdir(path.join(dir, 'src', 'components'), { recursive: true });
74
+ // package.json
75
+ await fs.writeFile(path.join(dir, 'package.json'), JSON.stringify({
76
+ name,
77
+ version: '0.1.0',
78
+ private: true,
79
+ scripts: {
80
+ dev: 'next dev -p 3000',
81
+ build: 'next build',
82
+ start: 'next start',
83
+ },
84
+ dependencies: {
85
+ next: '^15.0.0',
86
+ react: '^19.0.0',
87
+ 'react-dom': '^19.0.0',
88
+ '@neetru/sdk': 'latest',
89
+ firebase: '^11.0.0',
90
+ },
91
+ devDependencies: {
92
+ typescript: '^5.7.0',
93
+ '@types/node': '^22.0.0',
94
+ '@types/react': '^19.0.0',
95
+ },
96
+ }, null, 2));
97
+ // next.config.mjs
98
+ await fs.writeFile(path.join(dir, 'next.config.mjs'), `/** @type {import('next').NextConfig} */
99
+ const nextConfig = {};
100
+ export default nextConfig;
101
+ `);
102
+ // Layout raiz
103
+ await fs.writeFile(path.join(src, 'layout.tsx'), `import type { Metadata } from 'next';
104
+
105
+ export const metadata: Metadata = {
106
+ title: '${name}',
107
+ };
108
+
109
+ export default function RootLayout({ children }: { children: React.ReactNode }) {
110
+ return (
111
+ <html lang="pt-BR">
112
+ <body>{children}</body>
113
+ </html>
114
+ );
115
+ }
116
+ `);
117
+ // Página inicial com tenant gate
118
+ await fs.writeFile(path.join(src, 'page.tsx'), `// Produto Neetru — gerado por neetru init
119
+ // Auth via Core session cookie + tenant gate
120
+
121
+ import { getServerSession } from '@neetru/sdk/server';
122
+ import { redirect } from 'next/navigation';
123
+
124
+ export default async function HomePage() {
125
+ const session = await getServerSession();
126
+ if (!session) redirect('/login');
127
+
128
+ return (
129
+ <main>
130
+ <h1>Bem-vindo, {session.email}</h1>
131
+ <p>Tenant: {session.tenantId}</p>
132
+ </main>
133
+ );
134
+ }
135
+ `);
136
+ // Middleware com tenant gate
137
+ await fs.writeFile(path.join(dir, 'src', 'middleware.ts'), `import { withNeetruAuth } from '@neetru/sdk/middleware';
138
+
139
+ export const middleware = withNeetruAuth({
140
+ loginPath: '/login',
141
+ publicPaths: ['/login', '/api/auth'],
142
+ });
143
+
144
+ export const config = {
145
+ matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'],
146
+ };
147
+ `);
148
+ // tsconfig.json
149
+ await fs.writeFile(path.join(dir, 'tsconfig.json'), JSON.stringify({
150
+ compilerOptions: {
151
+ target: 'ES2017',
152
+ lib: ['dom', 'dom.iterable', 'esnext'],
153
+ allowJs: true,
154
+ skipLibCheck: true,
155
+ strict: true,
156
+ noEmit: true,
157
+ esModuleInterop: true,
158
+ module: 'esnext',
159
+ moduleResolution: 'bundler',
160
+ resolveJsonModule: true,
161
+ isolatedModules: true,
162
+ jsx: 'preserve',
163
+ incremental: true,
164
+ plugins: [{ name: 'next' }],
165
+ paths: { '@/*': ['./src/*'] },
166
+ },
167
+ include: ['next-env.d.ts', '**/*.ts', '**/*.tsx', '.next/types/**/*.ts'],
168
+ exclude: ['node_modules'],
169
+ }, null, 2));
170
+ }
171
+ async function scaffoldNodeApi(dir, name) {
172
+ await fs.mkdir(path.join(dir, 'src', 'routes'), { recursive: true });
173
+ await fs.mkdir(path.join(dir, 'src', 'middleware'), { recursive: true });
174
+ await fs.writeFile(path.join(dir, 'package.json'), JSON.stringify({
175
+ name,
176
+ version: '0.1.0',
177
+ private: true,
178
+ type: 'module',
179
+ scripts: {
180
+ dev: 'tsx --watch src/index.ts',
181
+ build: 'tsc',
182
+ start: 'node dist/index.js',
183
+ },
184
+ dependencies: {
185
+ fastify: '^5.0.0',
186
+ '@neetru/sdk': 'latest',
187
+ },
188
+ devDependencies: {
189
+ tsx: '^4.0.0',
190
+ typescript: '^5.7.0',
191
+ '@types/node': '^22.0.0',
192
+ },
193
+ }, null, 2));
194
+ await fs.writeFile(path.join(dir, 'src', 'index.ts'), `import Fastify from 'fastify';
195
+ import { neetruPlugin } from '@neetru/sdk/fastify';
196
+
197
+ const app = Fastify({ logger: true });
198
+
199
+ // Plugin Core: auth, tenant gate, entitlements
200
+ await app.register(neetruPlugin, {
201
+ apiKey: process.env.NEETRU_API_KEY,
202
+ });
203
+
204
+ app.get('/health', async () => ({ status: 'ok' }));
205
+
206
+ // Rota protegida com verificação de entitlement
207
+ app.get('/api/data', {
208
+ preHandler: app.auth([app.neetruAuth]),
209
+ handler: async (req) => {
210
+ const { tenantId } = req.neetruSession;
211
+ return { tenantId, data: [] };
212
+ },
213
+ });
214
+
215
+ await app.listen({ port: 3000, host: '0.0.0.0' });
216
+ `);
148
217
  }
149
218
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,kCA0GC;AAvHD,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,6CAA+B;AAC/B,2CAA6B;AAC7B,sCAA6C;AAE7C,8DAA8D;AAC9D,KAAK,UAAU,MAAM,CAAC,SAAwE;IAC5F,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;IACvD,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAgB,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,WAAW;IACzB,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,GAAG;SACA,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;SAC9E,MAAM,CAAC,kBAAkB,EAAE,4CAA4C,CAAC;SACxE,MAAM,CAAC,OAAO,EAAE,gCAAgC,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAE/D,+BAA+B;QAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;oBAClC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,eAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC;oBAC7D,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC;gBAChD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,qBAAqB;gBAC9B,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc;aAChE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC;gBAClD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,gEAAgE;gBACzE,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAuB;aACjE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEd,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;gBACjC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iCAAiC;gBAC1C,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,yCAAyC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;oBACjF,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;oBAC5E,EAAE,IAAI,EAAE,6CAA6C,EAAE,KAAK,EAAE,OAAO,EAAE;oBACvE,EAAE,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,OAAO,EAAE;iBAC9D;aACF,CAAC,CAAC,CAAC;QAEJ,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,mCAAmC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,aAAa,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,6BAA6B,GAAG,CAAC,MAAM,4BAA4B,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC7E,CAAC;QAED,oBAAoB;QACpB,IAAA,yBAAgB,EAAC;YACf,OAAO;YACP,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,OAAO,GAAG,cAAc,CAAC;QAC/B,MAAM,UAAU,GAAG;YACjB,EAAE;YACF,eAAe;YACf,mBAAmB,OAAO,EAAE;YAC5B,oBAAoB,QAAQ,EAAE;YAC9B,8CAA8C;YAC9C,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,OAAO,SAAS,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
- import { Command } from 'commander';
2
- export declare function loginCommand(): Command;
3
- //# sourceMappingURL=login.d.ts.map
1
+ interface RunLoginOpts {
2
+ token?: string;
3
+ json?: boolean;
4
+ }
5
+ export declare function runLogin(opts?: RunLoginOpts): Promise<void>;
6
+ export {};