git-history-ui 1.0.2 → 1.0.4

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 (54) hide show
  1. package/README.md +7 -7
  2. package/build/frontend/index.html +13 -0
  3. package/build/frontend/main-44CFNHDH.js +8 -0
  4. package/build/frontend/polyfills-5CFQRCPP.js +2 -0
  5. package/build/frontend/styles-26JPPBSI.css +1 -0
  6. package/dist/backend/server.d.ts.map +1 -1
  7. package/dist/backend/server.js +19 -5
  8. package/dist/backend/server.js.map +1 -1
  9. package/package.json +8 -2
  10. package/.dockerignore +0 -19
  11. package/.eslintrc.js +0 -21
  12. package/Dockerfile +0 -29
  13. package/demo.js +0 -45
  14. package/frontend/.editorconfig +0 -17
  15. package/frontend/.vscode/extensions.json +0 -4
  16. package/frontend/.vscode/launch.json +0 -20
  17. package/frontend/.vscode/tasks.json +0 -42
  18. package/frontend/README.md +0 -59
  19. package/frontend/angular.json +0 -99
  20. package/frontend/package-lock.json +0 -11272
  21. package/frontend/package.json +0 -58
  22. package/frontend/postcss.config.js +0 -6
  23. package/frontend/proxy.conf.json +0 -7
  24. package/frontend/src/app/app.component.ts +0 -598
  25. package/frontend/src/app/app.config.ts +0 -12
  26. package/frontend/src/app/app.css +0 -0
  27. package/frontend/src/app/app.html +0 -342
  28. package/frontend/src/app/app.routes.ts +0 -3
  29. package/frontend/src/app/app.spec.ts +0 -23
  30. package/frontend/src/app/app.ts +0 -12
  31. package/frontend/src/app/components/color-palette-selector/color-palette-selector.component.ts +0 -137
  32. package/frontend/src/app/components/commit-detail/commit-detail.component.ts +0 -327
  33. package/frontend/src/app/components/commit-graph/commit-graph.component.ts +0 -294
  34. package/frontend/src/app/components/commit-list/commit-list.component.ts +0 -199
  35. package/frontend/src/app/components/diff-viewer/diff-viewer.component.ts +0 -311
  36. package/frontend/src/app/models/color-palette.models.ts +0 -229
  37. package/frontend/src/app/models/git.models.ts +0 -39
  38. package/frontend/src/app/services/git.service.ts +0 -43
  39. package/frontend/src/index.html +0 -13
  40. package/frontend/src/main.ts +0 -6
  41. package/frontend/src/styles.css +0 -401
  42. package/frontend/tailwind.config.js +0 -11
  43. package/frontend/tsconfig.app.json +0 -15
  44. package/frontend/tsconfig.json +0 -34
  45. package/frontend/tsconfig.spec.json +0 -14
  46. package/jest.config.js +0 -26
  47. package/src/__tests__/gitService.test.ts +0 -533
  48. package/src/__tests__/setup.ts +0 -25
  49. package/src/backend/dev-server.ts +0 -14
  50. package/src/backend/gitService.ts +0 -277
  51. package/src/backend/server.ts +0 -140
  52. package/src/cli.ts +0 -56
  53. package/tsconfig.json +0 -25
  54. /package/{frontend/public → build/frontend}/favicon.ico +0 -0
