@kodus/cli 0.0.12 → 0.1.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 (151) hide show
  1. package/README.md +387 -0
  2. package/dist/cli.d.ts +4 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +26 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/auth/index.d.ts +3 -0
  7. package/dist/commands/auth/index.d.ts.map +1 -0
  8. package/dist/commands/auth/index.js +36 -0
  9. package/dist/commands/auth/index.js.map +1 -0
  10. package/dist/commands/auth/login.d.ts +7 -0
  11. package/dist/commands/auth/login.d.ts.map +1 -0
  12. package/dist/commands/auth/login.js +97 -0
  13. package/dist/commands/auth/login.js.map +1 -0
  14. package/dist/commands/auth/logout.d.ts +2 -0
  15. package/dist/commands/auth/logout.d.ts.map +1 -0
  16. package/dist/commands/auth/logout.js +24 -0
  17. package/dist/commands/auth/logout.js.map +1 -0
  18. package/dist/commands/auth/signup.d.ts +2 -0
  19. package/dist/commands/auth/signup.d.ts.map +1 -0
  20. package/dist/commands/auth/signup.js +74 -0
  21. package/dist/commands/auth/signup.js.map +1 -0
  22. package/dist/commands/auth/status.d.ts +2 -0
  23. package/dist/commands/auth/status.d.ts.map +1 -0
  24. package/dist/commands/auth/status.js +91 -0
  25. package/dist/commands/auth/status.js.map +1 -0
  26. package/dist/commands/auth/team-key.d.ts +5 -0
  27. package/dist/commands/auth/team-key.d.ts.map +1 -0
  28. package/dist/commands/auth/team-key.js +59 -0
  29. package/dist/commands/auth/team-key.js.map +1 -0
  30. package/dist/commands/auth/token.d.ts +2 -0
  31. package/dist/commands/auth/token.d.ts.map +1 -0
  32. package/dist/commands/auth/token.js +31 -0
  33. package/dist/commands/auth/token.js.map +1 -0
  34. package/dist/commands/config.d.ts +3 -0
  35. package/dist/commands/config.d.ts.map +1 -0
  36. package/dist/commands/config.js +47 -0
  37. package/dist/commands/config.js.map +1 -0
  38. package/dist/commands/pr.d.ts +3 -0
  39. package/dist/commands/pr.d.ts.map +1 -0
  40. package/dist/commands/pr.js +75 -0
  41. package/dist/commands/pr.js.map +1 -0
  42. package/dist/commands/review.d.ts +3 -0
  43. package/dist/commands/review.d.ts.map +1 -0
  44. package/dist/commands/review.js +245 -0
  45. package/dist/commands/review.js.map +1 -0
  46. package/dist/commands/telemetry.d.ts +3 -0
  47. package/dist/commands/telemetry.d.ts.map +1 -0
  48. package/dist/commands/telemetry.js +76 -0
  49. package/dist/commands/telemetry.js.map +1 -0
  50. package/dist/commands/upgrade.d.ts +3 -0
  51. package/dist/commands/upgrade.d.ts.map +1 -0
  52. package/dist/commands/upgrade.js +35 -0
  53. package/dist/commands/upgrade.js.map +1 -0
  54. package/dist/constants.d.ts +3 -0
  55. package/dist/constants.d.ts.map +1 -0
  56. package/dist/constants.js +3 -0
  57. package/dist/constants.js.map +1 -0
  58. package/dist/formatters/json.d.ts +7 -0
  59. package/dist/formatters/json.d.ts.map +1 -0
  60. package/dist/formatters/json.js +7 -0
  61. package/dist/formatters/json.js.map +1 -0
  62. package/dist/formatters/markdown.d.ts +7 -0
  63. package/dist/formatters/markdown.d.ts.map +1 -0
  64. package/dist/formatters/markdown.js +93 -0
  65. package/dist/formatters/markdown.js.map +1 -0
  66. package/dist/formatters/prompt.d.ts +12 -0
  67. package/dist/formatters/prompt.d.ts.map +1 -0
  68. package/dist/formatters/prompt.js +90 -0
  69. package/dist/formatters/prompt.js.map +1 -0
  70. package/dist/formatters/terminal.d.ts +7 -0
  71. package/dist/formatters/terminal.d.ts.map +1 -0
  72. package/dist/formatters/terminal.js +127 -0
  73. package/dist/formatters/terminal.js.map +1 -0
  74. package/dist/index.d.ts +3 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +4 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/services/api/api.interface.d.ts +46 -0
  79. package/dist/services/api/api.interface.d.ts.map +1 -0
  80. package/dist/services/api/api.interface.js +2 -0
  81. package/dist/services/api/api.interface.js.map +1 -0
  82. package/dist/services/api/api.mock.d.ts +8 -0
  83. package/dist/services/api/api.mock.d.ts.map +1 -0
  84. package/dist/services/api/api.mock.js +249 -0
  85. package/dist/services/api/api.mock.js.map +1 -0
  86. package/dist/services/api/api.real.d.ts +8 -0
  87. package/dist/services/api/api.real.d.ts.map +1 -0
  88. package/dist/services/api/api.real.js +253 -0
  89. package/dist/services/api/api.real.js.map +1 -0
  90. package/dist/services/api/index.d.ts +4 -0
  91. package/dist/services/api/index.d.ts.map +1 -0
  92. package/dist/services/api/index.js +9 -0
  93. package/dist/services/api/index.js.map +1 -0
  94. package/dist/services/auth.service.d.ts +19 -0
  95. package/dist/services/auth.service.d.ts.map +1 -0
  96. package/dist/services/auth.service.js +90 -0
  97. package/dist/services/auth.service.js.map +1 -0
  98. package/dist/services/context.service.d.ts +22 -0
  99. package/dist/services/context.service.d.ts.map +1 -0
  100. package/dist/services/context.service.js +104 -0
  101. package/dist/services/context.service.js.map +1 -0
  102. package/dist/services/fix.service.d.ts +31 -0
  103. package/dist/services/fix.service.d.ts.map +1 -0
  104. package/dist/services/fix.service.js +120 -0
  105. package/dist/services/fix.service.js.map +1 -0
  106. package/dist/services/git.service.d.ts +32 -0
  107. package/dist/services/git.service.d.ts.map +1 -0
  108. package/dist/services/git.service.js +261 -0
  109. package/dist/services/git.service.js.map +1 -0
  110. package/dist/services/review.service.d.ts +26 -0
  111. package/dist/services/review.service.d.ts.map +1 -0
  112. package/dist/services/review.service.js +82 -0
  113. package/dist/services/review.service.js.map +1 -0
  114. package/dist/services/telemetry.service.d.ts +73 -0
  115. package/dist/services/telemetry.service.d.ts.map +1 -0
  116. package/dist/services/telemetry.service.js +229 -0
  117. package/dist/services/telemetry.service.js.map +1 -0
  118. package/dist/types/index.d.ts +143 -0
  119. package/dist/types/index.d.ts.map +1 -0
  120. package/dist/types/index.js +15 -0
  121. package/dist/types/index.js.map +1 -0
  122. package/dist/ui/interactive.d.ts +26 -0
  123. package/dist/ui/interactive.d.ts.map +1 -0
  124. package/dist/ui/interactive.js +365 -0
  125. package/dist/ui/interactive.js.map +1 -0
  126. package/dist/utils/config.d.ts +10 -0
  127. package/dist/utils/config.d.ts.map +1 -0
  128. package/dist/utils/config.js +54 -0
  129. package/dist/utils/config.js.map +1 -0
  130. package/dist/utils/credentials.d.ts +6 -0
  131. package/dist/utils/credentials.d.ts.map +1 -0
  132. package/dist/utils/credentials.js +54 -0
  133. package/dist/utils/credentials.js.map +1 -0
  134. package/dist/utils/rate-limit.d.ts +5 -0
  135. package/dist/utils/rate-limit.d.ts.map +1 -0
  136. package/dist/utils/rate-limit.js +47 -0
  137. package/dist/utils/rate-limit.js.map +1 -0
  138. package/dist/utils/review-loading.d.ts +19 -0
  139. package/dist/utils/review-loading.d.ts.map +1 -0
  140. package/dist/utils/review-loading.js +140 -0
  141. package/dist/utils/review-loading.js.map +1 -0
  142. package/package.json +39 -33
  143. package/index.js +0 -15
  144. package/license.md +0 -21
  145. package/readme.md +0 -128
  146. package/scripts/setup-db.sh +0 -77
  147. package/src/commands/install.js +0 -357
  148. package/src/config/default.js +0 -66
  149. package/src/utils/helpers.js +0 -128
  150. package/templates/.env.example +0 -142
  151. package/templates/docker-compose.yml +0 -139
