@hichchi/nest-auth 0.0.2 → 0.0.3
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/CHANGELOG.md +16 -8
- package/README.md +782 -1567
- package/auth.module.js +50 -47
- package/auth.module.js.map +1 -1
- package/constants.js +7 -4
- package/constants.js.map +1 -1
- package/controllers/auth.controller.js +148 -145
- package/controllers/auth.controller.js.map +1 -1
- package/controllers/index.js +4 -1
- package/controllers/index.js.map +1 -1
- package/decorators/auth-info.decorator.js +6 -3
- package/decorators/auth-info.decorator.js.map +1 -1
- package/decorators/current-user.decorator.js +6 -3
- package/decorators/current-user.decorator.js.map +1 -1
- package/decorators/index.js +9 -6
- package/decorators/index.js.map +1 -1
- package/decorators/permission.decorator.js +8 -4
- package/decorators/permission.decorator.js.map +1 -1
- package/decorators/roles.decorator.js +8 -4
- package/decorators/roles.decorator.js.map +1 -1
- package/decorators/socket-id.decorator.js +6 -3
- package/decorators/socket-id.decorator.js.map +1 -1
- package/decorators/subdomain.decorator.js +11 -8
- package/decorators/subdomain.decorator.js.map +1 -1
- package/dtos/email-verify.dto.js +17 -14
- package/dtos/email-verify.dto.js.map +1 -1
- package/dtos/get-auth-response.dto.js +13 -10
- package/dtos/get-auth-response.dto.js.map +1 -1
- package/dtos/index.js +14 -11
- package/dtos/index.js.map +1 -1
- package/dtos/refresh-token.dto.js +13 -10
- package/dtos/refresh-token.dto.js.map +1 -1
- package/dtos/request-reset.dto.js +12 -9
- package/dtos/request-reset.dto.js.map +1 -1
- package/dtos/resend-email-verify.dto.js +12 -9
- package/dtos/resend-email-verify.dto.js.map +1 -1
- package/dtos/reset-password-token-verify.dto.js +13 -10
- package/dtos/reset-password-token-verify.dto.js.map +1 -1
- package/dtos/reset-password.dto.js +16 -13
- package/dtos/reset-password.dto.js.map +1 -1
- package/dtos/sign-in.dto.js +21 -18
- package/dtos/sign-in.dto.js.map +1 -1
- package/dtos/sign-up.dto.js +26 -23
- package/dtos/sign-up.dto.js.map +1 -1
- package/dtos/update-password.dto.js +15 -12
- package/dtos/update-password.dto.js.map +1 -1
- package/dtos/view-user.dto.js +5 -1
- package/dtos/view-user.dto.js.map +1 -1
- package/extractors/cookie-extractor.js +6 -3
- package/extractors/cookie-extractor.js.map +1 -1
- package/extractors/index.js +4 -1
- package/extractors/index.js.map +1 -1
- package/guards/google-auth.guard.js +24 -21
- package/guards/google-auth.guard.js.map +1 -1
- package/guards/index.js +8 -5
- package/guards/index.js.map +1 -1
- package/guards/jwt-auth.guard.js +43 -40
- package/guards/jwt-auth.guard.js.map +1 -1
- package/guards/local-auth.guard.js +15 -12
- package/guards/local-auth.guard.js.map +1 -1
- package/guards/permission.guard.js +15 -12
- package/guards/permission.guard.js.map +1 -1
- package/guards/role.guard.js +15 -12
- package/guards/role.guard.js.map +1 -1
- package/index.js +18 -13
- package/index.js.map +1 -1
- package/interfaces/auth-options.interface.js +2 -1
- package/interfaces/auth-user.type.js +2 -1
- package/interfaces/cache-user.interfaces.js +2 -1
- package/interfaces/index.js +9 -6
- package/interfaces/index.js.map +1 -1
- package/interfaces/token-data.interface.js +2 -1
- package/interfaces/user-extra.interfaces.js +2 -1
- package/interfaces/user-service.interface.d.ts +1 -1
- package/interfaces/user-service.interface.js +2 -1
- package/package.json +6 -5
- package/pipes/index.js +4 -1
- package/pipes/index.js.map +1 -1
- package/pipes/override-sign-up-dto.pipe.js +16 -13
- package/pipes/override-sign-up-dto.pipe.js.map +1 -1
- package/providers/index.js +4 -1
- package/providers/index.js.map +1 -1
- package/providers/user-service.provider.js +2 -1
- package/readme-top.md +24 -24
- package/services/auth.service.js +142 -136
- package/services/auth.service.js.map +1 -1
- package/services/encryption.service.js +18 -15
- package/services/encryption.service.js.map +1 -1
- package/services/index.js +6 -3
- package/services/index.js.map +1 -1
- package/services/jwt-token.service.js +14 -11
- package/services/jwt-token.service.js.map +1 -1
- package/services/token-verify.service.js +10 -7
- package/services/token-verify.service.js.map +1 -1
- package/services/user-cache.service.js +16 -13
- package/services/user-cache.service.js.map +1 -1
- package/strategies/google.strategy.js +16 -13
- package/strategies/google.strategy.js.map +1 -1
- package/strategies/index.js +6 -3
- package/strategies/index.js.map +1 -1
- package/strategies/jwt.strategy.js +29 -26
- package/strategies/jwt.strategy.js.map +1 -1
- package/strategies/local.strategy.js +20 -17
- package/strategies/local.strategy.js.map +1 -1
- package/tokens.js +5 -2
- package/tokens.js.map +1 -1
- package/utils/config-validation.js +22 -17
- package/utils/config-validation.js.map +1 -1
- package/utils/generate-auth-user.js +7 -4
- package/utils/generate-auth-user.js.map +1 -1
- package/utils/index.js +5 -2
- package/utils/index.js.map +1 -1
package/guards/role.guard.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.RoleGuard = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const core_1 = require("@nestjs/core");
|
|
8
|
+
const auth_1 = require("@hichchi/nest-connector/auth");
|
|
9
|
+
const decorators_1 = require("../decorators");
|
|
7
10
|
/**
|
|
8
11
|
* Guard for role-based authorization.
|
|
9
12
|
*
|
|
@@ -45,7 +48,7 @@ let RoleGuard = class RoleGuard {
|
|
|
45
48
|
* @throws {ForbiddenException} If the user doesn't have any of the required roles
|
|
46
49
|
*/
|
|
47
50
|
canActivate(context) {
|
|
48
|
-
const requiredRoles = this.reflector.getAllAndOverride(ROLES_KEY, [
|
|
51
|
+
const requiredRoles = this.reflector.getAllAndOverride(decorators_1.ROLES_KEY, [
|
|
49
52
|
context.getHandler(),
|
|
50
53
|
context.getClass(),
|
|
51
54
|
]);
|
|
@@ -53,15 +56,15 @@ let RoleGuard = class RoleGuard {
|
|
|
53
56
|
return true;
|
|
54
57
|
}
|
|
55
58
|
const { user } = context.switchToHttp().getRequest();
|
|
56
|
-
if (requiredRoles.some(role => (isRoleObject(user.role) ? user.role.name === role : user.role === role))) {
|
|
59
|
+
if (requiredRoles.some(role => ((0, auth_1.isRoleObject)(user.role) ? user.role.name === role : user.role === role))) {
|
|
57
60
|
return true;
|
|
58
61
|
}
|
|
59
|
-
throw new ForbiddenException(AuthErrors.AUTH_403_ROLE_FORBIDDEN);
|
|
62
|
+
throw new common_1.ForbiddenException(auth_1.AuthErrors.AUTH_403_ROLE_FORBIDDEN);
|
|
60
63
|
}
|
|
61
64
|
};
|
|
62
|
-
RoleGuard =
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
exports.RoleGuard = RoleGuard;
|
|
66
|
+
exports.RoleGuard = RoleGuard = tslib_1.__decorate([
|
|
67
|
+
(0, common_1.Injectable)(),
|
|
68
|
+
tslib_1.__metadata("design:paramtypes", [core_1.Reflector])
|
|
65
69
|
], RoleGuard);
|
|
66
|
-
export { RoleGuard };
|
|
67
70
|
//# sourceMappingURL=role.guard.js.map
|
package/guards/role.guard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.guard.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/role.guard.ts"],"names":[],"mappings":"AAAA,qCAAqC
|
|
1
|
+
{"version":3,"file":"role.guard.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/guards/role.guard.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;AAErC,2CAA+F;AAC/F,uCAAyC;AACzC,uDAA8E;AAC9E,8CAA0C;AAG1C;;;;;;;;;;;;;;;;;GAiBG;AAEI,IAAM,SAAS,GAAf,MAAM,SAAS;IAME;IALpB;;;;OAIG;IACH,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C;;;;;;;;;;;OAWG;IACH,WAAW,CAAuD,OAAyB;QACvF,MAAM,aAAa,GAAQ,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAM,sBAAS,EAAE;YACxE,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAkC,CAAC;QACrF,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAA,mBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YACvG,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,2BAAkB,CAAC,iBAAU,CAAC,uBAAuB,CAAC,CAAC;IACrE,CAAC;CACJ,CAAA;AAlCY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;6CAOsB,gBAAS;GAN/B,SAAS,CAkCrB"}
|
package/index.js
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HichchiAuthModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
tslib_1.__exportStar(require("./dtos"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./pipes"), exports);
|
|
3
7
|
// export * from "./utils";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
tslib_1.__exportStar(require("./guards"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./services"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./providers"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./decorators"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./extractors"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./interfaces"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./strategies"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./controllers"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./tokens"), exports);
|
|
17
|
+
tslib_1.__exportStar(require("./constants"), exports);
|
|
18
|
+
var auth_module_1 = require("./auth.module");
|
|
19
|
+
Object.defineProperty(exports, "HichchiAuthModule", { enumerable: true, get: function () { return auth_module_1.HichchiAuthModule; } });
|
|
15
20
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/nest-auth/src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/nest-auth/src/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAuB;AACvB,kDAAwB;AACxB,2BAA2B;AAC3B,mDAAyB;AACzB,qDAA2B;AAC3B,sDAA4B;AAC5B,uDAA6B;AAC7B,uDAA6B;AAC7B,uDAA6B;AAC7B,uDAA6B;AAC7B,wDAA8B;AAC9B,mDAAyB;AACzB,sDAA4B;AAC5B,6CAAkD;AAAzC,gHAAA,iBAAiB,OAAA"}
|
package/interfaces/index.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./auth-user.type"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./token-data.interface"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./cache-user.interfaces"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./auth-options.interface"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./user-service.interface"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./user-extra.interfaces"), exports);
|
|
7
10
|
//# sourceMappingURL=index.js.map
|
package/interfaces/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,iEAAuC;AACvC,kEAAwC;AACxC,mEAAyC;AACzC,mEAAyC;AACzC,kEAAwC"}
|
|
@@ -410,7 +410,7 @@ export interface UserServiceActions {
|
|
|
410
410
|
* @see {@link onChangePassword} Related event that may be triggered
|
|
411
411
|
* @see {@link onResetPassword} Related event that may be triggered
|
|
412
412
|
*/
|
|
413
|
-
updateUserById(id: EntityId, userDto: Partial<User>, updatedBy: User): Promise<User>;
|
|
413
|
+
updateUserById(id: EntityId, userDto: Partial<User>, updatedBy: User): Promise<User | null>;
|
|
414
414
|
/**
|
|
415
415
|
* Send a password reset email to a user
|
|
416
416
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hichchi/nest-auth",
|
|
3
|
-
"
|
|
3
|
+
"description": "NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and enterprise-grade security features - cannot be used independently, requires nest-core as foundation",
|
|
4
|
+
"version": "0.0.3",
|
|
4
5
|
"publishConfig": {
|
|
5
6
|
"access": "public"
|
|
6
7
|
},
|
|
@@ -35,16 +36,16 @@
|
|
|
35
36
|
"passport-local": "^1.0.0",
|
|
36
37
|
"rxjs": "^7.8.2",
|
|
37
38
|
"triple-beam": "1.4.1",
|
|
38
|
-
"tslib": "^2.
|
|
39
|
+
"tslib": "^2.8.1",
|
|
39
40
|
"uuid": "^11.1.0",
|
|
40
41
|
"validator": "13.15.26",
|
|
41
42
|
"winston": "^3.17.0",
|
|
42
43
|
"winston-transport": "4.9.0"
|
|
43
44
|
},
|
|
44
45
|
"peerDependencies": {
|
|
45
|
-
"@hichchi/nest-connector": "0.0.
|
|
46
|
-
"@hichchi/nest-core": "0.0.
|
|
47
|
-
"@hichchi/utils": "0.0.
|
|
46
|
+
"@hichchi/nest-connector": "0.0.3",
|
|
47
|
+
"@hichchi/nest-core": "0.0.3",
|
|
48
|
+
"@hichchi/utils": "0.0.3",
|
|
48
49
|
"@nestjs/common": "^11.1.13",
|
|
49
50
|
"@nestjs/core": "^11.1.13"
|
|
50
51
|
},
|
package/pipes/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./override-sign-up-dto.pipe"), exports);
|
|
2
5
|
//# sourceMappingURL=index.js.map
|
package/pipes/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/pipes/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/pipes/index.ts"],"names":[],"mappings":";;;AAAA,sEAA4C"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSValidateJSDoc
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.OverrideSignUpDtoPipe = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const nest_core_1 = require("@hichchi/nest-core");
|
|
8
|
+
const dtos_1 = require("../dtos");
|
|
9
|
+
const tokens_1 = require("../tokens");
|
|
7
10
|
/**
|
|
8
11
|
* Pipe for validating and transforming sign up DTOs.
|
|
9
12
|
*
|
|
@@ -45,16 +48,16 @@ let OverrideSignUpDtoPipe = class OverrideSignUpDtoPipe {
|
|
|
45
48
|
* @throws {Exception} Custom exception if a validation exception factory is provided
|
|
46
49
|
*/
|
|
47
50
|
async transform(value) {
|
|
48
|
-
const instanceOrErrors = await validateDto(this.options.signUpDto || SignUpDto, value);
|
|
51
|
+
const instanceOrErrors = await (0, nest_core_1.validateDto)(this.options.signUpDto || dtos_1.SignUpDto, value);
|
|
49
52
|
if (Array.isArray(instanceOrErrors)) {
|
|
50
53
|
if (this.options.validationExceptionFactory) {
|
|
51
54
|
if (typeof this.options.validationExceptionFactory === "function") {
|
|
52
55
|
throw this.options.validationExceptionFactory(instanceOrErrors);
|
|
53
56
|
}
|
|
54
|
-
throw validationPipeExceptionFactory(instanceOrErrors);
|
|
57
|
+
throw (0, nest_core_1.validationPipeExceptionFactory)(instanceOrErrors);
|
|
55
58
|
}
|
|
56
59
|
else {
|
|
57
|
-
throwValidationErrors(instanceOrErrors);
|
|
60
|
+
(0, nest_core_1.throwValidationErrors)(instanceOrErrors);
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
else {
|
|
@@ -62,10 +65,10 @@ let OverrideSignUpDtoPipe = class OverrideSignUpDtoPipe {
|
|
|
62
65
|
}
|
|
63
66
|
}
|
|
64
67
|
};
|
|
65
|
-
OverrideSignUpDtoPipe =
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
exports.OverrideSignUpDtoPipe = OverrideSignUpDtoPipe;
|
|
69
|
+
exports.OverrideSignUpDtoPipe = OverrideSignUpDtoPipe = tslib_1.__decorate([
|
|
70
|
+
(0, common_1.Injectable)(),
|
|
71
|
+
tslib_1.__param(0, (0, common_1.Inject)(tokens_1.AUTH_OPTIONS)),
|
|
72
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
69
73
|
], OverrideSignUpDtoPipe);
|
|
70
|
-
export { OverrideSignUpDtoPipe };
|
|
71
74
|
//# sourceMappingURL=override-sign-up-dto.pipe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"override-sign-up-dto.pipe.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/pipes/override-sign-up-dto.pipe.ts"],"names":[],"mappings":"AAAA,+BAA+B
|
|
1
|
+
{"version":3,"file":"override-sign-up-dto.pipe.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/pipes/override-sign-up-dto.pipe.ts"],"names":[],"mappings":";AAAA,+BAA+B;;;;AAE/B,2CAAmE;AACnE,kDAAwG;AACxG,kCAAoC;AAEpC,sCAAyC;AAEzC;;;;;;;;;;;;;;;GAeG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAOqB;IANnD;;;;;OAKG;IACH,YAAmD,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAE3E;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QACzB,MAAM,gBAAgB,GAAG,MAAM,IAAA,uBAAW,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,gBAAS,EAAE,KAAK,CAAC,CAAC;QACvF,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC;gBAC1C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,0BAA0B,KAAK,UAAU,EAAE,CAAC;oBAChE,MAAM,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;gBACpE,CAAC;gBAED,MAAM,IAAA,0CAA8B,EAAC,gBAAgB,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACJ,IAAA,iCAAqB,EAAC,gBAAgB,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,gBAAgB,CAAC;QAC5B,CAAC;IACL,CAAC;CACJ,CAAA;AAtCY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;IAQI,mBAAA,IAAA,eAAM,EAAC,qBAAY,CAAC,CAAA;;GAPxB,qBAAqB,CAsCjC"}
|
package/providers/index.js
CHANGED
package/providers/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/providers/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-auth/src/providers/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC"}
|
package/readme-top.md
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
<!--suppress ALL -->
|
|
3
2
|
<div align="center">
|
|
4
3
|
|
|
@@ -59,45 +58,46 @@ import { EntityId } from "@hichchi/nest-connector/crud";
|
|
|
59
58
|
|
|
60
59
|
@Injectable()
|
|
61
60
|
export class UserService implements IUserService {
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Find user by email address (required for email-based authentication)
|
|
63
|
+
*/
|
|
64
|
+
getUserByEmail(email: string): Promise<(User & { email: string }) | null> {
|
|
64
65
|
// Implement your database query logic here
|
|
65
66
|
// Example: return await this.userRepository.findOne({ where: { email } });
|
|
66
|
-
const user = await this.findUserByEmail(email);
|
|
67
|
-
return user;
|
|
68
67
|
}
|
|
69
68
|
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Find user by username (required for username-based authentication)
|
|
71
|
+
*/
|
|
72
|
+
getUserByUsername(username: string): Promise<(User & { username: string }) | null> {
|
|
72
73
|
// Implement your database query logic here
|
|
73
|
-
// Example: return
|
|
74
|
-
const user = await this.findUserByUsername(username);
|
|
75
|
-
return user;
|
|
74
|
+
// Example: return this.userRepository.findOne({ where: { username } });
|
|
76
75
|
}
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Find user by ID (required for token validation and user profile operations)
|
|
79
|
+
*/
|
|
80
|
+
getUserById(id: EntityId): Promise<User | null> {
|
|
80
81
|
// Implement your database query logic here
|
|
81
|
-
// Example: return
|
|
82
|
-
const user = await this.findUserById(id);
|
|
83
|
-
return user;
|
|
82
|
+
// Example: return this.userRepository.findOne({ where: { id } });
|
|
84
83
|
}
|
|
85
84
|
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Create new user during registration (supports both local and OAuth registration)
|
|
87
|
+
*/
|
|
88
|
+
signUpUser(userDto: Partial<User>, signUpType: AuthProvider, profile?: GoogleProfile): Promise<User | null> {
|
|
88
89
|
// Implement user creation logic here
|
|
89
90
|
// Handle password hashing for local registration
|
|
90
91
|
// Handle OAuth profile data for social registration
|
|
91
|
-
|
|
92
|
-
return newUser;
|
|
92
|
+
// Example: return this.createUser(userDto, signUpType, profile);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
/**
|
|
96
|
+
* Update existing user information (required for profile updates)
|
|
97
|
+
*/
|
|
98
|
+
updateUserById(id: EntityId, userDto: Partial<User>, updatedBy: User): Promise<User | null> {
|
|
97
99
|
// Implement user update logic here
|
|
98
|
-
// Example: return
|
|
99
|
-
const updatedUser = await this.updateUser(id, userDto, updatedBy);
|
|
100
|
-
return updatedUser;
|
|
100
|
+
// Example: return this.userRepository.update(id, userDto);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
```
|