@datatruck/cli 0.32.1 → 0.32.2

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 (189) hide show
  1. package/config.schema.json +1224 -1271
  2. package/{Action → lib/Action}/BackupAction.d.ts +9 -9
  3. package/{Action → lib/Action}/BackupAction.js +27 -8
  4. package/{Action → lib/Action}/ConfigAction.d.ts +9 -9
  5. package/{Action → lib/Action}/ConfigAction.js +4 -2
  6. package/{Action → lib/Action}/CopyAction.d.ts +5 -5
  7. package/{Action → lib/Action}/InitAction.d.ts +3 -3
  8. package/{Action → lib/Action}/PruneAction.d.ts +5 -5
  9. package/{Action → lib/Action}/RestoreAction.d.ts +5 -5
  10. package/{Action → lib/Action}/SnapshotsAction.d.ts +5 -5
  11. package/{Command → lib/Command}/BackupCommand.d.ts +2 -2
  12. package/{Command → lib/Command}/CommandAbstract.d.ts +4 -4
  13. package/{Command → lib/Command}/ConfigCommand.d.ts +2 -2
  14. package/{Command → lib/Command}/InitCommand.d.ts +2 -2
  15. package/{Command → lib/Command}/PruneCommand.d.ts +2 -2
  16. package/{Command → lib/Command}/RestoreCommand.d.ts +2 -2
  17. package/{Command → lib/Command}/SnapshotsCommand.d.ts +2 -2
  18. package/lib/Config/Config.d.ts +28 -0
  19. package/lib/Config/PackageConfig.d.ts +24 -0
  20. package/lib/Config/PackageConfig.js +2 -0
  21. package/lib/Config/PackageRepositoryConfig.d.ts +15 -0
  22. package/lib/Config/PackageRepositoryConfig.js +2 -0
  23. package/lib/Config/PrunePolicyConfig.d.ts +2 -0
  24. package/lib/Config/PrunePolicyConfig.js +2 -0
  25. package/lib/Config/RepositoryConfig.d.ts +27 -0
  26. package/lib/Config/RepositoryConfig.js +2 -0
  27. package/lib/Config/TaskConfig.d.ts +31 -0
  28. package/lib/Config/TaskConfig.js +2 -0
  29. package/{Factory → lib/Factory}/CommandFactory.d.ts +5 -5
  30. package/lib/Factory/RepositoryFactory.d.ts +3 -0
  31. package/lib/Factory/TaskFactory.d.ts +3 -0
  32. package/{Repository → lib/Repository}/DatatruckRepository.d.ts +9 -12
  33. package/{Repository → lib/Repository}/DatatruckRepository.js +1 -38
  34. package/lib/Repository/GitRepository.d.ts +28 -0
  35. package/{Repository → lib/Repository}/GitRepository.js +1 -15
  36. package/{Repository → lib/Repository}/RepositoryAbstract.d.ts +8 -8
  37. package/{Repository → lib/Repository}/ResticRepository.d.ts +11 -14
  38. package/{Repository → lib/Repository}/ResticRepository.js +1 -63
  39. package/{Task → lib/Task}/GitTask.d.ts +2 -4
  40. package/{Task → lib/Task}/GitTask.js +1 -42
  41. package/{Task → lib/Task}/MariadbTask.d.ts +2 -4
  42. package/{Task → lib/Task}/MariadbTask.js +1 -54
  43. package/{Task → lib/Task}/MssqlTask.d.ts +2 -4
  44. package/{Task → lib/Task}/MssqlTask.js +1 -14
  45. package/{Task → lib/Task}/MysqlDumpTask.d.ts +4 -5
  46. package/{Task → lib/Task}/MysqlDumpTask.js +1 -11
  47. package/{Task → lib/Task}/PostgresqlDumpTask.d.ts +5 -7
  48. package/{Task → lib/Task}/PostgresqlDumpTask.js +1 -5
  49. package/lib/Task/ScriptTask.d.ts +30 -0
  50. package/lib/Task/ScriptTask.js +55 -0
  51. package/{Task → lib/Task}/SqlDumpTaskAbstract.d.ts +5 -7
  52. package/{Task → lib/Task}/SqlDumpTaskAbstract.js +1 -43
  53. package/{Task → lib/Task}/TaskAbstract.d.ts +2 -2
  54. package/lib/cli.d.ts +4 -0
  55. package/lib/config.schema.d.ts +2 -0
  56. package/lib/config.schema.js +10 -0
  57. package/lib/index.d.ts +24 -0
  58. package/lib/index.js +21 -0
  59. package/{utils → lib/utils}/DataFormat.d.ts +4 -4
  60. package/{utils → lib/utils}/Git.d.ts +6 -6
  61. package/{utils → lib/utils}/Restic.d.ts +14 -14
  62. package/{utils → lib/utils}/datatruck/config.d.ts +20 -20
  63. package/lib/utils/datatruck/paths.d.ts +17 -0
  64. package/{utils → lib/utils}/datatruck/paths.js +3 -3
  65. package/{utils → lib/utils}/datatruck/repository-server.d.ts +1 -1
  66. package/{utils → lib/utils}/datatruck/snapshot.d.ts +2 -2
  67. package/{utils → lib/utils}/date.d.ts +3 -3
  68. package/{utils → lib/utils}/exit.d.ts +3 -3
  69. package/{utils → lib/utils}/mysql.d.ts +5 -4
  70. package/{utils → lib/utils}/mysql.js +2 -2
  71. package/{utils → lib/utils}/process.d.ts +8 -5
  72. package/lib/utils/reportSteps.d.ts +26 -0
  73. package/lib/utils/reportSteps.js +41 -0
  74. package/lib/utils/spawnSteps.d.ts +36 -0
  75. package/lib/utils/spawnSteps.js +74 -0
  76. package/{utils → lib/utils}/string.d.ts +3 -3
  77. package/{utils → lib/utils}/string.js +3 -3
  78. package/{utils → lib/utils}/tar.d.ts +0 -8
  79. package/{utils → lib/utils}/tar.js +1 -18
  80. package/package.json +39 -25
  81. package/CHANGELOG.md +0 -569
  82. package/Config/Config.d.ts +0 -28
  83. package/Config/Config.js +0 -140
  84. package/Config/PackageConfig.d.ts +0 -23
  85. package/Config/PackageConfig.js +0 -51
  86. package/Config/PackageRepositoryConfig.d.ts +0 -17
  87. package/Config/PackageRepositoryConfig.js +0 -37
  88. package/Config/PrunePolicyConfig.d.ts +0 -4
  89. package/Config/PrunePolicyConfig.js +0 -28
  90. package/Config/RepositoryConfig.d.ts +0 -24
  91. package/Config/RepositoryConfig.js +0 -62
  92. package/Config/TaskConfig.d.ts +0 -27
  93. package/Config/TaskConfig.js +0 -41
  94. package/Factory/RepositoryFactory.d.ts +0 -3
  95. package/Factory/TaskFactory.d.ts +0 -3
  96. package/JsonSchema/DefinitionEnum.d.ts +0 -26
  97. package/JsonSchema/DefinitionEnum.js +0 -33
  98. package/JsonSchema/JsonSchema.d.ts +0 -4
  99. package/JsonSchema/JsonSchema.js +0 -65
  100. package/JsonSchema/backup-def.d.ts +0 -30
  101. package/JsonSchema/backup-def.js +0 -18
  102. package/JsonSchema/copy-def.d.ts +0 -24
  103. package/JsonSchema/copy-def.js +0 -15
  104. package/Repository/GitRepository.d.ts +0 -31
  105. package/Task/ScriptTask.d.ts +0 -38
  106. package/Task/ScriptTask.js +0 -163
  107. package/cli.d.ts +0 -4
  108. package/index.d.ts +0 -1
  109. package/utils/datatruck/paths.d.ts +0 -17
  110. package/utils/path.d.ts +0 -1
  111. package/utils/path.js +0 -8
  112. package/utils/schema.d.ts +0 -34
  113. package/utils/schema.js +0 -36
  114. package/utils/steps.d.ts +0 -43
  115. package/utils/steps.js +0 -97
  116. /package/{Action → lib/Action}/CleanCacheAction.d.ts +0 -0
  117. /package/{Action → lib/Action}/CleanCacheAction.js +0 -0
  118. /package/{Action → lib/Action}/CopyAction.js +0 -0
  119. /package/{Action → lib/Action}/InitAction.js +0 -0
  120. /package/{Action → lib/Action}/PruneAction.js +0 -0
  121. /package/{Action → lib/Action}/RestoreAction.js +0 -0
  122. /package/{Action → lib/Action}/SnapshotsAction.js +0 -0
  123. /package/{Command → lib/Command}/BackupCommand.js +0 -0
  124. /package/{Command → lib/Command}/CleanCacheCommand.d.ts +0 -0
  125. /package/{Command → lib/Command}/CleanCacheCommand.js +0 -0
  126. /package/{Command → lib/Command}/CommandAbstract.js +0 -0
  127. /package/{Command → lib/Command}/ConfigCommand.js +0 -0
  128. /package/{Command → lib/Command}/CopyCommand.d.ts +0 -0
  129. /package/{Command → lib/Command}/CopyCommand.js +0 -0
  130. /package/{Command → lib/Command}/InitCommand.js +0 -0
  131. /package/{Command → lib/Command}/PruneCommand.js +0 -0
  132. /package/{Command → lib/Command}/RestoreCommand.js +0 -0
  133. /package/{Command → lib/Command}/SnapshotsCommand.js +0 -0
  134. /package/{Command → lib/Command}/StartServerCommand.d.ts +0 -0
  135. /package/{Command → lib/Command}/StartServerCommand.js +0 -0
  136. /package/{index.js → lib/Config/Config.js} +0 -0
  137. /package/{Error → lib/Error}/AppError.d.ts +0 -0
  138. /package/{Error → lib/Error}/AppError.js +0 -0
  139. /package/{Factory → lib/Factory}/CommandFactory.js +0 -0
  140. /package/{Factory → lib/Factory}/RepositoryFactory.js +0 -0
  141. /package/{Factory → lib/Factory}/TaskFactory.js +0 -0
  142. /package/{Repository → lib/Repository}/RepositoryAbstract.js +0 -0
  143. /package/{Task → lib/Task}/TaskAbstract.js +0 -0
  144. /package/{bin.d.ts → lib/bin.d.ts} +0 -0
  145. /package/{bin.js → lib/bin.js} +0 -0
  146. /package/{cli.js → lib/cli.js} +0 -0
  147. /package/{globalData.d.ts → lib/globalData.d.ts} +0 -0
  148. /package/{globalData.js → lib/globalData.js} +0 -0
  149. /package/{pkg.d.ts → lib/pkg.d.ts} +0 -0
  150. /package/{pkg.js → lib/pkg.js} +0 -0
  151. /package/{utils → lib/utils}/DataFormat.js +0 -0
  152. /package/{utils → lib/utils}/Git.js +0 -0
  153. /package/{utils → lib/utils}/Restic.js +0 -0
  154. /package/{utils → lib/utils}/async.d.ts +0 -0
  155. /package/{utils → lib/utils}/async.js +0 -0
  156. /package/{utils → lib/utils}/bytes.d.ts +0 -0
  157. /package/{utils → lib/utils}/bytes.js +0 -0
  158. /package/{utils → lib/utils}/cli.d.ts +0 -0
  159. /package/{utils → lib/utils}/cli.js +0 -0
  160. /package/{utils → lib/utils}/crypto.d.ts +0 -0
  161. /package/{utils → lib/utils}/crypto.js +0 -0
  162. /package/{utils → lib/utils}/datatruck/client.d.ts +0 -0
  163. /package/{utils → lib/utils}/datatruck/client.js +0 -0
  164. /package/{utils → lib/utils}/datatruck/config.js +0 -0
  165. /package/{utils → lib/utils}/datatruck/cron-server.d.ts +0 -0
  166. /package/{utils → lib/utils}/datatruck/cron-server.js +0 -0
  167. /package/{utils → lib/utils}/datatruck/repository-server.js +0 -0
  168. /package/{utils → lib/utils}/datatruck/snapshot.js +0 -0
  169. /package/{utils → lib/utils}/date.js +0 -0
  170. /package/{utils → lib/utils}/exit.js +0 -0
  171. /package/{utils → lib/utils}/fs.d.ts +0 -0
  172. /package/{utils → lib/utils}/fs.js +0 -0
  173. /package/{utils → lib/utils}/http.d.ts +0 -0
  174. /package/{utils → lib/utils}/http.js +0 -0
  175. /package/{utils → lib/utils}/list.d.ts +0 -0
  176. /package/{utils → lib/utils}/list.js +0 -0
  177. /package/{utils → lib/utils}/math.d.ts +0 -0
  178. /package/{utils → lib/utils}/math.js +0 -0
  179. /package/{utils → lib/utils}/object.d.ts +0 -0
  180. /package/{utils → lib/utils}/object.js +0 -0
  181. /package/{utils → lib/utils}/process.js +0 -0
  182. /package/{utils → lib/utils}/progress.d.ts +0 -0
  183. /package/{utils → lib/utils}/progress.js +0 -0
  184. /package/{utils → lib/utils}/stream.d.ts +0 -0
  185. /package/{utils → lib/utils}/stream.js +0 -0
  186. /package/{utils → lib/utils}/temp.d.ts +0 -0
  187. /package/{utils → lib/utils}/temp.js +0 -0
  188. /package/{utils → lib/utils}/virtual-fs.d.ts +0 -0
  189. /package/{utils → lib/utils}/virtual-fs.js +0 -0
