@carlonicora/nestjs-neo4jsonapi 8.4.0 → 8.6.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 (150) hide show
  1. package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
  2. package/dist/bootstrap/app.module.factory.js +1 -0
  3. package/dist/bootstrap/app.module.factory.js.map +1 -1
  4. package/dist/bootstrap/bootstrap.options.d.ts +14 -0
  5. package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
  6. package/dist/config/enums/queue.id.d.ts +1 -0
  7. package/dist/config/enums/queue.id.d.ts.map +1 -1
  8. package/dist/config/enums/queue.id.js +1 -0
  9. package/dist/config/enums/queue.id.js.map +1 -1
  10. package/dist/core/email/templates/en/accountDeleted.hbs +23 -0
  11. package/dist/core/email/templates/en/accountDeletionRequested.hbs +28 -0
  12. package/dist/foundations/account-deletion/account-deletion.config.d.ts +18 -0
  13. package/dist/foundations/account-deletion/account-deletion.config.d.ts.map +1 -0
  14. package/dist/foundations/account-deletion/account-deletion.config.js +6 -0
  15. package/dist/foundations/account-deletion/account-deletion.config.js.map +1 -0
  16. package/dist/foundations/account-deletion/account-deletion.constants.d.ts +36 -0
  17. package/dist/foundations/account-deletion/account-deletion.constants.d.ts.map +1 -0
  18. package/dist/foundations/account-deletion/account-deletion.constants.js +41 -0
  19. package/dist/foundations/account-deletion/account-deletion.constants.js.map +1 -0
  20. package/dist/foundations/account-deletion/account-deletion.module.d.ts +31 -0
  21. package/dist/foundations/account-deletion/account-deletion.module.d.ts.map +1 -0
  22. package/dist/foundations/account-deletion/account-deletion.module.js +98 -0
  23. package/dist/foundations/account-deletion/account-deletion.module.js.map +1 -0
  24. package/dist/foundations/account-deletion/controllers/account-deletion.controller.d.ts +28 -0
  25. package/dist/foundations/account-deletion/controllers/account-deletion.controller.d.ts.map +1 -0
  26. package/dist/foundations/account-deletion/controllers/account-deletion.controller.js +132 -0
  27. package/dist/foundations/account-deletion/controllers/account-deletion.controller.js.map +1 -0
  28. package/dist/foundations/account-deletion/cron/account-deletion.cron.d.ts +20 -0
  29. package/dist/foundations/account-deletion/cron/account-deletion.cron.d.ts.map +1 -0
  30. package/dist/foundations/account-deletion/cron/account-deletion.cron.js +78 -0
  31. package/dist/foundations/account-deletion/cron/account-deletion.cron.js.map +1 -0
  32. package/dist/foundations/account-deletion/dtos/account-deletion.keep.post.dto.d.ts +14 -0
  33. package/dist/foundations/account-deletion/dtos/account-deletion.keep.post.dto.d.ts.map +1 -0
  34. package/dist/foundations/account-deletion/dtos/account-deletion.keep.post.dto.js +51 -0
  35. package/dist/foundations/account-deletion/dtos/account-deletion.keep.post.dto.js.map +1 -0
  36. package/dist/foundations/account-deletion/dtos/account-deletion.post.dto.d.ts +14 -0
  37. package/dist/foundations/account-deletion/dtos/account-deletion.post.dto.d.ts.map +1 -0
  38. package/dist/foundations/account-deletion/dtos/account-deletion.post.dto.js +51 -0
  39. package/dist/foundations/account-deletion/dtos/account-deletion.post.dto.js.map +1 -0
  40. package/dist/foundations/account-deletion/entities/account-deletion.d.ts +20 -0
  41. package/dist/foundations/account-deletion/entities/account-deletion.d.ts.map +1 -0
  42. package/dist/foundations/account-deletion/entities/account-deletion.js +21 -0
  43. package/dist/foundations/account-deletion/entities/account-deletion.js.map +1 -0
  44. package/dist/foundations/account-deletion/entities/account-deletion.meta.d.ts +3 -0
  45. package/dist/foundations/account-deletion/entities/account-deletion.meta.d.ts.map +1 -0
  46. package/dist/foundations/account-deletion/entities/account-deletion.meta.js +10 -0
  47. package/dist/foundations/account-deletion/entities/account-deletion.meta.js.map +1 -0
  48. package/dist/foundations/account-deletion/index.d.ts +15 -0
  49. package/dist/foundations/account-deletion/index.d.ts.map +1 -0
  50. package/dist/foundations/account-deletion/index.js +31 -0
  51. package/dist/foundations/account-deletion/index.js.map +1 -0
  52. package/dist/foundations/account-deletion/interfaces/account-deletion-handler.interface.d.ts +29 -0
  53. package/dist/foundations/account-deletion/interfaces/account-deletion-handler.interface.d.ts.map +1 -0
  54. package/dist/foundations/account-deletion/interfaces/account-deletion-handler.interface.js +5 -0
  55. package/dist/foundations/account-deletion/interfaces/account-deletion-handler.interface.js.map +1 -0
  56. package/dist/foundations/account-deletion/interfaces/account-deletion-login-hook.interface.d.ts +12 -0
  57. package/dist/foundations/account-deletion/interfaces/account-deletion-login-hook.interface.d.ts.map +1 -0
  58. package/dist/foundations/account-deletion/interfaces/account-deletion-login-hook.interface.js +5 -0
  59. package/dist/foundations/account-deletion/interfaces/account-deletion-login-hook.interface.js.map +1 -0
  60. package/dist/foundations/account-deletion/processors/account-deletion.processor.d.ts +28 -0
  61. package/dist/foundations/account-deletion/processors/account-deletion.processor.d.ts.map +1 -0
  62. package/dist/foundations/account-deletion/processors/account-deletion.processor.js +97 -0
  63. package/dist/foundations/account-deletion/processors/account-deletion.processor.js.map +1 -0
  64. package/dist/foundations/account-deletion/repositories/account-deletion.repository.d.ts +85 -0
  65. package/dist/foundations/account-deletion/repositories/account-deletion.repository.d.ts.map +1 -0
  66. package/dist/foundations/account-deletion/repositories/account-deletion.repository.js +186 -0
  67. package/dist/foundations/account-deletion/repositories/account-deletion.repository.js.map +1 -0
  68. package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.d.ts +77 -0
  69. package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.d.ts.map +1 -0
  70. package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.js +243 -0
  71. package/dist/foundations/account-deletion/repositories/account-deletion.wipe.repository.js.map +1 -0
  72. package/dist/foundations/account-deletion/services/account-deletion.service.d.ts +105 -0
  73. package/dist/foundations/account-deletion/services/account-deletion.service.d.ts.map +1 -0
  74. package/dist/foundations/account-deletion/services/account-deletion.service.js +300 -0
  75. package/dist/foundations/account-deletion/services/account-deletion.service.js.map +1 -0
  76. package/dist/foundations/account-deletion/services/account-wipe.service.d.ts +64 -0
  77. package/dist/foundations/account-deletion/services/account-wipe.service.d.ts.map +1 -0
  78. package/dist/foundations/account-deletion/services/account-wipe.service.js +134 -0
  79. package/dist/foundations/account-deletion/services/account-wipe.service.js.map +1 -0
  80. package/dist/foundations/account-deletion/services/full-company-deletion.service.d.ts +88 -0
  81. package/dist/foundations/account-deletion/services/full-company-deletion.service.d.ts.map +1 -0
  82. package/dist/foundations/account-deletion/services/full-company-deletion.service.js +184 -0
  83. package/dist/foundations/account-deletion/services/full-company-deletion.service.js.map +1 -0
  84. package/dist/foundations/account-deletion/utils/deliverable-email.d.ts +8 -0
  85. package/dist/foundations/account-deletion/utils/deliverable-email.d.ts.map +1 -0
  86. package/dist/foundations/account-deletion/utils/deliverable-email.js +20 -0
  87. package/dist/foundations/account-deletion/utils/deliverable-email.js.map +1 -0
  88. package/dist/foundations/auth/auth.module.d.ts.map +1 -1
  89. package/dist/foundations/auth/auth.module.js +5 -0
  90. package/dist/foundations/auth/auth.module.js.map +1 -1
  91. package/dist/foundations/auth/controllers/auth.controller.d.ts +5 -1
  92. package/dist/foundations/auth/controllers/auth.controller.d.ts.map +1 -1
  93. package/dist/foundations/auth/controllers/auth.controller.js +25 -2
  94. package/dist/foundations/auth/controllers/auth.controller.js.map +1 -1
  95. package/dist/foundations/auth/controllers/auth.discord.controller.d.ts +1 -1
  96. package/dist/foundations/auth/controllers/auth.discord.controller.d.ts.map +1 -1
  97. package/dist/foundations/auth/controllers/auth.discord.controller.js +6 -3
  98. package/dist/foundations/auth/controllers/auth.discord.controller.js.map +1 -1
  99. package/dist/foundations/auth/entities/auth.d.ts +1 -0
  100. package/dist/foundations/auth/entities/auth.d.ts.map +1 -1
  101. package/dist/foundations/auth/entities/auth.js +4 -0
  102. package/dist/foundations/auth/entities/auth.js.map +1 -1
  103. package/dist/foundations/auth/entities/pending-registration.meta.d.ts +3 -0
  104. package/dist/foundations/auth/entities/pending-registration.meta.d.ts.map +1 -0
  105. package/dist/foundations/auth/entities/pending-registration.meta.js +10 -0
  106. package/dist/foundations/auth/entities/pending-registration.meta.js.map +1 -0
  107. package/dist/foundations/auth/entities/pending-registration.resource.d.ts +30 -0
  108. package/dist/foundations/auth/entities/pending-registration.resource.d.ts.map +1 -0
  109. package/dist/foundations/auth/entities/pending-registration.resource.js +52 -0
  110. package/dist/foundations/auth/entities/pending-registration.resource.js.map +1 -0
  111. package/dist/foundations/auth/index.d.ts +5 -0
  112. package/dist/foundations/auth/index.d.ts.map +1 -1
  113. package/dist/foundations/auth/index.js +9 -1
  114. package/dist/foundations/auth/index.js.map +1 -1
  115. package/dist/foundations/auth/interfaces/registration-pass.interface.d.ts +29 -0
  116. package/dist/foundations/auth/interfaces/registration-pass.interface.d.ts.map +1 -0
  117. package/dist/foundations/auth/interfaces/registration-pass.interface.js +8 -0
  118. package/dist/foundations/auth/interfaces/registration-pass.interface.js.map +1 -0
  119. package/dist/foundations/auth/repositories/auth.repository.d.ts +2 -0
  120. package/dist/foundations/auth/repositories/auth.repository.d.ts.map +1 -1
  121. package/dist/foundations/auth/repositories/auth.repository.js +4 -0
  122. package/dist/foundations/auth/repositories/auth.repository.js.map +1 -1
  123. package/dist/foundations/auth/services/auth.discord.service.d.ts +6 -2
  124. package/dist/foundations/auth/services/auth.discord.service.d.ts.map +1 -1
  125. package/dist/foundations/auth/services/auth.discord.service.js +38 -9
  126. package/dist/foundations/auth/services/auth.discord.service.js.map +1 -1
  127. package/dist/foundations/auth/services/auth.service.d.ts +13 -1
  128. package/dist/foundations/auth/services/auth.service.d.ts.map +1 -1
  129. package/dist/foundations/auth/services/auth.service.js +68 -7
  130. package/dist/foundations/auth/services/auth.service.js.map +1 -1
  131. package/dist/foundations/auth/services/pending-registration.service.d.ts +2 -0
  132. package/dist/foundations/auth/services/pending-registration.service.d.ts.map +1 -1
  133. package/dist/foundations/auth/services/pending-registration.service.js.map +1 -1
  134. package/dist/foundations/auth/utils/resolve-registration-pass.d.ts +10 -0
  135. package/dist/foundations/auth/utils/resolve-registration-pass.d.ts.map +1 -0
  136. package/dist/foundations/auth/utils/resolve-registration-pass.js +19 -0
  137. package/dist/foundations/auth/utils/resolve-registration-pass.js.map +1 -0
  138. package/dist/foundations/foundations.modules.d.ts +7 -0
  139. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  140. package/dist/foundations/foundations.modules.js +5 -0
  141. package/dist/foundations/foundations.modules.js.map +1 -1
  142. package/dist/foundations/index.d.ts +1 -0
  143. package/dist/foundations/index.d.ts.map +1 -1
  144. package/dist/foundations/index.js +1 -0
  145. package/dist/foundations/index.js.map +1 -1
  146. package/dist/foundations/user/entities/user.d.ts +3 -0
  147. package/dist/foundations/user/entities/user.d.ts.map +1 -1
  148. package/dist/foundations/user/entities/user.js +4 -0
  149. package/dist/foundations/user/entities/user.js.map +1 -1
  150. package/package.json +1 -1
