@teambit/host-initializer 0.0.0-0094a3296308ca2a18c75f757ab78366ce7d9c19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/create-consumer.d.ts +17 -0
- package/dist/create-consumer.js +165 -0
- package/dist/create-consumer.js.map +1 -0
- package/dist/esm.mjs +9 -0
- package/dist/host-initializer.aspect.d.ts +2 -0
- package/dist/host-initializer.aspect.js +18 -0
- package/dist/host-initializer.aspect.js.map +1 -0
- package/dist/host-initializer.main.runtime.d.ts +57 -0
- package/dist/host-initializer.main.runtime.js +472 -0
- package/dist/host-initializer.main.runtime.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/init-cmd.d.ts +19 -0
- package/dist/init-cmd.js +155 -0
- package/dist/init-cmd.js.map +1 -0
- package/dist/objects-without-consumer.d.ts +5 -0
- package/dist/objects-without-consumer.js +33 -0
- package/dist/objects-without-consumer.js.map +1 -0
- package/dist/preview-1774367200772.js +7 -0
- package/esm.mjs +9 -0
- package/package.json +73 -0
- package/types/asset.d.ts +41 -0
- package/types/style.d.ts +42 -0
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.HostInitializerMain = void 0;
|
|
7
|
+
function _fsExtra() {
|
|
8
|
+
const data = _interopRequireDefault(require("fs-extra"));
|
|
9
|
+
_fsExtra = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function path() {
|
|
15
|
+
const data = _interopRequireWildcard(require("path"));
|
|
16
|
+
path = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _chalk() {
|
|
22
|
+
const data = _interopRequireDefault(require("chalk"));
|
|
23
|
+
_chalk = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _enquirer() {
|
|
29
|
+
const data = require("enquirer");
|
|
30
|
+
_enquirer = function () {
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
function _scopeModules() {
|
|
36
|
+
const data = require("@teambit/scope.modules.find-scope-path");
|
|
37
|
+
_scopeModules = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
function _workspaceModules() {
|
|
43
|
+
const data = require("@teambit/workspace.modules.workspace-locator");
|
|
44
|
+
_workspaceModules = function () {
|
|
45
|
+
return data;
|
|
46
|
+
};
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
function _legacy() {
|
|
50
|
+
const data = require("@teambit/legacy.scope");
|
|
51
|
+
_legacy = function () {
|
|
52
|
+
return data;
|
|
53
|
+
};
|
|
54
|
+
return data;
|
|
55
|
+
}
|
|
56
|
+
function _objects() {
|
|
57
|
+
const data = require("@teambit/objects");
|
|
58
|
+
_objects = function () {
|
|
59
|
+
return data;
|
|
60
|
+
};
|
|
61
|
+
return data;
|
|
62
|
+
}
|
|
63
|
+
function _toolboxFs() {
|
|
64
|
+
const data = require("@teambit/toolbox.fs.is-dir-empty");
|
|
65
|
+
_toolboxFs = function () {
|
|
66
|
+
return data;
|
|
67
|
+
};
|
|
68
|
+
return data;
|
|
69
|
+
}
|
|
70
|
+
function _config() {
|
|
71
|
+
const data = require("@teambit/config");
|
|
72
|
+
_config = function () {
|
|
73
|
+
return data;
|
|
74
|
+
};
|
|
75
|
+
return data;
|
|
76
|
+
}
|
|
77
|
+
function _mcp() {
|
|
78
|
+
const data = require("@teambit/mcp.mcp-config-writer");
|
|
79
|
+
_mcp = function () {
|
|
80
|
+
return data;
|
|
81
|
+
};
|
|
82
|
+
return data;
|
|
83
|
+
}
|
|
84
|
+
function _cli() {
|
|
85
|
+
const data = require("@teambit/cli");
|
|
86
|
+
_cli = function () {
|
|
87
|
+
return data;
|
|
88
|
+
};
|
|
89
|
+
return data;
|
|
90
|
+
}
|
|
91
|
+
function _objectsWithoutConsumer() {
|
|
92
|
+
const data = require("./objects-without-consumer");
|
|
93
|
+
_objectsWithoutConsumer = function () {
|
|
94
|
+
return data;
|
|
95
|
+
};
|
|
96
|
+
return data;
|
|
97
|
+
}
|
|
98
|
+
function _hostInitializer() {
|
|
99
|
+
const data = require("./host-initializer.aspect");
|
|
100
|
+
_hostInitializer = function () {
|
|
101
|
+
return data;
|
|
102
|
+
};
|
|
103
|
+
return data;
|
|
104
|
+
}
|
|
105
|
+
function _initCmd() {
|
|
106
|
+
const data = require("./init-cmd");
|
|
107
|
+
_initCmd = function () {
|
|
108
|
+
return data;
|
|
109
|
+
};
|
|
110
|
+
return data;
|
|
111
|
+
}
|
|
112
|
+
function _createConsumer() {
|
|
113
|
+
const data = require("./create-consumer");
|
|
114
|
+
_createConsumer = function () {
|
|
115
|
+
return data;
|
|
116
|
+
};
|
|
117
|
+
return data;
|
|
118
|
+
}
|
|
119
|
+
function _logger() {
|
|
120
|
+
const data = require("@teambit/logger");
|
|
121
|
+
_logger = function () {
|
|
122
|
+
return data;
|
|
123
|
+
};
|
|
124
|
+
return data;
|
|
125
|
+
}
|
|
126
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
127
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
128
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
129
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
130
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
131
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
132
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
133
|
+
/**
|
|
134
|
+
* Reusable cancel function for prompts
|
|
135
|
+
* By default, canceling the prompt via Ctrl+c throws an empty string.
|
|
136
|
+
* The custom cancel function prevents that behavior.
|
|
137
|
+
* Otherwise, Bit CLI would print an error and confuse users.
|
|
138
|
+
* See related issue: https://github.com/enquirer/enquirer/issues/225
|
|
139
|
+
*/
|
|
140
|
+
const promptCancel = () => {
|
|
141
|
+
// Empty function to prevent default behavior
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Handle prompt errors consistently
|
|
146
|
+
*/
|
|
147
|
+
const handlePromptError = err => {
|
|
148
|
+
if (!err || err === '') {
|
|
149
|
+
// for some reason, when the user clicks Ctrl+C, the error is an empty string
|
|
150
|
+
throw new Error('The prompt has been canceled');
|
|
151
|
+
}
|
|
152
|
+
throw err;
|
|
153
|
+
};
|
|
154
|
+
class HostInitializerMain {
|
|
155
|
+
static async init(absPath, noGit = false, noPackageJson = false, reset = false, resetNew = false, resetLaneNew = false, resetHard = false, resetScope = false, force = false, workspaceConfigProps = {}, generator) {
|
|
156
|
+
const consumerInfo = await (0, _workspaceModules().getWorkspaceInfo)(absPath || process.cwd());
|
|
157
|
+
// if "bit init" was running without any flags, the user is probably trying to init a new workspace but wasn't aware
|
|
158
|
+
// that he's already in a workspace.
|
|
159
|
+
if (!absPath && consumerInfo?.path && consumerInfo.path !== process.cwd() && !reset && !resetHard && !resetScope && !resetNew && !resetLaneNew) {
|
|
160
|
+
throw new Error(`error: unable to init a new workspace in an inner directory of an existing workspace at "${consumerInfo.path}"`);
|
|
161
|
+
}
|
|
162
|
+
const consumerPath = consumerInfo?.path || absPath || process.cwd();
|
|
163
|
+
workspaceConfigProps = _objectSpread(_objectSpread({}, workspaceConfigProps), {}, {
|
|
164
|
+
name: workspaceConfigProps.name || path().basename(consumerPath)
|
|
165
|
+
});
|
|
166
|
+
if (reset || resetHard) {
|
|
167
|
+
await (0, _createConsumer().resetConsumer)(consumerPath, resetHard, noGit);
|
|
168
|
+
}
|
|
169
|
+
let consumer;
|
|
170
|
+
try {
|
|
171
|
+
consumer = await (0, _createConsumer().createConsumer)(consumerPath, noGit, noPackageJson, workspaceConfigProps, generator);
|
|
172
|
+
} catch {
|
|
173
|
+
// it's possible that at this stage the consumer fails to load due to scope issues.
|
|
174
|
+
// still we want to load it to include its instance of "scope.json", so then later when "consumer.write()", we
|
|
175
|
+
// don't lose some scope metadata
|
|
176
|
+
}
|
|
177
|
+
if (resetScope) {
|
|
178
|
+
const scopePath = (0, _scopeModules().findScopePath)(consumerPath);
|
|
179
|
+
if (!scopePath) throw new Error(`fatal: scope not found in the path: ${consumerPath}`);
|
|
180
|
+
await _legacy().Scope.reset(scopePath, true);
|
|
181
|
+
}
|
|
182
|
+
if (!consumer) consumer = await (0, _createConsumer().createConsumer)(consumerPath, noGit, noPackageJson, workspaceConfigProps);
|
|
183
|
+
if (!force && !resetScope) {
|
|
184
|
+
await throwForOutOfSyncScope(consumer);
|
|
185
|
+
}
|
|
186
|
+
if (resetNew) {
|
|
187
|
+
await consumer.resetNew();
|
|
188
|
+
}
|
|
189
|
+
if (resetLaneNew) {
|
|
190
|
+
await consumer.resetLaneNew();
|
|
191
|
+
}
|
|
192
|
+
const writtenConsumer = await consumer.write();
|
|
193
|
+
return {
|
|
194
|
+
created: !consumerInfo?.path,
|
|
195
|
+
consumer: writtenConsumer
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Check if the directory contains a .git folder
|
|
201
|
+
*/
|
|
202
|
+
static async hasGitDirectory(projectPath) {
|
|
203
|
+
try {
|
|
204
|
+
const gitPath = path().join(projectPath, '.git');
|
|
205
|
+
const stat = await _fsExtra().default.stat(gitPath);
|
|
206
|
+
return stat.isDirectory();
|
|
207
|
+
} catch {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Check if the directory already has a bit workspace initialized
|
|
214
|
+
*/
|
|
215
|
+
static async hasWorkspaceInitialized(projectPath) {
|
|
216
|
+
try {
|
|
217
|
+
const isExist = await _config().WorkspaceConfig.isExist(projectPath);
|
|
218
|
+
return Boolean(isExist);
|
|
219
|
+
} catch {
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Prompt user for environment selection
|
|
226
|
+
*/
|
|
227
|
+
static async promptForEnvironment() {
|
|
228
|
+
const envChoices = [{
|
|
229
|
+
name: 'none',
|
|
230
|
+
message: 'None (default)'
|
|
231
|
+
}, {
|
|
232
|
+
name: 'bitdev.node/node-env',
|
|
233
|
+
message: 'Node.js environment'
|
|
234
|
+
}, {
|
|
235
|
+
name: 'bitdev.react/react-env',
|
|
236
|
+
message: 'React environment'
|
|
237
|
+
}, {
|
|
238
|
+
name: 'bitdev.vue/vue-env',
|
|
239
|
+
message: 'Vue environment'
|
|
240
|
+
}, {
|
|
241
|
+
name: 'bitdev.angular/angular-env',
|
|
242
|
+
message: 'Angular environment'
|
|
243
|
+
}, {
|
|
244
|
+
name: 'bitdev.symphony/envs/symphony-env',
|
|
245
|
+
message: 'Symphony environment'
|
|
246
|
+
}];
|
|
247
|
+
try {
|
|
248
|
+
const response = await (0, _enquirer().prompt)({
|
|
249
|
+
type: 'select',
|
|
250
|
+
name: 'environment',
|
|
251
|
+
message: 'Which environment would you like to use?',
|
|
252
|
+
choices: envChoices,
|
|
253
|
+
initial: 0,
|
|
254
|
+
// Default to 'none'
|
|
255
|
+
cancel: promptCancel
|
|
256
|
+
});
|
|
257
|
+
return response.environment === 'none' ? null : response.environment;
|
|
258
|
+
} catch (err) {
|
|
259
|
+
return handlePromptError(err);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Prompt user for package manager preference
|
|
265
|
+
*/
|
|
266
|
+
static async promptForPackageManager() {
|
|
267
|
+
try {
|
|
268
|
+
const response = await (0, _enquirer().prompt)({
|
|
269
|
+
type: 'toggle',
|
|
270
|
+
name: 'useExternalPackageManager',
|
|
271
|
+
message: 'Would you like to use your own package manager (npm/yarn/pnpm) instead of Bit?',
|
|
272
|
+
enabled: 'Yes',
|
|
273
|
+
disabled: 'No',
|
|
274
|
+
cancel: promptCancel
|
|
275
|
+
});
|
|
276
|
+
return response.useExternalPackageManager;
|
|
277
|
+
} catch (err) {
|
|
278
|
+
return handlePromptError(err);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Prompt user for MCP server configuration
|
|
284
|
+
*/
|
|
285
|
+
static async promptForMcpServer() {
|
|
286
|
+
try {
|
|
287
|
+
const setupMcp = await (0, _enquirer().prompt)({
|
|
288
|
+
type: 'toggle',
|
|
289
|
+
name: 'setupMcp',
|
|
290
|
+
message: 'Would you like to set up the MCP server for AI-powered development?',
|
|
291
|
+
enabled: 'Yes',
|
|
292
|
+
disabled: 'No',
|
|
293
|
+
cancel: promptCancel
|
|
294
|
+
});
|
|
295
|
+
if (!setupMcp.setupMcp) {
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
const editorChoices = [{
|
|
299
|
+
name: 'vscode',
|
|
300
|
+
message: 'VS Code'
|
|
301
|
+
}, {
|
|
302
|
+
name: 'cursor',
|
|
303
|
+
message: 'Cursor'
|
|
304
|
+
}, {
|
|
305
|
+
name: 'windsurf',
|
|
306
|
+
message: 'Windsurf'
|
|
307
|
+
}, {
|
|
308
|
+
name: 'roo',
|
|
309
|
+
message: 'Roo Code'
|
|
310
|
+
}, {
|
|
311
|
+
name: 'cline',
|
|
312
|
+
message: 'Cline'
|
|
313
|
+
}, {
|
|
314
|
+
name: 'claude-code',
|
|
315
|
+
message: 'Claude Code'
|
|
316
|
+
}];
|
|
317
|
+
const editorResponse = await (0, _enquirer().prompt)({
|
|
318
|
+
type: 'select',
|
|
319
|
+
name: 'editor',
|
|
320
|
+
message: 'Which editor would you like to configure?',
|
|
321
|
+
choices: editorChoices,
|
|
322
|
+
initial: 0,
|
|
323
|
+
// Default to VS Code
|
|
324
|
+
cancel: promptCancel
|
|
325
|
+
});
|
|
326
|
+
return editorResponse.editor;
|
|
327
|
+
} catch (err) {
|
|
328
|
+
return handlePromptError(err);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Create or update .gitignore file with Bit-specific entries
|
|
334
|
+
*/
|
|
335
|
+
static async updateGitignore(projectPath) {
|
|
336
|
+
const gitignorePath = path().join(projectPath, '.gitignore');
|
|
337
|
+
const bitGitignoreSection = `
|
|
338
|
+
# Bit
|
|
339
|
+
.bit
|
|
340
|
+
public
|
|
341
|
+
# Bit files - generated during bit ws-config write command
|
|
342
|
+
tsconfig.json
|
|
343
|
+
.eslintrc.json
|
|
344
|
+
.prettierrc.cjs
|
|
345
|
+
# allow tsconfig from the env's config dir to be tracked
|
|
346
|
+
!**/config/tsconfig.json
|
|
347
|
+
node_modules
|
|
348
|
+
`;
|
|
349
|
+
try {
|
|
350
|
+
const exists = await _fsExtra().default.pathExists(gitignorePath);
|
|
351
|
+
if (exists) {
|
|
352
|
+
const content = await _fsExtra().default.readFile(gitignorePath, 'utf8');
|
|
353
|
+
if (!content.includes('# Bit')) {
|
|
354
|
+
await _fsExtra().default.appendFile(gitignorePath, bitGitignoreSection);
|
|
355
|
+
}
|
|
356
|
+
} else {
|
|
357
|
+
await _fsExtra().default.writeFile(gitignorePath, bitGitignoreSection.trim());
|
|
358
|
+
}
|
|
359
|
+
} catch {
|
|
360
|
+
// Don't fail the initialization if gitignore update fails
|
|
361
|
+
// Note: Console logging is handled by the caller
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Set up MCP server configuration for the selected editor
|
|
367
|
+
*/
|
|
368
|
+
static async setupMcpServer(editor, projectPath) {
|
|
369
|
+
// Set up MCP server configuration
|
|
370
|
+
const setupOptions = {
|
|
371
|
+
isGlobal: false,
|
|
372
|
+
workspaceDir: projectPath,
|
|
373
|
+
consumerProject: false
|
|
374
|
+
};
|
|
375
|
+
await _mcp().McpConfigWriter.setupEditor(editor, setupOptions);
|
|
376
|
+
|
|
377
|
+
// Write rules file for the editor
|
|
378
|
+
const rulesOptions = {
|
|
379
|
+
isGlobal: false,
|
|
380
|
+
workspaceDir: projectPath,
|
|
381
|
+
consumerProject: false
|
|
382
|
+
};
|
|
383
|
+
await _mcp().McpConfigWriter.writeRulesFile(editor, rulesOptions);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Run interactive mode for Git repositories
|
|
388
|
+
*/
|
|
389
|
+
static async runInteractiveMode(projectPath) {
|
|
390
|
+
const selectedEnv = await HostInitializerMain.promptForEnvironment();
|
|
391
|
+
const useExternalPackageManager = await HostInitializerMain.promptForPackageManager();
|
|
392
|
+
const mcpEditor = await HostInitializerMain.promptForMcpServer();
|
|
393
|
+
|
|
394
|
+
// Set up MCP server if user selected an editor
|
|
395
|
+
if (mcpEditor) {
|
|
396
|
+
await HostInitializerMain.setupMcpServer(mcpEditor, projectPath);
|
|
397
|
+
}
|
|
398
|
+
await HostInitializerMain.updateGitignore(projectPath);
|
|
399
|
+
return {
|
|
400
|
+
generator: selectedEnv || undefined,
|
|
401
|
+
externalPackageManager: useExternalPackageManager,
|
|
402
|
+
defaultDirectory: 'bit-components/{scope}/{name}',
|
|
403
|
+
mcpEditor: mcpEditor || undefined
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* Generate the final initialization message
|
|
409
|
+
*/
|
|
410
|
+
static generateInitMessage(created, reset, resetHard, resetScope, interactiveConfig) {
|
|
411
|
+
let initMessage = `${_chalk().default.green('successfully initialized a bit workspace.')}`;
|
|
412
|
+
if (!created) initMessage = `${_chalk().default.grey('successfully re-initialized a bit workspace.')}`;
|
|
413
|
+
if (reset) initMessage = `${_chalk().default.grey('your bit workspace has been reset successfully.')}`;
|
|
414
|
+
if (resetHard) initMessage = `${_chalk().default.grey('your bit workspace has been hard-reset successfully.')}`;
|
|
415
|
+
if (resetScope) initMessage = `${_chalk().default.grey('your local scope has been reset successfully.')}`;
|
|
416
|
+
|
|
417
|
+
// Add additional information for interactive mode
|
|
418
|
+
if (interactiveConfig) {
|
|
419
|
+
initMessage += `\n\n${_chalk().default.cyan('ℹ️ Additional Information:')}`;
|
|
420
|
+
const defaultDirectory = interactiveConfig?.defaultDirectory || 'bit-components/{scope}/{name}';
|
|
421
|
+
initMessage += `\n📁 Components will be created in: ${_chalk().default.cyan(defaultDirectory)}`;
|
|
422
|
+
initMessage += `\n📖 For CI/CD setup, visit: ${_chalk().default.underline('https://bit.dev/docs/getting-started/collaborate/exporting-components#custom-ci/cd-setup')}`;
|
|
423
|
+
if (interactiveConfig.generator) {
|
|
424
|
+
initMessage += `\n🎯 Environment: ${_chalk().default.cyan(interactiveConfig.generator)}`;
|
|
425
|
+
}
|
|
426
|
+
if (interactiveConfig.mcpEditor) {
|
|
427
|
+
initMessage += `\n🤖 MCP server configured for: ${_chalk().default.cyan(interactiveConfig.mcpEditor)}`;
|
|
428
|
+
}
|
|
429
|
+
if (interactiveConfig.externalPackageManager) {
|
|
430
|
+
initMessage += `\n📦 External package manager mode enabled`;
|
|
431
|
+
initMessage += `\n💡 Run ${_chalk().default.cyan('pnpm install')} (or ${_chalk().default.cyan('yarn install')}/${_chalk().default.cyan('npm install')}) to install dependencies`;
|
|
432
|
+
} else if (interactiveConfig.generator) {
|
|
433
|
+
initMessage += `\n💡 Run ${_chalk().default.cyan('bit install')} to install dependencies`;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
return initMessage;
|
|
437
|
+
}
|
|
438
|
+
static async provider([cli, loggerMain]) {
|
|
439
|
+
const logger = loggerMain.createLogger(_hostInitializer().HostInitializerAspect.id);
|
|
440
|
+
const hostInitializerMain = new HostInitializerMain();
|
|
441
|
+
const initCmd = new (_initCmd().InitCmd)(hostInitializerMain, logger);
|
|
442
|
+
cli.register(initCmd);
|
|
443
|
+
return hostInitializerMain;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
exports.HostInitializerMain = HostInitializerMain;
|
|
447
|
+
_defineProperty(HostInitializerMain, "slots", []);
|
|
448
|
+
_defineProperty(HostInitializerMain, "dependencies", [_cli().CLIAspect, _logger().LoggerAspect]);
|
|
449
|
+
_defineProperty(HostInitializerMain, "runtime", _cli().MainRuntime);
|
|
450
|
+
_hostInitializer().HostInitializerAspect.addRuntime(HostInitializerMain);
|
|
451
|
+
var _default = exports.default = HostInitializerMain;
|
|
452
|
+
/**
|
|
453
|
+
* throw an error when .bitmap is empty but a scope has objects.
|
|
454
|
+
* a user may got into this state for reasons such as:
|
|
455
|
+
* 1. deleting manually .bitmap hoping to re-start Bit from scratch. (probably unaware of `--reset-hard` flag).
|
|
456
|
+
* 2. switching to a branch where Bit wasn't initialized
|
|
457
|
+
* in which case, it's better to stop and show an error describing what needs to be done.
|
|
458
|
+
* it can always be ignored by entering `--force` flag.
|
|
459
|
+
*/
|
|
460
|
+
async function throwForOutOfSyncScope(consumer) {
|
|
461
|
+
if (!consumer.bitMap.isEmpty()) return;
|
|
462
|
+
const scopePath = consumer.scope.getPath();
|
|
463
|
+
const objectsPath = _objects().Repository.getPathByScopePath(scopePath);
|
|
464
|
+
const dirExist = await _fsExtra().default.pathExists(objectsPath);
|
|
465
|
+
if (!dirExist) return;
|
|
466
|
+
const hasObjects = !(await (0, _toolboxFs().isDirEmpty)(objectsPath));
|
|
467
|
+
if (hasObjects) {
|
|
468
|
+
throw new (_objectsWithoutConsumer().ObjectsWithoutConsumer)(scopePath);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
//# sourceMappingURL=host-initializer.main.runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","path","_interopRequireWildcard","_chalk","_enquirer","_scopeModules","_workspaceModules","_legacy","_objects","_toolboxFs","_config","_mcp","_cli","_objectsWithoutConsumer","_hostInitializer","_initCmd","_createConsumer","_logger","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","promptCancel","handlePromptError","err","Error","HostInitializerMain","init","absPath","noGit","noPackageJson","reset","resetNew","resetLaneNew","resetHard","resetScope","force","workspaceConfigProps","generator","consumerInfo","getWorkspaceInfo","process","cwd","consumerPath","name","basename","resetConsumer","consumer","createConsumer","scopePath","findScopePath","Scope","throwForOutOfSyncScope","writtenConsumer","write","created","hasGitDirectory","projectPath","gitPath","join","stat","fs","isDirectory","hasWorkspaceInitialized","isExist","WorkspaceConfig","Boolean","promptForEnvironment","envChoices","message","response","prompt","type","choices","initial","cancel","environment","promptForPackageManager","enabled","disabled","useExternalPackageManager","promptForMcpServer","setupMcp","editorChoices","editorResponse","editor","updateGitignore","gitignorePath","bitGitignoreSection","exists","pathExists","content","readFile","includes","appendFile","writeFile","trim","setupMcpServer","setupOptions","isGlobal","workspaceDir","consumerProject","McpConfigWriter","setupEditor","rulesOptions","writeRulesFile","runInteractiveMode","selectedEnv","mcpEditor","undefined","externalPackageManager","defaultDirectory","generateInitMessage","interactiveConfig","initMessage","chalk","green","grey","cyan","underline","provider","cli","loggerMain","logger","createLogger","HostInitializerAspect","id","hostInitializerMain","initCmd","InitCmd","register","exports","CLIAspect","LoggerAspect","MainRuntime","addRuntime","_default","bitMap","isEmpty","scope","getPath","objectsPath","Repository","getPathByScopePath","dirExist","hasObjects","isDirEmpty","ObjectsWithoutConsumer"],"sources":["host-initializer.main.runtime.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport * as path from 'path';\nimport chalk from 'chalk';\nimport { prompt } from 'enquirer';\nimport { findScopePath } from '@teambit/scope.modules.find-scope-path';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { getWorkspaceInfo } from '@teambit/workspace.modules.workspace-locator';\nimport { Scope } from '@teambit/legacy.scope';\nimport { Repository } from '@teambit/objects';\nimport { isDirEmpty } from '@teambit/toolbox.fs.is-dir-empty';\nimport type { WorkspaceExtensionProps } from '@teambit/config';\nimport { WorkspaceConfig } from '@teambit/config';\nimport type { SetupOptions, RulesOptions } from '@teambit/mcp.mcp-config-writer';\nimport { McpConfigWriter } from '@teambit/mcp.mcp-config-writer';\nimport type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { ObjectsWithoutConsumer } from './objects-without-consumer';\nimport { HostInitializerAspect } from './host-initializer.aspect';\nimport { InitCmd } from './init-cmd';\nimport { createConsumer, resetConsumer } from './create-consumer';\nimport type { LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\n\nexport interface InteractiveConfig {\n generator?: string;\n externalPackageManager: boolean;\n defaultDirectory: string;\n mcpEditor?: string;\n}\n\n/**\n * Reusable cancel function for prompts\n * By default, canceling the prompt via Ctrl+c throws an empty string.\n * The custom cancel function prevents that behavior.\n * Otherwise, Bit CLI would print an error and confuse users.\n * See related issue: https://github.com/enquirer/enquirer/issues/225\n */\nconst promptCancel = () => {\n // Empty function to prevent default behavior\n};\n\n/**\n * Handle prompt errors consistently\n */\nconst handlePromptError = (err: any): never => {\n if (!err || err === '') {\n // for some reason, when the user clicks Ctrl+C, the error is an empty string\n throw new Error('The prompt has been canceled');\n }\n throw err;\n};\n\nexport class HostInitializerMain {\n static async init(\n absPath?: string,\n noGit = false,\n noPackageJson = false,\n reset = false,\n resetNew = false,\n resetLaneNew = false,\n resetHard = false,\n resetScope = false,\n force = false,\n workspaceConfigProps: WorkspaceExtensionProps = {},\n generator?: string\n ): Promise<{ created: boolean; consumer: Consumer }> {\n const consumerInfo = await getWorkspaceInfo(absPath || process.cwd());\n // if \"bit init\" was running without any flags, the user is probably trying to init a new workspace but wasn't aware\n // that he's already in a workspace.\n if (\n !absPath &&\n consumerInfo?.path &&\n consumerInfo.path !== process.cwd() &&\n !reset &&\n !resetHard &&\n !resetScope &&\n !resetNew &&\n !resetLaneNew\n ) {\n throw new Error(\n `error: unable to init a new workspace in an inner directory of an existing workspace at \"${consumerInfo.path}\"`\n );\n }\n const consumerPath = consumerInfo?.path || absPath || process.cwd();\n\n workspaceConfigProps = {\n ...workspaceConfigProps,\n name: workspaceConfigProps.name || path.basename(consumerPath),\n };\n\n if (reset || resetHard) {\n await resetConsumer(consumerPath, resetHard, noGit);\n }\n let consumer: Consumer | undefined;\n try {\n consumer = await createConsumer(consumerPath, noGit, noPackageJson, workspaceConfigProps, generator);\n } catch {\n // it's possible that at this stage the consumer fails to load due to scope issues.\n // still we want to load it to include its instance of \"scope.json\", so then later when \"consumer.write()\", we\n // don't lose some scope metadata\n }\n if (resetScope) {\n const scopePath = findScopePath(consumerPath);\n if (!scopePath) throw new Error(`fatal: scope not found in the path: ${consumerPath}`);\n await Scope.reset(scopePath, true);\n }\n if (!consumer) consumer = await createConsumer(consumerPath, noGit, noPackageJson, workspaceConfigProps);\n if (!force && !resetScope) {\n await throwForOutOfSyncScope(consumer);\n }\n if (resetNew) {\n await consumer.resetNew();\n }\n if (resetLaneNew) {\n await consumer.resetLaneNew();\n }\n const writtenConsumer = await consumer.write();\n return { created: !consumerInfo?.path, consumer: writtenConsumer };\n }\n\n /**\n * Check if the directory contains a .git folder\n */\n static async hasGitDirectory(projectPath: string): Promise<boolean> {\n try {\n const gitPath = path.join(projectPath, '.git');\n const stat = await fs.stat(gitPath);\n return stat.isDirectory();\n } catch {\n return false;\n }\n }\n\n /**\n * Check if the directory already has a bit workspace initialized\n */\n static async hasWorkspaceInitialized(projectPath: string): Promise<boolean> {\n try {\n const isExist = await WorkspaceConfig.isExist(projectPath);\n return Boolean(isExist);\n } catch {\n return false;\n }\n }\n\n /**\n * Prompt user for environment selection\n */\n static async promptForEnvironment(): Promise<string | null> {\n const envChoices = [\n { name: 'none', message: 'None (default)' },\n { name: 'bitdev.node/node-env', message: 'Node.js environment' },\n { name: 'bitdev.react/react-env', message: 'React environment' },\n { name: 'bitdev.vue/vue-env', message: 'Vue environment' },\n { name: 'bitdev.angular/angular-env', message: 'Angular environment' },\n { name: 'bitdev.symphony/envs/symphony-env', message: 'Symphony environment' },\n ];\n\n try {\n const response = (await prompt({\n type: 'select',\n name: 'environment',\n message: 'Which environment would you like to use?',\n choices: envChoices,\n initial: 0, // Default to 'none'\n cancel: promptCancel,\n } as any)) as { environment: string };\n\n return response.environment === 'none' ? null : response.environment;\n } catch (err: any) {\n return handlePromptError(err);\n }\n }\n\n /**\n * Prompt user for package manager preference\n */\n static async promptForPackageManager(): Promise<boolean> {\n try {\n const response = (await prompt({\n type: 'toggle',\n name: 'useExternalPackageManager',\n message: 'Would you like to use your own package manager (npm/yarn/pnpm) instead of Bit?',\n enabled: 'Yes',\n disabled: 'No',\n cancel: promptCancel,\n } as any)) as { useExternalPackageManager: boolean };\n\n return response.useExternalPackageManager;\n } catch (err: any) {\n return handlePromptError(err);\n }\n }\n\n /**\n * Prompt user for MCP server configuration\n */\n static async promptForMcpServer(): Promise<string | null> {\n try {\n const setupMcp = (await prompt({\n type: 'toggle',\n name: 'setupMcp',\n message: 'Would you like to set up the MCP server for AI-powered development?',\n enabled: 'Yes',\n disabled: 'No',\n cancel: promptCancel,\n } as any)) as { setupMcp: boolean };\n\n if (!setupMcp.setupMcp) {\n return null;\n }\n\n const editorChoices = [\n { name: 'vscode', message: 'VS Code' },\n { name: 'cursor', message: 'Cursor' },\n { name: 'windsurf', message: 'Windsurf' },\n { name: 'roo', message: 'Roo Code' },\n { name: 'cline', message: 'Cline' },\n { name: 'claude-code', message: 'Claude Code' },\n ];\n\n const editorResponse = (await prompt({\n type: 'select',\n name: 'editor',\n message: 'Which editor would you like to configure?',\n choices: editorChoices,\n initial: 0, // Default to VS Code\n cancel: promptCancel,\n } as any)) as { editor: string };\n\n return editorResponse.editor;\n } catch (err: any) {\n return handlePromptError(err);\n }\n }\n\n /**\n * Create or update .gitignore file with Bit-specific entries\n */\n static async updateGitignore(projectPath: string): Promise<void> {\n const gitignorePath = path.join(projectPath, '.gitignore');\n const bitGitignoreSection = `\n# Bit\n.bit\npublic\n# Bit files - generated during bit ws-config write command\ntsconfig.json\n.eslintrc.json\n.prettierrc.cjs\n# allow tsconfig from the env's config dir to be tracked\n!**/config/tsconfig.json\nnode_modules\n`;\n try {\n const exists = await fs.pathExists(gitignorePath);\n if (exists) {\n const content = await fs.readFile(gitignorePath, 'utf8');\n if (!content.includes('# Bit')) {\n await fs.appendFile(gitignorePath, bitGitignoreSection);\n }\n } else {\n await fs.writeFile(gitignorePath, bitGitignoreSection.trim());\n }\n } catch {\n // Don't fail the initialization if gitignore update fails\n // Note: Console logging is handled by the caller\n }\n }\n\n /**\n * Set up MCP server configuration for the selected editor\n */\n static async setupMcpServer(editor: string, projectPath: string): Promise<void> {\n // Set up MCP server configuration\n const setupOptions: SetupOptions = {\n isGlobal: false,\n workspaceDir: projectPath,\n consumerProject: false,\n };\n\n await McpConfigWriter.setupEditor(editor, setupOptions);\n\n // Write rules file for the editor\n const rulesOptions: RulesOptions = {\n isGlobal: false,\n workspaceDir: projectPath,\n consumerProject: false,\n };\n\n await McpConfigWriter.writeRulesFile(editor, rulesOptions);\n }\n\n /**\n * Run interactive mode for Git repositories\n */\n static async runInteractiveMode(projectPath: string): Promise<InteractiveConfig> {\n const selectedEnv = await HostInitializerMain.promptForEnvironment();\n const useExternalPackageManager = await HostInitializerMain.promptForPackageManager();\n const mcpEditor = await HostInitializerMain.promptForMcpServer();\n\n // Set up MCP server if user selected an editor\n if (mcpEditor) {\n await HostInitializerMain.setupMcpServer(mcpEditor, projectPath);\n }\n\n await HostInitializerMain.updateGitignore(projectPath);\n\n return {\n generator: selectedEnv || undefined,\n externalPackageManager: useExternalPackageManager,\n defaultDirectory: 'bit-components/{scope}/{name}',\n mcpEditor: mcpEditor || undefined,\n };\n }\n\n /**\n * Generate the final initialization message\n */\n static generateInitMessage(\n created: boolean,\n reset: boolean,\n resetHard: boolean,\n resetScope: boolean,\n interactiveConfig: InteractiveConfig | null\n ): string {\n let initMessage = `${chalk.green('successfully initialized a bit workspace.')}`;\n\n if (!created) initMessage = `${chalk.grey('successfully re-initialized a bit workspace.')}`;\n if (reset) initMessage = `${chalk.grey('your bit workspace has been reset successfully.')}`;\n if (resetHard) initMessage = `${chalk.grey('your bit workspace has been hard-reset successfully.')}`;\n if (resetScope) initMessage = `${chalk.grey('your local scope has been reset successfully.')}`;\n\n // Add additional information for interactive mode\n if (interactiveConfig) {\n initMessage += `\\n\\n${chalk.cyan('ℹ️ Additional Information:')}`;\n const defaultDirectory = interactiveConfig?.defaultDirectory || 'bit-components/{scope}/{name}';\n initMessage += `\\n📁 Components will be created in: ${chalk.cyan(defaultDirectory)}`;\n initMessage += `\\n📖 For CI/CD setup, visit: ${chalk.underline('https://bit.dev/docs/getting-started/collaborate/exporting-components#custom-ci/cd-setup')}`;\n\n if (interactiveConfig.generator) {\n initMessage += `\\n🎯 Environment: ${chalk.cyan(interactiveConfig.generator)}`;\n }\n\n if (interactiveConfig.mcpEditor) {\n initMessage += `\\n🤖 MCP server configured for: ${chalk.cyan(interactiveConfig.mcpEditor)}`;\n }\n\n if (interactiveConfig.externalPackageManager) {\n initMessage += `\\n📦 External package manager mode enabled`;\n initMessage += `\\n💡 Run ${chalk.cyan('pnpm install')} (or ${chalk.cyan('yarn install')}/${chalk.cyan('npm install')}) to install dependencies`;\n } else if (interactiveConfig.generator) {\n initMessage += `\\n💡 Run ${chalk.cyan('bit install')} to install dependencies`;\n }\n }\n\n return initMessage;\n }\n\n static slots = [];\n static dependencies = [CLIAspect, LoggerAspect];\n static runtime = MainRuntime;\n static async provider([cli, loggerMain]: [CLIMain, LoggerMain]) {\n const logger = loggerMain.createLogger(HostInitializerAspect.id);\n const hostInitializerMain = new HostInitializerMain();\n const initCmd = new InitCmd(hostInitializerMain, logger);\n cli.register(initCmd);\n return hostInitializerMain;\n }\n}\n\nHostInitializerAspect.addRuntime(HostInitializerMain);\n\nexport default HostInitializerMain;\n\n/**\n * throw an error when .bitmap is empty but a scope has objects.\n * a user may got into this state for reasons such as:\n * 1. deleting manually .bitmap hoping to re-start Bit from scratch. (probably unaware of `--reset-hard` flag).\n * 2. switching to a branch where Bit wasn't initialized\n * in which case, it's better to stop and show an error describing what needs to be done.\n * it can always be ignored by entering `--force` flag.\n */\nasync function throwForOutOfSyncScope(consumer: Consumer): Promise<void> {\n if (!consumer.bitMap.isEmpty()) return;\n const scopePath = consumer.scope.getPath();\n const objectsPath = Repository.getPathByScopePath(scopePath);\n const dirExist = await fs.pathExists(objectsPath);\n if (!dirExist) return;\n const hasObjects = !(await isDirEmpty(objectsPath));\n if (hasObjects) {\n throw new ObjectsWithoutConsumer(scopePath);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { HostInitializerAspect } from './host-initializer.aspect';
|
|
2
|
+
export { HostInitializerMain } from './host-initializer.main.runtime';
|
|
3
|
+
export { ObjectsWithoutConsumer } from './objects-without-consumer';
|
|
4
|
+
export { EXTERNAL_PM_POSTINSTALL_SCRIPT } from './create-consumer';
|
|
5
|
+
export default HostInitializerAspect;
|
|
6
|
+
export { HostInitializerAspect };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "EXTERNAL_PM_POSTINSTALL_SCRIPT", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _createConsumer().EXTERNAL_PM_POSTINSTALL_SCRIPT;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "HostInitializerAspect", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _hostInitializer().HostInitializerAspect;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "HostInitializerMain", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _hostInitializerMain().HostInitializerMain;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "ObjectsWithoutConsumer", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _objectsWithoutConsumer().ObjectsWithoutConsumer;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
exports.default = void 0;
|
|
31
|
+
function _hostInitializer() {
|
|
32
|
+
const data = require("./host-initializer.aspect");
|
|
33
|
+
_hostInitializer = function () {
|
|
34
|
+
return data;
|
|
35
|
+
};
|
|
36
|
+
return data;
|
|
37
|
+
}
|
|
38
|
+
function _hostInitializerMain() {
|
|
39
|
+
const data = require("./host-initializer.main.runtime");
|
|
40
|
+
_hostInitializerMain = function () {
|
|
41
|
+
return data;
|
|
42
|
+
};
|
|
43
|
+
return data;
|
|
44
|
+
}
|
|
45
|
+
function _objectsWithoutConsumer() {
|
|
46
|
+
const data = require("./objects-without-consumer");
|
|
47
|
+
_objectsWithoutConsumer = function () {
|
|
48
|
+
return data;
|
|
49
|
+
};
|
|
50
|
+
return data;
|
|
51
|
+
}
|
|
52
|
+
function _createConsumer() {
|
|
53
|
+
const data = require("./create-consumer");
|
|
54
|
+
_createConsumer = function () {
|
|
55
|
+
return data;
|
|
56
|
+
};
|
|
57
|
+
return data;
|
|
58
|
+
}
|
|
59
|
+
var _default = exports.default = _hostInitializer().HostInitializerAspect;
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_hostInitializer","data","require","_hostInitializerMain","_objectsWithoutConsumer","_createConsumer","_default","exports","default","HostInitializerAspect"],"sources":["index.ts"],"sourcesContent":["import { HostInitializerAspect } from './host-initializer.aspect';\n\nexport { HostInitializerMain } from './host-initializer.main.runtime';\nexport { ObjectsWithoutConsumer } from './objects-without-consumer';\nexport { EXTERNAL_PM_POSTINSTALL_SCRIPT } from './create-consumer';\nexport default HostInitializerAspect;\nexport { HostInitializerAspect };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,iBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,gBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,qBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,oBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,wBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,uBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,gBAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,eAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmE,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACpDC,wCAAqB","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Command, CommandOptions } from '@teambit/cli';
|
|
2
|
+
import { HostInitializerMain } from './host-initializer.main.runtime';
|
|
3
|
+
import type { Logger } from '@teambit/logger';
|
|
4
|
+
export declare class InitCmd implements Command {
|
|
5
|
+
private hostInitializer;
|
|
6
|
+
private logger;
|
|
7
|
+
name: string;
|
|
8
|
+
skipWorkspace: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
helpUrl: string;
|
|
11
|
+
group: string;
|
|
12
|
+
extendedDescription: string;
|
|
13
|
+
alias: string;
|
|
14
|
+
loadAspects: boolean;
|
|
15
|
+
options: CommandOptions;
|
|
16
|
+
constructor(hostInitializer: HostInitializerMain, logger: Logger);
|
|
17
|
+
private handleInteractiveMode;
|
|
18
|
+
report([path]: [string], flags: Record<string, any>): Promise<string>;
|
|
19
|
+
}
|