@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.
Files changed (82) hide show
  1. package/dist/backends/backend.d.ts +2 -1
  2. package/dist/backends/backend.js.map +1 -1
  3. package/dist/backends/local.backend.d.ts +2 -1
  4. package/dist/backends/local.backend.js +9 -0
  5. package/dist/backends/local.backend.js.map +1 -1
  6. package/dist/backends/s3.backend.d.ts +2 -1
  7. package/dist/backends/s3.backend.js +3 -0
  8. package/dist/backends/s3.backend.js.map +1 -1
  9. package/dist/backends/yucca.backend.d.ts +4 -2
  10. package/dist/backends/yucca.backend.js +17 -3
  11. package/dist/backends/yucca.backend.js.map +1 -1
  12. package/dist/const.d.ts +1 -0
  13. package/dist/const.js +2 -1
  14. package/dist/const.js.map +1 -1
  15. package/dist/controllers/auth.controller.d.ts +10 -3
  16. package/dist/controllers/auth.controller.js +61 -7
  17. package/dist/controllers/auth.controller.js.map +1 -1
  18. package/dist/controllers/onboarding.controller.d.ts +2 -1
  19. package/dist/controllers/onboarding.controller.js +6 -3
  20. package/dist/controllers/onboarding.controller.js.map +1 -1
  21. package/dist/dto/auth.dto.d.ts +17 -3
  22. package/dist/dto/auth.dto.js +20 -23
  23. package/dist/dto/auth.dto.js.map +1 -1
  24. package/dist/dto/backend.dto.d.ts +35 -12
  25. package/dist/dto/backend.dto.js +20 -57
  26. package/dist/dto/backend.dto.js.map +1 -1
  27. package/dist/dto/filesystem.dto.d.ts +20 -9
  28. package/dist/dto/filesystem.dto.js +21 -46
  29. package/dist/dto/filesystem.dto.js.map +1 -1
  30. package/dist/dto/integrations.dto.d.ts +83 -34
  31. package/dist/dto/integrations.dto.js +64 -173
  32. package/dist/dto/integrations.dto.js.map +1 -1
  33. package/dist/dto/onboarding.dto.d.ts +23 -13
  34. package/dist/dto/onboarding.dto.js +23 -65
  35. package/dist/dto/onboarding.dto.js.map +1 -1
  36. package/dist/dto/repository.dto.d.ts +550 -128
  37. package/dist/dto/repository.dto.js +181 -430
  38. package/dist/dto/repository.dto.js.map +1 -1
  39. package/dist/dto/runningTasks.dto.d.ts +31 -10
  40. package/dist/dto/runningTasks.dto.js +25 -49
  41. package/dist/dto/runningTasks.dto.js.map +1 -1
  42. package/dist/dto/schedule.dto.d.ts +61 -23
  43. package/dist/dto/schedule.dto.js +47 -130
  44. package/dist/dto/schedule.dto.js.map +1 -1
  45. package/dist/dto/ticket.dto.d.ts +14 -0
  46. package/dist/dto/ticket.dto.js +22 -0
  47. package/dist/dto/ticket.dto.js.map +1 -0
  48. package/dist/enum.d.ts +21 -1
  49. package/dist/enum.js +25 -1
  50. package/dist/enum.js.map +1 -1
  51. package/dist/events/events.gateway.d.ts +3 -3
  52. package/dist/events/events.gateway.js +13 -2
  53. package/dist/events/events.gateway.js.map +1 -1
  54. package/dist/middleware/session.guard.d.ts +14 -0
  55. package/dist/middleware/session.guard.js +49 -0
  56. package/dist/middleware/session.guard.js.map +1 -0
  57. package/dist/moduleConfig.d.ts +1 -0
  58. package/dist/orchestrationApi.module.d.ts +2 -1
  59. package/dist/orchestrationApi.module.js +8 -0
  60. package/dist/orchestrationApi.module.js.map +1 -1
  61. package/dist/proxy/resticProxy.d.ts +11 -0
  62. package/dist/proxy/resticProxy.js +93 -0
  63. package/dist/proxy/resticProxy.js.map +1 -0
  64. package/dist/proxy/resticProxyPool.d.ts +9 -0
  65. package/dist/proxy/resticProxyPool.js +44 -0
  66. package/dist/proxy/resticProxyPool.js.map +1 -0
  67. package/dist/repositories/config.repository.d.ts +2 -0
  68. package/dist/repositories/config.repository.js +10 -0
  69. package/dist/repositories/config.repository.js.map +1 -1
  70. package/dist/repositories/runHistory.repository.d.ts +4 -4
  71. package/dist/schema/tables/backend.table.d.ts +1 -0
  72. package/dist/schema/tables/backend.table.js.map +1 -1
  73. package/dist/services/auth.service.d.ts +11 -6
  74. package/dist/services/auth.service.js +130 -51
  75. package/dist/services/auth.service.js.map +1 -1
  76. package/dist/services/onboarding.service.d.ts +4 -2
  77. package/dist/services/onboarding.service.js +14 -3
  78. package/dist/services/onboarding.service.js.map +1 -1
  79. package/dist/services/session.service.d.ts +26 -0
  80. package/dist/services/session.service.js +88 -0
  81. package/dist/services/session.service.js.map +1 -0
  82. 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":";;;AAQA,kCAAsC;AAGtC,MAAsB,OAAO;IACI;IAA/B,YAA+B,aAAmC;QAAnC,kBAAa,GAAb,aAAa,CAAsB;IAAG,CAAC;IAmBtE,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;AAjCD,0BAiCC;AAED,mDAA+C;AAC/C,6CAAyC;AACzC,mDAA+C"}
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":"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"}
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":";;;AAYA,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,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;AAvDD,8BAuDC"}
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(id: string): Promise<never>;
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(id) {
46
- return await (0, backups_api_client_1.deleteRepository)(id, await this.getRequestOptions());
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 { url } = await (0, backups_api_client_1.createResticUrl)(id, await this.getRequestOptions());
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":"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"}
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 { DeviceFlowResponseDto } from '../dto/auth.dto';
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
- constructor(auth: AuthService);
6
- oidcDeviceFlow(): Promise<DeviceFlowResponseDto>;
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
- constructor(auth) {
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
- oidcDeviceFlow() {
23
- return this.auth.oidcDeviceFlow();
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.Get)('/oidc/device'),
29
- (0, swagger_1.ApiOkResponse)({ type: auth_dto_1.DeviceFlowResponseDto }),
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, "oidcDeviceFlow", null);
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":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,6CAAgD;AAChD,8CAAwD;AACxD,2DAAuD;AAGhD,IAAM,cAAc,GAApB,MAAM,cAAc;IACJ;IAArB,YAAqB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;IAAG,CAAC;IAI1C,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;CACF,CAAA;AARY,wCAAc;AAKzB;IAFC,IAAA,YAAG,EAAC,cAAc,CAAC;IACnB,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,gCAAqB,EAAE,CAAC;;;;oDAG9C;yBAPU,cAAc;IAD1B,IAAA,mBAAU,EAAC,aAAa,CAAC;qCAEG,0BAAW;GAD3B,cAAc,CAQ1B"}
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,2CAAkE;AAClE,6CAAyD;AACzD,0DAI+B;AAC/B,uEAAmE;AAG5D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACV;IAArB,YAAqB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAI7C,AAAN,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACzC,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;AAxCY,oDAAoB;AAKzB;IAFL,IAAA,YAAG,GAAE;IACL,IAAA,uBAAa,EAAC,EAAE,IAAI,EAAE,4CAA2B,EAAE,CAAC;;;;4DAGpD;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;+BAvCU,oBAAoB;IADhC,IAAA,mBAAU,EAAC,mBAAmB,CAAC;qCAEA,sCAAiB;GADpC,oBAAoB,CAwChC"}
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"}
@@ -1,4 +1,18 @@
1
- export declare class DeviceFlowResponseDto {
2
- userCode: string;
3
- verificationUri: string;
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 {};
@@ -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.DeviceFlowResponseDto = void 0;
13
- const swagger_1 = require("@nestjs/swagger");
14
- class DeviceFlowResponseDto {
15
- userCode;
16
- verificationUri;
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.DeviceFlowResponseDto = DeviceFlowResponseDto;
19
- __decorate([
20
- (0, swagger_1.ApiProperty)(),
21
- __metadata("design:type", String)
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
@@ -1 +1 @@
1
- {"version":3,"file":"auth.dto.js","sourceRoot":"","sources":["../../src/dto/auth.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,qBAAqB;IAEhC,QAAQ,CAAU;IAGlB,eAAe,CAAU;CAC1B;AAND,sDAMC;AAJC;IADC,IAAA,qBAAW,GAAE;;uDACI;AAGlB;IADC,IAAA,qBAAW,GAAE;;8DACW"}
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 class BackendDto {
3
- id: string;
4
- type: BackendType;
5
- description: string;
6
- isOnline: boolean;
7
- error?: string;
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
- export declare class BackendsResponseDto {
10
- backends: BackendDto[];
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
- export declare class BackendResponseDto {
13
- backend: BackendDto;
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
- export declare class CreateLocalBackendRequestDto {
16
- path: string;
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 {};