dispatch-deploy 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +148 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/check.d.ts +15 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +107 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/delete.d.ts +6 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +107 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/deploy.d.ts +9 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +275 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/login.d.ts +4 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +34 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +2 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +15 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/logs.d.ts +6 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +129 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/poll.d.ts +10 -0
- package/dist/commands/poll.d.ts.map +1 -0
- package/dist/commands/poll.js +72 -0
- package/dist/commands/poll.js.map +1 -0
- package/dist/commands/projects.d.ts +5 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +49 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/register.d.ts +5 -0
- package/dist/commands/register.d.ts.map +1 -0
- package/dist/commands/register.js +46 -0
- package/dist/commands/register.js.map +1 -0
- package/dist/commands/trigger.d.ts +11 -0
- package/dist/commands/trigger.d.ts.map +1 -0
- package/dist/commands/trigger.js +52 -0
- package/dist/commands/trigger.js.map +1 -0
- package/dist/config/runtime.d.ts +18 -0
- package/dist/config/runtime.d.ts.map +1 -0
- package/dist/config/runtime.js +32 -0
- package/dist/config/runtime.js.map +1 -0
- package/dist/services/auth.d.ts +18 -0
- package/dist/services/auth.d.ts.map +1 -0
- package/dist/services/auth.js +122 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/services/builder.d.ts +4 -0
- package/dist/services/builder.d.ts.map +1 -0
- package/dist/services/builder.js +89 -0
- package/dist/services/builder.js.map +1 -0
- package/dist/services/controlPlane.d.ts +16 -0
- package/dist/services/controlPlane.d.ts.map +1 -0
- package/dist/services/controlPlane.js +155 -0
- package/dist/services/controlPlane.js.map +1 -0
- package/dist/services/deployer.d.ts +2 -0
- package/dist/services/deployer.d.ts.map +1 -0
- package/dist/services/deployer.js +49 -0
- package/dist/services/deployer.js.map +1 -0
- package/dist/services/project.d.ts +9 -0
- package/dist/services/project.d.ts.map +1 -0
- package/dist/services/project.js +29 -0
- package/dist/services/project.js.map +1 -0
- package/dist/services/sourceUploader.d.ts +9 -0
- package/dist/services/sourceUploader.d.ts.map +1 -0
- package/dist/services/sourceUploader.js +250 -0
- package/dist/services/sourceUploader.js.map +1 -0
- package/dist/services/uploader.d.ts +2 -0
- package/dist/services/uploader.d.ts.map +1 -0
- package/dist/services/uploader.js +59 -0
- package/dist/services/uploader.js.map +1 -0
- package/dist/types/deployment.d.ts +43 -0
- package/dist/types/deployment.d.ts.map +1 -0
- package/dist/types/deployment.js +6 -0
- package/dist/types/deployment.js.map +1 -0
- package/dist/types.d.ts +53 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/config.d.ts +17 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +85 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/credentials.d.ts +16 -0
- package/dist/utils/credentials.d.ts.map +1 -0
- package/dist/utils/credentials.js +72 -0
- package/dist/utils/credentials.js.map +1 -0
- package/dist/utils/debug.d.ts +7 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +21 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/input.d.ts +3 -0
- package/dist/utils/input.d.ts.map +1 -0
- package/dist/utils/input.js +94 -0
- package/dist/utils/input.js.map +1 -0
- package/dist/utils/loader.d.ts +22 -0
- package/dist/utils/loader.d.ts.map +1 -0
- package/dist/utils/loader.js +139 -0
- package/dist/utils/loader.js.map +1 -0
- package/dist/utils/normalizer.d.ts +10 -0
- package/dist/utils/normalizer.d.ts.map +1 -0
- package/dist/utils/normalizer.js +115 -0
- package/dist/utils/normalizer.js.map +1 -0
- package/dist/utils/safety.d.ts +18 -0
- package/dist/utils/safety.d.ts.map +1 -0
- package/dist/utils/safety.js +140 -0
- package/dist/utils/safety.js.map +1 -0
- package/package.json +70 -0
package/README.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Dispatch CLI
|
|
2
|
+
|
|
3
|
+
The official command-line interface for [Dispatch](https://github.com/dispatch-paas/dispatch). Deploy your OpenAPI-defined APIs to production with built-in safety checks and tier-based access.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
```bash
|
|
7
|
+
npm install -g dispatch-cli
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Quick Start
|
|
11
|
+
|
|
12
|
+
### 1. Get Your Access Code
|
|
13
|
+
Visit [usedp.xyz/dashboard](https://usedp.xyz/dashboard) to:
|
|
14
|
+
- Sign up for a Dispatch account
|
|
15
|
+
- Choose your tier (Free/Pro/Enterprise)
|
|
16
|
+
- Generate your access code
|
|
17
|
+
|
|
18
|
+
### 2. Login
|
|
19
|
+
```bash
|
|
20
|
+
dispatch login
|
|
21
|
+
# Paste your access code when prompted
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 3. Deploy Your API
|
|
25
|
+
```bash
|
|
26
|
+
cd your-api-project
|
|
27
|
+
dispatch deploy
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Commands
|
|
31
|
+
|
|
32
|
+
### `dispatch login`
|
|
33
|
+
Authenticate using your access code from the dashboard.
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
dispatch login
|
|
37
|
+
# Interactive: prompts for access code
|
|
38
|
+
|
|
39
|
+
dispatch login --code YOUR_ACCESS_CODE
|
|
40
|
+
# Non-interactive: provide code directly
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### `dispatch logout`
|
|
44
|
+
Remove local credentials.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
dispatch logout
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### `dispatch check`
|
|
51
|
+
Run safety checks locally without deploying.
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
dispatch check
|
|
55
|
+
dispatch check --project ./my-api
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### `dispatch deploy`
|
|
59
|
+
Deploy your API to production after passing safety checks.
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
dispatch deploy
|
|
63
|
+
dispatch deploy --project ./my-api
|
|
64
|
+
dispatch deploy --dry-run # Safety checks only
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Authentication
|
|
68
|
+
|
|
69
|
+
Dispatch uses **access code authentication**:
|
|
70
|
+
- Access codes are generated from your dashboard
|
|
71
|
+
- Single-use codes for security
|
|
72
|
+
- Tier-based access control
|
|
73
|
+
- No password storage in CLI
|
|
74
|
+
|
|
75
|
+
See [Access Code Authentication](../docs/ACCESS_CODE_AUTH.md) for details.
|
|
76
|
+
|
|
77
|
+
## What this CLI does
|
|
78
|
+
* **Safety Checks**: Validates your OpenAPI spec for security issues
|
|
79
|
+
* **Builds**: Creates deployment artifacts with proper dependencies
|
|
80
|
+
* **Uploads**: Securely uploads artifacts to S3
|
|
81
|
+
* **Deploys**: Triggers deployments via the Control Plane
|
|
82
|
+
* **Monitors**: Provides real-time deployment status
|
|
83
|
+
|
|
84
|
+
## Non-Goals
|
|
85
|
+
* **Cloud Infrastructure**: The CLI does not touch AWS resources directly
|
|
86
|
+
* **Local Emulation**: No local AWS environment emulation
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const commander_1 = require("commander");
|
|
38
|
+
const check_1 = require("./commands/check");
|
|
39
|
+
const deploy_1 = require("./commands/deploy");
|
|
40
|
+
const login_1 = require("./commands/login");
|
|
41
|
+
const logout_1 = require("./commands/logout");
|
|
42
|
+
const projects_1 = require("./commands/projects");
|
|
43
|
+
const poll_1 = require("./commands/poll");
|
|
44
|
+
const debug_1 = require("./utils/debug");
|
|
45
|
+
const program = new commander_1.Command();
|
|
46
|
+
program
|
|
47
|
+
.name('dispatch')
|
|
48
|
+
.description('CLI for Dispatch - Safety-first serverless API PaaS')
|
|
49
|
+
.version('1.0.0')
|
|
50
|
+
.option('--debug', 'Enable debug logging');
|
|
51
|
+
// dispatch check command
|
|
52
|
+
program
|
|
53
|
+
.command('check')
|
|
54
|
+
.description('Run local safety checks on your API')
|
|
55
|
+
.option('-p, --project <path>', 'Project root directory', '.')
|
|
56
|
+
.action(async (options) => {
|
|
57
|
+
if (program.opts().debug)
|
|
58
|
+
(0, debug_1.setDebugEnabled)(true);
|
|
59
|
+
const exitCode = await (0, check_1.runCheck)(options.project);
|
|
60
|
+
process.exit(exitCode);
|
|
61
|
+
});
|
|
62
|
+
// dispatch deploy command
|
|
63
|
+
program
|
|
64
|
+
.command('deploy')
|
|
65
|
+
.description('Deploy your API to production')
|
|
66
|
+
.option('-p, --project <path>', 'Project root directory', '.')
|
|
67
|
+
.option('-s, --source <path>', 'Source directory path (alias for --project)', '.')
|
|
68
|
+
.option('--dry-run', 'Run safety checks only without deploying')
|
|
69
|
+
.option('--arch, --architecture <arch>', 'Target architecture (x86_64 only - arm64 coming soon)')
|
|
70
|
+
.action(async (options) => {
|
|
71
|
+
if (program.opts().debug)
|
|
72
|
+
(0, debug_1.setDebugEnabled)(true);
|
|
73
|
+
const exitCode = await (0, deploy_1.runDeploy)(options);
|
|
74
|
+
process.exit(exitCode);
|
|
75
|
+
});
|
|
76
|
+
// dispatch delete command
|
|
77
|
+
program
|
|
78
|
+
.command('delete')
|
|
79
|
+
.description('Delete a deployment')
|
|
80
|
+
.option('-p, --project <path>', 'Project root directory', '.')
|
|
81
|
+
.action(async (options) => {
|
|
82
|
+
if (program.opts().debug)
|
|
83
|
+
(0, debug_1.setDebugEnabled)(true);
|
|
84
|
+
const { runDelete } = await Promise.resolve().then(() => __importStar(require('./commands/delete')));
|
|
85
|
+
const exitCode = await runDelete(options);
|
|
86
|
+
process.exit(exitCode);
|
|
87
|
+
});
|
|
88
|
+
// dispatch logs command
|
|
89
|
+
program
|
|
90
|
+
.command('logs')
|
|
91
|
+
.description('View deployment build logs')
|
|
92
|
+
.option('-p, --project <path>', 'Project root directory', '.')
|
|
93
|
+
.action(async (options) => {
|
|
94
|
+
if (program.opts().debug)
|
|
95
|
+
(0, debug_1.setDebugEnabled)(true);
|
|
96
|
+
const { runLogs } = await Promise.resolve().then(() => __importStar(require('./commands/logs')));
|
|
97
|
+
const exitCode = await runLogs(options);
|
|
98
|
+
process.exit(exitCode);
|
|
99
|
+
});
|
|
100
|
+
// dispatch login command
|
|
101
|
+
program
|
|
102
|
+
.command('login')
|
|
103
|
+
.description('Authenticate with your Dispatch access code')
|
|
104
|
+
.option('-c, --code <code>', 'Access code from dashboard')
|
|
105
|
+
.action(async (options) => {
|
|
106
|
+
if (program.opts().debug)
|
|
107
|
+
(0, debug_1.setDebugEnabled)(true);
|
|
108
|
+
await (0, login_1.runLogin)(options);
|
|
109
|
+
});
|
|
110
|
+
// dispatch logout command
|
|
111
|
+
program
|
|
112
|
+
.command('logout')
|
|
113
|
+
.description('Remove local credentials')
|
|
114
|
+
.action(async () => {
|
|
115
|
+
if (program.opts().debug)
|
|
116
|
+
(0, debug_1.setDebugEnabled)(true);
|
|
117
|
+
await (0, logout_1.runLogout)();
|
|
118
|
+
});
|
|
119
|
+
// dispatch projects command
|
|
120
|
+
program
|
|
121
|
+
.command('projects')
|
|
122
|
+
.description('Manage your projects')
|
|
123
|
+
.argument('<action>', 'Action to perform (list)')
|
|
124
|
+
.action(async (action, options) => {
|
|
125
|
+
if (program.opts().debug)
|
|
126
|
+
(0, debug_1.setDebugEnabled)(true);
|
|
127
|
+
const exitCode = await (0, projects_1.runProjects)(action, options);
|
|
128
|
+
process.exit(exitCode);
|
|
129
|
+
});
|
|
130
|
+
// dispatch poll command
|
|
131
|
+
program
|
|
132
|
+
.command('poll')
|
|
133
|
+
.description('Poll deployment status with progressive updates')
|
|
134
|
+
.argument('<deployment-id>', 'Deployment ID to poll')
|
|
135
|
+
.option('-i, --interval <ms>', 'Polling interval in milliseconds', '2000')
|
|
136
|
+
.option('-m, --max-attempts <num>', 'Maximum polling attempts', '120')
|
|
137
|
+
.action(async (deploymentId, options) => {
|
|
138
|
+
if (program.opts().debug)
|
|
139
|
+
(0, debug_1.setDebugEnabled)(true);
|
|
140
|
+
await (0, poll_1.runPoll)(deploymentId, {
|
|
141
|
+
...options,
|
|
142
|
+
interval: parseInt(options.interval),
|
|
143
|
+
maxAttempts: parseInt(options.maxAttempts)
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
// Parse command line arguments
|
|
147
|
+
program.parse();
|
|
148
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dispatch check command - Local safety check for API deployments
|
|
3
|
+
*
|
|
4
|
+
* This command:
|
|
5
|
+
* - Loads the OpenAPI specification
|
|
6
|
+
* - Normalizes operations
|
|
7
|
+
* - Evaluates safety rules
|
|
8
|
+
* - Prints formatted results
|
|
9
|
+
* - Exits with appropriate status code
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Run the safety check command
|
|
13
|
+
*/
|
|
14
|
+
export declare function runCheck(projectRoot?: string): Promise<number>;
|
|
15
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgFH;;GAEG;AACH,wBAAsB,QAAQ,CAAC,WAAW,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BzE"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* dispatch check command - Local safety check for API deployments
|
|
4
|
+
*
|
|
5
|
+
* This command:
|
|
6
|
+
* - Loads the OpenAPI specification
|
|
7
|
+
* - Normalizes operations
|
|
8
|
+
* - Evaluates safety rules
|
|
9
|
+
* - Prints formatted results
|
|
10
|
+
* - Exits with appropriate status code
|
|
11
|
+
*/
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.runCheck = runCheck;
|
|
17
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
18
|
+
const loader_1 = require("../utils/loader");
|
|
19
|
+
const normalizer_1 = require("../utils/normalizer");
|
|
20
|
+
const safety_1 = require("../utils/safety");
|
|
21
|
+
/**
|
|
22
|
+
* Print success output when no blocking issues are found
|
|
23
|
+
*/
|
|
24
|
+
function printSuccess(operations, findings) {
|
|
25
|
+
const summary = (0, safety_1.getFindingSummary)(findings);
|
|
26
|
+
if (summary.warn === 0) {
|
|
27
|
+
console.log(chalk_1.default.green('✔ Safety checks passed\n'));
|
|
28
|
+
// Count protected vs public routes
|
|
29
|
+
const protectedRoutes = operations.filter((op) => op.security.length > 0 && !op.is_public_override).length;
|
|
30
|
+
const publicRoutes = operations.filter((op) => op.security.length === 0 || op.is_public_override).length;
|
|
31
|
+
console.log(`Routes analyzed: ${operations.length}`);
|
|
32
|
+
console.log(`Protected routes: ${protectedRoutes}`);
|
|
33
|
+
console.log(`Public routes: ${publicRoutes}`);
|
|
34
|
+
console.log('\nNo blocking issues detected.');
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
console.log(chalk_1.default.yellow('⚠ Safety checks completed with warnings\n'));
|
|
38
|
+
const warnings = findings.filter((f) => f.severity === 'warn');
|
|
39
|
+
if (warnings.length > 0) {
|
|
40
|
+
console.log('Warnings:');
|
|
41
|
+
for (const warning of warnings) {
|
|
42
|
+
console.log(chalk_1.default.yellow(`• ${warning.method} ${warning.route}`));
|
|
43
|
+
console.log(` ${warning.message}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
console.log('\nDeployment would be allowed.');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Print failure output when blocking issues are found
|
|
51
|
+
*/
|
|
52
|
+
function printFailure(findings) {
|
|
53
|
+
console.log(chalk_1.default.red('❌ Safety checks failed\n'));
|
|
54
|
+
const blockingIssues = findings.filter((f) => f.severity === 'block');
|
|
55
|
+
if (blockingIssues.length > 0) {
|
|
56
|
+
console.log('Blocking issues:');
|
|
57
|
+
for (const issue of blockingIssues) {
|
|
58
|
+
console.log(chalk_1.default.red(`• ${issue.method} ${issue.route}`));
|
|
59
|
+
console.log(` ${issue.message}`);
|
|
60
|
+
}
|
|
61
|
+
console.log('\nFix:');
|
|
62
|
+
console.log('- Declare authentication in OpenAPI');
|
|
63
|
+
console.log('- OR explicitly mark the route as public with a reason (x-public + x-reason)');
|
|
64
|
+
}
|
|
65
|
+
console.log('\nDeployment would be blocked.');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Print error message
|
|
69
|
+
*/
|
|
70
|
+
function printError(message) {
|
|
71
|
+
console.log(chalk_1.default.red('❌ Error\n'));
|
|
72
|
+
console.log(message);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Run the safety check command
|
|
76
|
+
*/
|
|
77
|
+
async function runCheck(projectRoot = '.') {
|
|
78
|
+
try {
|
|
79
|
+
// Step 1: Load OpenAPI specification
|
|
80
|
+
const spec = (0, loader_1.loadOpenAPISpec)(projectRoot);
|
|
81
|
+
// Step 2: Normalize operations
|
|
82
|
+
const operations = (0, normalizer_1.normalizeOpenAPISpec)(spec);
|
|
83
|
+
// Step 3: Evaluate safety rules
|
|
84
|
+
const findings = (0, safety_1.evaluateOperations)(operations);
|
|
85
|
+
// Step 4: Print results
|
|
86
|
+
const safe = (0, safety_1.isDeploymentSafe)(findings);
|
|
87
|
+
if (safe) {
|
|
88
|
+
printSuccess(operations, findings);
|
|
89
|
+
return 0;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
printFailure(findings);
|
|
93
|
+
return 1;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
// Step 5: Handle errors
|
|
98
|
+
if (error instanceof Error) {
|
|
99
|
+
printError(error.message);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
printError('An unexpected error occurred.');
|
|
103
|
+
}
|
|
104
|
+
return 1;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA2GvE"}
|
|
@@ -0,0 +1,107 @@
|
|
|
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.runDelete = runDelete;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
10
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
|
+
const auth_1 = require("../services/auth");
|
|
12
|
+
const project_1 = require("../services/project");
|
|
13
|
+
async function runDelete(options) {
|
|
14
|
+
try {
|
|
15
|
+
console.log('→ Verifying authentication...');
|
|
16
|
+
console.log();
|
|
17
|
+
// Verify authentication
|
|
18
|
+
const userInfo = await (0, auth_1.verifyAuthentication)();
|
|
19
|
+
if (!userInfo) {
|
|
20
|
+
console.error('❌ Not authenticated. Please run "dispatch login" first.');
|
|
21
|
+
return 1;
|
|
22
|
+
}
|
|
23
|
+
console.log(`✓ Authenticated as ${userInfo.user.email}`);
|
|
24
|
+
console.log(` Tier: ${userInfo.user.tier}`);
|
|
25
|
+
console.log();
|
|
26
|
+
// Try to load project configuration (optional for delete)
|
|
27
|
+
const projectRoot = path_1.default.resolve(options.project);
|
|
28
|
+
const configPath = path_1.default.join(projectRoot, 'dispatch.yaml');
|
|
29
|
+
let config = null;
|
|
30
|
+
if (fs_1.default.existsSync(configPath)) {
|
|
31
|
+
try {
|
|
32
|
+
const configContent = fs_1.default.readFileSync(configPath, 'utf8');
|
|
33
|
+
config = js_yaml_1.default.load(configContent);
|
|
34
|
+
console.log('→ Current directory project detected');
|
|
35
|
+
console.log(`Current project: ${config.projectName}`);
|
|
36
|
+
console.log();
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.log('→ Found dispatch.yaml but could not parse it');
|
|
40
|
+
console.log();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
console.log('→ No dispatch.yaml found in current directory');
|
|
45
|
+
console.log();
|
|
46
|
+
}
|
|
47
|
+
// Get user's projects
|
|
48
|
+
console.log('→ Selecting project to delete...');
|
|
49
|
+
console.log();
|
|
50
|
+
const projects = await (0, project_1.listProjects)();
|
|
51
|
+
if (projects.length === 0) {
|
|
52
|
+
console.error('❌ No projects found. Deploy a project first.');
|
|
53
|
+
return 1;
|
|
54
|
+
}
|
|
55
|
+
// Check if current folder has a project that matches
|
|
56
|
+
const currentProjectName = config?.projectName;
|
|
57
|
+
// Create choices with current project highlighted
|
|
58
|
+
const choices = projects.map(p => {
|
|
59
|
+
const isCurrentProject = currentProjectName && p.name === currentProjectName;
|
|
60
|
+
return {
|
|
61
|
+
name: isCurrentProject ? `${p.name} (current project)` : p.name,
|
|
62
|
+
value: p,
|
|
63
|
+
short: p.name
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
// Always show selection, even if there's only one project
|
|
67
|
+
const { project: selectedProject } = await inquirer_1.default.prompt([
|
|
68
|
+
{
|
|
69
|
+
type: 'list',
|
|
70
|
+
name: 'project',
|
|
71
|
+
message: 'Select a project to delete:',
|
|
72
|
+
choices: choices,
|
|
73
|
+
pageSize: Math.min(10, projects.length)
|
|
74
|
+
}
|
|
75
|
+
]);
|
|
76
|
+
console.log();
|
|
77
|
+
console.log(`Project: ${selectedProject.name}`);
|
|
78
|
+
// Confirm deletion
|
|
79
|
+
const { confirmDelete } = await inquirer_1.default.prompt([
|
|
80
|
+
{
|
|
81
|
+
type: 'confirm',
|
|
82
|
+
name: 'confirmDelete',
|
|
83
|
+
message: `Are you sure you want to delete the project "${selectedProject.name}"? This will remove all deployments and cannot be undone.`,
|
|
84
|
+
default: false
|
|
85
|
+
}
|
|
86
|
+
]);
|
|
87
|
+
if (!confirmDelete) {
|
|
88
|
+
console.log('❌ Deletion cancelled.');
|
|
89
|
+
return 0;
|
|
90
|
+
}
|
|
91
|
+
console.log('→ Deleting project...');
|
|
92
|
+
console.log();
|
|
93
|
+
// Delete the project
|
|
94
|
+
await (0, project_1.deleteProject)(selectedProject.id);
|
|
95
|
+
console.log('✅ Project deleted successfully');
|
|
96
|
+
console.log();
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
console.error('❌ Deletion failed\n');
|
|
101
|
+
console.error('Error details:');
|
|
102
|
+
console.error(error.message);
|
|
103
|
+
console.error();
|
|
104
|
+
return 1;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAkBA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA+CD,wBAAsB,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiP5E"}
|