zerostart-cli 0.0.14 → 0.0.16

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/out/cli.js CHANGED
@@ -83,7 +83,148 @@ function showGitHubTokenHelp() {
83
83
  program
84
84
  .name('zerostart')
85
85
  .description('Create and deploy a complete project with one command')
86
- .version('0.0.6')
86
+ .version('0.0.16');
87
+ program
88
+ .command('deploy-vercel')
89
+ .description('Deploy the current project to Vercel')
90
+ .action(async () => {
91
+ showBanner();
92
+ const vercelManager = new VercelManager_1.VercelManager();
93
+ const cwd = process.cwd();
94
+ // 1. Check Install
95
+ let vercelInstalled = await vercelManager.checkVercelInstalled();
96
+ if (!vercelInstalled) {
97
+ const { installVercel } = await inquirer_1.default.prompt([{
98
+ type: 'confirm',
99
+ name: 'installVercel',
100
+ message: 'Vercel CLI not found. Install it globally?',
101
+ default: true
102
+ }]);
103
+ if (installVercel) {
104
+ const iSpinner = (0, ora_1.default)('Installing Vercel CLI...').start();
105
+ if (await vercelManager.installGlobal()) {
106
+ iSpinner.succeed(chalk_1.default.green('Vercel CLI installed!'));
107
+ vercelInstalled = true;
108
+ }
109
+ else {
110
+ iSpinner.fail(chalk_1.default.red('Failed to install Vercel CLI.'));
111
+ return;
112
+ }
113
+ }
114
+ else {
115
+ return;
116
+ }
117
+ }
118
+ // 2. Auth & Deploy
119
+ if (vercelInstalled) {
120
+ const vSpinner = (0, ora_1.default)('Checking Vercel authentication...').start();
121
+ const loggedIn = await vercelManager.checkAuth();
122
+ if (!loggedIn) {
123
+ vSpinner.stop();
124
+ console.log(chalk_1.default.yellow('\n Authentication required.'));
125
+ const { doLogin } = await inquirer_1.default.prompt([{
126
+ type: 'confirm',
127
+ name: 'doLogin',
128
+ message: 'Log in to Vercel now?',
129
+ default: true
130
+ }]);
131
+ if (doLogin) {
132
+ const loginSuccess = await vercelManager.login();
133
+ if (!loginSuccess) {
134
+ console.log(chalk_1.default.red('\n Login failed.'));
135
+ return;
136
+ }
137
+ }
138
+ else {
139
+ return;
140
+ }
141
+ }
142
+ else {
143
+ vSpinner.succeed(chalk_1.default.green('Authenticated'));
144
+ }
145
+ const dSpinner = (0, ora_1.default)('Deploying to Vercel...').start();
146
+ const url = await vercelManager.deploy(cwd);
147
+ if (url) {
148
+ dSpinner.succeed(chalk_1.default.green('Deployed to Vercel!'));
149
+ console.log(chalk_1.default.gray(' URL: ') + chalk_1.default.cyan(url));
150
+ }
151
+ else {
152
+ dSpinner.fail(chalk_1.default.red('Deployment failed'));
153
+ console.log(chalk_1.default.gray(' Try running ') + chalk_1.default.cyan('vercel deploy') + chalk_1.default.gray(' manually.'));
154
+ }
155
+ }
156
+ });
157
+ program
158
+ .command('deploy-netlify')
159
+ .description('Deploy the current project to Netlify')
160
+ .action(async () => {
161
+ showBanner();
162
+ const netlifyManager = new NetlifyManager_1.NetlifyManager();
163
+ const cwd = process.cwd();
164
+ // 1. Check Install
165
+ let netlifyInstalled = await netlifyManager.checkNetlifyInstalled();
166
+ if (!netlifyInstalled) {
167
+ const { installNetlify } = await inquirer_1.default.prompt([{
168
+ type: 'confirm',
169
+ name: 'installNetlify',
170
+ message: 'Netlify CLI not found. Install it globally?',
171
+ default: true
172
+ }]);
173
+ if (installNetlify) {
174
+ const iSpinner = (0, ora_1.default)('Installing Netlify CLI...').start();
175
+ if (await netlifyManager.installGlobal()) {
176
+ iSpinner.succeed(chalk_1.default.green('Netlify CLI installed!'));
177
+ netlifyInstalled = true;
178
+ }
179
+ else {
180
+ iSpinner.fail(chalk_1.default.red('Failed to install Netlify CLI.'));
181
+ return;
182
+ }
183
+ }
184
+ else {
185
+ return;
186
+ }
187
+ }
188
+ // 2. Auth & Deploy
189
+ if (netlifyInstalled) {
190
+ const nSpinner = (0, ora_1.default)('Checking Netlify authentication...').start();
191
+ const loggedIn = await netlifyManager.checkAuth();
192
+ if (!loggedIn) {
193
+ nSpinner.stop();
194
+ console.log(chalk_1.default.yellow('\n Authentication required.'));
195
+ const { doLogin } = await inquirer_1.default.prompt([{
196
+ type: 'confirm',
197
+ name: 'doLogin',
198
+ message: 'Log in to Netlify now?',
199
+ default: true
200
+ }]);
201
+ if (doLogin) {
202
+ const loginSuccess = await netlifyManager.login();
203
+ if (!loginSuccess) {
204
+ console.log(chalk_1.default.red('\n Login failed.'));
205
+ return;
206
+ }
207
+ }
208
+ else {
209
+ return;
210
+ }
211
+ }
212
+ else {
213
+ nSpinner.succeed(chalk_1.default.green('Authenticated'));
214
+ }
215
+ const dSpinner = (0, ora_1.default)('Deploying to Netlify...').start();
216
+ const url = await netlifyManager.deploy(cwd);
217
+ if (url) {
218
+ dSpinner.succeed(chalk_1.default.green('Deployed to Netlify!'));
219
+ console.log(chalk_1.default.gray(' Check output for URL or run ') + chalk_1.default.cyan('netlify open'));
220
+ }
221
+ else {
222
+ dSpinner.fail(chalk_1.default.red('Deployment failed'));
223
+ console.log(chalk_1.default.gray(' Try running ') + chalk_1.default.cyan('netlify login') + chalk_1.default.gray(' and ') + chalk_1.default.cyan('netlify deploy') + chalk_1.default.gray(' manually.'));
224
+ }
225
+ }
226
+ });
227
+ program
87
228
  .argument('[projectName]', 'Name of the project')
88
229
  .action(async (projectName) => {
89
230
  try {
@@ -241,7 +241,6 @@ add_executable(${config.name} main.cpp)`;
241
241
  if (!fs.existsSync(src))
242
242
  fs.mkdirSync(src);
243
243
  fs.writeFileSync(path.join(src, 'App.tsx'), `
244
- import React from 'react';
245
244
 
246
245
  function App() {
247
246
  return (
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "zerostart": "./out/cli.js"
6
6
  },
7
7
  "description": "Create and deploy a complete project with one command.",
8
- "version": "0.0.14",
8
+ "version": "0.0.16",
9
9
  "engines": {
10
10
  "vscode": "^1.85.0"
11
11
  },