@braingrid/cli 0.1.1 → 0.1.2
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/README.md +13 -15
- package/dist/cli.js +1 -2
- package/dist/cli.js.map +1 -1
- package/dist/handlers/init.handlers.d.ts +0 -1
- package/dist/handlers/init.handlers.d.ts.map +1 -1
- package/dist/handlers/init.handlers.js +477 -39
- package/dist/handlers/init.handlers.js.map +1 -1
- package/dist/handlers/status.handlers.js +6 -6
- package/dist/handlers/status.handlers.js.map +1 -1
- package/dist/types/project.d.ts +1 -0
- package/dist/types/project.d.ts.map +1 -1
- package/dist/utils/cli-tools.d.ts.map +1 -1
- package/dist/utils/cli-tools.js +9 -0
- package/dist/utils/cli-tools.js.map +1 -1
- package/dist/utils/config.d.ts +1 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +18 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/gh-installer.d.ts +31 -0
- package/dist/utils/gh-installer.d.ts.map +1 -0
- package/dist/utils/gh-installer.js +296 -0
- package/dist/utils/gh-installer.js.map +1 -0
- package/dist/utils/git-installer.d.ts +31 -0
- package/dist/utils/git-installer.d.ts.map +1 -0
- package/dist/utils/git-installer.js +290 -0
- package/dist/utils/git-installer.js.map +1 -0
- package/dist/utils/github-repo.d.ts +43 -0
- package/dist/utils/github-repo.d.ts.map +1 -0
- package/dist/utils/github-repo.js +113 -0
- package/dist/utils/github-repo.js.map +1 -0
- package/dist/utils/package-manager-installer.d.ts +36 -0
- package/dist/utils/package-manager-installer.d.ts.map +1 -0
- package/dist/utils/package-manager-installer.js +106 -0
- package/dist/utils/package-manager-installer.js.map +1 -0
- package/dist/utils/repository-access.d.ts +89 -0
- package/dist/utils/repository-access.d.ts.map +1 -0
- package/dist/utils/repository-access.js +132 -0
- package/dist/utils/repository-access.js.map +1 -0
- package/dist/utils/spinner.d.ts +47 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +101 -0
- package/dist/utils/spinner.js.map +1 -0
- package/package.json +1 -1
|
@@ -3,23 +3,405 @@
|
|
|
3
3
|
* Handles the `braingrid init` command for initializing a repository with a BrainGrid project
|
|
4
4
|
*/
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import { confirm } from '@inquirer/prompts';
|
|
6
|
+
import { confirm, select, input } from '@inquirer/prompts';
|
|
7
7
|
import { BraingridAuth } from '../services/auth.js';
|
|
8
8
|
import { ProjectService } from '../services/project-service.js';
|
|
9
|
+
import { GitHubService } from '../services/internal/github-service.js';
|
|
9
10
|
import { getConfig } from '../utils/config.js';
|
|
10
11
|
import { getGitRepositoryInfo } from '../utils/git.js';
|
|
12
|
+
import { isGitInstalled, installGit, getManualInstallInstructions, } from '../utils/git-installer.js';
|
|
13
|
+
import { isGhInstalled, installGh } from '../utils/gh-installer.js';
|
|
11
14
|
import { formatError } from '../utils/error-formatter.js';
|
|
12
15
|
import { projectConfigExists, saveProjectConfig, loadProjectConfig } from '../utils/local-store.js';
|
|
16
|
+
import { handleLogin } from './auth.handlers.js';
|
|
17
|
+
import { RepositoryService } from '../services/internal/repository-service.js';
|
|
18
|
+
import { findInstallationForOwner, checkRepositoryAccess, getRepositoryId, } from '../utils/repository-access.js';
|
|
19
|
+
import { waitWithSpinner } from '../utils/spinner.js';
|
|
20
|
+
import { canUseGhAutomation, initGitRepo, createGitHubRepoWithGh, getCurrentDirectoryName, } from '../utils/github-repo.js';
|
|
13
21
|
function getServices() {
|
|
14
22
|
const config = getConfig();
|
|
15
23
|
const auth = new BraingridAuth(config.apiUrl);
|
|
16
24
|
const projectService = new ProjectService(config.apiUrl, auth);
|
|
17
|
-
|
|
25
|
+
const githubService = new GitHubService(config.apiUrl, auth);
|
|
26
|
+
const repositoryService = new RepositoryService(config.apiUrl, auth);
|
|
27
|
+
return { projectService, githubService, repositoryService, auth };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Prompt user to add a GitHub organization installation
|
|
31
|
+
*/
|
|
32
|
+
function promptToAddOrganization(owner, webUrl) {
|
|
33
|
+
return {
|
|
34
|
+
success: false,
|
|
35
|
+
message: chalk.yellow('⚠️ No projects found for this repository.\n\n') +
|
|
36
|
+
chalk.dim(`Repository: ${owner}/*\n\n`) +
|
|
37
|
+
chalk.dim(`You have GitHub connected, but not for the "${owner}" organization.\n\n`) +
|
|
38
|
+
chalk.dim('To connect ') +
|
|
39
|
+
chalk.cyan(owner) +
|
|
40
|
+
chalk.dim(':\n') +
|
|
41
|
+
chalk.dim(' 1. Visit: ') +
|
|
42
|
+
chalk.cyan(`${webUrl}/integrations`) +
|
|
43
|
+
chalk.dim('\n') +
|
|
44
|
+
chalk.dim(' 2. Click "Add GitHub Organization"\n') +
|
|
45
|
+
chalk.dim(` 3. Select "${owner}"\n`) +
|
|
46
|
+
chalk.dim(' 4. Run ') +
|
|
47
|
+
chalk.cyan('braingrid init') +
|
|
48
|
+
chalk.dim(' again'),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Prompt user to create a project with repository linking
|
|
53
|
+
*/
|
|
54
|
+
async function promptToCreateProject(gitInfo, projectService, repositoryService) {
|
|
55
|
+
const webUrl = getConfig().getWebAppUrl();
|
|
56
|
+
if (!gitInfo.owner || !gitInfo.name) {
|
|
57
|
+
return {
|
|
58
|
+
success: false,
|
|
59
|
+
message: chalk.red('❌ Repository information is incomplete'),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// Get repository ID for linking
|
|
63
|
+
const repositoryId = await getRepositoryId(repositoryService, gitInfo.owner, gitInfo.name);
|
|
64
|
+
if (!repositoryId) {
|
|
65
|
+
// This shouldn't happen since we checked access, but handle gracefully
|
|
66
|
+
return {
|
|
67
|
+
success: false,
|
|
68
|
+
message: chalk.yellow('⚠️ Repository accessible but could not retrieve details.\n\n') +
|
|
69
|
+
chalk.dim(`Repository: ${gitInfo.owner}/${gitInfo.name}\n\n`) +
|
|
70
|
+
chalk.dim('Please try again or create a project manually at: ') +
|
|
71
|
+
chalk.cyan(webUrl),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// Prompt user to create project
|
|
75
|
+
console.log(chalk.yellow('⚠️ Repository accessible but no project exists.\n\n') +
|
|
76
|
+
chalk.dim(`Repository: ${gitInfo.owner}/${gitInfo.name}\n`));
|
|
77
|
+
const shouldCreate = await confirm({
|
|
78
|
+
message: `Would you like to create a project for ${gitInfo.name} now?`,
|
|
79
|
+
default: true,
|
|
80
|
+
});
|
|
81
|
+
if (!shouldCreate) {
|
|
82
|
+
return {
|
|
83
|
+
success: false,
|
|
84
|
+
message: chalk.dim('\nProject creation cancelled.\n\n') +
|
|
85
|
+
chalk.dim('Create a project at ') +
|
|
86
|
+
chalk.cyan(webUrl) +
|
|
87
|
+
chalk.dim(' and link it to this repository, or use:\n') +
|
|
88
|
+
chalk.cyan(`braingrid project create --name "${gitInfo.name}" --repositories "${gitInfo.owner}/${gitInfo.name}"`),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// Create project with repository linked
|
|
92
|
+
try {
|
|
93
|
+
const project = await projectService.createProject({
|
|
94
|
+
name: gitInfo.name,
|
|
95
|
+
description: `Project for ${gitInfo.owner}/${gitInfo.name}`,
|
|
96
|
+
repository_id: repositoryId,
|
|
97
|
+
});
|
|
98
|
+
console.log(chalk.green(`\n✅ Created project ${project.short_id}: ${project.name}`));
|
|
99
|
+
console.log(chalk.green(`✅ Linked repository ${gitInfo.owner}/${gitInfo.name}\n`));
|
|
100
|
+
return { success: true, message: '', data: project };
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
return {
|
|
104
|
+
success: false,
|
|
105
|
+
message: chalk.red(`❌ Failed to create project: ${formatError(error, 'creating project')}`),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Prompt user to grant repository access and poll until granted
|
|
111
|
+
*/
|
|
112
|
+
async function promptToGrantRepositoryAccess(gitInfo, webUrl, repositoryService, projectService) {
|
|
113
|
+
if (!gitInfo.owner || !gitInfo.name) {
|
|
114
|
+
return {
|
|
115
|
+
success: false,
|
|
116
|
+
message: chalk.red('❌ Repository information is incomplete'),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
const owner = gitInfo.owner;
|
|
120
|
+
const name = gitInfo.name;
|
|
121
|
+
console.log(chalk.yellow('⚠️ Repository found but BrainGrid needs access.\n\n') +
|
|
122
|
+
chalk.dim(`Repository: ${owner}/${name}\n\n`) +
|
|
123
|
+
chalk.dim('Please grant BrainGrid access to this repository:\n') +
|
|
124
|
+
chalk.dim(' 1. Visit: ') +
|
|
125
|
+
chalk.cyan(`${webUrl}/integrations`) +
|
|
126
|
+
chalk.dim('\n') +
|
|
127
|
+
chalk.dim(` 2. Click on your "${owner}" installation "Add/Remove" to grant BrainGrid access to your repository\n`) +
|
|
128
|
+
chalk.dim(` 3. Select "${name}" and save\n\n`));
|
|
129
|
+
// Poll for repository access (3 minutes max)
|
|
130
|
+
const accessGranted = await waitWithSpinner('Waiting for repository access (up to 3 minutes)', async () => await checkRepositoryAccess(repositoryService, owner, name), 3000, 60);
|
|
131
|
+
if (!accessGranted) {
|
|
132
|
+
return {
|
|
133
|
+
success: false,
|
|
134
|
+
message: chalk.yellow('\n⚠️ Repository access not detected within 3 minutes.\n\n') +
|
|
135
|
+
chalk.dim('Please grant access at: ') +
|
|
136
|
+
chalk.cyan(`${webUrl}/integrations`) +
|
|
137
|
+
chalk.dim(' and run ') +
|
|
138
|
+
chalk.cyan('braingrid init') +
|
|
139
|
+
chalk.dim(' again.'),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
console.log(chalk.green('✅ Repository access granted!\n'));
|
|
143
|
+
// Now create project with the repository
|
|
144
|
+
return promptToCreateProject(gitInfo, projectService, repositoryService);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Handle the case when no project is found for a repository
|
|
148
|
+
* Checks GitHub installations, validates owner, checks repository access, and prompts for project creation
|
|
149
|
+
*/
|
|
150
|
+
async function handleNoProjectForRepository(owner, name, gitInfo, githubService, repositoryService, projectService, config) {
|
|
151
|
+
// Check if user has any GitHub installations
|
|
152
|
+
let allInstallations;
|
|
153
|
+
try {
|
|
154
|
+
const installationsResponse = await githubService.listInstallations({ limit: 100 });
|
|
155
|
+
allInstallations = installationsResponse.installations;
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// If we can't check installations, proceed with default message
|
|
159
|
+
allInstallations = [];
|
|
160
|
+
}
|
|
161
|
+
const webUrl = config.getWebAppUrl();
|
|
162
|
+
if (allInstallations.length === 0) {
|
|
163
|
+
// No GitHub installations - prompt to connect GitHub
|
|
164
|
+
return {
|
|
165
|
+
success: false,
|
|
166
|
+
message: chalk.yellow('⚠️ No projects found for this repository.\n\n') +
|
|
167
|
+
chalk.dim(`Repository: ${owner}/${name}\n\n`) +
|
|
168
|
+
chalk.dim("It looks like you haven't connected your GitHub account yet.\n") +
|
|
169
|
+
chalk.dim('Please connect GitHub at: ') +
|
|
170
|
+
chalk.cyan(`${webUrl}/integrations`) +
|
|
171
|
+
chalk.dim('\n\nOnce connected, create a project and link it to this repository.'),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
// Has installations - check if we have the right owner
|
|
175
|
+
const ownerInstallation = findInstallationForOwner(owner, allInstallations);
|
|
176
|
+
if (!ownerInstallation) {
|
|
177
|
+
// User has GitHub connected but not for this owner
|
|
178
|
+
return promptToAddOrganization(owner, webUrl);
|
|
179
|
+
}
|
|
180
|
+
// Check if repository is accessible
|
|
181
|
+
const hasRepoAccess = await checkRepositoryAccess(repositoryService, owner, name);
|
|
182
|
+
if (!hasRepoAccess) {
|
|
183
|
+
// Installation exists but repo not accessible - need to grant access
|
|
184
|
+
return promptToGrantRepositoryAccess(gitInfo, webUrl, repositoryService, projectService);
|
|
185
|
+
}
|
|
186
|
+
// Repo accessible but no project - create one
|
|
187
|
+
return promptToCreateProject(gitInfo, projectService, repositoryService);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Show setup instructions for users without automation
|
|
191
|
+
*/
|
|
192
|
+
function showSetupInstructions(scenario) {
|
|
193
|
+
let message = '';
|
|
194
|
+
if (scenario === 'no-git') {
|
|
195
|
+
message += chalk.dim('To initialize BrainGrid locally:\n\n');
|
|
196
|
+
message += chalk.dim(' 1. Initialize git:\n');
|
|
197
|
+
message += chalk.cyan(' git init\n\n');
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
message += chalk.dim('To connect to GitHub:\n\n');
|
|
201
|
+
}
|
|
202
|
+
message += chalk.dim(' 2. Create GitHub repository:\n');
|
|
203
|
+
message += chalk.dim(' • Install GitHub CLI: ') + chalk.cyan('https://cli.github.com\n');
|
|
204
|
+
message += chalk.dim(' Then: ') + chalk.cyan('gh repo create --private --source=.\n');
|
|
205
|
+
message += chalk.dim(' • Or manually: ') + chalk.cyan('https://github.com/new\n\n');
|
|
206
|
+
if (scenario === 'no-git') {
|
|
207
|
+
message += chalk.dim(' 3. Run: ') + chalk.cyan('braingrid init\n\n');
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
message += chalk.dim(' 3. Add remote and run init:\n');
|
|
211
|
+
message += chalk.cyan(' git remote add origin <url>\n');
|
|
212
|
+
message += chalk.cyan(' braingrid init\n\n');
|
|
213
|
+
}
|
|
214
|
+
message += chalk.bold('Or use BrainGrid without local initialization:\n\n');
|
|
215
|
+
message += chalk.dim(' All commands support the --project flag:\n');
|
|
216
|
+
message += chalk.cyan(' braingrid requirement list --project PROJ-123\n');
|
|
217
|
+
message += chalk.cyan(' braingrid task create --project PROJ-123 --title "Task"\n\n');
|
|
218
|
+
message +=
|
|
219
|
+
chalk.dim(' Note: Without local init, you must specify --project for each command.') + '\n';
|
|
220
|
+
return message;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Handle initialization when directory is not a git repository
|
|
224
|
+
*/
|
|
225
|
+
async function handleNoGitRepository() {
|
|
226
|
+
const canAutomate = await canUseGhAutomation();
|
|
227
|
+
if (canAutomate) {
|
|
228
|
+
// Offer one-click setup
|
|
229
|
+
const shouldSetup = await confirm({
|
|
230
|
+
message: 'Would you like to initialize git and create a GitHub repository?',
|
|
231
|
+
default: true,
|
|
232
|
+
});
|
|
233
|
+
if (shouldSetup) {
|
|
234
|
+
// Initialize git
|
|
235
|
+
console.log();
|
|
236
|
+
const gitInitSuccess = await initGitRepo();
|
|
237
|
+
if (!gitInitSuccess) {
|
|
238
|
+
return {
|
|
239
|
+
success: false,
|
|
240
|
+
message: chalk.red('❌ Failed to initialize git repository'),
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
console.log(chalk.green('✅ Initialized git repository'));
|
|
244
|
+
// Get repository name suggestion
|
|
245
|
+
const dirName = getCurrentDirectoryName();
|
|
246
|
+
// Prompt for visibility
|
|
247
|
+
const isPrivate = await select({
|
|
248
|
+
message: 'Repository visibility:',
|
|
249
|
+
choices: [
|
|
250
|
+
{ value: true, name: 'Private' },
|
|
251
|
+
{ value: false, name: 'Public' },
|
|
252
|
+
],
|
|
253
|
+
default: true,
|
|
254
|
+
});
|
|
255
|
+
// Prompt for repository name
|
|
256
|
+
const repoName = await input({
|
|
257
|
+
message: 'Repository name:',
|
|
258
|
+
default: dirName,
|
|
259
|
+
});
|
|
260
|
+
// Create GitHub repository
|
|
261
|
+
console.log(chalk.dim('\nCreating repository...\n'));
|
|
262
|
+
const repo = await createGitHubRepoWithGh(repoName, isPrivate);
|
|
263
|
+
if (!repo) {
|
|
264
|
+
return {
|
|
265
|
+
success: false,
|
|
266
|
+
message: chalk.red('❌ Failed to create GitHub repository\n\n') +
|
|
267
|
+
showSetupInstructions('no-git'),
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
console.log(chalk.green(`✅ Created repository: ${repo.url}`));
|
|
271
|
+
console.log(chalk.green('✅ Added remote origin\n'));
|
|
272
|
+
// Return success with a special flag to continue init
|
|
273
|
+
return {
|
|
274
|
+
success: true,
|
|
275
|
+
message: 'continue-init', // Special marker to retry init
|
|
276
|
+
data: { repo },
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
// Fallback to instructions
|
|
281
|
+
return {
|
|
282
|
+
success: false,
|
|
283
|
+
message: chalk.yellow('⚠️ This directory is not a git repository.\n\n') +
|
|
284
|
+
showSetupInstructions('no-git'),
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Handle initialization when git repository has no remote
|
|
289
|
+
*/
|
|
290
|
+
async function handleNoGitRemote() {
|
|
291
|
+
const canAutomate = await canUseGhAutomation();
|
|
292
|
+
if (canAutomate) {
|
|
293
|
+
// Offer to create GitHub repo
|
|
294
|
+
const shouldCreate = await confirm({
|
|
295
|
+
message: 'Would you like to create a GitHub repository now?',
|
|
296
|
+
default: true,
|
|
297
|
+
});
|
|
298
|
+
if (shouldCreate) {
|
|
299
|
+
// Get repository name suggestion
|
|
300
|
+
const dirName = getCurrentDirectoryName();
|
|
301
|
+
// Prompt for visibility
|
|
302
|
+
const isPrivate = await select({
|
|
303
|
+
message: 'Repository visibility:',
|
|
304
|
+
choices: [
|
|
305
|
+
{ value: true, name: 'Private' },
|
|
306
|
+
{ value: false, name: 'Public' },
|
|
307
|
+
],
|
|
308
|
+
default: true,
|
|
309
|
+
});
|
|
310
|
+
// Prompt for repository name
|
|
311
|
+
const repoName = await input({
|
|
312
|
+
message: 'Repository name:',
|
|
313
|
+
default: dirName,
|
|
314
|
+
});
|
|
315
|
+
// Create GitHub repository
|
|
316
|
+
console.log(chalk.dim('\nCreating repository...\n'));
|
|
317
|
+
const repo = await createGitHubRepoWithGh(repoName, isPrivate);
|
|
318
|
+
if (!repo) {
|
|
319
|
+
return {
|
|
320
|
+
success: false,
|
|
321
|
+
message: chalk.red('❌ Failed to create GitHub repository\n\n') +
|
|
322
|
+
showSetupInstructions('no-remote'),
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
console.log(chalk.green(`✅ Created repository: ${repo.url}`));
|
|
326
|
+
console.log(chalk.green('✅ Added remote origin\n'));
|
|
327
|
+
// Return success with a special flag to continue init
|
|
328
|
+
return {
|
|
329
|
+
success: true,
|
|
330
|
+
message: 'continue-init', // Special marker to retry init
|
|
331
|
+
data: { repo },
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
// Fallback to instructions
|
|
336
|
+
return {
|
|
337
|
+
success: false,
|
|
338
|
+
message: chalk.yellow('⚠️ Git repository detected but no GitHub remote configured.\n\n') +
|
|
339
|
+
showSetupInstructions('no-remote'),
|
|
340
|
+
};
|
|
18
341
|
}
|
|
19
342
|
export async function handleInit(opts) {
|
|
20
343
|
try {
|
|
21
344
|
const config = getConfig();
|
|
22
|
-
const { projectService, auth } = getServices();
|
|
345
|
+
const { projectService, githubService, repositoryService, auth } = getServices();
|
|
346
|
+
// Check if Git is installed (required for BrainGrid CLI)
|
|
347
|
+
if (!(await isGitInstalled())) {
|
|
348
|
+
const shouldInstall = await confirm({
|
|
349
|
+
message: 'Git is required but not installed. Would you like to install it now?',
|
|
350
|
+
default: true,
|
|
351
|
+
});
|
|
352
|
+
if (!shouldInstall) {
|
|
353
|
+
return {
|
|
354
|
+
success: false,
|
|
355
|
+
message: chalk.yellow('⚠️ Git installation cancelled.\n\n') + getManualInstallInstructions(),
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
// Install Git
|
|
359
|
+
console.log(); // Add spacing
|
|
360
|
+
const installResult = await installGit();
|
|
361
|
+
if (!installResult.success) {
|
|
362
|
+
return {
|
|
363
|
+
success: false,
|
|
364
|
+
message: installResult.message,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
// Display success message
|
|
368
|
+
console.log(installResult.message);
|
|
369
|
+
console.log(); // Add spacing
|
|
370
|
+
// Verify Git is now available
|
|
371
|
+
if (!(await isGitInstalled())) {
|
|
372
|
+
return {
|
|
373
|
+
success: false,
|
|
374
|
+
message: chalk.red('❌ Git installation completed but git command not found\n\n') +
|
|
375
|
+
chalk.dim('You may need to restart your terminal or add Git to your PATH.\n') +
|
|
376
|
+
getManualInstallInstructions(),
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
// Check if GitHub CLI is installed (recommended but optional)
|
|
381
|
+
if (!(await isGhInstalled())) {
|
|
382
|
+
console.log(chalk.blue('\n💡 GitHub CLI is highly recommended for working with BrainGrid.'));
|
|
383
|
+
console.log(chalk.dim(' It enables seamless GitHub integration and repository management.\n'));
|
|
384
|
+
const shouldInstallGh = await confirm({
|
|
385
|
+
message: 'Would you like to install GitHub CLI now?',
|
|
386
|
+
default: true,
|
|
387
|
+
});
|
|
388
|
+
if (shouldInstallGh) {
|
|
389
|
+
console.log(); // Add spacing
|
|
390
|
+
const ghInstallResult = await installGh();
|
|
391
|
+
if (ghInstallResult.success) {
|
|
392
|
+
console.log(ghInstallResult.message);
|
|
393
|
+
console.log(); // Add spacing
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
// Show error but don't fail - it's optional
|
|
397
|
+
console.log(ghInstallResult.message);
|
|
398
|
+
console.log(chalk.dim('You can install it manually later.\n'));
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
console.log(chalk.dim('Skipping GitHub CLI installation.\n'));
|
|
403
|
+
}
|
|
404
|
+
}
|
|
23
405
|
// Check if already initialized (unless --force)
|
|
24
406
|
if ((await projectConfigExists()) && !opts.force) {
|
|
25
407
|
try {
|
|
@@ -44,13 +426,44 @@ export async function handleInit(opts) {
|
|
|
44
426
|
// Check authentication
|
|
45
427
|
const isAuthenticated = await auth.isAuthenticated();
|
|
46
428
|
if (!isAuthenticated) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
message:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
429
|
+
// Prompt user to log in / sign up
|
|
430
|
+
const shouldLogin = await confirm({
|
|
431
|
+
message: 'You need to be authenticated. Would you like to log in / sign up now?',
|
|
432
|
+
default: true,
|
|
433
|
+
});
|
|
434
|
+
if (!shouldLogin) {
|
|
435
|
+
return {
|
|
436
|
+
success: false,
|
|
437
|
+
message: chalk.yellow('⚠️ Authentication required.\n') +
|
|
438
|
+
chalk.dim('Run ') +
|
|
439
|
+
chalk.cyan('braingrid login') +
|
|
440
|
+
chalk.dim(" when you're ready to authenticate."),
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
// Call login handler
|
|
444
|
+
console.log(); // Add spacing before login output
|
|
445
|
+
const loginResult = await handleLogin();
|
|
446
|
+
if (!loginResult.success) {
|
|
447
|
+
return {
|
|
448
|
+
success: false,
|
|
449
|
+
message: chalk.red('❌ Login failed.\n') +
|
|
450
|
+
chalk.dim('Please try running ') +
|
|
451
|
+
chalk.cyan('braingrid login') +
|
|
452
|
+
chalk.dim(' again.'),
|
|
453
|
+
};
|
|
454
|
+
}
|
|
455
|
+
// Verify authentication succeeded
|
|
456
|
+
if (!(await auth.isAuthenticated())) {
|
|
457
|
+
return {
|
|
458
|
+
success: false,
|
|
459
|
+
message: chalk.red('❌ Login was not completed.\n') +
|
|
460
|
+
chalk.dim('Please try running ') +
|
|
461
|
+
chalk.cyan('braingrid login') +
|
|
462
|
+
chalk.dim(' again.'),
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
// Login successful, continue with init
|
|
466
|
+
console.log(); // Add spacing before continuing with init
|
|
54
467
|
}
|
|
55
468
|
// Get session to retrieve organization_id
|
|
56
469
|
const session = await auth.getStoredSession();
|
|
@@ -61,7 +474,7 @@ export async function handleInit(opts) {
|
|
|
61
474
|
};
|
|
62
475
|
}
|
|
63
476
|
// Get git repository info (always needed for URL, even when using --project)
|
|
64
|
-
|
|
477
|
+
let gitInfo = await getGitRepositoryInfo();
|
|
65
478
|
// Fetch project from API
|
|
66
479
|
let project;
|
|
67
480
|
if (opts.project) {
|
|
@@ -79,19 +492,60 @@ export async function handleInit(opts) {
|
|
|
79
492
|
}
|
|
80
493
|
else {
|
|
81
494
|
// Auto-detect mode: fetch project by git repository
|
|
82
|
-
if (!gitInfo || !gitInfo.isRepo
|
|
495
|
+
if (!gitInfo || !gitInfo.isRepo) {
|
|
496
|
+
// Not a git repository - offer to initialize
|
|
497
|
+
const result = await handleNoGitRepository();
|
|
498
|
+
if (result.success && result.message === 'continue-init') {
|
|
499
|
+
// Repository was created - re-fetch git info and continue
|
|
500
|
+
gitInfo = await getGitRepositoryInfo();
|
|
501
|
+
if (!gitInfo || !gitInfo.owner || !gitInfo.name) {
|
|
502
|
+
return {
|
|
503
|
+
success: false,
|
|
504
|
+
message: chalk.red('❌ Failed to get repository information after setup'),
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
else {
|
|
509
|
+
return result;
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
if (!gitInfo || !gitInfo.owner || !gitInfo.name) {
|
|
513
|
+
// Git repo but no remote - offer to create GitHub repo
|
|
514
|
+
const result = await handleNoGitRemote();
|
|
515
|
+
if (result.success && result.message === 'continue-init') {
|
|
516
|
+
// Repository was created - re-fetch git info and continue
|
|
517
|
+
gitInfo = await getGitRepositoryInfo();
|
|
518
|
+
if (!gitInfo || !gitInfo.owner || !gitInfo.name) {
|
|
519
|
+
return {
|
|
520
|
+
success: false,
|
|
521
|
+
message: chalk.red('❌ Failed to get repository information after setup'),
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
else {
|
|
526
|
+
return result;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
// At this point, gitInfo, owner and name are guaranteed to exist
|
|
530
|
+
if (!gitInfo) {
|
|
531
|
+
return {
|
|
532
|
+
success: false,
|
|
533
|
+
message: chalk.red('❌ Repository information is missing'),
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
const owner = gitInfo.owner;
|
|
537
|
+
const name = gitInfo.name;
|
|
538
|
+
if (!owner || !name) {
|
|
83
539
|
return {
|
|
84
540
|
success: false,
|
|
85
|
-
message: chalk.red('❌
|
|
86
|
-
chalk.dim('Make sure you are in a git repository with a configured remote, or use:\n') +
|
|
87
|
-
chalk.cyan('braingrid init --project <project-id>'),
|
|
541
|
+
message: chalk.red('❌ Repository information is incomplete'),
|
|
88
542
|
};
|
|
89
543
|
}
|
|
90
544
|
let response;
|
|
91
545
|
try {
|
|
92
546
|
response = (await projectService.listProjects({
|
|
93
|
-
repository_owner:
|
|
94
|
-
repository_name:
|
|
547
|
+
repository_owner: owner,
|
|
548
|
+
repository_name: name,
|
|
95
549
|
}));
|
|
96
550
|
}
|
|
97
551
|
catch (error) {
|
|
@@ -99,31 +553,15 @@ export async function handleInit(opts) {
|
|
|
99
553
|
if (error && typeof error === 'object' && 'response' in error) {
|
|
100
554
|
const axiosError = error;
|
|
101
555
|
if (axiosError.response?.status === 404) {
|
|
102
|
-
|
|
103
|
-
return
|
|
104
|
-
success: false,
|
|
105
|
-
message: chalk.yellow('⚠️ We did not find a Project in BrainGrid for this repo.\n\n') +
|
|
106
|
-
chalk.dim(`Repository: ${gitInfo.owner}/${gitInfo.name}\n\n`) +
|
|
107
|
-
chalk.dim('Create a project at ') +
|
|
108
|
-
chalk.cyan(webUrl) +
|
|
109
|
-
chalk.dim(' and link it to this repository, or use:\n') +
|
|
110
|
-
chalk.cyan(`braingrid project create --name "My Project" --repositories "${gitInfo.owner}/${gitInfo.name}"`),
|
|
111
|
-
};
|
|
556
|
+
// No project found - handle the scenario
|
|
557
|
+
return await handleNoProjectForRepository(owner, name, gitInfo, githubService, repositoryService, projectService, config);
|
|
112
558
|
}
|
|
113
559
|
}
|
|
114
560
|
throw error;
|
|
115
561
|
}
|
|
116
562
|
if (response.projects.length === 0) {
|
|
117
|
-
|
|
118
|
-
return
|
|
119
|
-
success: false,
|
|
120
|
-
message: chalk.yellow('⚠️ No projects found for this repository.\n\n') +
|
|
121
|
-
chalk.dim(`Repository: ${gitInfo.owner}/${gitInfo.name}\n\n`) +
|
|
122
|
-
chalk.dim('Create a project at ') +
|
|
123
|
-
chalk.cyan(webUrl) +
|
|
124
|
-
chalk.dim(' and link it to this repository, or use:\n') +
|
|
125
|
-
chalk.cyan(`braingrid project create --name "My Project" --repositories "${gitInfo.owner}/${gitInfo.name}"`),
|
|
126
|
-
};
|
|
563
|
+
// No project found - handle the scenario
|
|
564
|
+
return await handleNoProjectForRepository(owner, name, gitInfo, githubService, repositoryService, projectService, config);
|
|
127
565
|
}
|
|
128
566
|
// Use the first project (could add selection logic if multiple projects)
|
|
129
567
|
project = response.projects[0];
|
|
@@ -143,8 +581,8 @@ export async function handleInit(opts) {
|
|
|
143
581
|
chalk.gray(project.repository?.full_name || 'N/A') +
|
|
144
582
|
'\n\n';
|
|
145
583
|
console.log(projectInfo);
|
|
146
|
-
//
|
|
147
|
-
if (opts.
|
|
584
|
+
// Always ask for confirmation (unless --force)
|
|
585
|
+
if (!opts.force) {
|
|
148
586
|
const shouldInit = await confirm({
|
|
149
587
|
message: 'Initialize this repository with the above project?',
|
|
150
588
|
default: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.handlers.js","sourceRoot":"","sources":["../../src/handlers/init.handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAKpG,SAAS,WAAW;IACnB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAIhC;IACA,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;QAE/C,gDAAgD;QAChD,IAAI,CAAC,MAAM,mBAAmB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAClD,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;gBAC3C,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,OAAO,EACN,KAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC;wBAC5C,KAAK,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,gBAAgB,KAAK,CAAC;wBAC/E,KAAK,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,UAAU,EAAE,SAAS,IAAI,KAAK,MAAM,CAAC;wBACvE,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC;iBACzC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,sDAAsD;gBACtD,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,OAAO,EACN,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC;wBAC1D,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC;iBACzC,CAAC;YACH,CAAC;QACF,CAAC;QAED,uBAAuB;QACvB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACrD,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,OAAO,EACN,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC;oBACnC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;oBACxB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBAC7B,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;aACrB,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC;aAC7E,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAE7C,yBAAyB;QACzB,IAAI,OAAO,CAAC;QAEZ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,mCAAmC;YACnC,IAAI,CAAC;gBACJ,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,OAAO,EACN,KAAK,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,MAAM,CAAC;wBACrD,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC;iBAC5E,CAAC;YACH,CAAC;QACF,CAAC;aAAM,CAAC;YACP,oDAAoD;YACpD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpE,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,OAAO,EACN,KAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC;wBACrE,KAAK,CAAC,GAAG,CAAC,2EAA2E,CAAC;wBACtF,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC;iBACpD,CAAC;YACH,CAAC;YAED,IAAI,QAA4C,CAAC;YACjD,IAAI,CAAC;gBACJ,QAAQ,GAAG,CAAC,MAAM,cAAc,CAAC,YAAY,CAAC;oBAC7C,gBAAgB,EAAE,OAAO,CAAC,KAAK;oBAC/B,eAAe,EAAE,OAAO,CAAC,IAAI;iBAC7B,CAAC,CAAuC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACzB,4BAA4B;gBAC5B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;oBAC/D,MAAM,UAAU,GAAG,KAA0C,CAAC;oBAC9D,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;wBACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACjD,OAAO;4BACN,OAAO,EAAE,KAAK;4BACd,OAAO,EACN,KAAK,CAAC,MAAM,CAAC,+DAA+D,CAAC;gCAC7E,KAAK,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,MAAM,CAAC;gCAC7D,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC;gCACjC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;gCAClB,KAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC;gCACvD,KAAK,CAAC,IAAI,CACT,gEAAgE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,GAAG,CAChG;yBACF,CAAC;oBACH,CAAC;gBACF,CAAC;gBACD,MAAM,KAAK,CAAC;YACb,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACjD,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,OAAO,EACN,KAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC;wBAC9D,KAAK,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,MAAM,CAAC;wBAC7D,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC;wBACjC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;wBAClB,KAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC;wBACvD,KAAK,CAAC,IAAI,CACT,gEAAgE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,GAAG,CAChG;iBACF,CAAC;YACH,CAAC;YAED,yEAAyE;YACzE,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,8BAA8B;QAC9B,MAAM,WAAW,GAChB,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC;YAC9C,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACxB,IAAI;YACJ,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC5B,IAAI;YACJ,CAAC,OAAO,CAAC,WAAW;gBACnB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;gBACrE,CAAC,CAAC,EAAE,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,IAAI,KAAK,CAAC;YAClD,MAAM,CAAC;QAER,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEzB,uCAAuC;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;gBAChC,OAAO,EAAE,oDAAoD;gBAC7D,OAAO,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC;iBAClD,CAAC;YACH,CAAC;QACF,CAAC;QAED,8BAA8B;QAC9B,MAAM,WAAW,GAAuB;YACvC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,gBAAgB,EAAE,OAAO,CAAC,QAAQ;YAClC,YAAY,EAAE,OAAO,CAAC,IAAI;YAC1B,mBAAmB,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YAChD,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC7B,CAAC,CAAC;oBACA,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE;oBACzB,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,iCAAiC;oBACpF,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,6BAA6B;oBAC5D,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS;oBACvC,GAAG,EAAE,OAAO,EAAE,SAAS,IAAI,SAAS;iBACpC;gBACF,CAAC,CAAC,IAAI;YACP,UAAU,EAAE,OAAO,CAAC,UAAU;SAC9B,CAAC;QAEF,2DAA2D;QAC3D,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAErC,OAAO;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EACN,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC;gBACzD,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxB,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,QAAQ,GAAG,CAAC;gBACnC,IAAI;gBACJ,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;gBACrC,MAAM;gBACN,KAAK,CAAC,GAAG,CAAC,0EAA0E,CAAC;YACtF,IAAI,EAAE,WAAW;SACjB,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACzB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC;SACxE,CAAC;IACH,CAAC;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"init.handlers.js","sourceRoot":"","sources":["../../src/handlers/init.handlers.ts"],"names":[],"mappings":"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"}
|