@manojkmfsi/monodog 1.0.23 → 1.0.25

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 (74) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +12 -0
  3. package/dist/controllers/{commitController.js → commit-controller.js} +5 -4
  4. package/dist/controllers/{configController.js → config-controller.js} +3 -3
  5. package/dist/controllers/{healthController.js → health-controller.js} +3 -3
  6. package/dist/controllers/{packageController.js → package-controller.js} +6 -6
  7. package/dist/index.js +11 -236
  8. package/dist/middleware/dashboard-startup.js +124 -0
  9. package/dist/middleware/error-handler.js +36 -0
  10. package/dist/middleware/index.js +23 -0
  11. package/dist/middleware/logger.js +63 -0
  12. package/dist/middleware/security.js +78 -0
  13. package/dist/middleware/server-startup.js +117 -0
  14. package/dist/repositories/commit-repository.js +97 -0
  15. package/dist/repositories/dependency-repository.js +97 -0
  16. package/dist/repositories/index.js +18 -0
  17. package/dist/repositories/package-health-repository.js +65 -0
  18. package/dist/repositories/package-repository.js +126 -0
  19. package/dist/repositories/prisma-client.js +57 -0
  20. package/dist/routes/{commitRoutes.js → commit-routes.js} +2 -2
  21. package/dist/routes/{configRoutes.js → config-routes.js} +3 -3
  22. package/dist/routes/{healthRoutes.js → health-routes.js} +3 -3
  23. package/dist/routes/{packageRoutes.js → package-routes.js} +5 -5
  24. package/dist/serve.js +15 -2
  25. package/dist/services/{commitService.js → commit-service.js} +2 -2
  26. package/dist/services/{configService.js → config-service.js} +2 -40
  27. package/dist/services/{healthService.js → health-service.js} +11 -63
  28. package/dist/services/{packageService.js → package-service.js} +80 -54
  29. package/dist/types/git.js +11 -0
  30. package/dist/types/index.js +1 -0
  31. package/package.json +10 -3
  32. package/prisma/schema/commit.prisma +11 -0
  33. package/prisma/schema/dependency-info.prisma +12 -0
  34. package/prisma/schema/health-status.prisma +14 -0
  35. package/prisma/schema/package-health.prisma +15 -0
  36. package/prisma/schema/package.prisma +21 -0
  37. package/prisma/schema/schema.prisma +15 -0
  38. package/src/controllers/{commitController.ts → commit-controller.ts} +7 -5
  39. package/src/controllers/{configController.ts → config-controller.ts} +4 -3
  40. package/src/controllers/{healthController.ts → health-controller.ts} +4 -3
  41. package/src/controllers/{packageController.ts → package-controller.ts} +7 -6
  42. package/src/index.ts +9 -281
  43. package/src/middleware/dashboard-startup.ts +149 -0
  44. package/src/middleware/error-handler.ts +50 -0
  45. package/src/middleware/index.ts +20 -0
  46. package/src/middleware/logger.ts +58 -0
  47. package/src/middleware/security.ts +81 -0
  48. package/src/middleware/server-startup.ts +142 -0
  49. package/src/repositories/commit-repository.ts +107 -0
  50. package/src/repositories/dependency-repository.ts +109 -0
  51. package/src/repositories/index.ts +10 -0
  52. package/src/repositories/package-health-repository.ts +75 -0
  53. package/src/repositories/package-repository.ts +142 -0
  54. package/src/repositories/prisma-client.ts +25 -0
  55. package/src/routes/{commitRoutes.ts → commit-routes.ts} +1 -1
  56. package/src/routes/{configRoutes.ts → config-routes.ts} +1 -1
  57. package/src/routes/{healthRoutes.ts → health-routes.ts} +1 -1
  58. package/src/routes/{packageRoutes.ts → package-routes.ts} +1 -1
  59. package/src/serve.ts +19 -3
  60. package/src/services/{commitService.ts → commit-service.ts} +1 -1
  61. package/src/services/{configService.ts → config-service.ts} +22 -9
  62. package/src/services/{gitService.ts → git-service.ts} +4 -4
  63. package/src/services/{healthService.ts → health-service.ts} +17 -35
  64. package/src/services/package-service.ts +201 -0
  65. package/src/types/database.ts +57 -1
  66. package/src/types/git.ts +8 -8
  67. package/src/types/index.ts +1 -1
  68. package/dist/utils/db-utils.js +0 -227
  69. package/prisma/schema.prisma +0 -116
  70. package/src/services/packageService.ts +0 -115
  71. package/src/types/monorepo-scanner.d.ts +0 -32
  72. package/src/utils/db-utils.ts +0 -220
  73. /package/dist/services/{gitService.js → git-service.js} +0 -0
  74. /package/prisma/migrations/{20251219074511_create_unique_composite_key_for_commits → 20251219090102_composite_key_for_table_commits}/migration.sql +0 -0
