orcaq 1.1.6 → 1.1.7
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{Lh0RfwhV.js → 1VXrIDkr.js} +1 -1
- package/.output/public/_nuxt/{ZVYA9HBl.js → 1fIGBJPQ.js} +1 -1
- package/.output/public/_nuxt/{BbawOYVr.js → 1kY3DHv7.js} +1 -1
- package/.output/public/_nuxt/{DDsaDrGo.js → 2TwRWQjG.js} +1 -1
- package/.output/public/_nuxt/{wrneOCBW.js → 39ZZCZCn.js} +1 -1
- package/.output/public/_nuxt/{BmEIj9l9.js → 3vYvhEat.js} +1 -1
- package/.output/public/_nuxt/{CEoM97rJ.js → 9bnMBg54.js} +1 -1
- package/.output/public/_nuxt/{ZNDxw-7x.js → B-u0WX5Q.js} +1 -1
- package/.output/public/_nuxt/{uDsvlLN0.js → B41tp0B8.js} +1 -1
- package/.output/public/_nuxt/{4LC09zKL.js → BCm7jnPt.js} +1 -1
- package/.output/public/_nuxt/{D29mzs5t.js → BFMjnjgH.js} +1 -1
- package/.output/public/_nuxt/{BEvswgw7.js → BGAd-CMD.js} +1 -1
- package/.output/public/_nuxt/{CP-7VdtS.js → BG_B-fo0.js} +1 -1
- package/.output/public/_nuxt/{Dd89Vyx8.js → BLEKzUmC.js} +1 -1
- package/.output/public/_nuxt/{DoNLWeqB.js → BN2mQ8OV.js} +1 -1
- package/.output/public/_nuxt/{DP6Az3fC.js → BNnChlxR.js} +1 -1
- package/.output/public/_nuxt/{BKAEFZqP.js → BNyWhB4W.js} +1 -1
- package/.output/public/_nuxt/{Bibtvqd8.js → BO-QgaRL.js} +1 -1
- package/.output/public/_nuxt/{DViCRsmA.js → BOVFFCPB.js} +1 -1
- package/.output/public/_nuxt/{BWg3wiuc.js → BRVpLa1E.js} +1 -1
- package/.output/public/_nuxt/{BJ8qQpib.js → BV4g1sVY.js} +1 -1
- package/.output/public/_nuxt/{_TExiQQQ.js → BXziI6Bt.js} +1 -1
- package/.output/public/_nuxt/{Df4wU3r0.js → BZQUF1W4.js} +1 -1
- package/.output/public/_nuxt/BZmEvFAZ.js +28 -0
- package/.output/public/_nuxt/B_G752SV.js +20 -0
- package/.output/public/_nuxt/{BusLuQ4Q.js → Ba_fqsW2.js} +1 -1
- package/.output/public/_nuxt/{DZFq5yqu.js → BbzZxPNQ.js} +1 -1
- package/.output/public/_nuxt/{BxZgIpkD.js → BhT0iBlH.js} +1 -1
- package/.output/public/_nuxt/{CoX1_N4R.js → Bhm1GL_M.js} +1 -1
- package/.output/public/_nuxt/{27ZsWTm2.js → BiSZmDoN.js} +1 -1
- package/.output/public/_nuxt/{DZVfXu09.js → BjK8Fug8.js} +1 -1
- package/.output/public/_nuxt/{G40WRC_L.js → BjpSpz5C.js} +1 -1
- package/.output/public/_nuxt/{Bok35x_B.js → BkqB6n0T.js} +1 -1
- package/.output/public/_nuxt/{6NXhlm49.js → BoPjUGS6.js} +1 -1
- package/.output/public/_nuxt/{B10QBDL6.js → BtwwqY0e.js} +1 -1
- package/.output/public/_nuxt/{FHx3Ejt6.js → BvD9dW-2.js} +1 -1
- package/.output/public/_nuxt/{Cvkyd5iW.js → Bw-4PosZ.js} +1 -1
- package/.output/public/_nuxt/C0l_59dE.js +1 -0
- package/.output/public/_nuxt/{__PEYcIB.js → C1TOiVRQ.js} +1 -1
- package/.output/public/_nuxt/{BoUZO_NV.js → C7A87LE3.js} +1 -1
- package/.output/public/_nuxt/{o60RgyTd.js → C80Zs8U0.js} +1 -1
- package/.output/public/_nuxt/{BnZ5qYkP.js → CB56S0b2.js} +9 -9
- package/.output/public/_nuxt/{CNPNWuzz.js → CBgbjsPd.js} +1 -1
- package/.output/public/_nuxt/{BCazdlgN.js → CCk2r9DD.js} +1 -1
- package/.output/public/_nuxt/{CCOlJAKS.js → CFZerEKx.js} +2 -2
- package/.output/public/_nuxt/{Bgj8Q52i.js → CG4v011f.js} +1 -1
- package/.output/public/_nuxt/{C4-wpUAK.js → CJnTtXrv.js} +1 -1
- package/.output/public/_nuxt/{DHyymmeR.js → CRDIOG8r.js} +1 -1
- package/.output/public/_nuxt/{XETGYn3c.js → CSPqdI4x.js} +1 -1
- package/.output/public/_nuxt/{DyDU0wFf.js → CTYqoFvv.js} +1 -1
- package/.output/public/_nuxt/{BbLqUOHs.js → CWGzL6OE.js} +1 -1
- package/.output/public/_nuxt/{CZLVBTJx.js → CYJEOEaU.js} +1 -1
- package/.output/public/_nuxt/{BTvOPFKG.js → CYu-xp_f.js} +1 -1
- package/.output/public/_nuxt/CZvnl0uO.js +52 -0
- package/.output/public/_nuxt/{DsPClaxV.js → CadjlDLt.js} +1 -1
- package/.output/public/_nuxt/{BJoSd_uV.js → CczQKYUP.js} +1 -1
- package/.output/public/_nuxt/{CHAVZu6b.js → CeXr_3vU.js} +2 -2
- package/.output/public/_nuxt/{BAasx5OS.js → Ch-A9iSC.js} +1 -1
- package/.output/public/_nuxt/{Bap1X7GD.js → Cj9tYr3P.js} +1 -1
- package/.output/public/_nuxt/Clm3Z8VL.js +1 -0
- package/.output/public/_nuxt/{F8eHh68O.js → CpkrwN3Q.js} +8 -8
- package/.output/public/_nuxt/{CO0Pa76w.js → CrwM3gOU.js} +1 -1
- package/.output/public/_nuxt/{DeVs4gEL.js → Culm7V2R.js} +1 -1
- package/.output/public/_nuxt/{Cl3VX8Um.js → CxZK-Vs6.js} +1 -1
- package/.output/public/_nuxt/{DLA-ioQ4.js → Cym7bWgs.js} +1 -1
- package/.output/public/_nuxt/CzBFxx8v.js +1 -0
- package/.output/public/_nuxt/{BCa-NKh0.js → D0oaRUYx.js} +1 -1
- package/.output/public/_nuxt/{DgGwe7jd.js → D7uoAo-G.js} +133 -133
- package/.output/public/_nuxt/{CvDZBOay.js → D8KJQqug.js} +1 -1
- package/.output/public/_nuxt/{DlymFQ5D.js → D8Z5BXgG.js} +3 -3
- package/.output/public/_nuxt/{DdbhVPqD.js → DDK9-_jm.js} +1 -1
- package/.output/public/_nuxt/{CnQob-tn.js → DDQU7vSH.js} +1 -1
- package/.output/public/_nuxt/{BuSZbOQO.js → DEjwIQuc.js} +1 -1
- package/.output/public/_nuxt/{yLATXAxG.js → DLIUYAz9.js} +1 -1
- package/.output/public/_nuxt/{DYPm3mWQ.js → DQdL5Jcl.js} +1 -1
- package/.output/public/_nuxt/{EZ0owjER.js → DRuCf0Sx.js} +1 -1
- package/.output/public/_nuxt/DSEkO8kW.js +1 -0
- package/.output/public/_nuxt/{DYqShb5v.js → DSOwr8Hs.js} +4 -4
- package/.output/public/_nuxt/{Cf6n9dsT.js → DStg2VwN.js} +1 -1
- package/.output/public/_nuxt/{Ci7hrFNN.js → DTlu-CJn.js} +1 -1
- package/.output/public/_nuxt/{CCK1so3F.js → DUvUg_V7.js} +1 -1
- package/.output/public/_nuxt/{CBjcd4cE.js → D_fdC3mJ.js} +1 -1
- package/.output/public/_nuxt/{BhzzQZRC.js → Da1F0IxL.js} +1 -1
- package/.output/public/_nuxt/{C6bwwZAc.js → DcXAnOS1.js} +1 -1
- package/.output/public/_nuxt/DdtQIDaq.js +1 -0
- package/.output/public/_nuxt/Dfz8k_Rn.js +1 -0
- package/.output/public/_nuxt/{Dpm6rnHk.js → DitYzGT4.js} +1 -1
- package/.output/public/_nuxt/{NMm6Vanu.js → Djh3G2Nf.js} +1 -1
- package/.output/public/_nuxt/DmWFeTaU.js +1 -0
- package/.output/public/_nuxt/{x85BV7y_.js → DtgJAz2h.js} +1 -1
- package/.output/public/_nuxt/{3jfBYqJb.js → DuKway_J.js} +1 -1
- package/.output/public/_nuxt/{7nPLTDFM.js → DxF9DsEl.js} +1 -1
- package/.output/public/_nuxt/{C9ZBCJdc.js → DyFXtlg0.js} +1 -1
- package/.output/public/_nuxt/DzN4YRfa.js +7 -0
- package/.output/public/_nuxt/{B_hWP06g.js → DzaPC1WB.js} +1 -1
- package/.output/public/_nuxt/{wH-P-_6A.js → DzjHXopz.js} +1 -1
- package/.output/public/_nuxt/{CE0zlNDo.js → LUfaevBS.js} +1 -1
- package/.output/public/_nuxt/{DRX1aIGD.js → RFRrMFyH.js} +1 -1
- package/.output/public/_nuxt/{CROH8wgk.js → RTN5rY4m.js} +1 -1
- package/.output/public/_nuxt/{Un5zjlKE.js → XVZ0obUR.js} +1 -1
- package/.output/public/_nuxt/{B5HZeat4.js → Z5g5B4NJ.js} +1 -1
- package/.output/public/_nuxt/_ltJfz1p.js +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/1cbed594-12e2-48e6-bea9-7a9159c3c1d3.json +1 -0
- package/.output/public/_nuxt/{DtOg0Asw.js → dkyHOJLf.js} +1 -1
- package/.output/public/_nuxt/entry.D1DMaixs.css +1 -0
- package/.output/public/_nuxt/{habs8oz6.js → gWmEw6BT.js} +1 -1
- package/.output/public/_nuxt/ixgiI20S.js +1 -0
- package/.output/public/_nuxt/{C6CFIGob.js → jJeqAxmP.js} +1 -1
- package/.output/public/_nuxt/{P_2SRa71.js → lisFd8W1.js} +2 -2
- package/.output/public/_nuxt/{CoQ_oOia.js → nrlEwpIH.js} +1 -1
- package/.output/public/_nuxt/{6wO6CbCo.js → uHyBIwWw.js} +1 -1
- package/.output/public/_nuxt/{dDqgUqt5.js → vGkKA7iH.js} +1 -1
- package/.output/public/_nuxt/{C445d10Z.js → z1xPtaLw.js} +1 -1
- package/.output/server/chunks/_/registry.mjs +116 -0
- package/.output/server/chunks/_/registry.mjs.map +1 -0
- package/.output/server/chunks/_/{native-backup.mjs → runtime.mjs} +325 -164
- package/.output/server/chunks/_/runtime.mjs.map +1 -0
- package/.output/server/chunks/_/{native-backup-jobs.mjs → service.mjs} +185 -248
- package/.output/server/chunks/_/service.mjs.map +1 -0
- package/.output/server/chunks/build/client.manifest.mjs +734 -723
- package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +659 -652
- package/.output/server/chunks/routes/api/database-backup/capability.get.mjs +7 -2
- package/.output/server/chunks/routes/api/database-backup/capability.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-export/export-database.mjs +4 -3
- package/.output/server/chunks/routes/api/database-export/export-database.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs +1 -20
- package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs +1 -20
- package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-import/import-database.mjs +14 -3
- package/.output/server/chunks/routes/api/database-import/import-database.mjs.map +1 -1
- package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs +1 -20
- package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/4OV_5qQE.js +0 -1
- package/.output/public/_nuxt/B3iNzG14.js +0 -1
- package/.output/public/_nuxt/Bf2bW_MY.js +0 -7
- package/.output/public/_nuxt/C7C1kq_N.js +0 -1
- package/.output/public/_nuxt/CN8b9qPP.js +0 -1
- package/.output/public/_nuxt/CUws2Uv7.js +0 -1
- package/.output/public/_nuxt/Cl5p4EQY.js +0 -1
- package/.output/public/_nuxt/D9MMtvTu.js +0 -52
- package/.output/public/_nuxt/DM8LJTsg.js +0 -1
- package/.output/public/_nuxt/ORit_vRp.js +0 -1
- package/.output/public/_nuxt/ZhP2FY6Y.js +0 -1
- package/.output/public/_nuxt/builds/meta/47c294b1-d6b3-4974-bd50-5046ae0a393e.json +0 -1
- package/.output/public/_nuxt/dSX5D8ur.js +0 -28
- package/.output/public/_nuxt/entry.CGwcggc4.css +0 -1
- package/.output/server/chunks/_/native-backup-jobs.mjs.map +0 -1
- package/.output/server/chunks/_/native-backup.mjs.map +0 -1
|
@@ -1,65 +1,135 @@
|
|
|
1
1
|
import { c as createError } from '../nitro/nitro.mjs';
|
|
2
2
|
import { constants } from 'node:fs';
|
|
3
|
-
import { access } from 'node:fs/promises';
|
|
4
|
-
import { delimiter, extname
|
|
3
|
+
import { access, readdir } from 'node:fs/promises';
|
|
4
|
+
import { join, delimiter, extname } from 'node:path';
|
|
5
5
|
import { D as DatabaseClientType } from './database-client-type.mjs';
|
|
6
6
|
|
|
7
|
+
var NativeBackupTool = /* @__PURE__ */ ((NativeBackupTool2) => {
|
|
8
|
+
NativeBackupTool2["PG_DUMP"] = "pg_dump";
|
|
9
|
+
NativeBackupTool2["PG_RESTORE"] = "pg_restore";
|
|
10
|
+
NativeBackupTool2["PSQL"] = "psql";
|
|
11
|
+
NativeBackupTool2["MYSQLPUMP"] = "mysqlpump";
|
|
12
|
+
NativeBackupTool2["MYSQLDUMP"] = "mysqldump";
|
|
13
|
+
NativeBackupTool2["MYSQL"] = "mysql";
|
|
14
|
+
NativeBackupTool2["SQLITE3"] = "sqlite3";
|
|
15
|
+
NativeBackupTool2["EXPDP"] = "expdp";
|
|
16
|
+
NativeBackupTool2["IMPDP"] = "impdp";
|
|
17
|
+
return NativeBackupTool2;
|
|
18
|
+
})(NativeBackupTool || {});
|
|
19
|
+
var NativeBackupFileKind = /* @__PURE__ */ ((NativeBackupFileKind2) => {
|
|
20
|
+
NativeBackupFileKind2["ARCHIVE"] = "archive";
|
|
21
|
+
NativeBackupFileKind2["SQL"] = "sql";
|
|
22
|
+
return NativeBackupFileKind2;
|
|
23
|
+
})(NativeBackupFileKind || {});
|
|
24
|
+
var NativeExportFormat = /* @__PURE__ */ ((NativeExportFormat2) => {
|
|
25
|
+
NativeExportFormat2["PLAIN"] = "plain";
|
|
26
|
+
NativeExportFormat2["CUSTOM"] = "custom";
|
|
27
|
+
return NativeExportFormat2;
|
|
28
|
+
})(NativeExportFormat || {});
|
|
29
|
+
|
|
30
|
+
const KNOWN_TOOL_DIRECTORY_PATTERNS = {
|
|
31
|
+
[NativeBackupTool.PG_DUMP]: [
|
|
32
|
+
"/Applications/Postgres.app/Contents/Versions/*/bin",
|
|
33
|
+
"/Library/PostgreSQL/*/bin",
|
|
34
|
+
"/opt/homebrew/Cellar/libpq*/*/bin",
|
|
35
|
+
"/opt/homebrew/Cellar/postgresql*/*/bin",
|
|
36
|
+
"/usr/local/Cellar/libpq*/*/bin",
|
|
37
|
+
"/usr/local/Cellar/postgresql*/*/bin"
|
|
38
|
+
],
|
|
39
|
+
[NativeBackupTool.PG_RESTORE]: [
|
|
40
|
+
"/Applications/Postgres.app/Contents/Versions/*/bin",
|
|
41
|
+
"/Library/PostgreSQL/*/bin",
|
|
42
|
+
"/opt/homebrew/Cellar/libpq*/*/bin",
|
|
43
|
+
"/opt/homebrew/Cellar/postgresql*/*/bin",
|
|
44
|
+
"/usr/local/Cellar/libpq*/*/bin",
|
|
45
|
+
"/usr/local/Cellar/postgresql*/*/bin"
|
|
46
|
+
],
|
|
47
|
+
[NativeBackupTool.PSQL]: [
|
|
48
|
+
"/Applications/Postgres.app/Contents/Versions/*/bin",
|
|
49
|
+
"/Library/PostgreSQL/*/bin",
|
|
50
|
+
"/opt/homebrew/Cellar/libpq*/*/bin",
|
|
51
|
+
"/opt/homebrew/Cellar/postgresql*/*/bin",
|
|
52
|
+
"/usr/local/Cellar/libpq*/*/bin",
|
|
53
|
+
"/usr/local/Cellar/postgresql*/*/bin"
|
|
54
|
+
],
|
|
55
|
+
[NativeBackupTool.MYSQLPUMP]: [
|
|
56
|
+
"/opt/homebrew/Cellar/mysql*/*/bin",
|
|
57
|
+
"/opt/homebrew/Cellar/mariadb*/*/bin",
|
|
58
|
+
"/usr/local/Cellar/mysql*/*/bin",
|
|
59
|
+
"/usr/local/Cellar/mariadb*/*/bin"
|
|
60
|
+
],
|
|
61
|
+
[NativeBackupTool.MYSQLDUMP]: [
|
|
62
|
+
"/opt/homebrew/Cellar/mysql*/*/bin",
|
|
63
|
+
"/opt/homebrew/Cellar/mariadb*/*/bin",
|
|
64
|
+
"/usr/local/Cellar/mysql*/*/bin",
|
|
65
|
+
"/usr/local/Cellar/mariadb*/*/bin"
|
|
66
|
+
],
|
|
67
|
+
[NativeBackupTool.MYSQL]: [
|
|
68
|
+
"/opt/homebrew/Cellar/mysql*/*/bin",
|
|
69
|
+
"/opt/homebrew/Cellar/mariadb*/*/bin",
|
|
70
|
+
"/usr/local/Cellar/mysql*/*/bin",
|
|
71
|
+
"/usr/local/Cellar/mariadb*/*/bin"
|
|
72
|
+
]
|
|
73
|
+
};
|
|
7
74
|
const POSTGRES_FORMAT_OPTIONS = [
|
|
8
75
|
{
|
|
9
|
-
format:
|
|
76
|
+
format: NativeExportFormat.CUSTOM,
|
|
10
77
|
fileExtension: ".dump",
|
|
11
|
-
fileKind:
|
|
78
|
+
fileKind: NativeBackupFileKind.ARCHIVE,
|
|
12
79
|
label: "PostgreSQL custom archive (.dump)",
|
|
13
|
-
importTool:
|
|
80
|
+
importTool: NativeBackupTool.PG_RESTORE
|
|
14
81
|
},
|
|
15
82
|
{
|
|
16
|
-
format:
|
|
83
|
+
format: NativeExportFormat.PLAIN,
|
|
17
84
|
fileExtension: ".sql",
|
|
18
|
-
fileKind:
|
|
85
|
+
fileKind: NativeBackupFileKind.SQL,
|
|
19
86
|
label: "PostgreSQL plain SQL script (.sql)",
|
|
20
|
-
importTool:
|
|
87
|
+
importTool: NativeBackupTool.PSQL
|
|
21
88
|
}
|
|
22
89
|
];
|
|
23
90
|
const MYSQL_FORMAT_OPTIONS = [
|
|
24
91
|
{
|
|
25
|
-
format:
|
|
92
|
+
format: NativeExportFormat.PLAIN,
|
|
26
93
|
fileExtension: ".sql",
|
|
27
|
-
fileKind:
|
|
94
|
+
fileKind: NativeBackupFileKind.SQL,
|
|
28
95
|
label: "MySQL SQL dump (.sql)",
|
|
29
|
-
importTool:
|
|
96
|
+
importTool: NativeBackupTool.MYSQL
|
|
30
97
|
}
|
|
31
98
|
];
|
|
32
99
|
const SQLITE_FORMAT_OPTIONS = [
|
|
33
100
|
{
|
|
34
|
-
format:
|
|
101
|
+
format: NativeExportFormat.PLAIN,
|
|
35
102
|
fileExtension: ".sql",
|
|
36
|
-
fileKind:
|
|
103
|
+
fileKind: NativeBackupFileKind.SQL,
|
|
37
104
|
label: "SQLite SQL dump (.sql)",
|
|
38
|
-
importTool:
|
|
105
|
+
importTool: NativeBackupTool.SQLITE3
|
|
39
106
|
}
|
|
40
107
|
];
|
|
41
108
|
const POSTGRES_CAPABILITY = {
|
|
42
109
|
supported: true,
|
|
43
110
|
formatOptions: POSTGRES_FORMAT_OPTIONS,
|
|
44
|
-
defaultExportFormat:
|
|
45
|
-
exportToolCandidates: [
|
|
46
|
-
importToolCandidates: [
|
|
111
|
+
defaultExportFormat: NativeExportFormat.CUSTOM,
|
|
112
|
+
exportToolCandidates: [NativeBackupTool.PG_DUMP],
|
|
113
|
+
importToolCandidates: [NativeBackupTool.PG_RESTORE, NativeBackupTool.PSQL],
|
|
47
114
|
label: "PostgreSQL native backup"
|
|
48
115
|
};
|
|
49
116
|
const MYSQL_CAPABILITY = {
|
|
50
117
|
supported: true,
|
|
51
118
|
formatOptions: MYSQL_FORMAT_OPTIONS,
|
|
52
|
-
defaultExportFormat:
|
|
53
|
-
exportToolCandidates: [
|
|
54
|
-
|
|
119
|
+
defaultExportFormat: NativeExportFormat.PLAIN,
|
|
120
|
+
exportToolCandidates: [
|
|
121
|
+
NativeBackupTool.MYSQLPUMP,
|
|
122
|
+
NativeBackupTool.MYSQLDUMP
|
|
123
|
+
],
|
|
124
|
+
importToolCandidates: [NativeBackupTool.MYSQL],
|
|
55
125
|
label: "MySQL SQL dump"
|
|
56
126
|
};
|
|
57
127
|
const SQLITE_CAPABILITY = {
|
|
58
128
|
supported: true,
|
|
59
129
|
formatOptions: SQLITE_FORMAT_OPTIONS,
|
|
60
|
-
defaultExportFormat:
|
|
61
|
-
exportToolCandidates: [
|
|
62
|
-
importToolCandidates: [
|
|
130
|
+
defaultExportFormat: NativeExportFormat.PLAIN,
|
|
131
|
+
exportToolCandidates: [NativeBackupTool.SQLITE3],
|
|
132
|
+
importToolCandidates: [NativeBackupTool.SQLITE3],
|
|
63
133
|
label: "SQLite SQL dump"
|
|
64
134
|
};
|
|
65
135
|
const ORACLE_UNSUPPORTED_REASON = "Oracle Data Pump writes dump files through a server-side DIRECTORY object. HeraQ needs explicit Oracle DIRECTORY and artifact retrieval configuration before expdp/impdp can be exposed as a downloadable native backup flow.";
|
|
@@ -74,147 +144,20 @@ function buildNativeBackupToolHint(capability) {
|
|
|
74
144
|
function formatNativeToolList(tools) {
|
|
75
145
|
return [...new Set(tools)].join(" / ");
|
|
76
146
|
}
|
|
77
|
-
|
|
78
|
-
try {
|
|
79
|
-
await access(
|
|
80
|
-
candidatePath,
|
|
81
|
-
process.platform === "win32" ? constants.F_OK : constants.X_OK
|
|
82
|
-
);
|
|
83
|
-
return true;
|
|
84
|
-
} catch {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
async function resolveExecutablePath(command) {
|
|
89
|
-
const pathValue = process.env.PATH || "";
|
|
90
|
-
if (!pathValue) {
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
const pathEntries = pathValue.split(delimiter).filter(Boolean);
|
|
94
|
-
const hasKnownExtension = extname(command).length > 0;
|
|
95
|
-
const candidateNames = process.platform === "win32" && !hasKnownExtension ? [
|
|
96
|
-
command,
|
|
97
|
-
...(process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean).map((extension) => `${command}${extension.toLowerCase()}`)
|
|
98
|
-
] : [command];
|
|
99
|
-
for (const pathEntry of pathEntries) {
|
|
100
|
-
for (const candidateName of candidateNames) {
|
|
101
|
-
const candidatePath = join(pathEntry, candidateName);
|
|
102
|
-
if (await hasExecutable(candidatePath)) {
|
|
103
|
-
return candidatePath;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
async function resolveAvailableTools(candidates) {
|
|
110
|
-
const uniqueCandidates = [...new Set(candidates)];
|
|
111
|
-
const results = await Promise.all(
|
|
112
|
-
uniqueCandidates.map(async (tool) => ({
|
|
113
|
-
tool,
|
|
114
|
-
path: await resolveExecutablePath(tool)
|
|
115
|
-
}))
|
|
116
|
-
);
|
|
117
|
-
return results.filter((result) => Boolean(result.path));
|
|
118
|
-
}
|
|
119
|
-
function buildRuntimeUnavailableMessage(actionLabel, tools) {
|
|
120
|
-
return `Native ${actionLabel} requires ${formatNativeToolList(tools)} on PATH.`;
|
|
121
|
-
}
|
|
122
|
-
async function getNativeBackupRuntimeCapability(type) {
|
|
123
|
-
const capability = getNativeBackupCapability(type);
|
|
124
|
-
const availableExportTools = capability.supported ? await resolveAvailableTools(capability.exportToolCandidates) : [];
|
|
125
|
-
const availableImportTools = capability.supported ? await resolveAvailableTools(capability.importToolCandidates) : [];
|
|
126
|
-
const exportToolNames = availableExportTools.map((tool) => tool.tool);
|
|
127
|
-
const importToolNames = availableImportTools.map((tool) => tool.tool);
|
|
128
|
-
const missingExportTools = capability.exportToolCandidates.filter(
|
|
129
|
-
(tool) => !exportToolNames.includes(tool)
|
|
130
|
-
);
|
|
131
|
-
const missingImportTools = capability.importToolCandidates.filter(
|
|
132
|
-
(tool) => !importToolNames.includes(tool)
|
|
133
|
-
);
|
|
134
|
-
const exportAvailable = capability.supported && exportToolNames.length > 0;
|
|
135
|
-
const importAvailable = capability.supported && importToolNames.length > 0;
|
|
136
|
-
const available = exportAvailable || importAvailable;
|
|
137
|
-
const exportMessage = !capability.supported ? capability.reason || `${type || "Unknown"} native backup is not supported.` : exportAvailable ? `Native backup is ready via ${formatNativeToolList(exportToolNames)}.` : `${buildRuntimeUnavailableMessage("backup", capability.exportToolCandidates)} Install the missing tool and retry.`;
|
|
138
|
-
const importMessage = !capability.supported ? capability.reason || `${type || "Unknown"} native restore is not supported.` : importAvailable ? `Native restore is ready via ${formatNativeToolList(importToolNames)}.` : `${buildRuntimeUnavailableMessage("restore", capability.importToolCandidates)} Install the missing tool and retry.`;
|
|
139
|
-
let supportMessage = capability.reason || "Select a connection to use native backup tools.";
|
|
140
|
-
if (capability.supported) {
|
|
141
|
-
if (exportAvailable && importAvailable) {
|
|
142
|
-
supportMessage = `${capability.label} is ready. ${exportMessage} ${importMessage}`;
|
|
143
|
-
} else if (available) {
|
|
144
|
-
supportMessage = `Native tool availability is partial. ${exportMessage} ${importMessage}`;
|
|
145
|
-
} else {
|
|
146
|
-
supportMessage = `Native tools are missing. ${exportMessage} ${importMessage}`;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
147
|
+
function getMysqlFamilyCapability(type) {
|
|
149
148
|
return {
|
|
150
|
-
|
|
151
|
-
label:
|
|
152
|
-
toolHint: buildNativeBackupToolHint(capability),
|
|
153
|
-
supported: capability.supported,
|
|
154
|
-
available,
|
|
155
|
-
exportAvailable,
|
|
156
|
-
importAvailable,
|
|
157
|
-
formatOptions: capability.formatOptions.map((option) => ({
|
|
158
|
-
format: option.format,
|
|
159
|
-
extension: option.fileExtension,
|
|
160
|
-
label: option.label,
|
|
161
|
-
fileKind: option.fileKind,
|
|
162
|
-
importTool: option.importTool
|
|
163
|
-
})),
|
|
164
|
-
acceptExtensions: getNativeBackupImportExtensions(type).join(",") || ".sql",
|
|
165
|
-
defaultExportFormat: capability.defaultExportFormat,
|
|
166
|
-
availableExportTools: exportToolNames,
|
|
167
|
-
availableImportTools: importToolNames,
|
|
168
|
-
missingExportTools,
|
|
169
|
-
missingImportTools,
|
|
170
|
-
supportMessage,
|
|
171
|
-
exportMessage,
|
|
172
|
-
importMessage,
|
|
173
|
-
reason: capability.reason
|
|
149
|
+
...MYSQL_CAPABILITY,
|
|
150
|
+
label: type === DatabaseClientType.MARIADB ? "MariaDB SQL dump" : MYSQL_CAPABILITY.label
|
|
174
151
|
};
|
|
175
152
|
}
|
|
176
|
-
|
|
177
|
-
const capability = await getNativeBackupRuntimeCapability(type);
|
|
178
|
-
if (!capability.supported || !type) {
|
|
179
|
-
throw createError({
|
|
180
|
-
statusCode: 501,
|
|
181
|
-
statusMessage: capability.reason || `${type || "Unknown"} native backup is not supported.`
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
if (operation === "export" && !capability.exportAvailable) {
|
|
185
|
-
throw createError({
|
|
186
|
-
statusCode: 503,
|
|
187
|
-
statusMessage: capability.exportMessage
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
if (operation === "import") {
|
|
191
|
-
if (!capability.importAvailable) {
|
|
192
|
-
throw createError({
|
|
193
|
-
statusCode: 503,
|
|
194
|
-
statusMessage: capability.importMessage
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
if (type === DatabaseClientType.POSTGRES && fileName) {
|
|
198
|
-
const requiredImportTool = getNativeBackupImportTool(type, fileName);
|
|
199
|
-
if (!capability.availableImportTools.includes(requiredImportTool)) {
|
|
200
|
-
throw createError({
|
|
201
|
-
statusCode: 503,
|
|
202
|
-
statusMessage: `${requiredImportTool} is required to restore ${fileName}. ${capability.importMessage}`
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
153
|
+
|
|
208
154
|
function getNativeBackupCapability(type) {
|
|
209
155
|
switch (type) {
|
|
210
156
|
case DatabaseClientType.POSTGRES:
|
|
211
157
|
return POSTGRES_CAPABILITY;
|
|
212
158
|
case DatabaseClientType.MYSQL:
|
|
213
159
|
case DatabaseClientType.MARIADB:
|
|
214
|
-
return
|
|
215
|
-
...MYSQL_CAPABILITY,
|
|
216
|
-
label: type === DatabaseClientType.MARIADB ? "MariaDB SQL dump" : MYSQL_CAPABILITY.label
|
|
217
|
-
};
|
|
160
|
+
return getMysqlFamilyCapability(type);
|
|
218
161
|
case DatabaseClientType.SQLITE3:
|
|
219
162
|
return SQLITE_CAPABILITY;
|
|
220
163
|
case DatabaseClientType.ORACLE:
|
|
@@ -222,16 +165,16 @@ function getNativeBackupCapability(type) {
|
|
|
222
165
|
supported: false,
|
|
223
166
|
formatOptions: [
|
|
224
167
|
{
|
|
225
|
-
format:
|
|
168
|
+
format: NativeExportFormat.CUSTOM,
|
|
226
169
|
fileExtension: ".dmp",
|
|
227
|
-
fileKind:
|
|
170
|
+
fileKind: NativeBackupFileKind.ARCHIVE,
|
|
228
171
|
label: "Oracle Data Pump dump (.dmp)",
|
|
229
|
-
importTool:
|
|
172
|
+
importTool: NativeBackupTool.IMPDP
|
|
230
173
|
}
|
|
231
174
|
],
|
|
232
|
-
defaultExportFormat:
|
|
233
|
-
exportToolCandidates: [
|
|
234
|
-
importToolCandidates: [
|
|
175
|
+
defaultExportFormat: NativeExportFormat.CUSTOM,
|
|
176
|
+
exportToolCandidates: [NativeBackupTool.EXPDP],
|
|
177
|
+
importToolCandidates: [NativeBackupTool.IMPDP],
|
|
235
178
|
label: "Oracle Data Pump dump",
|
|
236
179
|
reason: ORACLE_UNSUPPORTED_REASON
|
|
237
180
|
};
|
|
@@ -258,7 +201,7 @@ function resolveNativeExportFormat(type, requestedFormat) {
|
|
|
258
201
|
if (!requestedFormat || requestedFormat === "native") {
|
|
259
202
|
return capability.defaultExportFormat;
|
|
260
203
|
}
|
|
261
|
-
if (requestedFormat !==
|
|
204
|
+
if (requestedFormat !== NativeExportFormat.PLAIN && requestedFormat !== NativeExportFormat.CUSTOM) {
|
|
262
205
|
throw createError({
|
|
263
206
|
statusCode: 400,
|
|
264
207
|
statusMessage: `${requestedFormat} export format is not supported for ${type}.`
|
|
@@ -335,5 +278,223 @@ function assertNativeBackupSupported(type) {
|
|
|
335
278
|
}
|
|
336
279
|
}
|
|
337
280
|
|
|
338
|
-
|
|
339
|
-
|
|
281
|
+
function escapeForRegExp(value) {
|
|
282
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
283
|
+
}
|
|
284
|
+
function wildcardToRegExp(segment) {
|
|
285
|
+
return new RegExp(`^${segment.split("*").map(escapeForRegExp).join(".*")}$`);
|
|
286
|
+
}
|
|
287
|
+
async function expandDirectoryPattern(pattern) {
|
|
288
|
+
if (!pattern.startsWith("/")) {
|
|
289
|
+
return [];
|
|
290
|
+
}
|
|
291
|
+
const segments = pattern.split("/").filter(Boolean);
|
|
292
|
+
let prefixes = ["/"];
|
|
293
|
+
for (const segment of segments) {
|
|
294
|
+
if (!segment.includes("*")) {
|
|
295
|
+
prefixes = prefixes.map((prefix) => join(prefix, segment));
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
const matcher = wildcardToRegExp(segment);
|
|
299
|
+
const matches = await Promise.all(
|
|
300
|
+
prefixes.map(async (prefix) => {
|
|
301
|
+
try {
|
|
302
|
+
const entries = await readdir(prefix, { withFileTypes: true });
|
|
303
|
+
return entries.filter((entry) => entry.isDirectory() && matcher.test(entry.name)).map((entry) => join(prefix, entry.name));
|
|
304
|
+
} catch {
|
|
305
|
+
return [];
|
|
306
|
+
}
|
|
307
|
+
})
|
|
308
|
+
);
|
|
309
|
+
prefixes = matches.flat();
|
|
310
|
+
}
|
|
311
|
+
return prefixes;
|
|
312
|
+
}
|
|
313
|
+
async function getCandidateDirectories(command, discoverAll = false) {
|
|
314
|
+
const directories = new Set(
|
|
315
|
+
(process.env.PATH || "").split(delimiter).filter(Boolean)
|
|
316
|
+
);
|
|
317
|
+
if (discoverAll) {
|
|
318
|
+
const patterns = KNOWN_TOOL_DIRECTORY_PATTERNS[command] || [];
|
|
319
|
+
const expandedDirectories = await Promise.all(
|
|
320
|
+
patterns.map((pattern) => expandDirectoryPattern(pattern))
|
|
321
|
+
);
|
|
322
|
+
expandedDirectories.flat().forEach((directory) => {
|
|
323
|
+
directories.add(directory);
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
return [...directories];
|
|
327
|
+
}
|
|
328
|
+
function getCandidateNames(command) {
|
|
329
|
+
const hasKnownExtension = extname(command).length > 0;
|
|
330
|
+
if (process.platform !== "win32" || hasKnownExtension) {
|
|
331
|
+
return [command];
|
|
332
|
+
}
|
|
333
|
+
return [
|
|
334
|
+
command,
|
|
335
|
+
...(process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean).map((extension) => `${command}${extension.toLowerCase()}`)
|
|
336
|
+
];
|
|
337
|
+
}
|
|
338
|
+
async function hasExecutable(candidatePath) {
|
|
339
|
+
try {
|
|
340
|
+
await access(
|
|
341
|
+
candidatePath,
|
|
342
|
+
process.platform === "win32" ? constants.F_OK : constants.X_OK
|
|
343
|
+
);
|
|
344
|
+
return true;
|
|
345
|
+
} catch {
|
|
346
|
+
return false;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
async function resolveExecutablePaths(command, discoverAll = false) {
|
|
350
|
+
const pathEntries = await getCandidateDirectories(command, discoverAll);
|
|
351
|
+
const candidateNames = getCandidateNames(command);
|
|
352
|
+
const discoveredPaths = [];
|
|
353
|
+
for (const pathEntry of pathEntries) {
|
|
354
|
+
for (const candidateName of candidateNames) {
|
|
355
|
+
const candidatePath = join(pathEntry, candidateName);
|
|
356
|
+
if (await hasExecutable(candidatePath)) {
|
|
357
|
+
discoveredPaths.push(candidatePath);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return [...new Set(discoveredPaths)];
|
|
362
|
+
}
|
|
363
|
+
async function resolveAvailableTools(candidates, options) {
|
|
364
|
+
const uniqueCandidates = [...new Set(candidates)];
|
|
365
|
+
const results = await Promise.all(
|
|
366
|
+
uniqueCandidates.map(async (tool) => {
|
|
367
|
+
const paths = await resolveExecutablePaths(
|
|
368
|
+
tool,
|
|
369
|
+
(options == null ? void 0 : options.discoverAll) || false
|
|
370
|
+
);
|
|
371
|
+
return paths.map(
|
|
372
|
+
(path) => ({ tool, path })
|
|
373
|
+
);
|
|
374
|
+
})
|
|
375
|
+
);
|
|
376
|
+
return results.flat();
|
|
377
|
+
}
|
|
378
|
+
function buildRuntimeUnavailableMessage(actionLabel, tools) {
|
|
379
|
+
return `Native ${actionLabel} requires ${formatNativeToolList(tools)} on PATH.`;
|
|
380
|
+
}
|
|
381
|
+
async function getNativeBackupRuntimeCapability(type, options) {
|
|
382
|
+
const capability = getNativeBackupCapability(type);
|
|
383
|
+
const availableExportTools = capability.supported ? await resolveAvailableTools(capability.exportToolCandidates, options) : [];
|
|
384
|
+
const availableImportTools = capability.supported ? await resolveAvailableTools(capability.importToolCandidates, options) : [];
|
|
385
|
+
const exportToolNames = [
|
|
386
|
+
...new Set(availableExportTools.map((tool) => tool.tool))
|
|
387
|
+
];
|
|
388
|
+
const importToolNames = [
|
|
389
|
+
...new Set(availableImportTools.map((tool) => tool.tool))
|
|
390
|
+
];
|
|
391
|
+
const missingExportTools = capability.exportToolCandidates.filter(
|
|
392
|
+
(tool) => !exportToolNames.includes(tool)
|
|
393
|
+
);
|
|
394
|
+
const missingImportTools = capability.importToolCandidates.filter(
|
|
395
|
+
(tool) => !importToolNames.includes(tool)
|
|
396
|
+
);
|
|
397
|
+
const exportAvailable = capability.supported && exportToolNames.length > 0;
|
|
398
|
+
const importAvailable = capability.supported && importToolNames.length > 0;
|
|
399
|
+
const available = exportAvailable || importAvailable;
|
|
400
|
+
const exportMessage = !capability.supported ? capability.reason || `${type || "Unknown"} native backup is not supported.` : exportAvailable ? `Native backup is ready via ${formatNativeToolList(exportToolNames)}.` : `${buildRuntimeUnavailableMessage("backup", capability.exportToolCandidates)} Install the missing tool and retry.`;
|
|
401
|
+
const importMessage = !capability.supported ? capability.reason || `${type || "Unknown"} native restore is not supported.` : importAvailable ? `Native restore is ready via ${formatNativeToolList(importToolNames)}.` : `${buildRuntimeUnavailableMessage("restore", capability.importToolCandidates)} Install the missing tool and retry.`;
|
|
402
|
+
let supportMessage = capability.reason || "Select a connection to use native backup tools.";
|
|
403
|
+
if (capability.supported) {
|
|
404
|
+
if (exportAvailable && importAvailable) {
|
|
405
|
+
supportMessage = `${capability.label} is ready. ${exportMessage} ${importMessage}`;
|
|
406
|
+
} else if (available) {
|
|
407
|
+
supportMessage = `Native tool availability is partial. ${exportMessage} ${importMessage}`;
|
|
408
|
+
} else {
|
|
409
|
+
supportMessage = `Native tools are missing. ${exportMessage} ${importMessage}`;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
return {
|
|
413
|
+
type: type || null,
|
|
414
|
+
label: capability.label,
|
|
415
|
+
toolHint: buildNativeBackupToolHint(capability),
|
|
416
|
+
supported: capability.supported,
|
|
417
|
+
available,
|
|
418
|
+
exportAvailable,
|
|
419
|
+
importAvailable,
|
|
420
|
+
formatOptions: capability.formatOptions.map((option) => ({
|
|
421
|
+
format: option.format,
|
|
422
|
+
extension: option.fileExtension,
|
|
423
|
+
label: option.label,
|
|
424
|
+
fileKind: option.fileKind,
|
|
425
|
+
importTool: option.importTool
|
|
426
|
+
})),
|
|
427
|
+
acceptExtensions: getNativeBackupImportExtensions(type).join(",") || ".sql",
|
|
428
|
+
defaultExportFormat: capability.defaultExportFormat,
|
|
429
|
+
availableExportTools: exportToolNames,
|
|
430
|
+
availableImportTools: importToolNames,
|
|
431
|
+
availableExportToolPaths: availableExportTools,
|
|
432
|
+
availableImportToolPaths: availableImportTools,
|
|
433
|
+
missingExportTools,
|
|
434
|
+
missingImportTools,
|
|
435
|
+
supportMessage,
|
|
436
|
+
exportMessage,
|
|
437
|
+
importMessage,
|
|
438
|
+
reason: capability.reason
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
async function ensureNativeBackupOperationAvailable(type, operation, fileName, runtime) {
|
|
442
|
+
var _a;
|
|
443
|
+
const capability = await getNativeBackupRuntimeCapability(type);
|
|
444
|
+
const staticCapability = getNativeBackupCapability(type);
|
|
445
|
+
if (!capability.supported || !type) {
|
|
446
|
+
throw createError({
|
|
447
|
+
statusCode: 501,
|
|
448
|
+
statusMessage: capability.reason || `${type || "Unknown"} native backup is not supported.`
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
const requestedExecutablePath = (_a = runtime == null ? void 0 : runtime.executablePath) == null ? void 0 : _a.trim();
|
|
452
|
+
if (requestedExecutablePath) {
|
|
453
|
+
const allowedTools = operation === "export" ? staticCapability.exportToolCandidates : type === DatabaseClientType.POSTGRES && fileName ? [getNativeBackupImportTool(type, fileName)] : staticCapability.importToolCandidates;
|
|
454
|
+
if (!(runtime == null ? void 0 : runtime.tool)) {
|
|
455
|
+
throw createError({
|
|
456
|
+
statusCode: 400,
|
|
457
|
+
statusMessage: "A native tool must be selected when a custom executable path is provided."
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
if (!allowedTools.includes(runtime.tool)) {
|
|
461
|
+
throw createError({
|
|
462
|
+
statusCode: 400,
|
|
463
|
+
statusMessage: `${runtime.tool} cannot be used for this ${operation} request.`
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
if (!await hasExecutable(requestedExecutablePath)) {
|
|
467
|
+
throw createError({
|
|
468
|
+
statusCode: 400,
|
|
469
|
+
statusMessage: `Configured executable was not found or is not executable: ${requestedExecutablePath}`
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
474
|
+
if (operation === "export" && !capability.exportAvailable) {
|
|
475
|
+
throw createError({
|
|
476
|
+
statusCode: 503,
|
|
477
|
+
statusMessage: capability.exportMessage
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
if (operation === "import") {
|
|
481
|
+
if (!capability.importAvailable) {
|
|
482
|
+
throw createError({
|
|
483
|
+
statusCode: 503,
|
|
484
|
+
statusMessage: capability.importMessage
|
|
485
|
+
});
|
|
486
|
+
}
|
|
487
|
+
if (type === DatabaseClientType.POSTGRES && fileName) {
|
|
488
|
+
const requiredImportTool = getNativeBackupImportTool(type, fileName);
|
|
489
|
+
if (!capability.availableImportTools.includes(requiredImportTool)) {
|
|
490
|
+
throw createError({
|
|
491
|
+
statusCode: 503,
|
|
492
|
+
statusMessage: `${requiredImportTool} is required to restore ${fileName}. ${capability.importMessage}`
|
|
493
|
+
});
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
export { getNativeBackupCapability as a, assertNativeBackupSupported as b, buildNativeBackupFileName as c, getNativeBackupFileKind as d, ensureNativeBackupOperationAvailable as e, getNativeBackupImportTool as f, getNativeBackupRuntimeCapability as g, resolveNativeExportFormat as r };
|
|
500
|
+
//# sourceMappingURL=runtime.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.mjs","sources":["../../../../core/types/database-export.types.ts","../../../../server/infrastructure/database/backup/native/constants.ts","../../../../server/infrastructure/database/backup/native/capability.ts","../../../../server/infrastructure/database/backup/native/runtime.ts"],"sourcesContent":null,"names":["NativeBackupTool","NativeBackupFileKind","NativeExportFormat","fsConstants"],"mappings":"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"}
|