@datatruck/cli 0.27.0 → 0.29.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.
Files changed (151) hide show
  1. package/Action/BackupAction.d.ts +75 -34
  2. package/Action/BackupAction.js +302 -246
  3. package/Action/CleanCacheAction.d.ts +8 -4
  4. package/Action/CleanCacheAction.js +8 -5
  5. package/Action/ConfigAction.d.ts +12 -5
  6. package/Action/ConfigAction.js +14 -18
  7. package/Action/CopyAction.d.ts +51 -0
  8. package/Action/CopyAction.js +165 -0
  9. package/Action/InitAction.d.ts +3 -3
  10. package/Action/InitAction.js +9 -9
  11. package/Action/PruneAction.d.ts +10 -16
  12. package/Action/PruneAction.js +37 -34
  13. package/Action/RestoreAction.d.ts +49 -24
  14. package/Action/RestoreAction.js +164 -195
  15. package/Action/SnapshotsAction.d.ts +8 -8
  16. package/Action/SnapshotsAction.js +9 -9
  17. package/CHANGELOG.md +513 -0
  18. package/Command/BackupCommand.d.ts +7 -4
  19. package/Command/BackupCommand.js +14 -26
  20. package/Command/CleanCacheCommand.d.ts +4 -4
  21. package/Command/CleanCacheCommand.js +26 -5
  22. package/Command/CommandAbstract.d.ts +10 -7
  23. package/Command/CommandAbstract.js +4 -1
  24. package/Command/ConfigCommand.d.ts +6 -9
  25. package/Command/ConfigCommand.js +13 -8
  26. package/Command/CopyCommand.d.ts +16 -0
  27. package/Command/CopyCommand.js +66 -0
  28. package/Command/InitCommand.d.ts +4 -4
  29. package/Command/InitCommand.js +13 -17
  30. package/Command/PruneCommand.d.ts +4 -10
  31. package/Command/PruneCommand.js +13 -12
  32. package/Command/RestoreCommand.d.ts +1 -1
  33. package/Command/RestoreCommand.js +13 -21
  34. package/Command/SnapshotsCommand.d.ts +4 -4
  35. package/Command/SnapshotsCommand.js +16 -15
  36. package/Command/StartServerCommand.d.ts +3 -3
  37. package/Config/Config.d.ts +11 -0
  38. package/Config/Config.js +18 -0
  39. package/Config/PrunePolicyConfig.d.ts +2 -2
  40. package/Factory/CommandFactory.d.ts +27 -34
  41. package/Factory/CommandFactory.js +27 -54
  42. package/Factory/RepositoryFactory.d.ts +1 -1
  43. package/Factory/RepositoryFactory.js +3 -3
  44. package/Factory/TaskFactory.d.ts +1 -1
  45. package/Factory/TaskFactory.js +3 -3
  46. package/Repository/DatatruckRepository.d.ts +10 -8
  47. package/Repository/DatatruckRepository.js +47 -25
  48. package/Repository/GitRepository.d.ts +9 -8
  49. package/Repository/GitRepository.js +22 -25
  50. package/Repository/RepositoryAbstract.d.ts +39 -37
  51. package/Repository/RepositoryAbstract.js +4 -5
  52. package/Repository/ResticRepository.d.ts +9 -8
  53. package/Repository/ResticRepository.js +30 -28
  54. package/Task/GitTask.d.ts +6 -7
  55. package/Task/GitTask.js +24 -30
  56. package/Task/MariadbTask.d.ts +4 -5
  57. package/Task/MariadbTask.js +26 -32
  58. package/Task/MssqlTask.d.ts +5 -3
  59. package/Task/MssqlTask.js +11 -12
  60. package/Task/MysqlDumpTask.d.ts +10 -3
  61. package/Task/MysqlDumpTask.js +102 -32
  62. package/Task/ScriptTask.d.ts +23 -18
  63. package/Task/ScriptTask.js +34 -24
  64. package/Task/SqlDumpTaskAbstract.d.ts +8 -3
  65. package/Task/SqlDumpTaskAbstract.js +32 -20
  66. package/Task/TaskAbstract.d.ts +24 -25
  67. package/Task/TaskAbstract.js +6 -10
  68. package/cli.js +13 -5
  69. package/config.schema.json +89 -1
  70. package/package.json +4 -5
  71. package/utils/DataFormat.d.ts +23 -12
  72. package/utils/DataFormat.js +36 -14
  73. package/utils/cli.d.ts +3 -9
  74. package/utils/cli.js +19 -55
  75. package/utils/crypto.d.ts +1 -0
  76. package/utils/crypto.js +15 -0
  77. package/utils/datatruck/client.d.ts +2 -0
  78. package/utils/datatruck/client.js +3 -0
  79. package/utils/datatruck/config.d.ts +2 -0
  80. package/utils/datatruck/config.js +18 -3
  81. package/utils/datatruck/paths.d.ts +5 -9
  82. package/utils/datatruck/paths.js +2 -2
  83. package/utils/datatruck/snapshot.d.ts +5 -2
  84. package/utils/datatruck/snapshot.js +12 -22
  85. package/utils/date.d.ts +21 -4
  86. package/utils/date.js +46 -24
  87. package/utils/fs.d.ts +16 -11
  88. package/utils/fs.js +81 -48
  89. package/utils/list.d.ts +64 -0
  90. package/utils/list.js +145 -0
  91. package/utils/mysql.d.ts +2 -0
  92. package/utils/mysql.js +21 -2
  93. package/utils/process.d.ts +1 -0
  94. package/utils/process.js +24 -31
  95. package/utils/progress.d.ts +33 -0
  96. package/utils/progress.js +113 -0
  97. package/utils/steps.d.ts +11 -0
  98. package/utils/steps.js +22 -10
  99. package/utils/stream.d.ts +7 -0
  100. package/utils/stream.js +10 -0
  101. package/utils/string.d.ts +0 -1
  102. package/utils/string.js +1 -13
  103. package/utils/tar.d.ts +10 -3
  104. package/utils/tar.js +73 -45
  105. package/utils/temp.d.ts +26 -0
  106. package/utils/temp.js +133 -0
  107. package/utils/virtual-fs.d.ts +6 -2
  108. package/utils/virtual-fs.js +6 -0
  109. package/Action/BackupSessionsAction.d.ts +0 -13
  110. package/Action/BackupSessionsAction.js +0 -18
  111. package/Action/RestoreSessionsAction.d.ts +0 -13
  112. package/Action/RestoreSessionsAction.js +0 -18
  113. package/Command/BackupSessionsCommand.d.ts +0 -12
  114. package/Command/BackupSessionsCommand.js +0 -92
  115. package/Command/RestoreSessionsCommand.d.ts +0 -12
  116. package/Command/RestoreSessionsCommand.js +0 -91
  117. package/Decorator/EntityDecorator.d.ts +0 -11
  118. package/Decorator/EntityDecorator.js +0 -17
  119. package/Entity/BackupSessionEntity.d.ts +0 -6
  120. package/Entity/BackupSessionEntity.js +0 -25
  121. package/Entity/BackupSessionRepositoryEntity.d.ts +0 -6
  122. package/Entity/BackupSessionRepositoryEntity.js +0 -25
  123. package/Entity/BackupSessionTaskEntity.d.ts +0 -5
  124. package/Entity/BackupSessionTaskEntity.js +0 -24
  125. package/Entity/CrudEntityAbstract.d.ts +0 -5
  126. package/Entity/CrudEntityAbstract.js +0 -9
  127. package/Entity/RestoreSessionEntity.d.ts +0 -5
  128. package/Entity/RestoreSessionEntity.js +0 -24
  129. package/Entity/RestoreSessionRepositoryEntity.d.ts +0 -6
  130. package/Entity/RestoreSessionRepositoryEntity.js +0 -25
  131. package/Entity/RestoreSessionTaskEntity.d.ts +0 -5
  132. package/Entity/RestoreSessionTaskEntity.js +0 -24
  133. package/Entity/StateEntityAbstract.d.ts +0 -9
  134. package/Entity/StateEntityAbstract.js +0 -12
  135. package/Factory/EntityFactory.d.ts +0 -6
  136. package/Factory/EntityFactory.js +0 -40
  137. package/SessionDriver/ConsoleSessionDriver.d.ts +0 -42
  138. package/SessionDriver/ConsoleSessionDriver.js +0 -208
  139. package/SessionDriver/SessionDriverAbstract.d.ts +0 -77
  140. package/SessionDriver/SessionDriverAbstract.js +0 -28
  141. package/SessionDriver/SqliteSessionDriver.d.ts +0 -20
  142. package/SessionDriver/SqliteSessionDriver.js +0 -173
  143. package/SessionManager/BackupSessionManager.d.ts +0 -45
  144. package/SessionManager/BackupSessionManager.js +0 -218
  145. package/SessionManager/RestoreSessionManager.d.ts +0 -47
  146. package/SessionManager/RestoreSessionManager.js +0 -218
  147. package/SessionManager/SessionManagerAbstract.d.ts +0 -18
  148. package/SessionManager/SessionManagerAbstract.js +0 -36
  149. package/migrations/001-initial.sql +0 -98
  150. package/utils/entity.d.ts +0 -4
  151. package/utils/entity.js +0 -10
