sdarbinyan 4bf0666fd1 perf(app): lazy-load i18n translation packs, drop dead items-carousel component
RC PERF-01 bundle audit follow-up on 61a5714.

- i18n: ru/en/hy translation packs (346 KB raw combined) were all
  statically imported in TranslateService and shipped in the initial
  bundle regardless of the visitor's language. Now only 'ru' (platform
  default) is bundled eagerly; 'en'/'hy' are dynamic import()s. The
  language route guard (languageGuard) awaits preloadLanguage() before
  activating the route, so translations are always fully loaded before
  any component renders - no flash of untranslated/fallback content.
- widget-host.service.ts: import UnknownWidgetComponent directly instead
  of via the widgets/ui barrel (index.ts re-exports 6 widgets).
- Deleted src/app/components/items-carousel/* - confirmed dead (zero
  references anywhere, verified via knip and grep), the only consumer
  of primeng/primeicons in the app. Removed the now-unused
  `@import 'primeicons/primeicons.css'` from styles.scss (no primeicons
  CSS classes used elsewhere). primeng/primeicons remain listed in
  package.json/package-lock.json - npm CLI in this environment is
  blocked by an unrelated, pre-existing broken `barry-cache` devDependency
  (ETARGET on `npm install`/`npm uninstall`), so the lockfile could not be
  safely regenerated. Flagged, not fixed.

Routes audit (app.routes.ts): all storefront/builder/backoffice feature
routes already use loadComponent/loadChildren; nothing eagerly imported.
No route changes needed.

Lucide icons (icon-registry.ts): already named/tree-shakeable imports
from @lucide/angular, not a full-library import. No change needed.

Before/after (npm run build, production):
- Initial bundle raw: 1.47 MB -> 1.12 MB (-350 KB / -24%)
- Initial bundle transfer (est.): 263.59 kB -> 221.51 kB (-42 kB / -16%)
- Budget overage: 769.22 kB over -> 416.84 kB over (still exceeds the
  700 KB budget; project-editor-page-component (320 kB),
  catalog-container-component (126 kB), product-details-container
  (88 kB), cart-component (61 kB) lazy chunks unchanged - no safe
  mechanical split identified within scope, see PERF-01 report for
  detail).

Verified: npx tsc --noEmit clean, npm run build green (warning only,
no errors).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-24 08:19:13 +04:00
2026-07-19 15:28:35 +04:00
2026-01-18 18:57:06 +04:00
2026-06-01 00:47:26 +04:00
2026-07-19 15:28:35 +04:00
2026-01-18 18:57:06 +04:00
2026-07-16 00:22:01 +04:00
2026-07-19 15:28:35 +04:00
2026-03-24 02:25:50 +04:00
2026-07-19 15:28:35 +04:00
2026-07-09 01:40:22 +04:00
2026-07-05 00:57:20 +04:00
2026-07-16 00:22:01 +04:00
2026-05-28 12:56:41 +00:00
2026-01-18 19:44:46 +04:00
2026-06-21 23:42:39 +04:00

Marketplace Frontend

Angular marketplace frontend for the client demonstration. The app uses standalone components, signals, runtime branding/configuration, and a production build optimized for the current marketplace experience.

Features

  • Responsive marketplace storefront
  • Category browsing and product detail pages
  • Search and shopping cart flows
  • Telegram login integration
  • Payment handoff through the existing backend contract
  • Runtime branding and configuration loading
  • PWA manifest and service worker configuration

Development

Install dependencies:

npm install

Start the local development server:

npm start

Build for production:

npm run build

The production build is written to dist/dexarmarket/.

Project Structure

src/
├── app/
│   ├── components/          # Shared storefront components
│   ├── core/                # Runtime, config, guards, providers, interceptors
│   ├── dynamic-renderer/    # Page, section, and widget rendering pipeline
│   ├── facades/             # Runtime, website, builder, and backoffice facades
│   ├── pages/               # Storefront, info, legal, cart, search, and item pages
│   ├── services/            # API, cart, auth, SEO, Telegram, and language services
│   └── widgets/             # Dynamic renderer widgets
├── assets/mock/             # Local mock configuration and catalog data
├── environments/            # Development and production environment settings
└── styles/                  # Shared global styles and themes

Useful Checks

npm run build
npm run arch:check

Notes

  • Authentication and payment integrations are intentionally left on their existing contracts.
  • Renderer and runtime architecture should remain stable during demo preparation.
  • Client-facing content should avoid placeholder names, mock labels, and temporary routes.
Description
No description provided
Readme 16 MiB
Languages
TypeScript 71.4%
HTML 15.3%
SCSS 11.9%
Shell 1.3%
JavaScript 0.1%