@futo-org/backups-orchestrator-ui 0.1.71

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 (192) hide show
  1. package/LICENSE +41 -0
  2. package/dist/components/backends/BackendItem.svelte +64 -0
  3. package/dist/components/backends/BackendItem.svelte.d.ts +10 -0
  4. package/dist/components/backends/BackendsList.svelte +73 -0
  5. package/dist/components/backends/BackendsList.svelte.d.ts +7 -0
  6. package/dist/components/backends/CreateLocalBackend.svelte +46 -0
  7. package/dist/components/backends/CreateLocalBackend.svelte.d.ts +7 -0
  8. package/dist/components/backends/OAuthDeviceFlow.svelte +78 -0
  9. package/dist/components/backends/OAuthDeviceFlow.svelte.d.ts +9 -0
  10. package/dist/components/backups/BackupItem.svelte +59 -0
  11. package/dist/components/backups/BackupItem.svelte.d.ts +7 -0
  12. package/dist/components/backups/BackupsList.svelte +82 -0
  13. package/dist/components/backups/BackupsList.svelte.d.ts +8 -0
  14. package/dist/components/backups/dialogs/ConfigureRepositoryModal.svelte +102 -0
  15. package/dist/components/backups/dialogs/ConfigureRepositoryModal.svelte.d.ts +8 -0
  16. package/dist/components/backups/dialogs/CreateRepositoryModal.svelte +59 -0
  17. package/dist/components/backups/dialogs/CreateRepositoryModal.svelte.d.ts +6 -0
  18. package/dist/components/backups/dialogs/ImportRepositoryModal.svelte +62 -0
  19. package/dist/components/backups/dialogs/ImportRepositoryModal.svelte.d.ts +8 -0
  20. package/dist/components/backups/dialogs/RestoreSnapshotModal.svelte +109 -0
  21. package/dist/components/backups/dialogs/RestoreSnapshotModal.svelte.d.ts +8 -0
  22. package/dist/components/backups/dialogs/ViewLogModal.svelte +208 -0
  23. package/dist/components/backups/dialogs/ViewLogModal.svelte.d.ts +7 -0
  24. package/dist/components/backups/metrics-history/MetricsHistoryModal.svelte +166 -0
  25. package/dist/components/backups/metrics-history/MetricsHistoryModal.svelte.d.ts +8 -0
  26. package/dist/components/backups/run-history/RepositoryRunHistory.svelte +39 -0
  27. package/dist/components/backups/run-history/RepositoryRunHistory.svelte.d.ts +7 -0
  28. package/dist/components/backups/run-history/RepositoryRunHistoryItem.svelte +45 -0
  29. package/dist/components/backups/run-history/RepositoryRunHistoryItem.svelte.d.ts +7 -0
  30. package/dist/components/backups/run-history/RunHistoryModal.svelte +18 -0
  31. package/dist/components/backups/run-history/RunHistoryModal.svelte.d.ts +8 -0
  32. package/dist/components/backups/snapshots-list/RepositorySnapshotsList.svelte +53 -0
  33. package/dist/components/backups/snapshots-list/RepositorySnapshotsList.svelte.d.ts +7 -0
  34. package/dist/components/backups/snapshots-list/RepositorySnapshotsListItem.svelte +41 -0
  35. package/dist/components/backups/snapshots-list/RepositorySnapshotsListItem.svelte.d.ts +8 -0
  36. package/dist/components/backups/snapshots-list/SnapshotsListModal.svelte +18 -0
  37. package/dist/components/backups/snapshots-list/SnapshotsListModal.svelte.d.ts +8 -0
  38. package/dist/components/dashboard/Dashboard.svelte +52 -0
  39. package/dist/components/dashboard/Dashboard.svelte.d.ts +9 -0
  40. package/dist/components/dashboard/DashboardAvgBackupTime.svelte +34 -0
  41. package/dist/components/dashboard/DashboardAvgBackupTime.svelte.d.ts +7 -0
  42. package/dist/components/dashboard/DashboardBackupHealth.svelte +91 -0
  43. package/dist/components/dashboard/DashboardBackupHealth.svelte.d.ts +9 -0
  44. package/dist/components/dashboard/DashboardCurrentUsage.svelte +10 -0
  45. package/dist/components/dashboard/DashboardCurrentUsage.svelte.d.ts +18 -0
  46. package/dist/components/dashboard/DashboardDailyBackupTime.svelte +31 -0
  47. package/dist/components/dashboard/DashboardDailyBackupTime.svelte.d.ts +7 -0
  48. package/dist/components/dashboard/DashboardInstall.svelte +15 -0
  49. package/dist/components/dashboard/DashboardInstall.svelte.d.ts +18 -0
  50. package/dist/components/dashboard/DashboardRecentBackups.svelte +104 -0
  51. package/dist/components/dashboard/DashboardRecentBackups.svelte.d.ts +8 -0
  52. package/dist/components/dashboard/DashboardTotalStored.svelte +27 -0
  53. package/dist/components/dashboard/DashboardTotalStored.svelte.d.ts +7 -0
  54. package/dist/components/integrations/immich/ImmichBackupsPage.svelte +14 -0
  55. package/dist/components/integrations/immich/ImmichBackupsPage.svelte.d.ts +6 -0
  56. package/dist/components/integrations/immich/ImmichConfigureBackup.svelte +402 -0
  57. package/dist/components/integrations/immich/ImmichConfigureBackup.svelte.d.ts +9 -0
  58. package/dist/components/integrations/immich/ImmichConfirmDefaultBackup.svelte +80 -0
  59. package/dist/components/integrations/immich/ImmichConfirmDefaultBackup.svelte.d.ts +8 -0
  60. package/dist/components/integrations/immich/ImmichManageBackup.svelte +77 -0
  61. package/dist/components/integrations/immich/ImmichManageBackup.svelte.d.ts +3 -0
  62. package/dist/components/integrations/immich/ImmichManageBackupOverview.svelte +100 -0
  63. package/dist/components/integrations/immich/ImmichManageBackupOverview.svelte.d.ts +8 -0
  64. package/dist/components/integrations/immich/ImmichOnboardingRestoreFlow.svelte +75 -0
  65. package/dist/components/integrations/immich/ImmichOnboardingRestoreFlow.svelte.d.ts +7 -0
  66. package/dist/components/integrations/immich/ImmichOnboardingSetupFlow.svelte +113 -0
  67. package/dist/components/integrations/immich/ImmichOnboardingSetupFlow.svelte.d.ts +8 -0
  68. package/dist/components/onboarding/OnboardingGate.svelte +48 -0
  69. package/dist/components/onboarding/OnboardingGate.svelte.d.ts +9 -0
  70. package/dist/components/onboarding/RecoveryKeyDisplay.svelte +103 -0
  71. package/dist/components/onboarding/RecoveryKeyDisplay.svelte.d.ts +6 -0
  72. package/dist/components/onboarding/SampleOnboarding.svelte +98 -0
  73. package/dist/components/onboarding/SampleOnboarding.svelte.d.ts +9 -0
  74. package/dist/components/onboarding/dialogs/BackupsRecoveryKeyModal.svelte +43 -0
  75. package/dist/components/onboarding/dialogs/BackupsRecoveryKeyModal.svelte.d.ts +6 -0
  76. package/dist/components/onboarding/restore-point-flow/RestorePointFlow.svelte +96 -0
  77. package/dist/components/onboarding/restore-point-flow/RestorePointFlow.svelte.d.ts +8 -0
  78. package/dist/components/onboarding/restore-point-flow/RestorePointFlow2SelectSnapshot.svelte +83 -0
  79. package/dist/components/onboarding/restore-point-flow/RestorePointFlow2SelectSnapshot.svelte.d.ts +9 -0
  80. package/dist/components/onboarding/restore-point-flow/RestorePointFlow3ConfirmRestore.svelte +118 -0
  81. package/dist/components/onboarding/restore-point-flow/RestorePointFlow3ConfirmRestore.svelte.d.ts +10 -0
  82. package/dist/components/onboarding/restore-point-flow/RestorePointFlow4Restore.svelte +59 -0
  83. package/dist/components/onboarding/restore-point-flow/RestorePointFlow4Restore.svelte.d.ts +8 -0
  84. package/dist/components/onboarding/stages/OnboardingStageBackupServices.svelte +82 -0
  85. package/dist/components/onboarding/stages/OnboardingStageBackupServices.svelte.d.ts +8 -0
  86. package/dist/components/onboarding/stages/OnboardingStageKeyConfirm.svelte +56 -0
  87. package/dist/components/onboarding/stages/OnboardingStageKeyConfirm.svelte.d.ts +9 -0
  88. package/dist/components/onboarding/stages/OnboardingStageKeyImport.svelte +57 -0
  89. package/dist/components/onboarding/stages/OnboardingStageKeyImport.svelte.d.ts +8 -0
  90. package/dist/components/onboarding/stages/OnboardingStageKeyIntro.svelte +50 -0
  91. package/dist/components/onboarding/stages/OnboardingStageKeyIntro.svelte.d.ts +7 -0
  92. package/dist/components/onboarding/stages/OnboardingStageKeySave.svelte +44 -0
  93. package/dist/components/onboarding/stages/OnboardingStageKeySave.svelte.d.ts +8 -0
  94. package/dist/components/onboarding/stages/OnboardingStageWelcome.svelte +56 -0
  95. package/dist/components/onboarding/stages/OnboardingStageWelcome.svelte.d.ts +9 -0
  96. package/dist/components/onboarding/stages/SampleCreateFirstBackup.svelte +43 -0
  97. package/dist/components/onboarding/stages/SampleCreateFirstBackup.svelte.d.ts +7 -0
  98. package/dist/components/onboarding/stages/SampleCreateFirstSchedule.svelte +49 -0
  99. package/dist/components/onboarding/stages/SampleCreateFirstSchedule.svelte.d.ts +7 -0
  100. package/dist/components/schedules/RepositoryPicker.svelte +105 -0
  101. package/dist/components/schedules/RepositoryPicker.svelte.d.ts +6 -0
  102. package/dist/components/schedules/ScheduleItem.svelte +47 -0
  103. package/dist/components/schedules/ScheduleItem.svelte.d.ts +8 -0
  104. package/dist/components/schedules/ScheduleList.svelte +51 -0
  105. package/dist/components/schedules/ScheduleList.svelte.d.ts +3 -0
  106. package/dist/components/schedules/dialogs/ConfigureScheduleModal.svelte +48 -0
  107. package/dist/components/schedules/dialogs/ConfigureScheduleModal.svelte.d.ts +8 -0
  108. package/dist/components/schedules/dialogs/CreateScheduleModal.svelte +43 -0
  109. package/dist/components/schedules/dialogs/CreateScheduleModal.svelte.d.ts +6 -0
  110. package/dist/components/test/ImmichTestUi.svelte +183 -0
  111. package/dist/components/test/ImmichTestUi.svelte.d.ts +6 -0
  112. package/dist/components/test/TestUi.svelte +134 -0
  113. package/dist/components/test/TestUi.svelte.d.ts +6 -0
  114. package/dist/components/test/dashboard/ActiveJobs.svelte +380 -0
  115. package/dist/components/test/dashboard/ActiveJobs.svelte.d.ts +3 -0
  116. package/dist/components/test/dashboard/BackupHealth.svelte +95 -0
  117. package/dist/components/test/dashboard/BackupHealth.svelte.d.ts +7 -0
  118. package/dist/components/test/dashboard/BackupStats.svelte +117 -0
  119. package/dist/components/test/dashboard/BackupStats.svelte.d.ts +8 -0
  120. package/dist/components/test/dashboard/Dashboard.svelte +76 -0
  121. package/dist/components/test/dashboard/Dashboard.svelte.d.ts +6 -0
  122. package/dist/components/test/dashboard/RecentBackups.svelte +96 -0
  123. package/dist/components/test/dashboard/RecentBackups.svelte.d.ts +8 -0
  124. package/dist/components/ui/PageLayout.svelte +67 -0
  125. package/dist/components/ui/PageLayout.svelte.d.ts +10 -0
  126. package/dist/components/ui/PathListField.svelte +83 -0
  127. package/dist/components/ui/PathListField.svelte.d.ts +17 -0
  128. package/dist/components/ui/PathPickerField.svelte +74 -0
  129. package/dist/components/ui/PathPickerField.svelte.d.ts +15 -0
  130. package/dist/components/ui/PathPickerModal.svelte +219 -0
  131. package/dist/components/ui/PathPickerModal.svelte.d.ts +14 -0
  132. package/dist/components/ui/StackList.svelte +30 -0
  133. package/dist/components/ui/StackList.svelte.d.ts +30 -0
  134. package/dist/components/ui/StackListItem.svelte +64 -0
  135. package/dist/components/ui/StackListItem.svelte.d.ts +13 -0
  136. package/dist/components/ui/VisualisationGauge.svelte +25 -0
  137. package/dist/components/ui/VisualisationGauge.svelte.d.ts +10 -0
  138. package/dist/components/ui/VisualisationSegmentedBar.svelte +48 -0
  139. package/dist/components/ui/VisualisationSegmentedBar.svelte.d.ts +14 -0
  140. package/dist/components/util/OnEvents.svelte +31 -0
  141. package/dist/components/util/OnEvents.svelte.d.ts +7 -0
  142. package/dist/components/util/RelativeTime.svelte +21 -0
  143. package/dist/components/util/RelativeTime.svelte.d.ts +6 -0
  144. package/dist/components/util/Suspense.svelte +21 -0
  145. package/dist/components/util/Suspense.svelte.d.ts +29 -0
  146. package/dist/components/util/TimedButton.svelte +37 -0
  147. package/dist/components/util/TimedButton.svelte.d.ts +7 -0
  148. package/dist/components/util/YuccaContext.svelte +26 -0
  149. package/dist/components/util/YuccaContext.svelte.d.ts +8 -0
  150. package/dist/events.d.ts +6 -0
  151. package/dist/events.js +47 -0
  152. package/dist/fetch-client.d.ts +289 -0
  153. package/dist/fetch-client.js +233 -0
  154. package/dist/index.d.ts +28 -0
  155. package/dist/index.js +28 -0
  156. package/dist/options.d.ts +5 -0
  157. package/dist/options.js +6 -0
  158. package/dist/providers.d.ts +11 -0
  159. package/dist/providers.js +35 -0
  160. package/dist/query-client.d.ts +2 -0
  161. package/dist/query-client.js +2 -0
  162. package/dist/services/backend.service.d.ts +18 -0
  163. package/dist/services/backend.service.js +61 -0
  164. package/dist/services/filesystem.service.d.ts +2 -0
  165. package/dist/services/filesystem.service.js +11 -0
  166. package/dist/services/immich.integration.service.d.ts +6 -0
  167. package/dist/services/immich.integration.service.js +24 -0
  168. package/dist/services/integrations.service.d.ts +13 -0
  169. package/dist/services/integrations.service.js +42 -0
  170. package/dist/services/log.service.svelte.d.ts +53 -0
  171. package/dist/services/log.service.svelte.js +93 -0
  172. package/dist/services/metricsHistory.service.d.ts +4 -0
  173. package/dist/services/metricsHistory.service.js +12 -0
  174. package/dist/services/onboarding.service.d.ts +11 -0
  175. package/dist/services/onboarding.service.js +56 -0
  176. package/dist/services/repository.service.d.ts +45 -0
  177. package/dist/services/repository.service.js +157 -0
  178. package/dist/services/runHistory.service.d.ts +26 -0
  179. package/dist/services/runHistory.service.js +54 -0
  180. package/dist/services/schedule.service.d.ts +35 -0
  181. package/dist/services/schedule.service.js +126 -0
  182. package/dist/services/snapshot.service.d.ts +29 -0
  183. package/dist/services/snapshot.service.js +108 -0
  184. package/dist/services/task.service.d.ts +3 -0
  185. package/dist/services/task.service.js +20 -0
  186. package/dist/utils/actions.d.ts +2 -0
  187. package/dist/utils/actions.js +3 -0
  188. package/dist/utils/format.d.ts +2 -0
  189. package/dist/utils/format.js +24 -0
  190. package/dist/utils/handle-error.d.ts +9 -0
  191. package/dist/utils/handle-error.js +42 -0
  192. package/package.json +79 -0
