@trieb.work/payload-plugin-backup-mongodb 0.1.1
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 +319 -0
- package/dist/backup-dashboard.css +1132 -0
- package/dist/client.d.ts +3 -0
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -0
- package/dist/collections/BackupSettings.d.ts +6 -0
- package/dist/collections/BackupSettings.js +91 -0
- package/dist/collections/BackupSettings.js.map +1 -0
- package/dist/collections/BackupTasks.d.ts +2 -0
- package/dist/collections/BackupTasks.js +56 -0
- package/dist/collections/BackupTasks.js.map +1 -0
- package/dist/components/BackupDashboard/BackupItemActions.client.d.ts +7 -0
- package/dist/components/BackupDashboard/BackupItemActions.client.js +90 -0
- package/dist/components/BackupDashboard/BackupItemActions.client.js.map +1 -0
- package/dist/components/BackupDashboard/BackupListCollapsible.client.d.ts +16 -0
- package/dist/components/BackupDashboard/BackupListCollapsible.client.js +597 -0
- package/dist/components/BackupDashboard/BackupListCollapsible.client.js.map +1 -0
- package/dist/components/BackupDashboard/BackupSettingsModal.client.d.ts +2 -0
- package/dist/components/BackupDashboard/BackupSettingsModal.client.js +939 -0
- package/dist/components/BackupDashboard/BackupSettingsModal.client.js.map +1 -0
- package/dist/components/BackupDashboard/CollectionBackupPreviewBody.client.d.ts +18 -0
- package/dist/components/BackupDashboard/CollectionBackupPreviewBody.client.js +267 -0
- package/dist/components/BackupDashboard/CollectionBackupPreviewBody.client.js.map +1 -0
- package/dist/components/BackupDashboard/ManualBackupDialog.client.d.ts +1 -0
- package/dist/components/BackupDashboard/ManualBackupDialog.client.js +276 -0
- package/dist/components/BackupDashboard/ManualBackupDialog.client.js.map +1 -0
- package/dist/components/BackupDashboard/RestoreBackupDialog.client.d.ts +6 -0
- package/dist/components/BackupDashboard/RestoreBackupDialog.client.js +551 -0
- package/dist/components/BackupDashboard/RestoreBackupDialog.client.js.map +1 -0
- package/dist/components/BackupDashboard/TaskActionButton.client.d.ts +29 -0
- package/dist/components/BackupDashboard/TaskActionButton.client.js +240 -0
- package/dist/components/BackupDashboard/TaskActionButton.client.js.map +1 -0
- package/dist/components/BackupDashboard/backupDashboardInlineCss.d.ts +1 -0
- package/dist/components/BackupDashboard/backupDashboardInlineCss.js +3 -0
- package/dist/components/BackupDashboard/backupDashboardInlineCss.js.map +1 -0
- package/dist/components/BackupDashboard/index.client.d.ts +8 -0
- package/dist/components/BackupDashboard/index.client.js +9 -0
- package/dist/components/BackupDashboard/index.client.js.map +1 -0
- package/dist/components/BackupDashboard/index.d.ts +8 -0
- package/dist/components/BackupDashboard/index.js +196 -0
- package/dist/components/BackupDashboard/index.js.map +1 -0
- package/dist/core/archive.d.ts +8 -0
- package/dist/core/archive.js +47 -0
- package/dist/core/archive.js.map +1 -0
- package/dist/core/backup.d.ts +41 -0
- package/dist/core/backup.js +188 -0
- package/dist/core/backup.js.map +1 -0
- package/dist/core/backupBlobIO.d.ts +54 -0
- package/dist/core/backupBlobIO.js +179 -0
- package/dist/core/backupBlobIO.js.map +1 -0
- package/dist/core/backupBlobTransfer.d.ts +29 -0
- package/dist/core/backupBlobTransfer.js +85 -0
- package/dist/core/backupBlobTransfer.js.map +1 -0
- package/dist/core/backupSettings.d.ts +35 -0
- package/dist/core/backupSettings.js +95 -0
- package/dist/core/backupSettings.js.map +1 -0
- package/dist/core/backupSourcePreview.d.ts +10 -0
- package/dist/core/backupSourcePreview.js +33 -0
- package/dist/core/backupSourcePreview.js.map +1 -0
- package/dist/core/blobTokenValidate.d.ts +14 -0
- package/dist/core/blobTokenValidate.js +75 -0
- package/dist/core/blobTokenValidate.js.map +1 -0
- package/dist/core/db.d.ts +24 -0
- package/dist/core/db.js +12 -0
- package/dist/core/db.js.map +1 -0
- package/dist/core/restore.d.ts +27 -0
- package/dist/core/restore.js +199 -0
- package/dist/core/restore.js.map +1 -0
- package/dist/core/restorePreview.d.ts +64 -0
- package/dist/core/restorePreview.js +266 -0
- package/dist/core/restorePreview.js.map +1 -0
- package/dist/core/taskProgress.d.ts +26 -0
- package/dist/core/taskProgress.js +73 -0
- package/dist/core/taskProgress.js.map +1 -0
- package/dist/core/vercelBackupCron.d.ts +8 -0
- package/dist/core/vercelBackupCron.js +38 -0
- package/dist/core/vercelBackupCron.js.map +1 -0
- package/dist/endpoints/createBackupEndpoints.d.ts +1 -0
- package/dist/endpoints/createBackupEndpoints.js +3 -0
- package/dist/endpoints/createBackupEndpoints.js.map +1 -0
- package/dist/endpoints/index.d.ts +3 -0
- package/dist/endpoints/index.js +34 -0
- package/dist/endpoints/index.js.map +1 -0
- package/dist/endpoints/paths/admin-backup-download.d.ts +8 -0
- package/dist/endpoints/paths/admin-backup-download.js +72 -0
- package/dist/endpoints/paths/admin-backup-download.js.map +1 -0
- package/dist/endpoints/paths/admin-delete.d.ts +3 -0
- package/dist/endpoints/paths/admin-delete.js +55 -0
- package/dist/endpoints/paths/admin-delete.js.map +1 -0
- package/dist/endpoints/paths/admin-manual.d.ts +3 -0
- package/dist/endpoints/paths/admin-manual.js +61 -0
- package/dist/endpoints/paths/admin-manual.js.map +1 -0
- package/dist/endpoints/paths/admin-preview.d.ts +6 -0
- package/dist/endpoints/paths/admin-preview.js +102 -0
- package/dist/endpoints/paths/admin-preview.js.map +1 -0
- package/dist/endpoints/paths/admin-restore.d.ts +3 -0
- package/dist/endpoints/paths/admin-restore.js +74 -0
- package/dist/endpoints/paths/admin-restore.js.map +1 -0
- package/dist/endpoints/paths/admin-seed.d.ts +3 -0
- package/dist/endpoints/paths/admin-seed.js +47 -0
- package/dist/endpoints/paths/admin-seed.js.map +1 -0
- package/dist/endpoints/paths/admin-settings.d.ts +3 -0
- package/dist/endpoints/paths/admin-settings.js +230 -0
- package/dist/endpoints/paths/admin-settings.js.map +1 -0
- package/dist/endpoints/paths/admin-task.d.ts +3 -0
- package/dist/endpoints/paths/admin-task.js +34 -0
- package/dist/endpoints/paths/admin-task.js.map +1 -0
- package/dist/endpoints/paths/admin-validate-blob-token.d.ts +8 -0
- package/dist/endpoints/paths/admin-validate-blob-token.js +26 -0
- package/dist/endpoints/paths/admin-validate-blob-token.js.map +1 -0
- package/dist/endpoints/paths/cron-list.d.ts +2 -0
- package/dist/endpoints/paths/cron-list.js +33 -0
- package/dist/endpoints/paths/cron-list.js.map +1 -0
- package/dist/endpoints/paths/cron-restore.d.ts +2 -0
- package/dist/endpoints/paths/cron-restore.js +61 -0
- package/dist/endpoints/paths/cron-restore.js.map +1 -0
- package/dist/endpoints/paths/cron-run.d.ts +3 -0
- package/dist/endpoints/paths/cron-run.js +45 -0
- package/dist/endpoints/paths/cron-run.js.map +1 -0
- package/dist/endpoints/shared.d.ts +13 -0
- package/dist/endpoints/shared.js +58 -0
- package/dist/endpoints/shared.js.map +1 -0
- package/dist/exports/client.d.ts +1 -0
- package/dist/exports/client.js +3 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/exports/rsc.d.ts +1 -0
- package/dist/exports/rsc.js +3 -0
- package/dist/exports/rsc.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +3 -0
- package/dist/plugin.js +82 -0
- package/dist/plugin.js.map +1 -0
- package/dist/publicApiPaths.d.ts +19 -0
- package/dist/publicApiPaths.js +20 -0
- package/dist/publicApiPaths.js.map +1 -0
- package/dist/types.d.ts +21 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/backupSelection.d.ts +6 -0
- package/dist/utils/backupSelection.js +16 -0
- package/dist/utils/backupSelection.js.map +1 -0
- package/dist/utils/blobName.d.ts +32 -0
- package/dist/utils/blobName.js +99 -0
- package/dist/utils/blobName.js.map +1 -0
- package/dist/utils/dashboardRoleAccess.d.ts +23 -0
- package/dist/utils/dashboardRoleAccess.js +64 -0
- package/dist/utils/dashboardRoleAccess.js.map +1 -0
- package/dist/utils/dialogBackdrop.d.ts +9 -0
- package/dist/utils/dialogBackdrop.js +17 -0
- package/dist/utils/dialogBackdrop.js.map +1 -0
- package/dist/utils/formatBytes.d.ts +2 -0
- package/dist/utils/formatBytes.js +20 -0
- package/dist/utils/formatBytes.js.map +1 -0
- package/dist/utils/hostname.d.ts +2 -0
- package/dist/utils/hostname.js +17 -0
- package/dist/utils/hostname.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/maskBlobToken.d.ts +11 -0
- package/dist/utils/maskBlobToken.js +42 -0
- package/dist/utils/maskBlobToken.js.map +1 -0
- package/package.json +140 -0
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { BackupListCollapsible, BackupSettingsModal, ManualBackupDialog, RestoreBackupDialog, TaskActionButton, } from './components/BackupDashboard/index.client';
|
|
2
|
+
export type { BackupListCollapsibleProps, SerializableBackupBlob, } from './components/BackupDashboard/index.client';
|
|
3
|
+
export type { RestorePreviewGroup, RestorePreviewResponse } from './core/restorePreview';
|
package/dist/client.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/client.ts"],"sourcesContent":["export {\n BackupListCollapsible,\n BackupSettingsModal,\n ManualBackupDialog,\n RestoreBackupDialog,\n TaskActionButton,\n} from './components/BackupDashboard/index.client'\nexport type {\n BackupListCollapsibleProps,\n SerializableBackupBlob,\n} from './components/BackupDashboard/index.client'\nexport type { RestorePreviewGroup, RestorePreviewResponse } from './core/restorePreview'\n"],"names":["BackupListCollapsible","BackupSettingsModal","ManualBackupDialog","RestoreBackupDialog","TaskActionButton"],"mappings":"AAAA,SACEA,qBAAqB,EACrBC,mBAAmB,EACnBC,kBAAkB,EAClBC,mBAAmB,EACnBC,gBAAgB,QACX,4CAA2C"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CollectionConfig } from 'payload';
|
|
2
|
+
/**
|
|
3
|
+
* Singleton-style settings for scheduled (cron) backups. Hidden from the Payload nav like
|
|
4
|
+
* `backup-tasks`; the backup dashboard reads/writes via custom admin endpoints.
|
|
5
|
+
*/
|
|
6
|
+
export declare const BackupSettingsCollection: CollectionConfig;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Singleton-style settings for scheduled (cron) backups. Hidden from the Payload nav like
|
|
3
|
+
* `backup-tasks`; the backup dashboard reads/writes via custom admin endpoints.
|
|
4
|
+
*/ export const BackupSettingsCollection = {
|
|
5
|
+
slug: 'backup-settings',
|
|
6
|
+
access: {
|
|
7
|
+
create: ()=>false,
|
|
8
|
+
delete: ()=>false,
|
|
9
|
+
read: ()=>false,
|
|
10
|
+
update: ()=>false
|
|
11
|
+
},
|
|
12
|
+
admin: {
|
|
13
|
+
defaultColumns: [
|
|
14
|
+
'backupsToKeep',
|
|
15
|
+
'updatedAt'
|
|
16
|
+
],
|
|
17
|
+
hidden: true
|
|
18
|
+
},
|
|
19
|
+
fields: [
|
|
20
|
+
{
|
|
21
|
+
name: 'backupsToKeep',
|
|
22
|
+
type: 'number',
|
|
23
|
+
admin: {
|
|
24
|
+
description: 'How many automatic (cron) backups to keep in blob storage for this project.'
|
|
25
|
+
},
|
|
26
|
+
defaultValue: 10,
|
|
27
|
+
max: 365,
|
|
28
|
+
min: 1,
|
|
29
|
+
required: true
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'includeMediaForCron',
|
|
33
|
+
type: 'checkbox',
|
|
34
|
+
defaultValue: true,
|
|
35
|
+
label: 'Include media blobs in cron backups'
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'backupBlobReadWriteToken',
|
|
39
|
+
type: 'text',
|
|
40
|
+
admin: {
|
|
41
|
+
description: 'If set, backup routes use this store instead of BLOB_READ_WRITE_TOKEN. Leave empty for backups on the default token.'
|
|
42
|
+
},
|
|
43
|
+
label: 'Backup Vercel Blob read/write token (optional override)'
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'backupBlobAccess',
|
|
47
|
+
type: 'select',
|
|
48
|
+
admin: {
|
|
49
|
+
description: 'Populated automatically when the backup token is validated. Controls the access level used when uploading new backup archives.',
|
|
50
|
+
readOnly: true
|
|
51
|
+
},
|
|
52
|
+
label: 'Detected backup blob access level',
|
|
53
|
+
options: [
|
|
54
|
+
{
|
|
55
|
+
label: 'Public',
|
|
56
|
+
value: 'public'
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
label: 'Private',
|
|
60
|
+
value: 'private'
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'skipMongoCollections',
|
|
66
|
+
type: 'array',
|
|
67
|
+
admin: {
|
|
68
|
+
description: 'MongoDB collection names excluded from cron backups (same rules as manual backup skips).'
|
|
69
|
+
},
|
|
70
|
+
fields: [
|
|
71
|
+
{
|
|
72
|
+
name: 'name',
|
|
73
|
+
type: 'text',
|
|
74
|
+
required: true
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
label: 'Mongo collections to skip (cron)',
|
|
78
|
+
labels: {
|
|
79
|
+
plural: 'Collections',
|
|
80
|
+
singular: 'Collection'
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
labels: {
|
|
85
|
+
plural: 'Backup settings',
|
|
86
|
+
singular: 'Backup settings'
|
|
87
|
+
},
|
|
88
|
+
timestamps: true
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=BackupSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/collections/BackupSettings.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\n/**\n * Singleton-style settings for scheduled (cron) backups. Hidden from the Payload nav like\n * `backup-tasks`; the backup dashboard reads/writes via custom admin endpoints.\n */\nexport const BackupSettingsCollection: CollectionConfig = {\n slug: 'backup-settings',\n access: {\n create: () => false,\n delete: () => false,\n read: () => false,\n update: () => false,\n },\n admin: {\n defaultColumns: ['backupsToKeep', 'updatedAt'],\n hidden: true,\n },\n fields: [\n {\n name: 'backupsToKeep',\n type: 'number',\n admin: {\n description: 'How many automatic (cron) backups to keep in blob storage for this project.',\n },\n defaultValue: 10,\n max: 365,\n min: 1,\n required: true,\n },\n {\n name: 'includeMediaForCron',\n type: 'checkbox',\n defaultValue: true,\n label: 'Include media blobs in cron backups',\n },\n {\n name: 'backupBlobReadWriteToken',\n type: 'text',\n admin: {\n description:\n 'If set, backup routes use this store instead of BLOB_READ_WRITE_TOKEN. Leave empty for backups on the default token.',\n },\n label: 'Backup Vercel Blob read/write token (optional override)',\n },\n {\n name: 'backupBlobAccess',\n type: 'select',\n admin: {\n description:\n 'Populated automatically when the backup token is validated. Controls the access level used when uploading new backup archives.',\n readOnly: true,\n },\n label: 'Detected backup blob access level',\n options: [\n { label: 'Public', value: 'public' },\n { label: 'Private', value: 'private' },\n ],\n },\n {\n name: 'skipMongoCollections',\n type: 'array',\n admin: {\n description:\n 'MongoDB collection names excluded from cron backups (same rules as manual backup skips).',\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n },\n ],\n label: 'Mongo collections to skip (cron)',\n labels: { plural: 'Collections', singular: 'Collection' },\n },\n ],\n labels: {\n plural: 'Backup settings',\n singular: 'Backup settings',\n },\n timestamps: true,\n}\n"],"names":["BackupSettingsCollection","slug","access","create","delete","read","update","admin","defaultColumns","hidden","fields","name","type","description","defaultValue","max","min","required","label","readOnly","options","value","labels","plural","singular","timestamps"],"mappings":"AAEA;;;CAGC,GACD,OAAO,MAAMA,2BAA6C;IACxDC,MAAM;IACNC,QAAQ;QACNC,QAAQ,IAAM;QACdC,QAAQ,IAAM;QACdC,MAAM,IAAM;QACZC,QAAQ,IAAM;IAChB;IACAC,OAAO;QACLC,gBAAgB;YAAC;YAAiB;SAAY;QAC9CC,QAAQ;IACV;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNL,OAAO;gBACLM,aAAa;YACf;YACAC,cAAc;YACdC,KAAK;YACLC,KAAK;YACLC,UAAU;QACZ;QACA;YACEN,MAAM;YACNC,MAAM;YACNE,cAAc;YACdI,OAAO;QACT;QACA;YACEP,MAAM;YACNC,MAAM;YACNL,OAAO;gBACLM,aACE;YACJ;YACAK,OAAO;QACT;QACA;YACEP,MAAM;YACNC,MAAM;YACNL,OAAO;gBACLM,aACE;gBACFM,UAAU;YACZ;YACAD,OAAO;YACPE,SAAS;gBACP;oBAAEF,OAAO;oBAAUG,OAAO;gBAAS;gBACnC;oBAAEH,OAAO;oBAAWG,OAAO;gBAAU;aACtC;QACH;QACA;YACEV,MAAM;YACNC,MAAM;YACNL,OAAO;gBACLM,aACE;YACJ;YACAH,QAAQ;gBACN;oBACEC,MAAM;oBACNC,MAAM;oBACNK,UAAU;gBACZ;aACD;YACDC,OAAO;YACPI,QAAQ;gBAAEC,QAAQ;gBAAeC,UAAU;YAAa;QAC1D;KACD;IACDF,QAAQ;QACNC,QAAQ;QACRC,UAAU;IACZ;IACAC,YAAY;AACd,EAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export const BackupTasksCollection = {
|
|
2
|
+
slug: 'backup-tasks',
|
|
3
|
+
access: {
|
|
4
|
+
create: ()=>false,
|
|
5
|
+
delete: ()=>false,
|
|
6
|
+
read: ()=>false,
|
|
7
|
+
update: ()=>false
|
|
8
|
+
},
|
|
9
|
+
admin: {
|
|
10
|
+
hidden: true
|
|
11
|
+
},
|
|
12
|
+
fields: [
|
|
13
|
+
{
|
|
14
|
+
name: 'kind',
|
|
15
|
+
type: 'select',
|
|
16
|
+
options: [
|
|
17
|
+
'backup',
|
|
18
|
+
'restore',
|
|
19
|
+
'seed',
|
|
20
|
+
'delete',
|
|
21
|
+
'blobTransfer'
|
|
22
|
+
],
|
|
23
|
+
required: true
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'status',
|
|
27
|
+
type: 'select',
|
|
28
|
+
options: [
|
|
29
|
+
'queued',
|
|
30
|
+
'running',
|
|
31
|
+
'completed',
|
|
32
|
+
'failed'
|
|
33
|
+
],
|
|
34
|
+
required: true
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'message',
|
|
38
|
+
type: 'text',
|
|
39
|
+
required: true
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'error',
|
|
43
|
+
type: 'text'
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'pollSecret',
|
|
47
|
+
type: 'text',
|
|
48
|
+
admin: {
|
|
49
|
+
hidden: true
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
timestamps: true
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=BackupTasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/collections/BackupTasks.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\nexport const BackupTasksCollection: CollectionConfig = {\n slug: 'backup-tasks',\n access: {\n create: () => false,\n delete: () => false,\n read: () => false,\n update: () => false,\n },\n admin: {\n hidden: true,\n },\n fields: [\n {\n name: 'kind',\n type: 'select',\n options: ['backup', 'restore', 'seed', 'delete', 'blobTransfer'],\n required: true,\n },\n {\n name: 'status',\n type: 'select',\n options: ['queued', 'running', 'completed', 'failed'],\n required: true,\n },\n {\n name: 'message',\n type: 'text',\n required: true,\n },\n {\n name: 'error',\n type: 'text',\n },\n {\n name: 'pollSecret',\n type: 'text',\n admin: {\n hidden: true,\n },\n },\n ],\n timestamps: true,\n}\n"],"names":["BackupTasksCollection","slug","access","create","delete","read","update","admin","hidden","fields","name","type","options","required","timestamps"],"mappings":"AAEA,OAAO,MAAMA,wBAA0C;IACrDC,MAAM;IACNC,QAAQ;QACNC,QAAQ,IAAM;QACdC,QAAQ,IAAM;QACdC,MAAM,IAAM;QACZC,QAAQ,IAAM;IAChB;IACAC,OAAO;QACLC,QAAQ;IACV;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,SAAS;gBAAC;gBAAU;gBAAW;gBAAQ;gBAAU;aAAe;YAChEC,UAAU;QACZ;QACA;YACEH,MAAM;YACNC,MAAM;YACNC,SAAS;gBAAC;gBAAU;gBAAW;gBAAa;aAAS;YACrDC,UAAU;QACZ;QACA;YACEH,MAAM;YACNC,MAAM;YACNE,UAAU;QACZ;QACA;YACEH,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;YACNJ,OAAO;gBACLC,QAAQ;YACV;QACF;KACD;IACDM,YAAY;AACd,EAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Button } from '@payloadcms/ui';
|
|
4
|
+
import { useRef } from 'react';
|
|
5
|
+
import { backupPluginPublicApiPaths } from '../../publicApiPaths';
|
|
6
|
+
import { closeNativeDialogOnBackdropPointer } from '../../utils/dialogBackdrop';
|
|
7
|
+
import { RestoreBackupDialog } from './RestoreBackupDialog.client';
|
|
8
|
+
import { TaskActionButton } from './TaskActionButton.client';
|
|
9
|
+
export const BackupItemActions = ({ downloadUrl, pathname, url })=>{
|
|
10
|
+
const downloadParams = new URLSearchParams({
|
|
11
|
+
pathname
|
|
12
|
+
});
|
|
13
|
+
if (url) {
|
|
14
|
+
downloadParams.set('url', url);
|
|
15
|
+
}
|
|
16
|
+
if (downloadUrl) {
|
|
17
|
+
downloadParams.set('downloadUrl', downloadUrl);
|
|
18
|
+
}
|
|
19
|
+
const downloadHref = `${backupPluginPublicApiPaths.adminBackupDownload}?${downloadParams.toString()}`;
|
|
20
|
+
const deleteDialogRef = useRef(null);
|
|
21
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
22
|
+
className: "backup-item-actions",
|
|
23
|
+
children: [
|
|
24
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
25
|
+
className: "backup-item-actions__buttons",
|
|
26
|
+
children: [
|
|
27
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
28
|
+
buttonStyle: "secondary",
|
|
29
|
+
el: "anchor",
|
|
30
|
+
newTab: true,
|
|
31
|
+
size: "small",
|
|
32
|
+
url: downloadHref,
|
|
33
|
+
children: "Download"
|
|
34
|
+
}),
|
|
35
|
+
/*#__PURE__*/ _jsx(RestoreBackupDialog, {
|
|
36
|
+
downloadUrl: downloadUrl,
|
|
37
|
+
pathname: pathname
|
|
38
|
+
}),
|
|
39
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
40
|
+
buttonStyle: "secondary",
|
|
41
|
+
onClick: ()=>deleteDialogRef.current?.showModal(),
|
|
42
|
+
size: "small",
|
|
43
|
+
children: "Delete"
|
|
44
|
+
})
|
|
45
|
+
]
|
|
46
|
+
}),
|
|
47
|
+
/*#__PURE__*/ _jsxs("dialog", {
|
|
48
|
+
className: "backup-confirm-dialog",
|
|
49
|
+
onMouseDown: (e)=>closeNativeDialogOnBackdropPointer(e, deleteDialogRef),
|
|
50
|
+
ref: deleteDialogRef,
|
|
51
|
+
children: [
|
|
52
|
+
/*#__PURE__*/ _jsx("p", {
|
|
53
|
+
className: "backup-confirm-dialog__title",
|
|
54
|
+
children: "Delete this backup?"
|
|
55
|
+
}),
|
|
56
|
+
/*#__PURE__*/ _jsx("p", {
|
|
57
|
+
className: "backup-confirm-dialog__body",
|
|
58
|
+
children: "This action cannot be undone."
|
|
59
|
+
}),
|
|
60
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
61
|
+
className: "backup-confirm-dialog__actions",
|
|
62
|
+
children: [
|
|
63
|
+
/*#__PURE__*/ _jsx(TaskActionButton, {
|
|
64
|
+
body: {
|
|
65
|
+
pathname,
|
|
66
|
+
url
|
|
67
|
+
},
|
|
68
|
+
buttonStyle: "error",
|
|
69
|
+
completeLabel: "Deleted",
|
|
70
|
+
endpoint: backupPluginPublicApiPaths.adminDelete,
|
|
71
|
+
idleLabel: "Yes, delete",
|
|
72
|
+
kind: "delete",
|
|
73
|
+
pendingLabel: "Deleting...",
|
|
74
|
+
refreshOnComplete: true
|
|
75
|
+
}),
|
|
76
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
77
|
+
buttonStyle: "secondary",
|
|
78
|
+
onClick: ()=>deleteDialogRef.current?.close(),
|
|
79
|
+
size: "small",
|
|
80
|
+
children: "Cancel"
|
|
81
|
+
})
|
|
82
|
+
]
|
|
83
|
+
})
|
|
84
|
+
]
|
|
85
|
+
})
|
|
86
|
+
]
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
//# sourceMappingURL=BackupItemActions.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/BackupDashboard/BackupItemActions.client.tsx"],"sourcesContent":["'use client'\n\nimport { Button } from '@payloadcms/ui'\nimport { useRef } from 'react'\n\nimport { backupPluginPublicApiPaths } from '../../publicApiPaths'\nimport { closeNativeDialogOnBackdropPointer } from '../../utils/dialogBackdrop'\nimport { RestoreBackupDialog } from './RestoreBackupDialog.client'\nimport { TaskActionButton } from './TaskActionButton.client'\n\ntype BackupItemActionsProps = {\n downloadUrl: string\n pathname: string\n url: string\n}\n\nexport const BackupItemActions: React.FC<BackupItemActionsProps> = ({\n downloadUrl,\n pathname,\n url,\n}) => {\n const downloadParams = new URLSearchParams({ pathname })\n if (url) {\n downloadParams.set('url', url)\n }\n if (downloadUrl) {\n downloadParams.set('downloadUrl', downloadUrl)\n }\n const downloadHref = `${backupPluginPublicApiPaths.adminBackupDownload}?${downloadParams.toString()}`\n const deleteDialogRef = useRef<HTMLDialogElement>(null)\n\n return (\n <div className=\"backup-item-actions\">\n <div className=\"backup-item-actions__buttons\">\n <Button buttonStyle=\"secondary\" el=\"anchor\" newTab size=\"small\" url={downloadHref}>\n Download\n </Button>\n <RestoreBackupDialog downloadUrl={downloadUrl} pathname={pathname} />\n <Button\n buttonStyle=\"secondary\"\n onClick={() => deleteDialogRef.current?.showModal()}\n size=\"small\"\n >\n Delete\n </Button>\n </div>\n\n {/* Native <dialog>: backdrop dismiss; element not in jsx-a11y interactive list */}\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}\n <dialog\n className=\"backup-confirm-dialog\"\n onMouseDown={(e) => closeNativeDialogOnBackdropPointer(e, deleteDialogRef)}\n ref={deleteDialogRef}\n >\n <p className=\"backup-confirm-dialog__title\">Delete this backup?</p>\n <p className=\"backup-confirm-dialog__body\">This action cannot be undone.</p>\n <div className=\"backup-confirm-dialog__actions\">\n <TaskActionButton\n body={{ pathname, url }}\n buttonStyle=\"error\"\n completeLabel=\"Deleted\"\n endpoint={backupPluginPublicApiPaths.adminDelete}\n idleLabel=\"Yes, delete\"\n kind=\"delete\"\n pendingLabel=\"Deleting...\"\n refreshOnComplete={true}\n />\n <Button\n buttonStyle=\"secondary\"\n onClick={() => deleteDialogRef.current?.close()}\n size=\"small\"\n >\n Cancel\n </Button>\n </div>\n </dialog>\n </div>\n )\n}\n"],"names":["Button","useRef","backupPluginPublicApiPaths","closeNativeDialogOnBackdropPointer","RestoreBackupDialog","TaskActionButton","BackupItemActions","downloadUrl","pathname","url","downloadParams","URLSearchParams","set","downloadHref","adminBackupDownload","toString","deleteDialogRef","div","className","buttonStyle","el","newTab","size","onClick","current","showModal","dialog","onMouseDown","e","ref","p","body","completeLabel","endpoint","adminDelete","idleLabel","kind","pendingLabel","refreshOnComplete","close"],"mappings":"AAAA;;AAEA,SAASA,MAAM,QAAQ,iBAAgB;AACvC,SAASC,MAAM,QAAQ,QAAO;AAE9B,SAASC,0BAA0B,QAAQ,uBAAsB;AACjE,SAASC,kCAAkC,QAAQ,6BAA4B;AAC/E,SAASC,mBAAmB,QAAQ,+BAA8B;AAClE,SAASC,gBAAgB,QAAQ,4BAA2B;AAQ5D,OAAO,MAAMC,oBAAsD,CAAC,EAClEC,WAAW,EACXC,QAAQ,EACRC,GAAG,EACJ;IACC,MAAMC,iBAAiB,IAAIC,gBAAgB;QAAEH;IAAS;IACtD,IAAIC,KAAK;QACPC,eAAeE,GAAG,CAAC,OAAOH;IAC5B;IACA,IAAIF,aAAa;QACfG,eAAeE,GAAG,CAAC,eAAeL;IACpC;IACA,MAAMM,eAAe,GAAGX,2BAA2BY,mBAAmB,CAAC,CAAC,EAAEJ,eAAeK,QAAQ,IAAI;IACrG,MAAMC,kBAAkBf,OAA0B;IAElD,qBACE,MAACgB;QAAIC,WAAU;;0BACb,MAACD;gBAAIC,WAAU;;kCACb,KAAClB;wBAAOmB,aAAY;wBAAYC,IAAG;wBAASC,MAAM;wBAACC,MAAK;wBAAQb,KAAKI;kCAAc;;kCAGnF,KAACT;wBAAoBG,aAAaA;wBAAaC,UAAUA;;kCACzD,KAACR;wBACCmB,aAAY;wBACZI,SAAS,IAAMP,gBAAgBQ,OAAO,EAAEC;wBACxCH,MAAK;kCACN;;;;0BAOH,MAACI;gBACCR,WAAU;gBACVS,aAAa,CAACC,IAAMzB,mCAAmCyB,GAAGZ;gBAC1Da,KAAKb;;kCAEL,KAACc;wBAAEZ,WAAU;kCAA+B;;kCAC5C,KAACY;wBAAEZ,WAAU;kCAA8B;;kCAC3C,MAACD;wBAAIC,WAAU;;0CACb,KAACb;gCACC0B,MAAM;oCAAEvB;oCAAUC;gCAAI;gCACtBU,aAAY;gCACZa,eAAc;gCACdC,UAAU/B,2BAA2BgC,WAAW;gCAChDC,WAAU;gCACVC,MAAK;gCACLC,cAAa;gCACbC,mBAAmB;;0CAErB,KAACtC;gCACCmB,aAAY;gCACZI,SAAS,IAAMP,gBAAgBQ,OAAO,EAAEe;gCACxCjB,MAAK;0CACN;;;;;;;;AAOX,EAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface SerializableBackupBlob {
|
|
2
|
+
downloadUrl: string;
|
|
3
|
+
pathname: string;
|
|
4
|
+
size: number;
|
|
5
|
+
uploadedAt: string;
|
|
6
|
+
url: string;
|
|
7
|
+
}
|
|
8
|
+
export interface BackupListCollapsibleProps {
|
|
9
|
+
blobs: SerializableBackupBlob[];
|
|
10
|
+
countOtherDb: number;
|
|
11
|
+
countOtherHostname: number;
|
|
12
|
+
currentDbName: string;
|
|
13
|
+
currentHostname: string;
|
|
14
|
+
i18nLanguage: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const BackupListCollapsible: React.FC<BackupListCollapsibleProps>;
|