git-history-ui 1.0.6 → 2.0.1
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.
- package/CHANGELOG.md +60 -0
- package/build/frontend/index.html +13 -10
- package/build/frontend/main-YTFHD36T.js +11 -0
- package/build/frontend/styles-YQ73RJ2V.css +1 -0
- package/dist/backend/dev-server.d.ts +0 -1
- package/dist/backend/dev-server.js +8 -4
- package/dist/backend/dev-server.js.map +1 -1
- package/dist/backend/gitService.d.ts +24 -10
- package/dist/backend/gitService.js +340 -240
- package/dist/backend/gitService.js.map +1 -1
- package/dist/backend/server.d.ts +8 -2
- package/dist/backend/server.js +145 -112
- package/dist/backend/server.js.map +1 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +44 -22
- package/dist/cli.js.map +1 -1
- package/package.json +43 -27
- package/build/frontend/main-44CFNHDH.js +0 -8
- package/build/frontend/main-5GQESVK5.js +0 -8
- package/build/frontend/main-KMFUNYSW.js +0 -8
- package/build/frontend/main-YHO6NCZZ.js +0 -8
- package/build/frontend/styles-26JPPBSI.css +0 -1
- package/build/frontend/styles-J5I4DBTU.css +0 -1
- package/dist/__tests__/gitService.test.d.ts +0 -2
- package/dist/__tests__/gitService.test.d.ts.map +0 -1
- package/dist/__tests__/gitService.test.js +0 -435
- package/dist/__tests__/gitService.test.js.map +0 -1
- package/dist/__tests__/setup.d.ts +0 -2
- package/dist/__tests__/setup.d.ts.map +0 -1
- package/dist/__tests__/setup.js +0 -24
- package/dist/__tests__/setup.js.map +0 -1
- package/dist/backend/dev-server.d.ts.map +0 -1
- package/dist/backend/gitService.d.ts.map +0 -1
- package/dist/backend/server.d.ts.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/config/paths.d.ts +0 -14
- package/dist/config/paths.d.ts.map +0 -1
- package/dist/config/paths.js +0 -35
- package/dist/config/paths.js.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
|
|
5
|
+
this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
|
|
7
|
+
## [2.0.1] - 2026-04-28
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Diff viewer now scrolls correctly in both unified and split modes. The
|
|
12
|
+
surrounding grid containers were missing `min-height: 0` and explicit
|
|
13
|
+
`grid-template-rows: minmax(0, 1fr)`, which let the inner `<pre>` panes
|
|
14
|
+
expand to their content height instead of clipping and scrolling.
|
|
15
|
+
|
|
16
|
+
## [2.0.0] - 2026-04-27
|
|
17
|
+
|
|
18
|
+
A full-stack rewrite focused on extreme performance, correctness, and a polished UI.
|
|
19
|
+
|
|
20
|
+
### Highlights
|
|
21
|
+
|
|
22
|
+
- Rewritten backend `GitService` with deterministic parsing, ref-index caching,
|
|
23
|
+
filter-aware pagination via `git rev-list --count`, and safe `execFile`
|
|
24
|
+
arguments (no NUL-byte placeholders).
|
|
25
|
+
- New backend HTTP server hardened with `helmet`, `compression`, configurable
|
|
26
|
+
CORS, rate limiting, and graceful shutdown.
|
|
27
|
+
- New frontend built around Angular signals, `OnPush` change detection,
|
|
28
|
+
CDK virtual scroll, and a canvas-rendered swim-lane git graph.
|
|
29
|
+
- Light / dark / system theming via CSS custom properties with persisted
|
|
30
|
+
preference.
|
|
31
|
+
- Diff viewer with unified and split-view modes, syntax highlighting via
|
|
32
|
+
`highlight.js`, and proper line-number gutters.
|
|
33
|
+
- Command palette (`⌘K`) and keyboard navigation (`j` / `k` / `g` / `G`,
|
|
34
|
+
`?`, `/`).
|
|
35
|
+
- Modern release infra: GitHub Actions CI + tag-driven npm publish via
|
|
36
|
+
`NODE_TOKEN`, multi-stage Node 20 Docker image, ESLint + Prettier,
|
|
37
|
+
Dependabot.
|
|
38
|
+
- Comprehensive Jest coverage for backend git service and HTTP server.
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- `/api/authors` endpoint and frontend `GitService.getAuthors`.
|
|
43
|
+
- `since` / `until` / server-side `search` (--grep) filters.
|
|
44
|
+
- `subject`, `body`, `shortHash`, `authorEmail`, `isMerge`, and rich diff
|
|
45
|
+
status (`added` / `modified` / `deleted` / `renamed` / `copied` / `binary`)
|
|
46
|
+
in commit and diff shapes.
|
|
47
|
+
- `.editorconfig`, `.nvmrc`, `.prettierrc`, `.prettierignore`, dependabot
|
|
48
|
+
config.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- Bumped engines to Node `>=18`.
|
|
53
|
+
- Pagination now uses `--skip` + filter-aware count caching.
|
|
54
|
+
- Frontend now ships as an Angular standalone app with signals end-to-end.
|
|
55
|
+
|
|
56
|
+
### Removed
|
|
57
|
+
|
|
58
|
+
- Legacy color-palette selector and the inline app template (replaced by the
|
|
59
|
+
new toolbar + theme service).
|
|
60
|
+
- Custom dark-mode CSS overrides in favour of token-driven theming.
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
2
|
<html lang="en" data-beasties-container>
|
|
3
|
-
<head>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
<
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>Git History UI</title>
|
|
6
|
+
<base href="/">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
+
<meta name="color-scheme" content="light dark">
|
|
9
|
+
<meta name="theme-color" content="#0b1020" media="(prefers-color-scheme: dark)">
|
|
10
|
+
<meta name="theme-color" content="#f7f8fa" media="(prefers-color-scheme: light)">
|
|
11
|
+
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234f46e5' d='M12 .5a11.5 11.5 0 1 0 11.5 11.5A11.5 11.5 0 0 0 12 .5Zm5.7 14.83a1 1 0 0 1-1.41 1.41L13 13.41V19a1 1 0 0 1-2 0v-5.59l-3.29 3.33A1 1 0 1 1 6.3 15.34l5-5.05a1 1 0 0 1 1.42 0Z'/%3E%3C/svg%3E">
|
|
12
|
+
<style>*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}:root{color-scheme:light;--bg-app:#f7f8fa;--bg-surface:#ffffff;--bg-surface-2:#f3f4f6;--bg-elevated:#ffffff;--bg-hover:#eef2ff;--bg-selected:#e0e7ff;--bg-overlay:rgba(15, 23, 42, .45);--fg-primary:#0f172a;--fg-secondary:#475569;--fg-muted:#64748b;--fg-subtle:#94a3b8;--fg-inverted:#ffffff;--border-soft:#e2e8f0;--border-strong:#cbd5e1;--border-focus:#6366f1;--accent:#4f46e5;--accent-hover:#4338ca;--accent-soft:#eef2ff;--accent-fg:#ffffff;--success:#16a34a;--warning:#d97706;--danger:#dc2626;--diff-add-bg:#dcfce7;--diff-add-fg:#14532d;--diff-add-gutter:#86efac;--diff-del-bg:#fee2e2;--diff-del-fg:#7f1d1d;--diff-del-gutter:#fca5a5;--diff-hunk-bg:#f1f5f9;--diff-hunk-fg:#475569;--shadow-sm:0 1px 2px rgba(15, 23, 42, .06);--shadow-md:0 4px 12px rgba(15, 23, 42, .08);--shadow-lg:0 12px 32px rgba(15, 23, 42, .12);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--font-sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, "Cascadia Mono", "Liberation Mono", "Courier New", monospace}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--fg-primary);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}</style><link rel="stylesheet" href="styles-YQ73RJ2V.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-YQ73RJ2V.css"></noscript></head>
|
|
13
|
+
<body>
|
|
14
|
+
<app-root></app-root>
|
|
15
|
+
<script src="polyfills-5CFQRCPP.js" type="module"></script><script src="main-YTFHD36T.js" type="module"></script></body>
|
|
13
16
|
</html>
|