@explorins/pers-shared 2.1.54 → 2.1.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -6
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/shared-lib/dto/auth/auth.dto.d.ts +18 -0
- package/dist/cjs/shared-lib/dto/auth/auth.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/auth/auth.dto.js +51 -6
- package/dist/cjs/shared-lib/dto/auth/auth.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/business/business-membership.dto.d.ts +41 -0
- package/dist/cjs/shared-lib/dto/business/business-membership.dto.d.ts.map +1 -0
- package/dist/cjs/shared-lib/dto/business/business-membership.dto.js +137 -0
- package/dist/cjs/shared-lib/dto/business/business-membership.dto.js.map +1 -0
- package/dist/cjs/shared-lib/dto/business/business-update.request.dto.d.ts +0 -1
- package/dist/cjs/shared-lib/dto/business/business-update.request.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/business/business-update.request.dto.js +0 -7
- package/dist/cjs/shared-lib/dto/business/business-update.request.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/business/business.dto.d.ts +0 -1
- package/dist/cjs/shared-lib/dto/business/business.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/business/business.dto.js +0 -8
- package/dist/cjs/shared-lib/dto/business/business.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/business/index.d.ts +1 -0
- package/dist/cjs/shared-lib/dto/business/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/business/index.js +1 -0
- package/dist/cjs/shared-lib/dto/business/index.js.map +1 -1
- package/dist/cjs/shared-lib/enum/index.d.ts +1 -0
- package/dist/cjs/shared-lib/enum/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/enum/index.js +1 -0
- package/dist/cjs/shared-lib/enum/index.js.map +1 -1
- package/dist/cjs/shared-lib/enum/membership-role.enum.d.ts +42 -0
- package/dist/cjs/shared-lib/enum/membership-role.enum.d.ts.map +1 -0
- package/dist/cjs/shared-lib/enum/membership-role.enum.js +56 -0
- package/dist/cjs/shared-lib/enum/membership-role.enum.js.map +1 -0
- package/dist/cjs/shared-lib/errors/domains/authentication-errors.d.ts +16 -1
- package/dist/cjs/shared-lib/errors/domains/authentication-errors.d.ts.map +1 -1
- package/dist/cjs/shared-lib/errors/domains/authentication-errors.js +16 -1
- package/dist/cjs/shared-lib/errors/domains/authentication-errors.js.map +1 -1
- package/dist/cjs/shared-lib/errors/domains/business-errors.d.ts +12 -0
- package/dist/cjs/shared-lib/errors/domains/business-errors.d.ts.map +1 -1
- package/dist/cjs/shared-lib/errors/domains/business-errors.js +22 -1
- package/dist/cjs/shared-lib/errors/domains/business-errors.js.map +1 -1
- package/dist/cjs/shared-lib/errors/error-codes.d.ts +3 -0
- package/dist/cjs/shared-lib/errors/error-codes.d.ts.map +1 -1
- package/dist/cjs/shared-lib/errors/error-codes.js +4 -0
- package/dist/cjs/shared-lib/errors/error-codes.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/auth-request-context.interface.d.ts +28 -0
- package/dist/cjs/shared-lib/interfaces/auth-request-context.interface.d.ts.map +1 -0
- package/dist/cjs/shared-lib/interfaces/auth-request-context.interface.js +3 -0
- package/dist/cjs/shared-lib/interfaces/auth-request-context.interface.js.map +1 -0
- package/dist/cjs/shared-lib/interfaces/index.d.ts +1 -0
- package/dist/cjs/shared-lib/interfaces/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/interfaces/index.js +1 -0
- package/dist/cjs/shared-lib/interfaces/index.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/jwt.payload.interface.d.ts +2 -0
- package/dist/cjs/shared-lib/interfaces/jwt.payload.interface.d.ts.map +1 -1
- package/dist/cjs/shared-lib/interfaces/jwt.payload.interface.js.map +1 -1
- package/dist/cjs/shared-patterns/errors/error-factory.d.ts +8 -1
- package/dist/cjs/shared-patterns/errors/error-factory.d.ts.map +1 -1
- package/dist/cjs/shared-patterns/errors/error-factory.js +25 -0
- package/dist/cjs/shared-patterns/errors/error-factory.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/shared-lib/dto/auth/auth.dto.d.ts +18 -0
- package/dist/esm/shared-lib/dto/auth/auth.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/auth/auth.dto.js +46 -4
- package/dist/esm/shared-lib/dto/auth/auth.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/business/business-membership.dto.d.ts +41 -0
- package/dist/esm/shared-lib/dto/business/business-membership.dto.d.ts.map +1 -0
- package/dist/esm/shared-lib/dto/business/business-membership.dto.js +115 -0
- package/dist/esm/shared-lib/dto/business/business-membership.dto.js.map +1 -0
- package/dist/esm/shared-lib/dto/business/business-update.request.dto.d.ts +0 -1
- package/dist/esm/shared-lib/dto/business/business-update.request.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/business/business-update.request.dto.js +0 -6
- package/dist/esm/shared-lib/dto/business/business-update.request.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/business/business.dto.d.ts +0 -1
- package/dist/esm/shared-lib/dto/business/business.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/business/business.dto.js +0 -7
- package/dist/esm/shared-lib/dto/business/business.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/business/index.d.ts +1 -0
- package/dist/esm/shared-lib/dto/business/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/business/index.js +1 -0
- package/dist/esm/shared-lib/dto/business/index.js.map +1 -1
- package/dist/esm/shared-lib/enum/index.d.ts +1 -0
- package/dist/esm/shared-lib/enum/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/enum/index.js +1 -0
- package/dist/esm/shared-lib/enum/index.js.map +1 -1
- package/dist/esm/shared-lib/enum/membership-role.enum.d.ts +42 -0
- package/dist/esm/shared-lib/enum/membership-role.enum.d.ts.map +1 -0
- package/dist/esm/shared-lib/enum/membership-role.enum.js +52 -0
- package/dist/esm/shared-lib/enum/membership-role.enum.js.map +1 -0
- package/dist/esm/shared-lib/errors/domains/authentication-errors.d.ts +16 -1
- package/dist/esm/shared-lib/errors/domains/authentication-errors.d.ts.map +1 -1
- package/dist/esm/shared-lib/errors/domains/authentication-errors.js +15 -1
- package/dist/esm/shared-lib/errors/domains/authentication-errors.js.map +1 -1
- package/dist/esm/shared-lib/errors/domains/business-errors.d.ts +12 -0
- package/dist/esm/shared-lib/errors/domains/business-errors.d.ts.map +1 -1
- package/dist/esm/shared-lib/errors/domains/business-errors.js +18 -0
- package/dist/esm/shared-lib/errors/domains/business-errors.js.map +1 -1
- package/dist/esm/shared-lib/errors/error-codes.d.ts +3 -0
- package/dist/esm/shared-lib/errors/error-codes.d.ts.map +1 -1
- package/dist/esm/shared-lib/errors/error-codes.js +4 -0
- package/dist/esm/shared-lib/errors/error-codes.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/auth-request-context.interface.d.ts +28 -0
- package/dist/esm/shared-lib/interfaces/auth-request-context.interface.d.ts.map +1 -0
- package/dist/esm/shared-lib/interfaces/auth-request-context.interface.js +2 -0
- package/dist/esm/shared-lib/interfaces/auth-request-context.interface.js.map +1 -0
- package/dist/esm/shared-lib/interfaces/index.d.ts +1 -0
- package/dist/esm/shared-lib/interfaces/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/interfaces/index.js +1 -0
- package/dist/esm/shared-lib/interfaces/index.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/jwt.payload.interface.d.ts +2 -0
- package/dist/esm/shared-lib/interfaces/jwt.payload.interface.d.ts.map +1 -1
- package/dist/esm/shared-lib/interfaces/jwt.payload.interface.js.map +1 -1
- package/dist/esm/shared-patterns/errors/error-factory.d.ts +8 -1
- package/dist/esm/shared-patterns/errors/error-factory.d.ts.map +1 -1
- package/dist/esm/shared-patterns/errors/error-factory.js +26 -1
- package/dist/esm/shared-patterns/errors/error-factory.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
|
|
8
|
+
import { MembershipRole } from "../../enum/membership-role.enum";
|
|
9
|
+
/**
|
|
10
|
+
* Business Membership DTO
|
|
11
|
+
*
|
|
12
|
+
* Represents a user's membership/access to a business.
|
|
13
|
+
* Used in authentication flows and authorization checks.
|
|
14
|
+
*
|
|
15
|
+
* Note: Permissions are derived from role, not stored separately.
|
|
16
|
+
* Uses IDs for both user and business - consumer fetches full objects when needed.
|
|
17
|
+
*/
|
|
18
|
+
export class BusinessMembershipDTO {
|
|
19
|
+
id = '';
|
|
20
|
+
userId = '';
|
|
21
|
+
businessId = '';
|
|
22
|
+
role = MembershipRole.VIEWER;
|
|
23
|
+
createdAt;
|
|
24
|
+
updatedAt;
|
|
25
|
+
}
|
|
26
|
+
__decorate([
|
|
27
|
+
ApiProperty({
|
|
28
|
+
description: 'Unique identifier for this membership'
|
|
29
|
+
})
|
|
30
|
+
], BusinessMembershipDTO.prototype, "id", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
ApiProperty({
|
|
33
|
+
description: 'The user ID who has access to this business'
|
|
34
|
+
})
|
|
35
|
+
], BusinessMembershipDTO.prototype, "userId", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
ApiProperty({
|
|
38
|
+
description: 'The business ID this membership belongs to'
|
|
39
|
+
})
|
|
40
|
+
], BusinessMembershipDTO.prototype, "businessId", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
ApiProperty({
|
|
43
|
+
description: 'The role the user has in this business. Permissions are derived from role.',
|
|
44
|
+
enum: MembershipRole,
|
|
45
|
+
example: MembershipRole.OWNER
|
|
46
|
+
})
|
|
47
|
+
], BusinessMembershipDTO.prototype, "role", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
ApiPropertyOptional({
|
|
50
|
+
description: 'When the membership was created'
|
|
51
|
+
})
|
|
52
|
+
], BusinessMembershipDTO.prototype, "createdAt", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
ApiPropertyOptional({
|
|
55
|
+
description: 'When the membership was last updated'
|
|
56
|
+
})
|
|
57
|
+
], BusinessMembershipDTO.prototype, "updatedAt", void 0);
|
|
58
|
+
/**
|
|
59
|
+
* Request DTO for adding a member to a business
|
|
60
|
+
* Used with POST /businesses/:businessId/members
|
|
61
|
+
*/
|
|
62
|
+
export class AddBusinessMemberRequestDTO {
|
|
63
|
+
userId;
|
|
64
|
+
role = MembershipRole.VIEWER;
|
|
65
|
+
}
|
|
66
|
+
__decorate([
|
|
67
|
+
ApiProperty({
|
|
68
|
+
description: 'The user ID to add as a member'
|
|
69
|
+
})
|
|
70
|
+
], AddBusinessMemberRequestDTO.prototype, "userId", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
ApiProperty({
|
|
73
|
+
description: 'The role to assign (permissions derived from role)',
|
|
74
|
+
enum: MembershipRole,
|
|
75
|
+
default: MembershipRole.VIEWER
|
|
76
|
+
})
|
|
77
|
+
], AddBusinessMemberRequestDTO.prototype, "role", void 0);
|
|
78
|
+
/**
|
|
79
|
+
* Request DTO for creating a business membership (legacy/admin)
|
|
80
|
+
*/
|
|
81
|
+
export class CreateBusinessMembershipRequestDTO {
|
|
82
|
+
userId;
|
|
83
|
+
businessId;
|
|
84
|
+
role = MembershipRole.VIEWER;
|
|
85
|
+
}
|
|
86
|
+
__decorate([
|
|
87
|
+
ApiProperty({
|
|
88
|
+
description: 'The user ID to grant access to'
|
|
89
|
+
})
|
|
90
|
+
], CreateBusinessMembershipRequestDTO.prototype, "userId", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
ApiProperty({
|
|
93
|
+
description: 'The business ID to grant access to'
|
|
94
|
+
})
|
|
95
|
+
], CreateBusinessMembershipRequestDTO.prototype, "businessId", void 0);
|
|
96
|
+
__decorate([
|
|
97
|
+
ApiProperty({
|
|
98
|
+
description: 'The role to assign (permissions derived from role)',
|
|
99
|
+
enum: MembershipRole,
|
|
100
|
+
default: MembershipRole.VIEWER
|
|
101
|
+
})
|
|
102
|
+
], CreateBusinessMembershipRequestDTO.prototype, "role", void 0);
|
|
103
|
+
/**
|
|
104
|
+
* Request DTO for updating a business membership
|
|
105
|
+
*/
|
|
106
|
+
export class UpdateBusinessMembershipRequestDTO {
|
|
107
|
+
role;
|
|
108
|
+
}
|
|
109
|
+
__decorate([
|
|
110
|
+
ApiPropertyOptional({
|
|
111
|
+
description: 'The new role to assign (permissions derived from role)',
|
|
112
|
+
enum: MembershipRole
|
|
113
|
+
})
|
|
114
|
+
], UpdateBusinessMembershipRequestDTO.prototype, "role", void 0);
|
|
115
|
+
//# sourceMappingURL=business-membership.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-membership.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/business-membership.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGjE;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAqB;IAI9B,EAAE,GAAW,EAAE,CAAC;IAKhB,MAAM,GAAW,EAAE,CAAC;IAKpB,UAAU,GAAW,EAAE,CAAC;IAOxB,IAAI,GAAmB,cAAc,CAAC,MAAM,CAAC;IAK7C,SAAS,CAAQ;IAKjB,SAAS,CAAQ;CACpB;AA5BG;IAHC,WAAW,CAAC;QACT,WAAW,EAAE,uCAAuC;KACvD,CAAC;iDACc;AAKhB;IAHC,WAAW,CAAC;QACT,WAAW,EAAE,6CAA6C;KAC7D,CAAC;qDACkB;AAKpB;IAHC,WAAW,CAAC;QACT,WAAW,EAAE,4CAA4C;KAC5D,CAAC;yDACsB;AAOxB;IALC,WAAW,CAAC;QACT,WAAW,EAAE,4EAA4E;QACzF,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,cAAc,CAAC,KAAK;KAChC,CAAC;mDAC2C;AAK7C;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,iCAAiC;KACjD,CAAC;wDACe;AAKjB;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,sCAAsC;KACtD,CAAC;wDACe;AAGrB;;;GAGG;AACH,MAAM,OAAO,2BAA2B;IAIpC,MAAM,CAAU;IAOhB,IAAI,GAAmB,cAAc,CAAC,MAAM,CAAC;CAChD;AARG;IAHC,WAAW,CAAC;QACT,WAAW,EAAE,gCAAgC;KAChD,CAAC;2DACc;AAOhB;IALC,WAAW,CAAC;QACT,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,cAAc,CAAC,MAAM;KACjC,CAAC;yDAC2C;AAGjD;;GAEG;AACH,MAAM,OAAO,kCAAkC;IAI3C,MAAM,CAAU;IAKhB,UAAU,CAAU;IAOpB,IAAI,GAAmB,cAAc,CAAC,MAAM,CAAC;CAChD;AAbG;IAHC,WAAW,CAAC;QACT,WAAW,EAAE,gCAAgC;KAChD,CAAC;kEACc;AAKhB;IAHC,WAAW,CAAC;QACT,WAAW,EAAE,oCAAoC;KACpD,CAAC;sEACkB;AAOpB;IALC,WAAW,CAAC;QACT,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,cAAc,CAAC,MAAM;KACjC,CAAC;gEAC2C;AAGjD;;GAEG;AACH,MAAM,OAAO,kCAAkC;IAK3C,IAAI,CAAkB;CACzB;AADG;IAJC,mBAAmB,CAAC;QACjB,WAAW,EAAE,wDAAwD;QACrE,IAAI,EAAE,cAAc;KACvB,CAAC;gEACoB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business-update.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/business-update.request.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,wBAAwB;IAKjC,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,
|
|
1
|
+
{"version":3,"file":"business-update.request.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/business-update.request.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,wBAAwB;IAKjC,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAK3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAK1B,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -7,7 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { ApiPropertyOptional } from "@nestjs/swagger";
|
|
8
8
|
export class BusinessUpdateRequestDTO {
|
|
9
9
|
email;
|
|
10
|
-
primaryOwnerId;
|
|
11
10
|
businessLegalName;
|
|
12
11
|
displayName;
|
|
13
12
|
description;
|
|
@@ -26,11 +25,6 @@ __decorate([
|
|
|
26
25
|
description: 'The email of the business, this is unique and will be used to identify the business.'
|
|
27
26
|
})
|
|
28
27
|
], BusinessUpdateRequestDTO.prototype, "email", void 0);
|
|
29
|
-
__decorate([
|
|
30
|
-
ApiPropertyOptional({
|
|
31
|
-
description: 'The user ID of the primary owner who can authenticate as this business. Setting this enables business login for the specified user.'
|
|
32
|
-
})
|
|
33
|
-
], BusinessUpdateRequestDTO.prototype, "primaryOwnerId", void 0);
|
|
34
28
|
__decorate([
|
|
35
29
|
ApiPropertyOptional({
|
|
36
30
|
description: 'The legal name of the business, this is the name that will be used for legal purposes.'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business-update.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/business-update.request.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,OAAO,wBAAwB;IAKjC,KAAK,CAAU;IAKf,
|
|
1
|
+
{"version":3,"file":"business-update.request.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/business-update.request.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,OAAO,wBAAwB;IAKjC,KAAK,CAAU;IAKf,iBAAiB,CAAU;IAK3B,WAAW,CAAU;IAKrB,WAAW,CAAU;IAKrB,gBAAgB,CAAU;IAK1B,UAAU,CAAU;IAKpB,QAAQ,CAAU;IAKlB,aAAa,CAAU;IAKvB,IAAI,CAAU;IAKd,UAAU,CAAU;IAKpB,cAAc,CAAU;IAKxB,eAAe,CAAU;IAKzB,cAAc,CAAU;CAC3B;AA7DG;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,sFAAsF;KACtG,CAAC;uDACa;AAKf;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,wFAAwF;KACxG,CAAC;mEACyB;AAK3B;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,sFAAsF;KACtG,CAAC;6DACmB;AAKrB;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,4FAA4F;KAC5G,CAAC;6DACmB;AAKrB;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,kGAAkG;KAClH,CAAC;kEACwB;AAK1B;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,oFAAoF;KACpG,CAAC;4DACkB;AAKpB;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,gFAAgF;KAChG,CAAC;0DACgB;AAKlB;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,oFAAoF;KACpG,CAAC;+DACqB;AAKvB;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,8EAA8E;KAC9F,CAAC;sDACY;AAKd;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,4FAA4F;KAC5G,CAAC;4DACkB;AAKpB;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,sFAAsF;KACtG,CAAC;gEACsB;AAKxB;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,uFAAuF;KACvG,CAAC;iEACuB;AAKzB;IAHC,mBAAmB,CAAC;QACjB,WAAW,EAAE,gGAAgG;KAChH,CAAC;gEACsB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/business.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,WAAW;IAIpB,EAAE,EAAE,MAAM,CAAM;IAShB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMrC,
|
|
1
|
+
{"version":3,"file":"business.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/business.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,WAAW;IAIpB,EAAE,EAAE,MAAM,CAAM;IAShB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMrC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMlC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMlC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMvC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMjC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMpC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMrC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQtC,YAAY,EAAE,eAAe,GAAG,IAAI,CAAQ;IAK5C,QAAQ,EAAE,OAAO,CAAS;IAK1B,YAAY,EAAE,OAAO,CAAS;IAK9B,cAAc,EAAE,OAAO,CAAS;IAKhC,cAAc,EAAE,OAAO,CAAS;IAKhC,kBAAkB,EAAE,OAAO,CAAS;CACvC;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAI9C,aAAa,EAAE,MAAM,CAAM;CAC9B;AAGD,qBAAa,wBAAyB,SAAQ,WAAW;IAMrD,aAAa,EAAE,eAAe,EAAE,CAAM;CACzC"}
|
|
@@ -13,7 +13,6 @@ export class BusinessDTO {
|
|
|
13
13
|
/* @ApiProperty()
|
|
14
14
|
userName: string = ''; */
|
|
15
15
|
email = null;
|
|
16
|
-
primaryOwnerId = null;
|
|
17
16
|
accountAddress = null;
|
|
18
17
|
businessLegalName = null;
|
|
19
18
|
displayName = null;
|
|
@@ -44,12 +43,6 @@ __decorate([
|
|
|
44
43
|
nullable: true
|
|
45
44
|
})
|
|
46
45
|
], BusinessDTO.prototype, "email", void 0);
|
|
47
|
-
__decorate([
|
|
48
|
-
ApiProperty({
|
|
49
|
-
description: 'The primary owner user ID who can authenticate as this business.',
|
|
50
|
-
nullable: true
|
|
51
|
-
})
|
|
52
|
-
], BusinessDTO.prototype, "primaryOwnerId", void 0);
|
|
53
46
|
__decorate([
|
|
54
47
|
ApiProperty({
|
|
55
48
|
description: 'The address of the business, this is the address that will be shown to the public.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/business.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,OAAO,WAAW;IAIpB,EAAE,GAAW,EAAE,CAAC;IAEhB;6BACyB;IAMzB,KAAK,GAAkB,IAAI,CAAC;IAM5B,cAAc,GAAkB,IAAI,CAAC;IAMrC,
|
|
1
|
+
{"version":3,"file":"business.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/business.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './business.dto';
|
|
2
2
|
export * from './business-type.dto';
|
|
3
|
+
export * from './business-membership.dto';
|
|
3
4
|
export * from './business-create.request.dto';
|
|
4
5
|
export * from './business-update.request.dto';
|
|
5
6
|
export * from './businessSetAllAsTokenMinter.request.dto';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Business DTOs
|
|
2
2
|
export * from './business.dto';
|
|
3
3
|
export * from './business-type.dto';
|
|
4
|
+
export * from './business-membership.dto';
|
|
4
5
|
export * from './business-create.request.dto';
|
|
5
6
|
export * from './business-update.request.dto';
|
|
6
7
|
export * from './businessSetAllAsTokenMinter.request.dto';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/index.ts"],"names":[],"mappings":"AACA,gBAAgB;AAChB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/business/index.ts"],"names":[],"mappings":"AACA,gBAAgB;AAChB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC"}
|
|
@@ -4,6 +4,7 @@ export * from './transaction-status.enum';
|
|
|
4
4
|
export * from './transaction-trigger-process-type.enum';
|
|
5
5
|
export * from './api-key-type.enum';
|
|
6
6
|
export * from './admin-type.enum';
|
|
7
|
+
export * from './membership-role.enum';
|
|
7
8
|
export * from './web3-contract-type.enum';
|
|
8
9
|
export * from './owner-type.enum';
|
|
9
10
|
export * from './storageType.enum';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/enum/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAElC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/enum/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAElC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC"}
|
|
@@ -5,6 +5,7 @@ export * from './transaction-status.enum';
|
|
|
5
5
|
export * from './transaction-trigger-process-type.enum';
|
|
6
6
|
export * from './api-key-type.enum';
|
|
7
7
|
export * from './admin-type.enum';
|
|
8
|
+
export * from './membership-role.enum';
|
|
8
9
|
export * from './web3-contract-type.enum';
|
|
9
10
|
export * from './owner-type.enum';
|
|
10
11
|
export * from './storageType.enum';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/enum/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAElC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/enum/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAElC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal Membership Roles
|
|
3
|
+
*
|
|
4
|
+
* Generic roles that work across different membership contexts:
|
|
5
|
+
* - BusinessMembership (User → Business)
|
|
6
|
+
* - TenantMembership (Admin → Tenant) - future
|
|
7
|
+
* - CampaignMembership, etc. - future
|
|
8
|
+
*
|
|
9
|
+
* Follows traditional RBAC pattern: Owner > Admin > Editor > Viewer
|
|
10
|
+
*/
|
|
11
|
+
export declare enum MembershipRole {
|
|
12
|
+
/**
|
|
13
|
+
* Full control - can delete entity, transfer ownership, manage everything
|
|
14
|
+
*/
|
|
15
|
+
OWNER = "OWNER",
|
|
16
|
+
/**
|
|
17
|
+
* Administrative access - manage members & settings, but cannot delete entity
|
|
18
|
+
*/
|
|
19
|
+
ADMIN = "ADMIN",
|
|
20
|
+
/**
|
|
21
|
+
* Editor access - create/modify content, cannot manage members or settings
|
|
22
|
+
*/
|
|
23
|
+
EDITOR = "EDITOR",
|
|
24
|
+
/**
|
|
25
|
+
* Read-only access - view data only
|
|
26
|
+
*/
|
|
27
|
+
VIEWER = "VIEWER"
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Role hierarchy for permission checks
|
|
31
|
+
* Higher index = more permissions
|
|
32
|
+
*/
|
|
33
|
+
export declare const MEMBERSHIP_ROLE_HIERARCHY: MembershipRole[];
|
|
34
|
+
/**
|
|
35
|
+
* Check if a role has at least the required level
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* hasMinimumRole(MembershipRole.ADMIN, MembershipRole.EDITOR) // true
|
|
39
|
+
* hasMinimumRole(MembershipRole.VIEWER, MembershipRole.ADMIN) // false
|
|
40
|
+
*/
|
|
41
|
+
export declare function hasMinimumRole(userRole: MembershipRole, requiredRole: MembershipRole): boolean;
|
|
42
|
+
//# sourceMappingURL=membership-role.enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membership-role.enum.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/enum/membership-role.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,oBAAY,cAAc;IACtB;;OAEG;IACH,KAAK,UAAU;IAEf;;OAEG;IACH,KAAK,UAAU;IAEf;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,MAAM,WAAW;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,cAAc,EAKrD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,cAAc,GAC7B,OAAO,CAIT"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal Membership Roles
|
|
3
|
+
*
|
|
4
|
+
* Generic roles that work across different membership contexts:
|
|
5
|
+
* - BusinessMembership (User → Business)
|
|
6
|
+
* - TenantMembership (Admin → Tenant) - future
|
|
7
|
+
* - CampaignMembership, etc. - future
|
|
8
|
+
*
|
|
9
|
+
* Follows traditional RBAC pattern: Owner > Admin > Editor > Viewer
|
|
10
|
+
*/
|
|
11
|
+
export var MembershipRole;
|
|
12
|
+
(function (MembershipRole) {
|
|
13
|
+
/**
|
|
14
|
+
* Full control - can delete entity, transfer ownership, manage everything
|
|
15
|
+
*/
|
|
16
|
+
MembershipRole["OWNER"] = "OWNER";
|
|
17
|
+
/**
|
|
18
|
+
* Administrative access - manage members & settings, but cannot delete entity
|
|
19
|
+
*/
|
|
20
|
+
MembershipRole["ADMIN"] = "ADMIN";
|
|
21
|
+
/**
|
|
22
|
+
* Editor access - create/modify content, cannot manage members or settings
|
|
23
|
+
*/
|
|
24
|
+
MembershipRole["EDITOR"] = "EDITOR";
|
|
25
|
+
/**
|
|
26
|
+
* Read-only access - view data only
|
|
27
|
+
*/
|
|
28
|
+
MembershipRole["VIEWER"] = "VIEWER";
|
|
29
|
+
})(MembershipRole || (MembershipRole = {}));
|
|
30
|
+
/**
|
|
31
|
+
* Role hierarchy for permission checks
|
|
32
|
+
* Higher index = more permissions
|
|
33
|
+
*/
|
|
34
|
+
export const MEMBERSHIP_ROLE_HIERARCHY = [
|
|
35
|
+
MembershipRole.VIEWER,
|
|
36
|
+
MembershipRole.EDITOR,
|
|
37
|
+
MembershipRole.ADMIN,
|
|
38
|
+
MembershipRole.OWNER,
|
|
39
|
+
];
|
|
40
|
+
/**
|
|
41
|
+
* Check if a role has at least the required level
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* hasMinimumRole(MembershipRole.ADMIN, MembershipRole.EDITOR) // true
|
|
45
|
+
* hasMinimumRole(MembershipRole.VIEWER, MembershipRole.ADMIN) // false
|
|
46
|
+
*/
|
|
47
|
+
export function hasMinimumRole(userRole, requiredRole) {
|
|
48
|
+
const userLevel = MEMBERSHIP_ROLE_HIERARCHY.indexOf(userRole);
|
|
49
|
+
const requiredLevel = MEMBERSHIP_ROLE_HIERARCHY.indexOf(requiredRole);
|
|
50
|
+
return userLevel >= requiredLevel;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=membership-role.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membership-role.enum.js","sourceRoot":"","sources":["../../../../src/shared-lib/enum/membership-role.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAN,IAAY,cAoBX;AApBD,WAAY,cAAc;IACtB;;OAEG;IACH,iCAAe,CAAA;IAEf;;OAEG;IACH,iCAAe,CAAA;IAEf;;OAEG;IACH,mCAAiB,CAAA;IAEjB;;OAEG;IACH,mCAAiB,CAAA;AACrB,CAAC,EApBW,cAAc,KAAd,cAAc,QAoBzB;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACvD,cAAc,CAAC,MAAM;IACrB,cAAc,CAAC,MAAM;IACrB,cAAc,CAAC,KAAK;IACpB,cAAc,CAAC,KAAK;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC1B,QAAwB,EACxB,YAA4B;IAE5B,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,yBAAyB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtE,OAAO,SAAS,IAAI,aAAa,CAAC;AACtC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SecurityError } from '../base-business-error';
|
|
1
|
+
import { BusinessLogicError, SecurityError } from '../base-business-error';
|
|
2
2
|
/**
|
|
3
3
|
* Authentication domain business errors
|
|
4
4
|
*/
|
|
@@ -23,4 +23,19 @@ export declare class TokenRevokedException extends SecurityError {
|
|
|
23
23
|
export declare class FirebaseAuthenticationError extends SecurityError {
|
|
24
24
|
constructor(firebaseErrorCode: string, message?: string);
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Error thrown when user has multiple contexts (businesses/tenants) and must explicitly select one.
|
|
28
|
+
* Provides the available options to help the client make the selection.
|
|
29
|
+
*/
|
|
30
|
+
export declare class MultipleContextSelectionRequiredError extends BusinessLogicError {
|
|
31
|
+
readonly availableOptions: Array<{
|
|
32
|
+
id: string;
|
|
33
|
+
name?: string;
|
|
34
|
+
}>;
|
|
35
|
+
readonly contextType: string;
|
|
36
|
+
constructor(contextType: string, availableOptions: Array<{
|
|
37
|
+
id: string;
|
|
38
|
+
name?: string;
|
|
39
|
+
}>);
|
|
40
|
+
}
|
|
26
41
|
//# sourceMappingURL=authentication-errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication-errors.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/errors/domains/authentication-errors.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"authentication-errors.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/errors/domains/authentication-errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI3E;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,aAAa;gBAChD,QAAQ,EAAE,MAAM;CAS7B;AAED,qBAAa,wBAAyB,SAAQ,aAAa;gBAC7C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAS7C;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,MAAM,CAAC,EAAE,MAAM;CAU5B;AAED,qBAAa,iBAAkB,SAAQ,aAAa;;CAUnD;AAED,qBAAa,qBAAsB,SAAQ,aAAa;;CAUvD;AAED,qBAAa,2BAA4B,SAAQ,aAAa;gBAChD,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CASxD;AAED;;;GAGG;AACH,qBAAa,qCAAsC,SAAQ,kBAAkB;IAC3E,SAAgB,gBAAgB,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,SAAgB,WAAW,EAAE,MAAM,CAAC;gBAGlC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAazD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HttpStatus } from '@nestjs/common';
|
|
2
|
-
import { SecurityError } from '../base-business-error';
|
|
2
|
+
import { BusinessLogicError, SecurityError } from '../base-business-error';
|
|
3
3
|
import { CommonErrorCodes, ErrorDomains } from '../error-codes';
|
|
4
|
+
import { ErrorCategory } from '../base/error-classification-enums';
|
|
4
5
|
/**
|
|
5
6
|
* Authentication domain business errors
|
|
6
7
|
*/
|
|
@@ -38,4 +39,17 @@ export class FirebaseAuthenticationError extends SecurityError {
|
|
|
38
39
|
super('FIREBASE_AUTH_ERROR', ErrorDomains.AUTHENTICATION, message || `Firebase authentication error: ${firebaseErrorCode}`, HttpStatus.UNAUTHORIZED, 'Authentication failed. Please try signing in again');
|
|
39
40
|
}
|
|
40
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Error thrown when user has multiple contexts (businesses/tenants) and must explicitly select one.
|
|
44
|
+
* Provides the available options to help the client make the selection.
|
|
45
|
+
*/
|
|
46
|
+
export class MultipleContextSelectionRequiredError extends BusinessLogicError {
|
|
47
|
+
availableOptions;
|
|
48
|
+
contextType;
|
|
49
|
+
constructor(contextType, availableOptions) {
|
|
50
|
+
super('MULTIPLE_CONTEXT_SELECTION_REQUIRED', ErrorDomains.AUTHENTICATION, `Multiple ${contextType}s available. Please specify ${contextType}Id in request.`, HttpStatus.BAD_REQUEST, `You have access to multiple ${contextType}s. Please select one.`, ErrorCategory.VALIDATION);
|
|
51
|
+
this.contextType = contextType;
|
|
52
|
+
this.availableOptions = availableOptions;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
41
55
|
//# sourceMappingURL=authentication-errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication-errors.js","sourceRoot":"","sources":["../../../../../src/shared-lib/errors/domains/authentication-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"authentication-errors.js","sourceRoot":"","sources":["../../../../../src/shared-lib/errors/domains/authentication-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,aAAa;IAC5D,YAAY,QAAgB;QAC1B,KAAK,CACH,gBAAgB,CAAC,uBAAuB,EACxC,YAAY,CAAC,cAAc,EAC3B,sCAAsC,QAAQ,0BAA0B,EACxE,UAAU,CAAC,YAAY,EACvB,8BAA8B,CAC/B,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzD,YAAY,MAAc,EAAE,QAAgB;QAC1C,KAAK,CACH,gBAAgB,CAAC,oBAAoB,EACrC,YAAY,CAAC,cAAc,EAC3B,gDAAgD,MAAM,OAAO,QAAQ,EAAE,EACvE,UAAU,CAAC,SAAS,EACpB,4CAA4C,CAC7C,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAY,MAAe;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,KAAK,CACH,eAAe,EACf,YAAY,CAAC,cAAc,EAC3B,kCAAkC,OAAO,EAAE,EAC3C,UAAU,CAAC,YAAY,EACvB,+CAA+C,CAChD,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD;QACE,KAAK,CACH,eAAe,EACf,YAAY,CAAC,cAAc,EAC3B,kCAAkC,EAClC,UAAU,CAAC,YAAY,EACvB,gDAAgD,CACjD,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IACtD;QACE,KAAK,CACH,eAAe,EACf,YAAY,CAAC,cAAc,EAC3B,uCAAuC,EACvC,UAAU,CAAC,YAAY,EACvB,qDAAqD,CACtD,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,aAAa;IAC5D,YAAY,iBAAyB,EAAE,OAAgB;QACrD,KAAK,CACH,qBAAqB,EACrB,YAAY,CAAC,cAAc,EAC3B,OAAO,IAAI,kCAAkC,iBAAiB,EAAE,EAChE,UAAU,CAAC,YAAY,EACvB,oDAAoD,CACrD,CAAC;IACJ,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,qCAAsC,SAAQ,kBAAkB;IAC3D,gBAAgB,CAAuC;IACvD,WAAW,CAAS;IAEpC,YACE,WAAmB,EACnB,gBAAsD;QAEtD,KAAK,CACH,qCAAqC,EACrC,YAAY,CAAC,cAAc,EAC3B,YAAY,WAAW,+BAA+B,WAAW,gBAAgB,EACjF,UAAU,CAAC,WAAW,EACtB,+BAA+B,WAAW,uBAAuB,EACjE,aAAa,CAAC,UAAU,CACzB,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -8,6 +8,18 @@ export declare class BusinessNotFoundError extends DomainRuleError {
|
|
|
8
8
|
export declare class BusinessNotMinterError extends DomainRuleError {
|
|
9
9
|
constructor(businessId: string, tokenId: string);
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Membership-related domain errors (generic - works for business, tenant, etc.)
|
|
13
|
+
*/
|
|
14
|
+
export declare class MembershipNotFoundError extends DomainRuleError {
|
|
15
|
+
constructor(userId: string, entityId: string, entityType?: string);
|
|
16
|
+
}
|
|
17
|
+
export declare class MembershipAlreadyExistsError extends DomainRuleError {
|
|
18
|
+
constructor(userId: string, entityId: string, entityType?: string);
|
|
19
|
+
}
|
|
20
|
+
export declare class MembershipLastOwnerError extends DomainRuleError {
|
|
21
|
+
constructor(entityId: string, entityType?: string);
|
|
22
|
+
}
|
|
11
23
|
/**
|
|
12
24
|
* Campaign-related domain errors
|
|
13
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business-errors.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/errors/domains/business-errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9F;;GAEG;AAEH,qBAAa,qBAAsB,SAAQ,eAAe;gBAC5C,UAAU,EAAE,MAAM;CAQ/B;AAID,qBAAa,sBAAuB,SAAQ,eAAe;gBAC7C,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAQhD;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;gBAC5C,UAAU,EAAE,MAAM;CAQ/B;AAED,qBAAa,0BAA2B,SAAQ,eAAe;gBACjD,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAmB;CAQ/D;AAED,qBAAa,iCAAkC,SAAQ,eAAe;gBACxD,QAAQ,GAAE,MAAmB;CAQ1C;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,eAAe;gBAClD,SAAS,EAAE,gBAAgB,GAAG,YAAY;CAWvD;AAED,qBAAa,yBAA0B,SAAQ,eAAe;;CAS7D"}
|
|
1
|
+
{"version":3,"file":"business-errors.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/errors/domains/business-errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9F;;GAEG;AAEH,qBAAa,qBAAsB,SAAQ,eAAe;gBAC5C,UAAU,EAAE,MAAM;CAQ/B;AAID,qBAAa,sBAAuB,SAAQ,eAAe;gBAC7C,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAQhD;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;gBAC9C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAiB;CAQ5E;AAED,qBAAa,4BAA6B,SAAQ,eAAe;gBACnD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAiB;CAQ5E;AAED,qBAAa,wBAAyB,SAAQ,eAAe;gBAC/C,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAiB;CAS5D;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;gBAC5C,UAAU,EAAE,MAAM;CAQ/B;AAED,qBAAa,0BAA2B,SAAQ,eAAe;gBACjD,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAmB;CAQ/D;AAED,qBAAa,iCAAkC,SAAQ,eAAe;gBACxD,QAAQ,GAAE,MAAmB;CAQ1C;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,eAAe;gBAClD,SAAS,EAAE,gBAAgB,GAAG,YAAY;CAWvD;AAED,qBAAa,yBAA0B,SAAQ,eAAe;;CAS7D"}
|
|
@@ -14,6 +14,24 @@ export class BusinessNotMinterError extends DomainRuleError {
|
|
|
14
14
|
super(CommonErrorCodes.BUSINESS_NOT_MINTER, ErrorDomains.BUSINESS, `Business ${businessId} is not authorized as a minter for token ${tokenId}`, HttpStatus.FORBIDDEN);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Membership-related domain errors (generic - works for business, tenant, etc.)
|
|
19
|
+
*/
|
|
20
|
+
export class MembershipNotFoundError extends DomainRuleError {
|
|
21
|
+
constructor(userId, entityId, entityType = 'entity') {
|
|
22
|
+
super(CommonErrorCodes.MEMBERSHIP_NOT_FOUND, ErrorDomains.BUSINESS, `Membership not found for user ${userId} in ${entityType} ${entityId}`, HttpStatus.NOT_FOUND);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class MembershipAlreadyExistsError extends DomainRuleError {
|
|
26
|
+
constructor(userId, entityId, entityType = 'entity') {
|
|
27
|
+
super(CommonErrorCodes.MEMBERSHIP_ALREADY_EXISTS, ErrorDomains.BUSINESS, `User ${userId} already has membership in ${entityType} ${entityId}`, HttpStatus.CONFLICT);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export class MembershipLastOwnerError extends DomainRuleError {
|
|
31
|
+
constructor(entityId, entityType = 'entity') {
|
|
32
|
+
super(CommonErrorCodes.MEMBERSHIP_LAST_OWNER, ErrorDomains.BUSINESS, `Cannot remove the last owner of ${entityType} ${entityId}`, HttpStatus.CONFLICT, 'Assign another owner before removing this membership');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
17
35
|
/**
|
|
18
36
|
* Campaign-related domain errors
|
|
19
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business-errors.js","sourceRoot":"","sources":["../../../../../src/shared-lib/errors/domains/business-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAsB,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;GAEG;AAEH,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACxD,YAAY,UAAkB;QAC5B,KAAK,CACH,gBAAgB,CAAC,kBAAkB,EACnC,YAAY,CAAC,QAAQ,EACrB,sCAAsC,UAAU,EAAE,EAClD,UAAU,CAAC,SAAS,CACrB,CAAC;IACJ,CAAC;CACF;AAID,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IACzD,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CACH,gBAAgB,CAAC,mBAAmB,EACpC,YAAY,CAAC,QAAQ,EACrB,YAAY,UAAU,4CAA4C,OAAO,EAAE,EAC3E,UAAU,CAAC,SAAS,CACrB,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACxD,YAAY,UAAkB;QAC5B,KAAK,CACH,oBAAoB,EACpB,YAAY,CAAC,QAAQ,EACrB,6BAA6B,UAAU,aAAa,EACpD,UAAU,CAAC,SAAS,CACrB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,WAAmB,EAAE,WAAmB,UAAU;QAC5D,KAAK,CACH,wBAAwB,EACxB,YAAY,CAAC,QAAQ,EACrB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,WAAW,EAAE,EACzF,UAAU,CAAC,SAAS,CACrB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,iCAAkC,SAAQ,eAAe;IACpE,YAAY,WAAmB,UAAU;QACvC,KAAK,CACH,gCAAgC,EAChC,YAAY,CAAC,QAAQ,EACrB,8CAA8C,QAAQ,EAAE,EACxD,UAAU,CACX,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC9D,YAAY,SAA0C;QACpD,MAAM,eAAe,GAAG,SAAS,KAAK,gBAAgB,CAAC;QACvD,KAAK,CACH,SAAS,CAAC,WAAW,EAAE,EACvB,YAAY,CAAC,QAAQ,EACrB,eAAe;YACb,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,uCAAuC,EAC3C,UAAU,CAAC,QAAQ,CACpB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D;QACE,KAAK,CACH,wBAAwB,EACxB,YAAY,CAAC,QAAQ,EACrB,oDAAoD,EACpD,UAAU,CAAC,SAAS,CACrB,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"business-errors.js","sourceRoot":"","sources":["../../../../../src/shared-lib/errors/domains/business-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,9 @@ export declare const CommonErrorCodes: {
|
|
|
25
25
|
readonly CONTRACT_NOT_FOUND: "CONTRACT_NOT_FOUND";
|
|
26
26
|
readonly BUSINESS_NOT_FOUND: "BUSINESS_NOT_FOUND";
|
|
27
27
|
readonly BUSINESS_NOT_MINTER: "BUSINESS_NOT_MINTER";
|
|
28
|
+
readonly MEMBERSHIP_NOT_FOUND: "MEMBERSHIP_NOT_FOUND";
|
|
29
|
+
readonly MEMBERSHIP_ALREADY_EXISTS: "MEMBERSHIP_ALREADY_EXISTS";
|
|
30
|
+
readonly MEMBERSHIP_LAST_OWNER: "MEMBERSHIP_LAST_OWNER";
|
|
28
31
|
readonly TRANSACTION_NOT_FOUND: "TRANSACTION_NOT_FOUND";
|
|
29
32
|
readonly TRANSACTION_SIGNATURE_INVALID: "TRANSACTION_SIGNATURE_INVALID";
|
|
30
33
|
readonly TRANSACTION_ALREADY_COMPLETED: "TRANSACTION_ALREADY_COMPLETED";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/errors/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/errors/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DnB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAErF;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAaf,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -31,6 +31,10 @@ export const CommonErrorCodes = {
|
|
|
31
31
|
// Business domain
|
|
32
32
|
BUSINESS_NOT_FOUND: 'BUSINESS_NOT_FOUND',
|
|
33
33
|
BUSINESS_NOT_MINTER: 'BUSINESS_NOT_MINTER',
|
|
34
|
+
// Membership domain
|
|
35
|
+
MEMBERSHIP_NOT_FOUND: 'MEMBERSHIP_NOT_FOUND',
|
|
36
|
+
MEMBERSHIP_ALREADY_EXISTS: 'MEMBERSHIP_ALREADY_EXISTS',
|
|
37
|
+
MEMBERSHIP_LAST_OWNER: 'MEMBERSHIP_LAST_OWNER',
|
|
34
38
|
// Transaction domain
|
|
35
39
|
TRANSACTION_NOT_FOUND: 'TRANSACTION_NOT_FOUND',
|
|
36
40
|
TRANSACTION_SIGNATURE_INVALID: 'TRANSACTION_SIGNATURE_INVALID',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../../../../src/shared-lib/errors/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,cAAc;IACd,cAAc,EAAE,gBAAgB;IAChC,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAE1C,eAAe;IACf,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,sBAAsB;IAE5C,gBAAgB;IAChB,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,kBAAkB;IACpC,8BAA8B,EAAE,gCAAgC;IAEhE,iBAAiB;IACjB,oBAAoB,EAAE,sBAAsB;IAE5C,kBAAkB;IAClB,kBAAkB,EAAE,oBAAoB;IAExC,kBAAkB;IAClB,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAE1C,qBAAqB;IACrB,qBAAqB,EAAE,uBAAuB;IAC9C,6BAA6B,EAAE,+BAA+B;IAC9D,6BAA6B,EAAE,+BAA+B;IAC9D,uBAAuB,EAAE,yBAAyB;IAClD,4BAA4B,EAAE,8BAA8B;IAC5D,8BAA8B,EAAE,gCAAgC;IAEhE,mBAAmB;IACnB,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAE1C,gBAAgB;IAChB,YAAY,EAAE,cAAc;IAC5B,sBAAsB,EAAE,wBAAwB;IAChD,uBAAuB,EAAE,yBAAyB;IAClD,oBAAoB,EAAE,sBAAsB;IAE5C,iCAAiC;IACjC,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAE1C,oBAAoB;IACpB,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,uBAAuB,EAAE,yBAAyB;IAClD,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAUX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;IAChC,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAC"}
|
|
1
|
+
{"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../../../../src/shared-lib/errors/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,cAAc;IACd,cAAc,EAAE,gBAAgB;IAChC,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAE1C,eAAe;IACf,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,sBAAsB;IAE5C,gBAAgB;IAChB,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,kBAAkB;IACpC,8BAA8B,EAAE,gCAAgC;IAEhE,iBAAiB;IACjB,oBAAoB,EAAE,sBAAsB;IAE5C,kBAAkB;IAClB,kBAAkB,EAAE,oBAAoB;IAExC,kBAAkB;IAClB,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAE1C,oBAAoB;IACpB,oBAAoB,EAAE,sBAAsB;IAC5C,yBAAyB,EAAE,2BAA2B;IACtD,qBAAqB,EAAE,uBAAuB;IAE9C,qBAAqB;IACrB,qBAAqB,EAAE,uBAAuB;IAC9C,6BAA6B,EAAE,+BAA+B;IAC9D,6BAA6B,EAAE,+BAA+B;IAC9D,uBAAuB,EAAE,yBAAyB;IAClD,4BAA4B,EAAE,8BAA8B;IAC5D,8BAA8B,EAAE,gCAAgC;IAEhE,mBAAmB;IACnB,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAE1C,gBAAgB;IAChB,YAAY,EAAE,cAAc;IAC5B,sBAAsB,EAAE,wBAAwB;IAChD,uBAAuB,EAAE,yBAAyB;IAClD,oBAAoB,EAAE,sBAAsB;IAE5C,iCAAiC;IACjC,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAE1C,oBAAoB;IACpB,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,uBAAuB,EAAE,yBAAyB;IAClD,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAUX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;IAChC,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth Context
|
|
3
|
+
*
|
|
4
|
+
* Context object for explicit selection of business/tenant.
|
|
5
|
+
* Used when users have multiple memberships and need to specify which one.
|
|
6
|
+
*
|
|
7
|
+
* MULTI-MEMBERSHIP HANDLING:
|
|
8
|
+
* - When user has single membership: auto-selected, context not required
|
|
9
|
+
* - When user has multiple memberships: must provide explicit ID
|
|
10
|
+
* - Prevents dangerous auto-selection of first membership
|
|
11
|
+
*
|
|
12
|
+
* Used in:
|
|
13
|
+
* - SessionAuthRequestDTO.context (authentication requests)
|
|
14
|
+
* - Auth provider interfaces (internal auth flows)
|
|
15
|
+
*/
|
|
16
|
+
export interface AuthContext {
|
|
17
|
+
/**
|
|
18
|
+
* Explicit business ID for multi-business users
|
|
19
|
+
* Required when user has multiple business memberships
|
|
20
|
+
*/
|
|
21
|
+
businessId?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Explicit tenant ID for multi-tenant authentication
|
|
24
|
+
* Required when user has multiple tenant memberships
|
|
25
|
+
*/
|
|
26
|
+
tenantId?: string;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=auth-request-context.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-request-context.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/auth-request-context.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,WAAW;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-request-context.interface.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/auth-request-context.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAE1D,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAE1D,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC"}
|