@@ -1,218 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BackupSessionManager = void 0;
7
- const SessionDriverAbstract_1 = require("../SessionDriver/SessionDriverAbstract");
8
- const ObjectVault_1 = require("../utils/ObjectVault");
9
- const SessionManagerAbstract_1 = __importDefault(require("./SessionManagerAbstract"));
10
- class BackupSessionManager extends SessionManagerAbstract_1.default {
11
- sessionVault = new ObjectVault_1.ObjectVault();
12
- taskVault = new ObjectVault_1.ObjectVault();
13
- repositoryVault = new ObjectVault_1.ObjectVault();
14
- findId(data) {
15
- return this.sessionVault.getId([data.packageName]);
16
- }
17
- findTaskId(data) {
18
- const sessionId = this.findId(data);
19
- return this.taskVault.getId([sessionId, data.taskName]);
20
- }
21
- findRepositoryId(data) {
22
- const sessionId = this.findId(data);
23
- return this.repositoryVault.getId([sessionId, data.repositoryName]);
24
- }
25
- async initDrivers() {
26
- const drivers = [this.options.driver, ...(this.options.altDrivers ?? [])];
27
- for (const driver of drivers) {
28
- await driver.onInit();
29
- }
30
- }
31
- async endDrivers(data) {
32
- const drivers = [this.options.driver, ...(this.options.altDrivers ?? [])];
33
- this.stopDelayedProgress();
34
- for (const driver of drivers) {
35
- await driver.onEnd(data);
36
- }
37
- }
38
- async alter(data) {
39
- const drivers = [this.options.driver, ...(this.options.altDrivers ?? [])];
40
- const write = async () => {
41
- for (const driver of drivers) {
42
- await driver.onWrite(data);
43
- }
44
- };
45
- if (data.action === SessionDriverAbstract_1.ActionEnum.Progress &&
46
- !this.checkProgress(data.data.progress?.relative?.description)) {
47
- this.delayProgress(write);
48
- }
49
- else {
50
- this.stopDelayedProgress();
51
- await write();
52
- }
53
- return data.data.id;
54
- }
55
- async readAll(options) {
56
- return this.options.driver?.onRead(options, SessionDriverAbstract_1.EntityEnum.BackupSession);
57
- }
58
- async init(input) {
59
- return await this.alter({
60
- action: SessionDriverAbstract_1.ActionEnum.Init,
61
- entity: SessionDriverAbstract_1.EntityEnum.BackupSession,
62
- data: this.sessionVault.add({
63
- keys: [input.packageName],
64
- handler: (id) => ({
65
- ...input,
66
- id: id,
67
- creationDate: new Date().toISOString(),
68
- state: null,
69
- }),
70
- }),
71
- });
72
- }
73
- async initTask(input) {
74
- return await this.alter({
75
- action: SessionDriverAbstract_1.ActionEnum.Init,
76
- entity: SessionDriverAbstract_1.EntityEnum.BackupSessionTask,
77
- sessionData: this.sessionVault.get(input.sessionId),
78
- data: this.taskVault.add({
79
- keys: [input.sessionId, input.taskName],
80
- handler: (id) => ({
81
- ...input,
82
- id: id,
83
- creationDate: new Date().toISOString(),
84
- state: null,
85
- }),
86
- }),
87
- });
88
- }
89
- async initRepository(input) {
90
- return await this.alter({
91
- action: SessionDriverAbstract_1.ActionEnum.Init,
92
- entity: SessionDriverAbstract_1.EntityEnum.BackupSessionRepository,
93
- sessionData: this.sessionVault.get(input.sessionId),
94
- data: this.repositoryVault.add({
95
- keys: [input.sessionId, input.repositoryName],
96
- handler: (id) => ({
97
- ...input,
98
- id: id,
99
- creationDate: new Date().toISOString(),
100
- state: null,
101
- }),
102
- }),
103
- });
104
- }
105
- async start(input) {
106
- return await this.alter({
107
- action: SessionDriverAbstract_1.ActionEnum.Start,
108
- entity: SessionDriverAbstract_1.EntityEnum.BackupSession,
109
- data: {
110
- ...this.sessionVault.get(input.id),
111
- ...input,
112
- startDate: new Date().toISOString(),
113
- updatingDate: new Date().toISOString(),
114
- state: "started",
115
- },
116
- });
117
- }
118
- async end(input) {
119
- return await this.alter({
120
- action: SessionDriverAbstract_1.ActionEnum.End,
121
- entity: SessionDriverAbstract_1.EntityEnum.BackupSession,
122
- data: {
123
- ...this.sessionVault.get(input.id),
124
- ...input,
125
- endDate: new Date().toISOString(),
126
- updatingDate: new Date().toISOString(),
127
- state: "ended",
128
- },
129
- });
130
- }
131
- async startTask(input) {
132
- const object = this.taskVault.get(input.id);
133
- return await this.alter({
134
- action: SessionDriverAbstract_1.ActionEnum.Start,
135
- entity: SessionDriverAbstract_1.EntityEnum.BackupSessionTask,
136
- sessionData: this.sessionVault.get(object.sessionId),
137
- data: {
138
- ...object,
139
- ...input,
140
- state: "started",
141
- startDate: new Date().toISOString(),
142
- updatingDate: new Date().toISOString(),
143
- },
144
- });
145
- }
146
- async progressTask(input) {
147
- const object = this.taskVault.get(input.id);
148
- return await this.alter({
149
- action: SessionDriverAbstract_1.ActionEnum.Progress,
150
- entity: SessionDriverAbstract_1.EntityEnum.BackupSessionTask,
151
- sessionData: this.sessionVault.get(object.sessionId),
152
- data: {
153
- ...object,
154
- ...input,
155
- updatingDate: new Date().toISOString(),
156
- },
157
- });
158
- }
159
- async endTask(input) {
160
- const object = this.taskVault.get(input.id);
161
- return await this.alter({
162
- action: SessionDriverAbstract_1.ActionEnum.End,
163
- entity: SessionDriverAbstract_1.EntityEnum.BackupSessionTask,
164
- sessionData: this.sessionVault.get(object.sessionId),
165
- data: {
166
- ...object,
167
- ...input,
168
- endDate: new Date().toISOString(),
169
- updatingDate: new Date().toISOString(),
170
- state: "ended",
171
- },
172
- });
173
- }
174
- async startRepository(input) {
175
- const object = this.repositoryVault.get(input.id);
176
- return await this.alter({
177
- action: SessionDriverAbstract_1.ActionEnum.Start,
178
- entity: SessionDriverAbstract_1.EntityEnum.BackupSessionRepository,
179
- sessionData: this.sessionVault.get(object.sessionId),
180
- data: {
181
- ...object,
182
- ...input,
183
- startDate: new Date().toISOString(),
184
- updatingDate: new Date().toISOString(),
185
- state: "started",
186
- },
187
- });
188
- }
189
- async progressRepository(input) {
190
- const object = this.repositoryVault.get(input.id);
191
- return await this.alter({
192
- action: SessionDriverAbstract_1.ActionEnum.Progress,
193
- entity: SessionDriverAbstract_1.EntityEnum.BackupSessionRepository,
194
- sessionData: this.sessionVault.get(object.sessionId),
195
- data: {
196
- ...object,
197
- ...input,
198
- updatingDate: new Date().toISOString(),
199
- },
200
- });
201
- }
202
- async endRepository(input) {
203
- const object = this.repositoryVault.get(input.id);
204
- return await this.alter({
205
- action: SessionDriverAbstract_1.ActionEnum.End,
206
- entity: SessionDriverAbstract_1.EntityEnum.BackupSessionRepository,
207
- sessionData: this.sessionVault.get(object.sessionId),
208
- data: {
209
- ...object,
210
- ...input,
211
- endDate: new Date().toISOString(),
212
- updatingDate: new Date().toISOString(),
213
- state: "ended",
214
- },
215
- });
216
- }
217
- }
218
- exports.BackupSessionManager = BackupSessionManager;
@@ -1,47 +0,0 @@
1
- import { BackupSessionsActionOptionsType } from "../Action/BackupSessionsAction";
2
- import { RestoreSessionEntity } from "../Entity/RestoreSessionEntity";
3
- import { RestoreSessionRepositoryEntity } from "../Entity/RestoreSessionRepositoryEntity";
4
- import { RestoreSessionTaskEntity } from "../Entity/RestoreSessionTaskEntity";
5
- import { WriteDataType } from "../SessionDriver/SessionDriverAbstract";
6
- import { ObjectVault } from "../utils/ObjectVault";
7
- import { Progress } from "../utils/progress";
8
- import SessionManagerAbstract from "./SessionManagerAbstract";
9
- export declare class RestoreSessionManager extends SessionManagerAbstract {
10
- sessionVault: ObjectVault<RestoreSessionEntity>;
11
- repositoryVault: ObjectVault<RestoreSessionRepositoryEntity>;
12
- taskVault: ObjectVault<RestoreSessionTaskEntity>;
13
- protected lastProgressDate: number | undefined;
14
- protected lastRelativeProgressDescription: string | null | undefined;
15
- findId(data: {
16
- packageName: string;
17
- }): number;
18
- findTaskId(data: {
19
- packageName: string;
20
- taskName: string;
21
- }): number;
22
- findRepositoryId(data: {
23
- packageName: string;
24
- repositoryName: string;
25
- }): number;
26
- initDrivers(): Promise<void>;
27
- endDrivers(): Promise<void>;
28
- protected alter(data: WriteDataType): Promise<number>;
29
- readAll(options: BackupSessionsActionOptionsType): Promise<import("../SessionDriver/SessionDriverAbstract").ReadResultType[]>;
30
- init(input: Pick<RestoreSessionEntity, "packageName" | "snapshotId">): Promise<number>;
31
- initTask(input: Pick<RestoreSessionTaskEntity, "sessionId" | "taskName">): Promise<number>;
32
- initRepository(input: Pick<RestoreSessionRepositoryEntity, "sessionId" | "repositoryName" | "repositoryType">): Promise<number>;
33
- start(input: Pick<RestoreSessionEntity, "id">): Promise<number>;
34
- end(input: Pick<RestoreSessionEntity, "id" | "error">): Promise<number>;
35
- startTask(input: Pick<RestoreSessionTaskEntity, "id">): Promise<number>;
36
- startRepository(input: Pick<RestoreSessionRepositoryEntity, "id">): Promise<number>;
37
- progressTask(input: {
38
- id: number;
39
- progress: Progress;
40
- }): Promise<number>;
41
- endTask(input: Pick<RestoreSessionTaskEntity, "id" | "error">): Promise<number>;
42
- progressRepository(input: {
43
- id: number;
44
- progress: Progress;
45
- }): Promise<number>;
46
- endRepository(input: Pick<RestoreSessionRepositoryEntity, "id" | "error">): Promise<number>;
47
- }
@@ -1,218 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RestoreSessionManager = void 0;
7
- const SessionDriverAbstract_1 = require("../SessionDriver/SessionDriverAbstract");
8
- const ObjectVault_1 = require("../utils/ObjectVault");
9
- const SessionManagerAbstract_1 = __importDefault(require("./SessionManagerAbstract"));
10
- class RestoreSessionManager extends SessionManagerAbstract_1.default {
11
- sessionVault = new ObjectVault_1.ObjectVault();
12
- repositoryVault = new ObjectVault_1.ObjectVault();
13
- taskVault = new ObjectVault_1.ObjectVault();
14
- findId(data) {
15
- return this.sessionVault.getId([data.packageName]);
16
- }
17
- findTaskId(data) {
18
- const sessionId = this.findId(data);
19
- return this.taskVault.getId([sessionId, data.taskName]);
20
- }
21
- findRepositoryId(data) {
22
- const sessionId = this.findId(data);
23
- return this.repositoryVault.getId([sessionId, data.repositoryName]);
24
- }
25
- async initDrivers() {
26
- const drivers = [this.options.driver, ...(this.options.altDrivers ?? [])];
27
- for (const driver of drivers) {
28
- await driver.onInit();
29
- }
30
- }
31
- async endDrivers() {
32
- const drivers = [this.options.driver, ...(this.options.altDrivers ?? [])];
33
- this.stopDelayedProgress();
34
- for (const driver of drivers) {
35
- await driver.onEnd();
36
- }
37
- }
38
- async alter(data) {
39
- const drivers = [this.options.driver, ...(this.options.altDrivers ?? [])];
40
- const write = async () => {
41
- for (const driver of drivers) {
42
- await driver.onWrite(data);
43
- }
44
- };
45
- if (data.action === SessionDriverAbstract_1.ActionEnum.Progress &&
46
- !this.checkProgress(data.data.progress?.relative?.description)) {
47
- this.delayProgress(write);
48
- }
49
- else {
50
- this.stopDelayedProgress();
51
- await write();
52
- }
53
- return data.data.id;
54
- }
55
- async readAll(options) {
56
- return this.options.driver.onRead(options, SessionDriverAbstract_1.EntityEnum.RestoreSession);
57
- }
58
- async init(input) {
59
- return await this.alter({
60
- action: SessionDriverAbstract_1.ActionEnum.Init,
61
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSession,
62
- data: this.sessionVault.add({
63
- keys: [input.packageName],
64
- handler: (id) => ({
65
- ...input,
66
- id: id,
67
- creationDate: new Date().toISOString(),
68
- state: null,
69
- }),
70
- }),
71
- });
72
- }
73
- async initTask(input) {
74
- return await this.alter({
75
- action: SessionDriverAbstract_1.ActionEnum.Init,
76
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSessionTask,
77
- sessionData: this.sessionVault.get(input.sessionId),
78
- data: this.taskVault.add({
79
- keys: [input.sessionId, input.taskName],
80
- handler: (id) => ({
81
- ...input,
82
- id: id,
83
- taskName: input.taskName,
84
- creationDate: new Date().toISOString(),
85
- state: null,
86
- }),
87
- }),
88
- });
89
- }
90
- async initRepository(input) {
91
- return await this.alter({
92
- action: SessionDriverAbstract_1.ActionEnum.Init,
93
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSessionRepository,
94
- sessionData: this.sessionVault.get(input.sessionId),
95
- data: this.repositoryVault.add({
96
- keys: [input.sessionId, input.repositoryName],
97
- handler: (id) => ({
98
- ...input,
99
- id: id,
100
- creationDate: new Date().toISOString(),
101
- state: null,
102
- }),
103
- }),
104
- });
105
- }
106
- async start(input) {
107
- return await this.alter({
108
- action: SessionDriverAbstract_1.ActionEnum.Start,
109
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSession,
110
- data: {
111
- ...this.sessionVault.get(input.id),
112
- ...input,
113
- startDate: new Date().toISOString(),
114
- state: "started",
115
- },
116
- });
117
- }
118
- async end(input) {
119
- return await this.alter({
120
- action: SessionDriverAbstract_1.ActionEnum.End,
121
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSession,
122
- data: {
123
- ...this.sessionVault.get(input.id),
124
- ...input,
125
- endDate: new Date().toISOString(),
126
- updatingDate: new Date().toISOString(),
127
- state: "ended",
128
- },
129
- });
130
- }
131
- async startTask(input) {
132
- const object = this.taskVault.get(input.id);
133
- return await this.alter({
134
- action: SessionDriverAbstract_1.ActionEnum.Start,
135
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSessionTask,
136
- sessionData: this.sessionVault.get(object.sessionId),
137
- data: {
138
- ...object,
139
- ...input,
140
- state: "started",
141
- startDate: new Date().toISOString(),
142
- updatingDate: new Date().toISOString(),
143
- },
144
- });
145
- }
146
- async startRepository(input) {
147
- const object = this.repositoryVault.get(input.id);
148
- return await this.alter({
149
- action: SessionDriverAbstract_1.ActionEnum.Start,
150
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSessionRepository,
151
- sessionData: this.sessionVault.get(object.sessionId),
152
- data: {
153
- ...object,
154
- ...input,
155
- state: "started",
156
- startDate: new Date().toISOString(),
157
- updatingDate: new Date().toISOString(),
158
- },
159
- });
160
- }
161
- async progressTask(input) {
162
- const object = this.taskVault.get(input.id);
163
- return await this.alter({
164
- action: SessionDriverAbstract_1.ActionEnum.Progress,
165
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSessionTask,
166
- sessionData: this.sessionVault.get(object.sessionId),
167
- data: {
168
- ...object,
169
- ...input,
170
- updatingDate: new Date().toISOString(),
171
- },
172
- });
173
- }
174
- async endTask(input) {
175
- const object = this.taskVault.get(input.id);
176
- return await this.alter({
177
- action: SessionDriverAbstract_1.ActionEnum.End,
178
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSessionTask,
179
- sessionData: this.sessionVault.get(object.sessionId),
180
- data: {
181
- ...object,
182
- ...input,
183
- endDate: new Date().toISOString(),
184
- updatingDate: new Date().toISOString(),
185
- state: "ended",
186
- },
187
- });
188
- }
189
- async progressRepository(input) {
190
- const object = this.repositoryVault.get(input.id);
191
- return await this.alter({
192
- action: SessionDriverAbstract_1.ActionEnum.Progress,
193
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSessionRepository,
194
- sessionData: this.sessionVault.get(object.sessionId),
195
- data: {
196
- ...object,
197
- ...input,
198
- updatingDate: new Date().toISOString(),
199
- },
200
- });
201
- }
202
- async endRepository(input) {
203
- const object = this.repositoryVault.get(input.id);
204
- return await this.alter({
205
- action: SessionDriverAbstract_1.ActionEnum.End,
206
- entity: SessionDriverAbstract_1.EntityEnum.RestoreSessionRepository,
207
- sessionData: this.sessionVault.get(object.sessionId),
208
- data: {
209
- ...object,
210
- ...input,
211
- endDate: new Date().toISOString(),
212
- updatingDate: new Date().toISOString(),
213
- state: "ended",
214
- },
215
- });
216
- }
217
- }
218
- exports.RestoreSessionManager = RestoreSessionManager;
@@ -1,18 +0,0 @@
1
- /// <reference types="node" />
2
- import { SessionDriverAbstract } from "../SessionDriver/SessionDriverAbstract";
3
- export type OptionsType = {
4
- driver: SessionDriverAbstract;
5
- altDrivers?: SessionDriverAbstract[];
6
- progressInterval?: number;
7
- verbose?: boolean;
8
- };
9
- export default abstract class SessionManagerAbstract {
10
- readonly options: OptionsType;
11
- protected lastProgressDate: number | undefined;
12
- protected lastRelativeProgressDescription: string | null | undefined;
13
- protected progressTimeout: ReturnType<typeof setTimeout> | undefined;
14
- constructor(options: OptionsType);
15
- protected stopDelayedProgress(): void;
16
- protected delayProgress(cb: () => Promise<any>): void;
17
- protected checkProgress(description: string | null | undefined): boolean;
18
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class SessionManagerAbstract {
4
- options;
5
- lastProgressDate;
6
- lastRelativeProgressDescription;
7
- progressTimeout;
8
- constructor(options) {
9
- this.options = options;
10
- }
11
- stopDelayedProgress() {
12
- clearTimeout(this.progressTimeout);
13
- this.progressTimeout = undefined;
14
- }
15
- delayProgress(cb) {
16
- clearTimeout(this.progressTimeout);
17
- this.progressTimeout = setTimeout(async () => {
18
- this.progressTimeout = undefined;
19
- await cb();
20
- }, 1500);
21
- }
22
- checkProgress(description) {
23
- const progressInterval = this.options.progressInterval;
24
- if (progressInterval) {
25
- const skip = this.lastProgressDate &&
26
- description === this.lastRelativeProgressDescription &&
27
- Date.now() - this.lastProgressDate < progressInterval;
28
- if (skip)
29
- return false;
30
- this.lastProgressDate = Date.now();
31
- this.lastRelativeProgressDescription = description;
32
- }
33
- return true;
34
- }
35
- }
36
- exports.default = SessionManagerAbstract;
@@ -1,98 +0,0 @@
1
- --------------------------------------------------------------------------------
2
- -- Up
3
- --------------------------------------------------------------------------------
4
-
5
- CREATE TABLE "backup_session" (
6
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
7
- "creationDate" TEXT NOT NULL,
8
- "updatingDate" TEXT,
9
-
10
- "startDate" TEXT,
11
- "endDate" TEXT,
12
- "state" TEXT,
13
- "error" TEXT,
14
- "progress" TEXT,
15
-
16
- "snapshotId" TEXT NOT NULL,
17
- "packageName" TEXT NOT NULL,
18
- -- "componentName" TEXT NOT NULL,
19
- "tags" TEXT
20
- );
21
-
22
- CREATE TABLE "backup_session_task" (
23
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
24
- "creationDate" TEXT NOT NULL,
25
- "updatingDate" TEXT,
26
-
27
- "startDate" TEXT,
28
- "endDate" TEXT,
29
- "state" TEXT,
30
- "error" TEXT,
31
- "progress" TEXT,
32
-
33
- "sessionId" INTEGER NOT NULL,
34
- "taskName" TEXT NOT NULL
35
- );
36
-
37
- CREATE TABLE "backup_session_repository" (
38
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
39
- "creationDate" TEXT NOT NULL,
40
- "updatingDate" TEXT,
41
-
42
- "startDate" TEXT,
43
- "endDate" TEXT,
44
- "state" TEXT,
45
- "error" TEXT,
46
- "progress" TEXT,
47
-
48
- "sessionId" INTEGER NOT NULL,
49
- "repositoryName" TEXT NOT NULL,
50
- "repositoryType" TEXT NOT NULL
51
- );
52
-
53
- CREATE TABLE "restore_session" (
54
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
55
- "creationDate" TEXT NOT NULL,
56
- "updatingDate" TEXT,
57
-
58
- "startDate" TEXT,
59
- "endDate" TEXT,
60
- "state" TEXT,
61
- "error" TEXT,
62
- "progress" TEXT,
63
-
64
- "snapshotId" TEXT NOT NULL,
65
- "packageName" TEXT NOT NULL -- ,
66
- -- "componentName" TEXT NOT NULL
67
- );
68
-
69
- CREATE TABLE "restore_session_task" (
70
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
71
- "creationDate" TEXT NOT NULL,
72
- "updatingDate" TEXT,
73
-
74
- "startDate" TEXT,
75
- "endDate" TEXT,
76
- "state" TEXT,
77
- "error" TEXT,
78
- "progress" TEXT,
79
-
80
- "sessionId" INTEGER NOT NULL,
81
- "taskName" TEXT NOT NULL
82
- );
83
-
84
- CREATE TABLE "restore_session_repository" (
85
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
86
- "creationDate" TEXT NOT NULL,
87
- "updatingDate" TEXT,
88
-
89
- "startDate" TEXT,
90
- "endDate" TEXT,
91
- "state" TEXT,
92
- "error" TEXT,
93
- "progress" TEXT,
94
-
95
- "sessionId" INTEGER NOT NULL,
96
- "repositoryName" TEXT NOT NULL,
97
- "repositoryType" TEXT NOT NULL
98
- );
package/utils/entity.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export declare function makeTableSelector<T>(tableName: string): {
2
- (name?: keyof T): string;
3
- toString: any;
4
- };
package/utils/entity.js DELETED
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeTableSelector = void 0;
4
- function makeTableSelector(tableName) {
5
- const q = (value) => `\`${value}\``;
6
- const cb = (name) => `${q(tableName)}${name ? `.${q(name)}` : ""}`;
7
- cb.toString = cb;
8
- return cb;
9
- }
10
- exports.makeTableSelector = makeTableSelector;