novacloud22-cli 1.0.3 → 1.0.5

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.
Files changed (2) hide show
  1. package/index.js +50 -6
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -13,6 +13,7 @@ const open = require('open')
13
13
  const os = require('os')
14
14
 
15
15
  const API_BASE = 'https://backend-vjzu.onrender.com'
16
+ const SITES_API = 'https://novacloud22-sites.onrender.com'
16
17
  const FRONTEND_URL = 'https://novacloud22.web.app'
17
18
  const CONFIG_DIR = path.join(os.homedir(), '.novacloud22')
18
19
  const TOKEN_FILE = path.join(CONFIG_DIR, 'token.json')
@@ -179,11 +180,19 @@ program
179
180
  const spinner = ora('Fetching your sites...').start()
180
181
  let sites = []
181
182
  try {
182
- const res = await axios.get(`${API_BASE}/p/my-sites`, { headers })
183
+ const res = await axios.get(`${SITES_API}/p/my-sites`, { headers })
183
184
  sites = res.data.sites || []
184
185
  spinner.stop()
185
- } catch {
186
+ } catch (e) {
186
187
  spinner.stop()
188
+ if (e.response?.status === 401) {
189
+ console.log(chalk.red('\n ✗ Session expired. Please log in again: novacloud22 login\n'))
190
+ process.exit(1)
191
+ }
192
+ const msg = e.response?.data?.detail || e.message
193
+ console.log(chalk.red(`\n ✗ Failed to fetch sites: ${msg}`))
194
+ console.log(chalk.gray(' Make sure you are connected to the internet.\n'))
195
+ process.exit(1)
187
196
  }
188
197
 
189
198
  if (sites.length === 0) {
@@ -221,6 +230,41 @@ program
221
230
  ])
222
231
 
223
232
  saveProjectConfig(answers)
233
+
234
+ // Auto-fix vite.config.js to use relative paths
235
+ const viteConfigs = ['vite.config.js', 'vite.config.ts']
236
+ let viteFixed = false
237
+ for (const configFile of viteConfigs) {
238
+ if (fs.existsSync(configFile)) {
239
+ const content = fs.readFileSync(configFile, 'utf8')
240
+ if (!content.includes("base:")) {
241
+ // Add base: './' to existing config
242
+ const updated = content.replace(
243
+ /defineConfig\s*\(\s*\{/,
244
+ `defineConfig({\n base: './',`
245
+ )
246
+ if (updated !== content) {
247
+ fs.writeFileSync(configFile, updated)
248
+ console.log(chalk.green(` ✓ Updated ${configFile} with base: './'`))
249
+ viteFixed = true
250
+ }
251
+ } else {
252
+ console.log(chalk.gray(` ✓ ${configFile} already has base config`))
253
+ viteFixed = true
254
+ }
255
+ break
256
+ }
257
+ }
258
+ // No vite config found — create one
259
+ if (!viteFixed && fs.existsSync('package.json')) {
260
+ const pkg = fs.readJsonSync('package.json')
261
+ const hasVite = pkg.devDependencies?.vite || pkg.dependencies?.vite
262
+ if (hasVite) {
263
+ fs.writeFileSync('vite.config.js', `import { defineConfig } from 'vite'\n\nexport default defineConfig({\n base: './',\n})\n`)
264
+ console.log(chalk.green(" \u2713 Created vite.config.js with base: './'"))
265
+ }
266
+ }
267
+
224
268
  console.log(chalk.green(`\n ✓ Created novacloud22.json`))
225
269
  console.log(chalk.gray(` Site: ${FRONTEND_URL}/p/${answers.slug}`))
226
270
  console.log(chalk.gray(` Run: novacloud22 deploy\n`))
@@ -269,7 +313,7 @@ program
269
313
  spinner.text = `Uploading ${relativePath}...`
270
314
  }
271
315
 
272
- const res = await axios.post(`${API_BASE}/p/deploy`, form, {
316
+ const res = await axios.post(`${SITES_API}/p/deploy`, form, {
273
317
  headers: { ...headers, ...form.getHeaders() },
274
318
  maxContentLength: Infinity,
275
319
  maxBodyLength: Infinity,
@@ -301,7 +345,7 @@ program
301
345
  const headers = authHeaders()
302
346
  const spinner = ora('Fetching your sites...').start()
303
347
  try {
304
- const res = await axios.get(`${API_BASE}/p/my-sites`, { headers })
348
+ const res = await axios.get(`${SITES_API}/p/my-sites`, { headers })
305
349
  const sites = res.data.sites || []
306
350
  spinner.stop()
307
351
 
@@ -398,7 +442,7 @@ program
398
442
 
399
443
  const spinner = ora('Fetching status...').start()
400
444
  try {
401
- const res = await axios.get(`${API_BASE}/p/info/${config.slug}`, { headers })
445
+ const res = await axios.get(`${SITES_API}/p/info/${config.slug}`, { headers })
402
446
  spinner.stop()
403
447
  const site = res.data
404
448
  console.log(chalk.bold(` Site: /${site.slug}`))
@@ -440,7 +484,7 @@ program
440
484
 
441
485
  program
442
486
  .name('novacloud22')
443
- .version('1.0.0')
487
+ .version('1.0.5')
444
488
  .description('NovaCloud22 CLI — Deploy static sites')
445
489
 
446
490
  program.parse(process.argv)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "novacloud22-cli",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Deploy static websites to NovaCloud22",
5
5
  "main": "index.js",
6
6
  "bin": {