@venturialstd/tenant 0.0.1

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 (50) hide show
  1. package/README.md +974 -0
  2. package/dist/constants/tenant.constant.d.ts +28 -0
  3. package/dist/constants/tenant.constant.d.ts.map +1 -0
  4. package/dist/constants/tenant.constant.js +35 -0
  5. package/dist/constants/tenant.constant.js.map +1 -0
  6. package/dist/constants/tenant.settings.constant.d.ts +9 -0
  7. package/dist/constants/tenant.settings.constant.d.ts.map +1 -0
  8. package/dist/constants/tenant.settings.constant.js +12 -0
  9. package/dist/constants/tenant.settings.constant.js.map +1 -0
  10. package/dist/decorators/roles.decorator.d.ts +3 -0
  11. package/dist/decorators/roles.decorator.d.ts.map +1 -0
  12. package/dist/decorators/roles.decorator.js +7 -0
  13. package/dist/decorators/roles.decorator.js.map +1 -0
  14. package/dist/decorators/tenant.decorator.d.ts +4 -0
  15. package/dist/decorators/tenant.decorator.d.ts.map +1 -0
  16. package/dist/decorators/tenant.decorator.js +22 -0
  17. package/dist/decorators/tenant.decorator.js.map +1 -0
  18. package/dist/entities/tenant-user.entity.d.ts +16 -0
  19. package/dist/entities/tenant-user.entity.d.ts.map +1 -0
  20. package/dist/entities/tenant-user.entity.js +120 -0
  21. package/dist/entities/tenant-user.entity.js.map +1 -0
  22. package/dist/entities/tenant.entity.d.ts +16 -0
  23. package/dist/entities/tenant.entity.d.ts.map +1 -0
  24. package/dist/entities/tenant.entity.js +115 -0
  25. package/dist/entities/tenant.entity.js.map +1 -0
  26. package/dist/guards/tenant.guard.d.ts +16 -0
  27. package/dist/guards/tenant.guard.d.ts.map +1 -0
  28. package/dist/guards/tenant.guard.js +90 -0
  29. package/dist/guards/tenant.guard.js.map +1 -0
  30. package/dist/index.d.ts +12 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +28 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/services/tenant-user.service.d.ts +30 -0
  35. package/dist/services/tenant-user.service.d.ts.map +1 -0
  36. package/dist/services/tenant-user.service.js +245 -0
  37. package/dist/services/tenant-user.service.js.map +1 -0
  38. package/dist/services/tenant.service.d.ts +21 -0
  39. package/dist/services/tenant.service.d.ts.map +1 -0
  40. package/dist/services/tenant.service.js +157 -0
  41. package/dist/services/tenant.service.js.map +1 -0
  42. package/dist/settings/tenant.settings.d.ts +3 -0
  43. package/dist/settings/tenant.settings.d.ts.map +1 -0
  44. package/dist/settings/tenant.settings.js +85 -0
  45. package/dist/settings/tenant.settings.js.map +1 -0
  46. package/dist/tenant.module.d.ts +3 -0
  47. package/dist/tenant.module.d.ts.map +1 -0
  48. package/dist/tenant.module.js +28 -0
  49. package/dist/tenant.module.js.map +1 -0
  50. package/package.json +42 -0