@@ -0,0 +1,88 @@
1
+ import { ModuleRef } from "@nestjs/core";
2
+ import { Queue } from "bullmq";
3
+ import { ClsService } from "nestjs-cls";
4
+ import { CacheService } from "../../../core/cache/services/cache.service";
5
+ import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service";
6
+ import { AppLoggingService } from "../../../core/logging/services/logging.service";
7
+ import { AbstractService } from "../../../core/neo4j/abstracts/abstract.service";
8
+ import type { CompanyDeletionHandler, DeletionOptions } from "../../company/interfaces/company-deletion-handler.interface";
9
+ import { S3Service } from "../../s3/services/s3.service";
10
+ import { StripeCustomerRepository } from "../../stripe-customer/repositories/stripe-customer.repository";
11
+ import { StripeCustomerApiService } from "../../stripe-customer/services/stripe-customer-api.service";
12
+ import { User, UserDescriptor } from "../../user/entities/user";
13
+ import { AccountDeletionRepository } from "../repositories/account-deletion.repository";
14
+ import { AccountDeletionWipeRepository } from "../repositories/account-deletion.wipe.repository";
15
+ /**
16
+ * Complete company deletion: app content, Stripe, S3, every company node, the
17
+ * company's placeholder users, then the Company and its Memberships.
18
+ *
19
+ * Mounted only when the app enables `accountDeletion`. An app that wants the
20
+ * admin company delete to be complete provides it as `COMPANY_DELETION_HANDLER`
21
+ * (`{ provide: COMPANY_DELETION_HANDLER, useExisting: FullCompanyDeletionService }`):
22
+ * `deleteCompany` then enqueues the wipe on the worker instead of running it in
23
+ * the HTTP request. Every step is idempotent, so a crashed job re-runs from the top.
24
+ */
25
+ export declare class FullCompanyDeletionService extends AbstractService<User, typeof UserDescriptor.relationships> implements CompanyDeletionHandler {
26
+ private readonly queue;
27
+ private readonly wipeRepository;
28
+ private readonly accountDeletionRepository;
29
+ private readonly stripeCustomerRepository;
30
+ private readonly stripeCustomerApiService;
31
+ private readonly s3Service;
32
+ private readonly cacheService;
33
+ private readonly logger;
34
+ private readonly moduleRef;
35
+ protected readonly descriptor: import("../../..").EntityDescriptor<User, {
36
+ role: {
37
+ model: import("../../..").DataMeta;
38
+ direction: "out";
39
+ relationship: string;
40
+ cardinality: "many";
41
+ dtoKey: string;
42
+ readOnly: true;
43
+ };
44
+ company: {
45
+ model: import("../../..").DataModelInterface<import("../..").Company>;
46
+ direction: "out";
47
+ relationship: string;
48
+ cardinality: "one";
49
+ };
50
+ module: {
51
+ model: import("../../..").DataMeta;
52
+ direction: "out";
53
+ relationship: string;
54
+ cardinality: "many";
55
+ dtoKey: string;
56
+ };
57
+ }>;
58
+ constructor(jsonApiService: JsonApiService, queue: Queue, wipeRepository: AccountDeletionWipeRepository, accountDeletionRepository: AccountDeletionRepository, stripeCustomerRepository: StripeCustomerRepository, stripeCustomerApiService: StripeCustomerApiService, s3Service: S3Service, cacheService: CacheService, clsService: ClsService, logger: AppLoggingService, moduleRef: ModuleRef);
59
+ /**
60
+ * The app handler comes from an app module, looked up at call time like AccountDeletionService
61
+ * does. Injected with @Optional it resolved to undefined here (provider cycle through
62
+ * COMPANY_DELETION_HANDLER), so the app content step was silently skipped.
63
+ */
64
+ private get handler();
65
+ /** `CompanyDeletionHandler`: enqueues the wipe; the worker runs it. */
66
+ deleteCompany(companyId: string, _companyName: string, options?: DeletionOptions): Promise<void>;
67
+ /**
68
+ * Wipes the company. Runs in the worker, inside a CLS that carries the
69
+ * company id; when the CLS has no user id, the company's first user (members
70
+ * first) is set, because app content deletes need both.
71
+ */
72
+ wipeCompany(params: {
73
+ companyId: string;
74
+ }): Promise<void>;
75
+ /**
76
+ * The user's own library nodes, the edges to other people's nodes, the
77
+ * email-keyed entries, the avatar file (when outside the wiped company's
78
+ * folder) and the user's cache. The User node itself stays: the caller
79
+ * deletes it last.
80
+ */
81
+ removeUserLinkedData(params: {
82
+ user: User;
83
+ wipedCompanyId?: string;
84
+ }): Promise<void>;
85
+ }
86
+ /** Stripe "No such customer / subscription" (`resource_missing`): the resource is already gone. */
87
+ export declare function isMissingStripeResource(error: unknown): boolean;
88
+ //# sourceMappingURL=full-company-deletion.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-company-deletion.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/account-deletion/services/full-company-deletion.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EAChB,MAAM,6DAA6D,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+DAA+D,CAAC;AACzG,OAAO,EAAE,wBAAwB,EAAE,MAAM,4DAA4D,CAAC;AACtG,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAUhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAC;AAEjG;;;;;;;;;GASG;AACH,qBACa,0BACX,SAAQ,eAAe,CAAC,IAAI,EAAE,OAAO,cAAc,CAAC,aAAa,CACjE,YAAW,sBAAsB;IAMQ,OAAO,CAAC,QAAQ,CAAC,KAAK;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;OAAkB;gBAG7C,cAAc,EAAE,cAAc,EAC0B,KAAK,EAAE,KAAK,EACnD,cAAc,EAAE,6BAA6B,EAC7C,yBAAyB,EAAE,yBAAyB,EACpD,wBAAwB,EAAE,wBAAwB,EAClD,wBAAwB,EAAE,wBAAwB,EAClD,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC3C,UAAU,EAAE,UAAU,EACL,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,SAAS;IAKvC;;;;OAIG;IACH,OAAO,KAAK,OAAO,GAMlB;IAED,uEAAuE;IACjE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtG;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2D/D;;;;;OAKG;IACG,oBAAoB,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAgB3F;AAMD,mGAAmG;AACnG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK/D"}
@@ -0,0 +1,184 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.FullCompanyDeletionService = void 0;
16
+ exports.isMissingStripeResource = isMissingStripeResource;
17
+ const bullmq_1 = require("@nestjs/bullmq");
18
+ const common_1 = require("@nestjs/common");
19
+ const core_1 = require("@nestjs/core");
20
+ const bullmq_2 = require("bullmq");
21
+ const nestjs_cls_1 = require("nestjs-cls");
22
+ const queue_id_1 = require("../../../config/enums/queue.id");
23
+ const cache_service_1 = require("../../../core/cache/services/cache.service");
24
+ const jsonapi_service_1 = require("../../../core/jsonapi/services/jsonapi.service");
25
+ const logging_service_1 = require("../../../core/logging/services/logging.service");
26
+ const abstract_service_1 = require("../../../core/neo4j/abstracts/abstract.service");
27
+ const s3_service_1 = require("../../s3/services/s3.service");
28
+ const stripe_customer_repository_1 = require("../../stripe-customer/repositories/stripe-customer.repository");
29
+ const stripe_customer_api_service_1 = require("../../stripe-customer/services/stripe-customer-api.service");
30
+ const user_1 = require("../../user/entities/user");
31
+ const account_deletion_constants_1 = require("../account-deletion.constants");
32
+ const account_deletion_handler_interface_1 = require("../interfaces/account-deletion-handler.interface");
33
+ const account_deletion_repository_1 = require("../repositories/account-deletion.repository");
34
+ const account_deletion_wipe_repository_1 = require("../repositories/account-deletion.wipe.repository");
35
+ /**
36
+ * Complete company deletion: app content, Stripe, S3, every company node, the
37
+ * company's placeholder users, then the Company and its Memberships.
38
+ *
39
+ * Mounted only when the app enables `accountDeletion`. An app that wants the
40
+ * admin company delete to be complete provides it as `COMPANY_DELETION_HANDLER`
41
+ * (`{ provide: COMPANY_DELETION_HANDLER, useExisting: FullCompanyDeletionService }`):
42
+ * `deleteCompany` then enqueues the wipe on the worker instead of running it in
43
+ * the HTTP request. Every step is idempotent, so a crashed job re-runs from the top.
44
+ */
45
+ let FullCompanyDeletionService = class FullCompanyDeletionService extends abstract_service_1.AbstractService {
46
+ constructor(jsonApiService, queue, wipeRepository, accountDeletionRepository, stripeCustomerRepository, stripeCustomerApiService, s3Service, cacheService, clsService, logger, moduleRef) {
47
+ super(jsonApiService, accountDeletionRepository, clsService, user_1.UserDescriptor.model);
48
+ this.queue = queue;
49
+ this.wipeRepository = wipeRepository;
50
+ this.accountDeletionRepository = accountDeletionRepository;
51
+ this.stripeCustomerRepository = stripeCustomerRepository;
52
+ this.stripeCustomerApiService = stripeCustomerApiService;
53
+ this.s3Service = s3Service;
54
+ this.cacheService = cacheService;
55
+ this.logger = logger;
56
+ this.moduleRef = moduleRef;
57
+ this.descriptor = user_1.UserDescriptor;
58
+ }
59
+ /**
60
+ * The app handler comes from an app module, looked up at call time like AccountDeletionService
61
+ * does. Injected with @Optional it resolved to undefined here (provider cycle through
62
+ * COMPANY_DELETION_HANDLER), so the app content step was silently skipped.
63
+ */
64
+ get handler() {
65
+ try {
66
+ return this.moduleRef.get(account_deletion_handler_interface_1.ACCOUNT_DELETION_HANDLER, { strict: false }) ?? undefined;
67
+ }
68
+ catch {
69
+ return undefined;
70
+ }
71
+ }
72
+ /** `CompanyDeletionHandler`: enqueues the wipe; the worker runs it. */
73
+ async deleteCompany(companyId, _companyName, options) {
74
+ const data = { companyId };
75
+ await this.queue.add(account_deletion_constants_1.ACCOUNT_DELETION_JOB_NAMES.deleteCompany, data, {
76
+ ...account_deletion_constants_1.ACCOUNT_DELETION_JOB_OPTIONS,
77
+ jobId: (0, account_deletion_constants_1.companyWipeJobId)(companyId),
78
+ });
79
+ this.logger.log(`Company ${companyId} queued for full deletion (reason: ${options?.reason ?? "unspecified"})`, "FullCompanyDeletionService");
80
+ }
81
+ /**
82
+ * Wipes the company. Runs in the worker, inside a CLS that carries the
83
+ * company id; when the CLS has no user id, the company's first user (members
84
+ * first) is set, because app content deletes need both.
85
+ */
86
+ async wipeCompany(params) {
87
+ const { companyId } = params;
88
+ const companyUserIds = await this.wipeRepository.findCompanyUserIds({ companyId });
89
+ // Set when an account wipe calls this: that user is deleted by the account wipe, not here.
90
+ const deletingUserId = this.clsService.get("userId") ?? undefined;
91
+ if (!deletingUserId && companyUserIds.length > 0) {
92
+ this.clsService.set("userId", companyUserIds[0]);
93
+ }
94
+ const actingUserId = this.clsService.get("userId") ?? undefined;
95
+ this.logger.log(`Wiping company ${companyId}`, "FullCompanyDeletionService");
96
+ // 1. App content
97
+ const handler = this.handler;
98
+ if (handler)
99
+ await handler.deleteCompanyContent({ companyId, actingUserId });
100
+ else
101
+ this.logger.warn(`No ACCOUNT_DELETION_HANDLER: app content of ${companyId} left to the generic sweep`, "FullCompanyDeletionService");
102
+ // 2. Stripe: the customer in Stripe (cancels anything still active; invoices stay in Stripe), then the local nodes
103
+ const stripeCustomer = await this.stripeCustomerRepository.findByCompanyId({ companyId });
104
+ if (stripeCustomer?.stripeCustomerId) {
105
+ try {
106
+ await this.stripeCustomerApiService.deleteCustomer(stripeCustomer.stripeCustomerId);
107
+ }
108
+ catch (error) {
109
+ if (!isMissingStripeResource(error))
110
+ throw error;
111
+ }
112
+ }
113
+ await this.wipeRepository.deleteStripeNodes({ companyId, batchSize: account_deletion_constants_1.WIPE_BATCH_SIZE });
114
+ // 3. S3
115
+ await this.s3Service.deleteFolderFromS3({ key: companyFolder(companyId) });
116
+ // 4. Placeholder users (BELONGS_TO the company, no Membership anywhere), found before
117
+ // the sweep, then every company node, then the shared knowledge left disconnected
118
+ for (const userId of companyUserIds) {
119
+ if (userId === deletingUserId)
120
+ continue;
121
+ const summary = await this.accountDeletionRepository.findMembershipSummary({ userId });
122
+ if (summary.companyId)
123
+ continue;
124
+ const user = await this.accountDeletionRepository.findTargetUser({ userId });
125
+ if (!user)
126
+ continue;
127
+ await this.removeUserLinkedData({ user, wipedCompanyId: companyId });
128
+ await this.wipeRepository.deleteUserNode({ userId });
129
+ }
130
+ await this.wipeRepository.deleteCompanyNodes({ companyId, batchSize: account_deletion_constants_1.WIPE_BATCH_SIZE });
131
+ await this.wipeRepository.deleteDisconnectedKnowledge({ batchSize: account_deletion_constants_1.WIPE_BATCH_SIZE });
132
+ // 5. Memberships and the Company
133
+ await this.wipeRepository.deleteCompanyShell({ companyId });
134
+ this.logger.log(`Company ${companyId} wiped`, "FullCompanyDeletionService");
135
+ }
136
+ /**
137
+ * The user's own library nodes, the edges to other people's nodes, the
138
+ * email-keyed entries, the avatar file (when outside the wiped company's
139
+ * folder) and the user's cache. The User node itself stays: the caller
140
+ * deletes it last.
141
+ */
142
+ async removeUserLinkedData(params) {
143
+ const { user, wipedCompanyId } = params;
144
+ const userId = user.id;
145
+ await this.wipeRepository.deleteUserLinkedNodes({ userId, batchSize: account_deletion_constants_1.WIPE_BATCH_SIZE });
146
+ await this.wipeRepository.detachUserFromForeignNodes({ userId, batchSize: account_deletion_constants_1.WIPE_BATCH_SIZE });
147
+ await this.wipeRepository.deleteEmailKeyed({ email: user.email ?? "", userId, batchSize: account_deletion_constants_1.WIPE_BATCH_SIZE });
148
+ const avatar = user.avatar;
149
+ const insideWipedFolder = wipedCompanyId ? avatar?.startsWith(companyFolder(wipedCompanyId)) : false;
150
+ if (avatar && !avatar.startsWith("~") && !insideWipedFolder) {
151
+ await this.s3Service.deleteFileFromS3({ key: avatar });
152
+ }
153
+ await this.cacheService.deleteUserCache(userId);
154
+ }
155
+ };
156
+ exports.FullCompanyDeletionService = FullCompanyDeletionService;
157
+ exports.FullCompanyDeletionService = FullCompanyDeletionService = __decorate([
158
+ (0, common_1.Injectable)(),
159
+ __param(1, (0, bullmq_1.InjectQueue)(queue_id_1.QueueId.ACCOUNT_DELETION)),
160
+ __metadata("design:paramtypes", [jsonapi_service_1.JsonApiService,
161
+ bullmq_2.Queue,
162
+ account_deletion_wipe_repository_1.AccountDeletionWipeRepository,
163
+ account_deletion_repository_1.AccountDeletionRepository,
164
+ stripe_customer_repository_1.StripeCustomerRepository,
165
+ stripe_customer_api_service_1.StripeCustomerApiService,
166
+ s3_service_1.S3Service,
167
+ cache_service_1.CacheService,
168
+ nestjs_cls_1.ClsService,
169
+ logging_service_1.AppLoggingService,
170
+ core_1.ModuleRef])
171
+ ], FullCompanyDeletionService);
172
+ function companyFolder(companyId) {
173
+ return `companies/${companyId}/`;
174
+ }
175
+ /** Stripe "No such customer / subscription" (`resource_missing`): the resource is already gone. */
176
+ function isMissingStripeResource(error) {
177
+ const e = error;
178
+ if (!e)
179
+ return false;
180
+ if (e.stripeCode === "resource_missing" || e.code === "resource_missing")
181
+ return true;
182
+ return typeof e.message === "string" && /no such (customer|subscription)/i.test(e.message);
183
+ }
184
+ //# sourceMappingURL=full-company-deletion.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-company-deletion.service.js","sourceRoot":"","sources":["../../../../src/foundations/account-deletion/services/full-company-deletion.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * True when the address can receive email. Bot placeholder players carry a
3
+ * fake `...@....local` address and Discord sign-ups without an email carry
4
+ * their numeric Discord id: neither receives the deletion emails, and both
5
+ * confirm with DELETE / ELIMINA instead of their address.
6
+ */
7
+ export declare function hasDeliverableEmail(email: string | undefined | null): boolean;
8
+ //# sourceMappingURL=deliverable-email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliverable-email.d.ts","sourceRoot":"","sources":["../../../../src/foundations/account-deletion/utils/deliverable-email.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAM7E"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasDeliverableEmail = hasDeliverableEmail;
4
+ /**
5
+ * True when the address can receive email. Bot placeholder players carry a
6
+ * fake `...@....local` address and Discord sign-ups without an email carry
7
+ * their numeric Discord id: neither receives the deletion emails, and both
8
+ * confirm with DELETE / ELIMINA instead of their address.
9
+ */
10
+ function hasDeliverableEmail(email) {
11
+ const value = email?.trim() ?? "";
12
+ if (!value)
13
+ return false;
14
+ if (value.toLowerCase().endsWith(".local"))
15
+ return false;
16
+ if (/^\d+$/.test(value))
17
+ return false;
18
+ return true;
19
+ }
20
+ //# sourceMappingURL=deliverable-email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliverable-email.js","sourceRoot":"","sources":["../../../../src/foundations/account-deletion/utils/deliverable-email.ts"],"names":[],"mappings":";;AAMA,kDAMC;AAZD;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,KAAgC;IAClE,MAAM,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../../../src/foundations/auth/auth.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAyBlE,qBAyBa,UAAW,YAAW,YAAY;IAC7C,YAAY;CAKb"}
1
+ {"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../../../src/foundations/auth/auth.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA2BlE,qBA2Ba,UAAW,YAAW,YAAY;IAC7C,YAAY;CAMb"}
@@ -14,6 +14,7 @@ const auth_company_controller_1 = require("./controllers/auth.company.controller
14
14
  const auth_controller_1 = require("./controllers/auth.controller");
15
15
  const registry_1 = require("../../common/registries/registry");
16
16
  const queue_id_1 = require("../../config/enums/queue.id");
17
+ const audit_module_1 = require("../audit/audit.module");
17
18
  const company_module_1 = require("../company/company.module");
18
19
  const discord_user_module_1 = require("../discord-user/discord-user.module");
19
20
  const google_user_module_1 = require("../google-user/google-user.module");
@@ -25,6 +26,7 @@ const auth_google_controller_1 = require("./controllers/auth.google.controller")
25
26
  const auth_1 = require("./entities/auth");
26
27
  const auth_code_1 = require("./entities/auth.code");
27
28
  const pending_auth_1 = require("./entities/pending-auth");
29
+ const pending_registration_resource_1 = require("./entities/pending-registration.resource");
28
30
  const auth_repository_1 = require("./repositories/auth.repository");
29
31
  const auth_discord_service_1 = require("./services/auth.discord.service");
30
32
  const auth_google_service_1 = require("./services/auth.google.service");
@@ -36,6 +38,7 @@ let AuthModule = class AuthModule {
36
38
  registry_1.modelRegistry.register(auth_1.AuthDescriptor.model);
37
39
  registry_1.modelRegistry.register(auth_code_1.AuthCodeDescriptor.model);
38
40
  registry_1.modelRegistry.register(pending_auth_1.PendingAuthDescriptor.model);
41
+ registry_1.modelRegistry.register(pending_registration_resource_1.PendingRegistrationDescriptor.model);
39
42
  }
40
43
  };
