@futo-org/backups-orchestrator-api 0.38.0 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backends/backend.d.ts +2 -1
- package/dist/backends/backend.js.map +1 -1
- package/dist/backends/local.backend.d.ts +2 -1
- package/dist/backends/local.backend.js +9 -0
- package/dist/backends/local.backend.js.map +1 -1
- package/dist/backends/s3.backend.d.ts +2 -1
- package/dist/backends/s3.backend.js +3 -0
- package/dist/backends/s3.backend.js.map +1 -1
- package/dist/backends/yucca.backend.d.ts +4 -2
- package/dist/backends/yucca.backend.js +17 -3
- package/dist/backends/yucca.backend.js.map +1 -1
- package/dist/const.d.ts +1 -0
- package/dist/const.js +2 -1
- package/dist/const.js.map +1 -1
- package/dist/controllers/auth.controller.d.ts +10 -3
- package/dist/controllers/auth.controller.js +61 -7
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/onboarding.controller.d.ts +2 -1
- package/dist/controllers/onboarding.controller.js +6 -3
- package/dist/controllers/onboarding.controller.js.map +1 -1
- package/dist/dto/auth.dto.d.ts +17 -3
- package/dist/dto/auth.dto.js +20 -23
- package/dist/dto/auth.dto.js.map +1 -1
- package/dist/dto/backend.dto.d.ts +35 -12
- package/dist/dto/backend.dto.js +20 -57
- package/dist/dto/backend.dto.js.map +1 -1
- package/dist/dto/filesystem.dto.d.ts +20 -9
- package/dist/dto/filesystem.dto.js +21 -46
- package/dist/dto/filesystem.dto.js.map +1 -1
- package/dist/dto/integrations.dto.d.ts +83 -34
- package/dist/dto/integrations.dto.js +64 -173
- package/dist/dto/integrations.dto.js.map +1 -1
- package/dist/dto/onboarding.dto.d.ts +23 -13
- package/dist/dto/onboarding.dto.js +23 -65
- package/dist/dto/onboarding.dto.js.map +1 -1
- package/dist/dto/repository.dto.d.ts +550 -128
- package/dist/dto/repository.dto.js +181 -430
- package/dist/dto/repository.dto.js.map +1 -1
- package/dist/dto/runningTasks.dto.d.ts +31 -10
- package/dist/dto/runningTasks.dto.js +25 -49
- package/dist/dto/runningTasks.dto.js.map +1 -1
- package/dist/dto/schedule.dto.d.ts +61 -23
- package/dist/dto/schedule.dto.js +47 -130
- package/dist/dto/schedule.dto.js.map +1 -1
- package/dist/dto/ticket.dto.d.ts +14 -0
- package/dist/dto/ticket.dto.js +22 -0
- package/dist/dto/ticket.dto.js.map +1 -0
- package/dist/enum.d.ts +21 -1
- package/dist/enum.js +25 -1
- package/dist/enum.js.map +1 -1
- package/dist/events/events.gateway.d.ts +3 -3
- package/dist/events/events.gateway.js +13 -2
- package/dist/events/events.gateway.js.map +1 -1
- package/dist/middleware/session.guard.d.ts +14 -0
- package/dist/middleware/session.guard.js +49 -0
- package/dist/middleware/session.guard.js.map +1 -0
- package/dist/moduleConfig.d.ts +1 -0
- package/dist/orchestrationApi.module.d.ts +2 -1
- package/dist/orchestrationApi.module.js +8 -0
- package/dist/orchestrationApi.module.js.map +1 -1
- package/dist/proxy/resticProxy.d.ts +11 -0
- package/dist/proxy/resticProxy.js +93 -0
- package/dist/proxy/resticProxy.js.map +1 -0
- package/dist/proxy/resticProxyPool.d.ts +9 -0
- package/dist/proxy/resticProxyPool.js +44 -0
- package/dist/proxy/resticProxyPool.js.map +1 -0
- package/dist/repositories/config.repository.d.ts +2 -0
- package/dist/repositories/config.repository.js +10 -0
- package/dist/repositories/config.repository.js.map +1 -1
- package/dist/repositories/runHistory.repository.d.ts +4 -4
- package/dist/schema/tables/backend.table.d.ts +1 -0
- package/dist/schema/tables/backend.table.js.map +1 -1
- package/dist/services/auth.service.d.ts +11 -6
- package/dist/services/auth.service.js +130 -51
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/onboarding.service.d.ts +4 -2
- package/dist/services/onboarding.service.js +14 -3
- package/dist/services/onboarding.service.js.map +1 -1
- package/dist/services/session.service.d.ts +26 -0
- package/dist/services/session.service.js +88 -0
- package/dist/services/session.service.js.map +1 -0
- package/package.json +4 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RepositoryCreateRequestDto, RepositoryCreateResponseDto, RepositoryGetResponseDto, RepositoryListResponseDto, RepositoryUpdateRequestDto, RepositoryUpdateResponseDto } from '@futo-org/backups-api-client';
|
|
1
|
+
import { RepositoryCreateRequestDto, RepositoryCreateResponseDto, RepositoryGetResponseDto, RepositoryListResponseDto, RepositoryUpdateRequestDto, RepositoryUpdateResponseDto, TicketCreateRequestDto, TicketCreateResponseDto } from '@futo-org/backups-api-client';
|
|
2
2
|
import { BackendConfiguration } from '../schema/tables/backend.table';
|
|
3
3
|
export declare abstract class Backend {
|
|
4
4
|
protected readonly configuration: BackendConfiguration;
|
|
@@ -11,6 +11,7 @@ export declare abstract class Backend {
|
|
|
11
11
|
abstract getRepository(id: string): Promise<RepositoryGetResponseDto>;
|
|
12
12
|
abstract getRepositories(): Promise<RepositoryListResponseDto>;
|
|
13
13
|
abstract deleteRepository(id: string): Promise<void>;
|
|
14
|
+
abstract createTicket(dto: TicketCreateRequestDto): Promise<TicketCreateResponseDto>;
|
|
14
15
|
abstract getResticEndpoint(id: string): Promise<string>;
|
|
15
16
|
abstract submitMetricBackupStart(id: string): void;
|
|
16
17
|
abstract submitMetricBackupEnd(id: string, success: boolean, duration: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backends/backend.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backends/backend.ts"],"names":[],"mappings":";;;AAUA,kCAAsC;AAGtC,MAAsB,OAAO;IACI;IAA/B,YAA+B,aAAmC;QAAnC,kBAAa,GAAb,aAAa,CAAsB;IAAG,CAAC;IAoBtE,MAAM,CAAC,IAAI,CAAC,aAAmC;QAC7C,QAAQ,aAAa,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,kBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvB,OAAO,IAAI,4BAAY,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,kBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvB,OAAO,IAAI,4BAAY,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,kBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpB,OAAO,IAAI,sBAAS,CAAC,aAAa,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAlCD,0BAkCC;AAED,mDAA+C;AAC/C,6CAAyC;AACzC,mDAA+C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RepositoryCreateRequestDto, RepositoryCreateResponseDto, RepositoryGetResponseDto, RepositoryListResponseDto, RepositoryUpdateRequestDto, RepositoryUpdateResponseDto } from '@futo-org/backups-api-client';
|
|
1
|
+
import { RepositoryCreateRequestDto, RepositoryCreateResponseDto, RepositoryGetResponseDto, RepositoryListResponseDto, RepositoryUpdateRequestDto, RepositoryUpdateResponseDto, TicketCreateRequestDto, TicketCreateResponseDto } from '@futo-org/backups-api-client';
|
|
2
2
|
import { BackendType } from '../enum';
|
|
3
3
|
import { BackendConfiguration } from '../schema/tables/backend.table';
|
|
4
4
|
import { Backend } from './backend';
|
|
@@ -17,6 +17,7 @@ export declare class LocalBackend extends Backend {
|
|
|
17
17
|
getRepository(_id: string): Promise<RepositoryGetResponseDto>;
|
|
18
18
|
getRepositories(): Promise<RepositoryListResponseDto>;
|
|
19
19
|
deleteRepository(_id: string): Promise<void>;
|
|
20
|
+
createTicket(_dto: TicketCreateRequestDto): Promise<TicketCreateResponseDto>;
|
|
20
21
|
getResticEndpoint(id: string): Promise<string>;
|
|
21
22
|
submitMetricBackupStart(): void;
|
|
22
23
|
submitMetricBackupEnd(): void;
|
|
@@ -34,6 +34,8 @@ class LocalBackend extends backend_1.Backend {
|
|
|
34
34
|
connectionType: 'local',
|
|
35
35
|
metrics: {
|
|
36
36
|
sizeBytes: 0,
|
|
37
|
+
lastBackup: null,
|
|
38
|
+
lastSuccessfulBackup: null,
|
|
37
39
|
},
|
|
38
40
|
},
|
|
39
41
|
};
|
|
@@ -50,6 +52,8 @@ class LocalBackend extends backend_1.Backend {
|
|
|
50
52
|
connectionType: 'local',
|
|
51
53
|
metrics: {
|
|
52
54
|
sizeBytes: 0,
|
|
55
|
+
lastBackup: null,
|
|
56
|
+
lastSuccessfulBackup: null,
|
|
53
57
|
},
|
|
54
58
|
},
|
|
55
59
|
};
|
|
@@ -78,6 +82,8 @@ class LocalBackend extends backend_1.Backend {
|
|
|
78
82
|
connectionType: 'local',
|
|
79
83
|
metrics: {
|
|
80
84
|
sizeBytes: 0,
|
|
85
|
+
lastBackup: null,
|
|
86
|
+
lastSuccessfulBackup: null,
|
|
81
87
|
},
|
|
82
88
|
}
|
|
83
89
|
: null)
|
|
@@ -87,6 +93,9 @@ class LocalBackend extends backend_1.Backend {
|
|
|
87
93
|
async deleteRepository(_id) {
|
|
88
94
|
throw new Error('Method not implemented.');
|
|
89
95
|
}
|
|
96
|
+
async createTicket(_dto) {
|
|
97
|
+
throw new Error('Invalid backend for method');
|
|
98
|
+
}
|
|
90
99
|
async getResticEndpoint(id) {
|
|
91
100
|
return (0, node_path_1.resolve)(this.configuration.path, id);
|
|
92
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.backend.js","sourceRoot":"","sources":["../../src/backends/local.backend.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"local.backend.js","sourceRoot":"","sources":["../../src/backends/local.backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RepositoryCreateRequestDto, RepositoryCreateResponseDto, RepositoryGetResponseDto, RepositoryListResponseDto, RepositoryUpdateRequestDto, RepositoryUpdateResponseDto } from '@futo-org/backups-api-client';
|
|
1
|
+
import { RepositoryCreateRequestDto, RepositoryCreateResponseDto, RepositoryGetResponseDto, RepositoryListResponseDto, RepositoryUpdateRequestDto, RepositoryUpdateResponseDto, TicketCreateRequestDto, TicketCreateResponseDto } from '@futo-org/backups-api-client';
|
|
2
2
|
import { BackendType } from '../enum';
|
|
3
3
|
import { BackendConfiguration } from '../schema/tables/backend.table';
|
|
4
4
|
import { Backend } from './backend';
|
|
@@ -17,6 +17,7 @@ export declare class S3Backend extends Backend {
|
|
|
17
17
|
getRepository(_id: string): Promise<RepositoryGetResponseDto>;
|
|
18
18
|
getRepositories(): Promise<RepositoryListResponseDto>;
|
|
19
19
|
deleteRepository(_id: string): Promise<void>;
|
|
20
|
+
createTicket(_dto: TicketCreateRequestDto): Promise<TicketCreateResponseDto>;
|
|
20
21
|
getResticEndpoint(id: string): Promise<string>;
|
|
21
22
|
submitMetricBackupStart(): void;
|
|
22
23
|
submitMetricBackupEnd(): void;
|
|
@@ -30,6 +30,9 @@ class S3Backend extends backend_1.Backend {
|
|
|
30
30
|
async deleteRepository(_id) {
|
|
31
31
|
throw new Error('Method not implemented.');
|
|
32
32
|
}
|
|
33
|
+
async createTicket(_dto) {
|
|
34
|
+
throw new Error('Invalid backend for method');
|
|
35
|
+
}
|
|
33
36
|
async getResticEndpoint(id) {
|
|
34
37
|
return `s3:${this.configuration.endpoint}/${id}`;
|
|
35
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.backend.js","sourceRoot":"","sources":["../../src/backends/s3.backend.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"s3.backend.js","sourceRoot":"","sources":["../../src/backends/s3.backend.ts"],"names":[],"mappings":";;;AAcA,uCAAoC;AAEpC,MAAa,SAAU,SAAQ,iBAAO;IACL;IAA/B,YAA+B,aAA8D;QAC3F,KAAK,CAAC,aAAa,CAAC,CAAC;QADQ,kBAAa,GAAb,aAAa,CAAiD;IAE7F,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,KAAmB,CAAC;IAErC,gBAAgB,CAAC,IAAgC;QAC/C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB,CAAC,GAAW,EAAE,IAAgC;QAC5D,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,GAAW;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAW;QAChC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAA4B;QAC7C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAEhC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,uBAAuB;QACrB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,qBAAqB;QACnB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,0BAA0B;QACxB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,mBAAmB;QACjB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;CACF;AA3DD,8BA2DC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RepositoryCreateRequestDto, RepositoryUpdateRequestDto } from '@futo-org/backups-api-client';
|
|
1
|
+
import { RepositoryCreateRequestDto, RepositoryUpdateRequestDto, TicketCreateRequestDto, TicketCreateResponseDto } from '@futo-org/backups-api-client';
|
|
2
2
|
import { BackendType } from '../enum';
|
|
3
3
|
import { BackendConfiguration } from '../schema/tables/backend.table';
|
|
4
4
|
import { Backend } from './backend';
|
|
@@ -8,6 +8,7 @@ export declare class YuccaBackend extends Backend {
|
|
|
8
8
|
url?: string;
|
|
9
9
|
};
|
|
10
10
|
private readonly logger;
|
|
11
|
+
private readonly proxyPool;
|
|
11
12
|
constructor(configuration: BackendConfiguration & {
|
|
12
13
|
type: BackendType.Yucca;
|
|
13
14
|
url?: string;
|
|
@@ -20,7 +21,8 @@ export declare class YuccaBackend extends Backend {
|
|
|
20
21
|
updateRepository(id: string, dto: RepositoryUpdateRequestDto): Promise<import("@futo-org/backups-api-client", { with: { "resolution-mode": "import" } }).RepositoryUpdateResponseDto>;
|
|
21
22
|
getRepository(id: string): Promise<import("@futo-org/backups-api-client", { with: { "resolution-mode": "import" } }).RepositoryGetResponseDto>;
|
|
22
23
|
getRepositories(): Promise<import("@futo-org/backups-api-client", { with: { "resolution-mode": "import" } }).RepositoryListResponseDto>;
|
|
23
|
-
deleteRepository(
|
|
24
|
+
deleteRepository(): Promise<void>;
|
|
25
|
+
createTicket(dto: TicketCreateRequestDto): Promise<TicketCreateResponseDto>;
|
|
24
26
|
getResticEndpoint(id: string): Promise<string>;
|
|
25
27
|
submitMetricBackupStart(id: string): void;
|
|
26
28
|
submitMetricBackupEnd(id: string, success: boolean, durationMs: number): void;
|
|
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.YuccaBackend = void 0;
|
|
4
4
|
const backups_api_client_1 = require("@futo-org/backups-api-client");
|
|
5
5
|
const enum_1 = require("../enum");
|
|
6
|
+
const resticProxyPool_1 = require("../proxy/resticProxyPool");
|
|
6
7
|
const logging_repository_1 = require("../repositories/logging.repository");
|
|
7
8
|
const wellKnown_1 = require("../wellKnown");
|
|
8
9
|
const backend_1 = require("./backend");
|
|
9
10
|
class YuccaBackend extends backend_1.Backend {
|
|
10
11
|
configuration;
|
|
11
12
|
logger = logging_repository_1.LoggingRepository.create(YuccaBackend.name);
|
|
13
|
+
proxyPool = new resticProxyPool_1.ResticProxyPool();
|
|
12
14
|
constructor(configuration) {
|
|
13
15
|
super(configuration);
|
|
14
16
|
this.configuration = configuration;
|
|
@@ -42,11 +44,23 @@ class YuccaBackend extends backend_1.Backend {
|
|
|
42
44
|
async getRepositories() {
|
|
43
45
|
return await (0, backups_api_client_1.getRepositories)(await this.getRequestOptions());
|
|
44
46
|
}
|
|
45
|
-
async deleteRepository(
|
|
46
|
-
|
|
47
|
+
async deleteRepository() { }
|
|
48
|
+
async createTicket(dto) {
|
|
49
|
+
return await (0, backups_api_client_1.createTicket)(dto, await this.getRequestOptions());
|
|
47
50
|
}
|
|
48
51
|
async getResticEndpoint(id) {
|
|
49
|
-
const
|
|
52
|
+
const requestOptions = await this.getRequestOptions();
|
|
53
|
+
const proxyAvailable = await this.proxyPool.isAvailable();
|
|
54
|
+
if (proxyAvailable) {
|
|
55
|
+
try {
|
|
56
|
+
const proxy = await this.proxyPool.getProxy(`${requestOptions.baseUrl}/api`);
|
|
57
|
+
return proxy.createUrl(id, this.configuration.accessToken);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
this.logger.warn('Falling back to a direct restic URL', error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const { url } = await (0, backups_api_client_1.createResticUrl)(id, requestOptions);
|
|
50
64
|
return url;
|
|
51
65
|
}
|
|
52
66
|
submitMetricBackupStart(id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yucca.backend.js","sourceRoot":"","sources":["../../src/backends/yucca.backend.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"yucca.backend.js","sourceRoot":"","sources":["../../src/backends/yucca.backend.ts"],"names":[],"mappings":"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"}
|
package/dist/const.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const ORCHESTRATION_PORT = 22676;
|
|
2
2
|
export declare const REPOSITORY_DEFAULT_CLOUD_UUID = "d0368cdd-39ae-40e1-91d6-d81815c65c7e";
|
|
3
3
|
export declare const YUCCA_WELL_KNOWN = "https://meta.futo.cloud/.well-known/yucca.json";
|
|
4
|
+
export declare const SESSION_TTL_MS: number;
|
package/dist/const.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.YUCCA_WELL_KNOWN = exports.REPOSITORY_DEFAULT_CLOUD_UUID = exports.ORCHESTRATION_PORT = void 0;
|
|
3
|
+
exports.SESSION_TTL_MS = exports.YUCCA_WELL_KNOWN = exports.REPOSITORY_DEFAULT_CLOUD_UUID = exports.ORCHESTRATION_PORT = void 0;
|
|
4
4
|
exports.ORCHESTRATION_PORT = 22_676;
|
|
5
5
|
exports.REPOSITORY_DEFAULT_CLOUD_UUID = 'd0368cdd-39ae-40e1-91d6-d81815c65c7e';
|
|
6
6
|
exports.YUCCA_WELL_KNOWN = 'https://meta.futo.cloud/.well-known/yucca.json';
|
|
7
|
+
exports.SESSION_TTL_MS = 30 * 24 * 60 * 60 * 1000;
|
|
7
8
|
//# sourceMappingURL=const.js.map
|
package/dist/const.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,MAAM,CAAC;AAC5B,QAAA,6BAA6B,GAAG,sCAAsC,CAAC;AACvE,QAAA,gBAAgB,GAAG,gDAAgD,CAAC"}
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,MAAM,CAAC;AAC5B,QAAA,6BAA6B,GAAG,sCAAsC,CAAC;AACvE,QAAA,gBAAgB,GAAG,gDAAgD,CAAC;AACpE,QAAA,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type Request, type Response } from 'express';
|
|
2
|
+
import { CreateSessionRequestDto } from '../dto/auth.dto';
|
|
3
|
+
import { TicketCreateRequestDto, TicketCreateResponseDto } from '../dto/ticket.dto';
|
|
2
4
|
import { AuthService } from '../services/auth.service';
|
|
5
|
+
import { SessionService } from '../services/session.service';
|
|
3
6
|
export declare class AuthController {
|
|
4
7
|
readonly auth: AuthService;
|
|
5
|
-
|
|
6
|
-
|
|
8
|
+
readonly session: SessionService;
|
|
9
|
+
constructor(auth: AuthService, session: SessionService);
|
|
10
|
+
connectDeviceFlow(): import("rxjs").Observable<MessageEvent<any>>;
|
|
11
|
+
sessionDeviceFlow(): import("rxjs").Observable<MessageEvent<any>>;
|
|
12
|
+
createSession(dto: CreateSessionRequestDto, request: Request, response: Response): Promise<void>;
|
|
13
|
+
createTicket(dto: TicketCreateRequestDto): Promise<TicketCreateResponseDto>;
|
|
7
14
|
}
|
|
@@ -8,31 +8,85 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.AuthController = void 0;
|
|
13
16
|
const common_1 = require("@nestjs/common");
|
|
14
17
|
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
+
const const_1 = require("../const");
|
|
15
19
|
const auth_dto_1 = require("../dto/auth.dto");
|
|
20
|
+
const ticket_dto_1 = require("../dto/ticket.dto");
|
|
21
|
+
const enum_1 = require("../enum");
|
|
22
|
+
const session_guard_1 = require("../middleware/session.guard");
|
|
16
23
|
const auth_service_1 = require("../services/auth.service");
|
|
24
|
+
const session_service_1 = require("../services/session.service");
|
|
17
25
|
let AuthController = class AuthController {
|
|
18
26
|
auth;
|
|
19
|
-
|
|
27
|
+
session;
|
|
28
|
+
constructor(auth, session) {
|
|
20
29
|
this.auth = auth;
|
|
30
|
+
this.session = session;
|
|
31
|
+
}
|
|
32
|
+
connectDeviceFlow() {
|
|
33
|
+
return this.auth.deviceFlow(false);
|
|
34
|
+
}
|
|
35
|
+
sessionDeviceFlow() {
|
|
36
|
+
return this.auth.deviceFlow(true);
|
|
21
37
|
}
|
|
22
|
-
|
|
23
|
-
|
|
38
|
+
async createSession(dto, request, response) {
|
|
39
|
+
await this.session.authenticate(dto.token);
|
|
40
|
+
response.cookie(enum_1.CookieName.SessionToken, dto.token, {
|
|
41
|
+
path: '/',
|
|
42
|
+
httpOnly: true,
|
|
43
|
+
sameSite: 'lax',
|
|
44
|
+
secure: request.protocol === 'https',
|
|
45
|
+
maxAge: const_1.SESSION_TTL_MS,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async createTicket(dto) {
|
|
49
|
+
return await this.auth.createTicket(dto);
|
|
24
50
|
}
|
|
25
51
|
};
|
|
26
52
|
exports.AuthController = AuthController;
|
|
27
53
|
__decorate([
|
|
28
|
-
(0, common_1.
|
|
29
|
-
(0, swagger_1.ApiOkResponse)({ type: auth_dto_1.
|
|
54
|
+
(0, common_1.Sse)('/oidc/device'),
|
|
55
|
+
(0, swagger_1.ApiOkResponse)({ type: auth_dto_1.DeviceFlowEventDto }),
|
|
56
|
+
__metadata("design:type", Function),
|
|
57
|
+
__metadata("design:paramtypes", []),
|
|
58
|
+
__metadata("design:returntype", void 0)
|
|
59
|
+
], AuthController.prototype, "connectDeviceFlow", null);
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, common_1.Sse)('/session/device'),
|
|
62
|
+
(0, session_guard_1.PublicRoute)(),
|
|
63
|
+
(0, swagger_1.ApiOkResponse)({ type: auth_dto_1.DeviceFlowEventDto }),
|
|
30
64
|
__metadata("design:type", Function),
|
|
31
65
|
__metadata("design:paramtypes", []),
|
|
66
|
+
__metadata("design:returntype", void 0)
|
|
67
|
+
], AuthController.prototype, "sessionDeviceFlow", null);
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, common_1.Post)('/session'),
|
|
70
|
+
(0, session_guard_1.PublicRoute)(),
|
|
71
|
+
(0, swagger_1.ApiBody)({ type: auth_dto_1.CreateSessionRequestDto }),
|
|
72
|
+
__param(0, (0, common_1.Body)()),
|
|
73
|
+
__param(1, (0, common_1.Req)()),
|
|
74
|
+
__param(2, (0, common_1.Res)({ passthrough: true })),
|
|
75
|
+
__metadata("design:type", Function),
|
|
76
|
+
__metadata("design:paramtypes", [auth_dto_1.CreateSessionRequestDto, Object, Object]),
|
|
77
|
+
__metadata("design:returntype", Promise)
|
|
78
|
+
], AuthController.prototype, "createSession", null);
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, common_1.Post)('/ticket'),
|
|
81
|
+
(0, swagger_1.ApiOkResponse)({ type: ticket_dto_1.TicketCreateResponseDto }),
|
|
82
|
+
__param(0, (0, common_1.Body)()),
|
|
83
|
+
__metadata("design:type", Function),
|
|
84
|
+
__metadata("design:paramtypes", [ticket_dto_1.TicketCreateRequestDto]),
|
|
32
85
|
__metadata("design:returntype", Promise)
|
|
33
|
-
], AuthController.prototype, "
|
|
86
|
+
], AuthController.prototype, "createTicket", null);
|
|
34
87
|
exports.AuthController = AuthController = __decorate([
|
|
35
88
|
(0, common_1.Controller)('/yucca/auth'),
|
|
36
|
-
__metadata("design:paramtypes", [auth_service_1.AuthService
|
|
89
|
+
__metadata("design:paramtypes", [auth_service_1.AuthService,
|
|
90
|
+
session_service_1.SessionService])
|
|
37
91
|
], AuthController);
|
|
38
92
|
//# sourceMappingURL=auth.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/controllers/auth.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/controllers/auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuE;AACvE,6CAAyD;AAEzD,oCAA0C;AAC1C,8CAA8E;AAC9E,kDAAoF;AACpF,kCAAqC;AACrC,+DAA0D;AAC1D,2DAAuD;AACvD,iEAA6D;AAGtD,IAAM,cAAc,GAApB,MAAM,cAAc;IAEd;IACA;IAFX,YACW,IAAiB,EACjB,OAAuB;QADvB,SAAI,GAAJ,IAAI,CAAa;QACjB,YAAO,GAAP,OAAO,CAAgB;IAC/B,CAAC;IAIJ,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAKD,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAKK,AAAN,KAAK,CAAC,aAAa,CACT,GAA4B,EAC7B,OAAgB,EACK,QAAkB;QAE9C,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3C,QAAQ,CAAC,MAAM,CAAC,iBAAU,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,EAAE;YAClD,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACpC,MAAM,EAAE,sBAAc;SACvB,CAAC,CAAC;IACL,CAAC;IAIK,AAAN,KAAK,CAAC,YAAY,CAAS,GAA2B;QACpD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AA3CY,wCAAc;AAQzB;IAFC,IAAA,YAAG,EAAC,cAAc,CAAC;IACnB,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,6BAAkB,EAAE,CAAC;;;;uDAG3C;AAKD;IAHC,IAAA,YAAG,EAAC,iBAAiB,CAAC;IACtB,IAAA,2BAAW,GAAE;IACb,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,6BAAkB,EAAE,CAAC;;;;uDAG3C;AAKK;IAHL,IAAA,aAAI,EAAC,UAAU,CAAC;IAChB,IAAA,2BAAW,GAAE;IACb,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,kCAAuB,EAAE,CAAC;IAExC,WAAA,IAAA,aAAI,GAAE,CAAA;IACN,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;;qCAFd,kCAAuB;;mDAarC;AAIK;IAFL,IAAA,aAAI,EAAC,SAAS,CAAC;IACf,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,oCAAuB,EAAE,CAAC;IAC7B,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,mCAAsB;;kDAErD;yBA1CU,cAAc;IAD1B,IAAA,mBAAU,EAAC,aAAa,CAAC;qCAGP,0BAAW;QACR,gCAAc;GAHvB,cAAc,CA2C1B"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { CurrentRecoveryKeyResponse, ImportRecoveryKeyRequest, OnboardingStatusResponseDto } from '../dto/onboarding.dto';
|
|
2
|
+
import { type SessionRequest } from '../middleware/session.guard';
|
|
2
3
|
import { OnboardingService } from '../services/onboarding.service';
|
|
3
4
|
export declare class OnboardingController {
|
|
4
5
|
readonly service: OnboardingService;
|
|
5
6
|
constructor(service: OnboardingService);
|
|
6
|
-
onboardingStatus(): Promise<OnboardingStatusResponseDto>;
|
|
7
|
+
onboardingStatus(request: SessionRequest): Promise<OnboardingStatusResponseDto>;
|
|
7
8
|
currentRecoveryKey(): Promise<CurrentRecoveryKeyResponse>;
|
|
8
9
|
importRecoveryKey(dto: ImportRecoveryKeyRequest): Promise<void>;
|
|
9
10
|
confirmRecoveryKey(): Promise<void>;
|
|
@@ -16,14 +16,15 @@ exports.OnboardingController = void 0;
|
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const swagger_1 = require("@nestjs/swagger");
|
|
18
18
|
const onboarding_dto_1 = require("../dto/onboarding.dto");
|
|
19
|
+
const session_guard_1 = require("../middleware/session.guard");
|
|
19
20
|
const onboarding_service_1 = require("../services/onboarding.service");
|
|
20
21
|
let OnboardingController = class OnboardingController {
|
|
21
22
|
service;
|
|
22
23
|
constructor(service) {
|
|
23
24
|
this.service = service;
|
|
24
25
|
}
|
|
25
|
-
async onboardingStatus() {
|
|
26
|
-
return this.service.onboardingStatus();
|
|
26
|
+
async onboardingStatus(request) {
|
|
27
|
+
return this.service.onboardingStatus(request.session);
|
|
27
28
|
}
|
|
28
29
|
async currentRecoveryKey() {
|
|
29
30
|
return this.service.currentRecoveryKey();
|
|
@@ -47,9 +48,11 @@ let OnboardingController = class OnboardingController {
|
|
|
47
48
|
exports.OnboardingController = OnboardingController;
|
|
48
49
|
__decorate([
|
|
49
50
|
(0, common_1.Get)(),
|
|
51
|
+
(0, session_guard_1.PublicRoute)(),
|
|
50
52
|
(0, swagger_1.ApiOkResponse)({ type: onboarding_dto_1.OnboardingStatusResponseDto }),
|
|
53
|
+
__param(0, (0, common_1.Req)()),
|
|
51
54
|
__metadata("design:type", Function),
|
|
52
|
-
__metadata("design:paramtypes", []),
|
|
55
|
+
__metadata("design:paramtypes", [Object]),
|
|
53
56
|
__metadata("design:returntype", Promise)
|
|
54
57
|
], OnboardingController.prototype, "onboardingStatus", null);
|
|
55
58
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.controller.js","sourceRoot":"","sources":["../../src/controllers/onboarding.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"onboarding.controller.js","sourceRoot":"","sources":["../../src/controllers/onboarding.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuE;AACvE,6CAAyD;AACzD,0DAI+B;AAC/B,+DAA+E;AAC/E,uEAAmE;AAG5D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACV;IAArB,YAAqB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAK7C,AAAN,KAAK,CAAC,gBAAgB,CAAQ,OAAuB;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAIK,AAAN,KAAK,CAAC,kBAAkB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAC3C,CAAC;IAIK,AAAN,KAAK,CAAC,iBAAiB,CAAS,GAA6B;QAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB;QACtB,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAC1C,CAAC;IAGK,AAAN,KAAK,CAAC,yBAAyB;QAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAGD,WAAW;QACT,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;CACF,CAAA;AAzCY,oDAAoB;AAMzB;IAHL,IAAA,YAAG,GAAE;IACL,IAAA,2BAAW,GAAE;IACb,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,4CAA2B,EAAE,CAAC;IAC7B,WAAA,IAAA,YAAG,GAAE,CAAA;;;;4DAE5B;AAIK;IAFL,IAAA,YAAG,EAAC,eAAe,CAAC;IACpB,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,2CAA0B,EAAE,CAAC;;;;8DAGnD;AAIK;IAFL,IAAA,YAAG,EAAC,eAAe,CAAC;IACpB,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,yCAAwB,EAAE,CAAC;IACnB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,yCAAwB;;6DAE5D;AAGK;IADL,IAAA,aAAI,EAAC,eAAe,CAAC;;;;8DAGrB;AAGK;IADL,IAAA,aAAI,EAAC,OAAO,CAAC;;;;qEAGb;AAGK;IADL,IAAA,aAAI,EAAC,YAAY,CAAC;;;;2DAGlB;AAGD;IADC,IAAA,aAAI,EAAC,eAAe,CAAC;;;;uDAGrB;+BAxCU,oBAAoB;IADhC,IAAA,mBAAU,EAAC,mBAAmB,CAAC;qCAEA,sCAAiB;GADpC,oBAAoB,CAyChC"}
|
package/dist/dto/auth.dto.d.ts
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { DeviceFlowEventType, DeviceFlowFailureReason } from '../enum';
|
|
3
|
+
declare const DeviceFlowEventDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
|
|
4
|
+
type: z.ZodEnum<typeof DeviceFlowEventType>;
|
|
5
|
+
userCode: z.ZodOptional<z.ZodString>;
|
|
6
|
+
verificationUri: z.ZodOptional<z.ZodString>;
|
|
7
|
+
token: z.ZodOptional<z.ZodString>;
|
|
8
|
+
backendId: z.ZodOptional<z.ZodString>;
|
|
9
|
+
reason: z.ZodOptional<z.ZodEnum<typeof DeviceFlowFailureReason>>;
|
|
10
|
+
}, z.core.$strip>, false>;
|
|
11
|
+
export declare class DeviceFlowEventDto extends DeviceFlowEventDto_base {
|
|
4
12
|
}
|
|
13
|
+
declare const CreateSessionRequestDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
|
|
14
|
+
token: z.ZodString;
|
|
15
|
+
}, z.core.$strip>, false>;
|
|
16
|
+
export declare class CreateSessionRequestDto extends CreateSessionRequestDto_base {
|
|
17
|
+
}
|
|
18
|
+
export {};
|
package/dist/dto/auth.dto.js
CHANGED
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
3
|
+
exports.CreateSessionRequestDto = exports.DeviceFlowEventDto = void 0;
|
|
4
|
+
const nestjs_zod_1 = require("nestjs-zod");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const enum_1 = require("../enum");
|
|
7
|
+
const DeviceFlowEventSchema = zod_1.z
|
|
8
|
+
.object({
|
|
9
|
+
type: zod_1.z.enum(enum_1.DeviceFlowEventType).meta({ id: 'DeviceFlowEventType' }),
|
|
10
|
+
userCode: zod_1.z.string().optional(),
|
|
11
|
+
verificationUri: zod_1.z.string().optional(),
|
|
12
|
+
token: zod_1.z.string().optional(),
|
|
13
|
+
backendId: zod_1.z.string().optional(),
|
|
14
|
+
reason: zod_1.z.enum(enum_1.DeviceFlowFailureReason).meta({ id: 'DeviceFlowFailureReason' }).optional(),
|
|
15
|
+
})
|
|
16
|
+
.meta({ id: 'DeviceFlowEventDto' });
|
|
17
|
+
const CreateSessionRequestSchema = zod_1.z.object({ token: zod_1.z.string() }).meta({ id: 'CreateSessionRequestDto' });
|
|
18
|
+
class DeviceFlowEventDto extends (0, nestjs_zod_1.createZodDto)(DeviceFlowEventSchema) {
|
|
17
19
|
}
|
|
18
|
-
exports.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
], DeviceFlowResponseDto.prototype, "userCode", void 0);
|
|
23
|
-
__decorate([
|
|
24
|
-
(0, swagger_1.ApiProperty)(),
|
|
25
|
-
__metadata("design:type", String)
|
|
26
|
-
], DeviceFlowResponseDto.prototype, "verificationUri", void 0);
|
|
20
|
+
exports.DeviceFlowEventDto = DeviceFlowEventDto;
|
|
21
|
+
class CreateSessionRequestDto extends (0, nestjs_zod_1.createZodDto)(CreateSessionRequestSchema) {
|
|
22
|
+
}
|
|
23
|
+
exports.CreateSessionRequestDto = CreateSessionRequestDto;
|
|
27
24
|
//# sourceMappingURL=auth.dto.js.map
|
package/dist/dto/auth.dto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.dto.js","sourceRoot":"","sources":["../../src/dto/auth.dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.dto.js","sourceRoot":"","sources":["../../src/dto/auth.dto.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAC1C,6BAAwB;AACxB,kCAAuE;AAEvE,MAAM,qBAAqB,GAAG,OAAC;KAC5B,MAAM,CAAC;IACN,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,0BAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,qBAAqB,EAAE,CAAC;IACrE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,8BAAuB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3F,CAAC;KACD,IAAI,CAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAEtC,MAAM,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAE3G,MAAa,kBAAmB,SAAQ,IAAA,yBAAY,EAAC,qBAAqB,CAAC;CAAG;AAA9E,gDAA8E;AAC9E,MAAa,uBAAwB,SAAQ,IAAA,yBAAY,EAAC,0BAA0B,CAAC;CAAG;AAAxF,0DAAwF"}
|
|
@@ -1,17 +1,40 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
import { BackendType } from '../enum';
|
|
2
|
-
export declare
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
export declare const BackendTypeSchema: z.ZodEnum<typeof BackendType>;
|
|
4
|
+
declare const BackendDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
|
|
5
|
+
id: z.ZodString;
|
|
6
|
+
type: z.ZodEnum<typeof BackendType>;
|
|
7
|
+
description: z.ZodString;
|
|
8
|
+
isOnline: z.ZodBoolean;
|
|
9
|
+
error: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, z.core.$strip>, false>;
|
|
11
|
+
export declare class BackendDto extends BackendDto_base {
|
|
8
12
|
}
|
|
9
|
-
|
|
10
|
-
backends:
|
|
13
|
+
declare const BackendsResponseDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
|
|
14
|
+
backends: z.ZodArray<z.ZodObject<{
|
|
15
|
+
id: z.ZodString;
|
|
16
|
+
type: z.ZodEnum<typeof BackendType>;
|
|
17
|
+
description: z.ZodString;
|
|
18
|
+
isOnline: z.ZodBoolean;
|
|
19
|
+
error: z.ZodOptional<z.ZodString>;
|
|
20
|
+
}, z.core.$strip>>;
|
|
21
|
+
}, z.core.$strip>, false>;
|
|
22
|
+
export declare class BackendsResponseDto extends BackendsResponseDto_base {
|
|
11
23
|
}
|
|
12
|
-
|
|
13
|
-
backend:
|
|
24
|
+
declare const BackendResponseDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
|
|
25
|
+
backend: z.ZodObject<{
|
|
26
|
+
id: z.ZodString;
|
|
27
|
+
type: z.ZodEnum<typeof BackendType>;
|
|
28
|
+
description: z.ZodString;
|
|
29
|
+
isOnline: z.ZodBoolean;
|
|
30
|
+
error: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
}, z.core.$strip>, false>;
|
|
33
|
+
export declare class BackendResponseDto extends BackendResponseDto_base {
|
|
14
34
|
}
|
|
15
|
-
|
|
16
|
-
path:
|
|
35
|
+
declare const CreateLocalBackendRequestDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
|
|
36
|
+
path: z.ZodString;
|
|
37
|
+
}, z.core.$strip>, false>;
|
|
38
|
+
export declare class CreateLocalBackendRequestDto extends CreateLocalBackendRequestDto_base {
|
|
17
39
|
}
|
|
40
|
+
export {};
|