@flusys/nestjs-auth 1.0.0-beta → 1.0.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 (106) hide show
  1. package/README.md +590 -473
  2. package/cjs/config/auth.constants.js +12 -0
  3. package/cjs/controllers/authentication.controller.js +365 -24
  4. package/cjs/controllers/branch.controller.js +44 -1
  5. package/cjs/controllers/company-selection.controller.js +27 -20
  6. package/cjs/controllers/company.controller.js +44 -1
  7. package/cjs/controllers/user-permission.controller.js +82 -154
  8. package/cjs/controllers/user.controller.js +211 -7
  9. package/cjs/docs/auth-swagger.config.js +14 -7
  10. package/cjs/dtos/authentication.dto.js +114 -38
  11. package/cjs/dtos/index.js +0 -1
  12. package/cjs/dtos/user-permission.dto.js +28 -0
  13. package/cjs/dtos/user.dto.js +19 -4
  14. package/cjs/entities/index.js +5 -1
  15. package/cjs/entities/pending-registration.entity.js +125 -0
  16. package/cjs/entities/user-company-permission.entity.js +3 -9
  17. package/cjs/entities/user-token.entity.js +129 -0
  18. package/cjs/interceptors/clear-token.interceptor.js +10 -23
  19. package/cjs/interceptors/set-token.interceptor.js +15 -55
  20. package/cjs/interfaces/auth-email-provider.interface.js +45 -0
  21. package/cjs/interfaces/index.js +2 -0
  22. package/cjs/interfaces/user-enricher.interface.js +4 -0
  23. package/cjs/modules/auth.module.js +65 -143
  24. package/cjs/services/auth-config.service.js +25 -27
  25. package/cjs/services/auth-datasource.provider.js +13 -23
  26. package/cjs/services/auth-email.service.js +456 -0
  27. package/cjs/services/authentication.service.js +297 -349
  28. package/cjs/services/branch.service.js +9 -4
  29. package/cjs/services/company-selection-session.service.js +1 -1
  30. package/cjs/services/index.js +1 -0
  31. package/cjs/services/user-permission.service.js +43 -73
  32. package/cjs/services/user.service.js +184 -34
  33. package/cjs/strategies/jwt.strategy.js +44 -44
  34. package/cjs/validators/password.validator.js +45 -0
  35. package/config/auth.constants.d.ts +3 -0
  36. package/controllers/authentication.controller.d.ts +16 -10
  37. package/controllers/company-selection.controller.d.ts +6 -2
  38. package/controllers/user-permission.controller.d.ts +5 -4
  39. package/controllers/user.controller.d.ts +33 -0
  40. package/dtos/authentication.dto.d.ts +20 -6
  41. package/dtos/company-branch.dto.d.ts +0 -1
  42. package/dtos/company.dto.d.ts +0 -1
  43. package/dtos/index.d.ts +0 -1
  44. package/dtos/user-permission.dto.d.ts +4 -0
  45. package/dtos/user.dto.d.ts +1 -2
  46. package/entities/index.d.ts +7 -3
  47. package/entities/pending-registration.entity.d.ts +17 -0
  48. package/entities/user-company-permission.entity.d.ts +1 -3
  49. package/entities/user-token.entity.d.ts +15 -0
  50. package/fesm/config/auth.constants.js +6 -2
  51. package/fesm/controllers/authentication.controller.js +368 -27
  52. package/fesm/controllers/branch.controller.js +45 -2
  53. package/fesm/controllers/company-selection.controller.js +28 -21
  54. package/fesm/controllers/company.controller.js +45 -2
  55. package/fesm/controllers/user-permission.controller.js +84 -156
  56. package/fesm/controllers/user.controller.js +214 -10
  57. package/fesm/docs/auth-swagger.config.js +14 -7
  58. package/fesm/dtos/authentication.dto.js +101 -39
  59. package/fesm/dtos/index.js +0 -1
  60. package/fesm/dtos/user-permission.dto.js +28 -0
  61. package/fesm/dtos/user.dto.js +20 -5
  62. package/fesm/entities/index.js +7 -1
  63. package/fesm/entities/pending-registration.entity.js +115 -0
  64. package/fesm/entities/user-company-permission.entity.js +3 -9
  65. package/fesm/entities/user-token.entity.js +113 -0
  66. package/fesm/interceptors/clear-token.interceptor.js +9 -22
  67. package/fesm/interceptors/set-token.interceptor.js +14 -54
  68. package/fesm/interfaces/auth-email-provider.interface.js +38 -0
  69. package/fesm/interfaces/authentication.interface.js +1 -1
  70. package/fesm/interfaces/index.js +2 -0
  71. package/fesm/interfaces/user-enricher.interface.js +26 -0
  72. package/fesm/modules/auth.module.js +67 -145
  73. package/fesm/services/auth-config.service.js +26 -28
  74. package/fesm/services/auth-datasource.provider.js +14 -24
  75. package/fesm/services/auth-email.service.js +405 -0
  76. package/fesm/services/authentication.service.js +297 -349
  77. package/fesm/services/branch.service.js +9 -4
  78. package/fesm/services/company-selection-session.service.js +1 -1
  79. package/fesm/services/index.js +1 -0
  80. package/fesm/services/user-permission.service.js +44 -74
  81. package/fesm/services/user.service.js +186 -36
  82. package/fesm/strategies/jwt.strategy.js +44 -44
  83. package/fesm/validators/password.validator.js +48 -0
  84. package/interceptors/clear-token.interceptor.d.ts +0 -1
  85. package/interceptors/set-token.interceptor.d.ts +1 -1
  86. package/interfaces/auth-email-provider.interface.d.ts +6 -0
  87. package/interfaces/auth-module-options.interface.d.ts +4 -1
  88. package/interfaces/authentication.interface.d.ts +13 -3
  89. package/interfaces/index.d.ts +2 -0
  90. package/interfaces/user-enricher.interface.d.ts +64 -0
  91. package/interfaces/user.interface.d.ts +1 -0
  92. package/modules/auth.module.d.ts +6 -3
  93. package/package.json +4 -4
  94. package/services/auth-config.service.d.ts +7 -8
  95. package/services/auth-datasource.provider.d.ts +2 -4
  96. package/services/auth-email.service.d.ts +54 -0
  97. package/services/authentication.service.d.ts +27 -16
  98. package/services/company-selection-session.service.d.ts +1 -1
  99. package/services/index.d.ts +1 -0
  100. package/services/user-permission.service.d.ts +6 -9
  101. package/services/user.service.d.ts +19 -3
  102. package/strategies/jwt.strategy.d.ts +4 -1
  103. package/validators/password.validator.d.ts +10 -0
  104. package/cjs/dtos/user-company-permission.dto.js +0 -110
  105. package/dtos/user-company-permission.dto.d.ts +0 -10
  106. package/fesm/dtos/user-company-permission.dto.js +0 -98
