@duplicati/ngclient 0.0.1 → 0.0.6

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 (197) hide show
  1. package/chunk-22HCWJS5.js +1 -0
  2. package/chunk-24PLBY6C.js +1 -0
  3. package/chunk-3MM4GLBS.js +1 -0
  4. package/chunk-3MTW6FJP.js +1 -0
  5. package/chunk-4FK75Z4C.js +1 -0
  6. package/chunk-4MMHXTNF.js +1 -0
  7. package/chunk-57M4MADC.js +1 -0
  8. package/chunk-6XUWDRDE.js +1 -0
  9. package/chunk-77NTMJCT.js +1 -0
  10. package/chunk-7X6SBNMU.js +1 -0
  11. package/chunk-A66Z6362.js +1 -0
  12. package/chunk-AC6VDRLC.js +1 -0
  13. package/chunk-BNNZKRIC.js +1 -0
  14. package/chunk-CKPPU3GS.js +2 -0
  15. package/chunk-DYANEO5K.js +1 -0
  16. package/chunk-GJTW7UUU.js +1 -0
  17. package/chunk-GMANGOGH.js +1 -0
  18. package/chunk-I6QIKK6M.js +1 -0
  19. package/chunk-IOWSWUHM.js +1 -0
  20. package/chunk-IQSBPGVL.js +1 -0
  21. package/chunk-L47VTK2X.js +1 -0
  22. package/chunk-LVLU6MPQ.js +1 -0
  23. package/chunk-N5US3SKW.js +1 -0
  24. package/chunk-NIMPOFJV.js +1 -0
  25. package/chunk-ORDBF5MR.js +8 -0
  26. package/chunk-PH6AAOK4.js +1 -0
  27. package/chunk-PY5HJ5U2.js +1 -0
  28. package/chunk-QQDSFTZV.js +1 -0
  29. package/chunk-RANWFSNY.js +1 -0
  30. package/chunk-RLJJFBQ2.js +1 -0
  31. package/chunk-S76TN27U.js +1 -0
  32. package/chunk-UTPCUNNU.js +1 -0
  33. package/chunk-VPEVWKGB.js +1 -0
  34. package/chunk-VVUYO7E4.js +1 -0
  35. package/chunk-WLI4RZYL.js +1 -0
  36. package/chunk-X2NZ4CJ5.js +2 -0
  37. package/chunk-XU7PNEZO.js +1 -0
  38. package/chunk-XYJYUMYL.js +1 -0
  39. package/chunk-YRXI477O.js +1 -0
  40. package/chunk-ZD3JEKWI.js +1 -0
  41. package/index.html +15 -0
  42. package/main-5KJRELCN.js +1 -0
  43. package/package.json +3 -40
  44. package/sparkle-ui-assets/fonts/InterTight-VariableFont_wght.ttf +0 -0
  45. package/sparkle-ui-assets/fonts/InterTight-VariableFont_wght.woff2 +0 -0
  46. package/styles-6W7ZCKNM.css +1 -0
  47. package/.dockerignore +0 -13
  48. package/.github/workflows/npm-publish.yml +0 -59
  49. package/.prettierignore +0 -13
  50. package/.prettierrc +0 -12
  51. package/.vscode/extensions.json +0 -4
  52. package/.vscode/launch.json +0 -13
  53. package/.vscode/settings.json +0 -8
  54. package/.vscode/tasks.json +0 -24
  55. package/Dockerfile +0 -38
  56. package/LICENSE +0 -21
  57. package/README.md +0 -27
  58. package/angular.json +0 -98
  59. package/bun.lockb +0 -0
  60. package/openapi-ts.config.ts +0 -13
  61. package/scripts/generate-package-json.ts +0 -15
  62. package/src/app/about/about.component.html +0 -15
  63. package/src/app/about/about.component.scss +0 -19
  64. package/src/app/about/about.component.ts +0 -13
  65. package/src/app/about/changelog/changelog.component.html +0 -3
  66. package/src/app/about/changelog/changelog.component.scss +0 -7
  67. package/src/app/about/changelog/changelog.component.ts +0 -18
  68. package/src/app/about/general/general.component.html +0 -9
  69. package/src/app/about/general/general.component.scss +0 -23
  70. package/src/app/about/general/general.component.ts +0 -30
  71. package/src/app/about/libraries/libraries.component.html +0 -3
  72. package/src/app/about/libraries/libraries.component.scss +0 -7
  73. package/src/app/about/libraries/libraries.component.ts +0 -18
  74. package/src/app/about/logs/logs.component.html +0 -5
  75. package/src/app/about/logs/logs.component.scss +0 -7
  76. package/src/app/about/logs/logs.component.ts +0 -18
  77. package/src/app/about/system-info/system-info.component.html +0 -3
  78. package/src/app/about/system-info/system-info.component.scss +0 -7
  79. package/src/app/about/system-info/system-info.component.ts +0 -17
  80. package/src/app/add-backup/add-backup.component.html +0 -29
  81. package/src/app/add-backup/add-backup.component.scss +0 -38
  82. package/src/app/add-backup/add-backup.component.ts +0 -14
  83. package/src/app/app.component.ts +0 -35
  84. package/src/app/app.config.ts +0 -23
  85. package/src/app/app.routes.ts +0 -121
  86. package/src/app/core/components/file-tree/file-tree.component.html +0 -87
  87. package/src/app/core/components/file-tree/file-tree.component.scss +0 -80
  88. package/src/app/core/components/file-tree/file-tree.component.ts +0 -485
  89. package/src/app/core/components/logo/logo.component.html +0 -22
  90. package/src/app/core/components/logo/logo.component.scss +0 -12
  91. package/src/app/core/components/logo/logo.component.ts +0 -11
  92. package/src/app/core/components/status-bar/status-bar.component.html +0 -38
  93. package/src/app/core/components/status-bar/status-bar.component.scss +0 -27
  94. package/src/app/core/components/status-bar/status-bar.component.ts +0 -33
  95. package/src/app/core/components/status-bar/status-bar.state.ts +0 -182
  96. package/src/app/core/components/toggle-card/toggle-card.component.html +0 -11
  97. package/src/app/core/components/toggle-card/toggle-card.component.scss +0 -49
  98. package/src/app/core/components/toggle-card/toggle-card.component.ts +0 -28
  99. package/src/app/core/interceptors/http.interceptor.ts +0 -69
  100. package/src/app/core/interceptors/websocket.interceptor.ts +0 -66
  101. package/src/app/core/openapi/core/ApiError.ts +0 -21
  102. package/src/app/core/openapi/core/ApiRequestOptions.ts +0 -21
  103. package/src/app/core/openapi/core/ApiResult.ts +0 -7
  104. package/src/app/core/openapi/core/OpenAPI.ts +0 -55
  105. package/src/app/core/openapi/core/request.ts +0 -337
  106. package/src/app/core/openapi/index.ts +0 -6
  107. package/src/app/core/openapi/schemas.gen.ts +0 -3611
  108. package/src/app/core/openapi/services.gen.ts +0 -1460
  109. package/src/app/core/openapi/types.gen.ts +0 -1510
  110. package/src/app/core/pipes/duration.pipe.ts +0 -27
  111. package/src/app/core/pipes/relative-time.pipe.ts +0 -14
  112. package/src/app/core/providers/dayjs.ts +0 -16
  113. package/src/app/core/services/dict.en.ts +0 -0
  114. package/src/app/core/services/dictionary.service.ts +0 -12
  115. package/src/app/core/services/localstorage.token.ts +0 -82
  116. package/src/app/core/services/password-generator.service.ts +0 -39
  117. package/src/app/core/services/relay-websocket.service.ts +0 -268
  118. package/src/app/core/services/timespan-literals.service.ts +0 -25
  119. package/src/app/core/states/app-auth.state.ts +0 -87
  120. package/src/app/core/states/backups.state.ts +0 -71
  121. package/src/app/core/states/relayconfig.state.ts +0 -23
  122. package/src/app/core/states/sysinfo.state.ts +0 -31
  123. package/src/app/core/states/tasks.state.ts +0 -34
  124. package/src/app/core/types/subscribed.ts +0 -7
  125. package/src/app/core/validators/custom.validators.ts +0 -120
  126. package/src/app/create-edit-backup/create-edit-backup.component.html +0 -28
  127. package/src/app/create-edit-backup/create-edit-backup.component.scss +0 -15
  128. package/src/app/create-edit-backup/create-edit-backup.component.ts +0 -33
  129. package/src/app/create-edit-backup/create-edit-backup.state.ts +0 -582
  130. package/src/app/create-edit-backup/destination/destination.component.html +0 -367
  131. package/src/app/create-edit-backup/destination/destination.component.scss +0 -85
  132. package/src/app/create-edit-backup/destination/destination.component.ts +0 -249
  133. package/src/app/create-edit-backup/destination/destination.config.ts +0 -103
  134. package/src/app/create-edit-backup/destination/destination.mapper.ts +0 -177
  135. package/src/app/create-edit-backup/general/general.component.html +0 -108
  136. package/src/app/create-edit-backup/general/general.component.scss +0 -34
  137. package/src/app/create-edit-backup/general/general.component.ts +0 -136
  138. package/src/app/create-edit-backup/options/options.component.html +0 -95
  139. package/src/app/create-edit-backup/options/options.component.scss +0 -42
  140. package/src/app/create-edit-backup/options/options.component.ts +0 -113
  141. package/src/app/create-edit-backup/schedule/schedule.component.html +0 -102
  142. package/src/app/create-edit-backup/schedule/schedule.component.scss +0 -38
  143. package/src/app/create-edit-backup/schedule/schedule.component.ts +0 -137
  144. package/src/app/create-edit-backup/source-data/source-data.component.html +0 -93
  145. package/src/app/create-edit-backup/source-data/source-data.component.scss +0 -41
  146. package/src/app/create-edit-backup/source-data/source-data.component.ts +0 -114
  147. package/src/app/home/backup.const.ts +0 -167
  148. package/src/app/home/home.component.html +0 -98
  149. package/src/app/home/home.component.scss +0 -88
  150. package/src/app/home/home.component.ts +0 -54
  151. package/src/app/layout/layout.component.html +0 -64
  152. package/src/app/layout/layout.component.scss +0 -24
  153. package/src/app/layout/layout.component.ts +0 -51
  154. package/src/app/layout/layout.state.ts +0 -70
  155. package/src/app/login/login.component.html +0 -12
  156. package/src/app/login/login.component.scss +0 -25
  157. package/src/app/login/login.component.ts +0 -34
  158. package/src/app/logout/logout.component.html +0 -1
  159. package/src/app/logout/logout.component.scss +0 -3
  160. package/src/app/logout/logout.component.ts +0 -18
  161. package/src/app/restore/restore.component.html +0 -56
  162. package/src/app/restore/restore.component.scss +0 -37
  163. package/src/app/restore/restore.component.ts +0 -55
  164. package/src/app/restore-flow/options/options.component.html +0 -57
  165. package/src/app/restore-flow/options/options.component.scss +0 -16
  166. package/src/app/restore-flow/options/options.component.ts +0 -58
  167. package/src/app/restore-flow/restore-flow.component.html +0 -14
  168. package/src/app/restore-flow/restore-flow.component.scss +0 -15
  169. package/src/app/restore-flow/restore-flow.component.ts +0 -23
  170. package/src/app/restore-flow/restore-flow.state.ts +0 -120
  171. package/src/app/restore-flow/select-files/select-files.component.html +0 -42
  172. package/src/app/restore-flow/select-files/select-files.component.scss +0 -16
  173. package/src/app/restore-flow/select-files/select-files.component.ts +0 -129
  174. package/src/app/settings/settings.component.html +0 -256
  175. package/src/app/settings/settings.component.scss +0 -106
  176. package/src/app/settings/settings.component.ts +0 -475
  177. package/src/environments/environment-token.ts +0 -4
  178. package/src/environments/environment.prod.ts +0 -6
  179. package/src/environments/environment.ts +0 -6
  180. package/src/index.html +0 -15
  181. package/src/main.ts +0 -6
  182. package/src/proxy.conf.mjs +0 -6
  183. package/src/styles.scss +0 -41
  184. package/tsconfig.app.json +0 -15
  185. package/tsconfig.json +0 -30
  186. /package/{src/assets → assets}/duplicati-logo.png +0 -0
  187. /package/{src/assets → assets}/duplicati-logo.svg +0 -0
  188. /package/{src/assets → assets}/favicon.ico +0 -0
  189. /package/{src/assets → assets}/images/backup.png +0 -0
  190. /package/{src/assets → assets}/images/dark-theme.png +0 -0
  191. /package/{src/assets → assets}/images/folder.png +0 -0
  192. /package/{src/assets → assets}/images/light-theme.png +0 -0
  193. /package/{src/assets → assets}/images/new-backup.png +0 -0
  194. /package/{src/assets → assets}/images/restore.png +0 -0
  195. /package/{src/assets → assets}/images/system-theme.png +0 -0
  196. /package/{src/assets → assets}/spk.css +0 -0
  197. /package/{src/assets → assets}/spk.woff2 +0 -0
