@seedgrid/fe-backup 2026.7.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/backup.d.ts +47 -0
- package/dist/backup.d.ts.map +1 -0
- package/dist/backup.js +3 -0
- package/dist/export-status.d.ts +6 -0
- package/dist/export-status.d.ts.map +1 -0
- package/dist/export-status.js +28 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/messages.d.ts +308 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +202 -0
- package/dist/module.d.ts +3 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +23 -0
- package/dist/module.json +15 -0
- package/dist/paths.d.ts +9 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +11 -0
- package/dist/server/create-backup-server.d.ts +19 -0
- package/dist/server/create-backup-server.d.ts.map +1 -0
- package/dist/server/create-backup-server.js +19 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +2 -0
- package/package.json +43 -0
- package/scaffold/README.md +69 -0
- package/scaffold/src/app/api/backup/exports/[jobId]/download/route.ts +87 -0
- package/scaffold/src/app/backup/exports/(create)/new/page.test.tsx +182 -0
- package/scaffold/src/app/backup/exports/(create)/new/page.tsx +168 -0
- package/scaffold/src/app/backup/exports/(list)/page.test.tsx +166 -0
- package/scaffold/src/app/backup/exports/(list)/page.tsx +286 -0
- package/scaffold/src/modules/backup/components/ExportStatusBadge.test.tsx +75 -0
- package/scaffold/src/modules/backup/components/ExportStatusBadge.tsx +54 -0
- package/scaffold/src/modules/backup/config.ts +27 -0
- package/scaffold/src/modules/backup/index.ts +19 -0
- package/scaffold/src/modules/backup/services/backup-api.test.ts +122 -0
- package/scaffold/src/modules/backup/services/backup-api.ts +205 -0
- package/scaffold/src/modules/backup/services/backup-service.test.ts +125 -0
- package/scaffold/src/modules/backup/services/backup-service.ts +34 -0
- package/scaffold/src/modules/backup/types.ts +17 -0
- package/scaffold/src/modules/backup/useBackupAppShellSections.test.tsx +61 -0
- package/scaffold/src/modules/backup/useBackupAppShellSections.tsx +50 -0
package/README.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# @seedgrid/fe-backup
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@seedgrid/fe-backup)
|
|
4
|
+
[](https://www.npmjs.com/package/@seedgrid/fe-backup)
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
|
|
7
|
+
Módulo front de **backup/exportação de dados** do SeedGrid: criação de jobs de export, acompanhamento de status com polling e download do artefato gerado. Compõe sobre o motor de sessão do [`@seedgrid/fe-security`](https://www.npmjs.com/package/@seedgrid/fe-security).
|
|
8
|
+
|
|
9
|
+
## Sumário
|
|
10
|
+
|
|
11
|
+
- [Funcionalidades](#funcionalidades)
|
|
12
|
+
- [Telas entregues pelo scaffold](#telas-entregues-pelo-scaffold)
|
|
13
|
+
- [Instalação](#instalação)
|
|
14
|
+
- [Uso rápido](#uso-rápido)
|
|
15
|
+
- [Backend correspondente](#backend-correspondente)
|
|
16
|
+
- [Suporte](#suporte)
|
|
17
|
+
|
|
18
|
+
## Funcionalidades
|
|
19
|
+
|
|
20
|
+
- **Criar export** — formatos `CSV_ZIP` e `SQL_DUMP_ZIP`, escopos `DOMAIN` / `RAW` / `CUSTOM`.
|
|
21
|
+
- **Acompanhar status** — o job passa por 8 estados; helpers puros classificam o andamento: `classifyExportStatus`, `isExportInProgress`, `isExportDownloadable` (`ExportStatusGroup`).
|
|
22
|
+
- **Baixar o artefato** — download em `application/zip` via rota-proxy do app.
|
|
23
|
+
- **Remover exports** antigos.
|
|
24
|
+
- **i18n pronto** — `backupMessages` (bundle de mensagens das telas).
|
|
25
|
+
|
|
26
|
+
O pacote exporta:
|
|
27
|
+
|
|
28
|
+
- `BackupPaths` — contrato dos endpoints REST (`/exports`, `/exports/{jobId}`, `/exports/{jobId}/download`).
|
|
29
|
+
- DTOs client-safe: `ExportRequest`, `ExportResponse`, `ArtifactInfo`, `BackupFormat`, `ExportScope`, `ExportStatus` — conferidos 1:1 contra os enums/DTOs reais do backend.
|
|
30
|
+
- Helpers de status (`export-status`) e `backupMessages` (i18n).
|
|
31
|
+
- `createBackupServer` (em `@seedgrid/fe-backup/server`, SERVER-ONLY) — engine tipado sobre a sessão do fe-security.
|
|
32
|
+
|
|
33
|
+
## Telas entregues pelo scaffold
|
|
34
|
+
|
|
35
|
+
| Tela | Rota | O que faz |
|
|
36
|
+
| --- | --- | --- |
|
|
37
|
+
| Lista de exports | `/backup/exports` | Grid dos jobs com `ExportStatusBadge` (status colorido), polling de andamento, download quando pronto e exclusão |
|
|
38
|
+
| Novo export | `/backup/exports/new` | Formulário de criação (formato + escopo) |
|
|
39
|
+
|
|
40
|
+
O scaffold também traz o route handler de download (`/api/backup/exports/[jobId]/download`), a seção de navegação (`useBackupAppShellSections`, wireada automaticamente pelo CLI via `module.json`) e os services client-side com testes.
|
|
41
|
+
|
|
42
|
+
`module.json`: `id: "backup"`, `requires: ["security"]`, navegação e mensagens declaradas — o SeedGrid CLI registra tudo sozinho ao adicionar o módulo.
|
|
43
|
+
|
|
44
|
+
## Instalação
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pnpm add @seedgrid/fe-backup @seedgrid/fe-security @seedgrid/fe-core
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Uso rápido
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
// server-only — compõe sobre a sessão do fe-security
|
|
54
|
+
import { createSecurityServer } from "@seedgrid/fe-security/server";
|
|
55
|
+
import { createBackupServer } from "@seedgrid/fe-backup/server";
|
|
56
|
+
|
|
57
|
+
const session = createSecurityServer({ /* ... */ });
|
|
58
|
+
export const backup = createBackupServer(session);
|
|
59
|
+
|
|
60
|
+
// Em uma rota/action:
|
|
61
|
+
const job = await backup.createExport({ format: "CSV_ZIP", scope: "DOMAIN" });
|
|
62
|
+
const status = await backup.getExportStatus(job.jobId);
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
// Client: classificar o status pra UI
|
|
67
|
+
import { classifyExportStatus, isExportDownloadable } from "@seedgrid/fe-backup";
|
|
68
|
+
|
|
69
|
+
const group = classifyExportStatus(job.status); // "inProgress" | "success" | "failure" ...
|
|
70
|
+
if (isExportDownloadable(job.status)) {
|
|
71
|
+
// habilita o botão de download
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Backend correspondente
|
|
76
|
+
|
|
77
|
+
Extensão Quarkus `seedgrid-quarkus-ext-backup`. `BackupPaths` é espelho do `RestControllerPath.java` da extensão; os DTOs foram conferidos contra `BackupFormat`, `ExportScope`, `ExportStatus` e `ExportResponse` reais.
|
|
78
|
+
|
|
79
|
+
## Suporte
|
|
80
|
+
|
|
81
|
+
- Issues: https://github.com/SeedGrid/seedgrid-fe-components/issues
|
|
82
|
+
- Repositório: https://github.com/SeedGrid/seedgrid-fe-components
|
|
83
|
+
|
|
84
|
+
## Licença
|
|
85
|
+
|
|
86
|
+
MIT
|
package/dist/backup.d.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Espelha BackupFormat.java (seedgrid-quarkus-ext-backup) — só 2 valores reais. */
|
|
2
|
+
export type BackupFormat = "CSV_ZIP" | "SQL_DUMP_ZIP";
|
|
3
|
+
export type ExportScope = "CUSTOM" | "DOMAIN" | "RAW";
|
|
4
|
+
export type ExportStatus = "REQUESTED" | "QUEUED" | "RUNNING" | "DONE" | "DONE_NOTIFIED" | "FAILED" | "CANCELLED" | "EXPIRED";
|
|
5
|
+
/** POST /exports (request). */
|
|
6
|
+
export interface ExportRequest {
|
|
7
|
+
format: BackupFormat;
|
|
8
|
+
scope: ExportScope;
|
|
9
|
+
includeAttachments?: boolean;
|
|
10
|
+
/** Opções livres específicas do formato/escopo. */
|
|
11
|
+
options?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
/** Artefato gerado pelo export (arquivo baixável). */
|
|
14
|
+
export interface ArtifactInfo {
|
|
15
|
+
id: number;
|
|
16
|
+
type: string;
|
|
17
|
+
filename: string;
|
|
18
|
+
sizeBytes: number;
|
|
19
|
+
sha256: string;
|
|
20
|
+
mimeType?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Status/resultado de um export job (ExportResponse). `type` (nao `interface`)
|
|
24
|
+
* de proposito: e usado como linha do SgDatatable, cujo generico exige
|
|
25
|
+
* `extends Record<string, unknown>` — um type alias fechado satisfaz isso, uma
|
|
26
|
+
* interface (aberta a merge) nao.
|
|
27
|
+
*/
|
|
28
|
+
export type ExportResponse = {
|
|
29
|
+
jobId: string;
|
|
30
|
+
status: ExportStatus;
|
|
31
|
+
/** 0..100. */
|
|
32
|
+
progress?: number | null;
|
|
33
|
+
currentStep?: string | null;
|
|
34
|
+
format: BackupFormat;
|
|
35
|
+
scope: ExportScope;
|
|
36
|
+
databaseSchema?: string | null;
|
|
37
|
+
createdAt: string;
|
|
38
|
+
startedAt?: string | null;
|
|
39
|
+
finishedAt?: string | null;
|
|
40
|
+
expiresAt?: string | null;
|
|
41
|
+
errorMessage?: string | null;
|
|
42
|
+
totalSizeBytes?: number | null;
|
|
43
|
+
/** true quando o zip está pronto pra download. */
|
|
44
|
+
downloadable?: boolean;
|
|
45
|
+
artifacts?: ArtifactInfo[];
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../src/backup.ts"],"names":[],"mappings":"AAGA,oFAAoF;AACpF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,cAAc,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEtD,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,QAAQ,GACR,SAAS,GACT,MAAM,GACN,eAAe,GACf,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd,+BAA+B;AAC/B,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAA"}
|
package/dist/backup.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ExportStatus } from "./backup";
|
|
2
|
+
export type ExportStatusGroup = "pending" | "running" | "done" | "failed" | "terminal";
|
|
3
|
+
export declare function classifyExportStatus(status: ExportStatus): ExportStatusGroup;
|
|
4
|
+
export declare function isExportInProgress(status: ExportStatus): boolean;
|
|
5
|
+
export declare function isExportDownloadable(status: ExportStatus): boolean;
|
|
6
|
+
//# sourceMappingURL=export-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-status.d.ts","sourceRoot":"","sources":["../src/export-status.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEvF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB,CAkB5E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAElE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Classificação derivada de ExportStatus (espelha o types.ts.hbs do antigo
|
|
2
|
+
// seedgrid-cli/templates/modules/backup). Puro, zero import "@/...". Opera
|
|
3
|
+
// sobre o ExportStatus já declarado em backup.ts (não redeclara o tipo).
|
|
4
|
+
export function classifyExportStatus(status) {
|
|
5
|
+
switch (status) {
|
|
6
|
+
case "REQUESTED":
|
|
7
|
+
case "QUEUED":
|
|
8
|
+
return "pending";
|
|
9
|
+
case "RUNNING":
|
|
10
|
+
return "running";
|
|
11
|
+
case "DONE":
|
|
12
|
+
case "DONE_NOTIFIED":
|
|
13
|
+
return "done";
|
|
14
|
+
case "FAILED":
|
|
15
|
+
return "failed";
|
|
16
|
+
case "EXPIRED":
|
|
17
|
+
case "CANCELLED":
|
|
18
|
+
return "terminal";
|
|
19
|
+
default:
|
|
20
|
+
return "terminal";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function isExportInProgress(status) {
|
|
24
|
+
return status === "REQUESTED" || status === "QUEUED" || status === "RUNNING";
|
|
25
|
+
}
|
|
26
|
+
export function isExportDownloadable(status) {
|
|
27
|
+
return status === "DONE" || status === "DONE_NOTIFIED";
|
|
28
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Barrel client-safe (@seedgrid/fe-backup). Tipos + paths. Server helper em /server.
|
|
2
|
+
// A tela de backup (criar/baixar) é SCAFFOLD (app owns), entregue pelo CLI.
|
|
3
|
+
export * from "./backup";
|
|
4
|
+
export * from "./paths";
|
|
5
|
+
export * from "./export-status";
|
|
6
|
+
export * from "./messages";
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
export declare const backupMessages: {
|
|
2
|
+
readonly en: {
|
|
3
|
+
readonly "backup.common.module_name": "Exports";
|
|
4
|
+
readonly "backup.common.loading": "Loading...";
|
|
5
|
+
readonly "backup.common.actions": "Actions";
|
|
6
|
+
readonly "backup.common.cancel": "Cancel";
|
|
7
|
+
readonly "backup.common.confirm": "Confirm";
|
|
8
|
+
readonly "backup.common.refresh": "Refresh";
|
|
9
|
+
readonly "backup.common.server_connection_error": "Could not connect to the server";
|
|
10
|
+
readonly "backup.exports.list.title": "Data Exports";
|
|
11
|
+
readonly "backup.exports.list.description": "Create and manage tenant data export jobs.";
|
|
12
|
+
readonly "backup.exports.list.new": "New export";
|
|
13
|
+
readonly "backup.exports.list.empty": "No export jobs found.";
|
|
14
|
+
readonly "backup.exports.list.column.job_id": "Job ID";
|
|
15
|
+
readonly "backup.exports.list.column.format": "Format";
|
|
16
|
+
readonly "backup.exports.list.column.scope": "Scope";
|
|
17
|
+
readonly "backup.exports.list.column.status": "Status";
|
|
18
|
+
readonly "backup.exports.list.column.progress": "Progress";
|
|
19
|
+
readonly "backup.exports.list.column.created_at": "Created at";
|
|
20
|
+
readonly "backup.exports.list.column.finished_at": "Finished at";
|
|
21
|
+
readonly "backup.exports.list.column.size": "Size";
|
|
22
|
+
readonly "backup.exports.list.action.download": "Download";
|
|
23
|
+
readonly "backup.exports.list.action.delete": "Delete";
|
|
24
|
+
readonly "backup.exports.list.action.cancel": "Cancel";
|
|
25
|
+
readonly "backup.exports.list.load_error": "Could not load export jobs.";
|
|
26
|
+
readonly "backup.exports.list.delete_title": "Delete export";
|
|
27
|
+
readonly "backup.exports.list.delete_message": "Delete or cancel the selected export job?";
|
|
28
|
+
readonly "backup.exports.list.delete_success": "Export job deleted successfully.";
|
|
29
|
+
readonly "backup.exports.list.delete_error": "Could not delete the export job.";
|
|
30
|
+
readonly "backup.exports.list.download_error": "Could not download the export file.";
|
|
31
|
+
readonly "backup.exports.create.title": "New export";
|
|
32
|
+
readonly "backup.exports.create.description": "Configure and start a new data export job.";
|
|
33
|
+
readonly "backup.exports.create.format_label": "Export format";
|
|
34
|
+
readonly "backup.exports.create.scope_label": "Export scope";
|
|
35
|
+
readonly "backup.exports.create.attachments_label": "Include attachments";
|
|
36
|
+
readonly "backup.exports.create.format_csv_zip": "CSV (Portability)";
|
|
37
|
+
readonly "backup.exports.create.format_csv_zip_hint": "CSV files in ZIP. Best for migration, compliance (LGPD/GDPR), and BI tools.";
|
|
38
|
+
readonly "backup.exports.create.format_sql_dump_zip": "SQL Dump (Technical Restore)";
|
|
39
|
+
readonly "backup.exports.create.format_sql_dump_zip_hint": "SQL dump in ZIP. Best for disaster recovery and faithful restoration.";
|
|
40
|
+
readonly "backup.exports.create.scope_domain": "Business data";
|
|
41
|
+
readonly "backup.exports.create.scope_domain_hint": "Exports business entities only (recommended).";
|
|
42
|
+
readonly "backup.exports.create.scope_raw": "Raw database tables";
|
|
43
|
+
readonly "backup.exports.create.scope_raw_hint": "Exports all tables. For advanced users only.";
|
|
44
|
+
readonly "backup.exports.create.scope_custom": "Custom selection";
|
|
45
|
+
readonly "backup.exports.create.scope_custom_hint": "Select specific modules to export.";
|
|
46
|
+
readonly "backup.exports.create.submit": "Start export";
|
|
47
|
+
readonly "backup.exports.create.success": "Export job created successfully.";
|
|
48
|
+
readonly "backup.exports.create.error": "Could not create the export job.";
|
|
49
|
+
readonly "backup.exports.status.REQUESTED": "Requested";
|
|
50
|
+
readonly "backup.exports.status.QUEUED": "Queued";
|
|
51
|
+
readonly "backup.exports.status.RUNNING": "Running";
|
|
52
|
+
readonly "backup.exports.status.DONE": "Ready";
|
|
53
|
+
readonly "backup.exports.status.DONE_NOTIFIED": "Ready";
|
|
54
|
+
readonly "backup.exports.status.FAILED": "Failed";
|
|
55
|
+
readonly "backup.exports.status.EXPIRED": "Expired";
|
|
56
|
+
readonly "backup.exports.status.CANCELLED": "Cancelled";
|
|
57
|
+
readonly "backup.exports.format.CSV_ZIP": "CSV / ZIP";
|
|
58
|
+
readonly "backup.exports.format.SQL_DUMP_ZIP": "SQL Dump / ZIP";
|
|
59
|
+
readonly "backup.exports.scope.DOMAIN": "Business data";
|
|
60
|
+
readonly "backup.exports.scope.RAW": "Raw tables";
|
|
61
|
+
readonly "backup.exports.scope.CUSTOM": "Custom";
|
|
62
|
+
};
|
|
63
|
+
readonly es: {
|
|
64
|
+
readonly "backup.common.module_name": "Exportaciones";
|
|
65
|
+
readonly "backup.common.loading": "Cargando...";
|
|
66
|
+
readonly "backup.common.actions": "Acciones";
|
|
67
|
+
readonly "backup.common.cancel": "Cancelar";
|
|
68
|
+
readonly "backup.common.confirm": "Confirmar";
|
|
69
|
+
readonly "backup.common.server_connection_error": "Error al conectar con el servidor";
|
|
70
|
+
readonly "backup.exports.list.title": "Exportaciones de datos";
|
|
71
|
+
readonly "backup.exports.list.description": "Crea y gestiona jobs de exportacion de datos del tenant.";
|
|
72
|
+
readonly "backup.exports.list.new": "Nueva exportacion";
|
|
73
|
+
readonly "backup.exports.list.empty": "No se encontraron jobs de exportacion.";
|
|
74
|
+
readonly "backup.exports.list.action.download": "Descargar";
|
|
75
|
+
readonly "backup.exports.list.action.delete": "Eliminar";
|
|
76
|
+
readonly "backup.exports.list.action.cancel": "Cancelar";
|
|
77
|
+
readonly "backup.exports.list.delete_title": "Eliminar exportacion";
|
|
78
|
+
readonly "backup.exports.list.delete_message": "Eliminar o cancelar el job de exportacion seleccionado?";
|
|
79
|
+
readonly "backup.exports.list.delete_success": "Job de exportacion eliminado correctamente.";
|
|
80
|
+
readonly "backup.exports.list.delete_error": "No se pudo eliminar el job de exportacion.";
|
|
81
|
+
readonly "backup.exports.create.title": "Nueva exportacion";
|
|
82
|
+
readonly "backup.exports.create.submit": "Iniciar exportacion";
|
|
83
|
+
readonly "backup.exports.create.success": "Job de exportacion creado correctamente.";
|
|
84
|
+
readonly "backup.exports.create.error": "No se pudo crear el job de exportacion.";
|
|
85
|
+
readonly "backup.exports.status.REQUESTED": "Solicitado";
|
|
86
|
+
readonly "backup.exports.status.QUEUED": "En cola";
|
|
87
|
+
readonly "backup.exports.status.RUNNING": "En progreso";
|
|
88
|
+
readonly "backup.exports.status.DONE": "Listo";
|
|
89
|
+
readonly "backup.exports.status.DONE_NOTIFIED": "Listo";
|
|
90
|
+
readonly "backup.exports.status.FAILED": "Fallido";
|
|
91
|
+
readonly "backup.exports.status.EXPIRED": "Expirado";
|
|
92
|
+
readonly "backup.exports.status.CANCELLED": "Cancelado";
|
|
93
|
+
readonly "backup.common.refresh": "Refresh";
|
|
94
|
+
readonly "backup.exports.list.column.job_id": "Job ID";
|
|
95
|
+
readonly "backup.exports.list.column.format": "Format";
|
|
96
|
+
readonly "backup.exports.list.column.scope": "Scope";
|
|
97
|
+
readonly "backup.exports.list.column.status": "Status";
|
|
98
|
+
readonly "backup.exports.list.column.progress": "Progress";
|
|
99
|
+
readonly "backup.exports.list.column.created_at": "Created at";
|
|
100
|
+
readonly "backup.exports.list.column.finished_at": "Finished at";
|
|
101
|
+
readonly "backup.exports.list.column.size": "Size";
|
|
102
|
+
readonly "backup.exports.list.load_error": "Could not load export jobs.";
|
|
103
|
+
readonly "backup.exports.list.download_error": "Could not download the export file.";
|
|
104
|
+
readonly "backup.exports.create.description": "Configure and start a new data export job.";
|
|
105
|
+
readonly "backup.exports.create.format_label": "Export format";
|
|
106
|
+
readonly "backup.exports.create.scope_label": "Export scope";
|
|
107
|
+
readonly "backup.exports.create.attachments_label": "Include attachments";
|
|
108
|
+
readonly "backup.exports.create.format_csv_zip": "CSV (Portability)";
|
|
109
|
+
readonly "backup.exports.create.format_csv_zip_hint": "CSV files in ZIP. Best for migration, compliance (LGPD/GDPR), and BI tools.";
|
|
110
|
+
readonly "backup.exports.create.format_sql_dump_zip": "SQL Dump (Technical Restore)";
|
|
111
|
+
readonly "backup.exports.create.format_sql_dump_zip_hint": "SQL dump in ZIP. Best for disaster recovery and faithful restoration.";
|
|
112
|
+
readonly "backup.exports.create.scope_domain": "Business data";
|
|
113
|
+
readonly "backup.exports.create.scope_domain_hint": "Exports business entities only (recommended).";
|
|
114
|
+
readonly "backup.exports.create.scope_raw": "Raw database tables";
|
|
115
|
+
readonly "backup.exports.create.scope_raw_hint": "Exports all tables. For advanced users only.";
|
|
116
|
+
readonly "backup.exports.create.scope_custom": "Custom selection";
|
|
117
|
+
readonly "backup.exports.create.scope_custom_hint": "Select specific modules to export.";
|
|
118
|
+
readonly "backup.exports.format.CSV_ZIP": "CSV / ZIP";
|
|
119
|
+
readonly "backup.exports.format.SQL_DUMP_ZIP": "SQL Dump / ZIP";
|
|
120
|
+
readonly "backup.exports.scope.DOMAIN": "Business data";
|
|
121
|
+
readonly "backup.exports.scope.RAW": "Raw tables";
|
|
122
|
+
readonly "backup.exports.scope.CUSTOM": "Custom";
|
|
123
|
+
};
|
|
124
|
+
readonly fr: {
|
|
125
|
+
readonly "backup.common.module_name": "Exportations";
|
|
126
|
+
readonly "backup.common.loading": "Chargement...";
|
|
127
|
+
readonly "backup.common.actions": "Actions";
|
|
128
|
+
readonly "backup.common.cancel": "Annuler";
|
|
129
|
+
readonly "backup.common.confirm": "Confirmer";
|
|
130
|
+
readonly "backup.common.server_connection_error": "Erreur de connexion au serveur";
|
|
131
|
+
readonly "backup.exports.list.title": "Exportations de donnees";
|
|
132
|
+
readonly "backup.exports.list.description": "Creez et gerez les jobs d exportation des donnees du tenant.";
|
|
133
|
+
readonly "backup.exports.list.new": "Nouvelle exportation";
|
|
134
|
+
readonly "backup.exports.list.empty": "Aucun job d exportation trouve.";
|
|
135
|
+
readonly "backup.exports.list.action.download": "Telecharger";
|
|
136
|
+
readonly "backup.exports.list.action.delete": "Supprimer";
|
|
137
|
+
readonly "backup.exports.list.action.cancel": "Annuler";
|
|
138
|
+
readonly "backup.exports.list.delete_title": "Supprimer l exportation";
|
|
139
|
+
readonly "backup.exports.list.delete_message": "Supprimer ou annuler le job d exportation selectionne ?";
|
|
140
|
+
readonly "backup.exports.list.delete_success": "Job d exportation supprime avec succes.";
|
|
141
|
+
readonly "backup.exports.list.delete_error": "Impossible de supprimer le job d exportation.";
|
|
142
|
+
readonly "backup.exports.create.title": "Nouvelle exportation";
|
|
143
|
+
readonly "backup.exports.create.submit": "Demarrer l exportation";
|
|
144
|
+
readonly "backup.exports.create.success": "Job d exportation cree avec succes.";
|
|
145
|
+
readonly "backup.exports.create.error": "Impossible de creer le job d exportation.";
|
|
146
|
+
readonly "backup.exports.status.REQUESTED": "Demande";
|
|
147
|
+
readonly "backup.exports.status.QUEUED": "En attente";
|
|
148
|
+
readonly "backup.exports.status.RUNNING": "En cours";
|
|
149
|
+
readonly "backup.exports.status.DONE": "Pret";
|
|
150
|
+
readonly "backup.exports.status.DONE_NOTIFIED": "Pret";
|
|
151
|
+
readonly "backup.exports.status.FAILED": "Echoue";
|
|
152
|
+
readonly "backup.exports.status.EXPIRED": "Expire";
|
|
153
|
+
readonly "backup.exports.status.CANCELLED": "Annule";
|
|
154
|
+
readonly "backup.common.refresh": "Refresh";
|
|
155
|
+
readonly "backup.exports.list.column.job_id": "Job ID";
|
|
156
|
+
readonly "backup.exports.list.column.format": "Format";
|
|
157
|
+
readonly "backup.exports.list.column.scope": "Scope";
|
|
158
|
+
readonly "backup.exports.list.column.status": "Status";
|
|
159
|
+
readonly "backup.exports.list.column.progress": "Progress";
|
|
160
|
+
readonly "backup.exports.list.column.created_at": "Created at";
|
|
161
|
+
readonly "backup.exports.list.column.finished_at": "Finished at";
|
|
162
|
+
readonly "backup.exports.list.column.size": "Size";
|
|
163
|
+
readonly "backup.exports.list.load_error": "Could not load export jobs.";
|
|
164
|
+
readonly "backup.exports.list.download_error": "Could not download the export file.";
|
|
165
|
+
readonly "backup.exports.create.description": "Configure and start a new data export job.";
|
|
166
|
+
readonly "backup.exports.create.format_label": "Export format";
|
|
167
|
+
readonly "backup.exports.create.scope_label": "Export scope";
|
|
168
|
+
readonly "backup.exports.create.attachments_label": "Include attachments";
|
|
169
|
+
readonly "backup.exports.create.format_csv_zip": "CSV (Portability)";
|
|
170
|
+
readonly "backup.exports.create.format_csv_zip_hint": "CSV files in ZIP. Best for migration, compliance (LGPD/GDPR), and BI tools.";
|
|
171
|
+
readonly "backup.exports.create.format_sql_dump_zip": "SQL Dump (Technical Restore)";
|
|
172
|
+
readonly "backup.exports.create.format_sql_dump_zip_hint": "SQL dump in ZIP. Best for disaster recovery and faithful restoration.";
|
|
173
|
+
readonly "backup.exports.create.scope_domain": "Business data";
|
|
174
|
+
readonly "backup.exports.create.scope_domain_hint": "Exports business entities only (recommended).";
|
|
175
|
+
readonly "backup.exports.create.scope_raw": "Raw database tables";
|
|
176
|
+
readonly "backup.exports.create.scope_raw_hint": "Exports all tables. For advanced users only.";
|
|
177
|
+
readonly "backup.exports.create.scope_custom": "Custom selection";
|
|
178
|
+
readonly "backup.exports.create.scope_custom_hint": "Select specific modules to export.";
|
|
179
|
+
readonly "backup.exports.format.CSV_ZIP": "CSV / ZIP";
|
|
180
|
+
readonly "backup.exports.format.SQL_DUMP_ZIP": "SQL Dump / ZIP";
|
|
181
|
+
readonly "backup.exports.scope.DOMAIN": "Business data";
|
|
182
|
+
readonly "backup.exports.scope.RAW": "Raw tables";
|
|
183
|
+
readonly "backup.exports.scope.CUSTOM": "Custom";
|
|
184
|
+
};
|
|
185
|
+
readonly "pt-BR": {
|
|
186
|
+
readonly "backup.common.module_name": "Exportacoes";
|
|
187
|
+
readonly "backup.common.loading": "Carregando...";
|
|
188
|
+
readonly "backup.common.actions": "Acoes";
|
|
189
|
+
readonly "backup.common.cancel": "Cancelar";
|
|
190
|
+
readonly "backup.common.confirm": "Confirmar";
|
|
191
|
+
readonly "backup.common.refresh": "Atualizar";
|
|
192
|
+
readonly "backup.common.server_connection_error": "Erro ao conectar ao servidor";
|
|
193
|
+
readonly "backup.exports.list.title": "Exportacoes de dados";
|
|
194
|
+
readonly "backup.exports.list.description": "Crie e gerencie jobs de exportacao de dados do tenant.";
|
|
195
|
+
readonly "backup.exports.list.new": "Nova exportacao";
|
|
196
|
+
readonly "backup.exports.list.empty": "Nenhum job de exportacao encontrado.";
|
|
197
|
+
readonly "backup.exports.list.column.job_id": "ID do job";
|
|
198
|
+
readonly "backup.exports.list.column.format": "Formato";
|
|
199
|
+
readonly "backup.exports.list.column.scope": "Escopo";
|
|
200
|
+
readonly "backup.exports.list.column.status": "Status";
|
|
201
|
+
readonly "backup.exports.list.column.progress": "Progresso";
|
|
202
|
+
readonly "backup.exports.list.column.created_at": "Criado em";
|
|
203
|
+
readonly "backup.exports.list.column.finished_at": "Finalizado em";
|
|
204
|
+
readonly "backup.exports.list.column.size": "Tamanho";
|
|
205
|
+
readonly "backup.exports.list.action.download": "Baixar";
|
|
206
|
+
readonly "backup.exports.list.action.delete": "Excluir";
|
|
207
|
+
readonly "backup.exports.list.action.cancel": "Cancelar";
|
|
208
|
+
readonly "backup.exports.list.load_error": "Nao foi possivel carregar os jobs de exportacao.";
|
|
209
|
+
readonly "backup.exports.list.delete_title": "Excluir exportacao";
|
|
210
|
+
readonly "backup.exports.list.delete_message": "Excluir ou cancelar o job de exportacao selecionado?";
|
|
211
|
+
readonly "backup.exports.list.delete_success": "Job de exportacao excluido com sucesso.";
|
|
212
|
+
readonly "backup.exports.list.delete_error": "Nao foi possivel excluir o job de exportacao.";
|
|
213
|
+
readonly "backup.exports.list.download_error": "Nao foi possivel baixar o arquivo de exportacao.";
|
|
214
|
+
readonly "backup.exports.create.title": "Nova exportacao";
|
|
215
|
+
readonly "backup.exports.create.description": "Configure e inicie um novo job de exportacao de dados.";
|
|
216
|
+
readonly "backup.exports.create.format_label": "Formato de exportacao";
|
|
217
|
+
readonly "backup.exports.create.scope_label": "Escopo de exportacao";
|
|
218
|
+
readonly "backup.exports.create.attachments_label": "Incluir anexos";
|
|
219
|
+
readonly "backup.exports.create.format_csv_zip": "CSV (Portabilidade)";
|
|
220
|
+
readonly "backup.exports.create.format_csv_zip_hint": "Arquivos CSV em ZIP. Ideal para migracao, conformidade (LGPD/GDPR) e ferramentas de BI.";
|
|
221
|
+
readonly "backup.exports.create.format_sql_dump_zip": "SQL Dump (Restauracao tecnica)";
|
|
222
|
+
readonly "backup.exports.create.format_sql_dump_zip_hint": "Dump SQL em ZIP. Ideal para recuperacao de desastre e restauracao fiel.";
|
|
223
|
+
readonly "backup.exports.create.scope_domain": "Dados de negocio";
|
|
224
|
+
readonly "backup.exports.create.scope_domain_hint": "Exporta apenas entidades de negocio (recomendado).";
|
|
225
|
+
readonly "backup.exports.create.scope_raw": "Tabelas brutas do banco";
|
|
226
|
+
readonly "backup.exports.create.scope_raw_hint": "Exporta todas as tabelas. Somente para usuarios avancados.";
|
|
227
|
+
readonly "backup.exports.create.scope_custom": "Selecao personalizada";
|
|
228
|
+
readonly "backup.exports.create.scope_custom_hint": "Selecione modulos especificos para exportar.";
|
|
229
|
+
readonly "backup.exports.create.submit": "Iniciar exportacao";
|
|
230
|
+
readonly "backup.exports.create.success": "Job de exportacao criado com sucesso.";
|
|
231
|
+
readonly "backup.exports.create.error": "Nao foi possivel criar o job de exportacao.";
|
|
232
|
+
readonly "backup.exports.status.REQUESTED": "Solicitado";
|
|
233
|
+
readonly "backup.exports.status.QUEUED": "Na fila";
|
|
234
|
+
readonly "backup.exports.status.RUNNING": "Em andamento";
|
|
235
|
+
readonly "backup.exports.status.DONE": "Pronto";
|
|
236
|
+
readonly "backup.exports.status.DONE_NOTIFIED": "Pronto";
|
|
237
|
+
readonly "backup.exports.status.FAILED": "Falhou";
|
|
238
|
+
readonly "backup.exports.status.EXPIRED": "Expirado";
|
|
239
|
+
readonly "backup.exports.status.CANCELLED": "Cancelado";
|
|
240
|
+
readonly "backup.exports.format.CSV_ZIP": "CSV / ZIP";
|
|
241
|
+
readonly "backup.exports.format.SQL_DUMP_ZIP": "SQL Dump / ZIP";
|
|
242
|
+
readonly "backup.exports.scope.DOMAIN": "Dados de negocio";
|
|
243
|
+
readonly "backup.exports.scope.RAW": "Tabelas brutas";
|
|
244
|
+
readonly "backup.exports.scope.CUSTOM": "Personalizado";
|
|
245
|
+
};
|
|
246
|
+
readonly "pt-PT": {
|
|
247
|
+
readonly "backup.exports.list.title": "Exportacoes de dados";
|
|
248
|
+
readonly "backup.exports.list.new": "Nova exportacao";
|
|
249
|
+
readonly "backup.exports.list.empty": "Nenhum job de exportacao encontrado.";
|
|
250
|
+
readonly "backup.exports.list.action.download": "Transferir";
|
|
251
|
+
readonly "backup.exports.create.submit": "Iniciar exportacao";
|
|
252
|
+
readonly "backup.common.module_name": "Exportacoes";
|
|
253
|
+
readonly "backup.common.loading": "Carregando...";
|
|
254
|
+
readonly "backup.common.actions": "Acoes";
|
|
255
|
+
readonly "backup.common.cancel": "Cancelar";
|
|
256
|
+
readonly "backup.common.confirm": "Confirmar";
|
|
257
|
+
readonly "backup.common.refresh": "Atualizar";
|
|
258
|
+
readonly "backup.common.server_connection_error": "Erro ao conectar ao servidor";
|
|
259
|
+
readonly "backup.exports.list.description": "Crie e gerencie jobs de exportacao de dados do tenant.";
|
|
260
|
+
readonly "backup.exports.list.column.job_id": "ID do job";
|
|
261
|
+
readonly "backup.exports.list.column.format": "Formato";
|
|
262
|
+
readonly "backup.exports.list.column.scope": "Escopo";
|
|
263
|
+
readonly "backup.exports.list.column.status": "Status";
|
|
264
|
+
readonly "backup.exports.list.column.progress": "Progresso";
|
|
265
|
+
readonly "backup.exports.list.column.created_at": "Criado em";
|
|
266
|
+
readonly "backup.exports.list.column.finished_at": "Finalizado em";
|
|
267
|
+
readonly "backup.exports.list.column.size": "Tamanho";
|
|
268
|
+
readonly "backup.exports.list.action.delete": "Excluir";
|
|
269
|
+
readonly "backup.exports.list.action.cancel": "Cancelar";
|
|
270
|
+
readonly "backup.exports.list.load_error": "Nao foi possivel carregar os jobs de exportacao.";
|
|
271
|
+
readonly "backup.exports.list.delete_title": "Excluir exportacao";
|
|
272
|
+
readonly "backup.exports.list.delete_message": "Excluir ou cancelar o job de exportacao selecionado?";
|
|
273
|
+
readonly "backup.exports.list.delete_success": "Job de exportacao excluido com sucesso.";
|
|
274
|
+
readonly "backup.exports.list.delete_error": "Nao foi possivel excluir o job de exportacao.";
|
|
275
|
+
readonly "backup.exports.list.download_error": "Nao foi possivel baixar o arquivo de exportacao.";
|
|
276
|
+
readonly "backup.exports.create.title": "Nova exportacao";
|
|
277
|
+
readonly "backup.exports.create.description": "Configure e inicie um novo job de exportacao de dados.";
|
|
278
|
+
readonly "backup.exports.create.format_label": "Formato de exportacao";
|
|
279
|
+
readonly "backup.exports.create.scope_label": "Escopo de exportacao";
|
|
280
|
+
readonly "backup.exports.create.attachments_label": "Incluir anexos";
|
|
281
|
+
readonly "backup.exports.create.format_csv_zip": "CSV (Portabilidade)";
|
|
282
|
+
readonly "backup.exports.create.format_csv_zip_hint": "Arquivos CSV em ZIP. Ideal para migracao, conformidade (LGPD/GDPR) e ferramentas de BI.";
|
|
283
|
+
readonly "backup.exports.create.format_sql_dump_zip": "SQL Dump (Restauracao tecnica)";
|
|
284
|
+
readonly "backup.exports.create.format_sql_dump_zip_hint": "Dump SQL em ZIP. Ideal para recuperacao de desastre e restauracao fiel.";
|
|
285
|
+
readonly "backup.exports.create.scope_domain": "Dados de negocio";
|
|
286
|
+
readonly "backup.exports.create.scope_domain_hint": "Exporta apenas entidades de negocio (recomendado).";
|
|
287
|
+
readonly "backup.exports.create.scope_raw": "Tabelas brutas do banco";
|
|
288
|
+
readonly "backup.exports.create.scope_raw_hint": "Exporta todas as tabelas. Somente para usuarios avancados.";
|
|
289
|
+
readonly "backup.exports.create.scope_custom": "Selecao personalizada";
|
|
290
|
+
readonly "backup.exports.create.scope_custom_hint": "Selecione modulos especificos para exportar.";
|
|
291
|
+
readonly "backup.exports.create.success": "Job de exportacao criado com sucesso.";
|
|
292
|
+
readonly "backup.exports.create.error": "Nao foi possivel criar o job de exportacao.";
|
|
293
|
+
readonly "backup.exports.status.REQUESTED": "Solicitado";
|
|
294
|
+
readonly "backup.exports.status.QUEUED": "Na fila";
|
|
295
|
+
readonly "backup.exports.status.RUNNING": "Em andamento";
|
|
296
|
+
readonly "backup.exports.status.DONE": "Pronto";
|
|
297
|
+
readonly "backup.exports.status.DONE_NOTIFIED": "Pronto";
|
|
298
|
+
readonly "backup.exports.status.FAILED": "Falhou";
|
|
299
|
+
readonly "backup.exports.status.EXPIRED": "Expirado";
|
|
300
|
+
readonly "backup.exports.status.CANCELLED": "Cancelado";
|
|
301
|
+
readonly "backup.exports.format.CSV_ZIP": "CSV / ZIP";
|
|
302
|
+
readonly "backup.exports.format.SQL_DUMP_ZIP": "SQL Dump / ZIP";
|
|
303
|
+
readonly "backup.exports.scope.DOMAIN": "Dados de negocio";
|
|
304
|
+
readonly "backup.exports.scope.RAW": "Tabelas brutas";
|
|
305
|
+
readonly "backup.exports.scope.CUSTOM": "Personalizado";
|
|
306
|
+
};
|
|
307
|
+
};
|
|
308
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAyNA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMjB,CAAC"}
|