@@ -1,220 +0,0 @@
1
- import type { PackageInfo, DependencyInfo, Commit } from '../types';
2
- import * as PrismaPkg from '@prisma/client';
3
- const PrismaClient = (PrismaPkg as any).PrismaClient || (PrismaPkg as any).default || PrismaPkg;
4
- const Prisma = (PrismaPkg as any).Prisma || (PrismaPkg as any).PrismaClient?.Prisma || (PrismaPkg as any).default?.Prisma || PrismaPkg;
5
-
6
- import { appConfig } from '../config-loader';
7
-
8
- // Default settings
9
- const DEFAULT_PORT = 4000;
10
- const port = appConfig.server.port ?? DEFAULT_PORT; //Default port
11
- const host = appConfig.server.host ?? 'localhost'; //Default host
12
-
13
- const prisma = new PrismaClient();
14
- const API_BASE = `http://${host}:${port}/api`;
15
-
16
- async function getCommits(path: string): Promise<Commit[]> {
17
- const res = await fetch(API_BASE + `/commits/` + encodeURIComponent(path));
18
- if (!res.ok) throw new Error('Failed to fetch commits');
19
- return (await res.json()) as Commit[];
20
- }
21
-
22
- async function storeCommits(
23
- packageName: string,
24
- commits: Commit[]
25
- ): Promise<void> {
26
- console.log('Storing commits for:' + packageName);
27
- // Create or update dependencies
28
- for (const commit of commits) {
29
- try {
30
- await prisma.commit.upsert({
31
- where: {
32
- hash_packageName: {
33
- hash: commit.hash,
34
- packageName: packageName,
35
- }
36
- },
37
- update: {
38
- message: commit.message,
39
- author: commit.author,
40
- date: commit.date,
41
- type: commit.type,
42
- },
43
- create: {
44
- hash: commit.hash,
45
- message: commit.message,
46
- author: commit.author,
47
- date: commit.date,
48
- type: commit.type,
49
- packageName: packageName,
50
- },
51
- });
52
- } catch (e) {
53
- const err = e as any;
54
- if (
55
- err instanceof Prisma.PrismaClientKnownRequestError &&
56
- err.code === 'P2002'
57
- ) {
58
- // Handle unique constraint violation (e.g., commit already exists)
59
- console.warn(
60
- `Skipping commit: ${commit.hash} (Depenndency already exists)`
61
- );
62
- } else {
63
- // Handle any other unexpected errors
64
- console.error(`Failed to store commit: ${commit.hash}`, err);
65
- }
66
- }
67
- }
68
- }
69
- /**
70
- * Store packages in database
71
- */
72
- async function storePackage(pkg: PackageInfo): Promise<void> {
73
- try {
74
- // Create or update package
75
- await prisma.package.upsert({
76
- where: { name: pkg.name },
77
- update: {
78
- version: pkg.version,
79
- type: pkg.type,
80
- path: pkg.path,
81
- description: pkg.description,
82
- license: pkg.license,
83
- repository: JSON.stringify(pkg.repository),
84
- scripts: JSON.stringify(pkg.scripts),
85
- lastUpdated: new Date(),
86
- },
87
- create: {
88
- // Timestamps
89
- createdAt: new Date(),
90
- lastUpdated: new Date(),
91
-
92
- dependencies: JSON.stringify(pkg.dependencies), // The total number of direct dependencies
93
- // Manual Serialization Required: Stores a JSON array string of maintainers, e.g., '["team-frontend"]'
94
- maintainers: pkg.maintainers.join(','),
95
-
96
- // Manual Serialization Required: Stores the scripts object as a JSON string
97
- // Example: '{"dev": "vite", "build": "tsc && vite build"}'
98
- scripts: JSON.stringify(pkg.scripts),
99
-
100
- devDependencies: JSON.stringify(pkg.devDependencies),
101
- peerDependencies: JSON.stringify(pkg.peerDependencies),
102
- name: pkg.name,
103
- version: pkg.version,
104
- type: pkg.type,
105
- path: pkg.path,
106
- description: pkg.description ?? '',
107
- license: pkg.license ?? '',
108
- repository: JSON.stringify(pkg.repository),
109
- status: '',
110
- },
111
- });
112
-
113
- const commits = await getCommits(pkg.path ?? '');
114
- if (commits.length) {
115
- await storeCommits(pkg.name, commits);
116
- }
117
- const dependenciesInfo = getPackageDependenciesInfo(pkg);
118
- if (dependenciesInfo.length) {
119
- await storeDependencies(pkg.name, dependenciesInfo);
120
- }
121
- } catch (error) {
122
- console.warn(` Failed to store report for ${pkg.name}:`, error);
123
- }
124
- }
125
-
126
- /**
127
- * Get package dependencies
128
- */
129
- function getPackageDependenciesInfo(pkg: PackageInfo): DependencyInfo[] {
130
- const allDeps: DependencyInfo[] = [];
131
- Object.keys(pkg.dependencies || {}).forEach(depName => {
132
- allDeps.push({
133
- name: depName,
134
- version: pkg.dependencies[depName],
135
- type: 'dependency',
136
- latest: '',
137
- outdated: false,
138
- });
139
- });
140
- Object.keys(pkg.devDependencies || {}).forEach(depName => {
141
- allDeps.push({
142
- name: depName,
143
- version: pkg.devDependencies[depName],
144
- type: 'devDependency',
145
- latest: '',
146
- outdated: false,
147
- });
148
- });
149
- Object.keys(pkg.peerDependencies || {}).forEach(depName => {
150
- allDeps.push({
151
- name: depName,
152
- version: pkg.peerDependencies[depName]!,
153
- type: 'peerDependency',
154
- latest: '',
155
- outdated: false,
156
- });
157
- });
158
- return allDeps;
159
- }
160
-
161
- /**
162
- * Store dependencies in database
163
- */
164
- async function storeDependencies(
165
- packageName: string,
166
- dependencies: DependencyInfo[]
167
- ): Promise<void> {
168
- console.log('Storing Dependencies for:' + packageName);
169
- // Create or update dependencies
170
- for (const dep of dependencies) {
171
- try {
172
- await prisma.dependencyInfo.upsert({
173
- where: {
174
- name_packageName: {
175
- // This refers to the composite unique constraint
176
- name: dep.name,
177
- packageName,
178
- },
179
- },
180
- update: {
181
- version: dep.version,
182
- type: dep.type,
183
- latest: dep.latest,
184
- outdated: dep.outdated,
185
- },
186
- create: {
187
- name: dep.name,
188
- version: dep.version,
189
- type: dep.type,
190
- latest: dep.latest,
191
- outdated: dep.outdated,
192
- packageName: packageName,
193
- },
194
- });
195
- } catch (e) {
196
- const err = e as any;
197
- if (
198
- err instanceof Prisma.PrismaClientKnownRequestError &&
199
- err.code === 'P2002'
200
- ) {
201
- // Handle unique constraint violation (e.g., depedency already exists)
202
- console.warn(
203
- `Skipping dependency: ${dep.name} (Depenndency already exists)`
204
- );
205
- } else {
206
- // Handle any other unexpected errors
207
- console.error(`Failed to store dependency: ${dep.name}`, err);
208
- }
209
- }
210
- }
211
- }
212
-
213
- export {
214
- storePackage
215
- // OPTIONAL: Export other functions if needed
216
- // getCommits,
217
- // storeCommits,
218
- // getPackageDependenciesInfo,
219
- // storeDependencies,
220
- };
File without changes