Initial commit - Event Planner application
This commit is contained in:
10
dist/core/api/auth.controller.d.ts
vendored
Normal file
10
dist/core/api/auth.controller.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
import { TokenService } from '../services/token.service';
|
||||
export declare class AuthController {
|
||||
private readonly tokenService;
|
||||
constructor(tokenService: TokenService);
|
||||
createToken(body: {
|
||||
name?: string;
|
||||
expiresInHours?: number;
|
||||
}): import("../entities/token.entity").AuthToken;
|
||||
}
|
||||
//# sourceMappingURL=auth.controller.d.ts.map
|
||||
1
dist/core/api/auth.controller.d.ts.map
vendored
Normal file
1
dist/core/api/auth.controller.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../src/core/api/auth.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBACa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAGvD,WAAW,CAAS,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;CAGrE"}
|
||||
37
dist/core/api/auth.controller.js
vendored
Normal file
37
dist/core/api/auth.controller.js
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AuthController = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const token_service_1 = require("../services/token.service");
|
||||
let AuthController = class AuthController {
|
||||
constructor(tokenService) {
|
||||
this.tokenService = tokenService;
|
||||
}
|
||||
createToken(body) {
|
||||
return this.tokenService.createToken(body.name, body.expiresInHours);
|
||||
}
|
||||
};
|
||||
exports.AuthController = AuthController;
|
||||
__decorate([
|
||||
(0, common_1.Post)('token'),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [Object]),
|
||||
__metadata("design:returntype", void 0)
|
||||
], AuthController.prototype, "createToken", null);
|
||||
exports.AuthController = AuthController = __decorate([
|
||||
(0, common_1.Controller)('auth'),
|
||||
__metadata("design:paramtypes", [token_service_1.TokenService])
|
||||
], AuthController);
|
||||
8
dist/core/auth.guard.d.ts
vendored
Normal file
8
dist/core/auth.guard.d.ts
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
||||
import { AuthService } from './services/auth.service';
|
||||
export declare class AuthGuard implements CanActivate {
|
||||
private readonly authService;
|
||||
constructor(authService: AuthService);
|
||||
canActivate(context: ExecutionContext): boolean;
|
||||
}
|
||||
//# sourceMappingURL=auth.guard.d.ts.map
|
||||
1
dist/core/auth.guard.d.ts.map
vendored
Normal file
1
dist/core/auth.guard.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"auth.guard.d.ts","sourceRoot":"","sources":["../../src/core/auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAqC,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,qBACa,SAAU,YAAW,WAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAErD,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO;CAgBhD"}
|
||||
38
dist/core/auth.guard.js
vendored
Normal file
38
dist/core/auth.guard.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AuthGuard = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const auth_service_1 = require("./services/auth.service");
|
||||
let AuthGuard = class AuthGuard {
|
||||
constructor(authService) {
|
||||
this.authService = authService;
|
||||
}
|
||||
canActivate(context) {
|
||||
const request = context.switchToHttp().getRequest();
|
||||
const authHeader = request.headers['authorization'] || '';
|
||||
const token = Array.isArray(authHeader) ? authHeader[0] : authHeader;
|
||||
if (!token) {
|
||||
throw new common_1.UnauthorizedException();
|
||||
}
|
||||
const payload = this.authService.verify(token.replace(/^Bearer\s+/i, ''));
|
||||
if (!payload) {
|
||||
throw new common_1.UnauthorizedException();
|
||||
}
|
||||
request.user = payload;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
exports.AuthGuard = AuthGuard;
|
||||
exports.AuthGuard = AuthGuard = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [auth_service_1.AuthService])
|
||||
], AuthGuard);
|
||||
3
dist/core/auth.module.d.ts
vendored
Normal file
3
dist/core/auth.module.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export declare class AuthModule {
|
||||
}
|
||||
//# sourceMappingURL=auth.module.d.ts.map
|
||||
1
dist/core/auth.module.d.ts.map
vendored
Normal file
1
dist/core/auth.module.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../../src/core/auth.module.ts"],"names":[],"mappings":"AAKA,qBAIa,UAAU;CAAG"}
|
||||
22
dist/core/auth.module.js
vendored
Normal file
22
dist/core/auth.module.js
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AuthModule = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const auth_service_1 = require("./services/auth.service");
|
||||
const token_service_1 = require("./services/token.service");
|
||||
const auth_guard_1 = require("./auth.guard");
|
||||
let AuthModule = class AuthModule {
|
||||
};
|
||||
exports.AuthModule = AuthModule;
|
||||
exports.AuthModule = AuthModule = __decorate([
|
||||
(0, common_1.Module)({
|
||||
providers: [auth_service_1.AuthService, token_service_1.TokenService, auth_guard_1.AuthGuard],
|
||||
exports: [auth_service_1.AuthService, token_service_1.TokenService, auth_guard_1.AuthGuard],
|
||||
})
|
||||
], AuthModule);
|
||||
3
dist/core/core.module.d.ts
vendored
Normal file
3
dist/core/core.module.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export declare class CoreModule {
|
||||
}
|
||||
//# sourceMappingURL=core.module.d.ts.map
|
||||
1
dist/core/core.module.d.ts.map
vendored
Normal file
1
dist/core/core.module.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../../src/core/core.module.ts"],"names":[],"mappings":"AAWA,qBAoCa,UAAU;CAAG"}
|
||||
60
dist/core/core.module.js
vendored
Normal file
60
dist/core/core.module.js
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CoreModule = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const event_emitter_1 = require("@nestjs/event-emitter");
|
||||
const nestjs_1 = require("@mikro-orm/nestjs");
|
||||
const auth_module_1 = require("./auth.module");
|
||||
const module_linker_service_1 = require("./services/module-linker.service");
|
||||
const notification_service_1 = require("./services/notification.service");
|
||||
const notification_rule_service_1 = require("./services/notification-rule.service");
|
||||
const module_registry_service_1 = require("./services/module-registry.service");
|
||||
const auth_controller_1 = require("./api/auth.controller");
|
||||
const notification_rule_entity_1 = require("./entities/notification-rule.entity");
|
||||
let CoreModule = class CoreModule {
|
||||
};
|
||||
exports.CoreModule = CoreModule;
|
||||
exports.CoreModule = CoreModule = __decorate([
|
||||
(0, common_1.Module)({
|
||||
imports: [
|
||||
event_emitter_1.EventEmitterModule.forRoot(),
|
||||
nestjs_1.MikroOrmModule.forRoot({
|
||||
driver: (require('@mikro-orm/postgresql').PostgreSqlDriver),
|
||||
host: process.env.DB_HOST || 'localhost',
|
||||
port: Number(process.env.DB_PORT) || 5432,
|
||||
user: process.env.DB_USER || 'postgres',
|
||||
password: process.env.DB_PASSWORD || 'postgres',
|
||||
dbName: process.env.DB_NAME || 'planner',
|
||||
autoLoadEntities: false,
|
||||
migrations: {
|
||||
path: 'dist/migrations',
|
||||
transactional: true,
|
||||
emit: 'js',
|
||||
},
|
||||
}),
|
||||
auth_module_1.AuthModule,
|
||||
nestjs_1.MikroOrmModule.forFeature([notification_rule_entity_1.NotificationRuleSchema]),
|
||||
],
|
||||
providers: [
|
||||
module_linker_service_1.ModuleLinkerService,
|
||||
notification_service_1.NotificationService,
|
||||
notification_rule_service_1.NotificationRuleService,
|
||||
module_registry_service_1.ModuleRegistryService,
|
||||
],
|
||||
controllers: [auth_controller_1.AuthController],
|
||||
exports: [
|
||||
event_emitter_1.EventEmitterModule,
|
||||
auth_module_1.AuthModule,
|
||||
module_linker_service_1.ModuleLinkerService,
|
||||
notification_service_1.NotificationService,
|
||||
notification_rule_service_1.NotificationRuleService,
|
||||
module_registry_service_1.ModuleRegistryService,
|
||||
],
|
||||
})
|
||||
], CoreModule);
|
||||
3
dist/core/database.module.d.ts
vendored
Normal file
3
dist/core/database.module.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export declare class DatabaseModule {
|
||||
}
|
||||
//# sourceMappingURL=database.module.d.ts.map
|
||||
1
dist/core/database.module.d.ts.map
vendored
Normal file
1
dist/core/database.module.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"database.module.d.ts","sourceRoot":"","sources":["../../src/core/database.module.ts"],"names":[],"mappings":"AAIA,qBAqBa,cAAc;CAAG"}
|
||||
38
dist/core/database.module.js
vendored
Normal file
38
dist/core/database.module.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.DatabaseModule = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const nestjs_1 = require("@mikro-orm/nestjs");
|
||||
const postgresql_1 = require("@mikro-orm/postgresql");
|
||||
let DatabaseModule = class DatabaseModule {
|
||||
};
|
||||
exports.DatabaseModule = DatabaseModule;
|
||||
exports.DatabaseModule = DatabaseModule = __decorate([
|
||||
(0, common_1.Module)({
|
||||
imports: [
|
||||
nestjs_1.MikroOrmModule.forRoot({
|
||||
driver: postgresql_1.PostgreSqlDriver,
|
||||
host: process.env.DB_HOST || 'localhost',
|
||||
port: Number(process.env.DB_PORT) || 5432,
|
||||
user: process.env.DB_USER || 'postgres',
|
||||
password: process.env.DB_PASSWORD || 'postgres',
|
||||
dbName: process.env.DB_NAME || 'planner',
|
||||
autoLoadEntities: true,
|
||||
entities: ['./dist/**/*.entity.js'],
|
||||
entitiesTs: ['./src/**/*.entity.ts'],
|
||||
migrations: {
|
||||
path: 'dist/migrations',
|
||||
transactional: true,
|
||||
emit: 'js',
|
||||
},
|
||||
}),
|
||||
],
|
||||
exports: [nestjs_1.MikroOrmModule],
|
||||
})
|
||||
], DatabaseModule);
|
||||
8
dist/core/entities/base.entity.d.ts
vendored
Normal file
8
dist/core/entities/base.entity.d.ts
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
export declare abstract class BaseEntity {
|
||||
id: string;
|
||||
tenantId: string;
|
||||
metadata?: Record<string, any>;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
}
|
||||
//# sourceMappingURL=base.entity.d.ts.map
|
||||
1
dist/core/entities/base.entity.d.ts.map
vendored
Normal file
1
dist/core/entities/base.entity.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"base.entity.d.ts","sourceRoot":"","sources":["../../../src/core/entities/base.entity.ts"],"names":[],"mappings":"AAEA,8BAAsB,UAAU;IAC9B,EAAE,EAAE,MAAM,CAAY;IACtB,QAAQ,EAAG,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,SAAS,EAAE,IAAI,CAAc;IAC7B,SAAS,EAAE,IAAI,CAAc;CAC9B"}
|
||||
12
dist/core/entities/base.entity.js
vendored
Normal file
12
dist/core/entities/base.entity.js
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.BaseEntity = void 0;
|
||||
const uuid_1 = require("uuid");
|
||||
class BaseEntity {
|
||||
constructor() {
|
||||
this.id = (0, uuid_1.v4)();
|
||||
this.createdAt = new Date();
|
||||
this.updatedAt = new Date();
|
||||
}
|
||||
}
|
||||
exports.BaseEntity = BaseEntity;
|
||||
10
dist/core/entities/notification-rule.entity.d.ts
vendored
Normal file
10
dist/core/entities/notification-rule.entity.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
import { EntitySchema } from '@mikro-orm/core';
|
||||
import { BaseEntity } from './base.entity';
|
||||
export declare class NotificationRule extends BaseEntity {
|
||||
module: string;
|
||||
event: string;
|
||||
channels: Array<'email' | 'whatsapp' | 'sms' | 'custom'>;
|
||||
conditions?: Record<string, any>;
|
||||
}
|
||||
export declare const NotificationRuleSchema: EntitySchema<NotificationRule, never, import("@mikro-orm/core").EntityCtor<NotificationRule>>;
|
||||
//# sourceMappingURL=notification-rule.entity.d.ts.map
|
||||
1
dist/core/entities/notification-rule.entity.d.ts.map
vendored
Normal file
1
dist/core/entities/notification-rule.entity.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"notification-rule.entity.d.ts","sourceRoot":"","sources":["../../../src/core/entities/notification-rule.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,MAAM,EAAG,MAAM,CAAC;IAEhB,KAAK,EAAG,MAAM,CAAC;IAEf,QAAQ,EAAG,KAAK,CAAC,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;IAE1D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,sBAAsB,+FAejC,CAAC"}
|
||||
23
dist/core/entities/notification-rule.entity.js
vendored
Normal file
23
dist/core/entities/notification-rule.entity.js
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NotificationRuleSchema = exports.NotificationRule = void 0;
|
||||
const core_1 = require("@mikro-orm/core");
|
||||
const base_entity_1 = require("./base.entity");
|
||||
class NotificationRule extends base_entity_1.BaseEntity {
|
||||
}
|
||||
exports.NotificationRule = NotificationRule;
|
||||
exports.NotificationRuleSchema = new core_1.EntitySchema({
|
||||
class: NotificationRule,
|
||||
tableName: 'notification_rules',
|
||||
properties: {
|
||||
id: { primary: true, type: 'uuid', defaultRaw: 'uuid_generate_v4()' },
|
||||
tenantId: { type: 'string' },
|
||||
metadata: { type: 'json', nullable: true },
|
||||
createdAt: { type: 'date', defaultRaw: 'now()' },
|
||||
updatedAt: { type: 'date', defaultRaw: 'now()' },
|
||||
module: { type: 'string' },
|
||||
event: { type: 'string' },
|
||||
channels: { type: 'json' },
|
||||
conditions: { type: 'json', nullable: true },
|
||||
},
|
||||
});
|
||||
13
dist/core/entities/token.entity.d.ts
vendored
Normal file
13
dist/core/entities/token.entity.d.ts
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import { EntitySchema } from '@mikro-orm/core';
|
||||
export declare class AuthToken {
|
||||
id: string;
|
||||
tenantId: string;
|
||||
token: string;
|
||||
name?: string;
|
||||
expiresAt?: Date;
|
||||
metadata?: Record<string, any>;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
}
|
||||
export declare const AuthTokenSchema: EntitySchema<AuthToken, never, import("@mikro-orm/core").EntityCtor<AuthToken>>;
|
||||
//# sourceMappingURL=token.entity.d.ts.map
|
||||
1
dist/core/entities/token.entity.d.ts.map
vendored
Normal file
1
dist/core/entities/token.entity.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"token.entity.d.ts","sourceRoot":"","sources":["../../../src/core/entities/token.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,SAAS;IACpB,EAAE,EAAG,MAAM,CAAC;IACZ,QAAQ,EAAG,MAAM,CAAC;IAClB,KAAK,EAAG,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,SAAS,EAAG,IAAI,CAAC;IACjB,SAAS,EAAG,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,iFAwC1B,CAAC"}
|
||||
48
dist/core/entities/token.entity.js
vendored
Normal file
48
dist/core/entities/token.entity.js
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AuthTokenSchema = exports.AuthToken = void 0;
|
||||
const core_1 = require("@mikro-orm/core");
|
||||
class AuthToken {
|
||||
}
|
||||
exports.AuthToken = AuthToken;
|
||||
exports.AuthTokenSchema = new core_1.EntitySchema({
|
||||
class: AuthToken,
|
||||
tableName: 'auth_tokens',
|
||||
properties: {
|
||||
id: {
|
||||
primary: true,
|
||||
type: 'uuid',
|
||||
default: 'uuid_generate_v4()',
|
||||
},
|
||||
tenantId: {
|
||||
type: 'string',
|
||||
nullable: false,
|
||||
},
|
||||
token: {
|
||||
type: 'string',
|
||||
nullable: false,
|
||||
},
|
||||
name: {
|
||||
type: 'string',
|
||||
nullable: true,
|
||||
},
|
||||
expiresAt: {
|
||||
type: 'date',
|
||||
nullable: true,
|
||||
},
|
||||
metadata: {
|
||||
type: 'json',
|
||||
nullable: true,
|
||||
},
|
||||
createdAt: {
|
||||
type: 'date',
|
||||
nullable: false,
|
||||
defaultRaw: 'now()',
|
||||
},
|
||||
updatedAt: {
|
||||
type: 'date',
|
||||
nullable: false,
|
||||
defaultRaw: 'now()',
|
||||
},
|
||||
},
|
||||
});
|
||||
6
dist/core/services/auth.service.d.ts
vendored
Normal file
6
dist/core/services/auth.service.d.ts
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
export declare class AuthService {
|
||||
private readonly jwtSecret;
|
||||
sign(payload: Record<string, any>, expiresIn?: string): string;
|
||||
verify(token: string): Record<string, any> | null;
|
||||
}
|
||||
//# sourceMappingURL=auth.service.d.ts.map
|
||||
1
dist/core/services/auth.service.d.ts.map
vendored
Normal file
1
dist/core/services/auth.service.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/auth.service.ts"],"names":[],"mappings":"AAGA,qBACa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0D;IAEpF,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,SAAO,GAAG,MAAM;IAI5D,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;CAQlD"}
|
||||
65
dist/core/services/auth.service.js
vendored
Normal file
65
dist/core/services/auth.service.js
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AuthService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const jwt = __importStar(require("jsonwebtoken"));
|
||||
let AuthService = class AuthService {
|
||||
constructor() {
|
||||
this.jwtSecret = process.env.JWT_SECRET || 'default_secret';
|
||||
}
|
||||
sign(payload, expiresIn = '1d') {
|
||||
return jwt.sign(payload, this.jwtSecret, { expiresIn });
|
||||
}
|
||||
verify(token) {
|
||||
try {
|
||||
const decoded = jwt.verify(token, this.jwtSecret);
|
||||
return typeof decoded === 'string' ? { sub: decoded } : decoded;
|
||||
}
|
||||
catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
exports.AuthService = AuthService;
|
||||
exports.AuthService = AuthService = __decorate([
|
||||
(0, common_1.Injectable)()
|
||||
], AuthService);
|
||||
11
dist/core/services/module-linker.service.d.ts
vendored
Normal file
11
dist/core/services/module-linker.service.d.ts
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
export declare class ModuleLinkerService {
|
||||
/**
|
||||
* Hydrates data from multiple modules by IDs for frontend consumption.
|
||||
* @param links Array of objects with moduleName and id
|
||||
*/
|
||||
hydrate(links: Array<{
|
||||
moduleName: string;
|
||||
id: string;
|
||||
}>): Promise<any[]>;
|
||||
}
|
||||
//# sourceMappingURL=module-linker.service.d.ts.map
|
||||
1
dist/core/services/module-linker.service.d.ts.map
vendored
Normal file
1
dist/core/services/module-linker.service.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"module-linker.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/module-linker.service.ts"],"names":[],"mappings":"AAEA,qBACa,mBAAmB;IAC9B;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAKhF"}
|
||||
25
dist/core/services/module-linker.service.js
vendored
Normal file
25
dist/core/services/module-linker.service.js
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ModuleLinkerService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
let ModuleLinkerService = class ModuleLinkerService {
|
||||
/**
|
||||
* Hydrates data from multiple modules by IDs for frontend consumption.
|
||||
* @param links Array of objects with moduleName and id
|
||||
*/
|
||||
async hydrate(links) {
|
||||
// Implement hydration logic here, e.g. fetch from APIs or repositories
|
||||
// ...existing code...
|
||||
return [];
|
||||
}
|
||||
};
|
||||
exports.ModuleLinkerService = ModuleLinkerService;
|
||||
exports.ModuleLinkerService = ModuleLinkerService = __decorate([
|
||||
(0, common_1.Injectable)()
|
||||
], ModuleLinkerService);
|
||||
13
dist/core/services/module-registry.service.d.ts
vendored
Normal file
13
dist/core/services/module-registry.service.d.ts
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
export type AdminModuleInfo = {
|
||||
key: string;
|
||||
name: string;
|
||||
description?: string;
|
||||
routePrefix?: string;
|
||||
version?: string;
|
||||
};
|
||||
export declare class ModuleRegistryService {
|
||||
private modules;
|
||||
registerModule(info: AdminModuleInfo): void;
|
||||
getModules(): AdminModuleInfo[];
|
||||
}
|
||||
//# sourceMappingURL=module-registry.service.d.ts.map
|
||||
1
dist/core/services/module-registry.service.d.ts.map
vendored
Normal file
1
dist/core/services/module-registry.service.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"module-registry.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/module-registry.service.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBACa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAyB;IAExC,cAAc,CAAC,IAAI,EAAE,eAAe;IAMpC,UAAU,IAAI,eAAe,EAAE;CAGhC"}
|
||||
27
dist/core/services/module-registry.service.js
vendored
Normal file
27
dist/core/services/module-registry.service.js
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ModuleRegistryService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
let ModuleRegistryService = class ModuleRegistryService {
|
||||
constructor() {
|
||||
this.modules = [];
|
||||
}
|
||||
registerModule(info) {
|
||||
if (!this.modules.find((m) => m.key === info.key)) {
|
||||
this.modules.push(info);
|
||||
}
|
||||
}
|
||||
getModules() {
|
||||
return [...this.modules];
|
||||
}
|
||||
};
|
||||
exports.ModuleRegistryService = ModuleRegistryService;
|
||||
exports.ModuleRegistryService = ModuleRegistryService = __decorate([
|
||||
(0, common_1.Injectable)()
|
||||
], ModuleRegistryService);
|
||||
10
dist/core/services/notification-provider.interface.d.ts
vendored
Normal file
10
dist/core/services/notification-provider.interface.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
export interface NotificationProvider {
|
||||
send(options: {
|
||||
to: string;
|
||||
subject: string;
|
||||
body: string;
|
||||
metadata?: any;
|
||||
}): Promise<void>;
|
||||
}
|
||||
export type NotificationChannel = 'email' | 'whatsapp' | 'sms' | 'custom';
|
||||
//# sourceMappingURL=notification-provider.interface.d.ts.map
|
||||
1
dist/core/services/notification-provider.interface.d.ts.map
vendored
Normal file
1
dist/core/services/notification-provider.interface.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"notification-provider.interface.d.ts","sourceRoot":"","sources":["../../../src/core/services/notification-provider.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7F;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC"}
|
||||
2
dist/core/services/notification-provider.interface.js
vendored
Normal file
2
dist/core/services/notification-provider.interface.js
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
10
dist/core/services/notification-rule.service.d.ts
vendored
Normal file
10
dist/core/services/notification-rule.service.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
import { MikroORM } from '@mikro-orm/core';
|
||||
import { NotificationRule } from '../entities/notification-rule.entity';
|
||||
export declare class NotificationRuleService {
|
||||
private readonly orm;
|
||||
constructor(orm: MikroORM);
|
||||
private get em();
|
||||
getRulesForEvent(tenantId: string, module: string, event: string): Promise<NotificationRule[]>;
|
||||
createRule(tenantId: string, rule: Partial<NotificationRule>): Promise<NotificationRule>;
|
||||
}
|
||||
//# sourceMappingURL=notification-rule.service.d.ts.map
|
||||
1
dist/core/services/notification-rule.service.d.ts.map
vendored
Normal file
1
dist/core/services/notification-rule.service.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"notification-rule.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/notification-rule.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,qBACa,uBAAuB;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,QAAQ;IAE1C,OAAO,KAAK,EAAE,GAEb;IAEK,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI9F,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAS/F"}
|
||||
40
dist/core/services/notification-rule.service.js
vendored
Normal file
40
dist/core/services/notification-rule.service.js
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NotificationRuleService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const core_1 = require("@mikro-orm/core");
|
||||
const notification_rule_entity_1 = require("../entities/notification-rule.entity");
|
||||
let NotificationRuleService = class NotificationRuleService {
|
||||
constructor(orm) {
|
||||
this.orm = orm;
|
||||
}
|
||||
get em() {
|
||||
return this.orm.em.fork();
|
||||
}
|
||||
async getRulesForEvent(tenantId, module, event) {
|
||||
return this.em.find(notification_rule_entity_1.NotificationRule, { tenantId, module, event });
|
||||
}
|
||||
async createRule(tenantId, rule) {
|
||||
const entity = this.em.create(notification_rule_entity_1.NotificationRule, {
|
||||
tenantId,
|
||||
...rule,
|
||||
});
|
||||
this.em.persist(entity);
|
||||
await this.em.flush();
|
||||
return entity;
|
||||
}
|
||||
};
|
||||
exports.NotificationRuleService = NotificationRuleService;
|
||||
exports.NotificationRuleService = NotificationRuleService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [core_1.MikroORM])
|
||||
], NotificationRuleService);
|
||||
8
dist/core/services/notification.service.d.ts
vendored
Normal file
8
dist/core/services/notification.service.d.ts
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
import { NotificationProvider, NotificationChannel } from './notification-provider.interface';
|
||||
export declare class NotificationService {
|
||||
private providers;
|
||||
constructor();
|
||||
registerProvider(channel: NotificationChannel, provider: NotificationProvider): void;
|
||||
send(channel: NotificationChannel, to: string, subject: string, body: string, metadata?: any): Promise<void>;
|
||||
}
|
||||
//# sourceMappingURL=notification.service.d.ts.map
|
||||
1
dist/core/services/notification.service.d.ts.map
vendored
Normal file
1
dist/core/services/notification.service.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"notification.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/notification.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAI9F,qBACa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAgE;;IAQjF,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,oBAAoB;IAIvE,IAAI,CACR,OAAO,EAAE,mBAAmB,EAC5B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,GAAG;CAQjB"}
|
||||
38
dist/core/services/notification.service.js
vendored
Normal file
38
dist/core/services/notification.service.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NotificationService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const email_provider_1 = require("./providers/email.provider");
|
||||
const whatsapp_provider_1 = require("./providers/whatsapp.provider");
|
||||
let NotificationService = class NotificationService {
|
||||
constructor() {
|
||||
this.providers = {};
|
||||
// Registramos proveedores por defecto (puede reemplazarse desde el código de inicialización)
|
||||
this.registerProvider('email', new email_provider_1.EmailProvider());
|
||||
this.registerProvider('whatsapp', new whatsapp_provider_1.WhatsappProvider());
|
||||
}
|
||||
registerProvider(channel, provider) {
|
||||
this.providers[channel] = provider;
|
||||
}
|
||||
async send(channel, to, subject, body, metadata) {
|
||||
const provider = this.providers[channel];
|
||||
if (!provider) {
|
||||
throw new Error(`No provider registered for channel ${channel}`);
|
||||
}
|
||||
await provider.send({ to, subject, body, metadata });
|
||||
}
|
||||
};
|
||||
exports.NotificationService = NotificationService;
|
||||
exports.NotificationService = NotificationService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [])
|
||||
], NotificationService);
|
||||
10
dist/core/services/providers/email.provider.d.ts
vendored
Normal file
10
dist/core/services/providers/email.provider.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
import { NotificationProvider } from '../notification-provider.interface';
|
||||
export declare class EmailProvider implements NotificationProvider {
|
||||
send(options: {
|
||||
to: string;
|
||||
subject: string;
|
||||
body: string;
|
||||
metadata?: any;
|
||||
}): Promise<void>;
|
||||
}
|
||||
//# sourceMappingURL=email.provider.d.ts.map
|
||||
1
dist/core/services/providers/email.provider.d.ts.map
vendored
Normal file
1
dist/core/services/providers/email.provider.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"email.provider.d.ts","sourceRoot":"","sources":["../../../../src/core/services/providers/email.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,qBAAa,aAAc,YAAW,oBAAoB;IAClD,IAAI,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAKlG"}
|
||||
11
dist/core/services/providers/email.provider.js
vendored
Normal file
11
dist/core/services/providers/email.provider.js
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.EmailProvider = void 0;
|
||||
class EmailProvider {
|
||||
async send(options) {
|
||||
// Implementación concreta que use un servicio como Resend, Mailgun o similar.
|
||||
// ...existing code...
|
||||
console.log('[EmailProvider] Sending email to', options.to);
|
||||
}
|
||||
}
|
||||
exports.EmailProvider = EmailProvider;
|
||||
10
dist/core/services/providers/whatsapp.provider.d.ts
vendored
Normal file
10
dist/core/services/providers/whatsapp.provider.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
import { NotificationProvider } from '../notification-provider.interface';
|
||||
export declare class WhatsappProvider implements NotificationProvider {
|
||||
send(options: {
|
||||
to: string;
|
||||
subject: string;
|
||||
body: string;
|
||||
metadata?: any;
|
||||
}): Promise<void>;
|
||||
}
|
||||
//# sourceMappingURL=whatsapp.provider.d.ts.map
|
||||
1
dist/core/services/providers/whatsapp.provider.d.ts.map
vendored
Normal file
1
dist/core/services/providers/whatsapp.provider.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"whatsapp.provider.d.ts","sourceRoot":"","sources":["../../../../src/core/services/providers/whatsapp.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,qBAAa,gBAAiB,YAAW,oBAAoB;IACrD,IAAI,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAKlG"}
|
||||
11
dist/core/services/providers/whatsapp.provider.js
vendored
Normal file
11
dist/core/services/providers/whatsapp.provider.js
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.WhatsappProvider = void 0;
|
||||
class WhatsappProvider {
|
||||
async send(options) {
|
||||
// Implementación concreta que use un servicio de WhatsApp Business API o similar.
|
||||
// ...existing code...
|
||||
console.log('[WhatsappProvider] Sending message to', options.to);
|
||||
}
|
||||
}
|
||||
exports.WhatsappProvider = WhatsappProvider;
|
||||
7
dist/core/services/token.service.d.ts
vendored
Normal file
7
dist/core/services/token.service.d.ts
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
import { AuthToken } from '../entities/token.entity';
|
||||
export declare class TokenService {
|
||||
private tokens;
|
||||
createToken(name?: string, expiresInHours?: number): AuthToken;
|
||||
validate(tokenString: string): AuthToken | null;
|
||||
}
|
||||
//# sourceMappingURL=token.service.d.ts.map
|
||||
1
dist/core/services/token.service.d.ts.map
vendored
Normal file
1
dist/core/services/token.service.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"token.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/token.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,qBACa,YAAY;IAEvB,OAAO,CAAC,MAAM,CAAmB;IAEjC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS;IAW9D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAMhD"}
|
||||
40
dist/core/services/token.service.js
vendored
Normal file
40
dist/core/services/token.service.js
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TokenService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const uuid_1 = require("uuid");
|
||||
const token_entity_1 = require("../entities/token.entity");
|
||||
let TokenService = class TokenService {
|
||||
constructor() {
|
||||
// En una implementación real esto debería usar el repositorio de MikroORM.
|
||||
this.tokens = [];
|
||||
}
|
||||
createToken(name, expiresInHours) {
|
||||
const token = new token_entity_1.AuthToken();
|
||||
token.token = (0, uuid_1.v4)();
|
||||
token.name = name;
|
||||
if (expiresInHours) {
|
||||
token.expiresAt = new Date(Date.now() + expiresInHours * 60 * 60 * 1000);
|
||||
}
|
||||
this.tokens.push(token);
|
||||
return token;
|
||||
}
|
||||
validate(tokenString) {
|
||||
const token = this.tokens.find((t) => t.token === tokenString);
|
||||
if (!token)
|
||||
return null;
|
||||
if (token.expiresAt && token.expiresAt < new Date())
|
||||
return null;
|
||||
return token;
|
||||
}
|
||||
};
|
||||
exports.TokenService = TokenService;
|
||||
exports.TokenService = TokenService = __decorate([
|
||||
(0, common_1.Injectable)()
|
||||
], TokenService);
|
||||
7
dist/core/workflows/base-workflow.d.ts
vendored
Normal file
7
dist/core/workflows/base-workflow.d.ts
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
import { Logger } from '@nestjs/common';
|
||||
export declare abstract class BaseWorkflow {
|
||||
protected readonly logger: Logger;
|
||||
abstract execute(...args: any[]): Promise<any>;
|
||||
protected logExecution(message: string, context?: any): void;
|
||||
}
|
||||
//# sourceMappingURL=base-workflow.d.ts.map
|
||||
1
dist/core/workflows/base-workflow.d.ts.map
vendored
Normal file
1
dist/core/workflows/base-workflow.d.ts.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"base-workflow.d.ts","sourceRoot":"","sources":["../../../src/core/workflows/base-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,8BAAsB,YAAY;IAChC,SAAS,CAAC,QAAQ,CAAC,MAAM,SAAqC;IAE9D,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAE9C,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;CAMtD"}
|
||||
16
dist/core/workflows/base-workflow.js
vendored
Normal file
16
dist/core/workflows/base-workflow.js
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.BaseWorkflow = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
class BaseWorkflow {
|
||||
constructor() {
|
||||
this.logger = new common_1.Logger(this.constructor.name);
|
||||
}
|
||||
logExecution(message, context) {
|
||||
this.logger.log(`[WORKFLOW] ${message}`);
|
||||
if (context) {
|
||||
this.logger.debug(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.BaseWorkflow = BaseWorkflow;
|
||||
Reference in New Issue
Block a user