Skip to content

Split manifest internals behind the existing public facade - #304

Open
bcomnes wants to merge 1 commit into
masterfrom
bret/manifest-modules
Open

Split manifest internals behind the existing public facade#304
bcomnes wants to merge 1 commit into
masterfrom
bret/manifest-modules

Conversation

@bcomnes

@bcomnes bcomnes commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #298.
This is an independent, behavior-preserving extraction based on master.

  • Keep lib/domstack-manifest/index.js as the compatible public facade.
  • Separate schema/derived types, settings normalization, record metadata, reconciliation, hashing, and hook/file I/O modules.
  • Preserve dependency direction without runtime circular imports.

Validation

  • Full npm test passed outside the restricted runner.
  • npm run build:schema produced no schema diff.
  • Built declarations and packed the package with lifecycle scripts disabled; all extracted modules and declarations are included.
  • Compared packed runtime exports and schema values against the pre-extraction module: identical.
  • A generic manifest consumer compiles before and after with skipLibCheck enabled.
  • Strict declaration checking reports the same seven existing diagnostics before and after: undeclared HTML/Markdown builder T, four cpx2 declaration conflicts, and the installed thread-stream/Node type mismatch.
    These remain separate from this extraction and the consumer-types work tracked in Published v12 declarations fail strict consumer type-checking #291.
  • Cleaned generated declarations with the repository cleanup scripts.

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 34011309516

Coverage increased (+0.7%) to 94.858%

Details

  • Coverage increased (+0.7%) from the base build.
  • Patch coverage: 12 uncovered changes across 4 files (1054 of 1066 lines covered, 98.87%).
  • No coverage regressions found.

Uncovered Changes

File Changed Covered %
lib/domstack-manifest/hooks.js 60 52 86.67%
lib/domstack-manifest/records.js 211 209 99.05%
lib/domstack-manifest/hash.js 60 59 98.33%
lib/domstack-manifest/reconcile.js 280 279 99.64%
Total (7 files) 1066 1054 98.87%

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 7328
Covered Lines: 7102
Line Coverage: 96.92%
Relevant Branches: 1540
Covered Branches: 1310
Branch Coverage: 85.06%
Branches in Coverage %: Yes
Coverage Strength: 181.07 hits per line

💛 - Coveralls

@bcomnes
bcomnes marked this pull request as ready for review September 6, 2026 04:40
* @property {DomStackWarning[]} warnings
*/

function readPackageVersion () {

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this redundant with code elsewhere in the project?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Split the manifest implementation into focused modules

1 participant