@@ -0,0 +1,140 @@
1
+ import chalk from 'chalk';
2
+ const BASE_MESSAGES = [
3
+ 'Warming up the review engine...',
4
+ 'Counting bugs before they hatch...',
5
+ 'Keeping your streak alive...',
6
+ ];
7
+ const SIZE_MESSAGES = {
8
+ tiny: [
9
+ 'Tiny diff. Speedrun mode on.',
10
+ 'Snack-sized review. No crumbs left.',
11
+ 'Mini-quest detected. Quick clear.',
12
+ 'XP farm: just a few lines.',
13
+ ],
14
+ small: [
15
+ 'Small diff. Coffee still warm.',
16
+ 'Short quest. Combo meter starting.',
17
+ 'Level 1 boss. Easy loot.',
18
+ 'Sprint review. Keep it clean.',
19
+ ],
20
+ medium: [
21
+ 'Mid-size quest. Focus buff active.',
22
+ 'Reviewing the middle of the maze...',
23
+ 'Steady pace. XP trickling in.',
24
+ 'Side quest: trace every line.',
25
+ ],
26
+ large: [
27
+ 'Big diff. Stretching fingers.',
28
+ 'Review marathon. Hydration check.',
29
+ 'Boss fight incoming. Shields up.',
30
+ 'Chunky changes. Deep scan time.',
31
+ ],
32
+ huge: [
33
+ 'Mega diff. Legendary quest.',
34
+ 'This is a saga. Hold my coffee.',
35
+ 'Epic boss. Full scan engaged.',
36
+ 'Streak protected. Long haul.',
37
+ ],
38
+ };
39
+ export function getDiffMetrics(diff) {
40
+ if (!diff) {
41
+ return { files: 0, lines: 0, additions: 0, deletions: 0, chars: 0 };
42
+ }
43
+ const lines = diff.split('\n');
44
+ let files = 0;
45
+ let additions = 0;
46
+ let deletions = 0;
47
+ for (const line of lines) {
48
+ if (line.startsWith('diff --git ')) {
49
+ files += 1;
50
+ }
51
+ if (line.startsWith('+') && !line.startsWith('+++')) {
52
+ additions += 1;
53
+ }
54
+ if (line.startsWith('-') && !line.startsWith('---')) {
55
+ deletions += 1;
56
+ }
57
+ }
58
+ return {
59
+ files,
60
+ lines: lines.length,
61
+ additions,
62
+ deletions,
63
+ chars: diff.length,
64
+ };
65
+ }
66
+ export function startReviewLoadingMessages(spinner, metrics, flags, options) {
67
+ const intervalMs = options?.intervalMs ?? 1400;
68
+ const initialMessage = options?.initialMessage ?? 'Analyzing code...';
69
+ const messages = buildReviewLoadingMessages(metrics, flags);
70
+ spinner.text = chalk.cyan(initialMessage);
71
+ if (messages.length === 0) {
72
+ return () => undefined;
73
+ }
74
+ let index = Math.floor(Math.random() * messages.length);
75
+ const timer = setInterval(() => {
76
+ spinner.text = chalk.cyan(messages[index]);
77
+ index = (index + 1) % messages.length;
78
+ }, intervalMs);
79
+ return () => clearInterval(timer);
80
+ }
81
+ function buildReviewLoadingMessages(metrics, flags) {
82
+ const sizeLabel = getSizeLabel(metrics);
83
+ const messages = [
84
+ ...SIZE_MESSAGES[sizeLabel],
85
+ ...BASE_MESSAGES,
86
+ ];
87
+ const sizeMessage = formatSizeMessage(metrics);
88
+ if (sizeMessage) {
89
+ messages.push(sizeMessage);
90
+ }
91
+ const deltaMessage = formatDeltaMessage(metrics);
92
+ if (deltaMessage) {
93
+ messages.push(deltaMessage);
94
+ }
95
+ if (flags.fast) {
96
+ messages.push('Fast mode: speed boost active.');
97
+ }
98
+ if (flags.rulesOnly) {
99
+ messages.push('Rules-only run: strict mode on.');
100
+ }
101
+ if (flags.isTrial) {
102
+ messages.push('Trial run: making this one count.');
103
+ }
104
+ return dedupe(messages);
105
+ }
106
+ function getSizeLabel(metrics) {
107
+ const score = metrics.lines + metrics.files * 30;
108
+ if (score <= 120)
109
+ return 'tiny';
110
+ if (score <= 320)
111
+ return 'small';
112
+ if (score <= 900)
113
+ return 'medium';
114
+ if (score <= 2000)
115
+ return 'large';
116
+ return 'huge';
117
+ }
118
+ function formatSizeMessage(metrics) {
119
+ if (metrics.lines === 0 && metrics.files === 0) {
120
+ return undefined;
121
+ }
122
+ if (metrics.files > 0) {
123
+ return `Size check: ${formatCount(metrics.files, 'file')}, ${formatCount(metrics.lines, 'line')}.`;
124
+ }
125
+ return `Size check: ${formatCount(metrics.lines, 'line')}.`;
126
+ }
127
+ function formatDeltaMessage(metrics) {
128
+ if (metrics.additions + metrics.deletions === 0) {
129
+ return undefined;
130
+ }
131
+ return `Delta check: +${metrics.additions} / -${metrics.deletions} lines.`;
132
+ }
133
+ function formatCount(value, singular, plural) {
134
+ const word = value === 1 ? singular : (plural ?? `${singular}s`);
135
+ return `${value} ${word}`;
136
+ }
137
+ function dedupe(messages) {
138
+ return Array.from(new Set(messages));
139
+ }
140
+ //# sourceMappingURL=review-loading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-loading.js","sourceRoot":"","sources":["../../src/utils/review-loading.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,48 +1,54 @@
1
1
  {
2
2
  "name": "@kodus/cli",
3
- "version": "0.0.12",
4
- "description": "CLI tool for Kodus installation and management",
5
- "main": "index.js",
3
+ "version": "0.1.0",
4
+ "description": "Kodus CLI - AI-powered code review from your terminal",
6
5
  "type": "module",
7
- "exports": {
8
- ".": "./index.js",
9
- "./src/*": "./src/*.js"
10
- },
11
- "preferGlobal": true,
12
6
  "bin": {
13
- "kodus": "./index.js"
7
+ "kodus": "./dist/index.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/kodustech/cli.git"
13
+ },
14
+ "homepage": "https://kodus.io",
15
+ "bugs": {
16
+ "url": "https://github.com/kodustech/cli/issues"
14
17
  },
15
- "files": [
16
- "index.js",
17
- "src/**/*.js",
18
- "templates/**/*",
19
- "scripts/**/*.sh"
20
- ],
21
18
  "scripts": {
22
- "test": "echo \"Error: no test specified\" && exit 1"
19
+ "build": "tsc",
20
+ "dev": "tsc --watch",
21
+ "start": "node dist/index.js",
22
+ "lint": "eslint src --ext .ts",
23
+ "clean": "rm -rf dist",
24
+ "prepublishOnly": "npm run build"
23
25
  },
24
26
  "keywords": [
25
27
  "kodus",
28
+ "code-review",
29
+ "ai",
26
30
  "cli",
27
- "installation",
28
- "deployment"
31
+ "git"
29
32
  ],
30
33
  "author": "Kodus",
31
- "license": "ISC",
32
- "repository": {
33
- "type": "git",
34
- "url": "git+https://github.com/kodus/kodus-cli.git"
34
+ "license": "MIT",
35
+ "dependencies": {
36
+ "chalk": "^5.3.0",
37
+ "commander": "^12.1.0",
38
+ "inquirer": "^9.2.23",
39
+ "node-machine-id": "^1.1.12",
40
+ "ora": "^8.0.1",
41
+ "simple-git": "^3.25.0"
35
42
  },
36
- "bugs": {
37
- "url": "https://github.com/kodus/kodus-cli/issues"
43
+ "devDependencies": {
44
+ "@types/inquirer": "^9.0.7",
45
+ "@types/node": "^20.14.9",
46
+ "typescript": "^5.5.3"
38
47
  },
39
- "homepage": "https://github.com/kodus/kodus-cli#readme",
40
- "dependencies": {
41
- "chalk": "^4.1.2",
42
- "commander": "^11.1.0",
43
- "dotenv": "^16.4.1",
44
- "fs-extra": "^11.2.0",
45
- "inquirer": "^8.2.6",
46
- "ora": "^5.4.1"
47
- }
48
+ "engines": {
49
+ "node": ">=18.0.0"
50
+ },
51
+ "files": [
52
+ "dist"
53
+ ]
48
54
  }
package/index.js DELETED
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { program } from "commander";
4
- import { setupEnvironment } from "./src/commands/install.js";
5
-
6
- // CLI version
7
- program.version("0.0.12");
8
-
9
- // Install command
10
- program
11
- .command("install")
12
- .description("Install and configure Kodus")
13
- .action(setupEnvironment);
14
-
15
- program.parse(process.argv);
package/license.md DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Kodus CLI
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
package/readme.md DELETED
@@ -1,128 +0,0 @@
1
- <div align="center">
2
-
3
- <p align="center">
4
- <img src="https://kodus.io/wp-content/uploads/2025/04/koduscli.png" alt="Kodus CLI Banner" />
5
- </p>
6
-
7
- **Deploy and manage Kodus AI Code Review Agents in your infrastructure**
8
-
9
- [![GitHub license](https://img.shields.io/github/license/kodustech/kodus-cli)](https://github.com/yourusername/kodus-cli/blob/main/LICENSE)
10
- [![npm version](https://img.shields.io/npm/v/@kodus/cli)](https://www.npmjs.com/package/@kodus/cli)
11
- [![Downloads](https://img.shields.io/npm/dm/@kodus/cli)](https://www.npmjs.com/package/@kodus/cli)
12
-
13
- </div>
14
-
15
- ## 🌟 Overview
16
-
17
- Kodus CLI is your gateway to running Kodus AI Code Review Agents in your own infrastructure. With a single command, deploy and manage your code review automation system, keeping your code quality high while maintaining full control over your data and infrastructure.
18
-
19
- ## ✨ Features
20
-
21
- - 🔥 **One-Command Deployment**: Deploy your entire Kodus infrastructure in minutes
22
- - 🔒 **Self-Hosted**: Keep your code and data within your infrastructure
23
- - 🤖 **AI-Powered Reviews**: Leverage advanced AI models for code review automation
24
- - 🔄 **Git Integration**: Seamless integration with GitHub, GitLab, and Bitbucket
25
- - 📊 **Monitoring & Analytics**: Built-in Grafana dashboards for insights
26
- - 🐳 **Docker-Powered**: Containerized for consistency and easy management
27
- - 🔐 **Secure by Default**: Enterprise-grade security with auto-generated credentials
28
-
29
- ## 🚀 Quick Start
30
-
31
- ```bash
32
- # Install globally
33
- npm install -g @kodus/cli
34
-
35
- # Deploy Kodus in your infrastructure
36
- kodus install
37
- ```
38
-
39
- ## 📖 Documentation
40
-
41
- ### Basic Usage
42
-
43
- ```bash
44
- # Deploy Kodus
45
- kodus install
46
-
47
- # Follow the interactive prompts to configure:
48
- # - Environment type (local/external)
49
- # - Git service integration
50
- # - AI provider settings
51
- # - Infrastructure preferences
52
- ```
53
-
54
- ### Environment Types
55
-
56
- - **Local Development**
57
-
58
- - Perfect for testing and development
59
- - Runs everything on localhost
60
- - Ideal for small teams and individual developers
61
-
62
- - **External Deployment**
63
- - Production-ready setup
64
- - Configurable for any domain
65
- - Suitable for enterprise environments
66
-
67
- ### Supported Git Services
68
-
69
- | Service | Features |
70
- | --------- | ------------------------------------------- |
71
- | GitHub | Pull Request Reviews, Issue Analysis |
72
- | GitLab | Merge Request Reviews, Pipeline Integration |
73
- | Bitbucket | Pull Request Reviews, Repository Analysis |
74
-
75
- ### AI Integration
76
-
77
- Kodus supports multiple AI providers for code review:
78
-
79
- - OpenAI (GPT-4)
80
- - Google AI
81
- - Anthropic (Claude)
82
- - Novita AI
83
- - Vertex AI
84
-
85
- ## 🔒 Security
86
-
87
- - All data stays within your infrastructure
88
- - No code or sensitive information is sent to external servers
89
- - Enterprise-grade encryption for all communications
90
- - Role-based access control
91
- - Audit logging for all operations
92
-
93
- ## 🤝 Contributing
94
-
95
- We welcome contributions!
96
-
97
- ```bash
98
- # Clone the repository
99
- git clone https://github.com/yourusername/kodus-cli.git
100
-
101
- # Install dependencies
102
- npm install
103
-
104
- # Run tests
105
- npm test
106
- ```
107
-
108
- ## 📜 License
109
-
110
- MIT © Kodus
111
-
112
- ## 🌟 Star History
113
-
114
- [![Star History Chart](https://api.star-history.com/svg?repos=yourusername/kodus-cli&type=Date)](https://star-history.com/#yourusername/kodus-cli&Date)
115
-
116
- ## 🙏 Acknowledgments
117
-
118
- Special thanks to all our contributors and the amazing open-source community.
119
-
120
- ---
121
-
122
- <div align="center">
123
-
124
- **[Website](https://kodus.ios)** • **[Documentation](https://docs.kodus.io)** • **[Twitter](https://twitter.com/kodustech)** • **[Discord](https://discord.gg/VkbfjbZr)**
125
-
126
- Made with ❤️ by the Kodus Team
127
-
128
- </div>
@@ -1,77 +0,0 @@
1
- #!/bin/bash
2
- # scripts/setup-db.sh
3
-
4
- echo "Setting up database..."
5
-
6
- # Criar arquivo de configuração dentro do container
7
- docker-compose exec -T kodus-orchestrator bash -c 'cat > /usr/src/app/datasource.js << EOL
8
- const MainSeeder = require("./dist/config/database/typeorm/seed/main.seeder").default;
9
- const { DataSource } = require("typeorm");
10
- module.exports = new DataSource({
11
- type: "postgres",
12
- host: process.env.API_PG_DB_HOST,
13
- port: 5432,
14
- username: process.env.API_PG_DB_USERNAME,
15
- password: process.env.API_PG_DB_PASSWORD,
16
- database: process.env.API_PG_DB_DATABASE,
17
- ssl: false,
18
- entities: ["./dist/core/infrastructure/adapters/repositories/typeorm/schema/*.model.js",],
19
- migrations: ["./dist/config/database/typeorm/migrations/*.js"],
20
- seeds: [MainSeeder]
21
- });
22
- EOL'
23
-
24
- # Criar arquivo de configuração temporário para o seed
25
- docker-compose exec -T kodus-orchestrator bash -c 'cat > /usr/src/app/seed-datasource.js << EOL
26
- const MainSeeder = require("./dist/config/database/typeorm/seed/main.seeder").default;
27
- const { DataSource } = require("typeorm");
28
- const dataSourceInstance = new DataSource({
29
- type: "postgres",
30
- host: process.env.API_PG_DB_HOST,
31
- port: 5432,
32
- username: process.env.API_PG_DB_USERNAME,
33
- password: process.env.API_PG_DB_PASSWORD,
34
- database: process.env.API_PG_DB_DATABASE,
35
- ssl: false,
36
- entities: ["./dist/core/infrastructure/adapters/repositories/typeorm/schema/*.model.js",],
37
- seeds: [MainSeeder]
38
- });
39
- module.exports = { dataSourceInstance };
40
- EOL'
41
-
42
- # Criar extensão vector no banco de dados
43
- echo "Creating vector extension..."
44
- docker-compose exec -T kodus-orchestrator bash -c 'cd /usr/src/app && yarn typeorm query "CREATE EXTENSION IF NOT EXISTS vector;" -d datasource.js'
45
-
46
- # Verificar se a extensão foi criada com sucesso
47
- echo "Verifying vector extension..."
48
- docker-compose exec -T kodus-orchestrator bash -c 'cd /usr/src/app && yarn typeorm query "SELECT extname, extversion FROM pg_extension WHERE extname = '\''vector'\'';" -d datasource.js'
49
-
50
- # Rodar migrations dentro do container
51
- echo "Running migrations..."
52
- docker-compose exec -T kodus-orchestrator bash -c 'cd /usr/src/app && yarn typeorm migration:run -d datasource.js'
53
-
54
- # Rodar seeds dentro do container com o novo arquivo de configuração
55
- echo "Running seeds..."
56
- docker-compose exec -T kodus-orchestrator bash -c '
57
- cd /usr/src/app &&
58
- export NODE_PATH=/usr/src/app/dist &&
59
- node -e "
60
- const { runSeeders } = require('\''typeorm-extension'\'');
61
- const { dataSourceInstance } = require('\''./seed-datasource.js'\'');
62
-
63
- async function runSeeds() {
64
- try {
65
- await dataSourceInstance.initialize();
66
- await runSeeders(dataSourceInstance);
67
- process.exit(0);
68
- } catch (error) {
69
- console.error('\''Error running seeds:'\'', error);
70
- process.exit(1);
71
- }
72
- }
73
-
74
- runSeeds();
75
- "'
76
-
77
- echo "Database setup completed!"