package/Config/Config.js DELETED
@@ -1,140 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configDefinition = void 0;
4
- const DefinitionEnum_1 = require("../JsonSchema/DefinitionEnum");
5
- const backup_def_1 = require("../JsonSchema/backup-def");
6
- const copy_def_1 = require("../JsonSchema/copy-def");
7
- const ScriptTask_1 = require("../Task/ScriptTask");
8
- const DataFormat_1 = require("../utils/DataFormat");
9
- const schema_1 = require("../utils/schema");
10
- exports.configDefinition = {
11
- type: "object",
12
- required: ["repositories", "packages"],
13
- additionalProperties: false,
14
- properties: {
15
- $schema: { type: "string" },
16
- tempDir: { type: "string" },
17
- minFreeDiskSpace: { anyOf: [{ type: "integer" }, { type: "string" }] },
18
- reports: {
19
- type: "array",
20
- items: {
21
- type: "object",
22
- additionalProperties: false,
23
- properties: {
24
- when: { enum: ["success", "error"] },
25
- format: {
26
- enum: DataFormat_1.dataFormats.filter((f) => !["custom", "tpl"].includes(f)),
27
- },
28
- run: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.scriptTask, ScriptTask_1.ScriptTaskDefinitionEnum.step),
29
- },
30
- },
31
- },
32
- repositories: {
33
- type: "array",
34
- items: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.repository),
35
- },
36
- packages: {
37
- type: "array",
38
- items: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.package),
39
- },
40
- server: {
41
- type: "object",
42
- additionalProperties: false,
43
- properties: {
44
- log: { type: "boolean" },
45
- repository: {
46
- type: "object",
47
- additionalProperties: false,
48
- properties: {
49
- enabled: { type: "boolean" },
50
- listen: {
51
- type: "object",
52
- additionalProperties: false,
53
- properties: {
54
- port: { type: "integer" },
55
- address: { type: "string" },
56
- },
57
- },
58
- trustProxy: {
59
- anyOf: [
60
- { type: "boolean" },
61
- {
62
- type: "object",
63
- additionalProperties: false,
64
- required: ["remoteAddressHeader"],
65
- properties: {
66
- remoteAddressHeader: { type: "string" },
67
- },
68
- },
69
- ],
70
- },
71
- allowlist: {
72
- type: "object",
73
- additionalProperties: false,
74
- properties: {
75
- enabled: { type: "boolean" },
76
- remoteAddresses: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.stringListUtil),
77
- },
78
- },
79
- backends: {
80
- type: "array",
81
- items: {
82
- type: "object",
83
- additionalProperties: false,
84
- required: ["name", "path"],
85
- properties: {
86
- name: { type: "string" },
87
- path: { type: "string" },
88
- users: {
89
- type: "array",
90
- items: {
91
- type: "object",
92
- additionalProperties: false,
93
- required: ["name", "password"],
94
- properties: {
95
- enabled: { type: "boolean" },
96
- name: { type: "string" },
97
- password: { type: "string" },
98
- },
99
- },
100
- },
101
- },
102
- },
103
- },
104
- },
105
- },
106
- cron: {
107
- type: "object",
108
- additionalProperties: false,
109
- properties: {
110
- enabled: { type: "boolean" },
111
- actions: {
112
- type: "array",
113
- items: {
114
- allOf: [
115
- {
116
- type: "object",
117
- required: ["schedule"],
118
- properties: {
119
- schedule: { type: "string" },
120
- },
121
- },
122
- {
123
- anyOf: (0, schema_1.createCaseSchema)({
124
- type: "type",
125
- value: "options",
126
- }, {
127
- backup: (0, schema_1.omitPropertySchema)(backup_def_1.backupCommandOptionDef, "dryRun"),
128
- copy: copy_def_1.copyCommandOptionsDef,
129
- }),
130
- },
131
- ],
132
- },
133
- },
134
- },
135
- },
136
- },
137
- },
138
- prunePolicy: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.prunePolicy),
139
- },
140
- };
@@ -1,23 +0,0 @@
1
- import { Step } from "../utils/steps";
2
- import { PackageRepositoryConfigType } from "./PackageRepositoryConfig";
3
- import { PrunePolicyConfigType } from "./PrunePolicyConfig";
4
- import type { TaskConfigType } from "./TaskConfig";
5
- import { JSONSchema7 } from "json-schema";
6
- export declare const packageConfigDefinition: JSONSchema7;
7
- export type PackageConfigType = {
8
- name: string;
9
- enabled?: boolean;
10
- task?: TaskConfigType;
11
- path?: string;
12
- restorePath?: string;
13
- meta?: Record<string, any>;
14
- restorePermissions?: {
15
- uid: string | number;
16
- gid: string | number;
17
- };
18
- include?: (string | Step)[];
19
- exclude?: (string | Step)[];
20
- repositoryNames?: string[];
21
- prunePolicy?: PrunePolicyConfigType;
22
- repositoryConfigs?: PackageRepositoryConfigType[];
23
- };
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.packageConfigDefinition = void 0;
4
- const DefinitionEnum_1 = require("../JsonSchema/DefinitionEnum");
5
- const ScriptTask_1 = require("../Task/ScriptTask");
6
- exports.packageConfigDefinition = {
7
- type: "object",
8
- required: ["name"],
9
- additionalProperties: false,
10
- properties: {
11
- name: { type: "string" },
12
- enabled: { type: "boolean" },
13
- task: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.task),
14
- path: { type: "string" },
15
- restorePath: { type: "string" },
16
- meta: { type: "object" },
17
- restorePermissions: {
18
- type: "object",
19
- required: ["uid", "gid"],
20
- additionalProperties: false,
21
- properties: {
22
- uid: { anyOf: [{ type: "string" }, { type: "integer" }] },
23
- gid: { anyOf: [{ type: "string" }, { type: "integer" }] },
24
- },
25
- },
26
- include: {
27
- type: "array",
28
- items: {
29
- anyOf: [
30
- { type: "string" },
31
- (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.scriptTask, ScriptTask_1.ScriptTaskDefinitionEnum.step),
32
- ],
33
- },
34
- },
35
- exclude: {
36
- type: "array",
37
- items: {
38
- anyOf: [
39
- { type: "string" },
40
- (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.scriptTask, ScriptTask_1.ScriptTaskDefinitionEnum.step),
41
- ],
42
- },
43
- },
44
- repositoryNames: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.stringListUtil),
45
- repositoryConfigs: {
46
- type: "array",
47
- items: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.packageRepository),
48
- },
49
- prunePolicy: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.prunePolicy),
50
- },
51
- };
@@ -1,17 +0,0 @@
1
- import { DatatruckPackageRepositoryConfigType, datatruckRepositoryName } from "../Repository/DatatruckRepository";
2
- import { GitPackageRepositoryConfigType, gitRepositoryName } from "../Repository/GitRepository";
3
- import { ResticPackageRepositoryConfigType, resticRepositoryName } from "../Repository/ResticRepository";
4
- import type { JSONSchema7 } from "json-schema";
5
- export declare const packageRepositoryConfigDefinition: JSONSchema7;
6
- export type PackageRepositoryConfigType = {
7
- names?: string[];
8
- } & ({
9
- type: typeof resticRepositoryName;
10
- config: ResticPackageRepositoryConfigType;
11
- } | {
12
- type: typeof datatruckRepositoryName;
13
- config: DatatruckPackageRepositoryConfigType;
14
- } | {
15
- type: typeof gitRepositoryName;
16
- config: GitPackageRepositoryConfigType;
17
- });
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.packageRepositoryConfigDefinition = void 0;
4
- const DefinitionEnum_1 = require("../JsonSchema/DefinitionEnum");
5
- const DatatruckRepository_1 = require("../Repository/DatatruckRepository");
6
- const GitRepository_1 = require("../Repository/GitRepository");
7
- const ResticRepository_1 = require("../Repository/ResticRepository");
8
- const types = {
9
- [ResticRepository_1.resticRepositoryName]: DefinitionEnum_1.DefinitionEnum.resticPackageRepository,
10
- [DatatruckRepository_1.datatruckRepositoryName]: DefinitionEnum_1.DefinitionEnum.datatruckPackageRepository,
11
- [GitRepository_1.gitRepositoryName]: DefinitionEnum_1.DefinitionEnum.gitPackageRepository,
12
- };
13
- exports.packageRepositoryConfigDefinition = {
14
- type: "object",
15
- additionalProperties: false,
16
- required: ["type"],
17
- properties: {
18
- type: { type: "string" },
19
- names: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.stringListUtil),
20
- config: {},
21
- },
22
- anyOf: Object.keys(types).map((type) => ({
23
- if: {
24
- type: "object",
25
- properties: {
26
- type: { const: type },
27
- },
28
- },
29
- then: {
30
- type: "object",
31
- properties: {
32
- config: (0, DefinitionEnum_1.makeRef)(types[type]),
33
- },
34
- },
35
- else: false,
36
- })),
37
- };
@@ -1,4 +0,0 @@
1
- import { PruneActionsOptions } from "../Action/PruneAction";
2
- import { JSONSchema7 } from "json-schema";
3
- export declare const prunePolicyConfigDefinition: JSONSchema7;
4
- export type PrunePolicyConfigType = Pick<PruneActionsOptions, "keepDaily" | "keepHourly" | "keepMinutely" | "keepLast" | "keepMonthly" | "keepWeekly" | "keepYearly" | "groupBy" | "tags">;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.prunePolicyConfigDefinition = void 0;
4
- const DefinitionEnum_1 = require("../JsonSchema/DefinitionEnum");
5
- exports.prunePolicyConfigDefinition = {
6
- type: "object",
7
- properties: {
8
- keepDaily: { type: "integer" },
9
- keepHourly: { type: "integer" },
10
- keepMinutely: { type: "integer" },
11
- keepLast: { type: "integer" },
12
- keepMonthly: { type: "integer" },
13
- keepWeekly: { type: "integer" },
14
- keepYearly: { type: "integer" },
15
- groupBy: {
16
- type: "array",
17
- items: {
18
- type: "string",
19
- enum: [
20
- "packageName",
21
- "repositoryName",
22
- "repositoryType",
23
- ],
24
- },
25
- },
26
- tags: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.stringListUtil),
27
- },
28
- };
@@ -1,24 +0,0 @@
1
- import { DatatruckRepositoryConfigType, datatruckRepositoryName } from "../Repository/DatatruckRepository";
2
- import { GitRepositoryConfigType, gitRepositoryName } from "../Repository/GitRepository";
3
- import { ResticRepositoryConfigType, resticRepositoryName } from "../Repository/ResticRepository";
4
- import type { JSONSchema7 } from "json-schema";
5
- export declare const repositoryNames: ("git" | "restic" | "datatruck")[];
6
- export declare const repositoryConfigDefinition: JSONSchema7;
7
- export type RepositoryConfigTypeType = RepositoryConfigType["type"];
8
- export type RepositoryConfigEnabledActionType = "backup" | "init" | "prune" | "restore" | "snapshots";
9
- export type RepositoryConfigType = {
10
- name: string;
11
- mirrorRepoNames?: string[];
12
- enabled?: boolean | {
13
- [K in "defaults" | RepositoryConfigEnabledActionType]?: boolean;
14
- };
15
- } & ({
16
- type: typeof resticRepositoryName;
17
- config: ResticRepositoryConfigType;
18
- } | {
19
- type: typeof datatruckRepositoryName;
20
- config: DatatruckRepositoryConfigType;
21
- } | {
22
- type: typeof gitRepositoryName;
23
- config: GitRepositoryConfigType;
24
- });
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.repositoryConfigDefinition = exports.repositoryNames = void 0;
4
- const DefinitionEnum_1 = require("../JsonSchema/DefinitionEnum");
5
- const DatatruckRepository_1 = require("../Repository/DatatruckRepository");
6
- const GitRepository_1 = require("../Repository/GitRepository");
7
- const ResticRepository_1 = require("../Repository/ResticRepository");
8
- const types = {
9
- [ResticRepository_1.resticRepositoryName]: DefinitionEnum_1.DefinitionEnum.resticRepository,
10
- [DatatruckRepository_1.datatruckRepositoryName]: DefinitionEnum_1.DefinitionEnum.datatruckRepository,
11
- [GitRepository_1.gitRepositoryName]: DefinitionEnum_1.DefinitionEnum.gitRepository,
12
- };
13
- exports.repositoryNames = [
14
- ResticRepository_1.resticRepositoryName,
15
- DatatruckRepository_1.datatruckRepositoryName,
16
- GitRepository_1.gitRepositoryName,
17
- ];
18
- exports.repositoryConfigDefinition = {
19
- type: "object",
20
- additionalProperties: false,
21
- required: ["type", "name"],
22
- properties: {
23
- type: { type: "string" },
24
- name: { type: "string" },
25
- mirrorRepoNames: (0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.stringListUtil),
26
- enabled: {
27
- anyOf: [
28
- {
29
- type: "boolean",
30
- },
31
- {
32
- type: "object",
33
- additionalProperties: false,
34
- properties: {
35
- defaults: { type: "boolean" },
36
- backup: { type: "boolean" },
37
- init: { type: "boolean" },
38
- prune: { type: "boolean" },
39
- restore: { type: "boolean" },
40
- snapshots: { type: "boolean" },
41
- },
42
- },
43
- ],
44
- },
45
- config: {},
46
- },
47
- anyOf: Object.keys(types).map((type) => ({
48
- if: {
49
- type: "object",
50
- properties: {
51
- type: { const: type },
52
- },
53
- },
54
- then: {
55
- type: "object",
56
- properties: {
57
- config: (0, DefinitionEnum_1.makeRef)(types[type]),
58
- },
59
- },
60
- else: false,
61
- })),
62
- };
@@ -1,27 +0,0 @@
1
- import { GitTaskConfigType, gitTaskName } from "../Task/GitTask";
2
- import { MariadbTaskConfigType, mariadbTaskName } from "../Task/MariadbTask";
3
- import { MssqlTaskConfigType, mssqlTaskName } from "../Task/MssqlTask";
4
- import { MysqlDumpTaskConfigType, mysqlDumpTaskName } from "../Task/MysqlDumpTask";
5
- import { PostgresqlDumpTaskConfigType, postgresqlDumpTaskName } from "../Task/PostgresqlDumpTask";
6
- import { ScriptTaskConfigType, scriptTaskName } from "../Task/ScriptTask";
7
- import { JSONSchema7 } from "json-schema";
8
- export declare const taskConfigDefinition: JSONSchema7;
9
- export type TaskConfigType = {
10
- name: typeof gitTaskName;
11
- config?: GitTaskConfigType;
12
- } | {
13
- name: typeof mariadbTaskName;
14
- config: MariadbTaskConfigType;
15
- } | {
16
- name: typeof mssqlTaskName;
17
- config: MssqlTaskConfigType;
18
- } | {
19
- name: typeof mysqlDumpTaskName;
20
- config: MysqlDumpTaskConfigType;
21
- } | {
22
- name: typeof postgresqlDumpTaskName;
23
- config: PostgresqlDumpTaskConfigType;
24
- } | {
25
- name: typeof scriptTaskName;
26
- config: ScriptTaskConfigType;
27
- };
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.taskConfigDefinition = void 0;
4
- const DefinitionEnum_1 = require("../JsonSchema/DefinitionEnum");
5
- const GitTask_1 = require("../Task/GitTask");
6
- const MariadbTask_1 = require("../Task/MariadbTask");
7
- const MssqlTask_1 = require("../Task/MssqlTask");
8
- const MysqlDumpTask_1 = require("../Task/MysqlDumpTask");
9
- const PostgresqlDumpTask_1 = require("../Task/PostgresqlDumpTask");
10
- const ScriptTask_1 = require("../Task/ScriptTask");
11
- const names = {
12
- [GitTask_1.gitTaskName]: DefinitionEnum_1.DefinitionEnum.gitTask,
13
- [MariadbTask_1.mariadbTaskName]: DefinitionEnum_1.DefinitionEnum.mariadbTask,
14
- [MssqlTask_1.mssqlTaskName]: DefinitionEnum_1.DefinitionEnum.mssqlTask,
15
- [MysqlDumpTask_1.mysqlDumpTaskName]: DefinitionEnum_1.DefinitionEnum.mysqlDumpTask,
16
- [PostgresqlDumpTask_1.postgresqlDumpTaskName]: DefinitionEnum_1.DefinitionEnum.postgresqlDumpTask,
17
- [ScriptTask_1.scriptTaskName]: DefinitionEnum_1.DefinitionEnum.scriptTask,
18
- };
19
- exports.taskConfigDefinition = {
20
- type: "object",
21
- required: ["name"],
22
- properties: {
23
- name: { enum: Object.keys(names) },
24
- config: {},
25
- },
26
- anyOf: Object.keys(names).map((name) => ({
27
- if: {
28
- type: "object",
29
- properties: {
30
- name: { const: name },
31
- },
32
- },
33
- then: {
34
- type: "object",
35
- properties: {
36
- config: (0, DefinitionEnum_1.makeRef)(names[name]),
37
- },
38
- },
39
- else: false,
40
- })),
41
- };
@@ -1,3 +0,0 @@
1
- import type { RepositoryConfigType } from "../Config/RepositoryConfig";
2
- import type { RepositoryAbstract } from "../Repository/RepositoryAbstract";
3
- export declare function createRepo(repository: RepositoryConfigType): RepositoryAbstract<any>;
@@ -1,3 +0,0 @@
1
- import { TaskConfigType } from "../Config/TaskConfig";
2
- import type { TaskAbstract } from "../Task/TaskAbstract";
3
- export declare function createTask(task: TaskConfigType): TaskAbstract;
@@ -1,26 +0,0 @@
1
- export declare enum DefinitionEnum {
2
- config = "config",
3
- repository = "repository",
4
- package = "package",
5
- packageRepository = "package-repository",
6
- task = "task",
7
- resticRepository = "restic-repository",
8
- resticPackageRepository = "restic-package-repository",
9
- datatruckRepository = "datatruck-repository",
10
- datatruckPackageRepository = "datatruck-package-repository",
11
- gitRepository = "git-repository",
12
- gitPackageRepository = "git-package-repository",
13
- gitTask = "git-task",
14
- scriptTask = "script-task",
15
- mariadbTask = "mariadb-task",
16
- mssqlTask = "mssql-task",
17
- mysqlDumpTask = "mysql-dump-task",
18
- postgresqlDumpTask = "postgresql-dump-task",
19
- sqlDumpTask = "sqldump-task",
20
- stringListUtil = "stringlist-util",
21
- prunePolicy = "prune-policy",
22
- compressUtil = "compress-util"
23
- }
24
- export declare function makeRef(type: DefinitionEnum, subType?: string): {
25
- $ref: string;
26
- };
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeRef = exports.DefinitionEnum = void 0;
4
- var DefinitionEnum;
5
- (function (DefinitionEnum) {
6
- DefinitionEnum["config"] = "config";
7
- DefinitionEnum["repository"] = "repository";
8
- DefinitionEnum["package"] = "package";
9
- DefinitionEnum["packageRepository"] = "package-repository";
10
- DefinitionEnum["task"] = "task";
11
- DefinitionEnum["resticRepository"] = "restic-repository";
12
- DefinitionEnum["resticPackageRepository"] = "restic-package-repository";
13
- DefinitionEnum["datatruckRepository"] = "datatruck-repository";
14
- DefinitionEnum["datatruckPackageRepository"] = "datatruck-package-repository";
15
- DefinitionEnum["gitRepository"] = "git-repository";
16
- DefinitionEnum["gitPackageRepository"] = "git-package-repository";
17
- DefinitionEnum["gitTask"] = "git-task";
18
- DefinitionEnum["scriptTask"] = "script-task";
19
- DefinitionEnum["mariadbTask"] = "mariadb-task";
20
- DefinitionEnum["mssqlTask"] = "mssql-task";
21
- DefinitionEnum["mysqlDumpTask"] = "mysql-dump-task";
22
- DefinitionEnum["postgresqlDumpTask"] = "postgresql-dump-task";
23
- DefinitionEnum["sqlDumpTask"] = "sqldump-task";
24
- DefinitionEnum["stringListUtil"] = "stringlist-util";
25
- DefinitionEnum["prunePolicy"] = "prune-policy";
26
- DefinitionEnum["compressUtil"] = "compress-util";
27
- })(DefinitionEnum || (exports.DefinitionEnum = DefinitionEnum = {}));
28
- function makeRef(type, subType) {
29
- return {
30
- $ref: `#/definitions/${type}` + (subType ? `_${subType}` : ""),
31
- };
32
- }
33
- exports.makeRef = makeRef;
@@ -1,4 +0,0 @@
1
- import { DefinitionEnum } from "./DefinitionEnum";
2
- import { JSONSchema7 } from "json-schema";
3
- export declare const definitions: Record<DefinitionEnum, JSONSchema7>;
4
- export declare const schema: JSONSchema7;
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.schema = exports.definitions = void 0;
4
- const Config_1 = require("../Config/Config");
5
- const PackageConfig_1 = require("../Config/PackageConfig");
6
- const PackageRepositoryConfig_1 = require("../Config/PackageRepositoryConfig");
7
- const PrunePolicyConfig_1 = require("../Config/PrunePolicyConfig");
8
- const RepositoryConfig_1 = require("../Config/RepositoryConfig");
9
- const TaskConfig_1 = require("../Config/TaskConfig");
10
- const DatatruckRepository_1 = require("../Repository/DatatruckRepository");
11
- const GitRepository_1 = require("../Repository/GitRepository");
12
- const ResticRepository_1 = require("../Repository/ResticRepository");
13
- const GitTask_1 = require("../Task/GitTask");
14
- const MariadbTask_1 = require("../Task/MariadbTask");
15
- const MssqlTask_1 = require("../Task/MssqlTask");
16
- const MysqlDumpTask_1 = require("../Task/MysqlDumpTask");
17
- const PostgresqlDumpTask_1 = require("../Task/PostgresqlDumpTask");
18
- const ScriptTask_1 = require("../Task/ScriptTask");
19
- const SqlDumpTaskAbstract_1 = require("../Task/SqlDumpTaskAbstract");
20
- const tar_1 = require("../utils/tar");
21
- const DefinitionEnum_1 = require("./DefinitionEnum");
22
- exports.definitions = {
23
- [DefinitionEnum_1.DefinitionEnum.stringListUtil]: {
24
- type: "array",
25
- items: {
26
- type: "string",
27
- },
28
- },
29
- [DefinitionEnum_1.DefinitionEnum.repository]: RepositoryConfig_1.repositoryConfigDefinition,
30
- [DefinitionEnum_1.DefinitionEnum.package]: PackageConfig_1.packageConfigDefinition,
31
- [DefinitionEnum_1.DefinitionEnum.packageRepository]: PackageRepositoryConfig_1.packageRepositoryConfigDefinition,
32
- [DefinitionEnum_1.DefinitionEnum.task]: TaskConfig_1.taskConfigDefinition,
33
- [DefinitionEnum_1.DefinitionEnum.gitRepository]: GitRepository_1.gitRepositoryDefinition,
34
- [DefinitionEnum_1.DefinitionEnum.gitPackageRepository]: GitRepository_1.gitPackageRepositoryDefinition,
35
- [DefinitionEnum_1.DefinitionEnum.datatruckRepository]: DatatruckRepository_1.datatruckRepositoryDefinition,
36
- [DefinitionEnum_1.DefinitionEnum.datatruckPackageRepository]: DatatruckRepository_1.datatruckPackageRepositoryDefinition,
37
- [DefinitionEnum_1.DefinitionEnum.resticRepository]: ResticRepository_1.resticRepositoryDefinition,
38
- [DefinitionEnum_1.DefinitionEnum.resticPackageRepository]: ResticRepository_1.resticPackageRepositoryDefinition,
39
- [DefinitionEnum_1.DefinitionEnum.gitTask]: GitTask_1.gitTaskDefinition,
40
- [DefinitionEnum_1.DefinitionEnum.scriptTask]: ScriptTask_1.scriptTaskDefinition,
41
- [DefinitionEnum_1.DefinitionEnum.sqlDumpTask]: (0, SqlDumpTaskAbstract_1.sqlDumpTaskDefinition)(),
42
- [DefinitionEnum_1.DefinitionEnum.mariadbTask]: MariadbTask_1.mariadbTaskDefinition,
43
- [DefinitionEnum_1.DefinitionEnum.mssqlTask]: MssqlTask_1.mssqlTaskDefinition,
44
- [DefinitionEnum_1.DefinitionEnum.mysqlDumpTask]: MysqlDumpTask_1.mysqlDumpTaskDefinition,
45
- [DefinitionEnum_1.DefinitionEnum.postgresqlDumpTask]: PostgresqlDumpTask_1.postgresqlDumpTaskDefinition,
46
- [DefinitionEnum_1.DefinitionEnum.config]: Config_1.configDefinition,
47
- [DefinitionEnum_1.DefinitionEnum.prunePolicy]: PrunePolicyConfig_1.prunePolicyConfigDefinition,
48
- [DefinitionEnum_1.DefinitionEnum.compressUtil]: tar_1.compressDefinition,
49
- };
50
- for (const key in exports.definitions) {
51
- const schemaKey = key;
52
- const schema = exports.definitions[schemaKey];
53
- for (const defName in schema.definitions || {}) {
54
- exports.definitions[`${schemaKey}_${defName}`] =
55
- schema.definitions[defName];
56
- }
57
- exports.definitions[schemaKey] = {
58
- ...schema,
59
- };
60
- delete exports.definitions[schemaKey].definitions;
61
- }
62
- exports.schema = {
63
- definitions: exports.definitions,
64
- ...(0, DefinitionEnum_1.makeRef)(DefinitionEnum_1.DefinitionEnum.config),
65
- };
@@ -1,30 +0,0 @@
1
- export declare const backupCommandOptionDef: {
2
- type: "object";
3
- additionalProperties: false;
4
- properties: {
5
- package: {
6
- type: "string";
7
- };
8
- packageTask: {
9
- type: "string";
10
- };
11
- repository: {
12
- type: "string";
13
- };
14
- repositoryType: {
15
- enum: ("git" | "restic" | "datatruck")[];
16
- };
17
- tag: {
18
- type: "string";
19
- };
20
- dryRun: {
21
- type: "boolean";
22
- };
23
- date: {
24
- type: "string";
25
- };
26
- prune: {
27
- type: "boolean";
28
- };
29
- };
30
- };
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.backupCommandOptionDef = void 0;
4
- const RepositoryConfig_1 = require("../Config/RepositoryConfig");
5
- exports.backupCommandOptionDef = {
6
- type: "object",
7
- additionalProperties: false,
8
- properties: {
9
- package: { type: "string" },
10
- packageTask: { type: "string" },
11
- repository: { type: "string" },
12
- repositoryType: { enum: RepositoryConfig_1.repositoryNames },
13
- tag: { type: "string" },
14
- dryRun: { type: "boolean" },
15
- date: { type: "string" },
16
- prune: { type: "boolean" },
17
- },
18
- };