@@ -0,0 +1,6 @@
1
+ export declare const events: EventTarget;
2
+ export declare class SocketEvent<T> extends Event {
3
+ readonly data: T;
4
+ constructor(type: string, data: T);
5
+ }
6
+ export declare const useSocket: () => () => void;
package/dist/events.js ADDED
@@ -0,0 +1,47 @@
1
+ import { io, Socket } from 'socket.io-client';
2
+ import { defaults } from './fetch-client';
3
+ let socket;
4
+ export const events = new EventTarget();
5
+ export class SocketEvent extends Event {
6
+ data;
7
+ constructor(type, data) {
8
+ super(type);
9
+ this.data = data;
10
+ }
11
+ }
12
+ function createSocket() {
13
+ socket = io(defaults.baseUrl, {
14
+ path: '/api/yucca/socket.io',
15
+ transports: ['websocket'],
16
+ autoConnect: false,
17
+ });
18
+ socket.onAny((msg) => {
19
+ const payload = JSON.parse(msg);
20
+ const event = new SocketEvent(payload.type, payload);
21
+ events.dispatchEvent(event);
22
+ });
23
+ }
24
+ const socketHandles = new Set();
25
+ let timer;
26
+ const socketGc = () => {
27
+ clearTimeout(timer);
28
+ timer = setTimeout(() => {
29
+ if (socketHandles.size === 0 && socket.connected) {
30
+ socket.disconnect();
31
+ }
32
+ }, 1000);
33
+ };
34
+ export const useSocket = () => {
35
+ if (!socket) {
36
+ createSocket();
37
+ }
38
+ const handle = Symbol();
39
+ socketHandles.add(handle);
40
+ if (socket.disconnected) {
41
+ socket.connect();
42
+ }
43
+ return () => {
44
+ socketHandles.delete(handle);
45
+ socketGc();
46
+ };
47
+ };
@@ -0,0 +1,289 @@
1
+ /**
2
+ * yucca
3
+ * 1.0.0
4
+ * DO NOT MODIFY - This file has been generated using oazapfts.
5
+ * See https://www.npmjs.com/package/oazapfts
6
+ */
7
+ import * as Oazapfts from "@oazapfts/runtime";
8
+ export declare const defaults: Oazapfts.Defaults<Oazapfts.CustomHeaders>;
9
+ export declare const servers: {
10
+ server1: string;
11
+ };
12
+ export type DeviceFlowResponseDto = {
13
+ userCode: string;
14
+ verificationUri: string;
15
+ };
16
+ export type BackendType = "yucca" | "local" | "s3";
17
+ export type BackendDto = {
18
+ id: string;
19
+ "type": BackendType;
20
+ isOnline: boolean;
21
+ error?: string;
22
+ };
23
+ export type BackendsResponseDto = {
24
+ backends: BackendDto[];
25
+ };
26
+ export type CreateLocalBackendRequestDto = {
27
+ path: string;
28
+ };
29
+ export type BackendResponseDto = {
30
+ backend: BackendDto;
31
+ };
32
+ export type FilesystemListingItemDto = {
33
+ path: string;
34
+ isDirectory: boolean;
35
+ };
36
+ export type FilesystemListingResponseDto = {
37
+ parent: string;
38
+ path: string;
39
+ items: FilesystemListingItemDto[];
40
+ };
41
+ export type ImmichLibraryDto = {
42
+ id: string;
43
+ name: string;
44
+ importPaths: string[];
45
+ exclusionPatterns: string[];
46
+ };
47
+ export type ImmichStateDto = {
48
+ dataPath: string;
49
+ dataFolders: string[];
50
+ libraries: ImmichLibraryDto[];
51
+ };
52
+ export type ImmichIntegrationConfigurationDto = {
53
+ dataFolders: string[];
54
+ backupConfiguration: boolean;
55
+ libraries: "all" | string[];
56
+ };
57
+ export type ImmichIntegrationDto = {
58
+ id: string;
59
+ scheduleId: string;
60
+ configuration: ImmichIntegrationConfigurationDto;
61
+ };
62
+ export type IntegrationsResponseDto = {
63
+ immichState?: ImmichStateDto;
64
+ immichIntegration?: ImmichIntegrationDto;
65
+ };
66
+ export type RetentionPolicyDto = {
67
+ keepLast?: number;
68
+ keepWithin?: string;
69
+ keepWithinHourly?: string;
70
+ keepWithinDaily?: string;
71
+ keepWithinWeekly?: string;
72
+ keepWithinMonthly?: string;
73
+ keepWithinYearly?: string;
74
+ };
75
+ export type ConfigureImmichIntegrationRequestDto = {
76
+ name: string;
77
+ worm: boolean;
78
+ cron: string;
79
+ dataFolders: string[];
80
+ backupConfiguration: boolean;
81
+ libraries: "all" | string[];
82
+ retentionPolicy?: (RetentionPolicyDto) | null;
83
+ };
84
+ export type OnboardingStatusResponseDto = {
85
+ hasOnboardedKey: boolean;
86
+ hasBackend: boolean;
87
+ hasBackup: boolean;
88
+ hasSchedule: boolean;
89
+ hasSkippedExtraConfig: boolean;
90
+ };
91
+ export type CurrentRecoveryKeyResponse = {
92
+ recoveryKey: string;
93
+ };
94
+ export type ImportRecoveryKeyRequest = {
95
+ recoveryKey: string;
96
+ };
97
+ export type RepositoryCreateRequestDto = {
98
+ name: string;
99
+ worm: boolean;
100
+ paths?: string[];
101
+ };
102
+ export type RepositoryMetricsDto = {
103
+ lastBackup?: string;
104
+ lastSuccessfulBackup?: string;
105
+ lastBackupDuration?: number;
106
+ sizeBytes: number;
107
+ };
108
+ export type RepositoryBackendDto = {
109
+ id: string;
110
+ "type": BackendType;
111
+ online: boolean;
112
+ };
113
+ export type RepositoryBackendsDto = {
114
+ primary: RepositoryBackendDto;
115
+ secondary: RepositoryBackendDto[];
116
+ };
117
+ export type RepositoryConfigurationDto = {
118
+ paths: string[];
119
+ retentionPolicy?: (RetentionPolicyDto) | null;
120
+ };
121
+ export type LocalRepositoryDto = {
122
+ id: string;
123
+ worm: boolean;
124
+ name: string;
125
+ metrics: RepositoryMetricsDto;
126
+ backends?: RepositoryBackendsDto;
127
+ configuration?: RepositoryConfigurationDto;
128
+ };
129
+ export type RepositoryCreateResponseDto = {
130
+ repository: LocalRepositoryDto;
131
+ };
132
+ export type RepositoryListResponseDto = {
133
+ repositories: LocalRepositoryDto[];
134
+ };
135
+ export type SnapshotSummaryDto = {
136
+ filesNew: number;
137
+ filesChanged: number;
138
+ filesUnmodified: number;
139
+ totalFiles: number;
140
+ totalBytes: number;
141
+ dataAdded: number;
142
+ };
143
+ export type SnapshotDto = {
144
+ id: string;
145
+ time: string;
146
+ paths: string[];
147
+ summary?: SnapshotSummaryDto;
148
+ };
149
+ export type InspectedLocalRepositoryDto = {
150
+ id: string;
151
+ worm: boolean;
152
+ name: string;
153
+ metrics: RepositoryMetricsDto;
154
+ backends?: RepositoryBackendsDto;
155
+ configuration?: RepositoryConfigurationDto;
156
+ snapshots: SnapshotDto[];
157
+ };
158
+ export type RepositoryInspectResponseDto = {
159
+ repositories: InspectedLocalRepositoryDto[];
160
+ };
161
+ export type RepositoryUpdateRequestDto = {
162
+ name?: string;
163
+ paths?: string[];
164
+ retentionPolicy?: (RetentionPolicyDto) | null;
165
+ };
166
+ export type RepositoryUpdateResponseDto = {
167
+ repository: LocalRepositoryDto;
168
+ };
169
+ export type LogResponseDto = {
170
+ logId: string;
171
+ };
172
+ export type RepositoryCheckImportResponseDto = {
173
+ readable: boolean;
174
+ };
175
+ export type RunStatus = "incomplete" | "complete" | "failed";
176
+ export type RunType = "schedule" | "restore" | "backup" | "forget";
177
+ export type RunDto = {
178
+ id: string;
179
+ repositoryId: string;
180
+ start: string;
181
+ end: string;
182
+ logFilePath: string;
183
+ status: RunStatus;
184
+ "type": RunType;
185
+ };
186
+ export type RunHistoryResponseDto = {
187
+ runs: RunDto[];
188
+ };
189
+ export type ListSnapshotsResponseDto = {
190
+ snapshots: SnapshotDto[];
191
+ };
192
+ export type RepositorySnapshotRestoreRequestDto = {
193
+ target?: string;
194
+ include?: string[];
195
+ };
196
+ export type RepositorySnapshotRestoreFromPointRequestDto = {
197
+ yuccaConfig?: string;
198
+ include?: string[];
199
+ };
200
+ export type RunResponseDto = {
201
+ run: RunDto;
202
+ };
203
+ export type TaskType = "schedule" | "restore" | "backup" | "forget";
204
+ export type TaskStatus = "incomplete" | "complete" | "failed";
205
+ export type ActiveScheduleItemDto = {
206
+ repositoryId: string;
207
+ status: TaskStatus;
208
+ };
209
+ export type RunningTaskDto = {
210
+ parentId: string;
211
+ "type": TaskType;
212
+ logId?: string;
213
+ scheduleStatus?: ActiveScheduleItemDto[];
214
+ };
215
+ export type RunningTaskListResponse = {
216
+ tasks: RunningTaskDto[];
217
+ };
218
+ export type ScheduleCreateRequestDto = {
219
+ name: string;
220
+ cron: string;
221
+ repositories: string[];
222
+ };
223
+ export type ScheduleDto = {
224
+ id: string;
225
+ name: string;
226
+ paused: boolean;
227
+ cron: string;
228
+ repositories: string[];
229
+ lastRun?: string;
230
+ lastFinished?: string;
231
+ };
232
+ export type ScheduleCreateResponseDto = {
233
+ schedule: ScheduleDto;
234
+ };
235
+ export type ScheduleListResponseDto = {
236
+ schedules: ScheduleDto[];
237
+ };
238
+ export type ScheduleUpdateRequestDto = {
239
+ name?: string;
240
+ paused?: boolean;
241
+ cron?: string;
242
+ repositories?: string[];
243
+ };
244
+ export type ScheduleUpdateResponseDto = {
245
+ schedule: ScheduleDto;
246
+ };
247
+ export declare function oidcDeviceFlow(opts?: Oazapfts.RequestOpts): Promise<DeviceFlowResponseDto>;
248
+ export declare function getBackends(opts?: Oazapfts.RequestOpts): Promise<BackendsResponseDto>;
249
+ export declare function createLocalBackend(createLocalBackendRequestDto: CreateLocalBackendRequestDto, opts?: Oazapfts.RequestOpts): Promise<BackendResponseDto>;
250
+ export declare function resetOrchestrator(opts?: Oazapfts.RequestOpts): Promise<never>;
251
+ export declare function getFileListing({ path }?: {
252
+ path?: string;
253
+ }, opts?: Oazapfts.RequestOpts): Promise<FilesystemListingResponseDto>;
254
+ export declare function getIntegrations(opts?: Oazapfts.RequestOpts): Promise<IntegrationsResponseDto>;
255
+ export declare function configureImmichIntegration(configureImmichIntegrationRequestDto: ConfigureImmichIntegrationRequestDto, opts?: Oazapfts.RequestOpts): Promise<never>;
256
+ export declare function onboardingStatus(opts?: Oazapfts.RequestOpts): Promise<OnboardingStatusResponseDto>;
257
+ export declare function currentRecoveryKey(opts?: Oazapfts.RequestOpts): Promise<CurrentRecoveryKeyResponse>;
258
+ export declare function importRecoveryKey(importRecoveryKeyRequest: ImportRecoveryKeyRequest, opts?: Oazapfts.RequestOpts): Promise<never>;
259
+ export declare function confirmRecoveryKey(opts?: Oazapfts.RequestOpts): Promise<never>;
260
+ export declare function skipOnboardingExtraConfig(opts?: Oazapfts.RequestOpts): Promise<never>;
261
+ export declare function createRepository(repositoryCreateRequestDto: RepositoryCreateRequestDto, { backend }?: {
262
+ backend?: string;
263
+ }, opts?: Oazapfts.RequestOpts): Promise<RepositoryCreateResponseDto>;
264
+ export declare function getRepositories(opts?: Oazapfts.RequestOpts): Promise<RepositoryListResponseDto>;
265
+ export declare function inspectRepositories(opts?: Oazapfts.RequestOpts): Promise<RepositoryInspectResponseDto>;
266
+ export declare function updateRepository(id: string, repositoryUpdateRequestDto: RepositoryUpdateRequestDto, { backend }?: {
267
+ backend?: string;
268
+ }, opts?: Oazapfts.RequestOpts): Promise<RepositoryUpdateResponseDto>;
269
+ export declare function deleteRepository(id: string, opts?: Oazapfts.RequestOpts): Promise<never>;
270
+ export declare function createBackup(id: string, opts?: Oazapfts.RequestOpts): Promise<LogResponseDto>;
271
+ export declare function checkImportRepository(id: string, backend: string, opts?: Oazapfts.RequestOpts): Promise<RepositoryCheckImportResponseDto>;
272
+ export declare function importRepository(id: string, backend: string, opts?: Oazapfts.RequestOpts): Promise<RepositoryCreateResponseDto>;
273
+ export declare function getRunHistory(id: string, opts?: Oazapfts.RequestOpts): Promise<RunHistoryResponseDto>;
274
+ export declare function getSnapshots(id: string, opts?: Oazapfts.RequestOpts): Promise<ListSnapshotsResponseDto>;
275
+ export declare function pruneRepository(id: string, opts?: Oazapfts.RequestOpts): Promise<LogResponseDto>;
276
+ export declare function restoreSnapshot(id: string, snapshot: string, repositorySnapshotRestoreRequestDto: RepositorySnapshotRestoreRequestDto, opts?: Oazapfts.RequestOpts): Promise<LogResponseDto>;
277
+ export declare function forgetSnapshot(id: string, snapshot: string, opts?: Oazapfts.RequestOpts): Promise<ListSnapshotsResponseDto>;
278
+ export declare function restoreFromPoint(id: string, snapshot: string, backend: string, repositorySnapshotRestoreFromPointRequestDto: RepositorySnapshotRestoreFromPointRequestDto, opts?: Oazapfts.RequestOpts): Promise<LogResponseDto>;
279
+ export declare function getSnapshotListing(id: string, snapshot: string, { path }?: {
280
+ path?: string;
281
+ }, opts?: Oazapfts.RequestOpts): Promise<FilesystemListingResponseDto>;
282
+ export declare function getRun(id: string, opts?: Oazapfts.RequestOpts): Promise<RunResponseDto>;
283
+ export declare function logStreamSse(id: string, opts?: Oazapfts.RequestOpts): Promise<never>;
284
+ export declare function getRunningTasks(opts?: Oazapfts.RequestOpts): Promise<RunningTaskListResponse>;
285
+ export declare function cancelTask(parentId: string, opts?: Oazapfts.RequestOpts): Promise<never>;
286
+ export declare function createSchedule(scheduleCreateRequestDto: ScheduleCreateRequestDto, opts?: Oazapfts.RequestOpts): Promise<ScheduleCreateResponseDto>;
287
+ export declare function getSchedules(opts?: Oazapfts.RequestOpts): Promise<ScheduleListResponseDto>;
288
+ export declare function updateSchedule(id: string, scheduleUpdateRequestDto: ScheduleUpdateRequestDto, opts?: Oazapfts.RequestOpts): Promise<ScheduleUpdateResponseDto>;
289
+ export declare function removeSchedule(id: string, opts?: Oazapfts.RequestOpts): Promise<never>;
@@ -0,0 +1,233 @@
1
+ /**
2
+ * yucca
3
+ * 1.0.0
4
+ * DO NOT MODIFY - This file has been generated using oazapfts.
5
+ * See https://www.npmjs.com/package/oazapfts
6
+ */
7
+ import * as Oazapfts from "@oazapfts/runtime";
8
+ import * as QS from "@oazapfts/runtime/query";
9
+ export const defaults = {
10
+ headers: {},
11
+ baseUrl: "http://localhost:22676"
12
+ };
13
+ const oazapfts = Oazapfts.runtime(defaults);
14
+ export const servers = {
15
+ server1: "http://localhost:22676"
16
+ };
17
+ export function oidcDeviceFlow(opts) {
18
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/auth/oidc/device", {
19
+ ...opts
20
+ }));
21
+ }
22
+ export function getBackends(opts) {
23
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/backend", {
24
+ ...opts
25
+ }));
26
+ }
27
+ export function createLocalBackend(createLocalBackendRequestDto, opts) {
28
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/backend/local", oazapfts.json({
29
+ ...opts,
30
+ method: "POST",
31
+ body: createLocalBackendRequestDto
32
+ })));
33
+ }
34
+ export function resetOrchestrator(opts) {
35
+ return oazapfts.ok(oazapfts.fetchText("/api/yucca/debug/reset", {
36
+ ...opts,
37
+ method: "POST"
38
+ }));
39
+ }
40
+ export function getFileListing({ path } = {}, opts) {
41
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/fs${QS.query(QS.explode({
42
+ path
43
+ }))}`, {
44
+ ...opts
45
+ }));
46
+ }
47
+ export function getIntegrations(opts) {
48
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/integrations", {
49
+ ...opts
50
+ }));
51
+ }
52
+ export function configureImmichIntegration(configureImmichIntegrationRequestDto, opts) {
53
+ return oazapfts.ok(oazapfts.fetchText("/api/yucca/integrations/immich", oazapfts.json({
54
+ ...opts,
55
+ method: "POST",
56
+ body: configureImmichIntegrationRequestDto
57
+ })));
58
+ }
59
+ export function onboardingStatus(opts) {
60
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/onboarding", {
61
+ ...opts
62
+ }));
63
+ }
64
+ export function currentRecoveryKey(opts) {
65
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/onboarding/recovery-key", {
66
+ ...opts
67
+ }));
68
+ }
69
+ export function importRecoveryKey(importRecoveryKeyRequest, opts) {
70
+ return oazapfts.ok(oazapfts.fetchText("/api/yucca/onboarding/recovery-key", oazapfts.json({
71
+ ...opts,
72
+ method: "PUT",
73
+ body: importRecoveryKeyRequest
74
+ })));
75
+ }
76
+ export function confirmRecoveryKey(opts) {
77
+ return oazapfts.ok(oazapfts.fetchText("/api/yucca/onboarding/recovery-key", {
78
+ ...opts,
79
+ method: "POST"
80
+ }));
81
+ }
82
+ export function skipOnboardingExtraConfig(opts) {
83
+ return oazapfts.ok(oazapfts.fetchText("/api/yucca/onboarding/skip", {
84
+ ...opts,
85
+ method: "POST"
86
+ }));
87
+ }
88
+ export function createRepository(repositoryCreateRequestDto, { backend } = {}, opts) {
89
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository${QS.query(QS.explode({
90
+ backend
91
+ }))}`, oazapfts.json({
92
+ ...opts,
93
+ method: "POST",
94
+ body: repositoryCreateRequestDto
95
+ })));
96
+ }
97
+ export function getRepositories(opts) {
98
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/repository", {
99
+ ...opts
100
+ }));
101
+ }
102
+ export function inspectRepositories(opts) {
103
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/repository/inspect", {
104
+ ...opts
105
+ }));
106
+ }
107
+ export function updateRepository(id, repositoryUpdateRequestDto, { backend } = {}, opts) {
108
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}${QS.query(QS.explode({
109
+ backend
110
+ }))}`, oazapfts.json({
111
+ ...opts,
112
+ method: "PATCH",
113
+ body: repositoryUpdateRequestDto
114
+ })));
115
+ }
116
+ export function deleteRepository(id, opts) {
117
+ return oazapfts.ok(oazapfts.fetchText(`/api/yucca/repository/${encodeURIComponent(id)}`, {
118
+ ...opts,
119
+ method: "DELETE"
120
+ }));
121
+ }
122
+ export function createBackup(id, opts) {
123
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}`, {
124
+ ...opts,
125
+ method: "POST"
126
+ }));
127
+ }
128
+ export function checkImportRepository(id, backend, opts) {
129
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}/import${QS.query(QS.explode({
130
+ backend
131
+ }))}`, {
132
+ ...opts
133
+ }));
134
+ }
135
+ export function importRepository(id, backend, opts) {
136
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}/import${QS.query(QS.explode({
137
+ backend
138
+ }))}`, {
139
+ ...opts,
140
+ method: "POST"
141
+ }));
142
+ }
143
+ export function getRunHistory(id, opts) {
144
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}/runs`, {
145
+ ...opts
146
+ }));
147
+ }
148
+ export function getSnapshots(id, opts) {
149
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}/snapshots`, {
150
+ ...opts
151
+ }));
152
+ }
153
+ export function pruneRepository(id, opts) {
154
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}/snapshots/prune`, {
155
+ ...opts,
156
+ method: "POST"
157
+ }));
158
+ }
159
+ export function restoreSnapshot(id, snapshot, repositorySnapshotRestoreRequestDto, opts) {
160
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}/snapshots/${encodeURIComponent(snapshot)}`, oazapfts.json({
161
+ ...opts,
162
+ method: "POST",
163
+ body: repositorySnapshotRestoreRequestDto
164
+ })));
165
+ }
166
+ export function forgetSnapshot(id, snapshot, opts) {
167
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}/snapshots/${encodeURIComponent(snapshot)}`, {
168
+ ...opts,
169
+ method: "DELETE"
170
+ }));
171
+ }
172
+ export function restoreFromPoint(id, snapshot, backend, repositorySnapshotRestoreFromPointRequestDto, opts) {
173
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}/snapshots/${encodeURIComponent(snapshot)}/restore-from-point${QS.query(QS.explode({
174
+ backend
175
+ }))}`, oazapfts.json({
176
+ ...opts,
177
+ method: "POST",
178
+ body: repositorySnapshotRestoreFromPointRequestDto
179
+ })));
180
+ }
181
+ export function getSnapshotListing(id, snapshot, { path } = {}, opts) {
182
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/repository/${encodeURIComponent(id)}/snapshots/${encodeURIComponent(snapshot)}/listing${QS.query(QS.explode({
183
+ path
184
+ }))}`, {
185
+ ...opts
186
+ }));
187
+ }
188
+ export function getRun(id, opts) {
189
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/logs/${encodeURIComponent(id)}`, {
190
+ ...opts
191
+ }));
192
+ }
193
+ export function logStreamSse(id, opts) {
194
+ return oazapfts.ok(oazapfts.fetchText(`/api/yucca/logs/${encodeURIComponent(id)}/stream`, {
195
+ ...opts
196
+ }));
197
+ }
198
+ export function getRunningTasks(opts) {
199
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/tasks", {
200
+ ...opts
201
+ }));
202
+ }
203
+ export function cancelTask(parentId, opts) {
204
+ return oazapfts.ok(oazapfts.fetchText(`/api/yucca/tasks/${encodeURIComponent(parentId)}/cancel`, {
205
+ ...opts,
206
+ method: "POST"
207
+ }));
208
+ }
209
+ export function createSchedule(scheduleCreateRequestDto, opts) {
210
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/schedule", oazapfts.json({
211
+ ...opts,
212
+ method: "POST",
213
+ body: scheduleCreateRequestDto
214
+ })));
215
+ }
216
+ export function getSchedules(opts) {
217
+ return oazapfts.ok(oazapfts.fetchJson("/api/yucca/schedule", {
218
+ ...opts
219
+ }));
220
+ }
221
+ export function updateSchedule(id, scheduleUpdateRequestDto, opts) {
222
+ return oazapfts.ok(oazapfts.fetchJson(`/api/yucca/schedule/${encodeURIComponent(id)}`, oazapfts.json({
223
+ ...opts,
224
+ method: "PATCH",
225
+ body: scheduleUpdateRequestDto
226
+ })));
227
+ }
228
+ export function removeSchedule(id, opts) {
229
+ return oazapfts.ok(oazapfts.fetchText(`/api/yucca/schedule/${encodeURIComponent(id)}`, {
230
+ ...opts,
231
+ method: "DELETE"
232
+ }));
233
+ }
@@ -0,0 +1,28 @@
1
+ export { default as BackendsList } from './components/backends/BackendsList.svelte';
2
+ export { default as BackupsList } from './components/backups/BackupsList.svelte';
3
+ export { default as ImmichBackupsPage } from './components/integrations/immich/ImmichBackupsPage.svelte';
4
+ export { default as ImmichManageBackup } from './components/integrations/immich/ImmichManageBackup.svelte';
5
+ export { default as ImmichOnboardingRestoreFlow } from './components/integrations/immich/ImmichOnboardingRestoreFlow.svelte';
6
+ export { default as ImmichOnboardingSetupFlow } from './components/integrations/immich/ImmichOnboardingSetupFlow.svelte';
7
+ export { default as OnboardingGate } from './components/onboarding/OnboardingGate.svelte';
8
+ export { default as ScheduleList } from './components/schedules/ScheduleList.svelte';
9
+ export { default as Dashboard } from './components/dashboard/Dashboard.svelte';
10
+ export { default as VisualisationGauge } from './components/ui/VisualisationGauge.svelte';
11
+ export { default as VisualisationSegmentedBar } from './components/ui/VisualisationSegmentedBar.svelte';
12
+ export { default as OnEvents } from './components/util/OnEvents.svelte';
13
+ export { default as YuccaContext } from './components/util/YuccaContext.svelte';
14
+ export * from './providers';
15
+ export * as sdk from './fetch-client';
16
+ export * from './services/backend.service';
17
+ export * from './services/filesystem.service';
18
+ export * from './services/integrations.service';
19
+ export * from './services/log.service.svelte';
20
+ export * from './services/metricsHistory.service';
21
+ export * from './services/onboarding.service';
22
+ export * from './services/repository.service';
23
+ export * from './services/runHistory.service';
24
+ export * from './services/schedule.service';
25
+ export * from './services/snapshot.service';
26
+ export * from './services/task.service';
27
+ export { events, SocketEvent } from './events';
28
+ export { queryClient } from './query-client';
package/dist/index.js ADDED
@@ -0,0 +1,28 @@
1
+ export { default as BackendsList } from './components/backends/BackendsList.svelte';
2
+ export { default as BackupsList } from './components/backups/BackupsList.svelte';
3
+ export { default as ImmichBackupsPage } from './components/integrations/immich/ImmichBackupsPage.svelte';
4
+ export { default as ImmichManageBackup } from './components/integrations/immich/ImmichManageBackup.svelte';
5
+ export { default as ImmichOnboardingRestoreFlow } from './components/integrations/immich/ImmichOnboardingRestoreFlow.svelte';
6
+ export { default as ImmichOnboardingSetupFlow } from './components/integrations/immich/ImmichOnboardingSetupFlow.svelte';
7
+ export { default as OnboardingGate } from './components/onboarding/OnboardingGate.svelte';
8
+ export { default as ScheduleList } from './components/schedules/ScheduleList.svelte';
9
+ export { default as Dashboard } from './components/dashboard/Dashboard.svelte';
10
+ export { default as VisualisationGauge } from './components/ui/VisualisationGauge.svelte';
11
+ export { default as VisualisationSegmentedBar } from './components/ui/VisualisationSegmentedBar.svelte';
12
+ export { default as OnEvents } from './components/util/OnEvents.svelte';
13
+ export { default as YuccaContext } from './components/util/YuccaContext.svelte';
14
+ export * from './providers';
15
+ export * as sdk from './fetch-client';
16
+ export * from './services/backend.service';
17
+ export * from './services/filesystem.service';
18
+ export * from './services/integrations.service';
19
+ export * from './services/log.service.svelte';
20
+ export * from './services/metricsHistory.service';
21
+ export * from './services/onboarding.service';
22
+ export * from './services/repository.service';
23
+ export * from './services/runHistory.service';
24
+ export * from './services/schedule.service';
25
+ export * from './services/snapshot.service';
26
+ export * from './services/task.service';
27
+ export { events, SocketEvent } from './events';
28
+ export { queryClient } from './query-client';
@@ -0,0 +1,5 @@
1
+ export declare const options: {
2
+ advanced: import("svelte/store").Writable<boolean>;
3
+ testUiRestore: import("svelte/store").Writable<boolean>;
4
+ demoPadding: import("svelte/store").Writable<boolean>;
5
+ };
@@ -0,0 +1,6 @@
1
+ import { writable } from 'svelte/store';
2
+ export const options = {
3
+ advanced: writable(false),
4
+ testUiRestore: writable(false),
5
+ demoPadding: writable(false),
6
+ };
@@ -0,0 +1,11 @@
1
+ import * as orchestrationApiClient from './fetch-client';
2
+ export declare abstract class BaseProvider {
3
+ abstract getRepositories(): Promise<orchestrationApiClient.RepositoryListResponseDto>;
4
+ }
5
+ export declare const yuccaApiProvider: BaseProvider;
6
+ export declare const orchestrationApiProvider: BaseProvider;
7
+ export declare class MockProvider extends BaseProvider {
8
+ getRepositories(): Promise<orchestrationApiClient.RepositoryListResponseDto>;
9
+ }
10
+ export declare const setProvider: (provider: BaseProvider) => void;
11
+ export declare const getProvider: () => BaseProvider;