Repository navigation
Conversation
BREAKING CHANGE: shape.refine(...) was changed to the async-first object-level API. Use shape.refine.sync(...) for explicitly sync-safe object rules. BREAKING CHANGE: ObjectShapeRefinement now describes the async-first refinement contract. Use ObjectShapeRefinementSync for the explicit sync-only type name. BREAKING CHANGE: validate.sync(...), matches.sync(...), and shape.check(...) now throw when they encounter async object-level shape refinements.
Canonical public type names were aligned with the runtime API vocabulary across declarations, exports, tests, and docs. Renamed public types include ValidationResult, InferViolations, DescribeConstraints, ShapeDescriptor, ShapeRefinement, SyncShapeRefinement, and ShapeRefinementViolationInput. BREAKING CHANGE: Exported public type names were renamed without compatibility aliases.
Parameterized built-in assertions now preserve more exact violation unions based on enabled options, and multipleOf keeps the literal step in typed args. Type tests and violation-code docs were updated to cover the stricter narrowing in validate(...) and ViolationCollection.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 11 11
Lines 736 851 +115
Branches 164 191 +27
==========================================
+ Hits 736 851 +115 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This completes the validation and package delivery changes after 0.2.1. Optional
isShapefields now validate every present value, including explicitundefined, and public type inference follows the runtime guard/refinement stages.Validation contracts
shape.refine(...)is async-first; synchronous rules useshape.refine.sync(...).Package delivery
.agents/skillsand updated agent instructions.unplugin-dts.@modulify/conventional-releasedependency and dry-run scripts.latest.modulify/validator/release.ymlwas verified. Workflow permissions grantid-token: writeonly to the publishing job.Validation
yarn lint,yarn typecheck,yarn test(235 tests with coverage enabled by default) andyarn test:d(52 type tests) passed. HTML, JSON and LCOV reports were generated; type-only tests preserved those reports.yarn test:packagepassed: build, packed ESM/CJS runtime consumers, strict NodeNext/Bundler consumers, and tree shaking.yarn install --immutable, commitlint for all branch commits, andmake actionlintpassed.BREAKING CHANGE: Object shape refinements are async-first, public type names were replaced, and sequential refinement pipelines require compatible guard stages. See docs/en/09-migration.md.