@@ -1,229 +0,0 @@
1
- export interface ColorPalette {
2
- id: string;
3
- name: string;
4
- description: string;
5
- colors: {
6
- primary: string;
7
- secondary: string;
8
- accent: string;
9
- background: string;
10
- text: string;
11
- border: string;
12
- link: string;
13
- nodeFill: string;
14
- nodeStroke: string;
15
- graphText: string;
16
- };
17
- }
18
-
19
- export type ColorPaletteId = 'default' | 'ocean' | 'forest' | 'sunset' | 'monochrome' | 'neon';
20
-
21
- export const COLOR_PALETTES: Record<ColorPaletteId, ColorPalette> = {
22
- default: {
23
- id: 'default',
24
- name: 'Default',
25
- description: 'Classic blue theme',
26
- colors: {
27
- primary: '#3b82f6',
28
- secondary: '#6b7280',
29
- accent: '#1e40af',
30
- background: '#ffffff',
31
- text: '#111827',
32
- border: '#e5e7eb',
33
- link: '#cbd5e0',
34
- nodeFill: '#3b82f6',
35
- nodeStroke: '#1e40af',
36
- graphText: '#6b7280'
37
- }
38
- },
39
- ocean: {
40
- id: 'ocean',
41
- name: 'Ocean',
42
- description: 'Deep blue ocean theme',
43
- colors: {
44
- primary: '#0ea5e9',
45
- secondary: '#64748b',
46
- accent: '#0369a1',
47
- background: '#ffffff',
48
- text: '#0f172a',
49
- border: '#e2e8f0',
50
- link: '#94a3b8',
51
- nodeFill: '#0ea5e9',
52
- nodeStroke: '#0369a1',
53
- graphText: '#475569'
54
- }
55
- },
56
- forest: {
57
- id: 'forest',
58
- name: 'Forest',
59
- description: 'Green nature theme',
60
- colors: {
61
- primary: '#10b981',
62
- secondary: '#6b7280',
63
- accent: '#059669',
64
- background: '#ffffff',
65
- text: '#111827',
66
- border: '#e5e7eb',
67
- link: '#d1fae5',
68
- nodeFill: '#10b981',
69
- nodeStroke: '#059669',
70
- graphText: '#6b7280'
71
- }
72
- },
73
- sunset: {
74
- id: 'sunset',
75
- name: 'Sunset',
76
- description: 'Warm orange theme',
77
- colors: {
78
- primary: '#f59e0b',
79
- secondary: '#6b7280',
80
- accent: '#d97706',
81
- background: '#ffffff',
82
- text: '#111827',
83
- border: '#e5e7eb',
84
- link: '#fed7aa',
85
- nodeFill: '#f59e0b',
86
- nodeStroke: '#d97706',
87
- graphText: '#6b7280'
88
- }
89
- },
90
- monochrome: {
91
- id: 'monochrome',
92
- name: 'Monochrome',
93
- description: 'Black and white theme',
94
- colors: {
95
- primary: '#374151',
96
- secondary: '#6b7280',
97
- accent: '#111827',
98
- background: '#ffffff',
99
- text: '#111827',
100
- border: '#e5e7eb',
101
- link: '#d1d5db',
102
- nodeFill: '#374151',
103
- nodeStroke: '#111827',
104
- graphText: '#6b7280'
105
- }
106
- },
107
- neon: {
108
- id: 'neon',
109
- name: 'Neon',
110
- description: 'Bright neon theme',
111
- colors: {
112
- primary: '#ec4899',
113
- secondary: '#8b5cf6',
114
- accent: '#06b6d4',
115
- background: '#ffffff',
116
- text: '#111827',
117
- border: '#e5e7eb',
118
- link: '#f0abfc',
119
- nodeFill: '#ec4899',
120
- nodeStroke: '#be185d',
121
- graphText: '#6b7280'
122
- }
123
- }
124
- };
125
-
126
- export const DARK_COLOR_PALETTES: Record<ColorPaletteId, ColorPalette> = {
127
- default: {
128
- id: 'default',
129
- name: 'Default Dark',
130
- description: 'Classic dark theme',
131
- colors: {
132
- primary: '#3b82f6',
133
- secondary: '#6b7280',
134
- accent: '#1e40af',
135
- background: '#1a1a1a',
136
- text: '#e0e0e0',
137
- border: '#404040',
138
- link: '#4b5563',
139
- nodeFill: '#3b82f6',
140
- nodeStroke: '#1e40af',
141
- graphText: '#9ca3af'
142
- }
143
- },
144
- ocean: {
145
- id: 'ocean',
146
- name: 'Ocean Dark',
147
- description: 'Deep ocean dark theme',
148
- colors: {
149
- primary: '#0ea5e9',
150
- secondary: '#64748b',
151
- accent: '#0369a1',
152
- background: '#0f172a',
153
- text: '#f1f5f9',
154
- border: '#334155',
155
- link: '#475569',
156
- nodeFill: '#0ea5e9',
157
- nodeStroke: '#0369a1',
158
- graphText: '#94a3b8'
159
- }
160
- },
161
- forest: {
162
- id: 'forest',
163
- name: 'Forest Dark',
164
- description: 'Dark green theme',
165
- colors: {
166
- primary: '#10b981',
167
- secondary: '#6b7280',
168
- accent: '#059669',
169
- background: '#064e3b',
170
- text: '#ecfdf5',
171
- border: '#065f46',
172
- link: '#065f46',
173
- nodeFill: '#10b981',
174
- nodeStroke: '#059669',
175
- graphText: '#6ee7b7'
176
- }
177
- },
178
- sunset: {
179
- id: 'sunset',
180
- name: 'Sunset Dark',
181
- description: 'Dark orange theme',
182
- colors: {
183
- primary: '#f59e0b',
184
- secondary: '#6b7280',
185
- accent: '#d97706',
186
- background: '#451a03',
187
- text: '#fef3c7',
188
- border: '#92400e',
189
- link: '#92400e',
190
- nodeFill: '#f59e0b',
191
- nodeStroke: '#d97706',
192
- graphText: '#fbbf24'
193
- }
194
- },
195
- monochrome: {
196
- id: 'monochrome',
197
- name: 'Monochrome Dark',
198
- description: 'Pure black and white',
199
- colors: {
200
- primary: '#e5e7eb',
201
- secondary: '#9ca3af',
202
- accent: '#f9fafb',
203
- background: '#000000',
204
- text: '#ffffff',
205
- border: '#374151',
206
- link: '#4b5563',
207
- nodeFill: '#e5e7eb',
208
- nodeStroke: '#f9fafb',
209
- graphText: '#9ca3af'
210
- }
211
- },
212
- neon: {
213
- id: 'neon',
214
- name: 'Neon Dark',
215
- description: 'Bright neon on dark',
216
- colors: {
217
- primary: '#ec4899',
218
- secondary: '#8b5cf6',
219
- accent: '#06b6d4',
220
- background: '#0f0f23',
221
- text: '#ffffff',
222
- border: '#312e81',
223
- link: '#581c87',
224
- nodeFill: '#ec4899',
225
- nodeStroke: '#be185d',
226
- graphText: '#f0abfc'
227
- }
228
- }
229
- };
@@ -1,39 +0,0 @@
1
- export interface Commit {
2
- hash: string;
3
- author: string;
4
- date: string;
5
- message: string;
6
- files: string[];
7
- parents: string[];
8
- branches: string[];
9
- tags: string[];
10
- }
11
-
12
- export interface DiffFile {
13
- file: string;
14
- additions: number;
15
- deletions: number;
16
- changes: string;
17
- }
18
-
19
- export interface BlameLine {
20
- line: number;
21
- hash: string;
22
- author: string;
23
- date: string;
24
- content: string;
25
- }
26
-
27
- export interface GitOptions {
28
- file?: string;
29
- since?: string;
30
- author?: string;
31
- limit?: number;
32
- }
33
-
34
- export interface CommitNode {
35
- id: string;
36
- x: number;
37
- y: number;
38
- commit: Commit;
39
- }
@@ -1,43 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpClient } from '@angular/common/http';
3
- import { Observable } from 'rxjs';
4
- import { Commit, DiffFile, BlameLine, GitOptions } from '../models/git.models';
5
-
6
- @Injectable({
7
- providedIn: 'root'
8
- })
9
- export class GitService {
10
- private apiUrl = '/api';
11
-
12
- constructor(private http: HttpClient) { }
13
-
14
- getCommits(options: GitOptions = {}): Observable<Commit[]> {
15
- const params = new URLSearchParams();
16
- if (options.file) params.set('file', options.file);
17
- if (options.since) params.set('since', options.since);
18
- if (options.author) params.set('author', options.author);
19
- if (options.limit) params.set('limit', options.limit.toString());
20
-
21
- return this.http.get<Commit[]>(`${this.apiUrl}/commits?${params.toString()}`);
22
- }
23
-
24
- getCommit(hash: string): Observable<Commit> {
25
- return this.http.get<Commit>(`${this.apiUrl}/commit/${hash}`);
26
- }
27
-
28
- getDiff(hash: string): Observable<DiffFile[]> {
29
- return this.http.get<DiffFile[]>(`${this.apiUrl}/diff/${hash}`);
30
- }
31
-
32
- getBlame(filePath: string): Observable<BlameLine[]> {
33
- return this.http.get<BlameLine[]>(`${this.apiUrl}/blame/${encodeURIComponent(filePath)}`);
34
- }
35
-
36
- getTags(): Observable<string[]> {
37
- return this.http.get<string[]>(`${this.apiUrl}/tags`);
38
- }
39
-
40
- getBranches(): Observable<string[]> {
41
- return this.http.get<string[]>(`${this.apiUrl}/branches`);
42
- }
43
- }
@@ -1,13 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8">
5
- <title>Frontend</title>
6
- <base href="/">
7
- <meta name="viewport" content="width=device-width, initial-scale=1">
8
- <link rel="icon" type="image/x-icon" href="favicon.ico">
9
- </head>
10
- <body>
11
- <app-root></app-root>
12
- </body>
13
- </html>
@@ -1,6 +0,0 @@
1
- import { bootstrapApplication } from '@angular/platform-browser';
2
- import { appConfig } from './app/app.config';
3
- import { AppComponent } from './app/app.component';
4
-
5
- bootstrapApplication(AppComponent, appConfig)
6
- .catch((err) => console.error(err));