orcaq 1.1.6 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/-7uW7YTy.js +1 -0
  3. package/.output/public/_nuxt/{wH-P-_6A.js → 5450EsIE.js} +1 -1
  4. package/.output/public/_nuxt/6mVUr42b.js +1 -0
  5. package/.output/public/_nuxt/7H5y5euK.js +1 -0
  6. package/.output/public/_nuxt/7iCr9_qw.js +26 -0
  7. package/.output/public/_nuxt/{C4-wpUAK.js → B0gkARnK.js} +1 -1
  8. package/.output/public/_nuxt/B21nC2NZ.js +1 -0
  9. package/.output/public/_nuxt/B232GDut.js +2 -0
  10. package/.output/public/_nuxt/{x85BV7y_.js → B6N_D8QI.js} +1 -1
  11. package/.output/public/_nuxt/B7C8fo37.js +1 -0
  12. package/.output/public/_nuxt/BC82eJHt.js +1 -0
  13. package/.output/public/_nuxt/BHr4_sbs.js +9 -0
  14. package/.output/public/_nuxt/{DYqShb5v.js → BJvJ0Hlu.js} +4 -4
  15. package/.output/public/_nuxt/BK-6CJ0A.js +1 -0
  16. package/.output/public/_nuxt/BMVgfiQu.js +1 -0
  17. package/.output/public/_nuxt/BNh4NY7v.js +1 -0
  18. package/.output/public/_nuxt/{3jfBYqJb.js → BO3FEgXG.js} +1 -1
  19. package/.output/public/_nuxt/BQm1mt0O.js +1 -0
  20. package/.output/public/_nuxt/BRCvv3op.js +1 -0
  21. package/.output/public/_nuxt/{DLA-ioQ4.js → BRWis86L.js} +1 -1
  22. package/.output/public/_nuxt/{Bgj8Q52i.js → BRzWRTTF.js} +1 -1
  23. package/.output/public/_nuxt/{BWg3wiuc.js → BWTTrGtY.js} +2 -2
  24. package/.output/public/_nuxt/{BJoSd_uV.js → BXMKgn-J.js} +1 -1
  25. package/.output/public/_nuxt/{BoUZO_NV.js → BYaoWfSN.js} +1 -1
  26. package/.output/public/_nuxt/B_G752SV.js +20 -0
  27. package/.output/public/_nuxt/{B5HZeat4.js → BalNYDR1.js} +1 -1
  28. package/.output/public/_nuxt/{DYPm3mWQ.js → BmfnP4qD.js} +1 -1
  29. package/.output/public/_nuxt/Bn6_QGSK.js +1 -0
  30. package/.output/public/_nuxt/{CROH8wgk.js → BsCPQnkm.js} +1 -1
  31. package/.output/public/_nuxt/{wrneOCBW.js → Bu6ybm3Z.js} +1 -1
  32. package/.output/public/_nuxt/{DDsaDrGo.js → BuTCm7Bo.js} +1 -1
  33. package/.output/public/_nuxt/BuzCyLCh.js +1 -0
  34. package/.output/public/_nuxt/{4LC09zKL.js → BzNEuLKx.js} +1 -1
  35. package/.output/public/_nuxt/{C9ZBCJdc.js → BzNNFvTW.js} +1 -1
  36. package/.output/public/_nuxt/{CoQ_oOia.js → BzqjH2-H.js} +1 -1
  37. package/.output/public/_nuxt/{BCa-NKh0.js → C-e53AuW.js} +1 -1
  38. package/.output/public/_nuxt/C0jXhwNq.js +1 -0
  39. package/.output/public/_nuxt/C6K-C4_d.js +1 -0
  40. package/.output/public/_nuxt/{DgGwe7jd.js → C6teO48Y.js} +133 -133
  41. package/.output/public/_nuxt/{CCK1so3F.js → C874itvn.js} +1 -1
  42. package/.output/public/_nuxt/C8ZJ2pm_.js +1 -0
  43. package/.output/public/_nuxt/CA3O4M9L.js +1 -0
  44. package/.output/public/_nuxt/{Cf6n9dsT.js → CAjVwGyz.js} +1 -1
  45. package/.output/public/_nuxt/{uDsvlLN0.js → CCC5u9Ni.js} +1 -1
  46. package/.output/public/_nuxt/{BmEIj9l9.js → CCCJ2fw7.js} +1 -1
  47. package/.output/public/_nuxt/{dDqgUqt5.js → CFi6G8Aj.js} +2 -2
  48. package/.output/public/_nuxt/CKlMKmo6.js +1 -0
  49. package/.output/public/_nuxt/{FHx3Ejt6.js → CMDq7o88.js} +1 -1
  50. package/.output/public/_nuxt/CMI-3q_e.js +1 -0
  51. package/.output/public/_nuxt/{CBjcd4cE.js → CMnjMfEQ.js} +1 -1
  52. package/.output/public/_nuxt/{Ci7hrFNN.js → CQFANjzf.js} +1 -1
  53. package/.output/public/_nuxt/{BuSZbOQO.js → CU5cwnUW.js} +1 -1
  54. package/.output/public/_nuxt/{Bibtvqd8.js → CXQ2zrsE.js} +1 -1
  55. package/.output/public/_nuxt/{Dd89Vyx8.js → CXbrqQhC.js} +1 -1
  56. package/.output/public/_nuxt/CZXyfpHW.js +1 -0
  57. package/.output/public/_nuxt/CZgTP5wX.js +1 -0
  58. package/.output/public/_nuxt/{BxZgIpkD.js → Cd_fVKDw.js} +1 -1
  59. package/.output/public/_nuxt/CeXnSKvd.js +1 -0
  60. package/.output/public/_nuxt/Chw5tFzx.js +1 -0
  61. package/.output/public/_nuxt/CkLSGVwV.js +1 -0
  62. package/.output/public/_nuxt/Cqk0ImDE.js +1 -0
  63. package/.output/public/_nuxt/{BAasx5OS.js → CuXTA7ZW.js} +1 -1
  64. package/.output/public/_nuxt/Cv9v5fHN.js +1 -0
  65. package/.output/public/_nuxt/{CE0zlNDo.js → CvbYm0uB.js} +1 -1
  66. package/.output/public/_nuxt/{BJ8qQpib.js → Cw1HIv3s.js} +1 -1
  67. package/.output/public/_nuxt/{7nPLTDFM.js → CyEOtFwE.js} +1 -1
  68. package/.output/public/_nuxt/CyKRjZZo.js +1 -0
  69. package/.output/public/_nuxt/{Bap1X7GD.js → D4DMGxvZ.js} +1 -1
  70. package/.output/public/_nuxt/{DP6Az3fC.js → D5GonnbJ.js} +1 -1
  71. package/.output/public/_nuxt/D5Oboajo.js +1 -0
  72. package/.output/public/_nuxt/D8egDyEO.js +1 -0
  73. package/.output/public/_nuxt/DBSV6YXN.js +1 -0
  74. package/.output/public/_nuxt/{habs8oz6.js → DCewvWOu.js} +1 -1
  75. package/.output/public/_nuxt/{CP-7VdtS.js → DG9CsZCx.js} +1 -1
  76. package/.output/public/_nuxt/{DViCRsmA.js → DH2V7e8U.js} +1 -1
  77. package/.output/public/_nuxt/{C6bwwZAc.js → DHXwq7wT.js} +1 -1
  78. package/.output/public/_nuxt/DJXrgohw.js +2 -0
  79. package/.output/public/_nuxt/{Cl3VX8Um.js → DQRyK9Io.js} +1 -1
  80. package/.output/public/_nuxt/{ZNDxw-7x.js → DXVrM3CN.js} +1 -1
  81. package/.output/public/_nuxt/{Un5zjlKE.js → DZ4xLzJg.js} +1 -1
  82. package/.output/public/_nuxt/DZIoL4RO.js +1 -0
  83. package/.output/public/_nuxt/D_kY6P5P.js +1 -0
  84. package/.output/public/_nuxt/DgxTwFGe.js +7 -0
  85. package/.output/public/_nuxt/DkX74xDd.js +1 -0
  86. package/.output/public/_nuxt/{B_hWP06g.js → DmnufEYq.js} +1 -1
  87. package/.output/public/_nuxt/{BCazdlgN.js → Dopm1f4X.js} +1 -1
  88. package/.output/public/_nuxt/{C6CFIGob.js → Dpkaavgs.js} +1 -1
  89. package/.output/public/_nuxt/DpsqSAMo.js +20 -0
  90. package/.output/public/_nuxt/{DHyymmeR.js → DrkGD_bQ.js} +1 -1
  91. package/.output/public/_nuxt/{yLATXAxG.js → Dtry_3Qa.js} +1 -1
  92. package/.output/public/_nuxt/DwPmcz47.js +1 -0
  93. package/.output/public/_nuxt/DyjsVMbv.js +1 -0
  94. package/.output/public/_nuxt/{CNPNWuzz.js → FmHWbXNk.js} +1 -1
  95. package/.output/public/_nuxt/{BbLqUOHs.js → JxgekUqn.js} +1 -1
  96. package/.output/public/_nuxt/KoGK2wLb.js +1 -0
  97. package/.output/public/_nuxt/LU_a7qLd.js +1 -0
  98. package/.output/public/_nuxt/{Lh0RfwhV.js → LxqkguPP.js} +1 -1
  99. package/.output/public/_nuxt/Q8x88Gcd.js +1 -0
  100. package/.output/public/_nuxt/{DRX1aIGD.js → R04uZjs6.js} +1 -1
  101. package/.output/public/_nuxt/So0hX8V0.js +31 -0
  102. package/.output/public/_nuxt/WGDY9i_Q.js +1 -0
  103. package/.output/public/_nuxt/{Df4wU3r0.js → WZQ8mcv9.js} +1 -1
  104. package/.output/public/_nuxt/{CO0Pa76w.js → XjywAggc.js} +1 -1
  105. package/.output/public/_nuxt/{_fileId_.DxhkUVGK.css → _fileId_.CiauI_x3.css} +1 -1
  106. package/.output/public/_nuxt/{C445d10Z.js → _uLivI44.js} +1 -1
  107. package/.output/public/_nuxt/builds/latest.json +1 -1
  108. package/.output/public/_nuxt/builds/meta/30582efd-125a-4f88-bd89-20a7b2ba8697.json +1 -0
  109. package/.output/public/_nuxt/{EZ0owjER.js → eQskTKIU.js} +1 -1
  110. package/.output/public/_nuxt/ecWNT6PZ.js +1 -0
  111. package/.output/public/_nuxt/entry.BcHy7sxf.css +1 -0
  112. package/.output/public/_nuxt/{BEvswgw7.js → f6XRRKUb.js} +1 -1
  113. package/.output/public/_nuxt/jtwYTq7X.js +52 -0
  114. package/.output/public/_nuxt/{Cvkyd5iW.js → mcYTISF7.js} +1 -1
  115. package/.output/public/_nuxt/mcfKrWU-.js +1 -0
  116. package/.output/public/_nuxt/{BnZ5qYkP.js → soHTUlpn.js} +9 -9
  117. package/.output/public/_nuxt/tc7vkD0J.js +3 -0
  118. package/.output/public/_nuxt/vEHvfalB.js +53 -0
  119. package/.output/public/_nuxt/vP25tZUh.js +2 -0
  120. package/.output/public/_nuxt/{F8eHh68O.js → zndqWf9s.js} +8 -8
  121. package/.output/server/chunks/_/registry.mjs +116 -0
  122. package/.output/server/chunks/_/registry.mjs.map +1 -0
  123. package/.output/server/chunks/_/{native-backup.mjs → runtime.mjs} +325 -164
  124. package/.output/server/chunks/_/runtime.mjs.map +1 -0
  125. package/.output/server/chunks/_/{native-backup-jobs.mjs → service.mjs} +185 -248
  126. package/.output/server/chunks/_/service.mjs.map +1 -0
  127. package/.output/server/chunks/_/tables.factory.mjs +1 -1
  128. package/.output/server/chunks/build/client.manifest.mjs +802 -727
  129. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  130. package/.output/server/chunks/nitro/nitro.mjs +683 -648
  131. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs +7 -2
  132. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs.map +1 -1
  133. package/.output/server/chunks/routes/api/database-export/export-database.mjs +4 -3
  134. package/.output/server/chunks/routes/api/database-export/export-database.mjs.map +1 -1
  135. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs +1 -20
  136. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs.map +1 -1
  137. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs +1 -20
  138. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs.map +1 -1
  139. package/.output/server/chunks/routes/api/database-import/import-database.mjs +14 -3
  140. package/.output/server/chunks/routes/api/database-import/import-database.mjs.map +1 -1
  141. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs +1 -20
  142. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs.map +1 -1
  143. package/.output/server/package.json +1 -1
  144. package/package.json +1 -1
  145. package/.output/public/_nuxt/27ZsWTm2.js +0 -1
  146. package/.output/public/_nuxt/4OV_5qQE.js +0 -1
  147. package/.output/public/_nuxt/6NXhlm49.js +0 -1
  148. package/.output/public/_nuxt/6wO6CbCo.js +0 -1
  149. package/.output/public/_nuxt/B10QBDL6.js +0 -1
  150. package/.output/public/_nuxt/B3iNzG14.js +0 -1
  151. package/.output/public/_nuxt/BKAEFZqP.js +0 -1
  152. package/.output/public/_nuxt/BTvOPFKG.js +0 -1
  153. package/.output/public/_nuxt/BbawOYVr.js +0 -1
  154. package/.output/public/_nuxt/Bf2bW_MY.js +0 -7
  155. package/.output/public/_nuxt/BhzzQZRC.js +0 -1
  156. package/.output/public/_nuxt/Bok35x_B.js +0 -1
  157. package/.output/public/_nuxt/BusLuQ4Q.js +0 -1
  158. package/.output/public/_nuxt/C7C1kq_N.js +0 -1
  159. package/.output/public/_nuxt/CCOlJAKS.js +0 -2
  160. package/.output/public/_nuxt/CEoM97rJ.js +0 -1
  161. package/.output/public/_nuxt/CHAVZu6b.js +0 -2
  162. package/.output/public/_nuxt/CN8b9qPP.js +0 -1
  163. package/.output/public/_nuxt/CUws2Uv7.js +0 -1
  164. package/.output/public/_nuxt/CZLVBTJx.js +0 -1
  165. package/.output/public/_nuxt/Cl5p4EQY.js +0 -1
  166. package/.output/public/_nuxt/CnQob-tn.js +0 -1
  167. package/.output/public/_nuxt/CoX1_N4R.js +0 -1
  168. package/.output/public/_nuxt/CvDZBOay.js +0 -1
  169. package/.output/public/_nuxt/D29mzs5t.js +0 -1
  170. package/.output/public/_nuxt/D9MMtvTu.js +0 -52
  171. package/.output/public/_nuxt/DM8LJTsg.js +0 -1
  172. package/.output/public/_nuxt/DZFq5yqu.js +0 -1
  173. package/.output/public/_nuxt/DZVfXu09.js +0 -1
  174. package/.output/public/_nuxt/DdbhVPqD.js +0 -1
  175. package/.output/public/_nuxt/DeVs4gEL.js +0 -53
  176. package/.output/public/_nuxt/DlymFQ5D.js +0 -26
  177. package/.output/public/_nuxt/DoNLWeqB.js +0 -20
  178. package/.output/public/_nuxt/Dpm6rnHk.js +0 -1
  179. package/.output/public/_nuxt/DsPClaxV.js +0 -1
  180. package/.output/public/_nuxt/DtOg0Asw.js +0 -1
  181. package/.output/public/_nuxt/DyDU0wFf.js +0 -1
  182. package/.output/public/_nuxt/G40WRC_L.js +0 -1
  183. package/.output/public/_nuxt/NMm6Vanu.js +0 -1
  184. package/.output/public/_nuxt/ORit_vRp.js +0 -1
  185. package/.output/public/_nuxt/P_2SRa71.js +0 -2
  186. package/.output/public/_nuxt/XETGYn3c.js +0 -1
  187. package/.output/public/_nuxt/ZVYA9HBl.js +0 -1
  188. package/.output/public/_nuxt/ZhP2FY6Y.js +0 -1
  189. package/.output/public/_nuxt/_TExiQQQ.js +0 -3
  190. package/.output/public/_nuxt/__PEYcIB.js +0 -9
  191. package/.output/public/_nuxt/builds/meta/47c294b1-d6b3-4974-bd50-5046ae0a393e.json +0 -1
  192. package/.output/public/_nuxt/dSX5D8ur.js +0 -28
  193. package/.output/public/_nuxt/entry.CGwcggc4.css +0 -1
  194. package/.output/public/_nuxt/o60RgyTd.js +0 -1
  195. package/.output/server/chunks/_/native-backup-jobs.mjs.map +0 -1
  196. package/.output/server/chunks/_/native-backup.mjs.map +0 -1
