@vezlo/assistant-server 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/Dockerfile +64 -0
  2. package/LICENSE +661 -0
  3. package/README.md +432 -0
  4. package/bin/vezlo-server.js +36 -0
  5. package/database-schema.sql +154 -0
  6. package/dist/knexfile.d.ts +6 -0
  7. package/dist/knexfile.d.ts.map +1 -0
  8. package/dist/knexfile.js +85 -0
  9. package/dist/knexfile.js.map +1 -0
  10. package/dist/src/config/database.d.ts +4 -0
  11. package/dist/src/config/database.d.ts.map +1 -0
  12. package/dist/src/config/database.js +30 -0
  13. package/dist/src/config/database.js.map +1 -0
  14. package/dist/src/config/global.d.ts +65 -0
  15. package/dist/src/config/global.d.ts.map +1 -0
  16. package/dist/src/config/global.js +113 -0
  17. package/dist/src/config/global.js.map +1 -0
  18. package/dist/src/config/knex.d.ts +9 -0
  19. package/dist/src/config/knex.d.ts.map +1 -0
  20. package/dist/src/config/knex.js +67 -0
  21. package/dist/src/config/knex.js.map +1 -0
  22. package/dist/src/config/logger.d.ts +4 -0
  23. package/dist/src/config/logger.d.ts.map +1 -0
  24. package/dist/src/config/logger.js +30 -0
  25. package/dist/src/config/logger.js.map +1 -0
  26. package/dist/src/config/swagger.d.ts +18 -0
  27. package/dist/src/config/swagger.d.ts.map +1 -0
  28. package/dist/src/config/swagger.js +230 -0
  29. package/dist/src/config/swagger.js.map +1 -0
  30. package/dist/src/controllers/ChatController.d.ts +16 -0
  31. package/dist/src/controllers/ChatController.d.ts.map +1 -0
  32. package/dist/src/controllers/ChatController.js +281 -0
  33. package/dist/src/controllers/ChatController.js.map +1 -0
  34. package/dist/src/controllers/KnowledgeController.d.ts +13 -0
  35. package/dist/src/controllers/KnowledgeController.d.ts.map +1 -0
  36. package/dist/src/controllers/KnowledgeController.js +210 -0
  37. package/dist/src/controllers/KnowledgeController.js.map +1 -0
  38. package/dist/src/middleware/errorHandler.d.ts +63 -0
  39. package/dist/src/middleware/errorHandler.d.ts.map +1 -0
  40. package/dist/src/middleware/errorHandler.js +226 -0
  41. package/dist/src/middleware/errorHandler.js.map +1 -0
  42. package/dist/src/migrations/001_initial_schema.d.ts +4 -0
  43. package/dist/src/migrations/001_initial_schema.d.ts.map +1 -0
  44. package/dist/src/migrations/001_initial_schema.js +144 -0
  45. package/dist/src/migrations/001_initial_schema.js.map +1 -0
  46. package/dist/src/schemas/ConversationSchemas.d.ts +132 -0
  47. package/dist/src/schemas/ConversationSchemas.d.ts.map +1 -0
  48. package/dist/src/schemas/ConversationSchemas.js +71 -0
  49. package/dist/src/schemas/ConversationSchemas.js.map +1 -0
  50. package/dist/src/schemas/FeedbackSchemas.d.ts +222 -0
  51. package/dist/src/schemas/FeedbackSchemas.d.ts.map +1 -0
  52. package/dist/src/schemas/FeedbackSchemas.js +116 -0
  53. package/dist/src/schemas/FeedbackSchemas.js.map +1 -0
  54. package/dist/src/schemas/KnowledgeSchemas.d.ts +266 -0
  55. package/dist/src/schemas/KnowledgeSchemas.d.ts.map +1 -0
  56. package/dist/src/schemas/KnowledgeSchemas.js +115 -0
  57. package/dist/src/schemas/KnowledgeSchemas.js.map +1 -0
  58. package/dist/src/schemas/MessageSchemas.d.ts +145 -0
  59. package/dist/src/schemas/MessageSchemas.d.ts.map +1 -0
  60. package/dist/src/schemas/MessageSchemas.js +79 -0
  61. package/dist/src/schemas/MessageSchemas.js.map +1 -0
  62. package/dist/src/schemas/index.d.ts +752 -0
  63. package/dist/src/schemas/index.d.ts.map +1 -0
  64. package/dist/src/schemas/index.js +31 -0
  65. package/dist/src/schemas/index.js.map +1 -0
  66. package/dist/src/server.d.ts +2 -0
  67. package/dist/src/server.d.ts.map +1 -0
  68. package/dist/src/server.js +609 -0
  69. package/dist/src/server.js.map +1 -0
  70. package/dist/src/services/AIService.d.ts +17 -0
  71. package/dist/src/services/AIService.d.ts.map +1 -0
  72. package/dist/src/services/AIService.js +174 -0
  73. package/dist/src/services/AIService.js.map +1 -0
  74. package/dist/src/services/ChatManager.d.ts +18 -0
  75. package/dist/src/services/ChatManager.d.ts.map +1 -0
  76. package/dist/src/services/ChatManager.js +174 -0
  77. package/dist/src/services/ChatManager.js.map +1 -0
  78. package/dist/src/services/KnowledgeBaseService.d.ts +72 -0
  79. package/dist/src/services/KnowledgeBaseService.d.ts.map +1 -0
  80. package/dist/src/services/KnowledgeBaseService.js +442 -0
  81. package/dist/src/services/KnowledgeBaseService.js.map +1 -0
  82. package/dist/src/storage/ConversationRepository.d.ts +15 -0
  83. package/dist/src/storage/ConversationRepository.d.ts.map +1 -0
  84. package/dist/src/storage/ConversationRepository.js +123 -0
  85. package/dist/src/storage/ConversationRepository.js.map +1 -0
  86. package/dist/src/storage/FeedbackRepository.d.ts +15 -0
  87. package/dist/src/storage/FeedbackRepository.d.ts.map +1 -0
  88. package/dist/src/storage/FeedbackRepository.js +141 -0
  89. package/dist/src/storage/FeedbackRepository.js.map +1 -0
  90. package/dist/src/storage/MessageRepository.d.ts +13 -0
  91. package/dist/src/storage/MessageRepository.d.ts.map +1 -0
  92. package/dist/src/storage/MessageRepository.js +165 -0
  93. package/dist/src/storage/MessageRepository.js.map +1 -0
  94. package/dist/src/storage/SupabaseStorage.d.ts +20 -0
  95. package/dist/src/storage/SupabaseStorage.d.ts.map +1 -0
  96. package/dist/src/storage/SupabaseStorage.js +347 -0
  97. package/dist/src/storage/SupabaseStorage.js.map +1 -0
  98. package/dist/src/storage/UnifiedStorage.d.ts +45 -0
  99. package/dist/src/storage/UnifiedStorage.d.ts.map +1 -0
  100. package/dist/src/storage/UnifiedStorage.js +94 -0
  101. package/dist/src/storage/UnifiedStorage.js.map +1 -0
  102. package/dist/src/storage/index.d.ts +11 -0
  103. package/dist/src/storage/index.d.ts.map +1 -0
  104. package/dist/src/storage/index.js +21 -0
  105. package/dist/src/storage/index.js.map +1 -0
  106. package/dist/src/types/index.d.ts +163 -0
  107. package/dist/src/types/index.d.ts.map +1 -0
  108. package/dist/src/types/index.js +3 -0
  109. package/dist/src/types/index.js.map +1 -0
  110. package/docker-compose.yml +32 -0
  111. package/env.example +46 -0
  112. package/knexfile.ts +86 -0
  113. package/package.json +92 -0
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const dotenv_1 = __importDefault(require("dotenv"));
7
+ // Load environment variables
8
+ dotenv_1.default.config();
9
+ const config = {
10
+ development: {
11
+ client: 'postgresql',
12
+ connection: {
13
+ host: process.env.SUPABASE_DB_HOST || 'localhost',
14
+ port: parseInt(process.env.SUPABASE_DB_PORT || '5432'),
15
+ database: process.env.SUPABASE_DB_NAME || 'postgres',
16
+ user: process.env.SUPABASE_DB_USER || 'postgres',
17
+ password: process.env.SUPABASE_DB_PASSWORD || '',
18
+ ssl: process.env.NODE_ENV === 'production' ? { rejectUnauthorized: false } : false,
19
+ },
20
+ pool: {
21
+ min: 2,
22
+ max: 10
23
+ },
24
+ migrations: {
25
+ directory: './src/migrations',
26
+ tableName: 'knex_migrations',
27
+ extension: 'ts'
28
+ },
29
+ seeds: {
30
+ directory: './src/seeds',
31
+ extension: 'ts'
32
+ }
33
+ },
34
+ production: {
35
+ client: 'postgresql',
36
+ connection: {
37
+ host: process.env.SUPABASE_DB_HOST || 'localhost',
38
+ port: parseInt(process.env.SUPABASE_DB_PORT || '5432'),
39
+ database: process.env.SUPABASE_DB_NAME || 'postgres',
40
+ user: process.env.SUPABASE_DB_USER || 'postgres',
41
+ password: process.env.SUPABASE_DB_PASSWORD || '',
42
+ ssl: { rejectUnauthorized: false }
43
+ },
44
+ pool: {
45
+ min: 2,
46
+ max: 20
47
+ },
48
+ migrations: {
49
+ directory: './src/migrations',
50
+ tableName: 'knex_migrations',
51
+ extension: 'ts'
52
+ },
53
+ seeds: {
54
+ directory: './src/seeds',
55
+ extension: 'ts'
56
+ }
57
+ },
58
+ // For Supabase connection using connection string
59
+ supabase: {
60
+ client: 'postgresql',
61
+ connection: process.env.SUPABASE_DB_URL || process.env.DATABASE_URL || {
62
+ host: process.env.SUPABASE_DB_HOST || 'localhost',
63
+ port: parseInt(process.env.SUPABASE_DB_PORT || '5432'),
64
+ database: process.env.SUPABASE_DB_NAME || 'postgres',
65
+ user: process.env.SUPABASE_DB_USER || 'postgres',
66
+ password: process.env.SUPABASE_DB_PASSWORD || '',
67
+ ssl: { rejectUnauthorized: false }
68
+ },
69
+ pool: {
70
+ min: 2,
71
+ max: 10
72
+ },
73
+ migrations: {
74
+ directory: './src/migrations',
75
+ tableName: 'knex_migrations',
76
+ extension: 'ts'
77
+ },
78
+ seeds: {
79
+ directory: './src/seeds',
80
+ extension: 'ts'
81
+ }
82
+ }
83
+ };
84
+ exports.default = config;
85
+ //# sourceMappingURL=knexfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knexfile.js","sourceRoot":"","sources":["../knexfile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { SupabaseClient } from '@supabase/supabase-js';
2
+ export declare function initializeSupabase(): SupabaseClient;
3
+ export declare function getSupabaseClient(): SupabaseClient;
4
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/config/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIrE,wBAAgB,kBAAkB,IAAI,cAAc,CAoBnD;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initializeSupabase = initializeSupabase;
4
+ exports.getSupabaseClient = getSupabaseClient;
5
+ const supabase_js_1 = require("@supabase/supabase-js");
6
+ let supabaseClient = null;
7
+ function initializeSupabase() {
8
+ if (supabaseClient) {
9
+ return supabaseClient;
10
+ }
11
+ const supabaseUrl = process.env.SUPABASE_URL;
12
+ const supabaseKey = process.env.SUPABASE_SERVICE_KEY || process.env.SUPABASE_ANON_KEY;
13
+ if (!supabaseUrl || !supabaseKey) {
14
+ throw new Error('SUPABASE_URL and SUPABASE_SERVICE_KEY environment variables are required');
15
+ }
16
+ supabaseClient = (0, supabase_js_1.createClient)(supabaseUrl, supabaseKey, {
17
+ auth: {
18
+ autoRefreshToken: false,
19
+ persistSession: false
20
+ }
21
+ });
22
+ return supabaseClient;
23
+ }
24
+ function getSupabaseClient() {
25
+ if (!supabaseClient) {
26
+ return initializeSupabase();
27
+ }
28
+ return supabaseClient;
29
+ }
30
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/config/database.ts"],"names":[],"mappings":";;AAIA,gDAoBC;AAED,8CAKC;AA/BD,uDAAqE;AAErE,IAAI,cAAc,GAA0B,IAAI,CAAC;AAEjD,SAAgB,kBAAkB;IAChC,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAEtF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IAED,cAAc,GAAG,IAAA,0BAAY,EAAC,WAAW,EAAE,WAAW,EAAE;QACtD,IAAI,EAAE;YACJ,gBAAgB,EAAE,KAAK;YACvB,cAAc,EAAE,KAAK;SACtB;KACF,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAgB,iBAAiB;IAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Global Configuration File
3
+ * Centralized configuration for the AI Assistant API
4
+ */
5
+ export interface GlobalConfig {
6
+ app: {
7
+ name: string;
8
+ version: string;
9
+ description: string;
10
+ port: number;
11
+ environment: string;
12
+ };
13
+ api: {
14
+ prefix: string;
15
+ version: string;
16
+ timeout: number;
17
+ rateLimiting: {
18
+ windowMs: number;
19
+ maxRequests: number;
20
+ };
21
+ };
22
+ ai: {
23
+ provider: string;
24
+ model: string;
25
+ embeddingModel: string;
26
+ maxTokens: number;
27
+ temperature: number;
28
+ timeout: number;
29
+ };
30
+ knowledge: {
31
+ chunkSize: number;
32
+ chunkOverlap: number;
33
+ similarityThreshold: number;
34
+ maxSearchResults: number;
35
+ embeddingDimensions: number;
36
+ };
37
+ validation: {
38
+ enableRequestValidation: boolean;
39
+ enableResponseValidation: boolean;
40
+ returnDetailedErrors: boolean;
41
+ };
42
+ swagger: {
43
+ enabled: boolean;
44
+ title: string;
45
+ description: string;
46
+ version: string;
47
+ path: string;
48
+ };
49
+ cors: {
50
+ enabled: boolean;
51
+ origins: string[];
52
+ methods: string[];
53
+ credentials: boolean;
54
+ };
55
+ logging: {
56
+ level: string;
57
+ enableRequestLogging: boolean;
58
+ enableErrorLogging: boolean;
59
+ };
60
+ }
61
+ export declare const defaultConfig: GlobalConfig;
62
+ export declare const config: GlobalConfig;
63
+ export declare function validateConfig(): void;
64
+ export default config;
65
+ //# sourceMappingURL=global.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../../src/config/global.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE;YACZ,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,UAAU,EAAE;QACV,uBAAuB,EAAE,OAAO,CAAC;QACjC,wBAAwB,EAAE,OAAO,CAAC;QAClC,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,oBAAoB,EAAE,OAAO,CAAC;QAC9B,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH;AAGD,eAAO,MAAM,aAAa,EAAE,YAuD3B,CAAC;AAwBF,eAAO,MAAM,MAAM,EAAE,YAYpB,CAAC;AAGF,wBAAgB,cAAc,IAAI,IAAI,CAerC;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ /**
3
+ * Global Configuration File
4
+ * Centralized configuration for the AI Assistant API
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.config = exports.defaultConfig = void 0;
8
+ exports.validateConfig = validateConfig;
9
+ // Default configuration
10
+ exports.defaultConfig = {
11
+ app: {
12
+ name: 'AI Assistant API',
13
+ version: '1.0.0',
14
+ description: 'Intelligent AI Assistant API with conversation management, knowledge base integration, and advanced feedback system',
15
+ port: parseInt(process.env.PORT || '3000'),
16
+ environment: process.env.NODE_ENV || 'development'
17
+ },
18
+ api: {
19
+ prefix: '/api',
20
+ version: 'v1',
21
+ timeout: 30000, // 30 seconds
22
+ rateLimiting: {
23
+ windowMs: parseInt(process.env.RATE_LIMIT_WINDOW || '900000'), // Default 15 minutes
24
+ maxRequests: parseInt(process.env.RATE_LIMIT_MAX || '100') // per window
25
+ }
26
+ },
27
+ ai: {
28
+ provider: 'openai',
29
+ model: process.env.OPENAI_MODEL || 'gpt-4o-mini',
30
+ embeddingModel: 'text-embedding-ada-002',
31
+ maxTokens: 4096,
32
+ temperature: 0.7,
33
+ timeout: 60000 // 60 seconds
34
+ },
35
+ knowledge: {
36
+ chunkSize: parseInt(process.env.CHUNK_SIZE || '1000'),
37
+ chunkOverlap: parseInt(process.env.CHUNK_OVERLAP || '200'),
38
+ similarityThreshold: 0.7,
39
+ maxSearchResults: 10,
40
+ embeddingDimensions: 1536 // OpenAI ada-002 dimensions
41
+ },
42
+ validation: {
43
+ enableRequestValidation: true,
44
+ enableResponseValidation: process.env.NODE_ENV === 'development',
45
+ returnDetailedErrors: process.env.NODE_ENV !== 'production'
46
+ },
47
+ swagger: {
48
+ enabled: process.env.NODE_ENV !== 'production',
49
+ title: 'AI Assistant API',
50
+ description: 'Intelligent AI Assistant API with conversation management, knowledge base integration, and advanced feedback system',
51
+ version: '1.0.0',
52
+ path: '/docs'
53
+ },
54
+ cors: {
55
+ enabled: true,
56
+ origins: process.env.CORS_ORIGINS?.split(',') || ['http://localhost:3000', 'http://localhost:3001'],
57
+ methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
58
+ credentials: true
59
+ },
60
+ logging: {
61
+ level: process.env.LOG_LEVEL || 'info',
62
+ enableRequestLogging: true,
63
+ enableErrorLogging: true
64
+ }
65
+ };
66
+ // Environment-specific overrides
67
+ const envConfig = {};
68
+ if (process.env.NODE_ENV === 'production') {
69
+ envConfig.swagger = { ...exports.defaultConfig.swagger, enabled: false };
70
+ envConfig.validation = {
71
+ ...exports.defaultConfig.validation,
72
+ returnDetailedErrors: false,
73
+ enableResponseValidation: false
74
+ };
75
+ envConfig.logging = { ...exports.defaultConfig.logging, level: 'warn' };
76
+ }
77
+ if (process.env.NODE_ENV === 'test') {
78
+ envConfig.logging = { ...exports.defaultConfig.logging, level: 'error' };
79
+ envConfig.api = {
80
+ ...exports.defaultConfig.api,
81
+ rateLimiting: { windowMs: 1000, maxRequests: 1000 }
82
+ };
83
+ }
84
+ // Merge configurations
85
+ exports.config = {
86
+ ...exports.defaultConfig,
87
+ ...envConfig,
88
+ // Deep merge nested objects
89
+ app: { ...exports.defaultConfig.app, ...envConfig.app },
90
+ api: { ...exports.defaultConfig.api, ...envConfig.api },
91
+ ai: { ...exports.defaultConfig.ai, ...envConfig.ai },
92
+ knowledge: { ...exports.defaultConfig.knowledge, ...envConfig.knowledge },
93
+ validation: { ...exports.defaultConfig.validation, ...envConfig.validation },
94
+ swagger: { ...exports.defaultConfig.swagger, ...envConfig.swagger },
95
+ cors: { ...exports.defaultConfig.cors, ...envConfig.cors },
96
+ logging: { ...exports.defaultConfig.logging, ...envConfig.logging }
97
+ };
98
+ // Validation helper
99
+ function validateConfig() {
100
+ const required = [
101
+ 'SUPABASE_URL',
102
+ 'SUPABASE_ANON_KEY',
103
+ 'OPENAI_API_KEY'
104
+ ];
105
+ const missing = required.filter(key => !process.env[key]);
106
+ if (missing.length > 0) {
107
+ throw new Error(`Missing required environment variables: ${missing.join(', ')}`);
108
+ }
109
+ console.log('✅ Configuration validated successfully');
110
+ console.log(`🚀 Starting ${exports.config.app.name} v${exports.config.app.version} in ${exports.config.app.environment} mode`);
111
+ }
112
+ exports.default = exports.config;
113
+ //# sourceMappingURL=global.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/config/global.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Knex } from 'knex';
2
+ declare const db: Knex;
3
+ export default db;
4
+ export type { Knex };
5
+ export declare const runMigrations: () => Promise<void>;
6
+ export declare const rollbackMigrations: () => Promise<void>;
7
+ export declare const getMigrationStatus: () => Promise<number>;
8
+ export declare const closeConnection: () => Promise<void>;
9
+ //# sourceMappingURL=knex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knex.d.ts","sourceRoot":"","sources":["../../../src/config/knex.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAgBlC,QAAA,MAAM,EAAE,EAAE,IAAwB,CAAC;AAGnC,eAAe,EAAE,CAAC;AAGlB,YAAY,EAAE,IAAI,EAAE,CAAC;AAGrB,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,IAAI,CAQlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,IAAI,CAQvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,MAAM,CAQzD,CAAC;AAGF,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,IAAI,CAOpD,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.closeConnection = exports.getMigrationStatus = exports.rollbackMigrations = exports.runMigrations = void 0;
7
+ const knex_1 = __importDefault(require("knex"));
8
+ const knexfile_1 = __importDefault(require("../../knexfile"));
9
+ // Get the appropriate configuration based on environment
10
+ const getConfig = () => {
11
+ const env = process.env.NODE_ENV || 'development';
12
+ // For Supabase, we can use the supabase config or fall back to environment-based config
13
+ if (process.env.SUPABASE_URL) {
14
+ return knexfile_1.default.supabase;
15
+ }
16
+ return knexfile_1.default[env] || knexfile_1.default.development;
17
+ };
18
+ // Create Knex instance
19
+ const db = (0, knex_1.default)(getConfig());
20
+ // Export the Knex instance
21
+ exports.default = db;
22
+ // Utility functions for migrations
23
+ const runMigrations = async () => {
24
+ try {
25
+ await db.migrate.latest();
26
+ console.log('✅ Database migrations completed successfully');
27
+ }
28
+ catch (error) {
29
+ console.error('❌ Migration failed:', error);
30
+ throw error;
31
+ }
32
+ };
33
+ exports.runMigrations = runMigrations;
34
+ const rollbackMigrations = async () => {
35
+ try {
36
+ await db.migrate.rollback();
37
+ console.log('✅ Database rollback completed successfully');
38
+ }
39
+ catch (error) {
40
+ console.error('❌ Rollback failed:', error);
41
+ throw error;
42
+ }
43
+ };
44
+ exports.rollbackMigrations = rollbackMigrations;
45
+ const getMigrationStatus = async () => {
46
+ try {
47
+ const status = await db.migrate.status();
48
+ return status;
49
+ }
50
+ catch (error) {
51
+ console.error('❌ Failed to get migration status:', error);
52
+ throw error;
53
+ }
54
+ };
55
+ exports.getMigrationStatus = getMigrationStatus;
56
+ // Graceful shutdown
57
+ const closeConnection = async () => {
58
+ try {
59
+ await db.destroy();
60
+ console.log('✅ Database connection closed');
61
+ }
62
+ catch (error) {
63
+ console.error('❌ Error closing database connection:', error);
64
+ }
65
+ };
66
+ exports.closeConnection = closeConnection;
67
+ //# sourceMappingURL=knex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knex.js","sourceRoot":"","sources":["../../../src/config/knex.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAkC;AAClC,8DAAoC;AAEpC,yDAAyD;AACzD,MAAM,SAAS,GAAG,GAAgB,EAAE;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;IAElD,wFAAwF;IACxF,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,OAAO,kBAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,OAAO,kBAAM,CAAC,GAAG,CAAC,IAAI,kBAAM,CAAC,WAAW,CAAC;AAC3C,CAAC,CAAC;AAEF,uBAAuB;AACvB,MAAM,EAAE,GAAS,IAAA,cAAI,EAAC,SAAS,EAAE,CAAC,CAAC;AAEnC,2BAA2B;AAC3B,kBAAe,EAAE,CAAC;AAKlB,mCAAmC;AAC5B,MAAM,aAAa,GAAG,KAAK,IAAmB,EAAE;IACrD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AARW,QAAA,aAAa,iBAQxB;AAEK,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B;AAEK,MAAM,kBAAkB,GAAG,KAAK,IAAqB,EAAE;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B;AAEF,oBAAoB;AACb,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;IACvD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B"}
@@ -0,0 +1,4 @@
1
+ import winston from 'winston';
2
+ declare const logger: winston.Logger;
3
+ export default logger;
4
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/config/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,QAAA,MAAM,MAAM,gBAuBV,CAAC;AAQH,eAAe,MAAM,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const winston_1 = __importDefault(require("winston"));
7
+ const logger = winston_1.default.createLogger({
8
+ level: process.env.LOG_LEVEL || 'info',
9
+ format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.errors({ stack: true }), winston_1.default.format.json()),
10
+ defaultMeta: { service: 'vezlo-server' },
11
+ transports: [
12
+ new winston_1.default.transports.Console({
13
+ format: winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.simple())
14
+ }),
15
+ new winston_1.default.transports.File({
16
+ filename: 'logs/error.log',
17
+ level: 'error'
18
+ }),
19
+ new winston_1.default.transports.File({
20
+ filename: 'logs/combined.log'
21
+ })
22
+ ]
23
+ });
24
+ // Create logs directory if it doesn't exist
25
+ const fs_1 = require("fs");
26
+ if (!(0, fs_1.existsSync)('logs')) {
27
+ (0, fs_1.mkdirSync)('logs');
28
+ }
29
+ exports.default = logger;
30
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/config/logger.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAE9B,MAAM,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;IACtC,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;IACD,WAAW,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;IACxC,UAAU,EAAE;QACV,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,iBAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CACxB;SACF,CAAC;QACF,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,OAAO;SACf,CAAC;QACF,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,mBAAmB;SAC9B,CAAC;KACH;CACF,CAAC,CAAC;AAEH,4CAA4C;AAC5C,2BAA2C;AAC3C,IAAI,CAAC,IAAA,eAAU,EAAC,MAAM,CAAC,EAAE,CAAC;IACxB,IAAA,cAAS,EAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,18 @@
1
+ import swaggerUi from 'swagger-ui-express';
2
+ export declare const specs: object;
3
+ export { swaggerUi };
4
+ export declare const swaggerUiOptions: {
5
+ explorer: boolean;
6
+ customSiteTitle: string;
7
+ customCss: string;
8
+ swaggerOptions: {
9
+ docExpansion: string;
10
+ filter: boolean;
11
+ showRequestDuration: boolean;
12
+ defaultModelsExpandDepth: number;
13
+ defaultModelExpandDepth: number;
14
+ displayOperationId: boolean;
15
+ displayRequestDuration: boolean;
16
+ };
17
+ };
18
+ //# sourceMappingURL=swagger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger.d.ts","sourceRoot":"","sources":["../../../src/config/swagger.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAgN3C,eAAO,MAAM,KAAK,QAAwB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CAoB5B,CAAC"}