build: add TypeScript configuration and generate declaration files
- Add tsconfig.json for TypeScript compilation with declaration and source map generation - Generate .d.ts declaration files for all modules, services, controllers, and models - Update package.json with NestJS dependencies and TypeScript development tools - Include database files in the distribution output for persistence
This commit is contained in:
13
dist/goals/goals.controller.d.ts
vendored
Normal file
13
dist/goals/goals.controller.d.ts
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import { Response } from 'express';
|
||||
import { GoalsService } from './goals.service';
|
||||
export declare class GoalsController {
|
||||
private goalsService;
|
||||
constructor(goalsService: GoalsService);
|
||||
getGoals(req: any): Promise<{
|
||||
user: any;
|
||||
goals: import("../models/user-goal.model").UserGoal;
|
||||
bmr: any;
|
||||
tdee: any;
|
||||
}>;
|
||||
updateGoals(req: any, body: any, res: Response): Promise<void>;
|
||||
}
|
||||
80
dist/goals/goals.controller.js
vendored
Normal file
80
dist/goals/goals.controller.js
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
"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.GoalsController = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const authenticated_guard_1 = require("../auth/guards/authenticated.guard");
|
||||
const goals_service_1 = require("./goals.service");
|
||||
let GoalsController = class GoalsController {
|
||||
constructor(goalsService) {
|
||||
this.goalsService = goalsService;
|
||||
}
|
||||
async getGoals(req) {
|
||||
try {
|
||||
const data = await this.goalsService.getGoals(req.user.id);
|
||||
return {
|
||||
user: req.user,
|
||||
goals: data.goals,
|
||||
bmr: data.bmr,
|
||||
tdee: data.tdee,
|
||||
};
|
||||
}
|
||||
catch (err) {
|
||||
console.error(err);
|
||||
req.flash('error_msg', 'Error loading goals');
|
||||
return {
|
||||
user: req.user,
|
||||
goals: null,
|
||||
bmr: null,
|
||||
tdee: null,
|
||||
};
|
||||
}
|
||||
}
|
||||
async updateGoals(req, body, res) {
|
||||
try {
|
||||
await this.goalsService.updateGoals(req.user.id, body);
|
||||
req.flash('success_msg', 'Goals updated successfully!');
|
||||
res.redirect('/goals');
|
||||
}
|
||||
catch (err) {
|
||||
console.error(err);
|
||||
req.flash('error_msg', 'Error updating goals');
|
||||
res.redirect('/goals');
|
||||
}
|
||||
}
|
||||
};
|
||||
exports.GoalsController = GoalsController;
|
||||
__decorate([
|
||||
(0, common_1.Get)(),
|
||||
(0, common_1.Render)('goals'),
|
||||
__param(0, (0, common_1.Req)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [Object]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], GoalsController.prototype, "getGoals", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)(),
|
||||
__param(0, (0, common_1.Req)()),
|
||||
__param(1, (0, common_1.Body)()),
|
||||
__param(2, (0, common_1.Res)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [Object, Object, Object]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], GoalsController.prototype, "updateGoals", null);
|
||||
exports.GoalsController = GoalsController = __decorate([
|
||||
(0, common_1.Controller)('goals'),
|
||||
(0, common_1.UseGuards)(authenticated_guard_1.AuthenticatedGuard),
|
||||
__metadata("design:paramtypes", [goals_service_1.GoalsService])
|
||||
], GoalsController);
|
||||
//# sourceMappingURL=goals.controller.js.map
|
||||
1
dist/goals/goals.controller.js.map
vendored
Normal file
1
dist/goals/goals.controller.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"goals.controller.js","sourceRoot":"","sources":["../../src/goals/goals.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA0F;AAE1F,4EAAwE;AACxE,mDAA+C;AAIxC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAAoB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAI5C,AAAN,KAAK,CAAC,QAAQ,CAAQ,GAAG;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3D,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;YAC9C,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;aACX,CAAC;QACJ,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CAAQ,GAAG,EAAU,IAAI,EAAS,GAAa;QAC9D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACvD,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,6BAA6B,CAAC,CAAC;YACxD,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;YAC/C,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;CACF,CAAA;AAtCY,0CAAe;AAKpB;IAFL,IAAA,YAAG,GAAE;IACL,IAAA,eAAM,EAAC,OAAO,CAAC;IACA,WAAA,IAAA,YAAG,GAAE,CAAA;;;;+CAmBpB;AAGK;IADL,IAAA,aAAI,GAAE;IACY,WAAA,IAAA,YAAG,GAAE,CAAA;IAAO,WAAA,IAAA,aAAI,GAAE,CAAA;IAAQ,WAAA,IAAA,YAAG,GAAE,CAAA;;;;kDAUjD;0BArCU,eAAe;IAF3B,IAAA,mBAAU,EAAC,OAAO,CAAC;IACnB,IAAA,kBAAS,EAAC,wCAAkB,CAAC;qCAEM,4BAAY;GADnC,eAAe,CAsC3B"}
|
||||
2
dist/goals/goals.module.d.ts
vendored
Normal file
2
dist/goals/goals.module.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
export declare class GoalsModule {
|
||||
}
|
||||
30
dist/goals/goals.module.js
vendored
Normal file
30
dist/goals/goals.module.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
"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.GoalsModule = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const sequelize_1 = require("@nestjs/sequelize");
|
||||
const goals_controller_1 = require("./goals.controller");
|
||||
const goals_service_1 = require("./goals.service");
|
||||
const user_model_1 = require("../models/user.model");
|
||||
const user_goal_model_1 = require("../models/user-goal.model");
|
||||
const utils_module_1 = require("../utils/utils.module");
|
||||
let GoalsModule = class GoalsModule {
|
||||
};
|
||||
exports.GoalsModule = GoalsModule;
|
||||
exports.GoalsModule = GoalsModule = __decorate([
|
||||
(0, common_1.Module)({
|
||||
imports: [
|
||||
sequelize_1.SequelizeModule.forFeature([user_model_1.User, user_goal_model_1.UserGoal]),
|
||||
utils_module_1.UtilsModule,
|
||||
],
|
||||
controllers: [goals_controller_1.GoalsController],
|
||||
providers: [goals_service_1.GoalsService],
|
||||
})
|
||||
], GoalsModule);
|
||||
//# sourceMappingURL=goals.module.js.map
|
||||
1
dist/goals/goals.module.js.map
vendored
Normal file
1
dist/goals/goals.module.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"goals.module.js","sourceRoot":"","sources":["../../src/goals/goals.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,iDAAoD;AACpD,yDAAqD;AACrD,mDAA+C;AAC/C,qDAA4C;AAC5C,+DAAqD;AACrD,wDAAoD;AAU7C,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IARvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,2BAAe,CAAC,UAAU,CAAC,CAAC,iBAAI,EAAE,0BAAQ,CAAC,CAAC;YAC5C,0BAAW;SACZ;QACD,WAAW,EAAE,CAAC,kCAAe,CAAC;QAC9B,SAAS,EAAE,CAAC,4BAAY,CAAC;KAC1B,CAAC;GACW,WAAW,CAAG"}
|
||||
20
dist/goals/goals.service.d.ts
vendored
Normal file
20
dist/goals/goals.service.d.ts
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
import { User } from '../models/user.model';
|
||||
import { UserGoal } from '../models/user-goal.model';
|
||||
import { UtilsService } from '../utils/utils.service';
|
||||
export declare class GoalsService {
|
||||
private userModel;
|
||||
private userGoalModel;
|
||||
private utilsService;
|
||||
constructor(userModel: typeof User, userGoalModel: typeof UserGoal, utilsService: UtilsService);
|
||||
getGoals(userId: number): Promise<{
|
||||
goals: UserGoal;
|
||||
bmr: any;
|
||||
tdee: any;
|
||||
user: User;
|
||||
}>;
|
||||
updateGoals(userId: number, data: any): Promise<{
|
||||
success: boolean;
|
||||
user: User;
|
||||
goals: UserGoal;
|
||||
}>;
|
||||
}
|
||||
94
dist/goals/goals.service.js
vendored
Normal file
94
dist/goals/goals.service.js
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
"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.GoalsService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const sequelize_1 = require("@nestjs/sequelize");
|
||||
const user_model_1 = require("../models/user.model");
|
||||
const user_goal_model_1 = require("../models/user-goal.model");
|
||||
const utils_service_1 = require("../utils/utils.service");
|
||||
let GoalsService = class GoalsService {
|
||||
constructor(userModel, userGoalModel, utilsService) {
|
||||
this.userModel = userModel;
|
||||
this.userGoalModel = userGoalModel;
|
||||
this.utilsService = utilsService;
|
||||
}
|
||||
async getGoals(userId) {
|
||||
const user = await this.userModel.findByPk(userId);
|
||||
const userGoals = await this.userGoalModel.findOne({ where: { UserId: userId } });
|
||||
let bmr = null;
|
||||
let tdee = null;
|
||||
if (user && user.weight_kg && user.height_cm && user.age) {
|
||||
bmr = this.utilsService.calculateBMR(user.weight_kg, user.height_cm, user.age, user.gender || 'male');
|
||||
tdee = this.utilsService.calculateTDEE(bmr, user.activity_level || 'moderate');
|
||||
}
|
||||
return {
|
||||
goals: userGoals,
|
||||
bmr,
|
||||
tdee,
|
||||
user,
|
||||
};
|
||||
}
|
||||
async updateGoals(userId, data) {
|
||||
const user = await this.userModel.findByPk(userId);
|
||||
if (!user) {
|
||||
throw new Error('User not found');
|
||||
}
|
||||
user.age = parseInt(data.age) || 25;
|
||||
user.gender = data.gender || 'male';
|
||||
user.height_cm = parseFloat(data.height_cm) || 170;
|
||||
user.weight_kg = parseFloat(data.weight_kg) || 70;
|
||||
user.activity_level = data.activity_level || 'moderate';
|
||||
const bmr = this.utilsService.calculateBMR(user.weight_kg, user.height_cm, user.age, user.gender);
|
||||
const tdee = this.utilsService.calculateTDEE(bmr, user.activity_level);
|
||||
const goalType = data.goal_type || 'recomp';
|
||||
let targetCalories;
|
||||
if (goalType === 'weight_loss') {
|
||||
targetCalories = tdee - 500;
|
||||
}
|
||||
else if (goalType === 'muscle_gain') {
|
||||
targetCalories = tdee + 300;
|
||||
}
|
||||
else {
|
||||
targetCalories = tdee;
|
||||
}
|
||||
user.target_daily_calories = Math.round(targetCalories);
|
||||
await user.save();
|
||||
let userGoals = await this.userGoalModel.findOne({ where: { UserId: userId } });
|
||||
if (!userGoals) {
|
||||
userGoals = await this.userGoalModel.create({ UserId: userId });
|
||||
}
|
||||
userGoals.goal_type = goalType;
|
||||
userGoals.target_weight_kg = parseFloat(data.target_weight_kg) || 70;
|
||||
const macros = this.utilsService.calculateMacroTargets(user.weight_kg, goalType);
|
||||
userGoals.target_protein_g = macros.protein_g;
|
||||
userGoals.target_carbs_g = macros.carbs_g;
|
||||
userGoals.target_fat_g = macros.fat_g;
|
||||
userGoals.target_water_ml = parseInt(data.target_water_ml) || 2000;
|
||||
await userGoals.save();
|
||||
return {
|
||||
success: true,
|
||||
user,
|
||||
goals: userGoals,
|
||||
};
|
||||
}
|
||||
};
|
||||
exports.GoalsService = GoalsService;
|
||||
exports.GoalsService = GoalsService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__param(0, (0, sequelize_1.InjectModel)(user_model_1.User)),
|
||||
__param(1, (0, sequelize_1.InjectModel)(user_goal_model_1.UserGoal)),
|
||||
__metadata("design:paramtypes", [Object, Object, utils_service_1.UtilsService])
|
||||
], GoalsService);
|
||||
//# sourceMappingURL=goals.service.js.map
|
||||
1
dist/goals/goals.service.js.map
vendored
Normal file
1
dist/goals/goals.service.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"goals.service.js","sourceRoot":"","sources":["../../src/goals/goals.service.ts"],"names":[],"mappings":"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"}
|
||||
Reference in New Issue
Block a user