• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

accordproject / concerto-metamodel / 33254985081
95%

Build:
DEFAULT BRANCH: main
Ran 29 Aug 2026 01:25PM UTC
Jobs 3
Files 3
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Aug 2026 01:25PM UTC coverage: 95.092%. Remained the same
33254985081

push

github

web-flow
fix(metamodel): make all named exports visible to cjs-module-lexer (#89)

* fix(metamodel): make all named exports visible to cjs-module-lexer

module.exports assigned MetaModelNamespace as a `key: <string literal>`
property inline in the exports object. cjs-module-lexer, the static
analyzer Node's ESM loader uses to detect named exports of a CommonJS
module, only recognises `key: identifier` shorthand/pairs; a string
literal value stops its scan, so it silently dropped every property
that came after it. As a result `import { MetaModelNamespace } from
'@accordproject/concerto-metamodel'` (and DcsCto/DcsNamespace, which
came later in the object) threw "Named export not found" under Node
ESM, even though require() returned all four correctly.

Hoist the string to a local const and assign each export individually
via `exports.X = ...` so the lexer can see every one of them.

Verified with the real lexer that this changes the detected exports
from ["MetaModelUtil"] to ["MetaModelUtil","MetaModelNamespace",
"DcsCto","DcsNamespace"]. require() output and the generated
types/index.d.ts type surface are unchanged (an inline `@type {string}`
assertion keeps MetaModelNamespace typed as `string` rather than the
narrower string-literal type tsc would otherwise infer).

This unblocks accordproject/concerto#1306, which currently has to
bundle this package into concerto-core/vocabulary's ESM output instead
of externalising it, because externalising it emits exactly this
failing import.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Matt Roberts <code@rbrts.uk>

* docs(metamodel): describe the export shape that is actually there

The explanatory comment referred to a string literal "in the object below",
but the change it accompanies removes that object literal — the exports are
now assigned individually. As written it described the shape being avoided as
though it were the current one.

Reworded to state both deliberate details of the code as it stan... (continued)

63 of 68 branches covered (92.65%)

Branch coverage included in aggregate %.

92 of 95 relevant lines covered (96.84%)

110.84 hits per line

Jobs
ID Job ID Ran Files Coverage
1 macOS-latest - 33254985081.1 29 Aug 2026 01:25PM UTC 3
95.09
GitHub Action Run
2 windows-latest - 33254985081.2 29 Aug 2026 01:26PM UTC 3
95.09
GitHub Action Run
3 ubuntu-latest - 33254985081.3 29 Aug 2026 01:25PM UTC 3
95.09
GitHub Action Run
Source Files on build 33254985081
  • Tree
  • List 3
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 877fdea3 on github
  • Prev Build on main (#32962705747)
  • Next Build on main (#33255192572)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc