@neohm/nestend 6.1.2 → 6.2.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 (138) hide show
  1. package/dist/admin/controllers/admin.limit.controller.d.ts +17 -0
  2. package/dist/admin/controllers/admin.limit.controller.d.ts.map +1 -0
  3. package/dist/admin/controllers/admin.limit.controller.js +132 -0
  4. package/dist/admin/controllers/admin.limit.controller.js.map +1 -0
  5. package/dist/admin/controllers/admin.tenant.controller.d.ts +11 -3
  6. package/dist/admin/controllers/admin.tenant.controller.d.ts.map +1 -1
  7. package/dist/admin/controllers/admin.tenant.controller.js +78 -6
  8. package/dist/admin/controllers/admin.tenant.controller.js.map +1 -1
  9. package/dist/admin/dtos/add.limit.dto.d.ts +11 -0
  10. package/dist/admin/dtos/add.limit.dto.d.ts.map +1 -0
  11. package/dist/admin/dtos/add.limit.dto.js +78 -0
  12. package/dist/admin/dtos/add.limit.dto.js.map +1 -0
  13. package/dist/admin/dtos/limit.list.dto.d.ts +4 -0
  14. package/dist/admin/dtos/limit.list.dto.d.ts.map +1 -0
  15. package/dist/admin/dtos/limit.list.dto.js +8 -0
  16. package/dist/admin/dtos/limit.list.dto.js.map +1 -0
  17. package/dist/admin/dtos/set.tenant.limit.dto.d.ts +7 -0
  18. package/dist/admin/dtos/set.tenant.limit.dto.d.ts.map +1 -0
  19. package/dist/admin/dtos/set.tenant.limit.dto.js +58 -0
  20. package/dist/admin/dtos/set.tenant.limit.dto.js.map +1 -0
  21. package/dist/admin/es6.classes.d.ts +9 -3
  22. package/dist/admin/es6.classes.d.ts.map +1 -1
  23. package/dist/admin/es6.classes.js +14 -0
  24. package/dist/admin/es6.classes.js.map +1 -1
  25. package/dist/admin/libraries/limit.data.processor.d.ts +16 -0
  26. package/dist/admin/libraries/limit.data.processor.d.ts.map +1 -0
  27. package/dist/admin/libraries/limit.data.processor.js +79 -0
  28. package/dist/admin/libraries/limit.data.processor.js.map +1 -0
  29. package/dist/admin/libraries/limit.list.processor.d.ts +11 -0
  30. package/dist/admin/libraries/limit.list.processor.d.ts.map +1 -0
  31. package/dist/admin/libraries/limit.list.processor.js +57 -0
  32. package/dist/admin/libraries/limit.list.processor.js.map +1 -0
  33. package/dist/admin/libraries/tenant.data.processor.d.ts +6 -5
  34. package/dist/admin/libraries/tenant.data.processor.d.ts.map +1 -1
  35. package/dist/admin/libraries/tenant.data.processor.js +57 -32
  36. package/dist/admin/libraries/tenant.data.processor.js.map +1 -1
  37. package/dist/admin/libraries/tenant.limit.data.processor.d.ts +14 -0
  38. package/dist/admin/libraries/tenant.limit.data.processor.d.ts.map +1 -0
  39. package/dist/admin/libraries/tenant.limit.data.processor.js +89 -0
  40. package/dist/admin/libraries/tenant.limit.data.processor.js.map +1 -0
  41. package/dist/auth/auth.module.d.ts.map +1 -1
  42. package/dist/auth/auth.module.js +17 -1
  43. package/dist/auth/auth.module.js.map +1 -1
  44. package/dist/auth/controllers/tenant.limit.controller.d.ts +10 -0
  45. package/dist/auth/controllers/tenant.limit.controller.d.ts.map +1 -0
  46. package/dist/auth/controllers/tenant.limit.controller.js +51 -0
  47. package/dist/auth/controllers/tenant.limit.controller.js.map +1 -0
  48. package/dist/auth/entities/limit.entity.d.ts +13 -0
  49. package/dist/auth/entities/limit.entity.d.ts.map +1 -0
  50. package/dist/auth/entities/limit.entity.js +52 -0
  51. package/dist/auth/entities/limit.entity.js.map +1 -0
  52. package/dist/auth/entities/tenant.limit.entity.d.ts +13 -0
  53. package/dist/auth/entities/tenant.limit.entity.d.ts.map +1 -0
  54. package/dist/auth/entities/tenant.limit.entity.js +53 -0
  55. package/dist/auth/entities/tenant.limit.entity.js.map +1 -0
  56. package/dist/auth/entities/tenant.limit.usage.entity.d.ts +8 -0
  57. package/dist/auth/entities/tenant.limit.usage.entity.d.ts.map +1 -0
  58. package/dist/auth/entities/tenant.limit.usage.entity.js +37 -0
  59. package/dist/auth/entities/tenant.limit.usage.entity.js.map +1 -0
  60. package/dist/auth/enums/tenant.limit.enum.d.ts +30 -0
  61. package/dist/auth/enums/tenant.limit.enum.d.ts.map +1 -0
  62. package/dist/auth/enums/tenant.limit.enum.js +38 -0
  63. package/dist/auth/enums/tenant.limit.enum.js.map +1 -0
  64. package/dist/auth/enums/tenant.onboarding.source.enum.d.ts +5 -0
  65. package/dist/auth/enums/tenant.onboarding.source.enum.d.ts.map +1 -0
  66. package/dist/auth/enums/tenant.onboarding.source.enum.js +9 -0
  67. package/dist/auth/enums/tenant.onboarding.source.enum.js.map +1 -0
  68. package/dist/auth/enums/tenant.provisioning.enum.d.ts +12 -0
  69. package/dist/auth/enums/tenant.provisioning.enum.d.ts.map +1 -0
  70. package/dist/auth/enums/tenant.provisioning.enum.js +17 -0
  71. package/dist/auth/enums/tenant.provisioning.enum.js.map +1 -0
  72. package/dist/auth/es6.classes.d.ts +5 -2
  73. package/dist/auth/es6.classes.d.ts.map +1 -1
  74. package/dist/auth/es6.classes.js +6 -0
  75. package/dist/auth/es6.classes.js.map +1 -1
  76. package/dist/auth/processors/tenant.invitation.data.processor.d.ts.map +1 -1
  77. package/dist/auth/processors/tenant.invitation.data.processor.js +3 -0
  78. package/dist/auth/processors/tenant.invitation.data.processor.js.map +1 -1
  79. package/dist/auth/services/scope.service.d.ts +1 -0
  80. package/dist/auth/services/scope.service.d.ts.map +1 -1
  81. package/dist/auth/services/scope.service.js +14 -0
  82. package/dist/auth/services/scope.service.js.map +1 -1
  83. package/dist/auth/services/tenant.invitation.service.d.ts.map +1 -1
  84. package/dist/auth/services/tenant.invitation.service.js +21 -2
  85. package/dist/auth/services/tenant.invitation.service.js.map +1 -1
  86. package/dist/auth/services/tenant.limit.service.d.ts +20 -0
  87. package/dist/auth/services/tenant.limit.service.d.ts.map +1 -0
  88. package/dist/auth/services/tenant.limit.service.js +102 -0
  89. package/dist/auth/services/tenant.limit.service.js.map +1 -0
  90. package/dist/auth/services/tenant.provisioning.service.d.ts +18 -0
  91. package/dist/auth/services/tenant.provisioning.service.d.ts.map +1 -0
  92. package/dist/auth/services/tenant.provisioning.service.js +175 -0
  93. package/dist/auth/services/tenant.provisioning.service.js.map +1 -0
  94. package/dist/auth/types/tenant.limit.types.d.ts +31 -0
  95. package/dist/auth/types/tenant.limit.types.d.ts.map +1 -0
  96. package/dist/auth/types/tenant.limit.types.js +3 -0
  97. package/dist/auth/types/tenant.limit.types.js.map +1 -0
  98. package/dist/auth/types/tenant.provisioning.types.d.ts +37 -0
  99. package/dist/auth/types/tenant.provisioning.types.d.ts.map +1 -0
  100. package/dist/auth/types/tenant.provisioning.types.js +3 -0
  101. package/dist/auth/types/tenant.provisioning.types.js.map +1 -0
  102. package/dist/auth/utilities/tenant.limits.d.ts +22 -0
  103. package/dist/auth/utilities/tenant.limits.d.ts.map +1 -0
  104. package/dist/auth/utilities/tenant.limits.js +175 -0
  105. package/dist/auth/utilities/tenant.limits.js.map +1 -0
  106. package/dist/constants/entity.constants.d.ts +3 -0
  107. package/dist/constants/entity.constants.d.ts.map +1 -1
  108. package/dist/constants/entity.constants.js +3 -0
  109. package/dist/constants/entity.constants.js.map +1 -1
  110. package/dist/constants/entity.maps.d.ts +6 -0
  111. package/dist/constants/entity.maps.d.ts.map +1 -1
  112. package/dist/constants/entity.maps.js +6 -0
  113. package/dist/constants/entity.maps.js.map +1 -1
  114. package/dist/global/exceptions/limit.exceeded.exception.d.ts +5 -0
  115. package/dist/global/exceptions/limit.exceeded.exception.d.ts.map +1 -0
  116. package/dist/global/exceptions/limit.exceeded.exception.js +12 -0
  117. package/dist/global/exceptions/limit.exceeded.exception.js.map +1 -0
  118. package/dist/index.d.ts +11 -0
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +23 -4
  121. package/dist/index.js.map +1 -1
  122. package/dist/migrations/1749600000037.CreateSysLimitsTable.d.ts +6 -0
  123. package/dist/migrations/1749600000037.CreateSysLimitsTable.d.ts.map +1 -0
  124. package/dist/migrations/1749600000037.CreateSysLimitsTable.js +38 -0
  125. package/dist/migrations/1749600000037.CreateSysLimitsTable.js.map +1 -0
  126. package/dist/migrations/1749600000038.CreateSysTenantLimitsTable.d.ts +6 -0
  127. package/dist/migrations/1749600000038.CreateSysTenantLimitsTable.d.ts.map +1 -0
  128. package/dist/migrations/1749600000038.CreateSysTenantLimitsTable.js +35 -0
  129. package/dist/migrations/1749600000038.CreateSysTenantLimitsTable.js.map +1 -0
  130. package/dist/migrations/1749600000039.CreateSysTenantLimitUsagesTable.d.ts +6 -0
  131. package/dist/migrations/1749600000039.CreateSysTenantLimitUsagesTable.d.ts.map +1 -0
  132. package/dist/migrations/1749600000039.CreateSysTenantLimitUsagesTable.js +32 -0
  133. package/dist/migrations/1749600000039.CreateSysTenantLimitUsagesTable.js.map +1 -0
  134. package/dist/migrations/1749600000040.SeedTenantLimits.d.ts +6 -0
  135. package/dist/migrations/1749600000040.SeedTenantLimits.d.ts.map +1 -0
  136. package/dist/migrations/1749600000040.SeedTenantLimits.js +23 -0
  137. package/dist/migrations/1749600000040.SeedTenantLimits.js.map +1 -0
  138. package/package.json +1 -1
@@ -0,0 +1,17 @@
1
+ import { ListFilterService } from '../../common/services/list.filter.service';
2
+ import { LimitEntity } from '../../auth/entities/limit.entity';
3
+ import { TenantLimitService } from '../../auth/services/tenant.limit.service';
4
+ import { AdminAccessService } from '../services/admin.access.service';
5
+ import { AddLimitDto } from '../dtos/add.limit.dto';
6
+ import { LimitListDto } from '../dtos/limit.list.dto';
7
+ export declare class AdminLimitController {
8
+ private readonly adminAccessService;
9
+ private readonly tenantLimitService;
10
+ private readonly listFilterService;
11
+ constructor(adminAccessService: AdminAccessService, tenantLimitService: TenantLimitService, listFilterService: ListFilterService);
12
+ save(dto: AddLimitDto): Promise<LimitEntity>;
13
+ list(dto: LimitListDto): Promise<import("../..").CommonListResult>;
14
+ detail(id: string): Promise<LimitEntity>;
15
+ remove(id: string): Promise<import("../..").DeleteResult>;
16
+ }
17
+ //# sourceMappingURL=admin.limit.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.limit.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.limit.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAK9E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAItE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAOtD,qBAIa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB;IASjD,IAAI,CAAS,GAAG,EAAE,WAAW;IAW7B,IAAI,CAAS,GAAG,EAAE,YAAY;IAU9B,MAAM,CAA6B,EAAE,EAAE,MAAM;IAgB7C,MAAM,CAA6B,EAAE,EAAE,MAAM;CAqBpD"}
@@ -0,0 +1,132 @@
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.AdminLimitController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const list_filter_service_1 = require("../../common/services/list.filter.service");
19
+ const strict_validation_pipe_1 = require("../../common/pipes/strict.validation.pipe");
20
+ const not_found_exception_1 = require("../../global/exceptions/not.found.exception");
21
+ const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
22
+ const entity_constants_1 = require("../../constants/entity.constants");
23
+ const limit_entity_1 = require("../../auth/entities/limit.entity");
24
+ const tenant_limit_enum_1 = require("../../auth/enums/tenant.limit.enum");
25
+ const tenant_limit_service_1 = require("../../auth/services/tenant.limit.service");
26
+ const admin_access_service_1 = require("../services/admin.access.service");
27
+ const admin_audit_1 = require("../utilities/admin.audit");
28
+ const limit_data_processor_1 = require("../libraries/limit.data.processor");
29
+ const limit_list_processor_1 = require("../libraries/limit.list.processor");
30
+ const add_limit_dto_1 = require("../dtos/add.limit.dto");
31
+ const limit_list_dto_1 = require("../dtos/limit.list.dto");
32
+ let AdminLimitController = class AdminLimitController {
33
+ constructor(adminAccessService, tenantLimitService, listFilterService) {
34
+ this.adminAccessService = adminAccessService;
35
+ this.tenantLimitService = tenantLimitService;
36
+ this.listFilterService = listFilterService;
37
+ }
38
+ async save(dto) {
39
+ const access = await this.adminAccessService.validateAdmin();
40
+ return new limit_data_processor_1.LimitDataProcessor(access).process(dto);
41
+ }
42
+ async list(dto) {
43
+ await this.adminAccessService.validateContentReader();
44
+ return new limit_list_processor_1.LimitListProcessor(this.listFilterService).process(dto);
45
+ }
46
+ async detail(id) {
47
+ await this.adminAccessService.validateContentReader();
48
+ const limit = await limit_entity_1.LimitEntity.findOne({
49
+ where: { id },
50
+ relations: { scope: true },
51
+ });
52
+ if (!limit)
53
+ throw new not_found_exception_1.NotFoundException(tenant_limit_enum_1.TenantLimitMessage.NOT_FOUND);
54
+ return limit;
55
+ }
56
+ async remove(id) {
57
+ const { user } = await this.adminAccessService.validateSuperAdmin();
58
+ const limit = await limit_entity_1.LimitEntity.findOne({ where: { id } });
59
+ if (!limit)
60
+ throw new not_found_exception_1.NotFoundException(tenant_limit_enum_1.TenantLimitMessage.NOT_FOUND);
61
+ const result = await this.tenantLimitService.deleteLimit(id, user.id);
62
+ await admin_audit_1.AdminAudit.record(limit_entity_1.LimitEntity.getRepository().manager, {
63
+ actor: user,
64
+ sourceType: entity_constants_1.baseEntityConstants.limit,
65
+ sourceId: id,
66
+ action: audit_action_enum_1.AuditAction.SOFT_DELETE,
67
+ oldValue: admin_audit_1.AdminAudit.pick(limit, [
68
+ 'identifier',
69
+ 'name',
70
+ 'scope_id',
71
+ 'default_value',
72
+ 'period',
73
+ ]),
74
+ });
75
+ return result;
76
+ }
77
+ };
78
+ exports.AdminLimitController = AdminLimitController;
79
+ __decorate([
80
+ (0, common_1.Post)(),
81
+ (0, swagger_1.ApiOperation)({
82
+ summary: 'Define a limit, or update an existing one.',
83
+ description: 'Send an `id` to edit; omit it to define one. `identifier` (unique), `scope_id` and `period` are fixed once created. `default_value` null = unlimited. Requires at least the global admin role.',
84
+ }),
85
+ __param(0, (0, common_1.Body)()),
86
+ __metadata("design:type", Function),
87
+ __metadata("design:paramtypes", [add_limit_dto_1.AddLimitDto]),
88
+ __metadata("design:returntype", Promise)
89
+ ], AdminLimitController.prototype, "save", null);
90
+ __decorate([
91
+ (0, common_1.Post)('list'),
92
+ (0, swagger_1.ApiOperation)({
93
+ summary: 'List, search and filter limits.',
94
+ description: 'Rows carry `scope_identifier`, `scope_name` and `overrides` (tenants with their own value). Requires at least the global content reader role.',
95
+ }),
96
+ __param(0, (0, common_1.Body)()),
97
+ __metadata("design:type", Function),
98
+ __metadata("design:paramtypes", [limit_list_dto_1.LimitListDto]),
99
+ __metadata("design:returntype", Promise)
100
+ ], AdminLimitController.prototype, "list", null);
101
+ __decorate([
102
+ (0, common_1.Get)(':id'),
103
+ (0, swagger_1.ApiOperation)({
104
+ summary: 'One limit, in full.',
105
+ description: 'Requires at least the global content reader role.',
106
+ }),
107
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", [String]),
110
+ __metadata("design:returntype", Promise)
111
+ ], AdminLimitController.prototype, "detail", null);
112
+ __decorate([
113
+ (0, common_1.Delete)(':id'),
114
+ (0, swagger_1.ApiOperation)({
115
+ summary: 'Delete a limit.',
116
+ description: 'Soft delete, with every tenant override of it; code asserting it then refuses everyone. Built-in limits (e.g. `tenant.members.max`) cannot be deleted. Requires the global super admin role.',
117
+ }),
118
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
119
+ __metadata("design:type", Function),
120
+ __metadata("design:paramtypes", [String]),
121
+ __metadata("design:returntype", Promise)
122
+ ], AdminLimitController.prototype, "remove", null);
123
+ exports.AdminLimitController = AdminLimitController = __decorate([
124
+ (0, swagger_1.ApiTags)('Admin - Limits'),
125
+ (0, swagger_1.ApiBearerAuth)(),
126
+ (0, common_1.UsePipes)(strict_validation_pipe_1.StrictValidationPipe),
127
+ (0, common_1.Controller)('api/admin/limits'),
128
+ __metadata("design:paramtypes", [admin_access_service_1.AdminAccessService,
129
+ tenant_limit_service_1.TenantLimitService,
130
+ list_filter_service_1.ListFilterService])
131
+ ], AdminLimitController);
132
+ //# sourceMappingURL=admin.limit.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.limit.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.limit.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CASwB;AACxB,6CAAuE;AACvE,mFAA8E;AAC9E,sFAAiF;AACjF,qFAAgF;AAChF,4EAAmE;AACnE,uEAAuE;AACvE,mEAA+D;AAC/D,0EAAwE;AACxE,mFAA8E;AAC9E,2EAAsE;AACtE,0DAAsD;AACtD,4EAAuE;AACvE,4EAAuE;AACvE,yDAAoD;AACpD,2DAAsD;AAW/C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,YACmB,kBAAsC,EACtC,kBAAsC,EACtC,iBAAoC;QAFpC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,sBAAiB,GAAjB,iBAAiB,CAAmB;IACpD,CAAC;IAQE,AAAN,KAAK,CAAC,IAAI,CAAS,GAAgB;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;QAC7D,OAAO,IAAI,yCAAkB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAQK,AAAN,KAAK,CAAC,IAAI,CAAS,GAAiB;QAClC,MAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;QACtD,OAAO,IAAI,yCAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAOK,AAAN,KAAK,CAAC,MAAM,CAA6B,EAAU;QACjD,MAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,0BAAW,CAAC,OAAO,CAAC;YACtC,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,uCAAiB,CAAC,sCAAkB,CAAC,SAAS,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAQK,AAAN,KAAK,CAAC,MAAM,CAA6B,EAAU;QACjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,0BAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,uCAAiB,CAAC,sCAAkB,CAAC,SAAS,CAAC,CAAC;QAEtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,MAAM,wBAAU,CAAC,MAAM,CAAC,0BAAW,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE;YAC3D,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,sCAAmB,CAAC,KAAK;YACrC,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,+BAAW,CAAC,WAAW;YAC/B,QAAQ,EAAE,wBAAU,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC/B,YAAY;gBACZ,MAAM;gBACN,UAAU;gBACV,eAAe;gBACf,QAAQ;aACT,CAAC;SACH,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAvEY,oDAAoB;AAazB;IANL,IAAA,aAAI,GAAE;IACN,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,4CAA4C;QACrD,WAAW,EACT,gMAAgM;KACnM,CAAC;IACU,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,2BAAW;;gDAGlC;AAQK;IANL,IAAA,aAAI,EAAC,MAAM,CAAC;IACZ,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,iCAAiC;QAC1C,WAAW,EACT,+IAA+I;KAClJ,CAAC;IACU,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,6BAAY;;gDAGnC;AAOK;IALL,IAAA,YAAG,EAAC,KAAK,CAAC;IACV,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,mDAAmD;KACjE,CAAC;IACY,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,sBAAa,CAAC,CAAA;;;;kDAQvC;AAQK;IANL,IAAA,eAAM,EAAC,KAAK,CAAC;IACb,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EACT,8LAA8L;KACjM,CAAC;IACY,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,sBAAa,CAAC,CAAA;;;;kDAoBvC;+BAtEU,oBAAoB;IAJhC,IAAA,iBAAO,EAAC,gBAAgB,CAAC;IACzB,IAAA,uBAAa,GAAE;IACf,IAAA,iBAAQ,EAAC,6CAAoB,CAAC;IAC9B,IAAA,mBAAU,EAAC,kBAAkB,CAAC;qCAGU,yCAAkB;QAClB,yCAAkB;QACnB,uCAAiB;GAJ5C,oBAAoB,CAuEhC"}
@@ -2,17 +2,25 @@ import { ListFilterService } from '../../common/services/list.filter.service';
2
2
  import { AdminAccessService } from '../services/admin.access.service';
