storemw-core-api 1.0.168 → 1.0.170
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/dist/app.js +20 -2
- package/dist/app.js.map +1 -1
- package/dist/controllers/access_control/accessControlRoleController.js +5 -1
- package/dist/controllers/access_control/accessControlRoleController.js.map +1 -1
- package/dist/controllers/index.js +1 -1
- package/dist/features/scheduler_sql/schedulerSqlRegistry.d.ts +1 -1
- package/dist/features/scheduler_sql/schedulerSqlRegistry.js +40 -33
- package/dist/features/scheduler_sql/schedulerSqlRegistry.js.map +1 -1
- package/dist/features/scheduler_sql/schedulerSqlType.js.map +1 -1
- package/dist/lib/route_factory/RouteFactory.d.ts +15 -0
- package/dist/lib/route_factory/RouteFactory.js +21 -0
- package/dist/lib/route_factory/RouteFactory.js.map +1 -0
- package/dist/lib/route_factory/index.d.ts +6 -0
- package/dist/lib/route_factory/index.js +11 -0
- package/dist/lib/route_factory/index.js.map +1 -0
- package/dist/lib/route_factory/routeRegistry.d.ts +8 -0
- package/dist/lib/route_factory/routeRegistry.js +5 -0
- package/dist/lib/route_factory/routeRegistry.js.map +1 -0
- package/dist/lib/route_factory/routeSpec.d.ts +36 -0
- package/dist/lib/route_factory/routeSpec.js +81 -0
- package/dist/lib/route_factory/routeSpec.js.map +1 -0
- package/dist/route_contracts/access_control/accessControlPoliciesRoutes.d.ts +2 -0
- package/dist/route_contracts/access_control/accessControlPoliciesRoutes.js +21 -0
- package/dist/route_contracts/access_control/accessControlPoliciesRoutes.js.map +1 -0
- package/dist/route_contracts/access_control/accessControlRoleRoutes.d.ts +2 -0
- package/dist/route_contracts/access_control/accessControlRoleRoutes.js +48 -0
- package/dist/route_contracts/access_control/accessControlRoleRoutes.js.map +1 -0
- package/dist/route_contracts/access_control/accessControlRolesRoutes.d.ts +2 -0
- package/dist/route_contracts/access_control/accessControlRolesRoutes.js +37 -0
- package/dist/route_contracts/access_control/accessControlRolesRoutes.js.map +1 -0
- package/dist/route_contracts/access_control/accessControlRoutes.d.ts +2 -0
- package/dist/route_contracts/access_control/accessControlRoutes.js +18 -0
- package/dist/route_contracts/access_control/accessControlRoutes.js.map +1 -0
- package/dist/route_contracts/access_control/accessControlUserRolesRoutes.d.ts +2 -0
- package/dist/route_contracts/access_control/accessControlUserRolesRoutes.js +21 -0
- package/dist/route_contracts/access_control/accessControlUserRolesRoutes.js.map +1 -0
- package/dist/route_contracts/auth/authRoutes.d.ts +2 -0
- package/dist/route_contracts/auth/authRoutes.js +23 -0
- package/dist/route_contracts/auth/authRoutes.js.map +1 -0
- package/dist/route_contracts/index.d.ts +2 -0
- package/dist/route_contracts/index.js +39 -0
- package/dist/route_contracts/index.js.map +1 -0
- package/dist/route_specs/access_control/accessControlPoliciesRouteSpecs.d.ts +2 -0
- package/dist/route_specs/access_control/accessControlPoliciesRouteSpecs.js +21 -0
- package/dist/route_specs/access_control/accessControlPoliciesRouteSpecs.js.map +1 -0
- package/dist/route_specs/access_control/accessControlRoleRouteSpecs.d.ts +2 -0
- package/dist/route_specs/access_control/accessControlRoleRouteSpecs.js +48 -0
- package/dist/route_specs/access_control/accessControlRoleRouteSpecs.js.map +1 -0
- package/dist/route_specs/access_control/accessControlRolesRouteSpecs.d.ts +2 -0
- package/dist/route_specs/access_control/accessControlRolesRouteSpecs.js +37 -0
- package/dist/route_specs/access_control/accessControlRolesRouteSpecs.js.map +1 -0
- package/dist/route_specs/access_control/accessControlRouteSpecs.d.ts +2 -0
- package/dist/route_specs/access_control/accessControlRouteSpecs.js +18 -0
- package/dist/route_specs/access_control/accessControlRouteSpecs.js.map +1 -0
- package/dist/route_specs/access_control/accessControlUserRolesRouteSpecs.d.ts +2 -0
- package/dist/route_specs/access_control/accessControlUserRolesRouteSpecs.js +21 -0
- package/dist/route_specs/access_control/accessControlUserRolesRouteSpecs.js.map +1 -0
- package/dist/route_specs/auth/authRouteSpec.d.ts +2 -0
- package/dist/route_specs/auth/authRouteSpec.js +23 -0
- package/dist/route_specs/auth/authRouteSpec.js.map +1 -0
- package/dist/route_specs/index.d.ts +2 -0
- package/dist/route_specs/index.js +39 -0
- package/dist/route_specs/index.js.map +1 -0
- package/dist/routes/index.d.ts +33 -33
- package/dist/routes/index.js +33 -34
- package/dist/routes/index.js.map +1 -1
- package/dist/schema/middleware/route/index.d.ts +2 -2
- package/dist/schema/middleware/route/index.js +2 -1
- package/dist/schema/middleware/route/index.js.map +1 -1
- package/dist/schema/middleware/route/schemaAccessControl.d.ts +9 -0
- package/dist/schema/middleware/route/schemaAccessControl.js +5 -1
- package/dist/schema/middleware/route/schemaAccessControl.js.map +1 -1
- package/dist/services/scheduler/SchedulerSqlService.js +3 -1
- package/dist/services/scheduler/SchedulerSqlService.js.map +1 -1
- package/package.json +11 -1
- package/dist/access_control/extra/index.d.ts +0 -2
- package/dist/access_control/extra/index.js +0 -7
- package/dist/access_control/extra/index.js.map +0 -1
- package/dist/access_control/extra/policies/administrator.d.ts +0 -3
- package/dist/access_control/extra/policies/administrator.js +0 -13
- package/dist/access_control/extra/policies/administrator.js.map +0 -1
- package/dist/access_control/extra/types.d.ts +0 -11
- package/dist/access_control/extra/types.js +0 -3
- package/dist/access_control/extra/types.js.map +0 -1
- package/dist/controllers/utils/changePasswordUtilController.d.ts +0 -3
- package/dist/controllers/utils/changePasswordUtilController.js +0 -55
- package/dist/controllers/utils/changePasswordUtilController.js.map +0 -1
- package/dist/global.d.ts +0 -5
- package/dist/global.js +0 -12
- package/dist/global.js.map +0 -1
- package/dist/helpers/unuse/prismaHelper.d.ts +0 -2
- package/dist/helpers/unuse/prismaHelper.js +0 -76
- package/dist/helpers/unuse/prismaHelper.js.map +0 -1
- package/dist/lib/global.d.ts +0 -5
- package/dist/lib/global.js +0 -12
- package/dist/lib/global.js.map +0 -1
- package/dist/middlewares/request/initialPrisma.d.ts +0 -9
- package/dist/middlewares/request/initialPrisma.js +0 -41
- package/dist/middlewares/request/initialPrisma.js.map +0 -1
- package/dist/middlewares/request/unuse/initialPrisma.d.ts +0 -9
- package/dist/middlewares/request/unuse/initialPrisma.js +0 -41
- package/dist/middlewares/request/unuse/initialPrisma.js.map +0 -1
- package/dist/middlewares/route/bk_validateDocument.d.ts +0 -2
- package/dist/middlewares/route/bk_validateDocument.js +0 -34
- package/dist/middlewares/route/bk_validateDocument.js.map +0 -1
- package/dist/middlewares/route/validateSchedulerLog.d.ts +0 -5
- package/dist/middlewares/route/validateSchedulerLog.js +0 -20
- package/dist/middlewares/route/validateSchedulerLog.js.map +0 -1
- package/dist/routes/access_control/accessControlsRoutes.d.ts +0 -3
- package/dist/routes/access_control/accessControlsRoutes.js +0 -12
- package/dist/routes/access_control/accessControlsRoutes.js.map +0 -1
- package/dist/routes/utils/changePasswordUtilRoutes.d.ts +0 -2
- package/dist/routes/utils/changePasswordUtilRoutes.js +0 -11
- package/dist/routes/utils/changePasswordUtilRoutes.js.map +0 -1
- package/dist/schema/common/unuse/response.d.ts +0 -54
- package/dist/schema/common/unuse/response.js +0 -23
- package/dist/schema/common/unuse/response.js.map +0 -1
- package/dist/schema/middleware/request/validateQuery_bk250827.d.ts +0 -27
- package/dist/schema/middleware/request/validateQuery_bk250827.js +0 -63
- package/dist/schema/middleware/request/validateQuery_bk250827.js.map +0 -1
- package/dist/schema/middleware/route/bk_schemaDocument.d.ts +0 -10
- package/dist/schema/middleware/route/bk_schemaDocument.js +0 -10
- package/dist/schema/middleware/route/bk_schemaDocument.js.map +0 -1
- package/dist/schema/middleware/route/schemaSchedulerLog.d.ts +0 -4
- package/dist/schema/middleware/route/schemaSchedulerLog.js +0 -10
- package/dist/schema/middleware/route/schemaSchedulerLog.js.map +0 -1
- package/dist/schema/payload/utils/schemaChangePasswordUtil.d.ts +0 -53
- package/dist/schema/payload/utils/schemaChangePasswordUtil.js +0 -18
- package/dist/schema/payload/utils/schemaChangePasswordUtil.js.map +0 -1
- package/dist/services/utils/ChangePasswordUtilService.d.ts +0 -13
- package/dist/services/utils/ChangePasswordUtilService.js +0 -78
- package/dist/services/utils/ChangePasswordUtilService.js.map +0 -1
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
/** Utils: Change Password */
|
|
3
|
-
export declare const schemaChangePasswordUtilPayload: z.ZodObject<{
|
|
4
|
-
scope: z.ZodObject<{
|
|
5
|
-
target: z.ZodEnum<["change_password"]>;
|
|
6
|
-
action: z.ZodString;
|
|
7
|
-
}, "strip", z.ZodTypeAny, {
|
|
8
|
-
target: "change_password";
|
|
9
|
-
action: string;
|
|
10
|
-
}, {
|
|
11
|
-
target: "change_password";
|
|
12
|
-
action: string;
|
|
13
|
-
}>;
|
|
14
|
-
payload: z.ZodObject<{
|
|
15
|
-
authToken: z.ZodString;
|
|
16
|
-
currentPassword: z.ZodString;
|
|
17
|
-
newPassword: z.ZodString;
|
|
18
|
-
confirmPassword: z.ZodString;
|
|
19
|
-
}, "strip", z.ZodTypeAny, {
|
|
20
|
-
authToken: string;
|
|
21
|
-
currentPassword: string;
|
|
22
|
-
confirmPassword: string;
|
|
23
|
-
newPassword: string;
|
|
24
|
-
}, {
|
|
25
|
-
authToken: string;
|
|
26
|
-
currentPassword: string;
|
|
27
|
-
confirmPassword: string;
|
|
28
|
-
newPassword: string;
|
|
29
|
-
}>;
|
|
30
|
-
}, "strip", z.ZodTypeAny, {
|
|
31
|
-
scope: {
|
|
32
|
-
target: "change_password";
|
|
33
|
-
action: string;
|
|
34
|
-
};
|
|
35
|
-
payload: {
|
|
36
|
-
authToken: string;
|
|
37
|
-
currentPassword: string;
|
|
38
|
-
confirmPassword: string;
|
|
39
|
-
newPassword: string;
|
|
40
|
-
};
|
|
41
|
-
}, {
|
|
42
|
-
scope: {
|
|
43
|
-
target: "change_password";
|
|
44
|
-
action: string;
|
|
45
|
-
};
|
|
46
|
-
payload: {
|
|
47
|
-
authToken: string;
|
|
48
|
-
currentPassword: string;
|
|
49
|
-
confirmPassword: string;
|
|
50
|
-
newPassword: string;
|
|
51
|
-
};
|
|
52
|
-
}>;
|
|
53
|
-
export type SchemaChangePasswordUtilPayload = z.infer<typeof schemaChangePasswordUtilPayload>;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.schemaChangePasswordUtilPayload = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
/** Utils: Change Password */
|
|
6
|
-
exports.schemaChangePasswordUtilPayload = zod_1.z.object({
|
|
7
|
-
scope: zod_1.z.object({
|
|
8
|
-
target: zod_1.z.enum(["change_password"]),
|
|
9
|
-
action: zod_1.z.string(), // can be "" if you want to allow empty string
|
|
10
|
-
}),
|
|
11
|
-
payload: zod_1.z.object({
|
|
12
|
-
authToken: zod_1.z.string().min(1),
|
|
13
|
-
currentPassword: zod_1.z.string().min(1),
|
|
14
|
-
newPassword: zod_1.z.string().min(1),
|
|
15
|
-
confirmPassword: zod_1.z.string().min(1),
|
|
16
|
-
})
|
|
17
|
-
});
|
|
18
|
-
//# sourceMappingURL=schemaChangePasswordUtil.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemaChangePasswordUtil.js","sourceRoot":"","sources":["../../../../src/schema/payload/utils/schemaChangePasswordUtil.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAIxB,6BAA6B;AAChB,QAAA,+BAA+B,GAAG,OAAC,CAAC,MAAM,CAAC;IACpD,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC;QACZ,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACnC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,8CAA8C;KACrE,CAAC;IACF,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC,CAAC;CACL,CAAC,CAAC","sourcesContent":["import { z } from \"zod\";\n\nimport { _, dayjs } from \"@/utils\";\n\n/** Utils: Change Password */\nexport const schemaChangePasswordUtilPayload = z.object({\n scope: z.object({\n target: z.enum([\"change_password\"]),\n action: z.string(), // can be \"\" if you want to allow empty string\n }),\n payload: z.object({\n authToken: z.string().min(1),\n currentPassword: z.string().min(1),\n newPassword: z.string().min(1),\n confirmPassword: z.string().min(1),\n })\n});\n\nexport type SchemaChangePasswordUtilPayload = z.infer<typeof schemaChangePasswordUtilPayload>;"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { DefaultServiceProps } from "../../utils";
|
|
2
|
-
export type ChangePasswordUtilServiceProps = DefaultServiceProps & {
|
|
3
|
-
secretKey: string;
|
|
4
|
-
};
|
|
5
|
-
export type ChangePasswordUtilChangeProps = {
|
|
6
|
-
authToken: string;
|
|
7
|
-
currentPassword: string;
|
|
8
|
-
newPassword: string;
|
|
9
|
-
confirmPassword: string;
|
|
10
|
-
};
|
|
11
|
-
export declare const ChangePasswordUtilService: (props: ChangePasswordUtilServiceProps) => {
|
|
12
|
-
changePassword: ({ authToken, currentPassword, confirmPassword, newPassword }: ChangePasswordUtilChangeProps) => Promise<any>;
|
|
13
|
-
};
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ChangePasswordUtilService = void 0;
|
|
4
|
-
const utils_1 = require("../../utils");
|
|
5
|
-
const services_1 = require("../../services");
|
|
6
|
-
// import { config } from "../../configs/config";
|
|
7
|
-
const utils_2 = require("../../utils");
|
|
8
|
-
const ChangePasswordUtilService = (props) => {
|
|
9
|
-
const { secretKey, ...rest } = props;
|
|
10
|
-
const changePassword = async ({ authToken, currentPassword, confirmPassword, newPassword }) => {
|
|
11
|
-
// retrive core configuration
|
|
12
|
-
const coreConfig = (0, utils_1.getCoreConfiguration)();
|
|
13
|
-
// const authSecretKey = config.AUTH_SECRET_KEY
|
|
14
|
-
const authSecretKey = coreConfig.authSecretKey;
|
|
15
|
-
// validate the token
|
|
16
|
-
const jwtData = (0, utils_2.verifyAuthToken)(authToken, authSecretKey);
|
|
17
|
-
const accountId = jwtData?.account?.account_id ?? "";
|
|
18
|
-
const userId = jwtData?.user?.user_id ?? "";
|
|
19
|
-
const userType = jwtData?.user?.user_type ?? "";
|
|
20
|
-
if (!accountId && userType !== "operator") { // operator token do not have account id
|
|
21
|
-
(0, utils_1.throwError)(`Invalid or missing account id in auth token`);
|
|
22
|
-
}
|
|
23
|
-
if (!userId) {
|
|
24
|
-
(0, utils_1.throwError)(`Missing user id in auth token`);
|
|
25
|
-
}
|
|
26
|
-
if (!userType) {
|
|
27
|
-
(0, utils_1.throwError)(`Missing user type in auth token`);
|
|
28
|
-
}
|
|
29
|
-
const userService = (0, services_1.UserService)({ userType, ...rest });
|
|
30
|
-
const accountService = (0, services_1.AccountService)({ ...rest, isOperator: true });
|
|
31
|
-
const user = await userService.getUser({ id: Number(userId), datatypes: [], includePassword: true });
|
|
32
|
-
const account = await accountService.getAccount({ id: Number(accountId), datatypes: [] });
|
|
33
|
-
// console.log('jwtData', jwtData)
|
|
34
|
-
// console.log('user', user)
|
|
35
|
-
// console.log('account', account)
|
|
36
|
-
// const a = await hashPassword(user?.password)
|
|
37
|
-
// check the accountId / userId is valid
|
|
38
|
-
if (!user?.user_id) {
|
|
39
|
-
(0, utils_1.throwError)(`Invalid user id in auth token`);
|
|
40
|
-
}
|
|
41
|
-
if (Object.keys(account).length <= 0) { // must have account id record
|
|
42
|
-
(0, utils_1.throwError)(`Invalid account id in auth token`);
|
|
43
|
-
}
|
|
44
|
-
// new password cannot same with current password
|
|
45
|
-
if (newPassword === currentPassword) {
|
|
46
|
-
(0, utils_1.throwError)(`New and current password cannot be same`);
|
|
47
|
-
}
|
|
48
|
-
// new password must same with confirm
|
|
49
|
-
if (newPassword !== confirmPassword) {
|
|
50
|
-
(0, utils_1.throwError)(`New and confirm password not matched`);
|
|
51
|
-
}
|
|
52
|
-
// check the current password
|
|
53
|
-
try {
|
|
54
|
-
const decryptedPass = await (0, utils_2.verifyPassword)(currentPassword, user?.password);
|
|
55
|
-
// console.log('decryptedPass', decryptedPass)
|
|
56
|
-
if (!decryptedPass) {
|
|
57
|
-
throw Error(`Invalid current password`);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
(0, utils_1.throwError)(`Auth Token: ${error?.message}`);
|
|
62
|
-
}
|
|
63
|
-
// perform update credential
|
|
64
|
-
const responseUser = await userService.replacePassword({
|
|
65
|
-
id: Number(userId),
|
|
66
|
-
data: {
|
|
67
|
-
unhashLoginPassword: newPassword
|
|
68
|
-
},
|
|
69
|
-
isOperator: Boolean(userType === "operator")
|
|
70
|
-
});
|
|
71
|
-
return responseUser;
|
|
72
|
-
};
|
|
73
|
-
return {
|
|
74
|
-
changePassword
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
exports.ChangePasswordUtilService = ChangePasswordUtilService;
|
|
78
|
-
//# sourceMappingURL=ChangePasswordUtilService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChangePasswordUtilService.js","sourceRoot":"","sources":["../../../src/services/utils/ChangePasswordUtilService.ts"],"names":[],"mappings":"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","sourcesContent":["import { DefaultServiceProps, getCoreConfiguration, throwError } from \"@/utils\";\nimport {\n UserService,\n AccountService,\n} from \"@/services\";\n\n// import { config } from \"@/configs/config\";\n\nimport { verifyPassword, verifyAuthToken, hashPassword } from \"@/utils\"\n\nexport type ChangePasswordUtilServiceProps = DefaultServiceProps & {\n secretKey: string,\n};\n\nexport type ChangePasswordUtilChangeProps = {\n authToken: string,\n currentPassword: string\n newPassword: string\n confirmPassword: string\n};\n\nexport const ChangePasswordUtilService = (props: ChangePasswordUtilServiceProps) => {\n\n const {\n secretKey,\n ...rest\n } = props\n\n const changePassword = async ({ authToken, currentPassword, confirmPassword, newPassword }: ChangePasswordUtilChangeProps) => {\n\n // retrive core configuration\n const coreConfig = getCoreConfiguration()\n\n // const authSecretKey = config.AUTH_SECRET_KEY\n const authSecretKey = coreConfig.authSecretKey\n\n // validate the token\n const jwtData = verifyAuthToken(authToken, authSecretKey);\n\n const accountId = jwtData?.account?.account_id ?? \"\";\n const userId = jwtData?.user?.user_id ?? \"\";\n const userType = jwtData?.user?.user_type ?? \"\";\n\n if (!accountId && userType !== \"operator\") { // operator token do not have account id\n throwError(`Invalid or missing account id in auth token`)\n }\n\n if (!userId) {\n throwError(`Missing user id in auth token`)\n }\n\n if (!userType) {\n throwError(`Missing user type in auth token`)\n }\n\n const userService = UserService({ userType, ...rest })\n const accountService = AccountService({ ...rest, isOperator: true })\n\n const user = await userService.getUser({ id: Number(userId), datatypes: [], includePassword: true })\n const account = await accountService.getAccount({ id: Number(accountId), datatypes: [] })\n\n // console.log('jwtData', jwtData)\n // console.log('user', user)\n // console.log('account', account)\n\n // const a = await hashPassword(user?.password)\n\n // check the accountId / userId is valid\n if (!user?.user_id) {\n throwError(`Invalid user id in auth token`)\n }\n\n if (Object.keys(account).length <= 0) { // must have account id record\n throwError(`Invalid account id in auth token`)\n }\n\n // new password cannot same with current password\n if (newPassword === currentPassword) {\n throwError(`New and current password cannot be same`)\n }\n\n // new password must same with confirm\n if (newPassword !== confirmPassword) {\n throwError(`New and confirm password not matched`)\n }\n\n // check the current password\n try {\n const decryptedPass = await verifyPassword(currentPassword, user?.password)\n // console.log('decryptedPass', decryptedPass)\n\n if (!decryptedPass) {\n throw Error(`Invalid current password`)\n }\n\n } catch (error: any) {\n throwError(`Auth Token: ${error?.message}`)\n }\n\n // perform update credential\n const responseUser = await userService.replacePassword({\n id: Number(userId),\n data: {\n unhashLoginPassword: newPassword\n },\n isOperator: Boolean(userType === \"operator\")\n })\n\n return responseUser\n\n }\n\n return {\n changePassword\n }\n\n}\n\n"]}
|