@@ -0,0 +1,28 @@
1
+ export declare enum TENANT_PLAN {
2
+ FREE = "free",
3
+ STARTER = "starter",
4
+ PROFESSIONAL = "professional",
5
+ ENTERPRISE = "enterprise"
6
+ }
7
+ export declare enum TENANT_STATUS {
8
+ ACTIVE = "active",
9
+ INACTIVE = "inactive",
10
+ SUSPENDED = "suspended",
11
+ TRIAL = "trial"
12
+ }
13
+ export declare enum TENANT_USER_ROLE {
14
+ OWNER = "owner",
15
+ ADMIN = "admin",
16
+ MEMBER = "member",
17
+ VIEWER = "viewer"
18
+ }
19
+ export declare enum TENANT_USER_STATUS {
20
+ ACTIVE = "active",
21
+ INVITED = "invited",
22
+ SUSPENDED = "suspended"
23
+ }
24
+ export declare const TENANT_DEFAULTS: {
25
+ readonly TRIAL_DAYS: 14;
26
+ readonly PLAN: TENANT_PLAN.FREE;
27
+ };
28
+ //# sourceMappingURL=tenant.constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.constant.d.ts","sourceRoot":"","sources":["../../src/constants/tenant.constant.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;CAC1B;AAED,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AAED,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED,eAAO,MAAM,eAAe;;;CAGlB,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TENANT_DEFAULTS = exports.TENANT_USER_STATUS = exports.TENANT_USER_ROLE = exports.TENANT_STATUS = exports.TENANT_PLAN = void 0;
4
+ var TENANT_PLAN;
5
+ (function (TENANT_PLAN) {
6
+ TENANT_PLAN["FREE"] = "free";
7
+ TENANT_PLAN["STARTER"] = "starter";
8
+ TENANT_PLAN["PROFESSIONAL"] = "professional";
9
+ TENANT_PLAN["ENTERPRISE"] = "enterprise";
10
+ })(TENANT_PLAN || (exports.TENANT_PLAN = TENANT_PLAN = {}));
11
+ var TENANT_STATUS;
12
+ (function (TENANT_STATUS) {
13
+ TENANT_STATUS["ACTIVE"] = "active";
14
+ TENANT_STATUS["INACTIVE"] = "inactive";
15
+ TENANT_STATUS["SUSPENDED"] = "suspended";
16
+ TENANT_STATUS["TRIAL"] = "trial";
17
+ })(TENANT_STATUS || (exports.TENANT_STATUS = TENANT_STATUS = {}));
18
+ var TENANT_USER_ROLE;
19
+ (function (TENANT_USER_ROLE) {
20
+ TENANT_USER_ROLE["OWNER"] = "owner";
21
+ TENANT_USER_ROLE["ADMIN"] = "admin";
22
+ TENANT_USER_ROLE["MEMBER"] = "member";
23
+ TENANT_USER_ROLE["VIEWER"] = "viewer";
24
+ })(TENANT_USER_ROLE || (exports.TENANT_USER_ROLE = TENANT_USER_ROLE = {}));
25
+ var TENANT_USER_STATUS;
26
+ (function (TENANT_USER_STATUS) {
27
+ TENANT_USER_STATUS["ACTIVE"] = "active";
28
+ TENANT_USER_STATUS["INVITED"] = "invited";
29
+ TENANT_USER_STATUS["SUSPENDED"] = "suspended";
30
+ })(TENANT_USER_STATUS || (exports.TENANT_USER_STATUS = TENANT_USER_STATUS = {}));
31
+ exports.TENANT_DEFAULTS = {
32
+ TRIAL_DAYS: 14,
33
+ PLAN: TENANT_PLAN.FREE,
34
+ };
35
+ //# sourceMappingURL=tenant.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.constant.js","sourceRoot":"","sources":["../../src/constants/tenant.constant.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,4CAA6B,CAAA;IAC7B,wCAAyB,CAAA;AAC3B,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;AACjB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAED,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;AACnB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;IACnB,6CAAuB,CAAA;AACzB,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B;AAEY,QAAA,eAAe,GAAG;IAC7B,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,WAAW,CAAC,IAAI;CACd,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const TENANT_SETTING_KEYS: {
2
+ GENERAL_ENABLED: string;
3
+ GENERAL_MAX_TENANTS: string;
4
+ GENERAL_DEFAULT_PLAN: string;
5
+ GENERAL_TRIAL_DAYS: string;
6
+ FEATURES_CUSTOM_DOMAIN: string;
7
+ FEATURES_API_ACCESS: string;
8
+ };
9
+ //# sourceMappingURL=tenant.settings.constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.settings.constant.d.ts","sourceRoot":"","sources":["../../src/constants/tenant.settings.constant.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TENANT_SETTING_KEYS = void 0;
4
+ exports.TENANT_SETTING_KEYS = {
5
+ GENERAL_ENABLED: 'GLOBAL:TENANT:GENERAL:ENABLED',
6
+ GENERAL_MAX_TENANTS: 'GLOBAL:TENANT:GENERAL:MAX_TENANTS',
7
+ GENERAL_DEFAULT_PLAN: 'GLOBAL:TENANT:GENERAL:DEFAULT_PLAN',
8
+ GENERAL_TRIAL_DAYS: 'GLOBAL:TENANT:GENERAL:TRIAL_DAYS',
9
+ FEATURES_CUSTOM_DOMAIN: 'GLOBAL:TENANT:FEATURES:CUSTOM_DOMAIN',
10
+ FEATURES_API_ACCESS: 'GLOBAL:TENANT:FEATURES:API_ACCESS',
11
+ };
12
+ //# sourceMappingURL=tenant.settings.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.settings.constant.js","sourceRoot":"","sources":["../../src/constants/tenant.settings.constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG;IACjC,eAAe,EAAE,+BAA+B;IAChD,mBAAmB,EAAE,mCAAmC;IACxD,oBAAoB,EAAE,oCAAoC;IAC1D,kBAAkB,EAAE,kCAAkC;IACtD,sBAAsB,EAAE,sCAAsC;IAC9D,mBAAmB,EAAE,mCAAmC;CACzD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TENANT_USER_ROLE } from '../constants/tenant.constant';
2
+ export declare const Roles: (...roles: TENANT_USER_ROLE[]) => import("@nestjs/common").CustomDecorator<string>;
3
+ //# sourceMappingURL=roles.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/roles.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAahE,eAAO,MAAM,KAAK,GAAI,GAAG,OAAO,gBAAgB,EAAE,qDAAgC,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Roles = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const Roles = (...roles) => (0, common_1.SetMetadata)('roles', roles);
6
+ exports.Roles = Roles;
7
+ //# sourceMappingURL=roles.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.decorator.js","sourceRoot":"","sources":["../../src/decorators/roles.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAetC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE,CAAC,IAAA,oBAAW,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAAtE,QAAA,KAAK,SAAiE"}
@@ -0,0 +1,4 @@
1
+ export declare const TenantId: (...dataOrPipes: unknown[]) => ParameterDecorator;
2
+ export declare const UserId: (...dataOrPipes: unknown[]) => ParameterDecorator;
3
+ export declare const TenantContext: (...dataOrPipes: unknown[]) => ParameterDecorator;
4
+ //# sourceMappingURL=tenant.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/tenant.decorator.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,QAAQ,mDAGnB,CAAC;AAWH,eAAO,MAAM,MAAM,mDAGjB,CAAC;AAWH,eAAO,MAAM,aAAa,mDAQxB,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TenantContext = exports.UserId = exports.TenantId = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.TenantId = (0, common_1.createParamDecorator)((data, ctx) => {
6
+ const request = ctx.switchToHttp().getRequest();
7
+ return request.tenantId || request.headers['x-tenant-id'];
8
+ });
9
+ exports.UserId = (0, common_1.createParamDecorator)((data, ctx) => {
10
+ const request = ctx.switchToHttp().getRequest();
11
+ return request.user?.id || request.userId;
12
+ });
13
+ exports.TenantContext = (0, common_1.createParamDecorator)((data, ctx) => {
14
+ const request = ctx.switchToHttp().getRequest();
15
+ return {
16
+ tenantId: request.tenantId || request.headers['x-tenant-id'],
17
+ userId: request.user?.id || request.userId,
18
+ role: request.tenantRole,
19
+ user: request.user,
20
+ };
21
+ });
22
+ //# sourceMappingURL=tenant.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.decorator.js","sourceRoot":"","sources":["../../src/decorators/tenant.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AAW3D,QAAA,QAAQ,GAAG,IAAA,6BAAoB,EAAC,CAAC,IAAa,EAAE,GAAqB,EAAU,EAAE;IAC5F,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAChD,OAAO,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAWU,QAAA,MAAM,GAAG,IAAA,6BAAoB,EAAC,CAAC,IAAa,EAAE,GAAqB,EAAU,EAAE;IAC1F,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAChD,OAAO,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;AAC5C,CAAC,CAAC,CAAC;AAWU,QAAA,aAAa,GAAG,IAAA,6BAAoB,EAAC,CAAC,IAAa,EAAE,GAAqB,EAAE,EAAE;IACzF,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAChD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAC5D,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM;QAC1C,IAAI,EAAE,OAAO,CAAC,UAAU;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { TENANT_USER_ROLE, TENANT_USER_STATUS } from '../constants/tenant.constant';
2
+ export declare class TenantUser {
3
+ id: string;
4
+ tenantId: string;
5
+ userId: string;
6
+ role: TENANT_USER_ROLE;
7
+ status: TENANT_USER_STATUS;
8
+ isPrimary: boolean;
9
+ invitedBy: string;
10
+ invitedAt: Date;
11
+ joinedAt: Date;
12
+ permissions: Record<string, unknown>;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
16
+ //# sourceMappingURL=tenant-user.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-user.entity.d.ts","sourceRoot":"","sources":["../../src/entities/tenant-user.entity.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEpF,qBAEa,UAAU;IAErB,EAAE,EAAE,MAAM,CAAC;IAMX,QAAQ,EAAE,MAAM,CAAC;IAMjB,MAAM,EAAE,MAAM,CAAC;IASf,IAAI,EAAE,gBAAgB,CAAC;IASvB,MAAM,EAAE,kBAAkB,CAAC;IAI3B,SAAS,EAAE,OAAO,CAAC;IAKnB,SAAS,EAAE,MAAM,CAAC;IAKlB,SAAS,EAAE,IAAI,CAAC;IAKhB,QAAQ,EAAE,IAAI,CAAC;IAKf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAQrC,SAAS,EAAE,IAAI,CAAC;IAQhB,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -0,0 +1,120 @@
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.TenantUser = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const typeorm_1 = require("typeorm");
15
+ const tenant_constant_1 = require("../constants/tenant.constant");
16
+ let TenantUser = class TenantUser {
17
+ id;
18
+ tenantId;
19
+ userId;
20
+ role;
21
+ status;
22
+ isPrimary;
23
+ invitedBy;
24
+ invitedAt;
25
+ joinedAt;
26
+ permissions;
27
+ createdAt;
28
+ updatedAt;
29
+ };
30
+ exports.TenantUser = TenantUser;
31
+ __decorate([
32
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
33
+ __metadata("design:type", String)
34
+ ], TenantUser.prototype, "id", void 0);
35
+ __decorate([
36
+ (0, class_validator_1.IsString)(),
37
+ (0, class_validator_1.IsNotEmpty)(),
38
+ (0, typeorm_1.Column)(),
39
+ (0, typeorm_1.Index)(),
40
+ __metadata("design:type", String)
41
+ ], TenantUser.prototype, "tenantId", void 0);
42
+ __decorate([
43
+ (0, class_validator_1.IsString)(),
44
+ (0, class_validator_1.IsNotEmpty)(),
45
+ (0, typeorm_1.Column)(),
46
+ (0, typeorm_1.Index)(),
47
+ __metadata("design:type", String)
48
+ ], TenantUser.prototype, "userId", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsString)(),
51
+ (0, class_validator_1.IsNotEmpty)(),
52
+ (0, typeorm_1.Column)({
53
+ type: 'enum',
54
+ enum: tenant_constant_1.TENANT_USER_ROLE,
55
+ default: tenant_constant_1.TENANT_USER_ROLE.MEMBER,
56
+ }),
57
+ __metadata("design:type", String)
58
+ ], TenantUser.prototype, "role", void 0);
59
+ __decorate([
60
+ (0, class_validator_1.IsString)(),
61
+ (0, class_validator_1.IsNotEmpty)(),
62
+ (0, typeorm_1.Column)({
63
+ type: 'enum',
64
+ enum: tenant_constant_1.TENANT_USER_STATUS,
65
+ default: tenant_constant_1.TENANT_USER_STATUS.ACTIVE,
66
+ }),
67
+ __metadata("design:type", String)
68
+ ], TenantUser.prototype, "status", void 0);
69
+ __decorate([
70
+ (0, class_validator_1.IsBoolean)(),
71
+ (0, typeorm_1.Column)({ default: false }),
72
+ __metadata("design:type", Boolean)
73
+ ], TenantUser.prototype, "isPrimary", void 0);
74
+ __decorate([
75
+ (0, class_validator_1.IsString)(),
76
+ (0, class_validator_1.IsOptional)(),
77
+ (0, typeorm_1.Column)({ nullable: true }),
78
+ __metadata("design:type", String)
79
+ ], TenantUser.prototype, "invitedBy", void 0);
80
+ __decorate([
81
+ (0, class_validator_1.IsString)(),
82
+ (0, class_validator_1.IsOptional)(),
83
+ (0, typeorm_1.Column)({ type: 'timestamptz', nullable: true }),
84
+ __metadata("design:type", Date)
85
+ ], TenantUser.prototype, "invitedAt", void 0);
86
+ __decorate([
87
+ (0, class_validator_1.IsString)(),
88
+ (0, class_validator_1.IsOptional)(),
89
+ (0, typeorm_1.Column)({ type: 'timestamptz', nullable: true }),
90
+ __metadata("design:type", Date)
91
+ ], TenantUser.prototype, "joinedAt", void 0);
92
+ __decorate([
93
+ (0, class_validator_1.IsString)(),
94
+ (0, class_validator_1.IsOptional)(),
95
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
96
+ __metadata("design:type", Object)
97
+ ], TenantUser.prototype, "permissions", void 0);
98
+ __decorate([
99
+ (0, typeorm_1.CreateDateColumn)({
100
+ name: 'createdAt',
101
+ nullable: false,
102
+ type: 'timestamptz',
103
+ default: () => 'CURRENT_TIMESTAMP',
104
+ }),
105
+ __metadata("design:type", Date)
106
+ ], TenantUser.prototype, "createdAt", void 0);
107
+ __decorate([
108
+ (0, typeorm_1.UpdateDateColumn)({
109
+ name: 'updatedAt',
110
+ nullable: false,
111
+ type: 'timestamptz',
112
+ default: () => 'CURRENT_TIMESTAMP',
113
+ }),
114
+ __metadata("design:type", Date)
115
+ ], TenantUser.prototype, "updatedAt", void 0);
116
+ exports.TenantUser = TenantUser = __decorate([
117
+ (0, typeorm_1.Entity)('tenant_user'),
118
+ (0, typeorm_1.Index)(['tenantId', 'userId'], { unique: true })
119
+ ], TenantUser);
120
+ //# sourceMappingURL=tenant-user.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-user.entity.js","sourceRoot":"","sources":["../../src/entities/tenant-user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA8E;AAC9E,qCAOiB;AAEjB,kEAAoF;AAI7E,IAAM,UAAU,GAAhB,MAAM,UAAU;IAErB,EAAE,CAAS;IAMX,QAAQ,CAAS;IAMjB,MAAM,CAAS;IASf,IAAI,CAAmB;IASvB,MAAM,CAAqB;IAI3B,SAAS,CAAU;IAKnB,SAAS,CAAS;IAKlB,SAAS,CAAO;IAKhB,QAAQ,CAAO;IAKf,WAAW,CAA0B;IAQrC,SAAS,CAAO;IAQhB,SAAS,CAAO;CACjB,CAAA;AAzEY,gCAAU;AAErB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;sCACpB;AAMX;IAJC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,GAAE;;4CACS;AAMjB;IAJC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,GAAE;;0CACO;AASf;IAPC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,kCAAgB;QACtB,OAAO,EAAE,kCAAgB,CAAC,MAAM;KACjC,CAAC;;wCACqB;AASvB;IAPC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,oCAAkB;QACxB,OAAO,EAAE,oCAAkB,CAAC,MAAM;KACnC,CAAC;;0CACyB;AAI3B;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;6CACR;AAKnB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACT;AAKlB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACrC,IAAI;6CAAC;AAKhB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACtC,IAAI;4CAAC;AAKf;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACL;AAQrC;IANC,IAAA,0BAAgB,EAAC;QAChB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB;KACnC,CAAC;8BACS,IAAI;6CAAC;AAQhB;IANC,IAAA,0BAAgB,EAAC;QAChB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB;KACnC,CAAC;8BACS,IAAI;6CAAC;qBAxEL,UAAU;IAFtB,IAAA,gBAAM,EAAC,aAAa,CAAC;IACrB,IAAA,eAAK,EAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACnC,UAAU,CAyEtB"}
@@ -0,0 +1,16 @@
1
+ export declare class Tenant {
2
+ id: string;
3
+ name: string;
4
+ slug: string;
5
+ domain: string;
6
+ description: string;
7
+ isActive: boolean;
8
+ settings: Record<string, unknown>;
9
+ ownerId: string;
10
+ plan: string;
11
+ trialEndsAt: Date;
12
+ subscriptionEndsAt: Date;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
16
+ //# sourceMappingURL=tenant.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.entity.d.ts","sourceRoot":"","sources":["../../src/entities/tenant.entity.ts"],"names":[],"mappings":"AASA,qBACa,MAAM;IAEjB,EAAE,EAAE,MAAM,CAAC;IAKX,IAAI,EAAE,MAAM,CAAC;IAKb,IAAI,EAAE,MAAM,CAAC;IAKb,MAAM,EAAE,MAAM,CAAC;IAKf,WAAW,EAAE,MAAM,CAAC;IAIpB,QAAQ,EAAE,OAAO,CAAC;IAKlB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAKlC,OAAO,EAAE,MAAM,CAAC;IAKhB,IAAI,EAAE,MAAM,CAAC;IAKb,WAAW,EAAE,IAAI,CAAC;IAKlB,kBAAkB,EAAE,IAAI,CAAC;IAQzB,SAAS,EAAE,IAAI,CAAC;IAQhB,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -0,0 +1,115 @@
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.Tenant = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const typeorm_1 = require("typeorm");
15
+ let Tenant = class Tenant {
16
+ id;
17
+ name;
18
+ slug;
19
+ domain;
20
+ description;
21
+ isActive;
22
+ settings;
23
+ ownerId;
24
+ plan;
25
+ trialEndsAt;
26
+ subscriptionEndsAt;
27
+ createdAt;
28
+ updatedAt;
29
+ };
30
+ exports.Tenant = Tenant;
31
+ __decorate([
32
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
33
+ __metadata("design:type", String)
34
+ ], Tenant.prototype, "id", void 0);
35
+ __decorate([
36
+ (0, class_validator_1.IsString)(),
37
+ (0, class_validator_1.IsNotEmpty)(),
38
+ (0, typeorm_1.Column)({ unique: true }),
39
+ __metadata("design:type", String)
40
+ ], Tenant.prototype, "name", void 0);
41
+ __decorate([
42
+ (0, class_validator_1.IsString)(),
43
+ (0, class_validator_1.IsNotEmpty)(),
44
+ (0, typeorm_1.Column)({ unique: true }),
45
+ __metadata("design:type", String)
46
+ ], Tenant.prototype, "slug", void 0);
47
+ __decorate([
48
+ (0, class_validator_1.IsString)(),
49
+ (0, class_validator_1.IsOptional)(),
50
+ (0, typeorm_1.Column)({ nullable: true }),
51
+ __metadata("design:type", String)
52
+ ], Tenant.prototype, "domain", void 0);
53
+ __decorate([
54
+ (0, class_validator_1.IsString)(),
55
+ (0, class_validator_1.IsOptional)(),
56
+ (0, typeorm_1.Column)({ nullable: true }),
57
+ __metadata("design:type", String)
58
+ ], Tenant.prototype, "description", void 0);
59
+ __decorate([
60
+ (0, class_validator_1.IsBoolean)(),
61
+ (0, typeorm_1.Column)({ default: true }),
62
+ __metadata("design:type", Boolean)
63
+ ], Tenant.prototype, "isActive", void 0);
64
+ __decorate([
65
+ (0, class_validator_1.IsString)(),
66
+ (0, class_validator_1.IsOptional)(),
67
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
68
+ __metadata("design:type", Object)
69
+ ], Tenant.prototype, "settings", void 0);
70
+ __decorate([
71
+ (0, class_validator_1.IsString)(),
72
+ (0, class_validator_1.IsOptional)(),
73
+ (0, typeorm_1.Column)({ nullable: true }),
74
+ __metadata("design:type", String)
75
+ ], Tenant.prototype, "ownerId", void 0);
76
+ __decorate([
77
+ (0, class_validator_1.IsString)(),
78
+ (0, class_validator_1.IsOptional)(),
79
+ (0, typeorm_1.Column)({ nullable: true }),
80
+ __metadata("design:type", String)
81
+ ], Tenant.prototype, "plan", void 0);
82
+ __decorate([
83
+ (0, class_validator_1.IsString)(),
84
+ (0, class_validator_1.IsOptional)(),
85
+ (0, typeorm_1.Column)({ type: 'timestamptz', nullable: true }),
86
+ __metadata("design:type", Date)
87
+ ], Tenant.prototype, "trialEndsAt", void 0);
88
+ __decorate([
89
+ (0, class_validator_1.IsString)(),
90
+ (0, class_validator_1.IsOptional)(),
91
+ (0, typeorm_1.Column)({ type: 'timestamptz', nullable: true }),
92
+ __metadata("design:type", Date)
93
+ ], Tenant.prototype, "subscriptionEndsAt", void 0);
94
+ __decorate([
95
+ (0, typeorm_1.CreateDateColumn)({
96
+ name: 'createdAt',
97
+ nullable: false,
98
+ type: 'timestamptz',
99
+ default: () => 'CURRENT_TIMESTAMP',
100
+ }),
101
+ __metadata("design:type", Date)
102
+ ], Tenant.prototype, "createdAt", void 0);
103
+ __decorate([
104
+ (0, typeorm_1.UpdateDateColumn)({
105
+ name: 'updatedAt',
106
+ nullable: false,
107
+ type: 'timestamptz',
108
+ default: () => 'CURRENT_TIMESTAMP',
109
+ }),
110
+ __metadata("design:type", Date)
111
+ ], Tenant.prototype, "updatedAt", void 0);
112
+ exports.Tenant = Tenant = __decorate([
113
+ (0, typeorm_1.Entity)('tenant')
114
+ ], Tenant);
115
+ //# sourceMappingURL=tenant.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.entity.js","sourceRoot":"","sources":["../../src/entities/tenant.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA8E;AAC9E,qCAMiB;AAGV,IAAM,MAAM,GAAZ,MAAM,MAAM;IAEjB,EAAE,CAAS;IAKX,IAAI,CAAS;IAKb,IAAI,CAAS;IAKb,MAAM,CAAS;IAKf,WAAW,CAAS;IAIpB,QAAQ,CAAU;IAKlB,QAAQ,CAA0B;IAKlC,OAAO,CAAS;IAKhB,IAAI,CAAS;IAKb,WAAW,CAAO;IAKlB,kBAAkB,CAAO;IAQzB,SAAS,CAAO;IAQhB,SAAS,CAAO;CACjB,CAAA;AApEY,wBAAM;AAEjB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;kCACpB;AAKX;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;oCACZ;AAKb;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;oCACZ;AAKb;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACZ;AAKf;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACP;AAIpB;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;wCACR;AAKlB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACR;AAKlC;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACX;AAKhB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oCACd;AAKb;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACnC,IAAI;2CAAC;AAKlB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAC5B,IAAI;kDAAC;AAQzB;IANC,IAAA,0BAAgB,EAAC;QAChB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB;KACnC,CAAC;8BACS,IAAI;yCAAC;AAQhB;IANC,IAAA,0BAAgB,EAAC;QAChB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB;KACnC,CAAC;8BACS,IAAI;yCAAC;iBAnEL,MAAM;IADlB,IAAA,gBAAM,EAAC,QAAQ,CAAC;GACJ,MAAM,CAoElB"}
@@ -0,0 +1,16 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ import { TenantUserService } from '../services/tenant-user.service';
4
+ export declare class TenantGuard implements CanActivate {
5
+ private readonly tenantUserService;
6
+ private readonly reflector;
7
+ constructor(tenantUserService: TenantUserService, reflector: Reflector);
8
+ canActivate(context: ExecutionContext): Promise<boolean>;
9
+ }
10
+ export declare class TenantRoleGuard implements CanActivate {
11
+ private readonly tenantUserService;
12
+ private readonly reflector;
13
+ constructor(tenantUserService: TenantUserService, reflector: Reflector);
14
+ canActivate(context: ExecutionContext): Promise<boolean>;
15
+ }
16
+ //# sourceMappingURL=tenant.guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.guard.d.ts","sourceRoot":"","sources":["../../src/guards/tenant.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAapE,qBACa,WAAY,YAAW,WAAW;IAE3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS;IAGjC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAmC/D;AAaD,qBACa,eAAgB,YAAW,WAAW;IAE/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS;IAGjC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAkC/D"}
@@ -0,0 +1,90 @@
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.TenantRoleGuard = exports.TenantGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ const tenant_user_service_1 = require("../services/tenant-user.service");
16
+ let TenantGuard = class TenantGuard {
17
+ tenantUserService;
18
+ reflector;
19
+ constructor(tenantUserService, reflector) {
20
+ this.tenantUserService = tenantUserService;
21
+ this.reflector = reflector;
22
+ }
23
+ async canActivate(context) {
24
+ const request = context.switchToHttp().getRequest();
25
+ const tenantId = request.tenantId ||
26
+ request.headers['x-tenant-id'] ||
27
+ request.params.tenantId ||
28
+ request.query.tenantId;
29
+ if (!tenantId) {
30
+ throw new common_1.UnauthorizedException('Tenant ID is required');
31
+ }
32
+ const userId = request.user?.id || request.userId;
33
+ if (!userId) {
34
+ throw new common_1.UnauthorizedException('User authentication is required');
35
+ }
36
+ const hasAccess = await this.tenantUserService.hasAccess(tenantId, userId);
37
+ if (!hasAccess) {
38
+ throw new common_1.ForbiddenException('You do not have access to this tenant');
39
+ }
40
+ const role = await this.tenantUserService.getUserRole(tenantId, userId);
41
+ request.tenantId = tenantId;
42
+ request.tenantRole = role;
43
+ return true;
44
+ }
45
+ };
46
+ exports.TenantGuard = TenantGuard;
47
+ exports.TenantGuard = TenantGuard = __decorate([
48
+ (0, common_1.Injectable)(),
49
+ __metadata("design:paramtypes", [tenant_user_service_1.TenantUserService,
50
+ core_1.Reflector])
51
+ ], TenantGuard);
52
+ let TenantRoleGuard = class TenantRoleGuard {
53
+ tenantUserService;
54
+ reflector;
55
+ constructor(tenantUserService, reflector) {
56
+ this.tenantUserService = tenantUserService;
57
+ this.reflector = reflector;
58
+ }
59
+ async canActivate(context) {
60
+ const requiredRoles = this.reflector.getAllAndOverride('roles', [
61
+ context.getHandler(),
62
+ context.getClass(),
63
+ ]);
64
+ if (!requiredRoles || requiredRoles.length === 0) {
65
+ return true;
66
+ }
67
+ const request = context.switchToHttp().getRequest();
68
+ const tenantId = request.tenantId;
69
+ const userId = request.user?.id || request.userId;
70
+ if (!tenantId || !userId) {
71
+ throw new common_1.UnauthorizedException('Tenant and user context required');
72
+ }
73
+ const userRole = await this.tenantUserService.getUserRole(tenantId, userId);
74
+ if (!userRole) {
75
+ throw new common_1.ForbiddenException('User is not a member of this tenant');
76
+ }
77
+ const hasRole = requiredRoles.includes(userRole);
78
+ if (!hasRole) {
79
+ throw new common_1.ForbiddenException(`This action requires one of the following roles: ${requiredRoles.join(', ')}`);
80
+ }
81
+ return true;
82
+ }
83
+ };
84
+ exports.TenantRoleGuard = TenantRoleGuard;
85
+ exports.TenantRoleGuard = TenantRoleGuard = __decorate([
86
+ (0, common_1.Injectable)(),
87
+ __metadata("design:paramtypes", [tenant_user_service_1.TenantUserService,
88
+ core_1.Reflector])
89
+ ], TenantRoleGuard);
90
+ //# sourceMappingURL=tenant.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.guard.js","sourceRoot":"","sources":["../../src/guards/tenant.guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export * from './constants/tenant.constant';
2
+ export * from './constants/tenant.settings.constant';
3
+ export * from './decorators/roles.decorator';
4
+ export * from './decorators/tenant.decorator';
5
+ export * from './entities/tenant.entity';
6
+ export * from './entities/tenant-user.entity';
7
+ export * from './guards/tenant.guard';
8
+ export * from './services/tenant.service';
9
+ export * from './services/tenant-user.service';
10
+ export * from './settings/tenant.settings';
11
+ export * from './tenant.module';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./constants/tenant.constant"), exports);
18
+ __exportStar(require("./constants/tenant.settings.constant"), exports);
19
+ __exportStar(require("./decorators/roles.decorator"), exports);
20
+ __exportStar(require("./decorators/tenant.decorator"), exports);
21
+ __exportStar(require("./entities/tenant.entity"), exports);
22
+ __exportStar(require("./entities/tenant-user.entity"), exports);
23
+ __exportStar(require("./guards/tenant.guard"), exports);
24
+ __exportStar(require("./services/tenant.service"), exports);
25
+ __exportStar(require("./services/tenant-user.service"), exports);
26
+ __exportStar(require("./settings/tenant.settings"), exports);
27
+ __exportStar(require("./tenant.module"), exports);
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,uEAAqD;AACrD,+DAA6C;AAC7C,gEAA8C;AAC9C,2DAAyC;AACzC,gEAA8C;AAC9C,wDAAsC;AACtC,4DAA0C;AAC1C,iEAA+C;AAC/C,6DAA2C;AAC3C,kDAAgC"}