Commit Graph

80 Commits

Author SHA1 Message Date
gnezim 4c52bb4032 Add useLiveFlights SSR-safe hook with tests
Generic hook wrapping SignalR subscription with SSR guard
(typeof window check). Includes tests for subscribe, data
updates, cleanup, and SSR path.
2026-04-15 00:42:51 +03:00
gnezim 7052052742 Add SignalRConnection ref-counted wrapper with tests
Reference-counted connection management with grace period,
dynamic import to keep @microsoft/signalr out of SSR bundle,
and singleton sharing via getSharedConnection.
2026-04-15 00:41:28 +03:00
gnezim b6a007d3b6 Add @microsoft/signalr dependency for live flight data 2026-04-15 00:39:31 +03:00
gnezim b431010241 Add Phase 1E SignalR wrapper implementation plan 2026-04-15 00:39:14 +03:00
gnezim b6da51fce5 Add smoke route exercising logger, i18n, and locale display 2026-04-15 00:36:54 +03:00
gnezim 6d3e3ae986 Add error pages for 404, 500, 503 codes 2026-04-15 00:35:05 +03:00
gnezim 858b8e1d1f Wire root layout provider stack and locale-scoped layout with i18n
Root layout wraps children with LoggerProvider, ApiClientProvider, and
ErrorBoundary. Locale layout validates lang param against 9 supported
languages and provides a request-scoped I18nProvider.
2026-04-15 00:34:16 +03:00
gnezim fc57556010 Add errorToResponse mapper with TDD tests covering all mapping rules 2026-04-15 00:31:37 +03:00
gnezim 2eb118cb8b Add ErrorBoundary class component with retry support 2026-04-15 00:30:34 +03:00
gnezim 1409df458b Add 1F-layout implementation plan for root layout, error routes, smoke route 2026-04-15 00:29:46 +03:00
gnezim bb50e63866 Add SeoHead component with canonical, hreflang, OG, Twitter, and JSON-LD 2026-04-15 00:20:40 +03:00
gnezim 599f35f14a Add JsonLdRenderer and serializeJsonLd with schema-dts typing 2026-04-15 00:20:07 +03:00
gnezim 8abe8acf70 Add buildHreflangSet for 9 languages + x-default 2026-04-15 00:18:35 +03:00
gnezim ad9b35f725 Add schema-dts dependency for typed JSON-LD generation 2026-04-15 00:17:29 +03:00
gnezim 6a4be07911 Add useAnalytics hook with server-safe NoopAnalytics fallback 2026-04-15 00:15:43 +03:00
gnezim 8878dcb6c8 Add AnalyticsLoader component with idle-callback initialization 2026-04-15 00:15:43 +03:00
gnezim 515151ed81 Add analytics facade with adapter fan-out and consent gating 2026-04-15 00:15:11 +03:00
gnezim fe31bbfb65 Add four stub analytics adapters (metrica, ctm, variocube, dynatrace) 2026-04-15 00:13:49 +03:00
gnezim e95781a069 Add test-observable analytics event sink 2026-04-15 00:13:13 +03:00
gnezim 0b25a1a9e7 Add 8 custom metric instruments using OTel proxy meter 2026-04-15 00:10:49 +03:00
gnezim 2dc1a1f194 Add OTel server/browser initializers with getMeter/getTracer accessors 2026-04-15 00:10:21 +03:00
gnezim ddedddd15d Add OpenTelemetry and web-vitals dependencies for metrics pipeline 2026-04-15 00:07:38 +03:00
gnezim 8e7adef5e3 Add implementation plans for 1G-metrics, 1G-analytics, and 1F-seo 2026-04-15 00:05:48 +03:00
gnezim dfa9e0283d Add LoggerProvider React context with useLogger hook 2026-04-14 23:57:56 +03:00
gnezim 498d049acd Add createRootLogger factory with transport selection by env 2026-04-14 23:57:30 +03:00
gnezim 9a1b4bace1 Add JsonLinesHttpTransport with batching, backpressure, and redaction 2026-04-14 23:55:12 +03:00
gnezim 98414ee4af Add dev-mode ConsoleTransport for logger 2026-04-14 23:54:01 +03:00
gnezim 1a40686490 Add LoggerImpl with transport dispatch and child context propagation 2026-04-14 23:53:13 +03:00
gnezim c095fad7ad Add Phase 1G-logger runtime implementation plan
6 tasks: TDD LoggerImpl, ConsoleTransport, JsonLinesHttpTransport
with batching/backpressure/redaction, createRootLogger factory with
env-based transport selection, LoggerProvider React context.
2026-04-14 23:51:04 +03:00
gnezim 7992d2705a Add ApiClient React context provider with useApiClient hook 2026-04-14 23:46:20 +03:00
gnezim 04c5432aef Add CachedApiClient decorator layered above ApiClient 2026-04-14 23:45:56 +03:00
gnezim 65c8c8b55f Add ApiClient with retry, timeout, and error mapping 2026-04-14 23:42:22 +03:00
gnezim cb5e5b0106 Add three cache types (request-scoped, client TTL, server byte-capped LRU) 2026-04-14 23:39:35 +03:00
gnezim fd62d6f123 Add circuit breaker with closed/open/half-open state machine 2026-04-14 23:30:53 +03:00
gnezim 6ef9ce4ed7 Add typed API error classes (ApiHttpError, ApiTimeoutError, ApiNetworkError) 2026-04-14 23:30:00 +03:00
gnezim 454fb0bdb9 Add Phase 1D API client implementation plan
7 tasks: TDD error classes, circuit breaker, three cache types
(request-scoped, client TTL, server byte-capped LRU via lru-cache),
ApiClient with retry+timeout, CachedApiClient decorator, provider.
2026-04-14 23:27:50 +03:00
gnezim 7103b9ffb1 Add I18nProvider with useTranslation re-export for feature code 2026-04-14 23:21:25 +03:00
gnezim a8c648c818 Add SSR↔client i18n hydration serializer 2026-04-14 23:21:01 +03:00
gnezim 1fd2788c35 Add createI18nInstance factory with ICU and resource backend 2026-04-14 23:18:22 +03:00
gnezim bf3087d45e Add locale resolver with Language type and URL prefix parsing 2026-04-14 23:17:08 +03:00
gnezim 33d4c94298 Install i18n deps and port 9 locale JSON files from Angular 2026-04-14 23:15:00 +03:00
gnezim 3067f8f111 Add Phase 1C i18n runtime implementation plan
6 tasks: port 9 locale JSONs, TDD resolver with Language type, TDD
createI18nInstance factory with ICU, TDD SSR↔client hydration
serializer, I18nProvider with useTranslation re-export.
2026-04-14 23:13:35 +03:00
gnezim 050f311a60 Add fabricated violation tests for restricted import rules 2026-04-14 23:07:18 +03:00
gnezim 8459e1661b Add fabricated violation tests for boundary rules
Fix eslint.config.js: add import/resolver settings so boundaries plugin
can resolve .ts/.tsx imports, and merge no-restricted-imports blocks to
prevent ESLint 9 flat config from overriding earlier rule definitions.
2026-04-14 23:06:57 +03:00
gnezim e9640b17fd Add no-restricted-imports for OTel SDK, react-i18next, SignalR SSR, localStorage 2026-04-14 22:47:53 +03:00
gnezim f1acf7827d Add eslint-plugin-boundaries with layered dependency rules 2026-04-14 22:47:26 +03:00
gnezim 7bbda35041 Add Phase 1A-3 ESLint boundaries implementation plan
5 tasks: install eslint-plugin-boundaries, configure layered dependency
rules matching design spec §1.2, add no-restricted-imports for OTel
SDK, react-i18next, SignalR SSR, localStorage. Each rule has a
fabricated-violation test asserting it fires.
2026-04-14 22:46:12 +03:00
gnezim 826758f03d Add typed loadRemoteModule wrapper around MF runtime 2026-04-14 22:40:49 +03:00
gnezim 604ed75498 Wire build:standalone/build:remote/dev to Modern.js CLI 2026-04-14 22:37:56 +03:00
gnezim 4fd7ae3f94 Add modern.config.ts with standalone/remote BUILD_TARGET branching 2026-04-14 22:37:12 +03:00