@@ -0,0 +1,116 @@
1
+ import { c as createError } from '../nitro/nitro.mjs';
2
+ import { rm } from 'node:fs/promises';
3
+ import { basename } from 'node:path';
4
+
5
+ const NATIVE_BACKUP_TTL_MS = 30 * 60 * 1e3;
6
+
7
+ const nativeBackupJobs = /* @__PURE__ */ new Map();
8
+ function setJob(jobId, record) {
9
+ nativeBackupJobs.set(jobId, record);
10
+ }
11
+ function updateJob(jobId, patch) {
12
+ const current = nativeBackupJobs.get(jobId);
13
+ if (!current) {
14
+ return;
15
+ }
16
+ nativeBackupJobs.set(jobId, {
17
+ ...current,
18
+ ...patch
19
+ });
20
+ }
21
+ function getJob(jobId) {
22
+ return nativeBackupJobs.get(jobId);
23
+ }
24
+ async function destroyNativeBackupJob(jobId) {
25
+ const record = getJob(jobId);
26
+ if (!record) {
27
+ return;
28
+ }
29
+ if (record.cleanupTimer) {
30
+ clearTimeout(record.cleanupTimer);
31
+ }
32
+ nativeBackupJobs.delete(jobId);
33
+ await rm(record.tempDir, { recursive: true, force: true });
34
+ }
35
+ function scheduleCleanup(jobId) {
36
+ var _a, _b, _c;
37
+ const record = getJob(jobId);
38
+ if (!record) {
39
+ return;
40
+ }
41
+ (_b = (_a = record.cleanupTimer) == null ? void 0 : _a.refresh) == null ? void 0 : _b.call(_a);
42
+ if (record.cleanupTimer) {
43
+ clearTimeout(record.cleanupTimer);
44
+ }
45
+ const timer = setTimeout(() => {
46
+ void destroyNativeBackupJob(jobId);
47
+ }, NATIVE_BACKUP_TTL_MS);
48
+ (_c = timer.unref) == null ? void 0 : _c.call(timer);
49
+ updateJob(jobId, { cleanupTimer: timer });
50
+ }
51
+ function createJobRecord(jobId, operation, type, tempDir, tool) {
52
+ return {
53
+ jobId,
54
+ operation,
55
+ status: "queued",
56
+ stage: "queued",
57
+ databaseType: type,
58
+ tool,
59
+ progress: 0,
60
+ message: "Queued",
61
+ startedAt: (/* @__PURE__ */ new Date()).toISOString(),
62
+ tempDir
63
+ };
64
+ }
65
+ function getNativeBackupJobSnapshot(jobId) {
66
+ const record = getJob(jobId);
67
+ if (!record) {
68
+ throw createError({
69
+ statusCode: 404,
70
+ statusMessage: "Backup job not found or has expired."
71
+ });
72
+ }
73
+ return {
74
+ jobId: record.jobId,
75
+ operation: record.operation,
76
+ status: record.status,
77
+ stage: record.stage,
78
+ databaseType: record.databaseType,
79
+ tool: record.tool,
80
+ progress: record.progress,
81
+ message: record.message,
82
+ bytesProcessed: record.bytesProcessed,
83
+ bytesTotal: record.bytesTotal,
84
+ startedAt: record.startedAt,
85
+ completedAt: record.completedAt,
86
+ duration: record.duration,
87
+ downloadReady: record.downloadReady,
88
+ downloadFileName: record.downloadFileName,
89
+ downloadUrl: record.downloadUrl,
90
+ warnings: record.warnings,
91
+ error: record.error
92
+ };
93
+ }
94
+ function getNativeExportDownload(jobId) {
95
+ const record = getJob(jobId);
96
+ if (!record || record.operation !== "export" || !record.artifactPath) {
97
+ throw createError({
98
+ statusCode: 404,
99
+ statusMessage: "Export artifact not found or has expired."
100
+ });
101
+ }
102
+ if (record.status !== "completed") {
103
+ throw createError({
104
+ statusCode: 409,
105
+ statusMessage: "Export artifact is not ready yet."
106
+ });
107
+ }
108
+ return {
109
+ filePath: record.artifactPath,
110
+ fileName: record.downloadFileName || basename(record.artifactPath),
111
+ contentType: record.artifactContentType || "application/octet-stream"
112
+ };
113
+ }
114
+
115
+ export { getNativeExportDownload as a, getJob as b, createJobRecord as c, scheduleCleanup as d, getNativeBackupJobSnapshot as g, setJob as s, updateJob as u };
116
+ //# sourceMappingURL=registry.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.mjs","sources":["../../../../server/infrastructure/database/backup/native/jobs/types.ts","../../../../server/infrastructure/database/backup/native/jobs/registry.ts"],"sourcesContent":null,"names":[],"mappings":"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"}