sysgears/domain-schema
52.7
Adequate · 21 September 2026
13.9k
lines of production code
JavaScript
with TypeScript
4
measurements over time
What this system is
Features
Initial release of Domain Schema with multi-package support
The Domain Schema library is introduced as a set of packages enabling Domain Driven Design principles in JavaScript. It allows users to define schemas with various fields and use them as a single source of truth to generate database schemas, forms, and GraphQL types. The release includes core, formik, graphql, knex, and validation packages, along with configuration files for TypeScript, Jest, and linting, supporting both standard and cyclic dependency definitions.
(repo-wide) · high confidence
Initial release of the Domain Schema Knex generator package
The \packages/knex\ directory is introduced, providing a Knex-based generator that converts domain schemas into database tables and queries. The implementation includes the core \DomainKnex\ class for table creation, foreign key generation, and query building, accompanied by unit tests and configuration files.
packages/knex · high confidence
Introduce @domain-schema/graphql package for GraphQL type generation
A new package, @domain-schema/graphql, has been added to generate GraphQL type definitions from domain schemas. The package provides a generator that converts domain schema classes into GraphQL type strings, supporting scalar types (Boolean, Int, Float, String, Date, DateTime, Time, ID), nested schemas, arrays, and optional fields. The implementation includes a core generator class with methods to traverse schema properties and produce the corresponding GraphQL schema output, along with associated tests and configuration files.
packages/graphql · high confidence
Introduce DomainSchema for domain-driven design schemas
The packages/core area now includes a new DomainSchema implementation that allows developers to define application schemas using Domain Driven Design principles. This includes the core DomainSchema class with static type definitions (ID, Int, Float, Time, DateTime), schema normalization, and validation logic. The change also adds comprehensive unit tests covering schema instantiation, property exposure, cyclic dependency handling, and error conditions, alongside supporting configuration files (tsconfig) and documentation.
packages/core · high confidence
Introduce DomainSchemaFormik to auto-generate Formik forms from domain schemas
A new DomainSchemaFormik component has been added to the formik package, enabling automatic generation of Formik-based forms from domain schemas. The implementation includes a FieldAdapter to bridge formik state with UI components, along with a suite of test components (such as RenderField, RenderSelect, and RenderCheckBox) and snapshot tests to verify the generated form structure and behavior.
packages/formik/src · high confidence
Introduce DomainValidator for schema-based validation
Added a new validation package at packages/validation/src that provides a DomainValidator class for validating data against a schema. The implementation includes static methods for validating entire schemas and individual fields, supporting built-in validators (required, matches, min, max, email, alphaNumeric, phoneNumber, equals, numeric, bool) and custom validators. It also allows setting custom validation messages via setValidationMessages.
packages/validation/src · high confidence
Behavioural changes
Upgraded to Yarn v2 (Berry)
The project has migrated from Yarn 1 to Yarn v2 (also known as Yarn Berry). This change introduces a new \.yarn\ directory structure containing the Yarn binary (\yarn-berry.js\) and core plugins (such as \plugin-workspace-tools.js\), replacing the previous \node\_modules\ and \yarn.lock\-based workflow. Users will need to use the local \.yarn\-bundled Yarn to manage dependencies, which may affect how scripts are run and how the lockfile is structured.
.yarn, .yarn/plugins/@berry · high confidence
Test coverage
Add validation tests for DomainSchema
Added a new test suite for the validation package, covering simple and nested schema validation, custom error messages, and custom validators.
packages/validation/src/\\tests\\_ · high confidence_
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 61 → 53 (-8.4)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 83 → 68 (-14.4)
- Architecture 87 → 93 (+5.3)
- Maturity 47 → 49 (+2.3)
- Readiness 67 → 61 (-6.3)
- Security 71 → 46 (-25.0)
Resolved (57)
- Boundary-crossing change coupling: index.ts ↔ index.ts (packages/graphql/src/index.ts)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- FileTooLong: .pnp.js (.pnp.js)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- …and 37 more
New (143)
- (anonymous) (cognitive 129) (.pnp.js)
- (anonymous) (cognitive 31) (.pnp.js)
- (anonymous) (cyclomatic 118) (.pnp.js)
- (anonymous) (cyclomatic 16) (.pnp.js)
- (anonymous) (cyclomatic 17) (.pnp.js)
- (anonymous) (cyclomatic 43) (.pnp.js)
- (anonymous) (cyclomatic 44) (.pnp.js)
- (anonymous) (cyclomatic 58) (.pnp.js)
- (anonymous)::UTF8ArrayToString (cognitive 25) (.pnp.js)
- (anonymous)::___syscall54 (cognitive 17) (.pnp.js)
- (anonymous)::___syscall54 (cyclomatic 23) (.pnp.js)
- (anonymous)::allocate (cognitive 25) (.pnp.js)
- (anonymous)::allocate (cyclomatic 16) (.pnp.js)
- (anonymous)::applyPatch::_resolveFilename (cognitive 19) (.pnp.js)
- (anonymous)::constructor (cognitive 29) (.pnp.js)
- (anonymous)::constructor (cyclomatic 16) (.pnp.js)
- (anonymous)::copyPromise (cognitive 16) (.pnp.js)
- (anonymous)::copySync (cognitive 18) (.pnp.js)
- (anonymous)::findZip (cognitive 23) (.pnp.js)
- (anonymous)::get_char (cognitive 36) (.pnp.js)
- …and 123 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
sysgears/domain-schema was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit ca426b07c2291644f1e3945dfd6be14ba33fe266 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.