3
3
  import { AddTenantDto } from '../dtos/add.tenant.dto';
4
4
  import { TenantListDto } from '../dtos/tenant.list.dto';
5
- import { TenantOnboardedMailJob } from '../../notification/jobs/tenant.onboarded.mail.job';
5
+ import { TenantProvisioningService } from '../../auth/services/tenant.provisioning.service';
6
6
  import { TenantEntity } from '../../tenant/entities/tenant.entity';
7
7
  import { TenantDetail } from '../types/admin.types';
8
+ import { SetTenantLimitDto } from '../dtos/set.tenant.limit.dto';
9
+ import { TenantLimitService } from '../../auth/services/tenant.limit.service';
10
+ import { TenantLimitEntity } from '../../auth/entities/tenant.limit.entity';
11
+ import { LimitStatus } from '../../auth/types/tenant.limit.types';
8
12
  export declare class AdminTenantController {
9
13
  private readonly adminAccessService;
10
- private readonly tenantOnboardedMailJob;
14
+ private readonly tenantProvisioningService;
11
15
  private readonly listFilterService;
12
- constructor(adminAccessService: AdminAccessService, tenantOnboardedMailJob: TenantOnboardedMailJob, listFilterService: ListFilterService);
16
+ private readonly tenantLimitService;
17
+ constructor(adminAccessService: AdminAccessService, tenantProvisioningService: TenantProvisioningService, listFilterService: ListFilterService, tenantLimitService: TenantLimitService);
13
18
  onboard(dto: AddTenantDto): Promise<TenantEntity>;
14
19
  list(dto: TenantListDto): Promise<import("../..").CommonListResult>;
15
20
  detail(id: string): Promise<TenantDetail>;
21
+ limits(id: string): Promise<LimitStatus[]>;
22
+ setLimit(id: string, dto: SetTenantLimitDto): Promise<TenantLimitEntity>;
23
+ removeLimit(id: string, limitId: string): Promise<TenantLimitEntity>;
16
24
  remove(id: string): Promise<import("../types/admin.types").DeleteResult>;
17
25
  }
