smoonb 0.0.73 → 0.0.75
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/package.json +1 -1
- package/src/commands/backup/index.js +62 -65
- package/src/commands/backup/steps/00-docker-validation.js +6 -4
- package/src/commands/backup/steps/01-database.js +6 -3
- package/src/commands/backup/steps/02-database-separated.js +11 -8
- package/src/commands/backup/steps/03-database-settings.js +6 -3
- package/src/commands/backup/steps/04-auth-settings.js +6 -3
- package/src/commands/backup/steps/05-realtime-settings.js +5 -2
- package/src/commands/backup/steps/06-storage.js +28 -25
- package/src/commands/backup/steps/07-custom-roles.js +6 -3
- package/src/commands/backup/steps/08-edge-functions.js +14 -10
- package/src/commands/backup/steps/09-supabase-temp.js +9 -6
- package/src/commands/backup/steps/10-migrations.js +13 -9
- package/src/commands/restore/steps/00-backup-selection.js +4 -2
- package/src/commands/restore/steps/01-components-selection.js +30 -28
- package/src/commands/restore/steps/03-database.js +19 -16
- package/src/commands/restore/steps/04-edge-functions.js +16 -13
- package/src/commands/restore/steps/05-auth-settings.js +9 -6
- package/src/commands/restore/steps/06-storage.js +47 -40
- package/src/commands/restore/steps/07-database-settings.js +10 -7
- package/src/commands/restore/steps/08-realtime-settings.js +9 -6
- package/src/i18n/locales/en.json +328 -1
- package/src/i18n/locales/pt-BR.json +327 -1
- package/src/interactive/envMapper.js +30 -25
package/src/i18n/locales/en.json
CHANGED
|
@@ -246,6 +246,333 @@
|
|
|
246
246
|
"quickHelp.tokenStep3": "3. Copy the token (format: sbp_...)",
|
|
247
247
|
"quickHelp.tokenStep4": "4. Add to .env.local as SUPABASE_ACCESS_TOKEN",
|
|
248
248
|
"quickHelp.update": "UPDATE TO LATEST VERSION:",
|
|
249
|
-
"quickHelp.updateCommand": "npm install smoonb@latest"
|
|
249
|
+
"quickHelp.updateCommand": "npm install smoonb@latest",
|
|
250
|
+
|
|
251
|
+
"docker.validation.title": "Docker Validation",
|
|
252
|
+
"docker.validation.checking": "Checking Docker dependencies...",
|
|
253
|
+
"docker.validation.detected": "Docker Desktop detected and running",
|
|
254
|
+
"docker.validation.version": "Version: {version}",
|
|
255
|
+
|
|
256
|
+
"env.mapping.title": "Mapping variable: {variable}",
|
|
257
|
+
"env.mapping.selectKey": "Select the corresponding key for: {expected}",
|
|
258
|
+
"env.mapping.addNew": "Add a new key for me",
|
|
259
|
+
"env.mapping.currentValue": "Current value: {value}",
|
|
260
|
+
"env.mapping.isCorrect": "Is this the correct value for the target project?",
|
|
261
|
+
"env.mapping.notFound": "No entry found for variable {variable}.",
|
|
262
|
+
"env.mapping.backupCreated": "Backup of .env.local: {path}",
|
|
263
|
+
"env.mapping.fileNotFound": ".env.local file not found. It will be created during mapping.",
|
|
264
|
+
"env.mapping.updated": ".env.local updated successfully. No keys renamed; values synchronized.",
|
|
265
|
+
|
|
266
|
+
"backup.components.edgeFunctions.title": "Edge Functions:",
|
|
267
|
+
"backup.components.edgeFunctions.description1": "We will delete existing functions in the supabase/functions folder, reset the link",
|
|
268
|
+
"backup.components.edgeFunctions.description2": "between the tool and the project, and download functions from the server again.",
|
|
269
|
+
"backup.components.edgeFunctions.description3": "You will have the option to keep or delete functions in the folder after backup.",
|
|
270
|
+
"backup.components.edgeFunctions.include": "Do you want to include Edge Functions",
|
|
271
|
+
"backup.components.edgeFunctions.cleanup": "Do you want to clean supabase/functions after backup",
|
|
272
|
+
|
|
273
|
+
"backup.components.temp.title": "Supabase .temp:",
|
|
274
|
+
"backup.components.temp.description1": "We will copy existing files (if any) in the supabase/.temp folder.",
|
|
275
|
+
"backup.components.temp.description2": "You will have the option to keep or delete files in this folder after backup.",
|
|
276
|
+
"backup.components.temp.include": "Do you want to include Supabase .temp",
|
|
277
|
+
"backup.components.temp.cleanup": "Do you want to delete supabase/.temp after backup",
|
|
278
|
+
|
|
279
|
+
"backup.components.migrations.title": "Migrations:",
|
|
280
|
+
"backup.components.migrations.description1": "We will delete existing migrations (if any) in the supabase/migrations folder,",
|
|
281
|
+
"backup.components.migrations.description2": "reset the link between the tool and the project, and download migrations",
|
|
282
|
+
"backup.components.migrations.description3": "from the server again. You will have the option to keep or delete migrations in the folder after backup.",
|
|
283
|
+
"backup.components.migrations.include": "Do you want to include Migrations",
|
|
284
|
+
"backup.components.migrations.cleanup": "Do you want to delete supabase/migrations after backup",
|
|
285
|
+
|
|
286
|
+
"backup.components.storage.include": "Do you want to include Storage",
|
|
287
|
+
"backup.components.auth.include": "Do you want to include Auth",
|
|
288
|
+
"backup.components.realtime.include": "Do you want to include Realtime",
|
|
289
|
+
|
|
290
|
+
"backup.summary.title": "CONFIGURATION SUMMARY:",
|
|
291
|
+
"backup.summary.edgeFunctions": "Edge Functions: {value}",
|
|
292
|
+
"backup.summary.edgeFunctionsCleanup": "Clean after backup: {value}",
|
|
293
|
+
"backup.summary.temp": "Supabase .temp: {value}",
|
|
294
|
+
"backup.summary.tempCleanup": "Delete after backup: {value}",
|
|
295
|
+
"backup.summary.migrations": "Migrations: {value}",
|
|
296
|
+
"backup.summary.migrationsCleanup": "Delete after backup: {value}",
|
|
297
|
+
"backup.summary.storage": "Storage: {value}",
|
|
298
|
+
"backup.summary.auth": "Auth: {value}",
|
|
299
|
+
"backup.summary.realtime": "Realtime: {value}",
|
|
300
|
+
"backup.summary.backupDir": "Backup directory: {path}",
|
|
301
|
+
"backup.summary.confirm": "Do you want to start the backup with these configurations?",
|
|
302
|
+
"backup.summary.yes": "Yes",
|
|
303
|
+
"backup.summary.no": "No",
|
|
304
|
+
|
|
305
|
+
"backup.start.title": "Starting backup of project: {projectId}",
|
|
306
|
+
"backup.start.directory": "Directory: {path}",
|
|
307
|
+
"backup.start.docker": "Backup via Docker Desktop",
|
|
308
|
+
|
|
309
|
+
"backup.steps.database.title": "PostgreSQL Database Backup via pg_dumpall Docker...",
|
|
310
|
+
"backup.steps.database.creating": "Creating full backup via pg_dumpall...",
|
|
311
|
+
"backup.steps.database.executing": "Executing pg_dumpall via Docker...",
|
|
312
|
+
"backup.steps.database.separated.title": "PostgreSQL Database Backup (separate SQL files)...",
|
|
313
|
+
"backup.steps.database.separated.creating": "Creating separate SQL backups via Supabase CLI...",
|
|
314
|
+
"backup.steps.database.separated.exportingSchema": "Exporting schema...",
|
|
315
|
+
"backup.steps.database.separated.exportingData": "Exporting data...",
|
|
316
|
+
"backup.steps.database.separated.exportingRoles": "Exporting roles...",
|
|
317
|
+
|
|
318
|
+
"backup.steps.databaseSettings.title": "Database Extensions and Settings Backup via SQL...",
|
|
319
|
+
"backup.steps.databaseSettings.capturing": "Capturing Database Extensions and Settings...",
|
|
320
|
+
"backup.steps.databaseSettings.executing": "Executing configuration queries via Docker...",
|
|
321
|
+
|
|
322
|
+
"backup.steps.auth.title": "Auth Settings Backup via API...",
|
|
323
|
+
"backup.steps.auth.exporting": "Exporting Auth configurations via Management API...",
|
|
324
|
+
|
|
325
|
+
"backup.steps.realtime.title": "Realtime Settings Backup via Interactive Capture...",
|
|
326
|
+
"backup.steps.realtime.capturing": "Capturing Realtime Settings interactively...",
|
|
327
|
+
"backup.steps.realtime.previousFound": "A previous Realtime Settings recording was found.",
|
|
328
|
+
"backup.steps.realtime.reuse": "Do you want to reuse the previous configurations?",
|
|
329
|
+
"backup.steps.realtime.configTitle": "Realtime Settings Configuration",
|
|
330
|
+
"backup.steps.realtime.access": "Access: {url}",
|
|
331
|
+
"backup.steps.realtime.note": "Note the values of the 7 parameters below:",
|
|
332
|
+
"backup.steps.realtime.questions": "Answer the questions below (press Enter to use default value):",
|
|
333
|
+
"backup.steps.realtime.saved": "Realtime Settings configurations saved!",
|
|
334
|
+
|
|
335
|
+
"backup.steps.storage.title": "Storage Backup via API...",
|
|
336
|
+
"backup.steps.storage.listing": "Listing Storage buckets via Management API...",
|
|
337
|
+
"backup.steps.storage.found": "Found {count} buckets",
|
|
338
|
+
"backup.steps.storage.processing": "Processing bucket: {bucketName}",
|
|
339
|
+
"backup.steps.storage.listingFiles": "Listing files from bucket {bucketName}...",
|
|
340
|
+
"backup.steps.storage.downloading": "Downloading {count} file(s) from bucket {bucketName}...",
|
|
341
|
+
"backup.steps.storage.downloaded": "Downloaded {current}/{total} file(s)...",
|
|
342
|
+
"backup.steps.storage.bucketDone": "Bucket {bucketName}: {downloaded}/{total} file(s) downloaded",
|
|
343
|
+
"backup.steps.storage.creatingZip": "Creating ZIP file in Dashboard format...",
|
|
344
|
+
"backup.steps.storage.zipCreated": "ZIP file created: {fileName} ({size} MB)",
|
|
345
|
+
"backup.steps.storage.cleanup": "Do you want to clean storage_temp after backup",
|
|
346
|
+
"backup.steps.storage.tempKept": "Temporary structure kept at: {path}",
|
|
347
|
+
"backup.steps.storage.done": "Storage backed up: {buckets} buckets, {files} file(s) downloaded",
|
|
348
|
+
|
|
349
|
+
"backup.steps.roles.title": "Custom Roles Backup via SQL...",
|
|
350
|
+
"backup.steps.roles.exporting": "Exporting Custom Roles via Docker...",
|
|
351
|
+
|
|
352
|
+
"backup.steps.functions.title": "Edge Functions Backup via Docker...",
|
|
353
|
+
"backup.steps.functions.linking": "Resetting link and linking project: {projectId}...",
|
|
354
|
+
"backup.steps.functions.validation": "Validation: linked-ref = {linkedRef} (expected = {expected})",
|
|
355
|
+
"backup.steps.functions.prepared": "supabase/functions folder prepared (will be preserved after backup).",
|
|
356
|
+
"backup.steps.functions.listing": "Listing Edge Functions via Management API...",
|
|
357
|
+
"backup.steps.functions.noneFound": "No Edge Functions found",
|
|
358
|
+
|
|
359
|
+
"backup.steps.temp.title": "Supabase .temp Backup...",
|
|
360
|
+
"backup.steps.temp.copying": "Copying supabase/.temp → {path} ({count} files)...",
|
|
361
|
+
|
|
362
|
+
"backup.steps.migrations.title": "Migrations Backup...",
|
|
363
|
+
"backup.steps.migrations.linking": "Resetting link and linking project: {projectId}...",
|
|
364
|
+
"backup.steps.migrations.validation": "Validation: linked-ref = {linkedRef} (expected = {expected})",
|
|
365
|
+
"backup.steps.migrations.cleaning": "Cleaning supabase/migrations...",
|
|
366
|
+
"backup.steps.migrations.downloading": "Downloading all migrations from server using migration fetch...",
|
|
367
|
+
"backup.steps.migrations.downloaded": "Files downloaded: {count} migrations",
|
|
368
|
+
"backup.steps.migrations.copying": "Copying supabase/migrations → {path} ({count} files)...",
|
|
369
|
+
|
|
370
|
+
"backup.complete.title": "FULL BACKUP COMPLETED VIA DOCKER!",
|
|
371
|
+
"backup.complete.location": "Location: {path}",
|
|
372
|
+
"backup.complete.database": "Database: {fileName} ({size}) - Identical to Dashboard",
|
|
373
|
+
"backup.complete.databaseSql": "Database SQL: {count} separate files ({size}) - For troubleshooting",
|
|
374
|
+
"backup.complete.databaseSettings": "Database Settings: {fileName} ({size}) - Extensions and Settings",
|
|
375
|
+
"backup.complete.auth": "Auth Settings: Exported via API",
|
|
376
|
+
"backup.complete.realtime": "Realtime: Configurations captured interactively",
|
|
377
|
+
"backup.complete.storage": "Storage: {buckets} buckets, {files} file(s) downloaded, ZIP: {zipFile} ({size})",
|
|
378
|
+
"backup.complete.roles": "Custom Roles: {count} roles exported via SQL",
|
|
379
|
+
"backup.complete.functions": "Edge Functions: {downloaded}/{total} functions downloaded via Docker",
|
|
380
|
+
"backup.complete.temp": "Supabase .temp: {count} file(s) copied",
|
|
381
|
+
"backup.complete.migrations": "Migrations: {count} migration(s) copied",
|
|
382
|
+
|
|
383
|
+
"backup.error.databaseUrlNotConfigured": "DATABASE_URL NOT CONFIGURED",
|
|
384
|
+
"backup.error.databaseUrlInstructions": "To create a full backup of Supabase, you need to:",
|
|
385
|
+
"backup.error.databaseUrlStep1": "1. Configure SUPABASE_DB_URL in .env.local",
|
|
386
|
+
"backup.error.databaseUrlStep2": "2. Repeat the backup command",
|
|
387
|
+
"backup.error.databaseUrlExample": "Configuration example:",
|
|
388
|
+
"backup.error.databaseUrlExampleValue": "\"databaseUrl\": \"postgresql://postgres:[password]@db.[project].supabase.co:5432/postgres\"",
|
|
389
|
+
"backup.error.databaseUrlCancelled": "Backup cancelled - Incomplete configuration",
|
|
390
|
+
|
|
391
|
+
"backup.error.accessTokenNotConfigured": "ACCESS_TOKEN NOT CONFIGURED",
|
|
392
|
+
"backup.error.accessTokenInstructions": "To create a full backup of Supabase, you need to:",
|
|
393
|
+
"backup.error.accessTokenStep1": "1. Get Personal Access Token from Supabase",
|
|
394
|
+
"backup.error.accessTokenStep2": "2. Configure SUPABASE_ACCESS_TOKEN in .env.local",
|
|
395
|
+
"backup.error.accessTokenStep3": "3. Repeat the backup command",
|
|
396
|
+
"backup.error.accessTokenHowTo": "How to get the token:",
|
|
397
|
+
"backup.error.accessTokenStep1Detail": "1. Access: https://supabase.com/dashboard/account/tokens",
|
|
398
|
+
"backup.error.accessTokenStep2Detail": "2. Click: \"Generate new token\"",
|
|
399
|
+
"backup.error.accessTokenStep3Detail": "3. Copy the token (format: sbp_...)",
|
|
400
|
+
"backup.error.accessTokenCancelled": "Backup cancelled - Token not configured",
|
|
401
|
+
|
|
402
|
+
"backup.steps.storage.noBuckets": "No buckets found",
|
|
403
|
+
"backup.steps.storage.credentialsNotAvailable": "Supabase credentials not available. Backing up metadata only...",
|
|
404
|
+
"backup.steps.storage.cleanupRemoving": "Cleaning temporary structure...",
|
|
405
|
+
"backup.steps.storage.cleanupRemoved": "Temporary structure removed",
|
|
406
|
+
"backup.steps.storage.cleanupError": "Error cleaning temporary structure: {message}",
|
|
407
|
+
"backup.steps.storage.listError": "Error listing {path}: {message}",
|
|
408
|
+
"backup.steps.storage.processError": "Error processing {path}: {message}",
|
|
409
|
+
"backup.steps.storage.error": "Error in Storage backup: {message}",
|
|
410
|
+
"backup.steps.storage.listBucketsError": "Error listing buckets: {status} {statusText}",
|
|
411
|
+
"backup.steps.storage.downloadError": "Error downloading {path}: {message}",
|
|
412
|
+
"backup.steps.storage.processFileError": "Error processing file {path}: {message}",
|
|
413
|
+
"backup.steps.storage.processBucketError": "Error processing bucket {bucketName}: {message}",
|
|
414
|
+
"backup.steps.database.error": "Error in database backup: {message}",
|
|
415
|
+
"backup.steps.database.separated.error": "Error in separated SQL backups: {message}",
|
|
416
|
+
"backup.steps.database.separated.schemaError": "Error in schema: {message}",
|
|
417
|
+
"backup.steps.database.separated.dataError": "Error in data: {message}",
|
|
418
|
+
"backup.steps.database.separated.rolesError": "Error in roles: {message}",
|
|
419
|
+
"backup.steps.databaseSettings.error": "Error in Database Settings backup: {message}",
|
|
420
|
+
"backup.steps.auth.error": "Error in Auth Settings backup: {message}",
|
|
421
|
+
"backup.steps.auth.getError": "Error getting Auth Settings: {status} {statusText}",
|
|
422
|
+
"backup.steps.realtime.error": "Error capturing Realtime Settings: {message}",
|
|
423
|
+
"backup.steps.roles.error": "Error in Custom Roles backup: {message}",
|
|
424
|
+
"backup.steps.roles.exportError": "Error exporting Custom Roles via Docker: {message}",
|
|
425
|
+
"backup.steps.functions.error": "Error during Edge Functions backup: {message}",
|
|
426
|
+
"backup.steps.functions.listError": "Error listing Edge Functions: {status} {statusText}",
|
|
427
|
+
"backup.steps.functions.downloadError": "Error downloading {funcName}: {message}",
|
|
428
|
+
"backup.steps.temp.error": "Error in supabase/.temp backup: {message}",
|
|
429
|
+
"backup.steps.migrations.error": "Error in migrations backup: {message}",
|
|
430
|
+
|
|
431
|
+
"backup.steps.functions.cleanBefore": "supabase/functions folder cleaned before backup.",
|
|
432
|
+
"backup.steps.functions.preserving": "Preserving {count} existing function(s) in supabase/functions folder.",
|
|
433
|
+
"backup.steps.functions.cleanAfter": "supabase/functions cleaned after backup.",
|
|
434
|
+
"backup.steps.functions.preserved": "supabase/functions preserved as requested.",
|
|
435
|
+
|
|
436
|
+
"backup.steps.migrations.cleaning": "Cleaning supabase/migrations...",
|
|
437
|
+
"backup.steps.migrations.downloading": "Downloading all migrations from server using migration fetch...",
|
|
438
|
+
"backup.steps.migrations.fetchError": "Error executing migration fetch: {message}",
|
|
439
|
+
"backup.steps.migrations.fetchTip": "Verify that the project is correctly linked and the token is valid.",
|
|
440
|
+
"backup.steps.migrations.downloaded": "Files downloaded: {count} migrations",
|
|
441
|
+
"backup.steps.migrations.copying": "Copying supabase/migrations → {path} ({count} files)...",
|
|
442
|
+
"backup.steps.migrations.copied": "{count} migration(s) copied",
|
|
443
|
+
"backup.steps.migrations.cleaned": "supabase/migrations deleted.",
|
|
444
|
+
|
|
445
|
+
"backup.steps.temp.copying": "Copying supabase/.temp → {path} ({count} files)...",
|
|
446
|
+
"backup.steps.temp.noFiles": "No files found in supabase/.temp",
|
|
447
|
+
"backup.steps.temp.copied": "{count} file(s) copied",
|
|
448
|
+
"backup.steps.temp.cleaned": "supabase/.temp deleted.",
|
|
449
|
+
|
|
450
|
+
"restore.steps.components.edgeFunctions.title": "Edge Functions:",
|
|
451
|
+
"restore.steps.components.edgeFunctions.description1": "Edge Functions will be copied to supabase/functions and deployed to the target project.",
|
|
452
|
+
"restore.steps.components.edgeFunctions.description2": "The supabase/functions folder will be cleaned before the process.",
|
|
453
|
+
"restore.steps.components.edgeFunctions.include": "Do you want to restore Edge Functions",
|
|
454
|
+
|
|
455
|
+
"restore.steps.components.auth.title": "Auth Settings:",
|
|
456
|
+
"restore.steps.components.auth.description1": "Auth settings will be displayed for manual configuration in the Dashboard.",
|
|
457
|
+
"restore.steps.components.auth.description2": "Some settings cannot be applied automatically for security reasons.",
|
|
458
|
+
"restore.steps.components.auth.include": "Do you want to restore Auth",
|
|
459
|
+
|
|
460
|
+
"restore.steps.components.storage.title": "Storage:",
|
|
461
|
+
"restore.steps.components.storage.zipFound": "Storage .zip file found: {fileName}",
|
|
462
|
+
"restore.steps.components.storage.withZip.description1": "Buckets and files will be automatically restored to the target project.",
|
|
463
|
+
"restore.steps.components.storage.withZip.description2": "The ZIP file will be extracted, buckets created and files uploaded via API.",
|
|
464
|
+
"restore.steps.components.storage.metadataOnly.description1": "Only bucket metadata found (storage folder).",
|
|
465
|
+
"restore.steps.components.storage.metadataOnly.description2": "To restore files, the .storage.zip file from the Dashboard is required.",
|
|
466
|
+
"restore.steps.components.storage.metadataOnly.description3": "Only bucket information will be displayed.",
|
|
467
|
+
"restore.steps.components.storage.include": "Do you want to restore Storage",
|
|
468
|
+
|
|
469
|
+
"restore.steps.components.databaseSettings.title": "Database Extensions and Settings:",
|
|
470
|
+
"restore.steps.components.databaseSettings.description1": "Database extensions and settings will be restored via SQL.",
|
|
471
|
+
"restore.steps.components.databaseSettings.description2": "This includes PostgreSQL extensions and project-specific settings.",
|
|
472
|
+
"restore.steps.components.databaseSettings.include": "Do you want to restore Database Settings",
|
|
473
|
+
|
|
474
|
+
"restore.steps.components.realtime.title": "Realtime Settings:",
|
|
475
|
+
"restore.steps.components.realtime.description1": "Realtime settings will be displayed for manual configuration in the Dashboard.",
|
|
476
|
+
"restore.steps.components.realtime.description2": "Some settings need to be applied manually.",
|
|
477
|
+
"restore.steps.components.realtime.include": "Do you want to restore Realtime",
|
|
478
|
+
"restore.steps.components.database.include": "Do you want to restore Database",
|
|
479
|
+
|
|
480
|
+
"restore.steps.database.detectedGz": ".backup.gz file detected",
|
|
481
|
+
"restore.steps.database.extractingGz": "Extracting .gz file...",
|
|
482
|
+
"restore.steps.database.uncompressed": "Uncompressed file: {file}",
|
|
483
|
+
"restore.steps.database.detectedBackup": ".backup file detected (already uncompressed)",
|
|
484
|
+
"restore.steps.database.proceeding": "Proceeding with direct restore",
|
|
485
|
+
"restore.steps.database.executing": "Executing psql via Docker...",
|
|
486
|
+
"restore.steps.database.followingDocs": "Following official Supabase documentation",
|
|
487
|
+
"restore.steps.database.warning": "WARNING: Errors like \"object already exists\" are EXPECTED",
|
|
488
|
+
"restore.steps.database.warningReason1": "This happens because the backup contains CREATE for all schemas",
|
|
489
|
+
"restore.steps.database.warningReason2": "Supabase already has auth and storage created, so these errors are normal",
|
|
490
|
+
"restore.steps.database.success": "Database restored successfully!",
|
|
491
|
+
"restore.steps.database.normalErrors": "\"already exists\" errors are normal and do not affect the restore",
|
|
492
|
+
"restore.steps.database.expectedErrors": "Expected errors found (as per Supabase documentation)",
|
|
493
|
+
"restore.steps.database.errorsIgnored": "Errors are ignored as they are CREATE commands that already exist",
|
|
494
|
+
"restore.steps.database.error": "Error restoring database: {message}",
|
|
495
|
+
|
|
496
|
+
"restore.steps.storage.noBuckets": "No Storage buckets found in backup",
|
|
497
|
+
"restore.steps.storage.zipNotFound": ".storage.zip file not found",
|
|
498
|
+
"restore.steps.storage.metadataOnly": "Only bucket metadata was found",
|
|
499
|
+
"restore.steps.storage.zipRequired": "To restore files, the .storage.zip file from the Dashboard is required",
|
|
500
|
+
"restore.steps.storage.bucketInfo": "{name} ({visibility})",
|
|
501
|
+
"restore.steps.storage.public": "public",
|
|
502
|
+
"restore.steps.storage.private": "private",
|
|
503
|
+
"restore.steps.storage.noBucketsInBackup": "No Storage buckets found in backup",
|
|
504
|
+
"restore.steps.storage.projectIdNotFound": "Source project Project ID not found in manifest. Continuing without replacement...",
|
|
505
|
+
"restore.steps.storage.extracting": "Extracting .storage.zip file...",
|
|
506
|
+
"restore.steps.storage.extracted": "File extracted successfully",
|
|
507
|
+
"restore.steps.storage.replacing": "Replacing references to old Project ID in extracted files...",
|
|
508
|
+
"restore.steps.storage.replacingProjectId": "Replacing Project ID: {source} → {target}",
|
|
509
|
+
"restore.steps.storage.replaced": "Project ID replacement completed",
|
|
510
|
+
"restore.steps.storage.noBucketsInZip": "No buckets found in .storage.zip file",
|
|
511
|
+
"restore.steps.storage.bucketConfig": "Settings: {visibility}, limit: {limit}, types: {types}",
|
|
512
|
+
"restore.steps.storage.noLimit": "no limit",
|
|
513
|
+
"restore.steps.storage.allTypes": "all",
|
|
514
|
+
"restore.steps.storage.fileFound": "Storage file found: {fileName}",
|
|
515
|
+
"restore.steps.storage.bucketsFoundInZip": "Found {count} bucket(s) in ZIP file",
|
|
516
|
+
"restore.steps.storage.processingBucket": "Processing bucket: {bucketName}",
|
|
517
|
+
"restore.steps.storage.creatingBucket": "Creating bucket {bucketName}...",
|
|
518
|
+
"restore.steps.storage.bucketCreated": "Bucket {bucketName} created with backup settings",
|
|
519
|
+
"restore.steps.storage.bucketUpdated": "Bucket settings updated",
|
|
520
|
+
"restore.steps.storage.bucketConfigCorrect": "Bucket settings are already correct",
|
|
521
|
+
"restore.steps.storage.filesFoundForUpload": "Found {count} file(s) for upload",
|
|
522
|
+
"restore.steps.storage.bucketDone": "Bucket {bucketName}: {uploaded}/{total} file(s) uploaded",
|
|
523
|
+
"restore.steps.storage.bucketError": "Error processing bucket {bucketName}: {message}",
|
|
524
|
+
"restore.steps.storage.uploadError": "Error uploading {path}: {message}",
|
|
525
|
+
"restore.steps.storage.restoreComplete": "Storage restore completed: {success}/{total} bucket(s) processed, {files} file(s) uploaded",
|
|
526
|
+
"restore.steps.storage.bucketsFoundMetadata": "{count} bucket(s) found in backup (metadata only)",
|
|
527
|
+
"restore.steps.storage.noBucketsInSubfolders": "Error: No buckets found in subfolders of {rootDir}",
|
|
528
|
+
"restore.steps.storage.updateError": "Could not update settings: {errorText}",
|
|
529
|
+
"restore.steps.storage.uploadProgress": "Upload: {path}{metaInfo}",
|
|
530
|
+
"restore.steps.storage.metadataPreserved": "(metadata preserved)",
|
|
531
|
+
"restore.steps.storage.fileError": "Error processing file {path}: {message}",
|
|
532
|
+
"restore.steps.storage.rootIsProjectId": "The root folder is a Project ID and should not be treated as a bucket",
|
|
533
|
+
"restore.steps.storage.bucketExists": "Bucket {bucketName} already exists",
|
|
534
|
+
"restore.steps.storage.updating": "Updating bucket settings to match backup...",
|
|
535
|
+
"restore.steps.storage.detectedProjectId": "Detected root folder with Project ID: {projectId}{reason}",
|
|
536
|
+
"restore.steps.storage.searchingBuckets": "Searching for buckets in subfolders...",
|
|
537
|
+
"restore.steps.storage.error": "Error processing Storage: {message}",
|
|
538
|
+
|
|
539
|
+
"restore.steps.edgeFunctions.notFound": "No Edge Functions found in backup",
|
|
540
|
+
"restore.steps.edgeFunctions.found": "Found {count} Edge Function(s)",
|
|
541
|
+
"restore.steps.edgeFunctions.cleaningBefore": "Cleaning supabase/functions before copying...",
|
|
542
|
+
"restore.steps.edgeFunctions.linkMayExist": "Link may already exist, continuing...",
|
|
543
|
+
"restore.steps.edgeFunctions.cleaningAfter": "Cleaning supabase/functions after deploy...",
|
|
544
|
+
"restore.steps.edgeFunctions.success": "Edge Functions restored successfully!",
|
|
545
|
+
"restore.steps.edgeFunctions.error": "Error restoring Edge Functions: {message}",
|
|
546
|
+
"restore.steps.edgeFunctions.listBucketsError": "Error listing buckets: {message}",
|
|
547
|
+
"restore.steps.edgeFunctions.createBucketError": "Error creating bucket: {status} {errorText}",
|
|
548
|
+
"restore.steps.edgeFunctions.copying": "Copying {funcName} to supabase/functions...",
|
|
549
|
+
"restore.steps.edgeFunctions.linking": "Linking with project {projectId}...",
|
|
550
|
+
"restore.steps.edgeFunctions.deploying": "Deploying {funcName}...",
|
|
551
|
+
"restore.steps.edgeFunctions.deployed": "{funcName} deployed successfully!",
|
|
552
|
+
"restore.steps.edgeFunctions.deployFailed": "{funcName} - deploy failed: {message}",
|
|
553
|
+
|
|
554
|
+
"restore.steps.auth.notFound": "No Auth settings found in backup",
|
|
555
|
+
"restore.steps.auth.error": "Error processing Auth Settings: {message}",
|
|
556
|
+
"restore.steps.auth.urlTitle": "URL for manual configuration:",
|
|
557
|
+
"restore.steps.auth.configureTitle": "Manually configure the following options:",
|
|
558
|
+
"restore.steps.auth.pressEnter": "After configuring, press Enter to continue...",
|
|
559
|
+
"restore.steps.auth.success": "Auth Settings processed",
|
|
560
|
+
|
|
561
|
+
"restore.steps.databaseSettings.notFound": "No Database settings found in backup",
|
|
562
|
+
"restore.steps.databaseSettings.success": "Database Settings restored successfully!",
|
|
563
|
+
"restore.steps.databaseSettings.error": "Error restoring Database Settings: {message}",
|
|
564
|
+
"restore.steps.databaseSettings.enabling": "Enabling {count} extension(s)...",
|
|
565
|
+
"restore.steps.databaseSettings.extension": "- {extName}",
|
|
566
|
+
"restore.steps.databaseSettings.invalidUrl": "Invalid URL for {extName}",
|
|
567
|
+
"restore.steps.databaseSettings.extensionExists": "{extName} - extension already exists or cannot be enabled",
|
|
568
|
+
|
|
569
|
+
"restore.steps.realtime.notFound": "No Realtime settings found in backup",
|
|
570
|
+
"restore.steps.realtime.urlTitle": "URL for manual configuration:",
|
|
571
|
+
"restore.steps.realtime.configureTitle": "Manually configure the following options:",
|
|
572
|
+
"restore.steps.realtime.pressEnter": "After configuring, press Enter to continue...",
|
|
573
|
+
"restore.steps.realtime.success": "Realtime Settings processed",
|
|
574
|
+
|
|
575
|
+
"restore.steps.backupSelection.title": "Available backups:",
|
|
576
|
+
"restore.steps.backupSelection.separator": "═══════════════════════════════════════════════════════════════════════════════"
|
|
250
577
|
}
|
|
251
578
|
|