@sendhome/common 1.0.151 → 1.0.153
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/build/events/publishers/user-created-event.d.ts +6 -3
- package/build/events/publishers/user-updated-event.d.ts +6 -3
- package/build/events/types/account-type.d.ts +5 -0
- package/build/events/types/account-type.js +9 -0
- package/build/events/types/admin-levels.d.ts +5 -0
- package/build/events/types/admin-levels.js +9 -0
- package/build/events/types/provider-levels.d.ts +5 -0
- package/build/events/types/provider-levels.js +9 -0
- package/build/index.d.ts +94 -92
- package/build/index.js +3 -1
- package/build/middlewares/require-auth-old.d.ts +14 -0
- package/build/middlewares/require-auth-old.js +29 -0
- package/build/middlewares/require-auth.d.ts +1 -1
- package/build/middlewares/require-auth.js +41 -23
- package/package.json +2 -1
- package/build/events/types/user-roles.d.ts +0 -6
- package/build/events/types/user-roles.js +0 -10
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Subjects } from "../subjects/subjects";
|
|
2
2
|
import { UserStatus } from "../types/user-status";
|
|
3
|
-
import {
|
|
3
|
+
import { AccountType } from "../types/account-type";
|
|
4
|
+
import { AdminLevels } from "../types/admin-levels";
|
|
5
|
+
import { ProviderLevels } from "../types/provider-levels";
|
|
4
6
|
import { SendCountry } from "../types/send-country";
|
|
5
7
|
export interface UserCreatedEvent {
|
|
6
8
|
subject: Subjects.UserCreated;
|
|
@@ -20,8 +22,9 @@ export interface UserCreatedEvent {
|
|
|
20
22
|
otp_expiration: Date;
|
|
21
23
|
reset_token: string;
|
|
22
24
|
reset_token_expiration: Date;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
account_type: AccountType;
|
|
26
|
+
provider_level: ProviderLevels;
|
|
27
|
+
admin_level: AdminLevels;
|
|
25
28
|
status: UserStatus;
|
|
26
29
|
referred_by: number;
|
|
27
30
|
referred_user_coupon_awarded: boolean;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Subjects } from "../subjects/subjects";
|
|
2
2
|
import { UserStatus } from "../types/user-status";
|
|
3
|
-
import {
|
|
3
|
+
import { AccountType } from "../types/account-type";
|
|
4
|
+
import { AdminLevels } from "../types/admin-levels";
|
|
5
|
+
import { ProviderLevels } from "../types/provider-levels";
|
|
4
6
|
import { SendCountry } from "../types/send-country";
|
|
5
7
|
export interface UserUpdatedEvent {
|
|
6
8
|
subject: Subjects.UserUpdated;
|
|
@@ -20,8 +22,9 @@ export interface UserUpdatedEvent {
|
|
|
20
22
|
otp_expiration: Date;
|
|
21
23
|
reset_token: string;
|
|
22
24
|
reset_token_expiration: Date;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
account_type: AccountType;
|
|
26
|
+
provider_level: ProviderLevels;
|
|
27
|
+
admin_level: AdminLevels;
|
|
25
28
|
status: UserStatus;
|
|
26
29
|
referred_by: number;
|
|
27
30
|
referred_user_coupon_awarded: boolean;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountType = void 0;
|
|
4
|
+
var AccountType;
|
|
5
|
+
(function (AccountType) {
|
|
6
|
+
AccountType["Client"] = "client";
|
|
7
|
+
AccountType["Admin"] = "admin";
|
|
8
|
+
AccountType["Provider"] = "provider";
|
|
9
|
+
})(AccountType = exports.AccountType || (exports.AccountType = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AdminLevels = void 0;
|
|
4
|
+
var AdminLevels;
|
|
5
|
+
(function (AdminLevels) {
|
|
6
|
+
AdminLevels["Admin"] = "admin";
|
|
7
|
+
AdminLevels["Supervisor"] = "supervisor";
|
|
8
|
+
AdminLevels["SupportAgent"] = "supportAgent";
|
|
9
|
+
})(AdminLevels = exports.AdminLevels || (exports.AdminLevels = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProviderLevels = void 0;
|
|
4
|
+
var ProviderLevels;
|
|
5
|
+
(function (ProviderLevels) {
|
|
6
|
+
ProviderLevels["Seller"] = "seller";
|
|
7
|
+
ProviderLevels["Teller"] = "teller";
|
|
8
|
+
ProviderLevels["Manager"] = "manager";
|
|
9
|
+
})(ProviderLevels = exports.ProviderLevels || (exports.ProviderLevels = {}));
|
package/build/index.d.ts
CHANGED
|
@@ -1,92 +1,94 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
9
|
-
export * from
|
|
10
|
-
export * from
|
|
11
|
-
export * from
|
|
12
|
-
export * from
|
|
13
|
-
export * from
|
|
14
|
-
export * from
|
|
15
|
-
export * from
|
|
16
|
-
export * from
|
|
17
|
-
export * from
|
|
18
|
-
export * from
|
|
19
|
-
export * from
|
|
20
|
-
export * from
|
|
21
|
-
export * from
|
|
22
|
-
export * from
|
|
23
|
-
export * from
|
|
24
|
-
export * from
|
|
25
|
-
export * from
|
|
26
|
-
export * from
|
|
27
|
-
export * from
|
|
28
|
-
export * from
|
|
29
|
-
export * from
|
|
30
|
-
export * from
|
|
31
|
-
export * from
|
|
32
|
-
export * from
|
|
33
|
-
export * from
|
|
34
|
-
export * from
|
|
35
|
-
export * from
|
|
36
|
-
export * from
|
|
37
|
-
export * from
|
|
38
|
-
export * from
|
|
39
|
-
export * from
|
|
40
|
-
export * from
|
|
41
|
-
export * from
|
|
42
|
-
export * from
|
|
43
|
-
export * from
|
|
44
|
-
export * from
|
|
45
|
-
export * from
|
|
46
|
-
export * from
|
|
47
|
-
export * from
|
|
48
|
-
export * from
|
|
49
|
-
export * from
|
|
50
|
-
export * from
|
|
51
|
-
export * from
|
|
52
|
-
export * from
|
|
53
|
-
export * from
|
|
54
|
-
export * from
|
|
55
|
-
export * from
|
|
56
|
-
export * from
|
|
57
|
-
export * from
|
|
58
|
-
export * from
|
|
59
|
-
export * from
|
|
60
|
-
export * from
|
|
61
|
-
export * from
|
|
62
|
-
export * from
|
|
63
|
-
export * from
|
|
64
|
-
export * from
|
|
65
|
-
export * from
|
|
66
|
-
export * from
|
|
67
|
-
export * from
|
|
68
|
-
export * from
|
|
69
|
-
export * from
|
|
70
|
-
export * from
|
|
71
|
-
export * from
|
|
72
|
-
export * from
|
|
73
|
-
export * from
|
|
74
|
-
export * from
|
|
75
|
-
export * from
|
|
76
|
-
export * from
|
|
77
|
-
export * from
|
|
78
|
-
export * from
|
|
79
|
-
export * from
|
|
80
|
-
export * from
|
|
81
|
-
export * from
|
|
82
|
-
export * from
|
|
83
|
-
export * from
|
|
84
|
-
export * from
|
|
85
|
-
export * from
|
|
86
|
-
export * from
|
|
87
|
-
export * from
|
|
88
|
-
export * from
|
|
89
|
-
export * from
|
|
90
|
-
export * from
|
|
91
|
-
export * from
|
|
92
|
-
export * from
|
|
1
|
+
export * from "./errors/bad-request-error";
|
|
2
|
+
export * from "./errors/custom-error";
|
|
3
|
+
export * from "./errors/database-connection-error";
|
|
4
|
+
export * from "./errors/not-authorized-error";
|
|
5
|
+
export * from "./errors/not-found-error";
|
|
6
|
+
export * from "./errors/request-validation-error";
|
|
7
|
+
export * from "./middlewares/current-user";
|
|
8
|
+
export * from "./middlewares/error-handler";
|
|
9
|
+
export * from "./middlewares/require-auth";
|
|
10
|
+
export * from "./middlewares/validate-request";
|
|
11
|
+
export * from "./events/base-listener";
|
|
12
|
+
export * from "./events/base-publisher";
|
|
13
|
+
export * from "./events/subjects/subjects";
|
|
14
|
+
export * from "./events/publishers/bonus-awarded-event";
|
|
15
|
+
export * from "./events/publishers/branch-created-event";
|
|
16
|
+
export * from "./events/publishers/branch-updated-event";
|
|
17
|
+
export * from "./events/publishers/brand-created-event";
|
|
18
|
+
export * from "./events/publishers/brand-updated-event";
|
|
19
|
+
export * from "./events/publishers/cart-created-event";
|
|
20
|
+
export * from "./events/publishers/cart-deleted-event";
|
|
21
|
+
export * from "./events/publishers/cart-expiration-event";
|
|
22
|
+
export * from "./events/publishers/cart-updated-event";
|
|
23
|
+
export * from "./events/publishers/cart-item-created-event";
|
|
24
|
+
export * from "./events/publishers/cart-item-deleted-event";
|
|
25
|
+
export * from "./events/publishers/cart-item-updated-event";
|
|
26
|
+
export * from "./events/publishers/category-created-event";
|
|
27
|
+
export * from "./events/publishers/category-updated-event";
|
|
28
|
+
export * from "./events/publishers/collection-created-event";
|
|
29
|
+
export * from "./events/publishers/collection-updated-event";
|
|
30
|
+
export * from "./events/publishers/company-created-event";
|
|
31
|
+
export * from "./events/publishers/company-updated-event";
|
|
32
|
+
export * from "./events/publishers/coupon-created-event";
|
|
33
|
+
export * from "./events/publishers/coupon-updated-event";
|
|
34
|
+
export * from "./events/publishers/coupon-expired-event";
|
|
35
|
+
export * from "./events/publishers/delivery-created-event";
|
|
36
|
+
export * from "./events/publishers/delivery-updated-event";
|
|
37
|
+
export * from "./events/publishers/faq-created-event";
|
|
38
|
+
export * from "./events/publishers/faq-updated-event";
|
|
39
|
+
export * from "./events/publishers/location-created-event";
|
|
40
|
+
export * from "./events/publishers/location-updated-event";
|
|
41
|
+
export * from "./events/publishers/module-created-event";
|
|
42
|
+
export * from "./events/publishers/module-updated-event";
|
|
43
|
+
export * from "./events/publishers/order-cancellation-created-event";
|
|
44
|
+
export * from "./events/publishers/order-cancellation-updated-event";
|
|
45
|
+
export * from "./events/publishers/order-collected-event";
|
|
46
|
+
export * from "./events/publishers/order-created-event";
|
|
47
|
+
export * from "./events/publishers/order-expiration-completed";
|
|
48
|
+
export * from "./events/publishers/order-expiration-event";
|
|
49
|
+
export * from "./events/publishers/order-expiration-warning";
|
|
50
|
+
export * from "./events/publishers/order-updated-event";
|
|
51
|
+
export * from "./events/publishers/payment-created-event";
|
|
52
|
+
export * from "./events/publishers/payment-updated-event";
|
|
53
|
+
export * from "./events/publishers/order-updated-event";
|
|
54
|
+
export * from "./events/publishers/product-created-event";
|
|
55
|
+
export * from "./events/publishers/product-updated-event";
|
|
56
|
+
export * from "./events/publishers/productItem-created-event";
|
|
57
|
+
export * from "./events/publishers/productItem-updated-event";
|
|
58
|
+
export * from "./events/publishers/recipient-created-event";
|
|
59
|
+
export * from "./events/publishers/recipient-updated-event";
|
|
60
|
+
export * from "./events/publishers/timeline-created-event";
|
|
61
|
+
export * from "./events/publishers/topic-created-event";
|
|
62
|
+
export * from "./events/publishers/topic-updated-event";
|
|
63
|
+
export * from "./events/publishers/user-created-event";
|
|
64
|
+
export * from "./events/publishers/user-updated-event";
|
|
65
|
+
export * from "./events/types/account-type";
|
|
66
|
+
export * from "./events/types/admin-levels";
|
|
67
|
+
export * from "./events/types/branch-status";
|
|
68
|
+
export * from "./events/types/brand-status";
|
|
69
|
+
export * from "./events/types/cart-status";
|
|
70
|
+
export * from "./events/types/cart-item-status";
|
|
71
|
+
export * from "./events/types/category-status";
|
|
72
|
+
export * from "./events/types/collection-status";
|
|
73
|
+
export * from "./events/types/collection-type";
|
|
74
|
+
export * from "./events/types/company-status";
|
|
75
|
+
export * from "./events/types/company-type";
|
|
76
|
+
export * from "./events/types/country";
|
|
77
|
+
export * from "./events/types/coupon-status";
|
|
78
|
+
export * from "./events/types/delivery-status";
|
|
79
|
+
export * from "./events/types/help-category";
|
|
80
|
+
export * from "./events/types/location-status";
|
|
81
|
+
export * from "./events/types/media-status";
|
|
82
|
+
export * from "./events/types/module-status";
|
|
83
|
+
export * from "./events/types/order-cancellation-status";
|
|
84
|
+
export * from "./events/types/order-status";
|
|
85
|
+
export * from "./events/types/payment-status";
|
|
86
|
+
export * from "./events/types/product_class";
|
|
87
|
+
export * from "./events/types/product-status";
|
|
88
|
+
export * from "./events/types/provider-levels";
|
|
89
|
+
export * from "./events/types/receive-country";
|
|
90
|
+
export * from "./events/types/recipient-status";
|
|
91
|
+
export * from "./events/types/send-country";
|
|
92
|
+
export * from "./events/types/timeline-stage";
|
|
93
|
+
export * from "./events/types/unit-type";
|
|
94
|
+
export * from "./events/types/user-status";
|
package/build/index.js
CHANGED
|
@@ -75,6 +75,8 @@ __exportStar(require("./events/publishers/topic-created-event"), exports);
|
|
|
75
75
|
__exportStar(require("./events/publishers/topic-updated-event"), exports);
|
|
76
76
|
__exportStar(require("./events/publishers/user-created-event"), exports);
|
|
77
77
|
__exportStar(require("./events/publishers/user-updated-event"), exports);
|
|
78
|
+
__exportStar(require("./events/types/account-type"), exports);
|
|
79
|
+
__exportStar(require("./events/types/admin-levels"), exports);
|
|
78
80
|
__exportStar(require("./events/types/branch-status"), exports);
|
|
79
81
|
__exportStar(require("./events/types/brand-status"), exports);
|
|
80
82
|
__exportStar(require("./events/types/cart-status"), exports);
|
|
@@ -96,10 +98,10 @@ __exportStar(require("./events/types/order-status"), exports);
|
|
|
96
98
|
__exportStar(require("./events/types/payment-status"), exports);
|
|
97
99
|
__exportStar(require("./events/types/product_class"), exports);
|
|
98
100
|
__exportStar(require("./events/types/product-status"), exports);
|
|
101
|
+
__exportStar(require("./events/types/provider-levels"), exports);
|
|
99
102
|
__exportStar(require("./events/types/receive-country"), exports);
|
|
100
103
|
__exportStar(require("./events/types/recipient-status"), exports);
|
|
101
104
|
__exportStar(require("./events/types/send-country"), exports);
|
|
102
105
|
__exportStar(require("./events/types/timeline-stage"), exports);
|
|
103
106
|
__exportStar(require("./events/types/unit-type"), exports);
|
|
104
|
-
__exportStar(require("./events/types/user-roles"), exports);
|
|
105
107
|
__exportStar(require("./events/types/user-status"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Request, Response, NextFunction } from 'express';
|
|
2
|
+
interface UserPayload {
|
|
3
|
+
id: string;
|
|
4
|
+
email: string;
|
|
5
|
+
}
|
|
6
|
+
declare global {
|
|
7
|
+
namespace Express {
|
|
8
|
+
interface Request {
|
|
9
|
+
currentUser?: UserPayload;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare const requireAuth: (req: Request, res: Response, next: NextFunction) => void;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.requireAuth = void 0;
|
|
7
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
8
|
+
const not_authorized_error_1 = require("../errors/not-authorized-error");
|
|
9
|
+
const requireAuth = (req, res, next) => {
|
|
10
|
+
let token;
|
|
11
|
+
if (req.headers.authorization &&
|
|
12
|
+
req.headers.authorization.startsWith("Bearer")) {
|
|
13
|
+
// Set token from Bearer token in header
|
|
14
|
+
token = req.headers.authorization.split(" ")[1];
|
|
15
|
+
}
|
|
16
|
+
// Make sure token exists
|
|
17
|
+
if (!token) {
|
|
18
|
+
throw new not_authorized_error_1.NotAuthorizedError();
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const payload = jsonwebtoken_1.default.verify(token, "EDWIN"
|
|
22
|
+
// process.env.JWT_KEY!
|
|
23
|
+
);
|
|
24
|
+
req.currentUser = payload;
|
|
25
|
+
}
|
|
26
|
+
catch (err) { }
|
|
27
|
+
next();
|
|
28
|
+
};
|
|
29
|
+
exports.requireAuth = requireAuth;
|
|
@@ -10,5 +10,5 @@ declare global {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
export declare const
|
|
13
|
+
export declare const validateSession: (sessionServiceUrl: string, deviceInfo: string) => (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
14
14
|
export {};
|
|
@@ -1,30 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
5
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
15
|
+
exports.validateSession = void 0;
|
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
|
7
17
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
18
|
+
// Middleware to validate user session per device
|
|
19
|
+
const validateSession = (sessionServiceUrl, deviceInfo) => {
|
|
20
|
+
return (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
var _a;
|
|
22
|
+
try {
|
|
23
|
+
const token = req.cookies.token || ((_a = req.headers.authorization) === null || _a === void 0 ? void 0 : _a.split(' ')[1]);
|
|
24
|
+
if (!token) {
|
|
25
|
+
res.status(401).json({ message: 'No session token provided' });
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const payload = jsonwebtoken_1.default.verify(token, "EDWIN"
|
|
29
|
+
// process.env.JWT_KEY!
|
|
30
|
+
);
|
|
31
|
+
// Call the session service to validate the session
|
|
32
|
+
const response = yield axios_1.default.get(`${sessionServiceUrl}/api/validate-session/${payload.id}`, {
|
|
33
|
+
params: { device_info: deviceInfo }, // Send the device info for validation
|
|
34
|
+
});
|
|
35
|
+
if (response.status !== 200) {
|
|
36
|
+
res.status(401).json({ message: 'Invalid or expired session' });
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// Attach user ID to request object
|
|
40
|
+
req.currentUser = response.data;
|
|
41
|
+
next();
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
res.status(500).json({ message: 'Server error during session validation', error });
|
|
45
|
+
}
|
|
46
|
+
});
|
|
29
47
|
};
|
|
30
|
-
exports.
|
|
48
|
+
exports.validateSession = validateSession;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sendhome/common",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.153",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"types": "./build/index.d.ts",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"@types/express": "^4.17.13",
|
|
25
25
|
"@types/jsonwebtoken": "^8.5.8",
|
|
26
26
|
"@types/mongoose": "^5.11.97",
|
|
27
|
+
"axios": "^1.7.7",
|
|
27
28
|
"cookie-session": "^2.0.0",
|
|
28
29
|
"express": "^4.17.2",
|
|
29
30
|
"express-validator": "^6.14.0",
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UserRoles = void 0;
|
|
4
|
-
var UserRoles;
|
|
5
|
-
(function (UserRoles) {
|
|
6
|
-
UserRoles["User"] = "user";
|
|
7
|
-
UserRoles["Administrator"] = "administrator";
|
|
8
|
-
UserRoles["Provider"] = "provider";
|
|
9
|
-
UserRoles["Recipient"] = "recipient";
|
|
10
|
-
})(UserRoles = exports.UserRoles || (exports.UserRoles = {}));
|