41
44
  exports.AuthModule = AuthModule;
@@ -48,6 +51,7 @@ exports.AuthModule = AuthModule = __decorate([
48
51
  auth_1.AuthDescriptor.model.serialiser,
49
52
  auth_code_1.AuthCodeDescriptor.model.serialiser,
50
53
  pending_auth_1.PendingAuthDescriptor.model.serialiser,
54
+ pending_registration_resource_1.PendingRegistrationDescriptor.model.serialiser,
51
55
  auth_discord_service_1.AuthDiscordService,
52
56
  auth_google_service_1.AuthGoogleService,
53
57
  pending_registration_service_1.PendingRegistrationService,
@@ -57,6 +61,7 @@ exports.AuthModule = AuthModule = __decorate([
57
61
  imports: [
58
62
  user_module_1.UserModule,
59
63
  jwt_1.JwtModule,
64
+ audit_module_1.AuditModule,
60
65
  company_module_1.CompanyModule,
61
66
  discord_user_module_1.DiscordUserModule,
62
67
  google_user_module_1.GoogleUserModule,
@@ -1 +1 @@
1
- {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../src/foundations/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAkE;AAClE,qCAAwC;AACxC,mFAA8E;AAC9E,mEAA+D;AAE/D,+DAAiE;AACjE,0DAAsD;AACtD,8DAA0D;AAC1D,6EAAwE;AACxE,0EAAqE;AACrE,uEAAkE;AAClE,qDAAiD;AACjD,iEAA6D;AAC7D,mFAA8E;AAC9E,iFAA4E;AAC5E,0CAAiD;AACjD,oDAA0D;AAC1D,0DAAgE;AAChE,oEAAgE;AAChE,0EAAqE;AACrE,wEAAmE;AACnE,0DAAsD;AACtD,0FAAqF;AACrF,wEAAmE;AA2B5D,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YAAY;QACV,wBAAa,CAAC,QAAQ,CAAC,qBAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,wBAAa,CAAC,QAAQ,CAAC,8BAAkB,CAAC,KAAK,CAAC,CAAC;QACjD,wBAAa,CAAC,QAAQ,CAAC,oCAAqB,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;CACF,CAAA;AANY,gCAAU;qBAAV,UAAU;IAzBtB,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,+CAAqB,EAAE,gCAAc,EAAE,+CAAqB,EAAE,6CAAoB,CAAC;QACjG,SAAS,EAAE;YACT,0BAAW;YACX,gCAAc;YACd,qBAAc,CAAC,KAAK,CAAC,UAAU;YAC/B,8BAAkB,CAAC,KAAK,CAAC,UAAU;YACnC,oCAAqB,CAAC,KAAK,CAAC,UAAU;YACtC,yCAAkB;YAClB,uCAAiB;YACjB,yDAA0B;YAC1B,uCAAiB;SAClB;QACD,OAAO,EAAE,CAAC,0BAAW,EAAE,yDAA0B,EAAE,uCAAiB,CAAC;QACrE,OAAO,EAAE;YACP,wBAAU;YACV,eAAS;YACT,8BAAa;YACb,uCAAiB;YACjB,qCAAgB;YAChB,gCAAc;YACd,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,mCAAe,CAAC;YACjC,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,kBAAO,CAAC,KAAK,EAAE,CAAC;SAClD;KACF,CAAC;GACW,UAAU,CAMtB"}
1
+ {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../src/foundations/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAkE;AAClE,qCAAwC;AACxC,mFAA8E;AAC9E,mEAA+D;AAE/D,+DAAiE;AACjE,0DAAsD;AACtD,wDAAoD;AACpD,8DAA0D;AAC1D,6EAAwE;AACxE,0EAAqE;AACrE,uEAAkE;AAClE,qDAAiD;AACjD,iEAA6D;AAC7D,mFAA8E;AAC9E,iFAA4E;AAC5E,0CAAiD;AACjD,oDAA0D;AAC1D,0DAAgE;AAChE,4FAAyF;AACzF,oEAAgE;AAChE,0EAAqE;AACrE,wEAAmE;AACnE,0DAAsD;AACtD,0FAAqF;AACrF,wEAAmE;AA6B5D,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YAAY;QACV,wBAAa,CAAC,QAAQ,CAAC,qBAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,wBAAa,CAAC,QAAQ,CAAC,8BAAkB,CAAC,KAAK,CAAC,CAAC;QACjD,wBAAa,CAAC,QAAQ,CAAC,oCAAqB,CAAC,KAAK,CAAC,CAAC;QACpD,wBAAa,CAAC,QAAQ,CAAC,6DAA6B,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;CACF,CAAA;AAPY,gCAAU;qBAAV,UAAU;IA3BtB,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,+CAAqB,EAAE,gCAAc,EAAE,+CAAqB,EAAE,6CAAoB,CAAC;QACjG,SAAS,EAAE;YACT,0BAAW;YACX,gCAAc;YACd,qBAAc,CAAC,KAAK,CAAC,UAAU;YAC/B,8BAAkB,CAAC,KAAK,CAAC,UAAU;YACnC,oCAAqB,CAAC,KAAK,CAAC,UAAU;YACtC,6DAA6B,CAAC,KAAK,CAAC,UAAU;YAC9C,yCAAkB;YAClB,uCAAiB;YACjB,yDAA0B;YAC1B,uCAAiB;SAClB;QACD,OAAO,EAAE,CAAC,0BAAW,EAAE,yDAA0B,EAAE,uCAAiB,CAAC;QACrE,OAAO,EAAE;YACP,wBAAU;YACV,eAAS;YACT,0BAAW;YACX,8BAAa;YACb,uCAAiB;YACjB,qCAAgB;YAChB,gCAAc;YACd,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,mCAAe,CAAC;YACjC,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,kBAAO,CAAC,KAAK,EAAE,CAAC;SAClD;KACF,CAAC;GACW,UAAU,CAOtB"}
@@ -1,11 +1,14 @@
1
+ import { FastifyReply } from "fastify";
1
2
  import { AuthPostForgotDTO } from "../../auth/dtos/auth.post.forgot.dto";
2
3
  import { AuthPostLoginDTO } from "../../auth/dtos/auth.post.login.dto";
3
4
  import { AuthPostRegisterDTO } from "../../auth/dtos/auth.post.register.dto";
4
5
  import { AuthPostResetPasswordDTO } from "../../auth/dtos/auth.post.resetpassword.dto";
5
6
  import { AuthService } from "../../auth/services/auth.service";
7
+ import { AuditService } from "../../audit/services/audit.service";
6
8
  export declare class AuthController {
7
9
  private readonly service;
8
- constructor(service: AuthService);
10
+ private readonly auditService?;
11
+ constructor(service: AuthService, auditService?: AuditService);
9
12
  findAuth(code: string): Promise<import("../../..").JsonApiSingleDocument>;
10
13
  refreshToken(refreshToken: string): Promise<import("../../..").JsonApiSingleDocument>;
11
14
  deleteSinglAuth(request: any): Promise<void>;
@@ -16,6 +19,7 @@ export declare class AuthController {
16
19
  resetPassword(body: AuthPostResetPasswordDTO, code: string): Promise<void>;
17
20
  acceptInvitation(body: AuthPostResetPasswordDTO, code: string): Promise<void>;
18
21
  activateAccount(code: string, language?: string): Promise<void>;
22
+ findPendingRegistration(_req: any, reply: FastifyReply, pendingId: string): Promise<void>;
19
23
  completeOAuthRegistration(body: {
20
24
  pendingId: string;
21
25
  termsAcceptedAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.controller.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAI/D,qBAEa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAG3C,QAAQ,CAAgB,IAAI,EAAE,MAAM;IAKpC,YAAY,CAAwB,YAAY,EAAE,MAAM;IAcxD,eAAe,CAAQ,OAAO,EAAE,GAAG;IAOnC,KAAK,CAAS,IAAI,EAAE,gBAAgB;IAOpC,QAAQ,CAAS,IAAI,EAAE,mBAAmB;IAY1C,cAAc,CAAS,IAAI,EAAE,iBAAiB,EAAgB,GAAG,CAAC,EAAE,MAAM;IAM1E,iBAAiB,CAAgB,IAAI,EAAE,MAAM;IAO7C,aAAa,CAAS,IAAI,EAAE,wBAAwB,EAAiB,IAAI,EAAE,MAAM;IASjF,gBAAgB,CAAS,IAAI,EAAE,wBAAwB,EAAiB,IAAI,EAAE,MAAM;IAWpF,eAAe,CAAgB,IAAI,EAAE,MAAM,EAAyB,QAAQ,CAAC,EAAE,MAAM;IAKrF,yBAAyB,CAE7B,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,EACsB,QAAQ,CAAC,EAAE,MAAM,GACvC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAG7B"}
1
+ {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.controller.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAI/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlE,qBAEa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACZ,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBADzB,OAAO,EAAE,WAAW,EACR,YAAY,CAAC,EAAE,YAAY;IAIpD,QAAQ,CAAgB,IAAI,EAAE,MAAM;IAKpC,YAAY,CAAwB,YAAY,EAAE,MAAM;IAcxD,eAAe,CAAQ,OAAO,EAAE,GAAG;IAOnC,KAAK,CAAS,IAAI,EAAE,gBAAgB;IAOpC,QAAQ,CAAS,IAAI,EAAE,mBAAmB;IAY1C,cAAc,CAAS,IAAI,EAAE,iBAAiB,EAAgB,GAAG,CAAC,EAAE,MAAM;IAM1E,iBAAiB,CAAgB,IAAI,EAAE,MAAM;IAO7C,aAAa,CAAS,IAAI,EAAE,wBAAwB,EAAiB,IAAI,EAAE,MAAM;IASjF,gBAAgB,CAAS,IAAI,EAAE,wBAAwB,EAAiB,IAAI,EAAE,MAAM;IAWpF,eAAe,CAAgB,IAAI,EAAE,MAAM,EAAyB,QAAQ,CAAC,EAAE,MAAM;IAQrF,uBAAuB,CAEpB,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,YAAY,EACN,SAAS,EAAE,MAAM;IAOjC,yBAAyB,CAE7B,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,EACsB,QAAQ,CAAC,EAAE,MAAM,GACvC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAG7B"}
@@ -24,9 +24,14 @@ const auth_meta_1 = require("../../auth/entities/auth.meta");
24
24
  const auth_service_1 = require("../../auth/services/auth.service");
25
25
  const module_decorator_1 = require("../../../common/decorators/module.decorator");
26
26
  const core_module_ids_1 = require("../../../common/constants/core-module.ids");
27
+ const audit_decorator_1 = require("../../../common/decorators/audit.decorator");
28
+ const audit_service_1 = require("../../audit/services/audit.service");
29
+ const pending_registration_meta_1 = require("../entities/pending-registration.meta");
27
30
  let AuthController = class AuthController {
28
- constructor(service) {
31
+ // auditService is optional: consumers subclass this controller with super(authService).
32
+ constructor(service, auditService) {
29
33
  this.service = service;
34
+ this.auditService = auditService;
30
35
  }
31
36
  async findAuth(code) {
32
37
  return await this.service.findAuthByCode({ code: code });
@@ -78,6 +83,11 @@ let AuthController = class AuthController {
78
83
  async activateAccount(code, language) {
79
84
  await this.service.activateAccount(code, language);
80
85
  }
86
+ // Public: the pending id is an unguessable UUID that expires after 15 minutes.
87
+ async findPendingRegistration(_req, reply, pendingId) {
88
+ const response = await this.service.findPendingRegistration({ pendingId });
89
+ reply.send(response);
90
+ }
81
91
  async completeOAuthRegistration(body, language) {
82
92
  return this.service.completeOAuthRegistration(body, language);
83
93
  }
@@ -169,6 +179,17 @@ __decorate([
169
179
  __metadata("design:paramtypes", [String, String]),
170
180
  __metadata("design:returntype", Promise)
171
181
  ], AuthController.prototype, "activateAccount", null);
182
+ __decorate([
183
+ (0, throttler_1.Throttle)({ default: { limit: 10, ttl: 60000 }, ip: { limit: 10, ttl: 60000 } }),
184
+ (0, common_1.Get)(`oauth/${pending_registration_meta_1.pendingRegistrationMeta.endpoint}/:pendingId`),
185
+ (0, audit_decorator_1.Audit)(pending_registration_meta_1.pendingRegistrationMeta, "pendingId"),
186
+ __param(0, (0, common_1.Req)()),
187
+ __param(1, (0, common_1.Res)()),
188
+ __param(2, (0, common_1.Param)("pendingId")),
189
+ __metadata("design:type", Function),
190
+ __metadata("design:paramtypes", [Object, Object, String]),
191
+ __metadata("design:returntype", Promise)
192
+ ], AuthController.prototype, "findPendingRegistration", null);
172
193
  __decorate([
173
194
  (0, common_1.Post)("oauth/complete"),
174
195
  __param(0, (0, common_1.Body)()),
@@ -180,6 +201,8 @@ __decorate([
180
201
  exports.AuthController = AuthController = __decorate([
181
202
  (0, module_decorator_1.ModuleACL)({ module: core_module_ids_1.CoreModuleId.Auth }),
182
203
  (0, common_1.Controller)(auth_meta_1.authMeta.endpoint),
183
- __metadata("design:paramtypes", [auth_service_1.AuthService])
204
+ __param(1, (0, common_1.Optional)()),
205
+ __metadata("design:paramtypes", [auth_service_1.AuthService,
206
+ audit_service_1.AuditService])
184
207
  ], AuthController);
185
208
  //# sourceMappingURL=auth.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export declare class AuthDiscordController {
7
7
  private readonly configService;
8
8
  constructor(authDiscordService: AuthDiscordService, configService: ConfigService<BaseConfigInterface>);
9
9
  private get discordConfig();
10
- loginWithDiscord(reply: FastifyReply, inviteCode?: string, referralCode?: string, source?: string): Promise<void>;
10
+ loginWithDiscord(reply: FastifyReply, inviteCode?: string, referralCode?: string, source?: string, pass?: string): Promise<void>;
11
11
  callbackDiscord(reply: FastifyReply, code: string, state?: string): Promise<void>;
12
12
  }
13
13
  //# sourceMappingURL=auth.discord.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.discord.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.discord.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAKvC,OAAO,EAAE,mBAAmB,EAA0B,MAAM,4BAA4B,CAAC;AAEzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,qBACa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAGpE,OAAO,KAAK,aAAa,GAExB;IAGK,gBAAgB,CACb,KAAK,EAAE,YAAY,EACT,UAAU,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,MAAM;IAS5B,eAAe,CAAQ,KAAK,EAAE,YAAY,EAAiB,IAAI,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,MAAM;CAmB9G"}
1
+ {"version":3,"file":"auth.discord.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.discord.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAKvC,OAAO,EAAE,mBAAmB,EAA0B,MAAM,4BAA4B,CAAC;AAEzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,qBACa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAGpE,OAAO,KAAK,aAAa,GAExB;IAGK,gBAAgB,CACb,KAAK,EAAE,YAAY,EACT,UAAU,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM;IASxB,eAAe,CAAQ,KAAK,EAAE,YAAY,EAAiB,IAAI,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,MAAM;CAqB9G"}
@@ -28,10 +28,10 @@ let AuthDiscordController = class AuthDiscordController {
28
28
  get discordConfig() {
29
29
  return this.configService.get("discord");
30
30
  }
31
- async loginWithDiscord(reply, inviteCode, referralCode, source) {
31
+ async loginWithDiscord(reply, inviteCode, referralCode, source, pass) {
32
32
  if (!this.discordConfig.clientId || !this.discordConfig.clientSecret)
33
33
  throw new common_1.HttpException("Login with Discord is not available", common_1.HttpStatus.NOT_IMPLEMENTED);
34
- reply.redirect(this.authDiscordService.generateLoginUrl(inviteCode, referralCode, source), 302);
34
+ reply.redirect(this.authDiscordService.generateLoginUrl(inviteCode, referralCode, source, pass), 302);
35
35
  }
36
36
  async callbackDiscord(reply, code, state) {
37
37
  // Parse invite code and referral code from state if present
@@ -39,6 +39,7 @@ let AuthDiscordController = class AuthDiscordController {
39
39
  const inviteCode = stateData?.invite;
40
40
  const referralCode = stateData?.referral;
41
41
  const source = stateData?.source;
42
+ const pass = stateData?.pass;
42
43
  const accessToken = await this.authDiscordService.exchangeCodeForToken(code);
43
44
  const userDetails = await this.authDiscordService.fetchUserDetails(accessToken);
44
45
  const redirectUrl = await this.authDiscordService.handleDiscordLogin({
@@ -46,6 +47,7 @@ let AuthDiscordController = class AuthDiscordController {
46
47
  inviteCode,
47
48
  referralCode,
48
49
  source,
50
+ pass,
49
51
  });
50
52
  reply.redirect(redirectUrl, 302);
51
53
  }
@@ -57,8 +59,9 @@ __decorate([
57
59
  __param(1, (0, common_1.Query)("invite")),
58
60
  __param(2, (0, common_1.Query)("referral")),
59
61
  __param(3, (0, common_1.Query)("source")),
62
+ __param(4, (0, common_1.Query)("pass")),
60
63
  __metadata("design:type", Function),
61
- __metadata("design:paramtypes", [Object, String, String, String]),
64
+ __metadata("design:paramtypes", [Object, String, String, String, String]),
62
65
  __metadata("design:returntype", Promise)
63
66
  ], AuthDiscordController.prototype, "loginWithDiscord", null);
64
67
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"auth.discord.controller.js","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.discord.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwF;AACxF,2CAA+C;AAE/C,sEAAsE;AACtE,8EAA8E;AAC9E,0CAA0C;AAC1C,qDAAiD;AAGjD,2EAAsE;AAG/D,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC,YACmB,kBAAsC,EACtC,aAAiD;QADjD,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kBAAa,GAAb,aAAa,CAAoC;IACjE,CAAC;IAEJ,IAAY,aAAa;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAyB,SAAS,CAAC,CAAC;IACnE,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB,CACb,KAAmB,EACT,UAAmB,EACjB,YAAqB,EACvB,MAAe;QAEhC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY;YAClE,MAAM,IAAI,sBAAa,CAAC,qCAAqC,EAAE,mBAAU,CAAC,eAAe,CAAC,CAAC;QAE7F,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAClG,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CAAQ,KAAmB,EAAiB,IAAY,EAAkB,KAAc;QAC3G,4DAA4D;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,MAAM,UAAU,GAAG,SAAS,EAAE,MAAM,CAAC;QACrC,MAAM,YAAY,GAAG,SAAS,EAAE,QAAQ,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC;QAEjC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEhF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;YACnE,WAAW,EAAE,WAA0B;YACvC,UAAU;YACV,YAAY;YACZ,MAAM;SACP,CAAC,CAAC;QAEH,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AA3CY,sDAAqB;AAW1B;IADL,IAAA,YAAG,EAAC,GAAG,oBAAQ,CAAC,QAAQ,UAAU,CAAC;IAEjC,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;6DAMjB;AAGK;IADL,IAAA,YAAG,EAAC,GAAG,oBAAQ,CAAC,QAAQ,mBAAmB,CAAC;IACtB,WAAA,IAAA,YAAG,GAAE,CAAA;IAAuB,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IAAgB,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;;;;4DAkB7F;gCA1CU,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAG4B,yCAAkB;QACvB,sBAAa;GAHpC,qBAAqB,CA2CjC"}
1
+ {"version":3,"file":"auth.discord.controller.js","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.discord.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwF;AACxF,2CAA+C;AAE/C,sEAAsE;AACtE,8EAA8E;AAC9E,0CAA0C;AAC1C,qDAAiD;AAGjD,2EAAsE;AAG/D,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC,YACmB,kBAAsC,EACtC,aAAiD;QADjD,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kBAAa,GAAb,aAAa,CAAoC;IACjE,CAAC;IAEJ,IAAY,aAAa;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAyB,SAAS,CAAC,CAAC;IACnE,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB,CACb,KAAmB,EACT,UAAmB,EACjB,YAAqB,EACvB,MAAe,EACjB,IAAa;QAE5B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY;YAClE,MAAM,IAAI,sBAAa,CAAC,qCAAqC,EAAE,mBAAU,CAAC,eAAe,CAAC,CAAC;QAE7F,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACxG,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CAAQ,KAAmB,EAAiB,IAAY,EAAkB,KAAc;QAC3G,4DAA4D;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,MAAM,UAAU,GAAG,SAAS,EAAE,MAAM,CAAC;QACrC,MAAM,YAAY,GAAG,SAAS,EAAE,QAAQ,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC;QACjC,MAAM,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC;QAE7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEhF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;YACnE,WAAW,EAAE,WAA0B;YACvC,UAAU;YACV,YAAY;YACZ,MAAM;YACN,IAAI;SACL,CAAC,CAAC;QAEH,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AA9CY,sDAAqB;AAW1B;IADL,IAAA,YAAG,EAAC,GAAG,oBAAQ,CAAC,QAAQ,UAAU,CAAC;IAEjC,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;;;;6DAMf;AAGK;IADL,IAAA,YAAG,EAAC,GAAG,oBAAQ,CAAC,QAAQ,mBAAmB,CAAC;IACtB,WAAA,IAAA,YAAG,GAAE,CAAA;IAAuB,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IAAgB,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;;;;4DAoB7F;gCA7CU,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAG4B,yCAAkB;QACvB,sBAAa;GAHpC,qBAAqB,CA8CjC"}
@@ -13,6 +13,7 @@ export type Auth = Entity & {
13
13
  expiration: Date;
14
14
  requiresCompanySelection?: boolean;
15
15
  selectionToken?: string;
16
+ deletionCancelled?: boolean;
16
17
  user?: User;
17
18
  };
18
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/entities/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAIrD;;;;;;;GAOG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,IAAI,CAAC;IAEjB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc;;;;;;;;EA2DzB,CAAC;AAGH,MAAM,MAAM,kBAAkB,GAAG,OAAO,cAAc,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/entities/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAIrD;;;;;;;GAOG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,IAAI,CAAC;IAEjB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc;;;;;;;;EA+DzB,CAAC;AAGH,MAAM,MAAM,kBAAkB,GAAG,OAAO,cAAc,CAAC"}
@@ -46,6 +46,10 @@ exports.AuthDescriptor = (0, common_1.defineEntity)()({
46
46
  type: "string",
47
47
  description: "Short-lived, company-selection scoped JWT returned alongside requiresCompanySelection. It authenticates only the company listing and the company-selection exchange.",
48
48
  },
49
+ deletionCancelled: {
50
+ type: "boolean",
51
+ description: "True on the session created by the login that cancelled a pending account deletion.",
52
+ },
49
53
  },
50
54
  // Virtual fields (output-only, not part of the entity type or stored on the node)
51
55
  virtualFields: {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/foundations/auth/entities/auth.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAEvD,6DAAyD;AACzD,2CAAuC;AAoBvC;;;;;;;;;;;;GAYG;AACU,QAAA,cAAc,GAAG,IAAA,qBAAY,GAAQ,CAAC;IACjD,GAAG,oBAAQ;IAEX,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,sCAAsC;IACtC,eAAe,EAAE,KAAK;IACtB,OAAO,EAAE,UAAU;IAEnB,WAAW,EACT,gMAAgM;IAElM,oBAAoB;IACpB,MAAM,EAAE;QACN,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,sLAAsL;SACzL;QACD,UAAU,EAAE;YACV,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,yGAAyG;SAC5G;QACD,wBAAwB,EAAE;YACxB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,8MAA8M;SACjN;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,sKAAsK;SACzK;KACF;IAED,kFAAkF;IAClF,aAAa,EAAE;QACb,YAAY,EAAE;YACZ,WAAW,EACT,0KAA0K;YAC5K,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;SACpC;KACF;IAED,2BAA2B;IAC3B,aAAa,EAAE;QACb,IAAI,EAAE;YACJ,KAAK,EAAE,oBAAQ;YACf,iEAAiE;YACjE,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,UAAU;YACxB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,kDAAkD;SAChE;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/foundations/auth/entities/auth.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAEvD,6DAAyD;AACzD,2CAAuC;AAqBvC;;;;;;;;;;;;GAYG;AACU,QAAA,cAAc,GAAG,IAAA,qBAAY,GAAQ,CAAC;IACjD,GAAG,oBAAQ;IAEX,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,sCAAsC;IACtC,eAAe,EAAE,KAAK;IACtB,OAAO,EAAE,UAAU;IAEnB,WAAW,EACT,gMAAgM;IAElM,oBAAoB;IACpB,MAAM,EAAE;QACN,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,sLAAsL;SACzL;QACD,UAAU,EAAE;YACV,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,yGAAyG;SAC5G;QACD,wBAAwB,EAAE;YACxB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,8MAA8M;SACjN;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,sKAAsK;SACzK;QACD,iBAAiB,EAAE;YACjB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,qFAAqF;SACnG;KACF;IAED,kFAAkF;IAClF,aAAa,EAAE;QACb,YAAY,EAAE;YACZ,WAAW,EACT,0KAA0K;YAC5K,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;SACpC;KACF;IAED,2BAA2B;IAC3B,aAAa,EAAE;QACb,IAAI,EAAE;YACJ,KAAK,EAAE,oBAAQ;YACf,iEAAiE;YACjE,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,UAAU;YACxB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,kDAAkD;SAChE;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DataMeta } from "../../../common/interfaces/datamodel.interface";
2
+ export declare const pendingRegistrationMeta: DataMeta;
3
+ //# sourceMappingURL=pending-registration.meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-registration.meta.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/entities/pending-registration.meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE1E,eAAO,MAAM,uBAAuB,EAAE,QAKrC,CAAC"}