git-history-ui 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 (50) hide show
  1. package/README.md +7 -7
  2. package/dist/backend/server.d.ts.map +1 -1
  3. package/dist/backend/server.js +19 -5
  4. package/dist/backend/server.js.map +1 -1
  5. package/package.json +6 -1
  6. package/.dockerignore +0 -19
  7. package/.eslintrc.js +0 -21
  8. package/Dockerfile +0 -29
  9. package/demo.js +0 -45
  10. package/frontend/.editorconfig +0 -17
  11. package/frontend/.vscode/extensions.json +0 -4
  12. package/frontend/.vscode/launch.json +0 -20
  13. package/frontend/.vscode/tasks.json +0 -42
  14. package/frontend/README.md +0 -59
  15. package/frontend/angular.json +0 -99
  16. package/frontend/package-lock.json +0 -11272
  17. package/frontend/package.json +0 -58
  18. package/frontend/postcss.config.js +0 -6
  19. package/frontend/proxy.conf.json +0 -7
  20. package/frontend/public/favicon.ico +0 -0
  21. package/frontend/src/app/app.component.ts +0 -598
  22. package/frontend/src/app/app.config.ts +0 -12
  23. package/frontend/src/app/app.css +0 -0
  24. package/frontend/src/app/app.html +0 -342
  25. package/frontend/src/app/app.routes.ts +0 -3
  26. package/frontend/src/app/app.spec.ts +0 -23
  27. package/frontend/src/app/app.ts +0 -12
  28. package/frontend/src/app/components/color-palette-selector/color-palette-selector.component.ts +0 -137
  29. package/frontend/src/app/components/commit-detail/commit-detail.component.ts +0 -327
  30. package/frontend/src/app/components/commit-graph/commit-graph.component.ts +0 -294
  31. package/frontend/src/app/components/commit-list/commit-list.component.ts +0 -199
  32. package/frontend/src/app/components/diff-viewer/diff-viewer.component.ts +0 -311
  33. package/frontend/src/app/models/color-palette.models.ts +0 -229
  34. package/frontend/src/app/models/git.models.ts +0 -39
  35. package/frontend/src/app/services/git.service.ts +0 -43
  36. package/frontend/src/index.html +0 -13
  37. package/frontend/src/main.ts +0 -6
  38. package/frontend/src/styles.css +0 -401
  39. package/frontend/tailwind.config.js +0 -11
  40. package/frontend/tsconfig.app.json +0 -15
  41. package/frontend/tsconfig.json +0 -34
  42. package/frontend/tsconfig.spec.json +0 -14
  43. package/jest.config.js +0 -26
  44. package/src/__tests__/gitService.test.ts +0 -533
  45. package/src/__tests__/setup.ts +0 -25
  46. package/src/backend/dev-server.ts +0 -14
  47. package/src/backend/gitService.ts +0 -277
  48. package/src/backend/server.ts +0 -140
  49. package/src/cli.ts +0 -56
  50. package/tsconfig.json +0 -25
package/README.md CHANGED
@@ -6,7 +6,7 @@ A beautiful, modern web UI for visualizing git history with interactive commit g
6
6
 
7
7
  ```bash
8
8
  # Run directly with npx (no installation needed)
9
- npx git-history-ui
9
+ npx git-history-ui@latest
10
10
  ```
11
11
 
12
12
  That's it! The application will start on `http://localhost:3000` and open your browser automatically.
@@ -25,22 +25,22 @@ That's it! The application will start on `http://localhost:3000` and open your b
25
25
  ### CLI Options
26
26
  ```bash
27
27
  # Custom port
28
- npx git-history-ui --port 8080
28
+ npx git-history-ui@latest --port 8080
29
29
 
30
30
  # Filter by specific file
31
- npx git-history-ui --file src/app.js
31
+ npx git-history-ui@latest --file src/app.js
32
32
 
33
33
  # Filter by author
34
- npx git-history-ui --author "your-name"
34
+ npx git-history-ui@latest --author "your-name"
35
35
 
36
36
  # Filter by date range
37
- npx git-history-ui --since 2024-01-01
37
+ npx git-history-ui@latest --since 2024-01-01
38
38
 
39
39
  # Don't auto-open browser
40
- npx git-history-ui --no-open
40
+ npx git-history-ui@latest --no-open
41
41
 
42
42
  # Show help
43
- npx git-history-ui --help
43
+ npx git-history-ui@latest --help
44
44
  ```