@@ -1,110 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get AssignBranchPermissionDto () {
13
- return AssignBranchPermissionDto;
14
- },
15
- get AssignCompanyPermissionDto () {
16
- return AssignCompanyPermissionDto;
17
- }
18
- });
19
- const _swagger = require("@nestjs/swagger");
20
- const _classvalidator = require("class-validator");
21
- function _define_property(obj, key, value) {
22
- if (key in obj) {
23
- Object.defineProperty(obj, key, {
24
- value: value,
25
- enumerable: true,
26
- configurable: true,
27
- writable: true
28
- });
29
- } else {
30
- obj[key] = value;
31
- }
32
- return obj;
33
- }
34
- function _ts_decorate(decorators, target, key, desc) {
35
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37
- 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;
38
- return c > 3 && r && Object.defineProperty(target, key, r), r;
39
- }
40
- function _ts_metadata(k, v) {
41
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
42
- }
43
- let AssignCompanyPermissionDto = class AssignCompanyPermissionDto {
44
- constructor(){
45
- _define_property(this, "userId", void 0);
46
- _define_property(this, "companyId", void 0);
47
- _define_property(this, "metadata", void 0);
48
- }
49
- };
50
- _ts_decorate([
51
- (0, _swagger.ApiProperty)({
52
- example: '550e8400-e29b-41d4-a716-446655440000',
53
- description: 'User ID to assign company access to'
54
- }),
55
- (0, _classvalidator.IsUUID)(),
56
- _ts_metadata("design:type", String)
57
- ], AssignCompanyPermissionDto.prototype, "userId", void 0);
58
- _ts_decorate([
59
- (0, _swagger.ApiProperty)({
60
- example: '550e8400-e29b-41d4-a716-446655440001',
61
- description: 'Company ID to grant access to'
62
- }),
63
- (0, _classvalidator.IsUUID)(),
64
- _ts_metadata("design:type", String)
65
- ], AssignCompanyPermissionDto.prototype, "companyId", void 0);
66
- _ts_decorate([
67
- (0, _swagger.ApiPropertyOptional)({
68
- example: {
69
- role: 'member'
70
- },
71
- description: 'Additional permission metadata'
72
- }),
73
- (0, _classvalidator.IsOptional)(),
74
- (0, _classvalidator.IsObject)(),
75
- _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
76
- ], AssignCompanyPermissionDto.prototype, "metadata", void 0);
77
- let AssignBranchPermissionDto = class AssignBranchPermissionDto {
78
- constructor(){
79
- _define_property(this, "userId", void 0);
80
- _define_property(this, "branchId", void 0);
81
- _define_property(this, "metadata", void 0);
82
- }
83
- };
84
- _ts_decorate([
85
- (0, _swagger.ApiProperty)({
86
- example: '550e8400-e29b-41d4-a716-446655440000',
87
- description: 'User ID to assign branch access to'
88
- }),
89
- (0, _classvalidator.IsUUID)(),
90
- _ts_metadata("design:type", String)
91
- ], AssignBranchPermissionDto.prototype, "userId", void 0);
92
- _ts_decorate([
93
- (0, _swagger.ApiProperty)({
94
- example: '550e8400-e29b-41d4-a716-446655440002',
95
- description: 'Branch ID to grant access to'
96
- }),
97
- (0, _classvalidator.IsUUID)(),
98
- _ts_metadata("design:type", String)
99
- ], AssignBranchPermissionDto.prototype, "branchId", void 0);
100
- _ts_decorate([
101
- (0, _swagger.ApiPropertyOptional)({
102
- example: {
103
- role: 'staff'
104
- },
105
- description: 'Additional permission metadata'
106
- }),
107
- (0, _classvalidator.IsOptional)(),
108
- (0, _classvalidator.IsObject)(),
109
- _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
110
- ], AssignBranchPermissionDto.prototype, "metadata", void 0);
@@ -1,10 +0,0 @@
1
- export declare class AssignCompanyPermissionDto {
2
- userId: string;
3
- companyId: string;
4
- metadata?: Record<string, any>;
5
- }
6
- export declare class AssignBranchPermissionDto {
7
- userId: string;
8
- branchId: string;
9
- metadata?: Record<string, any>;
10
- }
@@ -1,98 +0,0 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value: value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
14
- function _ts_decorate(decorators, target, key, desc) {
15
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- 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;
18
- return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- }
20
- function _ts_metadata(k, v) {
21
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
22
- }
23
- import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
24
- import { IsObject, IsOptional, IsUUID } from 'class-validator';
25
- /**
26
- * Assign Company Permission DTO
27
- * Used internally by UserPermissionService
28
- */ export class AssignCompanyPermissionDto {
29
- constructor(){
30
- _define_property(this, "userId", void 0);
31
- _define_property(this, "companyId", void 0);
32
- _define_property(this, "metadata", void 0);
33
- }
34
- }
35
- _ts_decorate([
36
- ApiProperty({
37
- example: '550e8400-e29b-41d4-a716-446655440000',
38
- description: 'User ID to assign company access to'
39
- }),
40
- IsUUID(),
41
- _ts_metadata("design:type", String)
42
- ], AssignCompanyPermissionDto.prototype, "userId", void 0);
43
- _ts_decorate([
44
- ApiProperty({
45
- example: '550e8400-e29b-41d4-a716-446655440001',
46
- description: 'Company ID to grant access to'
47
- }),
48
- IsUUID(),
49
- _ts_metadata("design:type", String)
50
- ], AssignCompanyPermissionDto.prototype, "companyId", void 0);
51
- _ts_decorate([
52
- ApiPropertyOptional({
53
- example: {
54
- role: 'member'
55
- },
56
- description: 'Additional permission metadata'
57
- }),
58
- IsOptional(),
59
- IsObject(),
60
- _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
61
- ], AssignCompanyPermissionDto.prototype, "metadata", void 0);
62
- /**
63
- * Assign Branch Permission DTO
64
- * Used internally by UserPermissionService
65
- */ export class AssignBranchPermissionDto {
66
- constructor(){
67
- _define_property(this, "userId", void 0);
68
- _define_property(this, "branchId", void 0);
69
- _define_property(this, "metadata", void 0);
70
- }
71
- }
72
- _ts_decorate([
73
- ApiProperty({
74
- example: '550e8400-e29b-41d4-a716-446655440000',
75
- description: 'User ID to assign branch access to'
76
- }),
77
- IsUUID(),
78
- _ts_metadata("design:type", String)
79
- ], AssignBranchPermissionDto.prototype, "userId", void 0);
80
- _ts_decorate([
81
- ApiProperty({
82
- example: '550e8400-e29b-41d4-a716-446655440002',
83
- description: 'Branch ID to grant access to'
84
- }),
85
- IsUUID(),
86
- _ts_metadata("design:type", String)
87
- ], AssignBranchPermissionDto.prototype, "branchId", void 0);
88
- _ts_decorate([
89
- ApiPropertyOptional({
90
- example: {
91
- role: 'staff'
92
- },
93
- description: 'Additional permission metadata'
94
- }),
95
- IsOptional(),
96
- IsObject(),
97
- _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
98
- ], AssignBranchPermissionDto.prototype, "metadata", void 0);