fragment-ts 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/README.md +401 -0
  2. package/USAGE.md +1439 -0
  3. package/bin/fragment.js +2 -0
  4. package/dist/ai/ai.module.d.ts +27 -0
  5. package/dist/ai/ai.module.d.ts.map +1 -0
  6. package/dist/ai/ai.module.js +77 -0
  7. package/dist/ai/ai.module.js.map +1 -0
  8. package/dist/auth/auth.module.d.ts +18 -0
  9. package/dist/auth/auth.module.d.ts.map +1 -0
  10. package/dist/auth/auth.module.js +89 -0
  11. package/dist/auth/auth.module.js.map +1 -0
  12. package/dist/cli/commands/build.command.d.ts +6 -1
  13. package/dist/cli/commands/build.command.d.ts.map +1 -0
  14. package/dist/cli/commands/build.command.js +130 -10
  15. package/dist/cli/commands/build.command.js.map +1 -1
  16. package/dist/cli/commands/diagnostics.command.d.ts +16 -0
  17. package/dist/cli/commands/diagnostics.command.d.ts.map +1 -0
  18. package/dist/cli/commands/diagnostics.command.js +419 -0
  19. package/dist/cli/commands/diagnostics.command.js.map +1 -0
  20. package/dist/cli/commands/generate.command.d.ts +13 -6
  21. package/dist/cli/commands/generate.command.d.ts.map +1 -0
  22. package/dist/cli/commands/generate.command.js +200 -128
  23. package/dist/cli/commands/generate.command.js.map +1 -1
  24. package/dist/cli/commands/init.command.d.ts +11 -5
  25. package/dist/cli/commands/init.command.d.ts.map +1 -0
  26. package/dist/cli/commands/init.command.js +267 -305
  27. package/dist/cli/commands/init.command.js.map +1 -1
  28. package/dist/cli/commands/migrate.command.d.ts +12 -5
  29. package/dist/cli/commands/migrate.command.d.ts.map +1 -0
  30. package/dist/cli/commands/migrate.command.js +211 -83
  31. package/dist/cli/commands/migrate.command.js.map +1 -1
  32. package/dist/cli/commands/serve.command.d.ts +5 -4
  33. package/dist/cli/commands/serve.command.d.ts.map +1 -0
  34. package/dist/cli/commands/serve.command.js +178 -21
  35. package/dist/cli/commands/serve.command.js.map +1 -1
  36. package/dist/cli/index.d.ts +2 -0
  37. package/dist/cli/index.d.ts.map +1 -0
  38. package/dist/cli/index.js +22 -0
  39. package/dist/cli/index.js.map +1 -0
  40. package/dist/core/container/di-container.d.ts +13 -7
  41. package/dist/core/container/di-container.d.ts.map +1 -0
  42. package/dist/core/container/di-container.js +75 -25
  43. package/dist/core/container/di-container.js.map +1 -1
  44. package/dist/core/decorators/application.decorator.d.ts +8 -0
  45. package/dist/core/decorators/application.decorator.d.ts.map +1 -0
  46. package/dist/core/decorators/application.decorator.js +16 -0
  47. package/dist/core/decorators/application.decorator.js.map +1 -0
  48. package/dist/core/decorators/auto-configuration.decorator.d.ts +2 -0
  49. package/dist/core/decorators/auto-configuration.decorator.d.ts.map +1 -0
  50. package/dist/core/decorators/auto-configuration.decorator.js +19 -0
  51. package/dist/core/decorators/auto-configuration.decorator.js.map +1 -0
  52. package/dist/core/decorators/conditional.decorators.d.ts +4 -0
  53. package/dist/core/decorators/conditional.decorators.d.ts.map +1 -0
  54. package/dist/core/decorators/conditional.decorators.js +22 -0
  55. package/dist/core/decorators/conditional.decorators.js.map +1 -0
  56. package/dist/core/decorators/controller.decorator.d.ts +1 -3
  57. package/dist/core/decorators/controller.decorator.d.ts.map +1 -0
  58. package/dist/core/decorators/controller.decorator.js +12 -9
  59. package/dist/core/decorators/controller.decorator.js.map +1 -1
  60. package/dist/core/decorators/http.decorators.d.ts +12 -0
  61. package/dist/core/decorators/http.decorators.d.ts.map +1 -0
  62. package/dist/core/decorators/http.decorators.js +52 -0
  63. package/dist/core/decorators/http.decorators.js.map +1 -0
  64. package/dist/core/decorators/injectable.decorator.d.ts +3 -3
  65. package/dist/core/decorators/injectable.decorator.d.ts.map +1 -0
  66. package/dist/core/decorators/injectable.decorator.js +11 -8
  67. package/dist/core/decorators/injectable.decorator.js.map +1 -1
  68. package/dist/core/decorators/injection.decorators.d.ts +5 -0
  69. package/dist/core/decorators/injection.decorators.d.ts.map +1 -0
  70. package/dist/core/decorators/injection.decorators.js +29 -0
  71. package/dist/core/decorators/injection.decorators.js.map +1 -0
  72. package/dist/core/decorators/repository.decorator.d.ts +1 -0
  73. package/dist/core/decorators/repository.decorator.d.ts.map +1 -0
  74. package/dist/core/decorators/repository.decorator.js +12 -1
  75. package/dist/core/decorators/repository.decorator.js.map +1 -1
  76. package/dist/core/decorators/service.decorator.d.ts +1 -0
  77. package/dist/core/decorators/service.decorator.d.ts.map +1 -0
  78. package/dist/core/decorators/service.decorator.js +12 -1
  79. package/dist/core/decorators/service.decorator.js.map +1 -1
  80. package/dist/core/index.d.ts +13 -0
  81. package/dist/core/index.d.ts.map +1 -0
  82. package/dist/core/index.js +29 -0
  83. package/dist/core/index.js.map +1 -0
  84. package/dist/core/loader/file-loader.d.ts +5 -0
  85. package/dist/core/loader/file-loader.d.ts.map +1 -0
  86. package/dist/core/loader/file-loader.js +85 -0
  87. package/dist/core/loader/file-loader.js.map +1 -0
  88. package/dist/core/metadata/metadata-keys.d.ts +20 -0
  89. package/dist/core/metadata/metadata-keys.d.ts.map +1 -0
  90. package/dist/core/metadata/metadata-keys.js +23 -0
  91. package/dist/core/metadata/metadata-keys.js.map +1 -0
  92. package/dist/core/metadata/metadata-storage.d.ts +36 -0
  93. package/dist/core/metadata/metadata-storage.d.ts.map +1 -0
  94. package/dist/core/metadata/metadata-storage.js +53 -0
  95. package/dist/core/metadata/metadata-storage.js.map +1 -0
  96. package/dist/core/scanner/component-scanner.d.ts +16 -0
  97. package/dist/core/scanner/component-scanner.d.ts.map +1 -0
  98. package/dist/core/scanner/component-scanner.js +147 -0
  99. package/dist/core/scanner/component-scanner.js.map +1 -0
  100. package/dist/index.d.ts +22 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +60 -0
  103. package/dist/index.js.map +1 -0
  104. package/dist/plugins/plugin-manager.d.ts +14 -0
  105. package/dist/plugins/plugin-manager.d.ts.map +1 -0
  106. package/dist/{cli/utils/file-generator.js → plugins/plugin-manager.js} +32 -24
  107. package/dist/plugins/plugin-manager.js.map +1 -0
  108. package/dist/shared/errors.d.ts +18 -0
  109. package/dist/shared/errors.d.ts.map +1 -0
  110. package/dist/shared/errors.js +41 -0
  111. package/dist/shared/errors.js.map +1 -0
  112. package/dist/testing/runner.d.ts +26 -0
  113. package/dist/testing/runner.d.ts.map +1 -0
  114. package/dist/testing/runner.js +143 -0
  115. package/dist/testing/runner.js.map +1 -0
  116. package/dist/typeorm/typeorm-module.d.ts +36 -0
  117. package/dist/typeorm/typeorm-module.d.ts.map +1 -0
  118. package/dist/typeorm/typeorm-module.js +150 -0
  119. package/dist/typeorm/typeorm-module.js.map +1 -0
  120. package/dist/web/application.d.ts +29 -0
  121. package/dist/web/application.d.ts.map +1 -0
  122. package/dist/web/application.js +301 -0
  123. package/dist/web/application.js.map +1 -0
  124. package/dist/web/interfaces.d.ts +14 -0
  125. package/dist/web/interfaces.d.ts.map +1 -0
  126. package/dist/{auth/dto/login.dto.js → web/interfaces.js} +1 -1
  127. package/dist/web/interfaces.js.map +1 -0
  128. package/examples/blog-api/fragment.json +14 -0
  129. package/examples/blog-api/package-lock.json +3405 -0
  130. package/examples/blog-api/package.json +19 -0
  131. package/examples/blog-api/src/controllers/app.controller.ts +9 -0
  132. package/examples/blog-api/src/controllers/auth.controller.ts +17 -0
  133. package/examples/blog-api/src/controllers/category.controller.ts +29 -0
  134. package/examples/blog-api/src/controllers/comment.controller.ts +31 -0
  135. package/examples/blog-api/src/controllers/post.controller.ts +46 -0
  136. package/examples/blog-api/src/dto/create-category.dto.ts +6 -0
  137. package/examples/blog-api/src/dto/create-comment.dto.ts +6 -0
  138. package/examples/blog-api/src/dto/create-post.dto.ts +6 -0
  139. package/examples/blog-api/src/entities/category.entity.ts +16 -0
  140. package/examples/blog-api/src/entities/comment.entity.ts +29 -0
  141. package/examples/blog-api/src/entities/post.entity.ts +42 -0
  142. package/examples/blog-api/src/entities/user.entity.ts +25 -0
  143. package/examples/blog-api/src/main.ts +16 -0
  144. package/examples/blog-api/src/migrations/1767737463842-InitialSchema.ts +60 -0
  145. package/examples/blog-api/src/repositories/category.repository.ts +25 -0
  146. package/examples/blog-api/src/repositories/comment.repository.ts +25 -0
  147. package/examples/blog-api/src/repositories/post.repository.ts +29 -0
  148. package/examples/blog-api/src/seeds/SampleData.seed.ts +41 -0
  149. package/examples/blog-api/src/services/app.service.ts +8 -0
  150. package/examples/blog-api/src/services/auth.service.ts +15 -0
  151. package/examples/blog-api/src/services/category.service.ts +27 -0
  152. package/examples/blog-api/src/services/comment.service.ts +31 -0
  153. package/examples/blog-api/src/services/post.service.ts +35 -0
  154. package/examples/blog-api/tsconfig.json +23 -0
  155. package/package.json +55 -33
  156. package/src/ai/ai.module.ts +110 -0
  157. package/src/auth/auth.module.ts +77 -0
  158. package/src/cli/commands/build.command.ts +123 -13
  159. package/src/cli/commands/diagnostics.command.ts +438 -0
  160. package/src/cli/commands/generate.command.ts +206 -137
  161. package/src/cli/commands/init.command.ts +337 -349
  162. package/src/cli/commands/migrate.command.ts +203 -88
  163. package/src/cli/commands/serve.command.ts +176 -24
  164. package/src/cli/index.ts +23 -0
  165. package/src/core/container/di-container.ts +83 -26
  166. package/src/core/decorators/application.decorator.ts +26 -0
  167. package/src/core/decorators/auto-configuration.decorator.ts +17 -0
  168. package/src/core/decorators/conditional.decorators.ts +19 -0
  169. package/src/core/decorators/controller.decorator.ts +14 -11
  170. package/src/core/decorators/http.decorators.ts +71 -0
  171. package/src/core/decorators/injectable.decorator.ts +14 -9
  172. package/src/core/decorators/injection.decorators.ts +26 -0
  173. package/src/core/decorators/repository.decorator.ts +13 -2
  174. package/src/core/decorators/service.decorator.ts +13 -2
  175. package/src/core/index.ts +13 -0
  176. package/src/core/loader/file-loader.ts +55 -0
  177. package/src/core/metadata/metadata-keys.ts +19 -0
  178. package/src/core/metadata/metadata-storage.ts +91 -0
  179. package/src/core/scanner/component-scanner.ts +129 -0
  180. package/src/index.ts +45 -0
  181. package/src/plugins/plugin-manager.ts +52 -0
  182. package/src/shared/errors.ts +34 -0
  183. package/src/testing/runner.ts +143 -0
  184. package/src/typeorm/typeorm-module.ts +216 -0
  185. package/src/web/application.ts +348 -0
  186. package/src/web/interfaces.ts +17 -0
  187. package/tsconfig.json +8 -6
  188. package/.env.example +0 -0
  189. package/base.ts +0 -1810
  190. package/base2.ts +0 -968
  191. package/bin/frg.ts +0 -5
  192. package/config/fragment.lock.yaml +0 -0
  193. package/config/fragment.yaml +0 -0
  194. package/dist/app.d.ts +0 -15
  195. package/dist/app.js +0 -91
  196. package/dist/app.js.map +0 -1
  197. package/dist/auth/auth.controller.d.ts +0 -10
  198. package/dist/auth/auth.controller.js +0 -88
  199. package/dist/auth/auth.controller.js.map +0 -1
  200. package/dist/auth/auth.middleware.d.ts +0 -2
  201. package/dist/auth/auth.middleware.js +0 -25
  202. package/dist/auth/auth.middleware.js.map +0 -1
  203. package/dist/auth/auth.service.d.ts +0 -20
  204. package/dist/auth/auth.service.js +0 -144
  205. package/dist/auth/auth.service.js.map +0 -1
  206. package/dist/auth/dto/login.dto.d.ts +0 -9
  207. package/dist/auth/dto/login.dto.js.map +0 -1
  208. package/dist/cli/cli.d.ts +0 -12
  209. package/dist/cli/cli.js +0 -187
  210. package/dist/cli/cli.js.map +0 -1
  211. package/dist/cli/commands/config.command.d.ts +0 -6
  212. package/dist/cli/commands/config.command.js +0 -285
  213. package/dist/cli/commands/config.command.js.map +0 -1
  214. package/dist/cli/templates/controller.template.d.ts +0 -1
  215. package/dist/cli/templates/controller.template.js +0 -53
  216. package/dist/cli/templates/controller.template.js.map +0 -1
  217. package/dist/cli/templates/entity.template.d.ts +0 -1
  218. package/dist/cli/templates/entity.template.js +0 -24
  219. package/dist/cli/templates/entity.template.js.map +0 -1
  220. package/dist/cli/templates/repository.template.d.ts +0 -1
  221. package/dist/cli/templates/repository.template.js +0 -44
  222. package/dist/cli/templates/repository.template.js.map +0 -1
  223. package/dist/cli/templates/service.template.d.ts +0 -1
  224. package/dist/cli/templates/service.template.js +0 -44
  225. package/dist/cli/templates/service.template.js.map +0 -1
  226. package/dist/cli/utils/file-generator.d.ts +0 -9
  227. package/dist/cli/utils/file-generator.js.map +0 -1
  228. package/dist/cli/utils/logger.d.ts +0 -14
  229. package/dist/cli/utils/logger.js +0 -50
  230. package/dist/cli/utils/logger.js.map +0 -1
  231. package/dist/controllers/health.controller.d.ts +0 -13
  232. package/dist/controllers/health.controller.js +0 -51
  233. package/dist/controllers/health.controller.js.map +0 -1
  234. package/dist/core/config/config-loader.d.ts +0 -31
  235. package/dist/core/config/config-loader.js +0 -99
  236. package/dist/core/config/config-loader.js.map +0 -1
  237. package/dist/core/decorators/auth-guard.decorator.d.ts +0 -3
  238. package/dist/core/decorators/auth-guard.decorator.js +0 -19
  239. package/dist/core/decorators/auth-guard.decorator.js.map +0 -1
  240. package/dist/core/decorators/autowire.decorator.d.ts +0 -3
  241. package/dist/core/decorators/autowire.decorator.js +0 -18
  242. package/dist/core/decorators/autowire.decorator.js.map +0 -1
  243. package/dist/core/decorators/middleware.decorator.d.ts +0 -3
  244. package/dist/core/decorators/middleware.decorator.js +0 -21
  245. package/dist/core/decorators/middleware.decorator.js.map +0 -1
  246. package/dist/core/decorators/route.decorator.d.ts +0 -14
  247. package/dist/core/decorators/route.decorator.js +0 -33
  248. package/dist/core/decorators/route.decorator.js.map +0 -1
  249. package/dist/core/openai/openai-client.d.ts +0 -12
  250. package/dist/core/openai/openai-client.js +0 -94
  251. package/dist/core/openai/openai-client.js.map +0 -1
  252. package/dist/database/data-source.d.ts +0 -4
  253. package/dist/database/data-source.js +0 -27
  254. package/dist/database/data-source.js.map +0 -1
  255. package/dist/entities/session.entity.d.ts +0 -9
  256. package/dist/entities/session.entity.js +0 -46
  257. package/dist/entities/session.entity.js.map +0 -1
  258. package/dist/entities/user.entity.d.ts +0 -10
  259. package/dist/entities/user.entity.js +0 -49
  260. package/dist/entities/user.entity.js.map +0 -1
  261. package/dist/middlewares/logging.middleware.d.ts +0 -2
  262. package/dist/middlewares/logging.middleware.js +0 -29
  263. package/dist/middlewares/logging.middleware.js.map +0 -1
  264. package/dist/repositories/session.repository.d.ts +0 -9
  265. package/dist/repositories/session.repository.js +0 -51
  266. package/dist/repositories/session.repository.js.map +0 -1
  267. package/dist/repositories/user.repository.d.ts +0 -10
  268. package/dist/repositories/user.repository.js +0 -44
  269. package/dist/repositories/user.repository.js.map +0 -1
  270. package/dist/server.d.ts +0 -1
  271. package/dist/server.js +0 -31
  272. package/dist/server.js.map +0 -1
  273. package/dist/services/health.service.d.ts +0 -13
  274. package/dist/services/health.service.js +0 -45
  275. package/dist/services/health.service.js.map +0 -1
  276. package/readme.md +0 -120
  277. package/src/app.ts +0 -121
  278. package/src/auth/auth.controller.ts +0 -52
  279. package/src/auth/auth.middleware.ts +0 -27
  280. package/src/auth/auth.service.ts +0 -110
  281. package/src/auth/dto/login.dto.ts +0 -11
  282. package/src/cli/cli.ts +0 -212
  283. package/src/cli/commands/config.command.ts +0 -280
  284. package/src/cli/templates/controller.template.ts +0 -51
  285. package/src/cli/templates/entity.template.ts +0 -22
  286. package/src/cli/templates/repository.template.ts +0 -42
  287. package/src/cli/templates/service.template.ts +0 -42
  288. package/src/cli/utils/file-generator.ts +0 -37
  289. package/src/cli/utils/logger.ts +0 -52
  290. package/src/controllers/health.controller.ts +0 -24
  291. package/src/core/config/config-loader.ts +0 -98
  292. package/src/core/decorators/auth-guard.decorator.ts +0 -15
  293. package/src/core/decorators/autowire.decorator.ts +0 -18
  294. package/src/core/decorators/middleware.decorator.ts +0 -18
  295. package/src/core/decorators/route.decorator.ts +0 -33
  296. package/src/core/openai/openai-client.ts +0 -99
  297. package/src/database/data-source.ts +0 -29
  298. package/src/entities/session.entity.ts +0 -25
  299. package/src/entities/user.entity.ts +0 -27
  300. package/src/middlewares/logging.middleware.ts +0 -28
  301. package/src/repositories/session.repository.ts +0 -42
  302. package/src/repositories/user.repository.ts +0 -37
  303. package/src/server.ts +0 -32
  304. package/src/services/health.service.ts +0 -29
