9a1d8695 Removed the duplicate npm copy of kg-default-cards
no ref
ghost/core links the workspace @tryghost/kg-default-cards, but it also
depends on @tryghost/mg-clean-html, whose own dependency on
@tryghost/mg-utils asks for the npm release of the same package. Both
copies were installed side by side, and the published one brought its own
published dependency tree with it, so the lockfile also carried duplicate
kg-utils, kg-markdown-html-renderer and url-utils entries — five packages
in all, in the production tree.
Beyond the dedupe this makes content import render cards with the same
code Ghost renders them with. The two were already the same release
(10.3.5) and their builds differ only in formatting — line wrapping,
trailing commas — from a different tsc printer, and the package exports
the same 20 cards either way. Verified with the package's own suite, the
content-import unit tests, and cleanHTML() end to end resolving through
to koenig/kg-default-cards. No new build requirement: ghost/core already
declares the workspace package, so its build output was already needed. d523683b Removed the duplicate npm copy of kg-default-cards
no ref
ghost/core links the workspace @tryghost/kg-default-cards, but it also
depends on @tryghost/mg-clean-html, whose own dependency on
@tryghost/mg-utils asks for the npm release of the same package. Both
copies were installed side by side, and the published one brought its own
published dependency tree with it, so the lockfile also carried duplicate
kg-utils, kg-markdown-html-renderer and url-utils entries — five packages
in all, in the production tree.
Point that one edge at the workspace package. It is scoped to mg-utils
because that is the only dependent; a bare override would silently capture
future ones too.
Beyond the dedupe this makes content import render cards with the same
code Ghost renders them with. The two were already the same release
(10.3.5) and their builds differ only in formatting — line wrapping,
trailing commas — from a different tsc printer, and the package exports
the same 20 cards either way. Verified with the package's own suite, the
content-import unit tests, and cleanHTML() end to end resolving through
to koenig/kg-default-cards. No new build requirement: ghost/core already
declares the workspace package, so its build output was already needed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LFn7f6or3xRZEcaUzzgeJX