@launch77/cli 1.4.4 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/cli.js +16 -17
- package/dist/cli.js.map +1 -1
- package/dist/infrastructure/package-resolver.d.ts +12 -2
- package/dist/infrastructure/package-resolver.d.ts.map +1 -1
- package/dist/infrastructure/package-resolver.js +29 -2
- package/dist/infrastructure/package-resolver.js.map +1 -1
- package/dist/infrastructure/package-resolver.test.js +3 -3
- package/dist/infrastructure/package-resolver.test.js.map +1 -1
- package/dist/infrastructure/template.d.ts +0 -1
- package/dist/infrastructure/template.d.ts.map +1 -1
- package/dist/infrastructure/template.js.map +1 -1
- package/dist/modules/app/commands/create-app.d.ts +1 -1
- package/dist/modules/app/commands/create-app.d.ts.map +1 -1
- package/dist/modules/app/commands/create-app.js +9 -14
- package/dist/modules/app/commands/create-app.js.map +1 -1
- package/dist/modules/app/commands/delete-app.d.ts +1 -1
- package/dist/modules/app/commands/delete-app.js +2 -2
- package/dist/modules/app/commands/delete-app.js.map +1 -1
- package/dist/modules/app/index.d.ts +3 -5
- package/dist/modules/app/index.d.ts.map +1 -1
- package/dist/modules/app/index.js +2 -4
- package/dist/modules/app/index.js.map +1 -1
- package/dist/modules/app/lib/app-template-resolver.d.ts.map +1 -1
- package/dist/modules/app/lib/app-template-resolver.js +15 -0
- package/dist/modules/app/lib/app-template-resolver.js.map +1 -1
- package/dist/modules/app/lib/manifest-schema.d.ts +0 -7
- package/dist/modules/app/lib/manifest-schema.d.ts.map +1 -1
- package/dist/modules/app/lib/manifest-schema.js +0 -2
- package/dist/modules/app/lib/manifest-schema.js.map +1 -1
- package/dist/modules/app/services/app-svc.d.ts.map +1 -1
- package/dist/modules/app/services/app-svc.js +36 -6
- package/dist/modules/app/services/app-svc.js.map +1 -1
- package/dist/modules/app/services/manifest-svc.d.ts +2 -2
- package/dist/modules/app/services/manifest-svc.d.ts.map +1 -1
- package/dist/modules/app/services/manifest-svc.js +9 -50
- package/dist/modules/app/services/manifest-svc.js.map +1 -1
- package/dist/modules/app/types/app-types.d.ts +2 -5
- package/dist/modules/app/types/app-types.d.ts.map +1 -1
- package/dist/modules/app/types/app-types.js +1 -4
- package/dist/modules/app/types/app-types.js.map +1 -1
- package/dist/modules/catalog/commands/generate.d.ts +1 -1
- package/dist/modules/catalog/commands/generate.d.ts.map +1 -1
- package/dist/modules/catalog/commands/generate.js +1 -1
- package/dist/modules/catalog/commands/generate.js.map +1 -1
- package/dist/modules/catalog/commands/scan.d.ts +1 -1
- package/dist/modules/catalog/commands/scan.d.ts.map +1 -1
- package/dist/modules/catalog/commands/scan.js +4 -4
- package/dist/modules/catalog/commands/scan.js.map +1 -1
- package/dist/modules/catalog/services/catalog-svc.d.ts +2 -2
- package/dist/modules/catalog/services/catalog-svc.d.ts.map +1 -1
- package/dist/modules/catalog/services/catalog-svc.js +2 -2
- package/dist/modules/catalog/services/catalog-svc.js.map +1 -1
- package/dist/modules/deploy/commands/deploy-init-action.d.ts.map +1 -1
- package/dist/modules/deploy/commands/deploy-init-action.js +21 -20
- package/dist/modules/deploy/commands/deploy-init-action.js.map +1 -1
- package/dist/modules/deploy/commands/deploy-logs-action.d.ts.map +1 -1
- package/dist/modules/deploy/commands/deploy-logs-action.js +16 -13
- package/dist/modules/deploy/commands/deploy-logs-action.js.map +1 -1
- package/dist/modules/deploy/commands/deploy-status-action.d.ts.map +1 -1
- package/dist/modules/deploy/commands/deploy-status-action.js +16 -13
- package/dist/modules/deploy/commands/deploy-status-action.js.map +1 -1
- package/dist/modules/library/commands/delete-library.d.ts +3 -0
- package/dist/modules/library/commands/delete-library.d.ts.map +1 -0
- package/dist/modules/library/commands/delete-library.js +111 -0
- package/dist/modules/library/commands/delete-library.js.map +1 -0
- package/dist/modules/library/errors/library-errors.d.ts +7 -0
- package/dist/modules/library/errors/library-errors.d.ts.map +1 -0
- package/dist/modules/library/errors/library-errors.js +13 -0
- package/dist/modules/library/errors/library-errors.js.map +1 -0
- package/dist/modules/library/index.d.ts +5 -0
- package/dist/modules/library/index.d.ts.map +1 -0
- package/dist/modules/library/index.js +7 -0
- package/dist/modules/library/index.js.map +1 -0
- package/dist/modules/library/services/library-svc.d.ts +9 -0
- package/dist/modules/library/services/library-svc.d.ts.map +1 -0
- package/dist/modules/library/services/library-svc.js +38 -0
- package/dist/modules/library/services/library-svc.js.map +1 -0
- package/dist/modules/library/types/library-types.d.ts +7 -0
- package/dist/modules/library/types/library-types.d.ts.map +1 -0
- package/dist/modules/library/types/library-types.js +2 -0
- package/dist/modules/library/types/library-types.js.map +1 -0
- package/dist/modules/plugin/commands/delete-plugin.d.ts +3 -0
- package/dist/modules/plugin/commands/delete-plugin.d.ts.map +1 -0
- package/dist/modules/plugin/commands/delete-plugin.js +113 -0
- package/dist/modules/plugin/commands/delete-plugin.js.map +1 -0
- package/dist/modules/plugin/errors/plugin-errors.d.ts +12 -0
- package/dist/modules/plugin/errors/plugin-errors.d.ts.map +1 -1
- package/dist/modules/plugin/errors/plugin-errors.js +18 -0
- package/dist/modules/plugin/errors/plugin-errors.js.map +1 -1
- package/dist/modules/plugin/index.d.ts +1 -0
- package/dist/modules/plugin/index.d.ts.map +1 -1
- package/dist/modules/plugin/index.js +1 -0
- package/dist/modules/plugin/index.js.map +1 -1
- package/dist/modules/plugin/lib/plugin-resolver.d.ts.map +1 -1
- package/dist/modules/plugin/lib/plugin-resolver.js +13 -2
- package/dist/modules/plugin/lib/plugin-resolver.js.map +1 -1
- package/dist/modules/plugin/lib/plugin-resolver.test.js +2 -0
- package/dist/modules/plugin/lib/plugin-resolver.test.js.map +1 -1
- package/dist/modules/plugin/services/plugin-svc.d.ts +5 -1
- package/dist/modules/plugin/services/plugin-svc.d.ts.map +1 -1
- package/dist/modules/plugin/services/plugin-svc.js +44 -3
- package/dist/modules/plugin/services/plugin-svc.js.map +1 -1
- package/dist/modules/plugin/services/plugin-svc.test.js +12 -6
- package/dist/modules/plugin/services/plugin-svc.test.js.map +1 -1
- package/dist/modules/plugin/types/plugin-types.d.ts +6 -0
- package/dist/modules/plugin/types/plugin-types.d.ts.map +1 -1
- package/dist/templates/plugin/package.json.hbs +1 -1
- package/dist/templates/plugin/plugin.json.hbs +1 -3
- package/dist/utils/validation.d.ts +3 -7
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +7 -31
- package/dist/utils/validation.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +16 -17
- package/src/infrastructure/package-resolver.test.ts +3 -3
- package/src/infrastructure/package-resolver.ts +31 -2
- package/src/infrastructure/template.ts +0 -1
- package/src/modules/app/commands/create-app.ts +9 -17
- package/src/modules/app/commands/delete-app.ts +2 -2
- package/src/modules/app/index.ts +3 -5
- package/src/modules/app/lib/app-template-resolver.ts +16 -0
- package/src/modules/app/lib/manifest-schema.ts +0 -5
- package/src/modules/app/services/app-svc.ts +46 -7
- package/src/modules/app/services/manifest-svc.ts +8 -57
- package/src/modules/app/types/app-types.ts +2 -9
- package/src/modules/catalog/commands/generate.ts +1 -1
- package/src/modules/catalog/commands/scan.ts +4 -4
- package/src/modules/catalog/services/catalog-svc.ts +4 -4
- package/src/modules/deploy/commands/deploy-init-action.ts +23 -20
- package/src/modules/deploy/commands/deploy-logs-action.ts +19 -13
- package/src/modules/deploy/commands/deploy-status-action.ts +19 -13
- package/src/modules/library/commands/delete-library.ts +126 -0
- package/src/modules/library/errors/library-errors.ts +13 -0
- package/src/modules/library/index.ts +11 -0
- package/src/modules/library/services/library-svc.ts +50 -0
- package/src/modules/library/types/library-types.ts +7 -0
- package/src/modules/plugin/commands/delete-plugin.ts +128 -0
- package/src/modules/plugin/errors/plugin-errors.ts +20 -0
- package/src/modules/plugin/index.ts +1 -0
- package/src/modules/plugin/lib/plugin-resolver.test.ts +2 -0
- package/src/modules/plugin/lib/plugin-resolver.ts +13 -2
- package/src/modules/plugin/services/plugin-svc.test.ts +12 -6
- package/src/modules/plugin/services/plugin-svc.ts +55 -5
- package/src/modules/plugin/types/plugin-types.ts +8 -0
- package/src/utils/validation.ts +10 -38
- package/templates/plugin/package.json.hbs +1 -1
- package/templates/plugin/plugin.json.hbs +1 -3
- package/dist/modules/app/commands/generate-manifest.d.ts +0 -3
- package/dist/modules/app/commands/generate-manifest.d.ts.map +0 -1
- package/dist/modules/app/commands/generate-manifest.js +0 -62
- package/dist/modules/app/commands/generate-manifest.js.map +0 -1
- package/dist/modules/app/commands/validate-manifest.d.ts +0 -3
- package/dist/modules/app/commands/validate-manifest.d.ts.map +0 -1
- package/dist/modules/app/commands/validate-manifest.js +0 -68
- package/dist/modules/app/commands/validate-manifest.js.map +0 -1
- package/dist/modules/startup/commands/create-startup.d.ts +0 -3
- package/dist/modules/startup/commands/create-startup.d.ts.map +0 -1
- package/dist/modules/startup/commands/create-startup.js +0 -43
- package/dist/modules/startup/commands/create-startup.js.map +0 -1
- package/dist/modules/startup/errors/startup-errors.d.ts +0 -13
- package/dist/modules/startup/errors/startup-errors.d.ts.map +0 -1
- package/dist/modules/startup/errors/startup-errors.js +0 -25
- package/dist/modules/startup/errors/startup-errors.js.map +0 -1
- package/dist/modules/startup/index.d.ts +0 -5
- package/dist/modules/startup/index.d.ts.map +0 -1
- package/dist/modules/startup/index.js +0 -7
- package/dist/modules/startup/index.js.map +0 -1
- package/dist/modules/startup/services/startup-service.d.ts +0 -7
- package/dist/modules/startup/services/startup-service.d.ts.map +0 -1
- package/dist/modules/startup/services/startup-service.js +0 -43
- package/dist/modules/startup/services/startup-service.js.map +0 -1
- package/dist/modules/startup/types/startup-types.d.ts +0 -8
- package/dist/modules/startup/types/startup-types.d.ts.map +0 -1
- package/dist/modules/startup/types/startup-types.js +0 -2
- package/dist/modules/startup/types/startup-types.js.map +0 -1
- package/dist/modules/startup/utils/startup-validators.d.ts +0 -8
- package/dist/modules/startup/utils/startup-validators.d.ts.map +0 -1
- package/dist/modules/startup/utils/startup-validators.js +0 -17
- package/dist/modules/startup/utils/startup-validators.js.map +0 -1
- package/dist/templates/startup/apps/.gitkeep +0 -8
- package/dist/utils/monorepo.d.ts +0 -19
- package/dist/utils/monorepo.d.ts.map +0 -1
- package/dist/utils/monorepo.js +0 -100
- package/dist/utils/monorepo.js.map +0 -1
- package/src/modules/app/commands/generate-manifest.ts +0 -75
- package/src/modules/app/commands/validate-manifest.ts +0 -78
- package/src/modules/startup/commands/create-startup.ts +0 -53
- package/src/modules/startup/errors/startup-errors.ts +0 -23
- package/src/modules/startup/index.ts +0 -11
- package/src/modules/startup/services/startup-service.ts +0 -57
- package/src/modules/startup/types/startup-types.ts +0 -8
- package/src/modules/startup/utils/startup-validators.ts +0 -19
- package/src/utils/monorepo.ts +0 -137
- package/templates/startup/apps/.gitkeep +0 -8
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
* deploy:logs action - View deployment runtime logs
|
|
3
3
|
*/
|
|
4
4
|
/* eslint-disable no-console */
|
|
5
|
+
import * as path from 'path';
|
|
5
6
|
import chalk from 'chalk';
|
|
6
|
-
import {
|
|
7
|
+
import { detectLaunch77Context } from '@launch77/plugin-runtime';
|
|
8
|
+
import fs from 'fs-extra';
|
|
7
9
|
import { DeployService } from '../services/deploy-svc.js';
|
|
8
10
|
import { getVercelInstallInstructions, isVercelCliInstalled, runVercelCommand } from '../utils/vercel-extended.js';
|
|
9
11
|
/**
|
|
@@ -11,23 +13,24 @@ import { getVercelInstallInstructions, isVercelCliInstalled, runVercelCommand }
|
|
|
11
13
|
*/
|
|
12
14
|
export async function deployLogs(options) {
|
|
13
15
|
const deployService = new DeployService();
|
|
14
|
-
// Detect
|
|
15
|
-
const context = await
|
|
16
|
-
if (context.
|
|
17
|
-
throw new Error('Must be run from within an app directory (e.g.,
|
|
16
|
+
// Detect Launch77 context
|
|
17
|
+
const context = await detectLaunch77Context(process.cwd());
|
|
18
|
+
if (context.locationType !== 'workspace-app') {
|
|
19
|
+
throw new Error('Must be run from within an app directory (e.g., apps/myapp)');
|
|
18
20
|
}
|
|
19
21
|
const appPath = process.cwd();
|
|
20
22
|
console.log(chalk.blue(`\n📜 Deployment Logs\n`));
|
|
21
23
|
// Load manifest
|
|
22
24
|
const manifest = await deployService.loadManifest();
|
|
23
|
-
// Check
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
console.log(chalk.
|
|
25
|
+
// Check template type from app's package.json
|
|
26
|
+
const appPackageJsonPath = path.join(appPath, 'package.json');
|
|
27
|
+
const appPackageJson = await fs.readJson(appPackageJsonPath);
|
|
28
|
+
const templatePackage = appPackageJson.launch77?.template?.package;
|
|
29
|
+
// Only allow webapp apps to deploy to Vercel
|
|
30
|
+
const isWebapp = templatePackage === 'webapp' || templatePackage === '@launch77-shared/app-template-webapp';
|
|
31
|
+
if (!isWebapp) {
|
|
32
|
+
console.log(chalk.yellow('⚠️ Vercel deployment only supports webapp apps'));
|
|
33
|
+
console.log(chalk.gray('Other app types coming soon'));
|
|
31
34
|
console.log();
|
|
32
35
|
return;
|
|
33
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-logs-action.js","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/deploy-logs-action.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+BAA+B;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"deploy-logs-action.js","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/deploy-logs-action.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+BAA+B;AAC/B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAOlH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;IAEzC,0BAA0B;IAC1B,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAE1D,IAAI,OAAO,CAAC,YAAY,KAAK,eAAe,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAChF,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAE7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAEjD,gBAAgB;IAChB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAA;IAEnD,8CAA8C;IAC9C,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;IAC7D,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IAC5D,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAA;IAElE,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,eAAe,KAAK,QAAQ,IAAI,eAAe,KAAK,sCAAsC,CAAA;IAE3G,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAA;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAA;QACtD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAM;IACR,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC,CAAC,MAAM,oBAAoB,EAAE,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAA;QACzD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,4BAA4B,EAAE,EAAE,CAAC,CAAC,CAAA;QAC9D,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAA;QAC/D,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAA;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAA;QAClD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAM;IACR,CAAC;IAED,oCAAoC;IACpC,IAAI,YAAY,GAAG,OAAO,CAAC,UAAU,CAAA;IAErC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAA;QAExD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YAE5E,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;YAE3E,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBAC9D,IAAI,QAAQ,EAAE,CAAC;oBACb,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;oBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC,CAAA;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAA;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAA;QACxE,OAAM;IACR,CAAC;IAED,4BAA4B;IAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAEnC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAA;IAC1E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAErC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,EAAE,CAAA;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAA;YACzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;YACzG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oEAAoE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAA;QACjI,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,QAAQ,GAAG,KAA4B,CAAA;QAC7C,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACnF,OAAO,CAAC,GAAG,EAAE,CAAA;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAA;YAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAA;YACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAA;YAChF,OAAO,CAAC,GAAG,EAAE,CAAA;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAA;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-status-action.d.ts","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/deploy-status-action.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"deploy-status-action.d.ts","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/deploy-status-action.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH;;GAEG;AACH,wBAAsB,YAAY,kBAkKjC"}
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
* deploy:status action - Show deployment status for an app
|
|
3
3
|
*/
|
|
4
4
|
/* eslint-disable no-console */
|
|
5
|
+
import * as path from 'path';
|
|
5
6
|
import chalk from 'chalk';
|
|
7
|
+
import { detectLaunch77Context } from '@launch77/plugin-runtime';
|
|
8
|
+
import fs from 'fs-extra';
|
|
6
9
|
import ora from 'ora';
|
|
7
|
-
import { detectMonorepoContext } from '../../../utils/monorepo.js';
|
|
8
10
|
import { DeployService } from '../services/deploy-svc.js';
|
|
9
11
|
import { getVercelInstallInstructions, isVercelCliInstalled, runVercelCommand, verifyVercelProjectExists } from '../utils/vercel-extended.js';
|
|
10
12
|
/**
|
|
@@ -12,23 +14,24 @@ import { getVercelInstallInstructions, isVercelCliInstalled, runVercelCommand, v
|
|
|
12
14
|
*/
|
|
13
15
|
export async function deployStatus() {
|
|
14
16
|
const deployService = new DeployService();
|
|
15
|
-
// Detect
|
|
16
|
-
const context = await
|
|
17
|
-
if (context.
|
|
18
|
-
throw new Error('Must be run from within an app directory (e.g.,
|
|
17
|
+
// Detect Launch77 context
|
|
18
|
+
const context = await detectLaunch77Context(process.cwd());
|
|
19
|
+
if (context.locationType !== 'workspace-app') {
|
|
20
|
+
throw new Error('Must be run from within an app directory (e.g., apps/myapp)');
|
|
19
21
|
}
|
|
20
22
|
const appPath = process.cwd();
|
|
21
23
|
console.log(chalk.blue(`\n📊 Deployment Status\n`));
|
|
22
24
|
// Load manifest
|
|
23
25
|
const manifest = await deployService.loadManifest();
|
|
24
|
-
// Check
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
console.log(chalk.
|
|
26
|
+
// Check template type from app's package.json
|
|
27
|
+
const appPackageJsonPath = path.join(appPath, 'package.json');
|
|
28
|
+
const appPackageJson = await fs.readJson(appPackageJsonPath);
|
|
29
|
+
const templatePackage = appPackageJson.launch77?.template?.package;
|
|
30
|
+
// Only allow webapp apps to deploy to Vercel
|
|
31
|
+
const isWebapp = templatePackage === 'webapp' || templatePackage === '@launch77-shared/app-template-webapp';
|
|
32
|
+
if (!isWebapp) {
|
|
33
|
+
console.log(chalk.yellow('⚠️ Vercel deployment only supports webapp apps'));
|
|
34
|
+
console.log(chalk.gray('Other app types coming soon'));
|
|
32
35
|
console.log();
|
|
33
36
|
return;
|
|
34
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-status-action.js","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/deploy-status-action.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+BAA+B;AAC/B,OAAO,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"deploy-status-action.js","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/deploy-status-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-library.d.ts","sourceRoot":"","sources":["../../../../src/modules/library/commands/delete-library.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,wBAAgB,oBAAoB,IAAI,OAAO,CAkH9C"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import inquirer from 'inquirer';
|
|
6
|
+
import ora from 'ora';
|
|
7
|
+
import { detectLaunch77Context } from '@launch77/plugin-runtime';
|
|
8
|
+
import { LibraryService } from '../services/library-svc.js';
|
|
9
|
+
export function libraryDeleteCommand() {
|
|
10
|
+
const command = new Command('library:delete')
|
|
11
|
+
.argument('<library-name>', 'Name of the library to delete')
|
|
12
|
+
.description('Delete a library from the workspace (requires confirmation)')
|
|
13
|
+
.action(async (libraryName) => {
|
|
14
|
+
try {
|
|
15
|
+
console.log(chalk.yellow(`\n⚠️ WARNING: You are about to delete the library '${libraryName}'\n`));
|
|
16
|
+
// Detect context
|
|
17
|
+
const context = await detectLaunch77Context(process.cwd());
|
|
18
|
+
// Create library service
|
|
19
|
+
const libraryService = new LibraryService();
|
|
20
|
+
// Get library path for display (before deletion)
|
|
21
|
+
const libraryPath = path.join(context.workspaceRoot, 'libraries', libraryName);
|
|
22
|
+
// Display what will be deleted
|
|
23
|
+
console.log(chalk.red('Library location:'), libraryPath);
|
|
24
|
+
console.log(chalk.red('\nThis will permanently delete:'));
|
|
25
|
+
console.log(chalk.gray(' • All source code and configuration files'));
|
|
26
|
+
console.log(chalk.gray(' • All node_modules (will be cleaned from monorepo)'));
|
|
27
|
+
console.log(chalk.gray(' • All build artifacts'));
|
|
28
|
+
console.log(chalk.yellow('\n⚠️ Important notes:'));
|
|
29
|
+
console.log(chalk.gray(' • Check if other packages depend on this library'));
|
|
30
|
+
console.log(chalk.gray(' • If published to npm, you may want to deprecate/unpublish it manually'));
|
|
31
|
+
console.log(chalk.gray(' • Update import statements in dependent packages manually'));
|
|
32
|
+
console.log(chalk.red('\n⚠️ THIS ACTION CANNOT BE UNDONE!\n'));
|
|
33
|
+
// First confirmation: Type library name
|
|
34
|
+
const { confirmName } = await inquirer.prompt([
|
|
35
|
+
{
|
|
36
|
+
type: 'input',
|
|
37
|
+
name: 'confirmName',
|
|
38
|
+
message: `Type the library name to confirm:`,
|
|
39
|
+
validate: (input) => {
|
|
40
|
+
if (input === libraryName) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return `Please type '${libraryName}' exactly to confirm`;
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
]);
|
|
47
|
+
if (confirmName !== libraryName) {
|
|
48
|
+
console.log(chalk.gray('\n✖ Deletion cancelled\n'));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// Second confirmation: Type DELETE
|
|
52
|
+
const { confirmDelete } = await inquirer.prompt([
|
|
53
|
+
{
|
|
54
|
+
type: 'input',
|
|
55
|
+
name: 'confirmDelete',
|
|
56
|
+
message: 'Type DELETE (all caps) to confirm permanent deletion:',
|
|
57
|
+
validate: (input) => {
|
|
58
|
+
if (input === 'DELETE') {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
return 'Please type DELETE (all caps) to confirm';
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
]);
|
|
65
|
+
if (confirmDelete !== 'DELETE') {
|
|
66
|
+
console.log(chalk.gray('\n✖ Deletion cancelled\n'));
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// Delete the library
|
|
70
|
+
const deleteSpinner = ora('Deleting library directory...').start();
|
|
71
|
+
try {
|
|
72
|
+
await libraryService.deleteLibrary({ libraryName }, context);
|
|
73
|
+
deleteSpinner.succeed('Library directory deleted');
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
deleteSpinner.fail('Failed to delete library directory');
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
// Update dependencies
|
|
80
|
+
const installSpinner = ora('Updating workspace dependencies...').start();
|
|
81
|
+
try {
|
|
82
|
+
// This is already done by library service, just show spinner for consistency
|
|
83
|
+
installSpinner.succeed('Dependencies updated (package-lock.json cleaned)');
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
installSpinner.fail('Failed to update dependencies');
|
|
87
|
+
console.log(chalk.yellow('\n⚠️ You may need to run "npm install" manually at the workspace root\n'));
|
|
88
|
+
}
|
|
89
|
+
// Success message
|
|
90
|
+
console.log(chalk.green(`\n✅ Library '${libraryName}' has been deleted\n`));
|
|
91
|
+
// Reminder about cleanup
|
|
92
|
+
console.log(chalk.yellow('📝 Remember to:'));
|
|
93
|
+
console.log(chalk.gray(' • Check and update dependent packages (remove from dependencies)'));
|
|
94
|
+
console.log(chalk.gray(' • Update import statements in code that used this library'));
|
|
95
|
+
console.log(chalk.gray(' • Consider deprecating/unpublishing from npm if published'));
|
|
96
|
+
console.log();
|
|
97
|
+
// Reminder about Git
|
|
98
|
+
console.log(chalk.yellow('📝 Remember to commit the deletion:'));
|
|
99
|
+
console.log(chalk.gray(' git add -A'));
|
|
100
|
+
console.log(chalk.gray(` git commit -m "Remove ${libraryName} library"`));
|
|
101
|
+
console.log();
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
105
|
+
console.error(chalk.red('Error:'), message);
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return command;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=delete-library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-library.js","sourceRoot":"","sources":["../../../../src/modules/library/commands/delete-library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-errors.d.ts","sourceRoot":"","sources":["../../../../src/modules/library/errors/library-errors.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAItD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class LibraryNotFoundError extends Error {
|
|
2
|
+
constructor(libraryName, expectedPath) {
|
|
3
|
+
super(`Library '${libraryName}' does not exist.\n\n` + `Expected location: ${expectedPath}\n\n` + `Available libraries:\n` + ` cd libraries/\n` + ` ls`);
|
|
4
|
+
this.name = 'LibraryNotFoundError';
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class InvalidLibraryNameError extends Error {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'InvalidLibraryNameError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=library-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-errors.js","sourceRoot":"","sources":["../../../../src/modules/library/errors/library-errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,WAAmB,EAAE,YAAoB;QACnD,KAAK,CAAC,YAAY,WAAW,uBAAuB,GAAG,sBAAsB,YAAY,MAAM,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,MAAM,CAAC,CAAA;QAC1J,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;IACvC,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { LibraryService } from './services/library-svc.js';
|
|
2
|
+
export type { DeleteLibraryRequest, DeleteLibraryResult } from './types/library-types.js';
|
|
3
|
+
export { LibraryNotFoundError, InvalidLibraryNameError } from './errors/library-errors.js';
|
|
4
|
+
export { libraryDeleteCommand } from './commands/delete-library.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/library/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG1D,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAGzF,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAG1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Services
|
|
2
|
+
export { LibraryService } from './services/library-svc.js';
|
|
3
|
+
// Errors
|
|
4
|
+
export { LibraryNotFoundError, InvalidLibraryNameError } from './errors/library-errors.js';
|
|
5
|
+
// Commands
|
|
6
|
+
export { libraryDeleteCommand } from './commands/delete-library.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/library/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAK1D,SAAS;AACT,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE1F,WAAW;AACX,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DeleteLibraryRequest, DeleteLibraryResult } from '../types/library-types.js';
|
|
2
|
+
import type { Launch77Context } from '@launch77/plugin-runtime';
|
|
3
|
+
export declare class LibraryService {
|
|
4
|
+
/**
|
|
5
|
+
* Delete a library from the workspace
|
|
6
|
+
*/
|
|
7
|
+
deleteLibrary(request: DeleteLibraryRequest, context: Launch77Context): Promise<DeleteLibraryResult>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=library-svc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-svc.d.ts","sourceRoot":"","sources":["../../../../src/modules/library/services/library-svc.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,qBAAa,cAAc;IACzB;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAiC3G"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import * as npm from '../../../infrastructure/npm.js';
|
|
4
|
+
import { validateWorkspaceContext } from '../../../utils/launch77-validation.js';
|
|
5
|
+
import { validateAppName } from '../../../utils/validation.js';
|
|
6
|
+
import { LibraryNotFoundError, InvalidLibraryNameError } from '../errors/library-errors.js';
|
|
7
|
+
export class LibraryService {
|
|
8
|
+
/**
|
|
9
|
+
* Delete a library from the workspace
|
|
10
|
+
*/
|
|
11
|
+
async deleteLibrary(request, context) {
|
|
12
|
+
const { libraryName } = request;
|
|
13
|
+
// 1. Validate library name (reusing app name validation since format is the same)
|
|
14
|
+
const nameValidation = validateAppName(libraryName);
|
|
15
|
+
if (!nameValidation.valid) {
|
|
16
|
+
throw new InvalidLibraryNameError(nameValidation.errorMessage || 'Invalid library name');
|
|
17
|
+
}
|
|
18
|
+
// 2. Validate workspace context
|
|
19
|
+
const contextValidation = validateWorkspaceContext(context);
|
|
20
|
+
if (!contextValidation.valid) {
|
|
21
|
+
throw new Error(contextValidation.errorMessage || 'Invalid workspace context');
|
|
22
|
+
}
|
|
23
|
+
// 3. Determine library path
|
|
24
|
+
const libraryPath = path.join(context.workspaceRoot, 'libraries', libraryName);
|
|
25
|
+
// 4. Check if library exists
|
|
26
|
+
if (!(await fs.pathExists(libraryPath))) {
|
|
27
|
+
throw new LibraryNotFoundError(libraryName, libraryPath);
|
|
28
|
+
}
|
|
29
|
+
// 5. Delete the library directory
|
|
30
|
+
await fs.remove(libraryPath);
|
|
31
|
+
// 6. Update dependencies
|
|
32
|
+
await npm.install(context.workspaceRoot);
|
|
33
|
+
return {
|
|
34
|
+
libraryName,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=library-svc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-svc.js","sourceRoot":"","sources":["../../../../src/modules/library/services/library-svc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAK3F,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,OAA6B,EAAE,OAAwB;QACzE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAE/B,kFAAkF;QAClF,MAAM,cAAc,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;QACnD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,uBAAuB,CAAC,cAAc,CAAC,YAAY,IAAI,sBAAsB,CAAC,CAAA;QAC1F,CAAC;QAED,gCAAgC;QAChC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;QAC3D,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,YAAY,IAAI,2BAA2B,CAAC,CAAA;QAChF,CAAC;QAED,4BAA4B;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QAE9E,6BAA6B;QAC7B,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,oBAAoB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QAC1D,CAAC;QAED,kCAAkC;QAClC,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAE5B,yBAAyB;QACzB,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAExC,OAAO;YACL,WAAW;SACZ,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-types.d.ts","sourceRoot":"","sources":["../../../../src/modules/library/types/library-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-types.js","sourceRoot":"","sources":["../../../../src/modules/library/types/library-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-plugin.d.ts","sourceRoot":"","sources":["../../../../src/modules/plugin/commands/delete-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,wBAAgB,mBAAmB,IAAI,OAAO,CAoH7C"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import inquirer from 'inquirer';
|
|
6
|
+
import ora from 'ora';
|
|
7
|
+
import { detectLaunch77Context } from '@launch77/plugin-runtime';
|
|
8
|
+
import { PluginService } from '../services/plugin-svc.js';
|
|
9
|
+
export function pluginDeleteCommand() {
|
|
10
|
+
const command = new Command('plugin:delete')
|
|
11
|
+
.argument('<plugin-name>', 'Name of the plugin to delete')
|
|
12
|
+
.description('Delete a plugin from the workspace (requires confirmation)')
|
|
13
|
+
.action(async (pluginName) => {
|
|
14
|
+
try {
|
|
15
|
+
console.log(chalk.yellow(`\n⚠️ WARNING: You are about to delete the plugin '${pluginName}'\n`));
|
|
16
|
+
// Detect context
|
|
17
|
+
const context = await detectLaunch77Context(process.cwd());
|
|
18
|
+
// Create plugin service
|
|
19
|
+
const pluginService = new PluginService();
|
|
20
|
+
// Get plugin path for display (before deletion)
|
|
21
|
+
const pluginPath = path.join(context.workspaceRoot, 'plugins', pluginName);
|
|
22
|
+
// Display what will be deleted
|
|
23
|
+
console.log(chalk.red('Plugin location:'), pluginPath);
|
|
24
|
+
console.log(chalk.red('\nThis will permanently delete:'));
|
|
25
|
+
console.log(chalk.gray(' • All source code and configuration files'));
|
|
26
|
+
console.log(chalk.gray(' • All node_modules (will be cleaned from monorepo)'));
|
|
27
|
+
console.log(chalk.gray(' • All build artifacts'));
|
|
28
|
+
console.log(chalk.gray(' • Plugin templates and generators'));
|
|
29
|
+
console.log(chalk.yellow('\n⚠️ Important notes:'));
|
|
30
|
+
console.log(chalk.gray(' • Check if plugin is installed in other packages'));
|
|
31
|
+
console.log(chalk.gray(' • If published to npm, you may want to deprecate/unpublish it manually'));
|
|
32
|
+
console.log(chalk.gray(' • Remove plugin from launch77.installedPlugins in dependent packages manually'));
|
|
33
|
+
console.log(chalk.red('\n⚠️ THIS ACTION CANNOT BE UNDONE!\n'));
|
|
34
|
+
// First confirmation: Type plugin name
|
|
35
|
+
const { confirmName } = await inquirer.prompt([
|
|
36
|
+
{
|
|
37
|
+
type: 'input',
|
|
38
|
+
name: 'confirmName',
|
|
39
|
+
message: `Type the plugin name to confirm:`,
|
|
40
|
+
validate: (input) => {
|
|
41
|
+
if (input === pluginName) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
return `Please type '${pluginName}' exactly to confirm`;
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
]);
|
|
48
|
+
if (confirmName !== pluginName) {
|
|
49
|
+
console.log(chalk.gray('\n✖ Deletion cancelled\n'));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
// Second confirmation: Type DELETE
|
|
53
|
+
const { confirmDelete } = await inquirer.prompt([
|
|
54
|
+
{
|
|
55
|
+
type: 'input',
|
|
56
|
+
name: 'confirmDelete',
|
|
57
|
+
message: 'Type DELETE (all caps) to confirm permanent deletion:',
|
|
58
|
+
validate: (input) => {
|
|
59
|
+
if (input === 'DELETE') {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
return 'Please type DELETE (all caps) to confirm';
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
]);
|
|
66
|
+
if (confirmDelete !== 'DELETE') {
|
|
67
|
+
console.log(chalk.gray('\n✖ Deletion cancelled\n'));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// Delete the plugin
|
|
71
|
+
const deleteSpinner = ora('Deleting plugin directory...').start();
|
|
72
|
+
try {
|
|
73
|
+
await pluginService.deletePlugin({ pluginName }, context);
|
|
74
|
+
deleteSpinner.succeed('Plugin directory deleted');
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
deleteSpinner.fail('Failed to delete plugin directory');
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
// Update dependencies
|
|
81
|
+
const installSpinner = ora('Updating workspace dependencies...').start();
|
|
82
|
+
try {
|
|
83
|
+
// This is already done by plugin service, just show spinner for consistency
|
|
84
|
+
installSpinner.succeed('Dependencies updated (package-lock.json cleaned)');
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
installSpinner.fail('Failed to update dependencies');
|
|
88
|
+
console.log(chalk.yellow('\n⚠️ You may need to run "npm install" manually at the workspace root\n'));
|
|
89
|
+
}
|
|
90
|
+
// Success message
|
|
91
|
+
console.log(chalk.green(`\n✅ Plugin '${pluginName}' has been deleted\n`));
|
|
92
|
+
// Reminder about cleanup
|
|
93
|
+
console.log(chalk.yellow('📝 Remember to:'));
|
|
94
|
+
console.log(chalk.gray(' • Check packages that had this plugin installed'));
|
|
95
|
+
console.log(chalk.gray(' • Remove plugin from launch77.installedPlugins in package.json files'));
|
|
96
|
+
console.log(chalk.gray(' • Remove any plugin-generated files if needed'));
|
|
97
|
+
console.log(chalk.gray(' • Consider deprecating/unpublishing from npm if published'));
|
|
98
|
+
console.log();
|
|
99
|
+
// Reminder about Git
|
|
100
|
+
console.log(chalk.yellow('📝 Remember to commit the deletion:'));
|
|
101
|
+
console.log(chalk.gray(' git add -A'));
|
|
102
|
+
console.log(chalk.gray(` git commit -m "Remove ${pluginName} plugin"`));
|
|
103
|
+
console.log();
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
107
|
+
console.error(chalk.red('Error:'), message);
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
return command;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=delete-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-plugin.js","sourceRoot":"","sources":["../../../../src/modules/plugin/commands/delete-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,4 +36,16 @@ export declare class NpmInstallationError extends Error {
|
|
|
36
36
|
readonly cause?: Error | undefined;
|
|
37
37
|
constructor(packageName: string, cause?: Error | undefined);
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Error when plugin directory is not found for deletion
|
|
41
|
+
*/
|
|
42
|
+
export declare class PluginDirectoryNotFoundError extends Error {
|
|
43
|
+
constructor(pluginName: string, expectedPath: string);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Error when plugin name validation fails
|
|
47
|
+
*/
|
|
48
|
+
export declare class InvalidPluginNameError extends Error {
|
|
49
|
+
constructor(message: string);
|
|
50
|
+
}
|
|
39
51
|
//# sourceMappingURL=plugin-errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-errors.d.ts","sourceRoot":"","sources":["../../../../src/modules/plugin/errors/plugin-errors.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,UAAU,EAAE,MAAM;CAM/B;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,yBAAyB,CAa5F;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,UAAU,EAAE,MAAM;CAgB/B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAwBvI;AAED,qBAAa,uBAAwB,SAAQ,KAAK;aAG9B,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI/C;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,KAAK,CAAC,EAAE,KAAK;gBAD7B,WAAW,EAAE,MAAM,EACH,KAAK,CAAC,EAAE,KAAK,YAAA;CAYhC"}
|
|
1
|
+
{"version":3,"file":"plugin-errors.d.ts","sourceRoot":"","sources":["../../../../src/modules/plugin/errors/plugin-errors.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,UAAU,EAAE,MAAM;CAM/B;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,yBAAyB,CAa5F;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,UAAU,EAAE,MAAM;CAgB/B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAwBvI;AAED,qBAAa,uBAAwB,SAAQ,KAAK;aAG9B,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI/C;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,KAAK,CAAC,EAAE,KAAK;gBAD7B,WAAW,EAAE,MAAM,EACH,KAAK,CAAC,EAAE,KAAK,YAAA;CAYhC;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAIrD;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -109,4 +109,22 @@ ${cause ? `\nOriginal error: ${cause.message}` : ''}`);
|
|
|
109
109
|
this.name = 'NpmInstallationError';
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Error when plugin directory is not found for deletion
|
|
114
|
+
*/
|
|
115
|
+
export class PluginDirectoryNotFoundError extends Error {
|
|
116
|
+
constructor(pluginName, expectedPath) {
|
|
117
|
+
super(`Plugin '${pluginName}' does not exist.\n\n` + `Expected location: ${expectedPath}\n\n` + `Available plugins:\n` + ` cd plugins/\n` + ` ls`);
|
|
118
|
+
this.name = 'PluginDirectoryNotFoundError';
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Error when plugin name validation fails
|
|
123
|
+
*/
|
|
124
|
+
export class InvalidPluginNameError extends Error {
|
|
125
|
+
constructor(message) {
|
|
126
|
+
super(message);
|
|
127
|
+
this.name = 'InvalidPluginNameError';
|
|
128
|
+
}
|
|
129
|
+
}
|
|
112
130
|
//# sourceMappingURL=plugin-errors.js.map
|