45
45
 
46
46
  ## 🏭 Production
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/backend/server.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,WAAW,CAC/B,IAAI,GAAE,MAAa,EACnB,IAAI,GAAE,MAAoB,EAC1B,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,iBAyHrC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/backend/server.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,WAAW,CAC/B,IAAI,GAAE,MAAa,EACnB,IAAI,GAAE,MAAoB,EAC1B,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,iBAsIrC"}
@@ -29,10 +29,17 @@ async function startServer(port = 3000, host = 'localhost', options = {}) {
29
29
  // Middleware
30
30
  app.use((0, cors_1.default)(corsOptions));
31
31
  app.use(express_1.default.json());
32
- // Serve Angular build files
33
- app.use(express_1.default.static(path_1.default.join(__dirname, '../../frontend/dist/frontend/browser')));
34
- // Serve public folder as fallback
35
- app.use(express_1.default.static(path_1.default.join(__dirname, '../../public')));
32
+ // Check if Angular build exists, otherwise use public folder
33
+ const angularBuildPath = path_1.default.join(__dirname, '../../frontend/dist/frontend/browser');
34
+ const publicPath = path_1.default.join(__dirname, '../../public');
35
+ if (require('fs').existsSync(angularBuildPath)) {
36
+ // Serve Angular build files
37
+ app.use(express_1.default.static(angularBuildPath));
38
+ }
39
+ else {
40
+ // Serve public folder as fallback
41
+ app.use(express_1.default.static(publicPath));
42
+ }
36
43
  // API Routes
37
44
  app.get('/api/commits', async (req, res) => {
38
45
  try {
@@ -105,7 +112,14 @@ async function startServer(port = 3000, host = 'localhost', options = {}) {
105
112
  });
106
113
  // Serve the main HTML file for Angular routing
107
114
  app.get('*', (req, res) => {
108
- res.sendFile(path_1.default.join(__dirname, '../../frontend/dist/frontend/browser/index.html'));
115
+ const angularIndexPath = path_1.default.join(__dirname, '../../frontend/dist/frontend/browser/index.html');
116
+ const publicIndexPath = path_1.default.join(__dirname, '../../public/index.html');
117
+ if (require('fs').existsSync(angularIndexPath)) {
118
+ res.sendFile(angularIndexPath);
119
+ }
120
+ else {
121
+ res.sendFile(publicIndexPath);
122
+ }
109
123
  });
110
124
  // Socket.IO for real-time updates
111
125
  io.on('connection', (socket) => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/backend/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/backend/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "name": "git-history-ui",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Beautiful git history visualization in your browser",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {
7
7
  "git-history-ui": "dist/cli.js"
8
8
  },
9
+ "files": [
10
+ "dist/**/*",
11
+ "frontend/dist/**/*",
12
+ "public/**/*"
13
+ ],
9
14
  "scripts": {
10
15
  "build": "npm run build:backend && npm run build:frontend",
11
16
  "build:backend": "tsc -p tsconfig.json",
package/.dockerignore DELETED
@@ -1,19 +0,0 @@
1
- node_modules
2
- npm-debug.log
3
- .git
4
- .gitignore
5
- README.md
6
- .env
7
- .nyc_output
8
- coverage
9
- .nyc_output
10
- .coverage
11
- .cache
12
- dist
13
- frontend/dist
14
- frontend/node_modules
15
- src/__tests__
16
- *.log
17
- .DS_Store
18
- .vscode
19
- .idea
package/.eslintrc.js DELETED
@@ -1,21 +0,0 @@
1
- module.exports = {
2
- parser: '@typescript-eslint/parser',
3
- extends: [
4
- 'eslint:recommended',
5
- '@typescript-eslint/recommended',
6
- ],
7
- parserOptions: {
8
- ecmaVersion: 2020,
9
- sourceType: 'module',
10
- },
11
- env: {
12
- node: true,
13
- es6: true,
14
- },
15
- rules: {
16
- '@typescript-eslint/no-unused-vars': 'error',
17
- '@typescript-eslint/explicit-function-return-type': 'off',
18
- '@typescript-eslint/explicit-module-boundary-types': 'off',
19
- '@typescript-eslint/no-explicit-any': 'warn',
20
- },
21
- };
package/Dockerfile DELETED
@@ -1,29 +0,0 @@
1
- # Use Node.js 18 Alpine for smaller image size
2
- FROM node:18-alpine
3
-
4
- # Set working directory
5
- WORKDIR /app
6
-
7
- # Copy package files
8
- COPY package*.json ./
9
- COPY frontend/package*.json ./frontend/
10
-
11
- # Install dependencies
12
- RUN npm ci --only=production && \
13
- cd frontend && npm ci --only=production && cd ..
14
-
15
- # Copy source code
16
- COPY . .
17
-
18
- # Build the application
19
- RUN npm run build:production
20
-
21
- # Expose port
22
- EXPOSE 3000
23
-
24
- # Set environment variables
25
- ENV NODE_ENV=production
26
- ENV PORT=3000
27
-
28
- # Start the application
29
- CMD ["npm", "run", "start:production"]
package/demo.js DELETED
@@ -1,45 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // Simple demo script to test the git-history-ui functionality
4
- const { execSync } = require('child_process');
5
- const path = require('path');
6
-
7
- console.log('🚀 Git History UI Demo');
8
- console.log('=====================');
9
-
10
- // Check if we're in a git repository
11
- try {
12
- execSync('git status', { stdio: 'pipe' });
13
- console.log('✅ Git repository detected');
14
- } catch (error) {
15
- console.log('❌ Not in a git repository');
16
- console.log('Please run this script from a git repository');
17
- process.exit(1);
18
- }
19
-
20
- // Test the CLI
21
- console.log('\n📋 Testing CLI...');
22
- try {
23
- const result = execSync('node dist/cli.js --help', { encoding: 'utf8' });
24
- console.log('✅ CLI help command works');
25
- console.log(result);
26
- } catch (error) {
27
- console.log('❌ CLI help command failed');
28
- console.log(error.message);
29
- }
30
-
31
- // Test the server
32
- console.log('\n🌐 Testing server...');
33
- try {
34
- const server = require('./dist/backend/server');
35
- console.log('✅ Server module loads successfully');
36
- } catch (error) {
37
- console.log('❌ Server module failed to load');
38
- console.log(error.message);
39
- }
40
-
41
- console.log('\n🎉 Demo completed!');
42
- console.log('\nTo start the server, run:');
43
- console.log(' npm start');
44
- console.log('\nOr use the CLI:');
45
- console.log(' node dist/cli.js');
@@ -1,17 +0,0 @@
1
- # Editor configuration, see https://editorconfig.org
2
- root = true
3
-
4
- [*]
5
- charset = utf-8
6
- indent_style = space
7
- indent_size = 2
8
- insert_final_newline = true
9
- trim_trailing_whitespace = true
10
-
11
- [*.ts]
12
- quote_type = single
13
- ij_typescript_use_double_quotes = false
14
-
15
- [*.md]
16
- max_line_length = off
17
- trim_trailing_whitespace = false
@@ -1,4 +0,0 @@
1
- {
2
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
3
- "recommendations": ["angular.ng-template"]
4
- }
@@ -1,20 +0,0 @@
1
- {
2
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
3
- "version": "0.2.0",
4
- "configurations": [
5
- {
6
- "name": "ng serve",
7
- "type": "chrome",
8
- "request": "launch",
9
- "preLaunchTask": "npm: start",
10
- "url": "http://localhost:4200/"
11
- },
12
- {
13
- "name": "ng test",
14
- "type": "chrome",
15
- "request": "launch",
16
- "preLaunchTask": "npm: test",
17
- "url": "http://localhost:9876/debug.html"
18
- }
19
- ]
20
- }
@@ -1,42 +0,0 @@
1
- {
2
- // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
3
- "version": "2.0.0",
4
- "tasks": [
5
- {
6
- "type": "npm",
7
- "script": "start",
8
- "isBackground": true,
9
- "problemMatcher": {
10
- "owner": "typescript",
11
- "pattern": "$tsc",
12
- "background": {
13
- "activeOnStart": true,
14
- "beginsPattern": {
15
- "regexp": "(.*?)"
16
- },
17
- "endsPattern": {
18
- "regexp": "bundle generation complete"
19
- }
20
- }
21
- }
22
- },
23
- {
24
- "type": "npm",
25
- "script": "test",
26
- "isBackground": true,
27
- "problemMatcher": {
28
- "owner": "typescript",
29
- "pattern": "$tsc",
30
- "background": {
31
- "activeOnStart": true,
32
- "beginsPattern": {
33
- "regexp": "(.*?)"
34
- },
35
- "endsPattern": {
36
- "regexp": "bundle generation complete"
37
- }
38
- }
39
- }
40
- }
41
- ]
42
- }
@@ -1,59 +0,0 @@
1
- # Frontend
2
-
3
- This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.2.0.
4
-
5
- ## Development server
6
-
7
- To start a local development server, run:
8
-
9
- ```bash
10
- ng serve
11
- ```
12
-
13
- Once the server is running, open your browser and navigate to `http://localhost:4200/`. The application will automatically reload whenever you modify any of the source files.
14
-
15
- ## Code scaffolding
16
-
17
- Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
18
-
19
- ```bash
20
- ng generate component component-name
21
- ```
22
-
23
- For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
24
-
25
- ```bash
26
- ng generate --help
27
- ```
28
-
29
- ## Building
30
-
31
- To build the project run:
32
-
33
- ```bash
34
- ng build
35
- ```
36
-
37
- This will compile your project and store the build artifacts in the `dist/` directory. By default, the production build optimizes your application for performance and speed.
38
-
39
- ## Running unit tests
40
-
41
- To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
42
-
43
- ```bash
44
- ng test
45
- ```
46
-
47
- ## Running end-to-end tests
48
-
49
- For end-to-end (e2e) testing, run:
50
-
51
- ```bash
52
- ng e2e
53
- ```
54
-
55
- Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
56
-
57
- ## Additional Resources
58
-
59
- For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -1,99 +0,0 @@
1
- {
2
- "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3
- "version": 1,
4
- "cli": {
5
- "packageManager": "npm",
6
- "analytics": "d562ce7a-00ba-44af-a685-e79fde7ddbdf"
7
- },
8
- "newProjectRoot": "projects",
9
- "projects": {
10
- "frontend": {
11
- "projectType": "application",
12
- "schematics": {},
13
- "root": "",
14
- "sourceRoot": "src",
15
- "prefix": "app",
16
- "architect": {
17
- "build": {
18
- "builder": "@angular/build:application",
19
- "options": {
20
- "browser": "src/main.ts",
21
- "polyfills": [
22
- "zone.js"
23
- ],
24
- "tsConfig": "tsconfig.app.json",
25
- "assets": [
26
- {
27
- "glob": "**/*",
28
- "input": "public"
29
- }
30
- ],
31
- "styles": [
32
- "src/styles.css"
33
- ]
34
- },
35
- "configurations": {
36
- "production": {
37
- "budgets": [
38
- {
39
- "type": "initial",
40
- "maximumWarning": "500kB",
41
- "maximumError": "1MB"
42
- },
43
- {
44
- "type": "anyComponentStyle",
45
- "maximumWarning": "4kB",
46
- "maximumError": "8kB"
47
- }
48
- ],
49
- "outputHashing": "all"
50
- },
51
- "development": {
52
- "optimization": false,
53
- "extractLicenses": false,
54
- "sourceMap": true
55
- }
56
- },
57
- "defaultConfiguration": "production"
58
- },
59
- "serve": {
60
- "builder": "@angular/build:dev-server",
61
- "options": {
62
- "proxyConfig": "proxy.conf.json"
63
- },
64
- "configurations": {
65
- "production": {
66
- "buildTarget": "frontend:build:production"
67
- },
68
- "development": {
69
- "buildTarget": "frontend:build:development"
70
- }
71
- },
72
- "defaultConfiguration": "development"
73
- },
74
- "extract-i18n": {
75
- "builder": "@angular/build:extract-i18n"
76
- },
77
- "test": {
78
- "builder": "@angular/build:karma",
79
- "options": {
80
- "polyfills": [
81
- "zone.js",
82
- "zone.js/testing"
83
- ],
84
- "tsConfig": "tsconfig.spec.json",
85
- "assets": [
86
- {
87
- "glob": "**/*",
88
- "input": "public"
89
- }
90
- ],
91
- "styles": [
92
- "src/styles.css"
93
- ]
94
- }
95
- }
96
- }
97
- }
98
- }
99
- }