@skyapp-labs/blueprint-backend-core 1.9.0 → 1.10.0
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 +8 -2
- package/dist/core.module.d.ts.map +1 -1
- package/dist/core.module.js +2 -0
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/auth/events/auth.events.d.ts +20 -0
- package/dist/modules/auth/events/auth.events.d.ts.map +1 -0
- package/dist/modules/auth/events/auth.events.js +8 -0
- package/dist/modules/auth/events/auth.events.js.map +1 -0
- package/dist/modules/auth/events/index.d.ts +2 -0
- package/dist/modules/auth/events/index.d.ts.map +1 -0
- package/dist/modules/auth/events/index.js +18 -0
- package/dist/modules/auth/events/index.js.map +1 -0
- package/dist/modules/auth/services/login.service.d.ts +4 -1
- package/dist/modules/auth/services/login.service.d.ts.map +1 -1
- package/dist/modules/auth/services/login.service.js +33 -2
- package/dist/modules/auth/services/login.service.js.map +1 -1
- package/dist/modules/auth/services/registration.service.d.ts +4 -1
- package/dist/modules/auth/services/registration.service.d.ts.map +1 -1
- package/dist/modules/auth/services/registration.service.js +42 -4
- package/dist/modules/auth/services/registration.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# [1.
|
|
1
|
+
# [1.10.0](https://github.com/Skyapp-Labs/blueprint-backend-core/compare/v1.9.0...v1.10.0) (2026-06-30)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
### Features
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* release v1.9.0 — implement auth lifecycle events ([ef4a144](https://github.com/Skyapp-Labs/blueprint-backend-core/commit/ef4a144772748df28346721ee5f3c64d4901e40a))
|
|
7
7
|
|
|
8
8
|
# Changelog
|
|
9
9
|
|
|
@@ -13,6 +13,12 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and
|
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
+
## [1.9.0] - 2026-06-30
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- **Auth lifecycle events** — the core now emits `auth.login.completed` and `auth.registration.completed` via `@nestjs/event-emitter` after a successful login/registration (both phone and email flows). Consuming apps subscribe with `@OnEvent(AUTH_EVENTS.LOGIN_COMPLETED)` to run custom side effects (e.g. call another service) without modifying the library. Event names and typed payloads (`AUTH_EVENTS`, `AuthLoginCompletedEvent`, `AuthRegistrationCompletedEvent`) are exported from the package, and `CoreModule.forRoot()` registers `EventEmitterModule.forRoot()` globally so listeners are discovered automatically. Listeners are fire-and-forget: a throwing or slow listener is logged and never breaks or blocks the auth response.
|
|
21
|
+
|
|
16
22
|
## [1.8.2] - 2026-06-23
|
|
17
23
|
|
|
18
24
|
### Fixed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAU,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAgBnF,MAAM,WAAW,iBAAiB;IAKjC,OAAO,CAAC,EAAE;QAET,KAAK,CAAC,EAAE,OAAO,CAAC;QAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB,MAAM,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACF;AAiBD,qBACa,UAAU;IACtB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,iBAAsB,GAAG,aAAa;CAqC9D"}
|
package/dist/core.module.js
CHANGED
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.CoreModule = void 0;
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const core_1 = require("@nestjs/core");
|
|
13
|
+
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
13
14
|
const settings_module_1 = require("./modules/settings/settings.module");
|
|
14
15
|
const auth_module_1 = require("./modules/auth/auth.module");
|
|
15
16
|
const sessions_module_1 = require("./modules/sessions/sessions.module");
|
|
@@ -31,6 +32,7 @@ let CoreModule = CoreModule_1 = class CoreModule {
|
|
|
31
32
|
const imports = [
|
|
32
33
|
redis_module_1.RedisModule.forRoot(),
|
|
33
34
|
jobs_module_1.JobsModule.register(),
|
|
35
|
+
event_emitter_1.EventEmitterModule.forRoot(),
|
|
34
36
|
settings_module_1.SettingsModule,
|
|
35
37
|
users_module_1.UsersModule,
|
|
36
38
|
roles_module_1.RolesModule,
|
package/dist/core.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAmF;AACnF,uCAA+C;AAC/C,wEAAoE;AACpE,4DAAwD;AACxD,wEAAoE;AACpE,qEAAiE;AACjE,+DAA2D;AAC3D,+DAA2D;AAC3D,uFAAmF;AACnF,kEAA8D;AAC9D,+DAA2D;AAC3D,wDAAoD;AACpD,4DAAwD;AACxD,iFAA6E;AAiCtE,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACtB,MAAM,CAAC,OAAO,CAAC,UAA6B,EAAE;QAC7C,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;QAC1C,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;QAE5C,MAAM,OAAO,GAAG;YAEf,0BAAW,CAAC,OAAO,EAAE;YACrB,wBAAU,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAmF;AACnF,uCAA+C;AAC/C,yDAA2D;AAC3D,wEAAoE;AACpE,4DAAwD;AACxD,wEAAoE;AACpE,qEAAiE;AACjE,+DAA2D;AAC3D,+DAA2D;AAC3D,uFAAmF;AACnF,kEAA8D;AAC9D,+DAA2D;AAC3D,wDAAoD;AACpD,4DAAwD;AACxD,iFAA6E;AAiCtE,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACtB,MAAM,CAAC,OAAO,CAAC,UAA6B,EAAE;QAC7C,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;QAC1C,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;QAE5C,MAAM,OAAO,GAAG;YAEf,0BAAW,CAAC,OAAO,EAAE;YACrB,wBAAU,CAAC,QAAQ,EAAE;YAIrB,kCAAkB,CAAC,OAAO,EAAE;YAG5B,gCAAc;YACd,0BAAW;YACX,0BAAW;YACX,wBAAU;YACV,gCAAc;YACd,8BAAa;YACb,sCAAiB;YAGjB,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,0CAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,4BAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,0BAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,YAAU;YAClB,OAAO;YACP,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAe,EAAE,QAAQ,EAAE,mCAA0B,EAAE,CAAC;YAC/E,OAAO,EAAE,OAAO;SAChB,CAAC;IACH,CAAC;CACD,CAAA;AAtCY,gCAAU;qBAAV,UAAU;IADtB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CAsCtB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export { AuthModule } from './modules/auth/auth.module';
|
|
|
21
21
|
export * from './modules/auth/dto';
|
|
22
22
|
export * from './modules/auth/entities';
|
|
23
23
|
export * from './modules/auth/providers/interfaces';
|
|
24
|
+
export * from './modules/auth/events';
|
|
24
25
|
export { SessionsModule } from './modules/sessions/sessions.module';
|
|
25
26
|
export { ProfileModule } from './modules/profile/profile.module';
|
|
26
27
|
export { UsersModule } from './modules/users/users.module';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,YAAY,EACX,gBAAgB,EAChB,cAAc,EACd,2BAA2B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,YAAY,EACX,gBAAgB,EAChB,cAAc,EACd,2BAA2B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sCAAsC,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -54,6 +54,7 @@ Object.defineProperty(exports, "AuthModule", { enumerable: true, get: function (
|
|
|
54
54
|
__exportStar(require("./modules/auth/dto"), exports);
|
|
55
55
|
__exportStar(require("./modules/auth/entities"), exports);
|
|
56
56
|
__exportStar(require("./modules/auth/providers/interfaces"), exports);
|
|
57
|
+
__exportStar(require("./modules/auth/events"), exports);
|
|
57
58
|
var sessions_module_1 = require("./modules/sessions/sessions.module");
|
|
58
59
|
Object.defineProperty(exports, "SessionsModule", { enumerable: true, get: function () { return sessions_module_1.SessionsModule; } });
|
|
59
60
|
var profile_module_1 = require("./modules/profile/profile.module");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAInB,kDAA2E;AAAlE,uGAAA,SAAS,OAAA;AAAE,uHAAA,yBAAyB,OAAA;AAC7C,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AACvB,0DAAwD;AAA/C,+GAAA,aAAa,OAAA;AACtB,8CAK2B;AAJ1B,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,qHAAA,yBAAyB,OAAA;AACzB,6GAAA,iBAAiB,OAAA;AAGlB,sDAAkE;AAAzD,2GAAA,WAAW,OAAA;AAAE,4GAAA,YAAY,OAAA;AAClC,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AACvB,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AAGvB,2CAAyB;AAGzB,gEAA8D;AAArD,6GAAA,YAAY,OAAA;AACrB,0DAAwD;AAA/C,yGAAA,UAAU,OAAA;AACnB,+DAA6D;AAApD,uGAAA,SAAS,OAAA;AAMlB,iEAAgE;AAAvD,0GAAA,WAAW,OAAA;AAEpB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AAGvB,sDAAyD;AAAhD,wGAAA,YAAY,OAAA;AAGrB,0DAAwD;AAA/C,yGAAA,UAAU,OAAA;AACnB,qDAAmC;AACnC,0DAAwC;AACxC,sEAAoD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAInB,kDAA2E;AAAlE,uGAAA,SAAS,OAAA;AAAE,uHAAA,yBAAyB,OAAA;AAC7C,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AACvB,0DAAwD;AAA/C,+GAAA,aAAa,OAAA;AACtB,8CAK2B;AAJ1B,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,qHAAA,yBAAyB,OAAA;AACzB,6GAAA,iBAAiB,OAAA;AAGlB,sDAAkE;AAAzD,2GAAA,WAAW,OAAA;AAAE,4GAAA,YAAY,OAAA;AAClC,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AACvB,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AAGvB,2CAAyB;AAGzB,gEAA8D;AAArD,6GAAA,YAAY,OAAA;AACrB,0DAAwD;AAA/C,yGAAA,UAAU,OAAA;AACnB,+DAA6D;AAApD,uGAAA,SAAS,OAAA;AAMlB,iEAAgE;AAAvD,0GAAA,WAAW,OAAA;AAEpB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AAGvB,sDAAyD;AAAhD,wGAAA,YAAY,OAAA;AAGrB,0DAAwD;AAA/C,yGAAA,UAAU,OAAA;AACnB,qDAAmC;AACnC,0DAAwC;AACxC,sEAAoD;AACpD,wDAAsC;AAEtC,sEAAoE;AAA3D,iHAAA,cAAc,OAAA;AAEvB,mEAAiE;AAAxD,+GAAA,aAAa,OAAA;AAEtB,6DAA2D;AAAlD,2GAAA,WAAW,OAAA;AACpB,wEAAsE;AAA7D,6GAAA,YAAY,OAAA;AACrB,oEAAwE;AAA/D,mGAAA,IAAI,OAAA;AAAE,yGAAA,UAAU,OAAA;AAEzB,+EAA6E;AAApE,uHAAA,iBAAiB,OAAA;AAC1B,wDAAsC;AAEtC,6DAA2D;AAAlD,2GAAA,WAAW,OAAA;AACpB,2DAAyC;AACzC,2DAAyC;AACzC,sDAAoC;AACpC,2DAAyC;AACzC,uEAAqD;AAErD,qFAAmF;AAA1E,2HAAA,mBAAmB,OAAA;AAE5B,sEAAoE;AAA3D,iHAAA,cAAc,OAAA;AACvB,6EAA2D;AAC3D,+EAA6D;AAC7D,uEAAqD;AACrD,sEAAoD;AAEpD,6DAA2D;AAAlD,2GAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { UserResponseDto } from '../../users/dto/user.dto';
|
|
2
|
+
export declare const AUTH_EVENTS: {
|
|
3
|
+
readonly LOGIN_COMPLETED: "auth.login.completed";
|
|
4
|
+
readonly REGISTRATION_COMPLETED: "auth.registration.completed";
|
|
5
|
+
};
|
|
6
|
+
export type AuthEventName = (typeof AUTH_EVENTS)[keyof typeof AUTH_EVENTS];
|
|
7
|
+
export type AuthMethod = 'phone' | 'email';
|
|
8
|
+
export interface AuthEventBase {
|
|
9
|
+
userId: string;
|
|
10
|
+
user: UserResponseDto;
|
|
11
|
+
roles: string[];
|
|
12
|
+
method: AuthMethod;
|
|
13
|
+
provider?: string;
|
|
14
|
+
ipAddress?: string;
|
|
15
|
+
deviceInfo?: string;
|
|
16
|
+
at: Date;
|
|
17
|
+
}
|
|
18
|
+
export type AuthLoginCompletedEvent = AuthEventBase;
|
|
19
|
+
export type AuthRegistrationCompletedEvent = AuthEventBase;
|
|
20
|
+
//# sourceMappingURL=auth.events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.events.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/events/auth.events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAc3D,eAAO,MAAM,WAAW;;;CAKd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAG3E,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAG3C,MAAM,WAAW,aAAa;IAE7B,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,eAAe,CAAC;IAEtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,MAAM,EAAE,UAAU,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,EAAE,EAAE,IAAI,CAAC;CACT;AAGD,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAGpD,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AUTH_EVENTS = void 0;
|
|
4
|
+
exports.AUTH_EVENTS = {
|
|
5
|
+
LOGIN_COMPLETED: 'auth.login.completed',
|
|
6
|
+
REGISTRATION_COMPLETED: 'auth.registration.completed',
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=auth.events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.events.js","sourceRoot":"","sources":["../../../../src/modules/auth/events/auth.events.ts"],"names":[],"mappings":";;;AAca,QAAA,WAAW,GAAG;IAE1B,eAAe,EAAE,sBAAsB;IAEvC,sBAAsB,EAAE,6BAA6B;CAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./auth.events"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/auth/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import IORedis from 'ioredis';
|
|
2
|
+
import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
2
3
|
import { TokenService } from '../../sessions/services/token.service';
|
|
3
4
|
import { UsersService } from '../../users/services/users.service';
|
|
4
5
|
import { TokenResponse } from '../dto/token.dto';
|
|
@@ -11,11 +12,13 @@ export declare class LoginService {
|
|
|
11
12
|
private readonly providerRegistry;
|
|
12
13
|
private readonly redis;
|
|
13
14
|
private readonly settingsService;
|
|
15
|
+
private readonly eventEmitter;
|
|
14
16
|
private readonly logger;
|
|
15
|
-
constructor(usersService: UsersService, tokenService: TokenService, providerRegistry: AuthProviderRegistry, redis: IORedis | null, settingsService: SettingsService);
|
|
17
|
+
constructor(usersService: UsersService, tokenService: TokenService, providerRegistry: AuthProviderRegistry, redis: IORedis | null, settingsService: SettingsService, eventEmitter?: EventEmitter2 | null);
|
|
16
18
|
login(dto: LoginDto, deviceInfo?: string, ipAddress?: string): Promise<TokenResponse>;
|
|
17
19
|
private loginWithPhone;
|
|
18
20
|
private loginWithEmailViaProvider;
|
|
21
|
+
private emitLoginCompleted;
|
|
19
22
|
private assertAccountActive;
|
|
20
23
|
private logSuccess;
|
|
21
24
|
private logFailure;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/services/login.service.ts"],"names":[],"mappings":"AASA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAItE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"login.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/services/login.service.ts"],"names":[],"mappings":"AASA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAItE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAK3E,qBACa,YAAY;IAIvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAGjC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAX9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAGtC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,oBAAoB,EAGtC,KAAK,EAAE,OAAO,GAAG,IAAI,EACrB,eAAe,EAAE,eAAe,EAEhC,YAAY,GAAE,aAAa,GAAG,IAAW;IAGrD,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YAS7E,cAAc;YAgDd,yBAAyB;YAqFzB,kBAAkB;IAmChC,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,UAAU;YAUJ,sBAAsB;YA4BtB,mBAAmB;YAsBnB,mBAAmB;CAIjC"}
|
|
@@ -24,13 +24,15 @@ const redis_module_1 = require("../../../config/redis.module");
|
|
|
24
24
|
const settings_service_1 = require("../../settings/services/settings.service");
|
|
25
25
|
const settings_keys_1 = require("../../settings/constants/settings.keys");
|
|
26
26
|
const user_dto_1 = require("../../users/dto/user.dto");
|
|
27
|
+
const auth_events_1 = require("../events/auth.events");
|
|
27
28
|
let LoginService = LoginService_1 = class LoginService {
|
|
28
|
-
constructor(usersService, tokenService, providerRegistry, redis, settingsService) {
|
|
29
|
+
constructor(usersService, tokenService, providerRegistry, redis, settingsService, eventEmitter = null) {
|
|
29
30
|
this.usersService = usersService;
|
|
30
31
|
this.tokenService = tokenService;
|
|
31
32
|
this.providerRegistry = providerRegistry;
|
|
32
33
|
this.redis = redis;
|
|
33
34
|
this.settingsService = settingsService;
|
|
35
|
+
this.eventEmitter = eventEmitter;
|
|
34
36
|
this.logger = new common_1.Logger(LoginService_1.name);
|
|
35
37
|
}
|
|
36
38
|
async login(dto, deviceInfo, ipAddress) {
|
|
@@ -69,6 +71,7 @@ let LoginService = LoginService_1 = class LoginService {
|
|
|
69
71
|
deviceInfo,
|
|
70
72
|
});
|
|
71
73
|
this.logSuccess({ userId: user.id, method: 'phone', ipAddress, deviceInfo });
|
|
74
|
+
await this.emitLoginCompleted({ user, method: 'phone', ipAddress, deviceInfo });
|
|
72
75
|
return tokens;
|
|
73
76
|
}
|
|
74
77
|
async loginWithEmailViaProvider(email, password, deviceInfo, ipAddress) {
|
|
@@ -120,8 +123,35 @@ let LoginService = LoginService_1 = class LoginService {
|
|
|
120
123
|
ipAddress,
|
|
121
124
|
deviceInfo,
|
|
122
125
|
});
|
|
126
|
+
await this.emitLoginCompleted({
|
|
127
|
+
user,
|
|
128
|
+
method: 'email',
|
|
129
|
+
provider: provider.name,
|
|
130
|
+
ipAddress,
|
|
131
|
+
deviceInfo,
|
|
132
|
+
});
|
|
123
133
|
return tokens;
|
|
124
134
|
}
|
|
135
|
+
async emitLoginCompleted(args) {
|
|
136
|
+
if (!this.eventEmitter)
|
|
137
|
+
return;
|
|
138
|
+
const payload = {
|
|
139
|
+
userId: args.user.id,
|
|
140
|
+
user: user_dto_1.UserResponseDto.fromUser(args.user),
|
|
141
|
+
roles: args.user.roles?.map((role) => role.slug) ?? [],
|
|
142
|
+
method: args.method,
|
|
143
|
+
provider: args.provider,
|
|
144
|
+
ipAddress: args.ipAddress,
|
|
145
|
+
deviceInfo: args.deviceInfo,
|
|
146
|
+
at: new Date(),
|
|
147
|
+
};
|
|
148
|
+
try {
|
|
149
|
+
await this.eventEmitter.emitAsync(auth_events_1.AUTH_EVENTS.LOGIN_COMPLETED, payload);
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
this.logger.error(`${auth_events_1.AUTH_EVENTS.LOGIN_COMPLETED} listener failed: ${err.message}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
125
155
|
assertAccountActive(user, method, ipAddress, deviceInfo) {
|
|
126
156
|
if (!user.isActive ||
|
|
127
157
|
user.status === user_entity_1.UserStatus.SUSPENDED ||
|
|
@@ -210,8 +240,9 @@ exports.LoginService = LoginService = LoginService_1 = __decorate([
|
|
|
210
240
|
(0, common_1.Injectable)(),
|
|
211
241
|
__param(3, (0, common_1.Optional)()),
|
|
212
242
|
__param(3, (0, common_1.Inject)(redis_module_1.REDIS_CLIENT)),
|
|
243
|
+
__param(5, (0, common_1.Optional)()),
|
|
213
244
|
__metadata("design:paramtypes", [users_service_1.UsersService,
|
|
214
245
|
token_service_1.TokenService,
|
|
215
|
-
provider_registry_1.AuthProviderRegistry, Object, settings_service_1.SettingsService])
|
|
246
|
+
provider_registry_1.AuthProviderRegistry, Object, settings_service_1.SettingsService, Object])
|
|
216
247
|
], LoginService);
|
|
217
248
|
//# sourceMappingURL=login.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.service.js","sourceRoot":"","sources":["../../../../src/modules/auth/services/login.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAQwB;
|
|
1
|
+
{"version":3,"file":"login.service.js","sourceRoot":"","sources":["../../../../src/modules/auth/services/login.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
1
2
|
import { UsersService } from '../../users/services/users.service';
|
|
2
3
|
import { TokenService } from '../../sessions/services/token.service';
|
|
3
4
|
import { TokenResponse } from '../dto/token.dto';
|
|
@@ -15,11 +16,13 @@ export declare class RegistrationService {
|
|
|
15
16
|
private readonly userRolesService;
|
|
16
17
|
private readonly settingsService;
|
|
17
18
|
private readonly dataSource;
|
|
19
|
+
private readonly eventEmitter;
|
|
18
20
|
private readonly logger;
|
|
19
|
-
constructor(usersService: UsersService, tokenService: TokenService, providerRegistry: AuthProviderRegistry, rolesService: RolesService, userRolesService: UserRolesService, settingsService: SettingsService, dataSource: DataSource);
|
|
21
|
+
constructor(usersService: UsersService, tokenService: TokenService, providerRegistry: AuthProviderRegistry, rolesService: RolesService, userRolesService: UserRolesService, settingsService: SettingsService, dataSource: DataSource, eventEmitter?: EventEmitter2 | null);
|
|
20
22
|
register(dto: RegisterDto, deviceInfo?: string, ipAddress?: string): Promise<TokenResponse>;
|
|
21
23
|
private registerWithPhone;
|
|
22
24
|
private registerWithEmail;
|
|
25
|
+
private emitRegistrationCompleted;
|
|
23
26
|
private assertEmailUnique;
|
|
24
27
|
private assertPhoneUnique;
|
|
25
28
|
private extractCountryCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/services/registration.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registration.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/services/registration.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAgB,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAepD,qBACa,mBAAmB;IAI9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAG7C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,oBAAoB,EACtC,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAEhC,UAAU,EAAE,UAAU,EAEtB,YAAY,GAAE,aAAa,GAAG,IAAW;IAKrD,QAAQ,CACb,GAAG,EAAE,WAAW,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC;YASX,iBAAiB;YAmDjB,iBAAiB;YAsEjB,yBAAyB;YA+BzB,iBAAiB;YAKjB,iBAAiB;IAQ/B,OAAO,CAAC,kBAAkB;YAWZ,UAAU;YA8BV,iBAAiB;IAmB/B,OAAO,CAAC,eAAe;CAiBvB"}
|
|
@@ -51,6 +51,7 @@ const common_1 = require("@nestjs/common");
|
|
|
51
51
|
const libphonenumber_js_1 = require("libphonenumber-js");
|
|
52
52
|
const users_service_1 = require("../../users/services/users.service");
|
|
53
53
|
const token_service_1 = require("../../sessions/services/token.service");
|
|
54
|
+
const auth_events_1 = require("../events/auth.events");
|
|
54
55
|
const providers_1 = require("../providers");
|
|
55
56
|
const roles_service_1 = require("../../roles/services/roles.service");
|
|
56
57
|
const user_roles_service_1 = require("../../roles/services/user-roles.service");
|
|
@@ -61,7 +62,7 @@ const argon2 = __importStar(require("argon2"));
|
|
|
61
62
|
const user_dto_1 = require("../../users/dto/user.dto");
|
|
62
63
|
const typeorm_2 = require("@nestjs/typeorm");
|
|
63
64
|
let RegistrationService = RegistrationService_1 = class RegistrationService {
|
|
64
|
-
constructor(usersService, tokenService, providerRegistry, rolesService, userRolesService, settingsService, dataSource) {
|
|
65
|
+
constructor(usersService, tokenService, providerRegistry, rolesService, userRolesService, settingsService, dataSource, eventEmitter = null) {
|
|
65
66
|
this.usersService = usersService;
|
|
66
67
|
this.tokenService = tokenService;
|
|
67
68
|
this.providerRegistry = providerRegistry;
|
|
@@ -69,6 +70,7 @@ let RegistrationService = RegistrationService_1 = class RegistrationService {
|
|
|
69
70
|
this.userRolesService = userRolesService;
|
|
70
71
|
this.settingsService = settingsService;
|
|
71
72
|
this.dataSource = dataSource;
|
|
73
|
+
this.eventEmitter = eventEmitter;
|
|
72
74
|
this.logger = new common_1.Logger(RegistrationService_1.name);
|
|
73
75
|
}
|
|
74
76
|
async register(dto, deviceInfo, ipAddress) {
|
|
@@ -99,12 +101,19 @@ let RegistrationService = RegistrationService_1 = class RegistrationService {
|
|
|
99
101
|
ipAddress,
|
|
100
102
|
deviceInfo,
|
|
101
103
|
});
|
|
102
|
-
|
|
104
|
+
const tokens = await this.tokenService.generateTokens({
|
|
103
105
|
user: user_dto_1.UserResponseDto.fromUser(createdUser),
|
|
104
106
|
roles: createdUser.roles.map((role) => role.slug),
|
|
105
107
|
ipAddress,
|
|
106
108
|
deviceInfo,
|
|
107
109
|
});
|
|
110
|
+
await this.emitRegistrationCompleted({
|
|
111
|
+
user: createdUser,
|
|
112
|
+
method: 'phone',
|
|
113
|
+
ipAddress,
|
|
114
|
+
deviceInfo,
|
|
115
|
+
});
|
|
116
|
+
return tokens;
|
|
108
117
|
}
|
|
109
118
|
async registerWithEmail(dto, deviceInfo, ipAddress) {
|
|
110
119
|
const { email, password, phoneNumber, profile } = dto;
|
|
@@ -138,12 +147,40 @@ let RegistrationService = RegistrationService_1 = class RegistrationService {
|
|
|
138
147
|
ipAddress,
|
|
139
148
|
deviceInfo,
|
|
140
149
|
});
|
|
141
|
-
|
|
150
|
+
const tokens = await this.tokenService.generateTokens({
|
|
142
151
|
user: user_dto_1.UserResponseDto.fromUser(createdUser),
|
|
143
152
|
roles: createdUser.roles.map((role) => role.slug),
|
|
144
153
|
ipAddress,
|
|
145
154
|
deviceInfo,
|
|
146
155
|
});
|
|
156
|
+
await this.emitRegistrationCompleted({
|
|
157
|
+
user: createdUser,
|
|
158
|
+
method: 'email',
|
|
159
|
+
provider: provider.name,
|
|
160
|
+
ipAddress,
|
|
161
|
+
deviceInfo,
|
|
162
|
+
});
|
|
163
|
+
return tokens;
|
|
164
|
+
}
|
|
165
|
+
async emitRegistrationCompleted(args) {
|
|
166
|
+
if (!this.eventEmitter)
|
|
167
|
+
return;
|
|
168
|
+
const payload = {
|
|
169
|
+
userId: args.user.id,
|
|
170
|
+
user: user_dto_1.UserResponseDto.fromUser(args.user),
|
|
171
|
+
roles: args.user.roles?.map((role) => role.slug) ?? [],
|
|
172
|
+
method: args.method,
|
|
173
|
+
provider: args.provider,
|
|
174
|
+
ipAddress: args.ipAddress,
|
|
175
|
+
deviceInfo: args.deviceInfo,
|
|
176
|
+
at: new Date(),
|
|
177
|
+
};
|
|
178
|
+
try {
|
|
179
|
+
await this.eventEmitter.emitAsync(auth_events_1.AUTH_EVENTS.REGISTRATION_COMPLETED, payload);
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
this.logger.error(`${auth_events_1.AUTH_EVENTS.REGISTRATION_COMPLETED} listener failed: ${err.message}`);
|
|
183
|
+
}
|
|
147
184
|
}
|
|
148
185
|
async assertEmailUnique(email) {
|
|
149
186
|
const existing = await this.usersService.findBy({ email });
|
|
@@ -217,12 +254,13 @@ exports.RegistrationService = RegistrationService;
|
|
|
217
254
|
exports.RegistrationService = RegistrationService = RegistrationService_1 = __decorate([
|
|
218
255
|
(0, common_1.Injectable)(),
|
|
219
256
|
__param(6, (0, typeorm_2.InjectDataSource)()),
|
|
257
|
+
__param(7, (0, common_1.Optional)()),
|
|
220
258
|
__metadata("design:paramtypes", [users_service_1.UsersService,
|
|
221
259
|
token_service_1.TokenService,
|
|
222
260
|
providers_1.AuthProviderRegistry,
|
|
223
261
|
roles_service_1.RolesService,
|
|
224
262
|
user_roles_service_1.UserRolesService,
|
|
225
263
|
settings_service_1.SettingsService,
|
|
226
|
-
typeorm_1.DataSource])
|
|
264
|
+
typeorm_1.DataSource, Object])
|
|
227
265
|
], RegistrationService);
|
|
228
266
|
//# sourceMappingURL=registration.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.service.js","sourceRoot":"","sources":["../../../../src/modules/auth/services/registration.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"registration.service.js","sourceRoot":"","sources":["../../../../src/modules/auth/services/registration.service.ts"],"names":[],"mappings":"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"}
|