Installation
The compiler and workspace packages are Node-side build/test tooling and must
not enter the Angular browser bundle. The schema package has one explicit
browser-safe entry point, @formly-contract/schema/field-type-authoring, for
paired custom-field declarations and production type registration.
Supported baseline
Section titled “Supported baseline”- Node.js
>=22.13.0 <23; repository reference22.22.1 - pnpm
10.23.0 - Angular 20.x for
@formly-contract/angular - Formly 6.x
The compatibility suite is pinned to Angular 20.3.29 and Formly 6.1.8.
Compiler-only consumers do not load Angular and peer only on Formly 6.x.
Evaluate the GitHub pilot release candidate
Section titled “Evaluate the GitHub pilot release candidate”Before npm publication, download every asset from the newest
pilot-rc.* GitHub prerelease.
Keep the four package tarballs, formly-contract-pilot.json, and
formly-contract-pilot.pnpmfile.cjs in one directory. The manifest records
each package SHA-256, the pnpm-hook SHA-256, exact pnpm version, and install
arguments verified by the release candidate’s temporary consumer smoke test.
The pilot RC is installable evaluation evidence, not an npm publication or a stable compatibility promise. Third-party Angular, Formly, TypeScript, and pnpm dependencies still come from the consumer’s registry or package cache.
Link the packages before npm publication
Section titled “Link the packages before npm publication”The packages are prepared for public npm release but may still need to be linked before the npm bootstrap completes. Clone this repository beside the consumer and build the four publishable packages:
git clone https://github.com/dills122/formly-contract.gitcd formly-contractpnpm install --frozen-lockfilepnpm --filter @formly-contract/schema buildpnpm --filter @formly-contract/compiler buildpnpm --filter @formly-contract/workspace buildpnpm --filter @formly-contract/angular buildIn the consuming repository, add sibling links with paths adjusted for your layout:
{ "dependencies": { "@formly-contract/schema": "link:../formly-contract/packages/schema" }, "devDependencies": { "@formly-contract/compiler": "link:../formly-contract/packages/compiler", "@formly-contract/workspace": "link:../formly-contract/packages/workspace", "@formly-contract/angular": "link:../formly-contract/packages/angular" }}Keep schema in regular dependencies when production Angular code imports its
field-type-authoring subpath. If schema is used only from Node tooling, it may
remain dev-only. The schema root is Node-oriented; browser code must import the
dedicated subpath.
Install through the consumer’s normal pnpm workflow, then verify the binary:
pnpm installpnpm exec formly-contracts --helpA successful check begins with
Usage: formly-contracts <command> [options].
Pack a portable workplace pilot bundle
Section titled “Pack a portable workplace pilot bundle”When a sibling checkout is not available on the consuming machine, build and retain the required pilot tarballs plus a checksum/install manifest:
pnpm pilot:packCopy artifacts/pilot/ to the consumer, then run the pnpm command described
by formly-contract-pilot.json. The pilot remains a retained evaluation
handoff even though workspace and Angular are now on the public release path.
The manifest contains schema, compiler, workspace, and Angular and is checked
in a temporary consumer predeclared with the compatibility suite’s pinned
Angular 20.3.29 and Formly 6.1.8 runtime stack. The check installs the exact
manifest arguments, imports @formly-contract/angular/jit, and runs
formly-contracts-angular --help. Its checksummed pnpm hook redirects only
dependencies among those four unpublished packages to bundled tarballs;
inspect and retain that file beside the tarballs when copying the bundle.
Third-party Angular, Formly, TypeScript, and pnpm dependencies still require the
consumer’s normal registry or package cache; this is not an offline dependency
bundle.
Repository contributors
Section titled “Repository contributors”Run the documentation site from this monorepo with:
pnpm docs:devBuild the static site and validate its internal routes with:
pnpm check:docsGenerated Astro output stays under apps/docs/dist/ and is ignored by Git.