acontplus-libs

Acontplus Libraries

A pnpm and Nx monorepo of publishable TypeScript and Angular libraries for enterprise applications. The workspace uses strict TypeScript 6, Angular 22.1, Nx 23.1, Vitest, Playwright, and Nx Release.

Workspace

Area Projects
Foundation libraries core, utils, ui-kit
Angular libraries ng-auth, ng-common, ng-components, ng-config, ng-customer, ng-infrastructure, ng-notifications
Applications demo-app, acontplus-erp
End-to-end tests demo-app-e2e, acontplus-erp-e2e

Each library’s public API is defined by packages/<name>/src/index.ts. See its package README for installation and usage information.

Prerequisites

pnpm install
pnpm start          # demo-app at https://localhost:4200
pnpm start:erp      # acontplus-erp at https://localhost:4300

The application development servers use Angular’s native --ssl option. No certificate or private key is stored in this repository.

Development

Use Nx through pnpm from the workspace root:

# Inspect the workspace
pnpm exec nx show projects
pnpm exec nx show project ng-auth

# Focused validation
pnpm exec nx lint ng-auth
pnpm exec nx test ng-auth
pnpm exec nx build ng-auth
pnpm exec nx e2e demo-app-e2e

# Validate changed projects
pnpm exec nx affected -t lint,test,build --base=origin/main --head=HEAD

# Formatting
pnpm run format:check
pnpm run format

CI runs affected lint, unit tests, and builds on pull requests. Playwright E2E tests are available locally and should be run for relevant application changes.

Quality conventions

See the testing strategy for runner choices, local commands, and the coverage policy.

Releases

Packages release independently through Nx Release version plans. The current version comes from tags in the {projectName}@{version} form. A reviewed plan under .nx/version-plans/ selects the exact packages and SemVer bump; merging it triggers the release workflow. A release updates both the source package manifest and the manifest under dist/; only dist/packages/* is published.

Preview release decisions without writing anything:

pnpm exec nx release --dry-run

The main workflow performs versioning, project changelogs, tags, and npm publishing only when a version plan is merged. Do not manually edit versions, generated changelogs, tags, or dist/ manifests. Packages released together may use workspace:^ internally; the workflow converts those values to npm-compatible ranges in dist/ just before publishing. Read the release strategy before working on release behavior.

Documentation