@@ -1,51 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.HealthController = void 0;
16
- const controller_decorator_1 = require("../core/decorators/controller.decorator");
17
- const route_decorator_1 = require("../core/decorators/route.decorator");
18
- const injectable_decorator_1 = require("../core/decorators/injectable.decorator");
19
- const autowire_decorator_1 = require("../core/decorators/autowire.decorator");
20
- const health_service_1 = require("../services/health.service");
21
- let HealthController = class HealthController {
22
- constructor(healthService) {
23
- this.healthService = healthService;
24
- }
25
- async getStatus() {
26
- return await this.healthService.getStatus();
27
- }
28
- async getHealthTip() {
29
- return await this.healthService.generateHealthTip();
30
- }
31
- };
32
- exports.HealthController = HealthController;
33
- __decorate([
34
- (0, route_decorator_1.Get)('/'),
35
- __metadata("design:type", Function),
36
- __metadata("design:paramtypes", []),
37
- __metadata("design:returntype", Promise)
38
- ], HealthController.prototype, "getStatus", null);
39
- __decorate([
40
- (0, route_decorator_1.Get)('/tip'),
41
- __metadata("design:type", Function),
42
- __metadata("design:paramtypes", []),
43
- __metadata("design:returntype", Promise)
44
- ], HealthController.prototype, "getHealthTip", null);
45
- exports.HealthController = HealthController = __decorate([
46
- (0, controller_decorator_1.Controller)('/api/health'),
47
- (0, injectable_decorator_1.Injectable)(),
48
- __param(0, (0, autowire_decorator_1.Autowire)()),
49
- __metadata("design:paramtypes", [health_service_1.HealthService])
50
- ], HealthController);
51
- //# sourceMappingURL=health.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.controller.js","sourceRoot":"","sources":["../../src/controllers/health.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,kFAAqE;AACrE,wEAAyD;AACzD,kFAAqE;AACrE,8EAAiE;AACjE,+DAA2D;AAIpD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACsB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAC/C,CAAC;IAGE,AAAN,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;IAC9C,CAAC;IAGK,AAAN,KAAK,CAAC,YAAY;QAChB,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;IACtD,CAAC;CACF,CAAA;AAdY,4CAAgB;AAMrB;IADL,IAAA,qBAAG,EAAC,GAAG,CAAC;;;;iDAGR;AAGK;IADL,IAAA,qBAAG,EAAC,MAAM,CAAC;;;;oDAGX;2BAbU,gBAAgB;IAF5B,IAAA,iCAAU,EAAC,aAAa,CAAC;IACzB,IAAA,iCAAU,GAAE;IAGR,WAAA,IAAA,6BAAQ,GAAE,CAAA;qCAAwB,8BAAa;GAFvC,gBAAgB,CAc5B"}
@@ -1,31 +0,0 @@
1
- export interface AppConfig {
2
- app: {
3
- name: string;
4
- port: number;
5
- env: string;
6
- };
7
- database: {
8
- type: string;
9
- host: string;
10
- port: number;
11
- username: string;
12
- password: string;
13
- database: string;
14
- synchronize: boolean;
15
- logging: boolean;
16
- };
17
- openai: {
18
- apiKey: string;
19
- model: string;
20
- };
21
- auth: {
22
- tokenExpiry: string;
23
- sessionExpiry: string;
24
- };
25
- }
26
- export declare class ConfigLoader {
27
- private static config;
28
- static load(useYaml?: boolean): AppConfig;
29
- private static mergeEnvVariables;
30
- static get(): AppConfig;
31
- }
@@ -1,99 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ConfigLoader = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- const yaml = __importStar(require("js-yaml"));
40
- class ConfigLoader {
41
- static load(useYaml = true) {
42
- if (this.config) {
43
- return this.config;
44
- }
45
- const configDir = path.join(process.cwd(), 'config');
46
- let configPath;
47
- if (useYaml) {
48
- // Try .lock.yaml first, then .yaml
49
- const lockPath = path.join(configDir, 'app.lock.yaml');
50
- const yamlPath = path.join(configDir, 'app.yaml');
51
- configPath = fs.existsSync(lockPath) ? lockPath : yamlPath;
52
- if (!fs.existsSync(configPath)) {
53
- throw new Error('Configuration file not found');
54
- }
55
- const fileContent = fs.readFileSync(configPath, 'utf8');
56
- this.config = yaml.load(fileContent);
57
- }
58
- else {
59
- // JSON fallback
60
- configPath = path.join(configDir, 'app.json');
61
- const fileContent = fs.readFileSync(configPath, 'utf8');
62
- this.config = JSON.parse(fileContent);
63
- }
64
- // Override with environment variables
65
- this.config = this.mergeEnvVariables(this.config);
66
- return this.config;
67
- }
68
- static mergeEnvVariables(config) {
69
- return {
70
- ...config,
71
- app: {
72
- ...config.app,
73
- port: process.env.PORT ? parseInt(process.env.PORT) : config.app.port,
74
- env: process.env.NODE_ENV || config.app.env
75
- },
76
- database: {
77
- ...config.database,
78
- host: process.env.DB_HOST || config.database.host,
79
- port: process.env.DB_PORT ? parseInt(process.env.DB_PORT) : config.database.port,
80
- username: process.env.DB_USERNAME || config.database.username,
81
- password: process.env.DB_PASSWORD || config.database.password,
82
- database: process.env.DB_DATABASE || config.database.database
83
- },
84
- openai: {
85
- ...config.openai,
86
- apiKey: process.env.OPENAI_API_KEY || config.openai.apiKey
87
- }
88
- };
89
- }
90
- static get() {
91
- if (!this.config) {
92
- throw new Error('Config not loaded. Call ConfigLoader.load() first.');
93
- }
94
- return this.config;
95
- }
96
- }
97
- exports.ConfigLoader = ConfigLoader;
98
- ConfigLoader.config = null;
99
- //# sourceMappingURL=config-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../src/core/config/config-loader.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import 'reflect-metadata';
2
- export declare const AUTH_GUARD_METADATA = "auth:guard";
3
- export declare function AuthGuard(): MethodDecorator & ClassDecorator;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AUTH_GUARD_METADATA = void 0;
4
- exports.AuthGuard = AuthGuard;
5
- require("reflect-metadata");
6
- exports.AUTH_GUARD_METADATA = 'auth:guard';
7
- function AuthGuard() {
8
- return (target, propertyKey, descriptor) => {
9
- if (propertyKey) {
10
- // method decorator
11
- Reflect.defineMetadata(exports.AUTH_GUARD_METADATA, true, target.constructor, propertyKey);
12
- }
13
- else {
14
- // class decorator
15
- Reflect.defineMetadata(exports.AUTH_GUARD_METADATA, true, target);
16
- }
17
- };
18
- }
19
- //# sourceMappingURL=auth-guard.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-guard.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/auth-guard.decorator.ts"],"names":[],"mappings":";;;AAIA,8BAUC;AAdD,4BAA0B;AAEb,QAAA,mBAAmB,GAAG,YAAY,CAAC;AAEhD,SAAgB,SAAS;IACvB,OAAO,CAAC,MAAW,EAAE,WAA6B,EAAE,UAA+B,EAAE,EAAE;QACrF,IAAI,WAAW,EAAE,CAAC;YAChB,mBAAmB;YACnB,OAAO,CAAC,cAAc,CAAC,2BAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,OAAO,CAAC,cAAc,CAAC,2BAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import 'reflect-metadata';
2
- export declare const AUTOWIRE_METADATA = "autowire:metadata";
3
- export declare function Autowire(): ParameterDecorator;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AUTOWIRE_METADATA = void 0;
4
- exports.Autowire = Autowire;
5
- require("reflect-metadata");
6
- exports.AUTOWIRE_METADATA = 'autowire:metadata';
7
- function Autowire() {
8
- return (target, propertyKey, parameterIndex) => {
9
- const existingParams = Reflect.getOwnMetadata(exports.AUTOWIRE_METADATA, target) || [];
10
- const types = Reflect.getMetadata('design:paramtypes', target) || [];
11
- existingParams.push({
12
- index: parameterIndex,
13
- type: types[parameterIndex]
14
- });
15
- Reflect.defineMetadata(exports.AUTOWIRE_METADATA, existingParams, target);
16
- };
17
- }
18
- //# sourceMappingURL=autowire.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"autowire.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/autowire.decorator.ts"],"names":[],"mappings":";;;AAKA,4BAYC;AAhBD,4BAA0B;AAEb,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAErD,SAAgB,QAAQ;IACtB,OAAO,CAAC,MAAW,EAAE,WAAwC,EAAE,cAAsB,EAAE,EAAE;QACvF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,yBAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAErE,cAAc,CAAC,IAAI,CAAC;YAClB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC;SAC5B,CAAC,CAAC;QAEH,OAAO,CAAC,cAAc,CAAC,yBAAiB,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import 'reflect-metadata';
2
- export declare const MIDDLEWARE_METADATA = "middleware:metadata";
3
- export declare function Middleware(...middlewares: Function[]): ClassDecorator | MethodDecorator;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MIDDLEWARE_METADATA = void 0;
4
- exports.Middleware = Middleware;
5
- require("reflect-metadata");
6
- exports.MIDDLEWARE_METADATA = 'middleware:metadata';
7
- function Middleware(...middlewares) {
8
- return (target, propertyKey, descriptor) => {
9
- if (propertyKey) {
10
- // Method-level middleware
11
- const existing = Reflect.getOwnMetadata(exports.MIDDLEWARE_METADATA, target.constructor, propertyKey) || [];
12
- Reflect.defineMetadata(exports.MIDDLEWARE_METADATA, [...existing, ...middlewares], target.constructor, propertyKey);
13
- }
14
- else {
15
- // Class-level middleware
16
- const existing = Reflect.getOwnMetadata(exports.MIDDLEWARE_METADATA, target) || [];
17
- Reflect.defineMetadata(exports.MIDDLEWARE_METADATA, [...existing, ...middlewares], target);
18
- }
19
- };
20
- }
21
- //# sourceMappingURL=middleware.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/middleware.decorator.ts"],"names":[],"mappings":";;;AAKA,gCAYC;AAhBD,4BAA0B;AAEb,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD,SAAgB,UAAU,CAAC,GAAG,WAAuB;IACnD,OAAO,CAAC,MAAW,EAAE,WAA6B,EAAE,UAA+B,EAAE,EAAE;QACrF,IAAI,WAAW,EAAE,CAAC;YAChB,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,2BAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;YACpG,OAAO,CAAC,cAAc,CAAC,2BAAmB,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC9G,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,2BAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3E,OAAO,CAAC,cAAc,CAAC,2BAAmB,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;QACrF,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- import 'reflect-metadata';
2
- export declare const ROUTE_METADATA = "route:metadata";
3
- export declare enum HttpMethod {
4
- GET = "get",
5
- POST = "post",
6
- PUT = "put",
7
- DELETE = "delete",
8
- PATCH = "patch"
9
- }
10
- export declare const Get: (path?: string) => MethodDecorator;
11
- export declare const Post: (path?: string) => MethodDecorator;
12
- export declare const Put: (path?: string) => MethodDecorator;
13
- export declare const Delete: (path?: string) => MethodDecorator;
14
- export declare const Patch: (path?: string) => MethodDecorator;
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Patch = exports.Delete = exports.Put = exports.Post = exports.Get = exports.HttpMethod = exports.ROUTE_METADATA = void 0;
4
- require("reflect-metadata");
5
- exports.ROUTE_METADATA = 'route:metadata';
6
- var HttpMethod;
7
- (function (HttpMethod) {
8
- HttpMethod["GET"] = "get";
9
- HttpMethod["POST"] = "post";
10
- HttpMethod["PUT"] = "put";
11
- HttpMethod["DELETE"] = "delete";
12
- HttpMethod["PATCH"] = "patch";
13
- })(HttpMethod || (exports.HttpMethod = HttpMethod = {}));
14
- function createRouteDecorator(method) {
15
- return (path = '') => {
16
- return (target, propertyKey, descriptor) => {
17
- const routes = Reflect.getOwnMetadata(exports.ROUTE_METADATA, target.constructor) || [];
18
- routes.push({
19
- method,
20
- path,
21
- handlerName: propertyKey
22
- });
23
- Reflect.defineMetadata(exports.ROUTE_METADATA, routes, target.constructor);
24
- return descriptor;
25
- };
26
- };
27
- }
28
- exports.Get = createRouteDecorator(HttpMethod.GET);
29
- exports.Post = createRouteDecorator(HttpMethod.POST);
30
- exports.Put = createRouteDecorator(HttpMethod.PUT);
31
- exports.Delete = createRouteDecorator(HttpMethod.DELETE);
32
- exports.Patch = createRouteDecorator(HttpMethod.PATCH);
33
- //# sourceMappingURL=route.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"route.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/route.decorator.ts"],"names":[],"mappings":";;;AACA,4BAA0B;AAEb,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAE/C,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,6BAAe,CAAA;AACjB,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AAED,SAAS,oBAAoB,CAAC,MAAkB;IAC9C,OAAO,CAAC,OAAe,EAAE,EAAmB,EAAE;QAC5C,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;YACnF,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,sBAAc,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM;gBACN,IAAI;gBACJ,WAAW,EAAE,WAAW;aACzB,CAAC,CAAC;YACH,OAAO,CAAC,cAAc,CAAC,sBAAc,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YACnE,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAEY,QAAA,GAAG,GAAG,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3C,QAAA,IAAI,GAAG,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAA,GAAG,GAAG,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3C,QAAA,MAAM,GAAG,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACjD,QAAA,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC"}
@@ -1,12 +0,0 @@
1
- export declare class OpenAIClient {
2
- private apiKey;
3
- private model;
4
- private baseURL;
5
- constructor();
6
- complete(prompt: string, options?: {
7
- model?: string;
8
- maxTokens?: number;
9
- temperature?: number;
10
- }): Promise<string>;
11
- streamComplete(prompt: string, onChunk: (chunk: string) => void): Promise<void>;
12
- }
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.OpenAIClient = void 0;
13
- const injectable_decorator_1 = require("../decorators/injectable.decorator");
14
- const config_loader_1 = require("../config/config-loader");
15
- let OpenAIClient = class OpenAIClient {
16
- constructor() {
17
- this.baseURL = "https://api.openai.com/v1";
18
- const config = config_loader_1.ConfigLoader.get();
19
- this.apiKey = config.openai.apiKey;
20
- this.model = config.openai.model;
21
- }
22
- async complete(prompt, options) {
23
- const response = await fetch(`${this.baseURL}/chat/completions`, {
24
- method: "POST",
25
- headers: {
26
- "Content-Type": "application/json",
27
- Authorization: `Bearer ${this.apiKey}`,
28
- },
29
- body: JSON.stringify({
30
- model: options?.model || this.model,
31
- messages: [{ role: "user", content: prompt }],
32
- max_tokens: options?.maxTokens || 1000,
33
- temperature: options?.temperature || 0.7,
34
- }),
35
- });
36
- if (!response.ok) {
37
- throw new Error(`OpenAI API error: ${response.statusText}`);
38
- }
39
- const data = (await response.json());
40
- return data.choices[0].message.content;
41
- }
42
- async streamComplete(prompt, onChunk) {
43
- const response = await fetch(`${this.baseURL}/chat/completions`, {
44
- method: "POST",
45
- headers: {
46
- "Content-Type": "application/json",
47
- Authorization: `Bearer ${this.apiKey}`,
48
- },
49
- body: JSON.stringify({
50
- model: this.model,
51
- messages: [{ role: "user", content: prompt }],
52
- stream: true,
53
- }),
54
- });
55
- if (!response.ok) {
56
- throw new Error(`OpenAI API error: ${response.statusText}`);
57
- }
58
- const reader = response.body?.getReader();
59
- const decoder = new TextDecoder();
60
- if (!reader) {
61
- throw new Error("No response body");
62
- }
63
- while (true) {
64
- const { done, value } = await reader.read();
65
- if (done)
66
- break;
67
- const chunk = decoder.decode(value);
68
- const lines = chunk.split("\n").filter((line) => line.trim() !== "");
69
- for (const line of lines) {
70
- if (line.startsWith("data: ")) {
71
- const data = line.slice(6);
72
- if (data === "[DONE]")
73
- continue;
74
- try {
75
- const parsed = JSON.parse(data);
76
- const content = parsed.choices[0]?.delta?.content;
77
- if (content) {
78
- onChunk(content);
79
- }
80
- }
81
- catch (e) {
82
- // Skip invalid JSON
83
- }
84
- }
85
- }
86
- }
87
- }
88
- };
89
- exports.OpenAIClient = OpenAIClient;
90
- exports.OpenAIClient = OpenAIClient = __decorate([
91
- (0, injectable_decorator_1.Injectable)(),
92
- __metadata("design:paramtypes", [])
93
- ], OpenAIClient);
94
- //# sourceMappingURL=openai-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-client.js","sourceRoot":"","sources":["../../../src/core/openai/openai-client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { DataSource } from 'typeorm';
2
- declare let AppDataSource: DataSource;
3
- export declare function initializeDataSource(): DataSource;
4
- export { AppDataSource };
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AppDataSource = void 0;
4
- exports.initializeDataSource = initializeDataSource;
5
- const typeorm_1 = require("typeorm");
6
- const config_loader_1 = require("../core/config/config-loader");
7
- const user_entity_1 = require("../entities/user.entity");
8
- const session_entity_1 = require("../entities/session.entity");
9
- let AppDataSource;
10
- function initializeDataSource() {
11
- const config = config_loader_1.ConfigLoader.get();
12
- exports.AppDataSource = AppDataSource = new typeorm_1.DataSource({
13
- type: config.database.type,
14
- host: config.database.host,
15
- port: config.database.port,
16
- username: config.database.username,
17
- password: config.database.password,
18
- database: config.database.database,
19
- synchronize: config.database.synchronize,
20
- logging: config.database.logging,
21
- entities: [user_entity_1.User, session_entity_1.Session],
22
- migrations: [],
23
- subscribers: []
24
- });
25
- return AppDataSource;
26
- }
27
- //# sourceMappingURL=data-source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-source.js","sourceRoot":"","sources":["../../src/database/data-source.ts"],"names":[],"mappings":";;;AAQA,oDAkBC;AAzBD,qCAAqC;AACrC,gEAA4D;AAC5D,yDAA+C;AAC/C,+DAAqD;AAErD,IAAI,aAAyB,CAAC;AAE9B,SAAgB,oBAAoB;IAClC,MAAM,MAAM,GAAG,4BAAY,CAAC,GAAG,EAAE,CAAC;IAElC,wBAAA,aAAa,GAAG,IAAI,oBAAU,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAW;QACjC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;QAC1B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;QAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAClC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;QACxC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;QAChC,QAAQ,EAAE,CAAC,kBAAI,EAAE,wBAAO,CAAC;QACzB,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;KAChB,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -1,9 +0,0 @@
1
- import { User } from './user.entity';
2
- export declare class Session {
3
- id: number;
4
- token: string;
5
- userId: number;
6
- user: User;
7
- expiresAt: Date;
8
- createdAt: Date;
9
- }
@@ -1,46 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Session = void 0;
13
- const typeorm_1 = require("typeorm");
14
- const user_entity_1 = require("./user.entity");
15
- let Session = class Session {
16
- };
17
- exports.Session = Session;
18
- __decorate([
19
- (0, typeorm_1.PrimaryGeneratedColumn)(),
20
- __metadata("design:type", Number)
21
- ], Session.prototype, "id", void 0);
22
- __decorate([
23
- (0, typeorm_1.Column)({ unique: true, length: 255 }),
24
- __metadata("design:type", String)
25
- ], Session.prototype, "token", void 0);
26
- __decorate([
27
- (0, typeorm_1.Column)(),
28
- __metadata("design:type", Number)
29
- ], Session.prototype, "userId", void 0);
30
- __decorate([
31
- (0, typeorm_1.ManyToOne)(() => user_entity_1.User, (user) => user.sessions, { onDelete: 'CASCADE' }),
32
- (0, typeorm_1.JoinColumn)({ name: 'userId' }),
33
- __metadata("design:type", user_entity_1.User)
34
- ], Session.prototype, "user", void 0);
35
- __decorate([
36
- (0, typeorm_1.Column)(),
37
- __metadata("design:type", Date)
38
- ], Session.prototype, "expiresAt", void 0);
39
- __decorate([
40
- (0, typeorm_1.CreateDateColumn)(),
41
- __metadata("design:type", Date)
42
- ], Session.prototype, "createdAt", void 0);
43
- exports.Session = Session = __decorate([
44
- (0, typeorm_1.Entity)('sessions')
45
- ], Session);
46
- //# sourceMappingURL=session.entity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.entity.js","sourceRoot":"","sources":["../../src/entities/session.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAA0G;AAC1G,+CAAqC;AAG9B,IAAM,OAAO,GAAb,MAAM,OAAO;CAmBnB,CAAA;AAnBY,0BAAO;AAElB;IADC,IAAA,gCAAsB,GAAE;;mCACb;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;sCACvB;AAGf;IADC,IAAA,gBAAM,GAAE;;uCACO;AAIhB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACvE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;8BACxB,kBAAI;qCAAC;AAGZ;IADC,IAAA,gBAAM,GAAE;8BACG,IAAI;0CAAC;AAGjB;IADC,IAAA,0BAAgB,GAAE;8BACP,IAAI;0CAAC;kBAlBN,OAAO;IADnB,IAAA,gBAAM,EAAC,UAAU,CAAC;GACN,OAAO,CAmBnB"}
@@ -1,10 +0,0 @@
1
- import { Session } from './session.entity';
2
- export declare class User {
3
- id: number;
4
- name: string;
5
- email: string;
6
- passwordHash: string;
7
- sessions: Session[];
8
- createdAt: Date;
9
- updatedAt: Date;
10
- }
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.User = void 0;
13
- const typeorm_1 = require("typeorm");
14
- const session_entity_1 = require("./session.entity");
15
- let User = class User {
16
- };
17
- exports.User = User;
18
- __decorate([
19
- (0, typeorm_1.PrimaryGeneratedColumn)(),
20
- __metadata("design:type", Number)
21
- ], User.prototype, "id", void 0);
22
- __decorate([
23
- (0, typeorm_1.Column)({ length: 100 }),
24
- __metadata("design:type", String)
25
- ], User.prototype, "name", void 0);
26
- __decorate([
27
- (0, typeorm_1.Column)({ unique: true, length: 255 }),
28
- __metadata("design:type", String)
29
- ], User.prototype, "email", void 0);
30
- __decorate([
31
- (0, typeorm_1.Column)({ length: 255 }),
32
- __metadata("design:type", String)
33
- ], User.prototype, "passwordHash", void 0);
34
- __decorate([
35
- (0, typeorm_1.OneToMany)(() => session_entity_1.Session, (session) => session.user),
36
- __metadata("design:type", Array)
37
- ], User.prototype, "sessions", void 0);
38
- __decorate([
39
- (0, typeorm_1.CreateDateColumn)(),
40
- __metadata("design:type", Date)
41
- ], User.prototype, "createdAt", void 0);
42
- __decorate([
43
- (0, typeorm_1.UpdateDateColumn)(),
44
- __metadata("design:type", Date)
45
- ], User.prototype, "updatedAt", void 0);
46
- exports.User = User = __decorate([
47
- (0, typeorm_1.Entity)('users')
48
- ], User);
49
- //# sourceMappingURL=user.entity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAAgH;AAChH,qDAA2C;AAGpC,IAAM,IAAI,GAAV,MAAM,IAAI;CAqBhB,CAAA;AArBY,oBAAI;AAEf;IADC,IAAA,gCAAsB,GAAE;;gCACb;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;kCACV;AAGd;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;mCACvB;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;0CACF;AAGtB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,wBAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;;sCAC/B;AAGrB;IADC,IAAA,0BAAgB,GAAE;8BACP,IAAI;uCAAC;AAGjB;IADC,IAAA,0BAAgB,GAAE;8BACP,IAAI;uCAAC;eApBN,IAAI;IADhB,IAAA,gBAAM,EAAC,OAAO,CAAC;GACH,IAAI,CAqBhB"}
@@ -1,2 +0,0 @@
1
- import { Request, Response, NextFunction } from 'express';
2
- export declare function loggingMiddleware(req: Request, res: Response, next: NextFunction): void;