task-o-matic 0.0.13 → 0.0.15
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/cli/display/progress.d.ts +15 -2
- package/dist/cli/display/progress.d.ts.map +1 -1
- package/dist/cli/display/progress.js +72 -4
- package/dist/commands/benchmark.d.ts.map +1 -1
- package/dist/commands/benchmark.js +11 -3
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +60 -12
- package/dist/commands/prd.js +7 -1
- package/dist/commands/tasks/delete.d.ts.map +1 -1
- package/dist/commands/tasks/delete.js +2 -1
- package/dist/commands/tasks/document/add.d.ts.map +1 -1
- package/dist/commands/tasks/document/add.js +5 -4
- package/dist/commands/tasks/document/get.d.ts.map +1 -1
- package/dist/commands/tasks/document/get.js +2 -1
- package/dist/commands/tasks/list.js +2 -2
- package/dist/commands/tasks/next.js +4 -4
- package/dist/commands/tasks/plan/set.d.ts.map +1 -1
- package/dist/commands/tasks/plan/set.js +11 -3
- package/dist/commands/tasks/show.d.ts.map +1 -1
- package/dist/commands/tasks/show.js +2 -1
- package/dist/commands/tasks/status.d.ts.map +1 -1
- package/dist/commands/tasks/status.js +4 -3
- package/dist/commands/tasks/update.d.ts.map +1 -1
- package/dist/commands/tasks/update.js +7 -1
- package/dist/lib/ai-service/ai-operations.d.ts +1 -1
- package/dist/lib/ai-service/ai-operations.d.ts.map +1 -1
- package/dist/lib/ai-service/base-operations.d.ts +22 -0
- package/dist/lib/ai-service/base-operations.d.ts.map +1 -1
- package/dist/lib/ai-service/base-operations.js +29 -1
- package/dist/lib/ai-service/model-provider.d.ts.map +1 -1
- package/dist/lib/ai-service/model-provider.js +37 -6
- package/dist/lib/ai-service/task-operations.d.ts +2 -1
- package/dist/lib/ai-service/task-operations.d.ts.map +1 -1
- package/dist/lib/ai-service/task-operations.js +135 -173
- package/dist/lib/benchmark/registry.d.ts.map +1 -1
- package/dist/lib/benchmark/registry.js +6 -10
- package/dist/lib/better-t-stack-cli.d.ts +36 -21
- package/dist/lib/better-t-stack-cli.d.ts.map +1 -1
- package/dist/lib/better-t-stack-cli.js +212 -33
- package/dist/lib/bootstrap/cli-bootstrap.d.ts +14 -0
- package/dist/lib/bootstrap/cli-bootstrap.d.ts.map +1 -0
- package/dist/lib/bootstrap/cli-bootstrap.js +325 -0
- package/dist/lib/bootstrap/index.d.ts +4 -0
- package/dist/lib/bootstrap/index.d.ts.map +1 -0
- package/dist/lib/bootstrap/index.js +19 -0
- package/dist/lib/bootstrap/medusa-bootstrap.d.ts +14 -0
- package/dist/lib/bootstrap/medusa-bootstrap.d.ts.map +1 -0
- package/dist/lib/bootstrap/medusa-bootstrap.js +218 -0
- package/dist/lib/bootstrap/opentui-bootstrap.d.ts +11 -0
- package/dist/lib/bootstrap/opentui-bootstrap.d.ts.map +1 -0
- package/dist/lib/bootstrap/opentui-bootstrap.js +342 -0
- package/dist/lib/config-validation.d.ts +215 -0
- package/dist/lib/config-validation.d.ts.map +1 -0
- package/dist/lib/config-validation.js +246 -0
- package/dist/lib/config.d.ts +14 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +37 -5
- package/dist/lib/storage/file-system.d.ts.map +1 -1
- package/dist/lib/storage/file-system.js +81 -21
- package/dist/lib/task-execution-core.d.ts.map +1 -1
- package/dist/lib/task-execution-core.js +3 -2
- package/dist/services/prd.d.ts +17 -0
- package/dist/services/prd.d.ts.map +1 -1
- package/dist/services/prd.js +67 -60
- package/dist/services/tasks.d.ts +317 -3
- package/dist/services/tasks.d.ts.map +1 -1
- package/dist/services/tasks.js +531 -185
- package/dist/services/workflow-ai-assistant.d.ts.map +1 -1
- package/dist/services/workflow-ai-assistant.js +19 -6
- package/dist/test/lib/ai-service/task-operations.test.d.ts +2 -0
- package/dist/test/lib/ai-service/task-operations.test.d.ts.map +1 -0
- package/dist/test/lib/ai-service/task-operations.test.js +362 -0
- package/dist/test/mocks/mock-ai-operations.d.ts +15 -0
- package/dist/test/mocks/mock-ai-operations.d.ts.map +1 -0
- package/dist/test/mocks/mock-ai-operations.js +107 -0
- package/dist/test/mocks/mock-context-builder.d.ts +10 -0
- package/dist/test/mocks/mock-context-builder.d.ts.map +1 -0
- package/dist/test/mocks/mock-context-builder.js +81 -0
- package/dist/test/mocks/mock-model-provider.d.ts +7 -0
- package/dist/test/mocks/mock-model-provider.d.ts.map +1 -0
- package/dist/test/mocks/mock-model-provider.js +21 -0
- package/dist/test/mocks/mock-service-factory.d.ts +11 -0
- package/dist/test/mocks/mock-service-factory.d.ts.map +1 -0
- package/dist/test/mocks/mock-service-factory.js +61 -0
- package/dist/test/mocks/mock-storage.d.ts +50 -0
- package/dist/test/mocks/mock-storage.d.ts.map +1 -0
- package/dist/test/mocks/mock-storage.js +145 -0
- package/dist/test/services/task-service.test.d.ts +2 -0
- package/dist/test/services/task-service.test.d.ts.map +1 -0
- package/dist/test/services/task-service.test.js +352 -0
- package/dist/test/test-mock-setup.d.ts +26 -0
- package/dist/test/test-mock-setup.d.ts.map +1 -0
- package/dist/test/test-mock-setup.js +41 -0
- package/dist/test/test-setup.d.ts +9 -0
- package/dist/test/test-setup.d.ts.map +1 -0
- package/dist/test/test-setup.js +44 -0
- package/dist/test/test-utils.d.ts +22 -0
- package/dist/test/test-utils.d.ts.map +1 -0
- package/dist/test/test-utils.js +37 -0
- package/dist/test/utils/ai-operation-utility.test.d.ts +2 -0
- package/dist/test/utils/ai-operation-utility.test.d.ts.map +1 -0
- package/dist/test/utils/ai-operation-utility.test.js +290 -0
- package/dist/test/utils/error-handling.test.d.ts +2 -0
- package/dist/test/utils/error-handling.test.d.ts.map +1 -0
- package/dist/test/utils/error-handling.test.js +231 -0
- package/dist/types/index.d.ts +36 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/results.d.ts +60 -6
- package/dist/types/results.d.ts.map +1 -1
- package/dist/utils/ai-operation-utility.d.ts +142 -0
- package/dist/utils/ai-operation-utility.d.ts.map +1 -0
- package/dist/utils/ai-operation-utility.js +288 -0
- package/dist/utils/ai-service-factory.d.ts +10 -0
- package/dist/utils/ai-service-factory.d.ts.map +1 -1
- package/dist/utils/ai-service-factory.js +19 -1
- package/dist/utils/cli-validators.d.ts +2 -2
- package/dist/utils/cli-validators.d.ts.map +1 -1
- package/dist/utils/cli-validators.js +7 -6
- package/dist/utils/error-utils.d.ts +70 -0
- package/dist/utils/error-utils.d.ts.map +1 -0
- package/dist/utils/error-utils.js +104 -0
- package/dist/utils/file-utils.d.ts +49 -0
- package/dist/utils/file-utils.d.ts.map +1 -0
- package/dist/utils/file-utils.js +82 -0
- package/dist/utils/id-generator.d.ts +92 -0
- package/dist/utils/id-generator.d.ts.map +1 -0
- package/dist/utils/id-generator.js +146 -0
- package/dist/utils/model-executor-parser.d.ts +1 -1
- package/dist/utils/model-executor-parser.d.ts.map +1 -1
- package/dist/utils/model-executor-parser.js +3 -2
- package/dist/utils/stack-formatter.d.ts +2 -1
- package/dist/utils/stack-formatter.d.ts.map +1 -1
- package/dist/utils/stack-formatter.js +8 -2
- package/dist/utils/storage-utils.d.ts +49 -0
- package/dist/utils/storage-utils.d.ts.map +1 -0
- package/dist/utils/storage-utils.js +80 -0
- package/dist/utils/streaming-utils.d.ts +38 -0
- package/dist/utils/streaming-utils.d.ts.map +1 -0
- package/dist/utils/streaming-utils.js +56 -0
- package/dist/utils/task-o-matic-error.d.ts +206 -0
- package/dist/utils/task-o-matic-error.d.ts.map +1 -0
- package/dist/utils/task-o-matic-error.js +304 -0
- package/docs/agents/cli.md +58 -149
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-t-stack-cli.d.ts","sourceRoot":"","sources":["../../src/lib/better-t-stack-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"better-t-stack-cli.d.ts","sourceRoot":"","sources":["../../src/lib/better-t-stack-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,WAAW,EAAE,MAAM,UAAU,CAAC;AAK/D,qBAAa,mBAAmB;IACxB,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAqEF,OAAO,CAAC,kBAAkB;YA+BZ,aAAa;YAiCb,mBAAmB;YAiCnB,iBAAiB;CA+ChC;AAGD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,UAAU,CAAsB;;IAMxC;;OAEG;IACH,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiFvE;;OAEG;YACW,4BAA4B;IA6C1C;;OAEG;YACW,eAAe;IAiC7B;;OAEG;YACW,eAAe;IA+B7B;;OAEG;YACW,kBAAkB;CAkCjC;AAGD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAOtE"}
|
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.BetterTStackService = void 0;
|
|
36
|
+
exports.BetterTStackIntegration = exports.BetterTStackService = void 0;
|
|
37
37
|
exports.runBetterTStackCLI = runBetterTStackCLI;
|
|
38
38
|
const config_1 = require("./config");
|
|
39
39
|
const fs_1 = require("fs");
|
|
@@ -99,9 +99,13 @@ class BetterTStackService {
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
convertToAPIConfig(config) {
|
|
102
|
+
// Ensure frontend is always an array for Better-T-Stack API
|
|
103
|
+
const frontend = Array.isArray(config.frontend)
|
|
104
|
+
? config.frontend
|
|
105
|
+
: [config.frontend];
|
|
102
106
|
return {
|
|
103
107
|
// Don't use 'yes' flag when providing explicit configuration
|
|
104
|
-
frontend
|
|
108
|
+
frontend,
|
|
105
109
|
backend: config.backend,
|
|
106
110
|
runtime: config.runtime,
|
|
107
111
|
api: config.api,
|
|
@@ -210,36 +214,211 @@ class BetterTStackService {
|
|
|
210
214
|
}
|
|
211
215
|
}
|
|
212
216
|
exports.BetterTStackService = BetterTStackService;
|
|
217
|
+
// Helper methods for multi-frontend support
|
|
218
|
+
class BetterTStackIntegration {
|
|
219
|
+
btsService;
|
|
220
|
+
constructor() {
|
|
221
|
+
this.btsService = new BetterTStackService();
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Parse frontend option into array of frontends
|
|
225
|
+
*/
|
|
226
|
+
parseFrontends(frontendOption) {
|
|
227
|
+
if (!frontendOption)
|
|
228
|
+
return [];
|
|
229
|
+
// If already array, return it
|
|
230
|
+
if (Array.isArray(frontendOption))
|
|
231
|
+
return frontendOption;
|
|
232
|
+
// If string, split by comma or space
|
|
233
|
+
if (typeof frontendOption === "string") {
|
|
234
|
+
return frontendOption
|
|
235
|
+
.split(/[\s,]+/)
|
|
236
|
+
.map((f) => f.trim())
|
|
237
|
+
.filter(Boolean);
|
|
238
|
+
}
|
|
239
|
+
// Single value
|
|
240
|
+
return [frontendOption];
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Split frontends into Better-T-Stack frontends vs custom frontends
|
|
244
|
+
*/
|
|
245
|
+
splitFrontends(frontends) {
|
|
246
|
+
const customTypes = new Set(["cli", "tui", "opentui", "medusa"]);
|
|
247
|
+
return {
|
|
248
|
+
btsFrontends: frontends.filter((f) => !customTypes.has(f)),
|
|
249
|
+
customFrontends: frontends.filter((f) => customTypes.has(f)),
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Create project with support for multiple frontends
|
|
254
|
+
*/
|
|
255
|
+
async createProject(name, options, workingDirectory) {
|
|
256
|
+
const workingDir = workingDirectory || config_1.configManager.getWorkingDirectory();
|
|
257
|
+
const frontends = this.parseFrontends(options.frontend);
|
|
258
|
+
const { btsFrontends, customFrontends } = this.splitFrontends(frontends);
|
|
259
|
+
const isMonorepo = frontends.length > 1;
|
|
260
|
+
let projectPath = (0, path_1.join)(workingDir, name);
|
|
261
|
+
const results = [];
|
|
262
|
+
try {
|
|
263
|
+
// Step 1: Bootstrap Better-T-Stack project FIRST (if any BTS frontends)
|
|
264
|
+
// This creates the monorepo structure that CLI/TUI will be added to
|
|
265
|
+
if (btsFrontends.length > 0) {
|
|
266
|
+
const result = await this.bootstrapBetterTStackProject(name, btsFrontends, options, workingDir);
|
|
267
|
+
if (!result.success)
|
|
268
|
+
throw new Error(result.message);
|
|
269
|
+
// Get the actual project path from Better-T-Stack result
|
|
270
|
+
// This is the full path where the project was created
|
|
271
|
+
projectPath = (0, path_1.join)(workingDir, name);
|
|
272
|
+
results.push(result.message);
|
|
273
|
+
}
|
|
274
|
+
else if (isMonorepo) {
|
|
275
|
+
// Create monorepo structure manually if no BTS frontends
|
|
276
|
+
// (e.g., just cli + tui with no web/native)
|
|
277
|
+
(0, fs_1.mkdirSync)(projectPath, { recursive: true });
|
|
278
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(projectPath, "apps"), { recursive: true });
|
|
279
|
+
console.log(`📁 Created monorepo structure at ${projectPath}`);
|
|
280
|
+
}
|
|
281
|
+
// Step 2: AFTER Better-T-Stack creates the structure, add custom frontends
|
|
282
|
+
// These get added into the apps/ directory that Better-T-Stack created
|
|
283
|
+
for (const frontend of customFrontends) {
|
|
284
|
+
if (frontend === "cli") {
|
|
285
|
+
const result = await this.addCliToProject(name, projectPath, isMonorepo, options);
|
|
286
|
+
results.push(result.message);
|
|
287
|
+
}
|
|
288
|
+
if (frontend === "tui" || frontend === "opentui") {
|
|
289
|
+
const result = await this.addTuiToProject(name, projectPath, isMonorepo, options);
|
|
290
|
+
results.push(result.message);
|
|
291
|
+
}
|
|
292
|
+
if (frontend === "medusa") {
|
|
293
|
+
const result = await this.addMedusaToProject(name, projectPath, isMonorepo, options);
|
|
294
|
+
results.push(result.message);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
success: true,
|
|
299
|
+
message: results.join("\n"),
|
|
300
|
+
projectPath,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
305
|
+
return {
|
|
306
|
+
success: false,
|
|
307
|
+
message: `Project creation failed: ${message}`,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Bootstrap Better-T-Stack project with one or more frontends
|
|
313
|
+
*/
|
|
314
|
+
async bootstrapBetterTStackProject(name, frontends, options, workingDir) {
|
|
315
|
+
const backend = options.backend || "hono";
|
|
316
|
+
const isConvex = backend === "convex";
|
|
317
|
+
const btsConfig = {
|
|
318
|
+
projectName: options.name || options.projectName || name,
|
|
319
|
+
frontend: frontends.length === 1 ? frontends[0] : frontends, // Pass array if multiple
|
|
320
|
+
backend: backend || "hono",
|
|
321
|
+
database: isConvex
|
|
322
|
+
? "none"
|
|
323
|
+
: options.database || "sqlite",
|
|
324
|
+
auth: options.noAuth ? "none" : "better-auth",
|
|
325
|
+
addons: options.addons || ["turborepo"],
|
|
326
|
+
runtime: isConvex || backend === "self" ? "none" : options.runtime || "node",
|
|
327
|
+
api: options.api || "none",
|
|
328
|
+
payments: options.payment || "none",
|
|
329
|
+
orm: isConvex ? "none" : options.orm || "drizzle",
|
|
330
|
+
dbSetup: isConvex ? "none" : options.dbSetup || "none",
|
|
331
|
+
packageManager: options.packageManager || "npm",
|
|
332
|
+
git: !options.noGit,
|
|
333
|
+
webDeploy: options.webDeploy || "none",
|
|
334
|
+
serverDeploy: options.serverDeploy || "none",
|
|
335
|
+
install: !options.noInstall,
|
|
336
|
+
examples: options.examples || [],
|
|
337
|
+
includeDocs: options.includeDocs,
|
|
338
|
+
};
|
|
339
|
+
const result = await this.btsService.createProject(name, btsConfig, workingDir);
|
|
340
|
+
return {
|
|
341
|
+
success: result.success,
|
|
342
|
+
message: result.message,
|
|
343
|
+
projectPath: result.projectPath,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Add CLI app to project (standalone or monorepo)
|
|
348
|
+
*/
|
|
349
|
+
async addCliToProject(projectName, projectPath, isMonorepo, options) {
|
|
350
|
+
const { bootstrapCliProject } = await Promise.resolve().then(() => __importStar(require("./bootstrap/cli-bootstrap.js")));
|
|
351
|
+
const cliPath = isMonorepo ? (0, path_1.join)(projectPath, "apps", "cli") : projectPath;
|
|
352
|
+
const cliName = isMonorepo ? `${projectName}-cli` : projectName;
|
|
353
|
+
const result = await bootstrapCliProject({
|
|
354
|
+
projectName: cliName,
|
|
355
|
+
projectPath: cliPath,
|
|
356
|
+
dependencyLevel: options.cliDeps || "standard",
|
|
357
|
+
packageManager: options.packageManager || "npm",
|
|
358
|
+
runtime: options.runtime || "node",
|
|
359
|
+
typescript: true,
|
|
360
|
+
});
|
|
361
|
+
if (!result.success)
|
|
362
|
+
throw new Error(result.message);
|
|
363
|
+
return {
|
|
364
|
+
success: true,
|
|
365
|
+
message: isMonorepo
|
|
366
|
+
? `✅ CLI app added to apps/cli/`
|
|
367
|
+
: `✅ CLI project "${projectName}" created successfully!`,
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Add TUI app to project (standalone or monorepo)
|
|
372
|
+
*/
|
|
373
|
+
async addTuiToProject(projectName, projectPath, isMonorepo, options) {
|
|
374
|
+
const { bootstrapOpenTuiProject } = await Promise.resolve().then(() => __importStar(require("./bootstrap/opentui-bootstrap.js")));
|
|
375
|
+
const tuiPath = isMonorepo ? (0, path_1.join)(projectPath, "apps", "tui") : projectPath;
|
|
376
|
+
const tuiName = isMonorepo ? `${projectName}-tui` : projectName;
|
|
377
|
+
const result = await bootstrapOpenTuiProject({
|
|
378
|
+
projectName: tuiName,
|
|
379
|
+
projectPath: tuiPath,
|
|
380
|
+
framework: options.tuiFramework || "solid",
|
|
381
|
+
packageManager: options.packageManager || "bun",
|
|
382
|
+
});
|
|
383
|
+
if (!result.success)
|
|
384
|
+
throw new Error(result.message);
|
|
385
|
+
return {
|
|
386
|
+
success: true,
|
|
387
|
+
message: isMonorepo
|
|
388
|
+
? `✅ TUI app added to apps/tui/`
|
|
389
|
+
: `✅ TUI project "${projectName}" created successfully!`,
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Add MedusaJS app to project (standalone or monorepo)
|
|
394
|
+
*/
|
|
395
|
+
async addMedusaToProject(projectName, projectPath, isMonorepo, options) {
|
|
396
|
+
const { bootstrapMedusaProject } = await Promise.resolve().then(() => __importStar(require("./bootstrap/medusa-bootstrap.js")));
|
|
397
|
+
const medusaPath = isMonorepo
|
|
398
|
+
? (0, path_1.join)(projectPath, "apps", "medusa")
|
|
399
|
+
: projectPath;
|
|
400
|
+
const medusaName = isMonorepo ? `${projectName}-medusa` : projectName;
|
|
401
|
+
const result = await bootstrapMedusaProject({
|
|
402
|
+
projectName: medusaName,
|
|
403
|
+
projectPath: medusaPath,
|
|
404
|
+
packageManager: options.packageManager || "npm",
|
|
405
|
+
database: options.database || "sqlite",
|
|
406
|
+
skipDb: options.noInstall, // Skip DB setup if not installing deps
|
|
407
|
+
skipInstall: options.noInstall,
|
|
408
|
+
});
|
|
409
|
+
if (!result.success)
|
|
410
|
+
throw new Error(result.message);
|
|
411
|
+
return {
|
|
412
|
+
success: true,
|
|
413
|
+
message: isMonorepo
|
|
414
|
+
? `✅ MedusaJS app added to apps/medusa/`
|
|
415
|
+
: `✅ MedusaJS project "${projectName}" created successfully!`,
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
exports.BetterTStackIntegration = BetterTStackIntegration;
|
|
420
|
+
// Export backward-compatible function
|
|
213
421
|
async function runBetterTStackCLI(options, workingDirectory) {
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
const isConvex = backend === "convex";
|
|
217
|
-
const btsConfig = {
|
|
218
|
-
projectName: options.name || options.projectName || "default-project",
|
|
219
|
-
frontend: options.frontend || "next",
|
|
220
|
-
backend: backend || "convex",
|
|
221
|
-
database: isConvex
|
|
222
|
-
? "none"
|
|
223
|
-
: options.database || "sqlite",
|
|
224
|
-
auth: options.noAuth ? "none" : "better-auth",
|
|
225
|
-
addons: options.addons || ["turborepo"],
|
|
226
|
-
runtime: isConvex || backend === "self" ? "none" : options.runtime || "node",
|
|
227
|
-
api: options.api || "none",
|
|
228
|
-
payments: options.payment || "none",
|
|
229
|
-
orm: isConvex ? "none" : options.orm || "drizzle",
|
|
230
|
-
dbSetup: isConvex ? "none" : options.dbSetup || "none",
|
|
231
|
-
packageManager: options.packageManager || "npm",
|
|
232
|
-
git: !options.noGit,
|
|
233
|
-
webDeploy: options.webDeploy || "none",
|
|
234
|
-
serverDeploy: options.serverDeploy || "none",
|
|
235
|
-
install: !options.noInstall,
|
|
236
|
-
examples: options.examples || [],
|
|
237
|
-
includeDocs: options.includeDocs,
|
|
238
|
-
};
|
|
239
|
-
const result = await btsService.createProject(options.projectName || options.name || "", btsConfig, workingDirectory);
|
|
240
|
-
return {
|
|
241
|
-
success: result.success,
|
|
242
|
-
message: result.message,
|
|
243
|
-
projectPath: result.projectPath,
|
|
244
|
-
};
|
|
422
|
+
const integration = new BetterTStackIntegration();
|
|
423
|
+
return integration.createProject(options.projectName || options.name || "default-project", options, workingDirectory);
|
|
245
424
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CliDependencyLevel } from "../../types";
|
|
2
|
+
export interface CliBootstrapOptions {
|
|
3
|
+
projectName: string;
|
|
4
|
+
projectPath: string;
|
|
5
|
+
dependencyLevel: CliDependencyLevel;
|
|
6
|
+
packageManager: "npm" | "pnpm" | "bun";
|
|
7
|
+
runtime: "node" | "bun";
|
|
8
|
+
typescript: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function bootstrapCliProject(options: CliBootstrapOptions): Promise<{
|
|
11
|
+
success: boolean;
|
|
12
|
+
message: string;
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=cli-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-bootstrap.d.ts","sourceRoot":"","sources":["../../../src/lib/bootstrap/cli-bootstrap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,kBAAkB,CAAC;IACpC,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACvC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4GhD"}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.bootstrapCliProject = bootstrapCliProject;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const child_process_1 = require("child_process");
|
|
11
|
+
const util_1 = require("util");
|
|
12
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
13
|
+
async function bootstrapCliProject(options) {
|
|
14
|
+
try {
|
|
15
|
+
console.log(chalk_1.default.blue(`\n🚀 Bootstrapping CLI project: ${options.projectName}`));
|
|
16
|
+
// Create project directory
|
|
17
|
+
if (!(0, fs_1.existsSync)(options.projectPath)) {
|
|
18
|
+
(0, fs_1.mkdirSync)(options.projectPath, { recursive: true });
|
|
19
|
+
console.log(chalk_1.default.green(` ✓ Created project directory`));
|
|
20
|
+
}
|
|
21
|
+
// Create directory structure
|
|
22
|
+
const dirs = [
|
|
23
|
+
"src/cli",
|
|
24
|
+
"src/commands",
|
|
25
|
+
"src/types",
|
|
26
|
+
];
|
|
27
|
+
// Add services dir for standard+
|
|
28
|
+
if (options.dependencyLevel !== "minimal") {
|
|
29
|
+
dirs.push("src/services");
|
|
30
|
+
}
|
|
31
|
+
// Add test dir for full+
|
|
32
|
+
if (options.dependencyLevel === "full" || options.dependencyLevel === "task-o-matic") {
|
|
33
|
+
dirs.push("src/test");
|
|
34
|
+
}
|
|
35
|
+
dirs.forEach(dir => {
|
|
36
|
+
const fullPath = (0, path_1.join)(options.projectPath, dir);
|
|
37
|
+
(0, fs_1.mkdirSync)(fullPath, { recursive: true });
|
|
38
|
+
});
|
|
39
|
+
console.log(chalk_1.default.green(` ✓ Created directory structure`));
|
|
40
|
+
// Generate files
|
|
41
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(options.projectPath, "package.json"), generatePackageJson(options));
|
|
42
|
+
console.log(chalk_1.default.green(` ✓ Created package.json`));
|
|
43
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(options.projectPath, "tsconfig.json"), generateTsConfig(options.dependencyLevel === "full" || options.dependencyLevel === "task-o-matic"));
|
|
44
|
+
console.log(chalk_1.default.green(` ✓ Created tsconfig.json`));
|
|
45
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(options.projectPath, "src/cli/bin.ts"), generateBinTemplate(options.projectName));
|
|
46
|
+
console.log(chalk_1.default.green(` ✓ Created src/cli/bin.ts`));
|
|
47
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(options.projectPath, "src/index.ts"), generateIndexTemplate(options.projectName));
|
|
48
|
+
console.log(chalk_1.default.green(` ✓ Created src/index.ts`));
|
|
49
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(options.projectPath, "src/commands/index.ts"), generateCommandsIndexTemplate());
|
|
50
|
+
console.log(chalk_1.default.green(` ✓ Created src/commands/index.ts`));
|
|
51
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(options.projectPath, "src/commands/example.ts"), generateExampleCommandTemplate());
|
|
52
|
+
console.log(chalk_1.default.green(` ✓ Created src/commands/example.ts`));
|
|
53
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(options.projectPath, "src/types/index.ts"), generateTypesTemplate());
|
|
54
|
+
console.log(chalk_1.default.green(` ✓ Created src/types/index.ts`));
|
|
55
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(options.projectPath, "README.md"), generateReadmeTemplate(options));
|
|
56
|
+
console.log(chalk_1.default.green(` ✓ Created README.md`));
|
|
57
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(options.projectPath, ".gitignore"), generateGitignoreTemplate());
|
|
58
|
+
console.log(chalk_1.default.green(` ✓ Created .gitignore`));
|
|
59
|
+
// Install dependencies
|
|
60
|
+
console.log(chalk_1.default.cyan(`\n 📦 Installing dependencies with ${options.packageManager}...`));
|
|
61
|
+
const installCmd = options.packageManager === "npm" ? "npm install" :
|
|
62
|
+
options.packageManager === "pnpm" ? "pnpm install" :
|
|
63
|
+
"bun install";
|
|
64
|
+
await execAsync(installCmd, { cwd: options.projectPath });
|
|
65
|
+
console.log(chalk_1.default.green(` ✓ Dependencies installed`));
|
|
66
|
+
return {
|
|
67
|
+
success: true,
|
|
68
|
+
message: `CLI project "${options.projectName}" created successfully!`
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
73
|
+
return {
|
|
74
|
+
success: false,
|
|
75
|
+
message: `Failed to bootstrap CLI project: ${message}`
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function generatePackageJson(options) {
|
|
80
|
+
const deps = getBaseDependencies(options.dependencyLevel);
|
|
81
|
+
const devDeps = getDevDependencies(options);
|
|
82
|
+
const scripts = getScripts(options);
|
|
83
|
+
const pkg = {
|
|
84
|
+
name: options.projectName,
|
|
85
|
+
version: "0.1.0",
|
|
86
|
+
type: "module",
|
|
87
|
+
main: "./dist/lib/index.js",
|
|
88
|
+
types: "./dist/lib/index.d.ts",
|
|
89
|
+
bin: {
|
|
90
|
+
[options.projectName]: "./dist/cli/bin.js"
|
|
91
|
+
},
|
|
92
|
+
scripts,
|
|
93
|
+
dependencies: deps,
|
|
94
|
+
devDependencies: devDeps,
|
|
95
|
+
};
|
|
96
|
+
return JSON.stringify(pkg, null, 2);
|
|
97
|
+
}
|
|
98
|
+
function getBaseDependencies(level) {
|
|
99
|
+
const deps = {
|
|
100
|
+
minimal: {
|
|
101
|
+
commander: "latest",
|
|
102
|
+
chalk: "latest"
|
|
103
|
+
},
|
|
104
|
+
standard: {
|
|
105
|
+
commander: "latest",
|
|
106
|
+
chalk: "latest",
|
|
107
|
+
inquirer: "latest",
|
|
108
|
+
dotenv: "latest"
|
|
109
|
+
},
|
|
110
|
+
full: {
|
|
111
|
+
commander: "latest",
|
|
112
|
+
chalk: "latest",
|
|
113
|
+
inquirer: "latest",
|
|
114
|
+
dotenv: "latest"
|
|
115
|
+
},
|
|
116
|
+
"task-o-matic": {
|
|
117
|
+
commander: "latest",
|
|
118
|
+
chalk: "latest",
|
|
119
|
+
inquirer: "latest",
|
|
120
|
+
dotenv: "latest",
|
|
121
|
+
ai: "latest",
|
|
122
|
+
"@ai-sdk/anthropic": "latest",
|
|
123
|
+
"@ai-sdk/openai": "latest",
|
|
124
|
+
zod: "latest"
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
return deps[level];
|
|
128
|
+
}
|
|
129
|
+
function getDevDependencies(options) {
|
|
130
|
+
const devDeps = {
|
|
131
|
+
typescript: "latest",
|
|
132
|
+
"@types/node": "latest",
|
|
133
|
+
};
|
|
134
|
+
if (options.dependencyLevel === "full" || options.dependencyLevel === "task-o-matic") {
|
|
135
|
+
devDeps.mocha = "latest";
|
|
136
|
+
devDeps.tsx = "latest";
|
|
137
|
+
devDeps["@types/mocha"] = "latest";
|
|
138
|
+
}
|
|
139
|
+
return devDeps;
|
|
140
|
+
}
|
|
141
|
+
function getScripts(options) {
|
|
142
|
+
const scripts = {
|
|
143
|
+
build: "rm -rf dist && tsc",
|
|
144
|
+
"build:watch": "tsc --watch",
|
|
145
|
+
dev: "tsx src/cli/bin.ts",
|
|
146
|
+
start: "node dist/cli/bin.js",
|
|
147
|
+
"check-types": "tsc --noEmit"
|
|
148
|
+
};
|
|
149
|
+
if (options.dependencyLevel === "full" || options.dependencyLevel === "task-o-matic") {
|
|
150
|
+
scripts.test = "mocha -r tsx/cjs src/test/**/*.test.ts";
|
|
151
|
+
}
|
|
152
|
+
return scripts;
|
|
153
|
+
}
|
|
154
|
+
function generateBinTemplate(projectName) {
|
|
155
|
+
return `#!/usr/bin/env node
|
|
156
|
+
import { runCLI } from "../index.js";
|
|
157
|
+
|
|
158
|
+
runCLI().catch((error) => {
|
|
159
|
+
console.error(error);
|
|
160
|
+
process.exit(1);
|
|
161
|
+
});
|
|
162
|
+
`;
|
|
163
|
+
}
|
|
164
|
+
function generateIndexTemplate(projectName) {
|
|
165
|
+
return `import { Command } from "commander";
|
|
166
|
+
import chalk from "chalk";
|
|
167
|
+
import { exampleCommand } from "./commands/example.js";
|
|
168
|
+
|
|
169
|
+
const program = new Command();
|
|
170
|
+
|
|
171
|
+
program
|
|
172
|
+
.name("${projectName}")
|
|
173
|
+
.description("CLI application generated by task-o-matic")
|
|
174
|
+
.version("0.1.0");
|
|
175
|
+
|
|
176
|
+
program.addCommand(exampleCommand);
|
|
177
|
+
|
|
178
|
+
program.action(() => {
|
|
179
|
+
console.log(chalk.blue("Welcome to ${projectName}!"));
|
|
180
|
+
console.log(chalk.gray("Run with --help to see available commands"));
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
export const runCLI = async () => {
|
|
184
|
+
await program.parseAsync(process.argv);
|
|
185
|
+
};
|
|
186
|
+
`;
|
|
187
|
+
}
|
|
188
|
+
function generateCommandsIndexTemplate() {
|
|
189
|
+
return `export * from "./example.js";
|
|
190
|
+
`;
|
|
191
|
+
}
|
|
192
|
+
function generateExampleCommandTemplate() {
|
|
193
|
+
return `import { Command } from "commander";
|
|
194
|
+
import chalk from "chalk";
|
|
195
|
+
|
|
196
|
+
export const exampleCommand = new Command("hello")
|
|
197
|
+
.description("Example command that greets the user")
|
|
198
|
+
.argument("[name]", "Name to greet", "World")
|
|
199
|
+
.action((name: string) => {
|
|
200
|
+
console.log(chalk.green(\`Hello, \${name}!\`));
|
|
201
|
+
});
|
|
202
|
+
`;
|
|
203
|
+
}
|
|
204
|
+
function generateTypesTemplate() {
|
|
205
|
+
return `// Add your custom types here
|
|
206
|
+
|
|
207
|
+
export interface ExampleType {
|
|
208
|
+
name: string;
|
|
209
|
+
value: number;
|
|
210
|
+
}
|
|
211
|
+
`;
|
|
212
|
+
}
|
|
213
|
+
function generateTsConfig(strict) {
|
|
214
|
+
const config = {
|
|
215
|
+
compilerOptions: {
|
|
216
|
+
target: "ES2022",
|
|
217
|
+
module: "ESNext",
|
|
218
|
+
moduleResolution: "bundler",
|
|
219
|
+
strict: strict,
|
|
220
|
+
esModuleInterop: true,
|
|
221
|
+
skipLibCheck: true,
|
|
222
|
+
declaration: true,
|
|
223
|
+
declarationMap: true,
|
|
224
|
+
outDir: "dist",
|
|
225
|
+
rootDir: "src",
|
|
226
|
+
},
|
|
227
|
+
include: ["src/**/*"],
|
|
228
|
+
exclude: ["node_modules", "dist"]
|
|
229
|
+
};
|
|
230
|
+
return JSON.stringify(config, null, 2);
|
|
231
|
+
}
|
|
232
|
+
function generateReadmeTemplate(options) {
|
|
233
|
+
return `# ${options.projectName}
|
|
234
|
+
|
|
235
|
+
CLI application generated by task-o-matic
|
|
236
|
+
|
|
237
|
+
## Installation
|
|
238
|
+
|
|
239
|
+
\`\`\`bash
|
|
240
|
+
${options.packageManager} install
|
|
241
|
+
\`\`\`
|
|
242
|
+
|
|
243
|
+
## Development
|
|
244
|
+
|
|
245
|
+
\`\`\`bash
|
|
246
|
+
# Run in development mode
|
|
247
|
+
${options.packageManager} run dev
|
|
248
|
+
|
|
249
|
+
# Build the project
|
|
250
|
+
${options.packageManager} run build
|
|
251
|
+
|
|
252
|
+
# Run the built CLI
|
|
253
|
+
${options.packageManager} start
|
|
254
|
+
\`\`\`
|
|
255
|
+
|
|
256
|
+
## Usage
|
|
257
|
+
|
|
258
|
+
\`\`\`bash
|
|
259
|
+
${options.projectName} --help
|
|
260
|
+
${options.projectName} hello World
|
|
261
|
+
\`\`\`
|
|
262
|
+
|
|
263
|
+
## Project Structure
|
|
264
|
+
|
|
265
|
+
- \`src/cli/bin.ts\` - CLI entry point
|
|
266
|
+
- \`src/index.ts\` - Main CLI setup with Commander.js
|
|
267
|
+
- \`src/commands/\` - Command implementations
|
|
268
|
+
- \`src/types/\` - TypeScript type definitions
|
|
269
|
+
${options.dependencyLevel !== "minimal" ? "- `src/services/` - Business logic services\n" : ""}${(options.dependencyLevel === "full" || options.dependencyLevel === "task-o-matic") ? "- `src/test/` - Test files\n" : ""}
|
|
270
|
+
## Dependencies
|
|
271
|
+
|
|
272
|
+
This project uses:
|
|
273
|
+
- **Commander.js** - CLI framework
|
|
274
|
+
- **Chalk** - Terminal string styling
|
|
275
|
+
${options.dependencyLevel !== "minimal" ? "- **Inquirer** - Interactive CLI prompts\n- **Dotenv** - Environment variable management\n" : ""}${options.dependencyLevel === "task-o-matic" ? "- **Vercel AI SDK** - AI integration\n- **Zod** - Runtime type validation\n" : ""}
|
|
276
|
+
## Scripts
|
|
277
|
+
|
|
278
|
+
- \`${options.packageManager} run build\` - Build the TypeScript project
|
|
279
|
+
- \`${options.packageManager} run dev\` - Run in development mode with tsx
|
|
280
|
+
- \`${options.packageManager} start\` - Run the built CLI
|
|
281
|
+
- \`${options.packageManager} run check-types\` - Type check without compilation
|
|
282
|
+
${(options.dependencyLevel === "full" || options.dependencyLevel === "task-o-matic") ? `- \`${options.packageManager} test\` - Run tests with Mocha\n` : ""}
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
Generated with [task-o-matic](https://github.com/anthropics/task-o-matic)
|
|
286
|
+
`;
|
|
287
|
+
}
|
|
288
|
+
function generateGitignoreTemplate() {
|
|
289
|
+
return `# Dependencies
|
|
290
|
+
node_modules/
|
|
291
|
+
.pnp
|
|
292
|
+
.pnp.js
|
|
293
|
+
|
|
294
|
+
# Testing
|
|
295
|
+
coverage/
|
|
296
|
+
|
|
297
|
+
# Production
|
|
298
|
+
dist/
|
|
299
|
+
build/
|
|
300
|
+
|
|
301
|
+
# Misc
|
|
302
|
+
.DS_Store
|
|
303
|
+
.env
|
|
304
|
+
.env.local
|
|
305
|
+
.env.development.local
|
|
306
|
+
.env.test.local
|
|
307
|
+
.env.production.local
|
|
308
|
+
|
|
309
|
+
# Logs
|
|
310
|
+
npm-debug.log*
|
|
311
|
+
yarn-debug.log*
|
|
312
|
+
yarn-error.log*
|
|
313
|
+
lerna-debug.log*
|
|
314
|
+
|
|
315
|
+
# IDEs
|
|
316
|
+
.idea/
|
|
317
|
+
.vscode/
|
|
318
|
+
*.swp
|
|
319
|
+
*.swo
|
|
320
|
+
*~
|
|
321
|
+
|
|
322
|
+
# TypeScript
|
|
323
|
+
*.tsbuildinfo
|
|
324
|
+
`;
|
|
325
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/bootstrap/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./cli-bootstrap.js"), exports);
|
|
18
|
+
__exportStar(require("./opentui-bootstrap.js"), exports);
|
|
19
|
+
__exportStar(require("./medusa-bootstrap.js"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface MedusaBootstrapOptions {
|
|
2
|
+
projectName: string;
|
|
3
|
+
projectPath: string;
|
|
4
|
+
packageManager: "npm" | "pnpm" | "bun";
|
|
5
|
+
database?: "postgres" | "sqlite";
|
|
6
|
+
skipDb?: boolean;
|
|
7
|
+
skipInstall?: boolean;
|
|
8
|
+
version?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function bootstrapMedusaProject(options: MedusaBootstrapOptions): Promise<{
|
|
11
|
+
success: boolean;
|
|
12
|
+
message: string;
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=medusa-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"medusa-bootstrap.d.ts","sourceRoot":"","sources":["../../../src/lib/bootstrap/medusa-bootstrap.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACvC,QAAQ,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA2GhD"}
|