18
26
  //# sourceMappingURL=admin.tenant.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.tenant.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAMtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,qBAIa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,kBAAkB,EAAE,kBAAkB,EACtC,sBAAsB,EAAE,sBAAsB,EAC9C,iBAAiB,EAAE,iBAAiB;IASjD,OAAO,CAAS,GAAG,EAAE,YAAY;IAajC,IAAI,CAAS,GAAG,EAAE,aAAa;IAW/B,MAAM,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BrE,MAAM,CAA6B,EAAE,EAAE,MAAM;CAIpD"}
1
+ {"version":3,"file":"admin.tenant.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAMtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAKlE,qBAIa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAHlB,kBAAkB,EAAE,kBAAkB,EACtC,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,kBAAkB;IASnD,OAAO,CAAS,GAAG,EAAE,YAAY;IAcjC,IAAI,CAAS,GAAG,EAAE,aAAa;IAW/B,MAAM,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BrE,MAAM,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAatE,QAAQ,CACgB,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,iBAAiB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAWvB,WAAW,CACa,EAAE,EAAE,MAAM,EACL,OAAO,EAAE,MAAM,GAC/C,OAAO,CAAC,iBAAiB,CAAC;IA6BvB,MAAM,CAA6B,EAAE,EAAE,MAAM;CAIpD"}
@@ -24,18 +24,26 @@ const tenant_delete_processor_1 = require("../libraries/tenant.delete.processor"
24
24
  const tenant_list_processor_1 = require("../libraries/tenant.list.processor");
25
25
  const add_tenant_dto_1 = require("../dtos/add.tenant.dto");
26
26
  const tenant_list_dto_1 = require("../dtos/tenant.list.dto");
27
- const tenant_onboarded_mail_job_1 = require("../../notification/jobs/tenant.onboarded.mail.job");
27
+ const tenant_provisioning_service_1 = require("../../auth/services/tenant.provisioning.service");
28
28
  const tenant_entity_1 = require("../../tenant/entities/tenant.entity");
29
29
  const tenant_scope_entity_1 = require("../../auth/entities/tenant.scope.entity");
30
+ const tenant_limit_data_processor_1 = require("../libraries/tenant.limit.data.processor");
31
+ const set_tenant_limit_dto_1 = require("../dtos/set.tenant.limit.dto");
32
+ const tenant_limit_service_1 = require("../../auth/services/tenant.limit.service");
33
+ const tenant_limit_entity_1 = require("../../auth/entities/tenant.limit.entity");
34
+ const admin_audit_1 = require("../utilities/admin.audit");
35
+ const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
36
+ const entity_constants_1 = require("../../constants/entity.constants");
30
37
  let AdminTenantController = class AdminTenantController {
31
- constructor(adminAccessService, tenantOnboardedMailJob, listFilterService) {
38
+ constructor(adminAccessService, tenantProvisioningService, listFilterService, tenantLimitService) {
32
39
  this.adminAccessService = adminAccessService;
33
- this.tenantOnboardedMailJob = tenantOnboardedMailJob;
40
+ this.tenantProvisioningService = tenantProvisioningService;
34
41
  this.listFilterService = listFilterService;
42
+ this.tenantLimitService = tenantLimitService;
35
43
  }
36
44
  async onboard(dto) {
37
45
  const { user } = await this.adminAccessService.validateSuperAdmin();
38
- return new tenant_data_processor_1.TenantDataProcessor(user, this.tenantOnboardedMailJob).process(dto);
46
+ return new tenant_data_processor_1.TenantDataProcessor(user, this.tenantProvisioningService).process(dto);
39
47
  }
40
48
  async list(dto) {
41
49
  await this.adminAccessService.validateContentReader();
@@ -56,6 +64,34 @@ let AdminTenantController = class AdminTenantController {
56
64
  .filter((scope) => !!scope),
57
65
  });
58
66
  }
67
+ async limits(id) {
68
+ await this.adminAccessService.validateContentReader();
69
+ if (!(await tenant_entity_1.TenantEntity.existsBy({ id })))
70
+ throw new not_found_exception_1.NotFoundException('No tenant exists for this id');
71
+ return this.tenantLimitService.status(id);
72
+ }
73
+ async setLimit(id, dto) {
74
+ const access = await this.adminAccessService.validateAdmin();
75
+ return new tenant_limit_data_processor_1.TenantLimitDataProcessor(access).process(id, dto);
76
+ }
77
+ async removeLimit(id, limitId) {
78
+ const { user } = await this.adminAccessService.validateAdmin();
79
+ const override = await this.tenantLimitService.removeOverride(id, limitId, user.id);
80
+ await admin_audit_1.AdminAudit.record(tenant_limit_entity_1.TenantLimitEntity.getRepository().manager, {
81
+ actor: user,
82
+ sourceType: entity_constants_1.baseEntityConstants.tenantLimit,
83
+ sourceId: override.id,
84
+ action: audit_action_enum_1.AuditAction.SOFT_DELETE,
85
+ oldValue: admin_audit_1.AdminAudit.pick(override, [
86
+ 'tenant_id',
87
+ 'limit_id',
88
+ 'value',
89
+ 'expires_at',
90
+ 'note',
91
+ ]),
92
+ });
93
+ return override;
94
+ }
59
95
  async remove(id) {
60
96
  const { user } = await this.adminAccessService.validateSuperAdmin();
61
97
  return new tenant_delete_processor_1.TenantDeleteProcessor(user).process(id);
@@ -95,6 +131,41 @@ __decorate([
95
131
  __metadata("design:paramtypes", [String]),
96
132
  __metadata("design:returntype", Promise)
97
133
  ], AdminTenantController.prototype, "detail", null);
134
+ __decorate([
135
+ (0, common_1.Get)(':id/limits'),
136
+ (0, swagger_1.ApiOperation)({
137
+ summary: "A tenant's limits.",
138
+ description: "Every catalogue limit as it applies to this tenant: `default_value`, the live `override` (value, expiry, note), the enforced `value` (null = unlimited; 0 when the tenant lacks the limit's scope), `used` and `remaining`. Requires at least the global content reader role.",
139
+ }),
140
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
141
+ __metadata("design:type", Function),
142
+ __metadata("design:paramtypes", [String]),
143
+ __metadata("design:returntype", Promise)
144
+ ], AdminTenantController.prototype, "limits", null);
145
+ __decorate([
146
+ (0, common_1.Post)(':id/limits'),
147
+ (0, swagger_1.ApiOperation)({
148
+ summary: "Set a tenant's own value for a limit.",
149
+ description: 'Creates or replaces the override of `limit_id` for this tenant. `value` null = unlimited; `expires_at` (future) returns the tenant to the default afterwards. Lowering it below current usage refuses new additions and removes nothing. Requires at least the global admin role.',
150
+ }),
151
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
152
+ __param(1, (0, common_1.Body)()),
153
+ __metadata("design:type", Function),
154
+ __metadata("design:paramtypes", [String, set_tenant_limit_dto_1.SetTenantLimitDto]),
155
+ __metadata("design:returntype", Promise)
156
+ ], AdminTenantController.prototype, "setLimit", null);
157
+ __decorate([
158
+ (0, common_1.Delete)(':id/limits/:limitId'),
159
+ (0, swagger_1.ApiOperation)({
160
+ summary: "Remove a tenant's override of a limit.",
161
+ description: 'The catalogue default applies again. Requires at least the global admin role.',
162
+ }),
163
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
164
+ __param(1, (0, common_1.Param)('limitId', common_1.ParseUUIDPipe)),
165
+ __metadata("design:type", Function),
166
+ __metadata("design:paramtypes", [String, String]),
167
+ __metadata("design:returntype", Promise)
168
+ ], AdminTenantController.prototype, "removeLimit", null);
98
169
  __decorate([
99
170
  (0, common_1.Delete)(':id'),
100
171
  (0, swagger_1.ApiOperation)({
@@ -112,7 +183,8 @@ exports.AdminTenantController = AdminTenantController = __decorate([
112
183
  (0, common_1.UsePipes)(strict_validation_pipe_1.StrictValidationPipe),
113
184
  (0, common_1.Controller)('api/admin/tenants'),
114
185
  __metadata("design:paramtypes", [admin_access_service_1.AdminAccessService,
115
- tenant_onboarded_mail_job_1.TenantOnboardedMailJob,
116
- list_filter_service_1.ListFilterService])
186
+ tenant_provisioning_service_1.TenantProvisioningService,
187
+ list_filter_service_1.ListFilterService,
188
+ tenant_limit_service_1.TenantLimitService])
117
189
  ], AdminTenantController);
118
190
  //# sourceMappingURL=admin.tenant.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.tenant.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.tenant.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { CommonDataDto } from '../../common/dtos/common.data.dto';
2
+ import { LimitPeriod } from '../../auth/enums/tenant.limit.enum';
3
+ export declare class AddLimitDto extends CommonDataDto {
4
+ scope_id?: string | null;
5
+ identifier: string;
6
+ name: string;
7
+ description?: string;
8
+ default_value?: number | null;
9
+ period?: LimitPeriod | null;
10
+ }
11
+ //# sourceMappingURL=add.limit.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.limit.dto.d.ts","sourceRoot":"","sources":["../../../src/admin/dtos/add.limit.dto.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAc,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAO7E,qBAAa,WAAY,SAAQ,aAAa;IAS5C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAUzB,UAAU,EAAE,MAAM,CAAC;IAMnB,IAAI,EAAE,MAAM,CAAC;IAMb,WAAW,CAAC,EAAE,MAAM,CAAC;IAarB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAU9B,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B"}
@@ -0,0 +1,78 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AddLimitDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ const common_data_dto_1 = require("../../common/dtos/common.data.dto");
16
+ const tenant_limit_enum_1 = require("../../auth/enums/tenant.limit.enum");
17
+ const admin_patterns_1 = require("../validators/admin.patterns");
18
+ class AddLimitDto extends common_data_dto_1.CommonDataDto {
19
+ }
20
+ exports.AddLimitDto = AddLimitDto;
21
+ __decorate([
22
+ (0, swagger_1.ApiPropertyOptional)({
23
+ format: 'uuid',
24
+ nullable: true,
25
+ description: 'Scope the limit belongs to; only tenants holding it get any. Omit for a limit every tenant has.',
26
+ }),
27
+ (0, class_validator_1.IsOptional)(),
28
+ (0, class_validator_1.IsUUID)(),
29
+ __metadata("design:type", String)
30
+ ], AddLimitDto.prototype, "scope_id", void 0);
31
+ __decorate([
32
+ (0, swagger_1.ApiProperty)({ example: 'inventory.tables.max' }),
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_validator_1.IsNotEmpty)(),
35
+ (0, class_validator_1.MaxLength)(150),
36
+ (0, class_validator_1.Matches)(admin_patterns_1.CATALOGUE_IDENTIFIER_PATTERN, {
37
+ message: 'identifier may only contain lowercase letters, digits, hyphens and underscores, joined by single dots or colons',
38
+ }),
39
+ __metadata("design:type", String)
40
+ ], AddLimitDto.prototype, "identifier", void 0);
41
+ __decorate([
42
+ (0, swagger_1.ApiProperty)({ example: 'Tables' }),
43
+ (0, class_validator_1.IsString)(),
44
+ (0, class_validator_1.IsNotEmpty)(),
45
+ (0, class_validator_1.MaxLength)(150),
46
+ __metadata("design:type", String)
47
+ ], AddLimitDto.prototype, "name", void 0);
48
+ __decorate([
49
+ (0, swagger_1.ApiPropertyOptional)(),
50
+ (0, class_validator_1.IsOptional)(),
51
+ (0, class_validator_1.IsString)(),
52
+ (0, class_validator_1.MaxLength)(1000),
53
+ __metadata("design:type", String)
54
+ ], AddLimitDto.prototype, "description", void 0);
55
+ __decorate([
56
+ (0, swagger_1.ApiPropertyOptional)({
57
+ nullable: true,
58
+ minimum: 0,
59
+ maximum: tenant_limit_enum_1.LimitBound.MAX_VALUE,
60
+ description: 'What every tenant gets unless overridden. null = unlimited; omit on edit to keep.',
61
+ }),
62
+ (0, class_validator_1.IsOptional)(),
63
+ (0, class_validator_1.IsInt)(),
64
+ (0, class_validator_1.Min)(0),
65
+ (0, class_validator_1.Max)(tenant_limit_enum_1.LimitBound.MAX_VALUE),
66
+ __metadata("design:type", Number)
67
+ ], AddLimitDto.prototype, "default_value", void 0);
68
+ __decorate([
69
+ (0, swagger_1.ApiPropertyOptional)({
70
+ enum: tenant_limit_enum_1.LimitPeriod,
71
+ nullable: true,
72
+ description: 'Omit for a cap on a running total (seats, tables); `day` / `month` for a rate.',
73
+ }),
74
+ (0, class_validator_1.IsOptional)(),
75
+ (0, class_validator_1.IsEnum)(tenant_limit_enum_1.LimitPeriod),
76
+ __metadata("design:type", String)
77
+ ], AddLimitDto.prototype, "period", void 0);
78
+ //# sourceMappingURL=add.limit.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.limit.dto.js","sourceRoot":"","sources":["../../../src/admin/dtos/add.limit.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAWyB;AACzB,6CAAmE;AACnE,uEAAkE;AAClE,0EAA6E;AAC7E,iEAA4E;AAM5E,MAAa,WAAY,SAAQ,+BAAa;CAuD7C;AAvDD,kCAuDC;AA9CC;IARC,IAAA,6BAAmB,EAAC;QACnB,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,iGAAiG;KACpG,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;6CACgB;AAUzB;IARC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAChD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,GAAG,CAAC;IACd,IAAA,yBAAO,EAAC,6CAA4B,EAAE;QACrC,OAAO,EACL,iHAAiH;KACpH,CAAC;;+CACiB;AAMnB;IAJC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAClC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,GAAG,CAAC;;yCACF;AAMb;IAJC,IAAA,6BAAmB,GAAE;IACrB,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,IAAI,CAAC;;gDACK;AAarB;IAXC,IAAA,6BAAmB,EAAC;QACnB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,8BAAU,CAAC,SAAS;QAC7B,WAAW,EACT,mFAAmF;KACtF,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAG,EAAC,8BAAU,CAAC,SAAS,CAAC;;kDACI;AAU9B;IARC,IAAA,6BAAmB,EAAC;QACnB,IAAI,EAAE,+BAAW;QACjB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,gFAAgF;KACnF,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,+BAAW,CAAC;;2CACQ"}
@@ -0,0 +1,4 @@
1
+ import { CommonListFilterDto } from '../../common/dtos/common.list.filter.dto';
2
+ export declare class LimitListDto extends CommonListFilterDto {
3
+ }
4
+ //# sourceMappingURL=limit.list.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limit.list.dto.d.ts","sourceRoot":"","sources":["../../../src/admin/dtos/limit.list.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAG/E,qBAAa,YAAa,SAAQ,mBAAmB;CAAG"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LimitListDto = void 0;
4
+ const common_list_filter_dto_1 = require("../../common/dtos/common.list.filter.dto");
5
+ class LimitListDto extends common_list_filter_dto_1.CommonListFilterDto {
6
+ }
7
+ exports.LimitListDto = LimitListDto;
8
+ //# sourceMappingURL=limit.list.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limit.list.dto.js","sourceRoot":"","sources":["../../../src/admin/dtos/limit.list.dto.ts"],"names":[],"mappings":";;;AAAA,qFAA+E;AAG/E,MAAa,YAAa,SAAQ,4CAAmB;CAAG;AAAxD,oCAAwD"}
@@ -0,0 +1,7 @@
1
+ export declare class SetTenantLimitDto {
2
+ limit_id: string;
3
+ value: number | null;
4
+ expires_at?: string | null;
5
+ note?: string | null;
6
+ }
7
+ //# sourceMappingURL=set.tenant.limit.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.tenant.limit.dto.d.ts","sourceRoot":"","sources":["../../../src/admin/dtos/set.tenant.limit.dto.ts"],"names":[],"mappings":"AAgBA,qBAAa,iBAAiB;IAI5B,QAAQ,EAAE,MAAM,CAAC;IAYjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAUrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAU3B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB"}
@@ -0,0 +1,58 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SetTenantLimitDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ const tenant_limit_enum_1 = require("../../auth/enums/tenant.limit.enum");
16
+ class SetTenantLimitDto {
17
+ }
18
+ exports.SetTenantLimitDto = SetTenantLimitDto;
19
+ __decorate([
20
+ (0, swagger_1.ApiProperty)({ format: 'uuid', description: 'The limit (sys_limits).' }),
21
+ (0, class_validator_1.IsUUID)(),
22
+ (0, class_validator_1.IsNotEmpty)(),
23
+ __metadata("design:type", String)
24
+ ], SetTenantLimitDto.prototype, "limit_id", void 0);
25
+ __decorate([
26
+ (0, swagger_1.ApiProperty)({
27
+ nullable: true,
28
+ minimum: 0,
29
+ maximum: tenant_limit_enum_1.LimitBound.MAX_VALUE,
30
+ description: 'The value for this tenant; null = unlimited. Required.',
31
+ }),
32
+ (0, class_validator_1.ValidateIf)((dto) => dto.value !== null),
33
+ (0, class_validator_1.IsInt)(),
34
+ (0, class_validator_1.Min)(0),
35
+ (0, class_validator_1.Max)(tenant_limit_enum_1.LimitBound.MAX_VALUE),
36
+ __metadata("design:type", Number)
37
+ ], SetTenantLimitDto.prototype, "value", void 0);
38
+ __decorate([
39
+ (0, swagger_1.ApiPropertyOptional)({
40
+ nullable: true,
41
+ description: 'When the override lapses and the default applies again (ISO 8601, future). Omit or null = never.',
42
+ example: '2027-01-01T00:00:00.000Z',
43
+ }),
44
+ (0, class_validator_1.IsOptional)(),
45
+ (0, class_validator_1.IsISO8601)(),
46
+ __metadata("design:type", String)
47
+ ], SetTenantLimitDto.prototype, "expires_at", void 0);
48
+ __decorate([
49
+ (0, swagger_1.ApiPropertyOptional)({
50
+ nullable: true,
51
+ description: 'Back-office note, e.g. the deal behind it. Never shown to the tenant.',
52
+ }),
53
+ (0, class_validator_1.IsOptional)(),
54
+ (0, class_validator_1.IsString)(),
55
+ (0, class_validator_1.MaxLength)(tenant_limit_enum_1.LimitBound.NOTE_MAX_LENGTH),
56
+ __metadata("design:type", String)
57
+ ], SetTenantLimitDto.prototype, "note", void 0);
58
+ //# sourceMappingURL=set.tenant.limit.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.tenant.limit.dto.js","sourceRoot":"","sources":["../../../src/admin/dtos/set.tenant.limit.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAWyB;AACzB,6CAAmE;AACnE,0EAAgE;AAGhE,MAAa,iBAAiB;CAqC7B;AArCD,8CAqCC;AAjCC;IAHC,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;IACvE,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;mDACI;AAYjB;IAVC,IAAA,qBAAW,EAAC;QACX,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,8BAAU,CAAC,SAAS;QAC7B,WAAW,EAAE,wDAAwD;KACtE,CAAC;IACD,IAAA,4BAAU,EAAC,CAAC,GAAsB,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;IAC1D,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAG,EAAC,8BAAU,CAAC,SAAS,CAAC;;gDACL;AAUrB;IARC,IAAA,6BAAmB,EAAC;QACnB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,kGAAkG;QACpG,OAAO,EAAE,0BAA0B;KACpC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;qDACe;AAU3B;IARC,IAAA,6BAAmB,EAAC;QACnB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,uEAAuE;KAC1E,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,8BAAU,CAAC,eAAe,CAAC;;+CACjB"}
@@ -2,6 +2,7 @@ import { AdminApiKeyController } from './controllers/admin.api.key.controller';
2
2
  import { AdminEmailTemplateController } from './controllers/admin.email.template.controller';
3
3
  import { AdminPdfTemplateController } from './controllers/admin.pdf.template.controller';
4
4
  import { AdminPermissionController } from './controllers/admin.permission.controller';
5
+ import { AdminLimitController } from './controllers/admin.limit.controller';
5
6
  import { AdminRoleController } from './controllers/admin.role.controller';
6
7
  import { AdminScheduledTaskController } from './controllers/admin.scheduled.task.controller';
7
8
  import { AdminScopeController } from './controllers/admin.scope.controller';
@@ -31,6 +32,9 @@ import { PdfTemplateDataProcessor } from './libraries/pdf.template.data.processo
31
32
  import { PdfTemplateListProcessor } from './libraries/pdf.template.list.processor';
32
33
  import { PermissionDataProcessor } from './libraries/permission.data.processor';
33
34
  import { PermissionListProcessor } from './libraries/permission.list.processor';
35
+ import { LimitDataProcessor } from './libraries/limit.data.processor';
36
+ import { LimitListProcessor } from './libraries/limit.list.processor';
37
+ import { TenantLimitDataProcessor } from './libraries/tenant.limit.data.processor';
34
38
  import { RoleListProcessor } from './libraries/role.list.processor';
35
39
  import { ScheduledTaskDataProcessor } from './libraries/scheduled.task.data.processor';
36
40
  import { ScheduledTaskDeleteProcessor } from './libraries/scheduled.task.delete.processor';
@@ -47,6 +51,8 @@ import { AddApiKeyDto } from './dtos/add.api.key.dto';
47
51
  import { AddClientMembershipDto } from './dtos/add.client.membership.dto';
48
52
  import { AddPdfTemplateDto } from './dtos/add.pdf.template.dto';
49
53
  import { AddPermissionDto } from './dtos/add.permission.dto';
54
+ import { AddLimitDto } from './dtos/add.limit.dto';
55
+ import { SetTenantLimitDto } from './dtos/set.tenant.limit.dto';
50
56
  import { ScheduleDto } from './dtos/add.scheduled.task.dto';
51
57
  import { AddScopeDto } from './dtos/add.scope.dto';
52
58
  import { AddSystemRoleDto } from './dtos/add.system.role.dto';
@@ -55,10 +61,10 @@ import { ApiKeyListDto } from './dtos/api.key.list.dto';
55
61
  import { ApiKeyRolesDto } from './dtos/api.key.roles.dto';
56
62
  import { BaseUserDto } from './dtos/base.user.dto';
57
63
  export declare const es6Classes: {
58
- controllers: (typeof AdminApiKeyController | typeof AdminEmailTemplateController | typeof AdminPdfTemplateController | typeof AdminPermissionController | typeof AdminRoleController | typeof AdminScheduledTaskController | typeof AdminScopeController | typeof AdminTenantController | typeof AdminSystemUserController | typeof AdminTenantUserController | typeof AdminUserController | typeof SystemRoleController)[];
64
+ controllers: (typeof AdminApiKeyController | typeof AdminEmailTemplateController | typeof AdminPdfTemplateController | typeof AdminPermissionController | typeof AdminLimitController | typeof AdminRoleController | typeof AdminScheduledTaskController | typeof AdminScopeController | typeof AdminTenantController | typeof AdminSystemUserController | typeof AdminTenantUserController | typeof AdminUserController | typeof SystemRoleController)[];
59
65
  services: readonly [typeof AdminAccessService, typeof SystemUserService, typeof TemplateService];
60
- libraries: (typeof ApiKeyDataProcessor | typeof ApiKeyListProcessor | typeof ApiKeyRolesDataProcessor | typeof EmailTemplateDataProcessor | typeof EmailTemplateListProcessor | typeof PdfTemplateDataProcessor | typeof PdfTemplateListProcessor | typeof PermissionDataProcessor | typeof PermissionListProcessor | typeof AdminRoleListProcessor | typeof RoleListProcessor | typeof ScheduledTaskDataProcessor | typeof ScheduledTaskDeleteProcessor | typeof ScheduledTaskListProcessor | typeof ScopeDataProcessor | typeof ScopeListProcessor | typeof TenantDataProcessor | typeof TenantDeleteProcessor | typeof TenantListProcessor | typeof SystemUserDataProcessor | typeof SystemUserListProcessor | typeof BulkUserDataProcessor | typeof ClientUserDataProcessor | typeof ClientUserDeleteProcessor | typeof ClientUserListProcessor | typeof ClientMembershipDataProcessor | typeof AdminUserDataProcessor | typeof AdminUserDeleteProcessor | typeof AdminUserListProcessor | typeof SystemRoleDataProcessor)[];
61
- dtos: (typeof AddApiKeyDto | typeof ApiKeyListDto | typeof ApiKeyRolesDto | typeof AddPdfTemplateDto | typeof AddPermissionDto | typeof ScheduleDto | typeof AddScopeDto | typeof AddTenantDto | typeof BaseUserDto | typeof AddClientMembershipDto | typeof AddSystemRoleDto)[];
66
+ libraries: (typeof ApiKeyDataProcessor | typeof ApiKeyListProcessor | typeof ApiKeyRolesDataProcessor | typeof EmailTemplateDataProcessor | typeof EmailTemplateListProcessor | typeof PdfTemplateDataProcessor | typeof PdfTemplateListProcessor | typeof PermissionDataProcessor | typeof PermissionListProcessor | typeof LimitDataProcessor | typeof LimitListProcessor | typeof AdminRoleListProcessor | typeof RoleListProcessor | typeof ScheduledTaskDataProcessor | typeof ScheduledTaskDeleteProcessor | typeof ScheduledTaskListProcessor | typeof ScopeDataProcessor | typeof ScopeListProcessor | typeof TenantDataProcessor | typeof TenantDeleteProcessor | typeof TenantListProcessor | typeof TenantLimitDataProcessor | typeof SystemUserDataProcessor | typeof SystemUserListProcessor | typeof BulkUserDataProcessor | typeof ClientUserDataProcessor | typeof ClientUserDeleteProcessor | typeof ClientUserListProcessor | typeof ClientMembershipDataProcessor | typeof AdminUserDataProcessor | typeof AdminUserDeleteProcessor | typeof AdminUserListProcessor | typeof SystemRoleDataProcessor)[];
67
+ dtos: (typeof AddApiKeyDto | typeof ApiKeyListDto | typeof ApiKeyRolesDto | typeof AddPdfTemplateDto | typeof AddPermissionDto | typeof AddLimitDto | typeof ScheduleDto | typeof AddScopeDto | typeof AddTenantDto | typeof SetTenantLimitDto | typeof BaseUserDto | typeof AddClientMembershipDto | typeof AddSystemRoleDto)[];
62
68
  jobs: any[];
63
69
  subscribers: any[];
64
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"es6.classes.d.ts","sourceRoot":"","sources":["../../src/admin/es6.classes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"es6.classes.d.ts","sourceRoot":"","sources":["../../src/admin/es6.classes.ts"],"names":[],"mappings":"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"}