@@ -1,31 +0,0 @@
1
- import { computed, inject, Injectable, signal } from '@angular/core';
2
- import { finalize } from 'rxjs';
3
- import { DuplicatiServerService, SystemInfoDto } from '../openapi';
4
-
5
- @Injectable({
6
- providedIn: 'root',
7
- })
8
- export class SysinfoState {
9
- #dupServer = inject(DuplicatiServerService);
10
-
11
- isLoaded = signal(false);
12
- systemInfo = signal<SystemInfoDto | null>(null);
13
- backendModules = computed(() => {
14
- return this.systemInfo()?.BackendModules ?? [];
15
- });
16
-
17
- preloadSystemInfo(force = false) {
18
- if (!force && this.systemInfo()) {
19
- return;
20
- }
21
-
22
- this.#dupServer
23
- .getApiV1Systeminfo()
24
- .pipe(finalize(() => this.isLoaded.set(true)))
25
- .subscribe({
26
- next: (res) => {
27
- this.systemInfo.set(res);
28
- },
29
- });
30
- }
31
- }
@@ -1,34 +0,0 @@
1
- import { inject, Injectable, signal } from '@angular/core';
2
- import { finalize } from 'rxjs';
3
- import { TasksService } from '../openapi';
4
- import { Subscribed } from '../types/subscribed';
5
-
6
- export type TasksRes = Subscribed<ReturnType<TasksService['getApiV1Tasks']>>;
7
-
8
- @Injectable({
9
- providedIn: 'root',
10
- })
11
- export class TasksState {
12
- #taskService = inject(TasksService);
13
-
14
- tasks = signal<TasksRes>([]);
15
- tasksLoading = signal(false);
16
-
17
- getTasks() {
18
- this.tasksLoading.set(true);
19
-
20
- this.#taskService
21
- .getApiV1Tasks()
22
- .pipe(finalize(() => this.tasksLoading.set(false)))
23
- .subscribe({
24
- next: (res) => {
25
- this.tasks.set(res);
26
- },
27
- });
28
- }
29
-
30
- getTask(id: number) {
31
- // TODO maybe get task from server
32
- return this.tasks().find((x) => x.TaskID === id) ?? null;
33
- }
34
- }
@@ -1,7 +0,0 @@
1
- export type Subscribed<T> = T extends null | undefined
2
- ? T // special case for `null | undefined` when not in `--strictNullChecks` mode
3
- : T extends object & { subscribe(onfulfilled: infer F, ...args: infer _): any } // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped
4
- ? F extends (value: infer V, ...args: infer _) => any // if the argument to `then` is callable, extracts the first argument
5
- ? Subscribed<V> // recursively unwrap the value
6
- : never // the argument to `then` was not callable
7
- : T; // non-object or non-thenable
@@ -1,120 +0,0 @@
1
- import { AbstractControl, FormArray, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';
2
-
3
- export function validateWhen(
4
- predicate: (parent: FormGroup | FormArray) => boolean,
5
- validators: ValidatorFn | ValidatorFn[],
6
- errorNamespace = 'conditional'
7
- ): ValidatorFn {
8
- return (control: AbstractControl) => {
9
- if (!control.parent) {
10
- return null;
11
- }
12
-
13
- let error: ValidationErrors | null = null;
14
-
15
- if (predicate(control.parent)) {
16
- const validatorArr = Array.isArray(validators) ? validators : [validators];
17
-
18
- error = validatorArr.find((validator) => validator(control) !== null) ?? null;
19
- }
20
-
21
- if (errorNamespace && error) {
22
- const customError: ValidationErrors = {};
23
- customError[errorNamespace] = error;
24
- error = customError;
25
- }
26
-
27
- return error as ValidationErrors | null;
28
- };
29
- }
30
-
31
- export function watchField() {
32
- return (control: AbstractControl): null => {
33
- if (!control.parent) {
34
- return null;
35
- }
36
-
37
- Object.values(control.parent.controls).forEach((ctrl) => {
38
- if (ctrl !== control) {
39
- ctrl.updateValueAndValidity();
40
- }
41
- });
42
-
43
- return null;
44
- };
45
- }
46
-
47
- export function validateIf<T>(
48
- conditionalFieldName: string,
49
- conditionalValue: T | T[],
50
- validators: ValidatorFn | ValidatorFn[],
51
- errorNamespace = 'conditional'
52
- ): ValidatorFn {
53
- return (control: AbstractControl) => {
54
- if (!control.parent) {
55
- return null;
56
- }
57
-
58
- let error: ValidationErrors | null = null;
59
-
60
- const conditionalFormCtrl = control.parent.get(conditionalFieldName);
61
-
62
- if (!conditionalFormCtrl) {
63
- console.warn('Conditional field not found');
64
-
65
- return null;
66
- }
67
-
68
- const isConditionalValueArray = Array.isArray(conditionalValue);
69
-
70
- if (
71
- isConditionalValueArray
72
- ? conditionalFormCtrl.value?.includes(conditionalValue)
73
- : conditionalFormCtrl.value === conditionalValue
74
- ) {
75
- const validatorArr = Array.isArray(validators) ? validators : [validators];
76
-
77
- error = validatorArr.find((validator) => validator(control) !== null) ?? null;
78
- }
79
-
80
- if (errorNamespace && error) {
81
- const customError: ValidationErrors = {};
82
- customError[errorNamespace] = error;
83
- error = customError;
84
- }
85
-
86
- return error;
87
- };
88
- }
89
-
90
- export function accumulatedMax(conditionalValue: number): ValidatorFn {
91
- return (control: AbstractControl): ValidationErrors => {
92
- let error: { accumulatedMax: string } | ValidationErrors = {};
93
-
94
- const accumulatedControlValue = control.value.reduce((a: number, b: number) => a + b, 0);
95
-
96
- if (accumulatedControlValue > conditionalValue) {
97
- error = {
98
- accumulatedMax: `Total page count exceeds the maximum (${conditionalValue}) count.`,
99
- };
100
- }
101
-
102
- return error;
103
- };
104
- }
105
-
106
- export function accumulatedMin(conditionalValue: number): ValidatorFn {
107
- return (control: AbstractControl): ValidationErrors => {
108
- let error: { accumulatedMax: string } | ValidationErrors = {};
109
-
110
- const accumulatedControlValue = control.value.reduce((a: number, b: number) => a + b, 0);
111
-
112
- if (accumulatedControlValue < conditionalValue) {
113
- error = {
114
- accumulatedMin: `Total page count exceeds the minimum (${conditionalValue}) count.`,
115
- };
116
- }
117
-
118
- return error;
119
- };
120
- }
@@ -1,28 +0,0 @@
1
- <app-status-bar />
2
-
3
- <spk-stepper>
4
- <div spk-step routerLinkActive="active" [routerLink]="['/backup', backupId(), 'general']">
5
- <spk-radio />
6
- General
7
- </div>
8
- <div spk-step routerLinkActive="active" [routerLink]="['/backup', backupId(), 'destination']">
9
- <spk-radio />
10
- Destination
11
- </div>
12
- <div spk-step routerLinkActive="active" [routerLink]="['/backup', backupId(), 'source-data']">
13
- <spk-radio />
14
- Source Data
15
- </div>
16
- <div spk-step routerLinkActive="active" [routerLink]="['/backup', backupId(), 'schedule']">
17
- <spk-radio />
18
- Schedule
19
- </div>
20
- <div spk-step routerLinkActive="active" [routerLink]="['/backup', backupId(), 'options']">
21
- <spk-radio />
22
- Options
23
- </div>
24
- </spk-stepper>
25
-
26
- <section>
27
- <router-outlet></router-outlet>
28
- </section>
@@ -1,15 +0,0 @@
1
- @use '@sparkle-ui/core/styles/helpers' as *;
2
-
3
- :host {
4
- display: block;
5
- }
6
-
7
- spk-stepper {
8
- max-width: p2r(500);
9
- margin: p2r(40) auto;
10
- }
11
-
12
- section {
13
- max-width: p2r(500);
14
- margin: 0 auto p2r(40);
15
- }
@@ -1,33 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
2
- import { ActivatedRoute, RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';
3
- import { SparkleIconComponent, SparkleRadioComponent, SparkleStepperComponent } from '@sparkle-ui/core';
4
- import StatusBarComponent from '../core/components/status-bar/status-bar.component';
5
- import { CreateEditBackupState } from './create-edit-backup.state';
6
-
7
- @Component({
8
- selector: 'app-create-edit-backup',
9
- standalone: true,
10
- imports: [
11
- RouterOutlet,
12
- RouterLink,
13
- RouterLinkActive,
14
- StatusBarComponent,
15
- SparkleRadioComponent,
16
- SparkleStepperComponent,
17
- SparkleIconComponent,
18
- ],
19
- templateUrl: './create-edit-backup.component.html',
20
- styleUrl: './create-edit-backup.component.scss',
21
- changeDetection: ChangeDetectionStrategy.OnPush,
22
- providers: [CreateEditBackupState],
23
- })
24
- export default class CreateEditBackupComponent {
25
- #route = inject(ActivatedRoute);
26
- #createEditBackupState = inject(CreateEditBackupState);
27
-
28
- backupId = this.#createEditBackupState.backupId;
29
-
30
- ngOnInit() {
31
- this.#createEditBackupState.init(this.#route.snapshot.params['id']);
32
- }
33
- }