v10.0.0-rc.13
Pre-release
Pre-release
·
83 commits
to main
since this release
Added
build/check-angular-package-deps.mjs, a CI gate that fails when a built library imports a
package its ownpackage.jsondoes not declare. ng-packagr marks every bare specifier it does
not bundle as an external but never checks that the external is declared, so a library could
publish a bundle asking for a package it never named — nothing failed at build time, nothing
failed atnpm install, and the consumer met an unresolvable specifier the first time they built
their own app. The existingsmoke-test-angular-package.mjscannot see this class of defect: it
seeds the throwaway consumer with the demo app's dependency list, so every undeclared package is
already installed before the compile it verifies. All five libraries were failing this check when
it was written.
Changed
- npmjs publishing switched from a long-lived
NPM_TOKENsecret to npm Trusted Publishing (OIDC);
each of the five Angular packages now has its own Trusted Publisher configured on npmjs.com.
@dignite/ng.flex-fields-ckeditoris published to npmjs on tagged releases for the first time. - The GitHub Packages pre-release npm mirror now tolerates re-runs at an unchanged version,
treating "already published" as a skip instead of failing the step. - Dependencies a consumer cannot already have moved from
peerDependenciestodependencies.
Every ABP 10.5 + Angular 21 host is forced to setlegacy-peer-deps—@abp/ng.theme.shared
pins@swimlane/ngx-datatable@~22.0.0, whose Angular peer range stops at 20 — and under that
flag npm does not install peer dependencies at all. A peer the host does not already have is
therefore an unresolvable import discovered at the consumer's build, with nothing in
npm installto warn them. The evidence that the peer model never worked here: all five known
consumers (site,vault-extract, and this repository's own three demo apps) had hand-copied
the same peer lists into their ownpackage.json, at three differentng-zorro-antdranges.
Moved todependencies:ckeditor5,@ckeditor/ckeditor5-angular,markedand
@dignite/ng.flex-fieldsin@dignite/ng.flex-fields-ckeditor;@dignite/ng.flex-fieldsand
@dignite/ng.file-explorerin@dignite/ng.flex-fields-file-explorer;@microsoft/signalrin
@dignite/ng.notification-center. Packages an ABP Angular host has by construction
(@angular/*,rxjs,@abp/ng.*) or through ABP's own dependency tree (@ngx-validate/core,
ng-zorro-antd,@angular/cdk,@ng-bootstrap/ng-bootstrap,@swimlane/ngx-datatable) stay
peer dependencies: there the declaration states the tested range without risking a second copy
of a singleton in the consumer's tree. Consumers that were carrying those packages by hand can
drop them; consumers that were not no longer have to discover them.
Fixed
- Every Angular package imported at least one package it did not declare.
@ngx-validate/corein@dignite/ng.flex-fields,@dignite/ng.flex-fields-ckeditorand
@dignite/ng.flex-fields-file-explorer;rxjsin@dignite/ng.flex-fields-ckeditorand
@dignite/ng.notification-center;@swimlane/ngx-datatablein@dignite/ng.file-explorer; and
@ckeditor/ckeditor5-integrations-common, whoseEditorRelaxedConstructorappears in
@dignite/ng.flex-fields-ckeditor's published.d.ts, so a consumer compiling without
skipLibCheckneeded it resolvable. All now declared; the new dependency check keeps them so. flex-fields-ckeditorwas built and published byrelease.ymlbut never built byci.yml,
so a pull request that broke the CKEditor adapter stayed green until tag time. CI now builds it
alongside the other libraries.
flex-fields
CKEditorControlComponentnow follows the host theme, including dark mode. CKEditor 5 ships a
single stock light palette (--ck-color-base-background/-foreground/-border/-textin its own
:root) and every other--ck-color-*token derives from those four; the control set none of them,
so in a dark-themed host the editor stayed light unless the host added its own bridge (onlysite
had one). The control now maps those tokens, plus the two hardcoded toolbar-button hover/active
fills, to the host's theme variables — a LeptonX token when present, falling back to the Bootstrap
5.3 token every ABP Angular theme ships, then to CKEditor's stock literal — so hosts no longer need
a--ck-color-base-*bridge of their own.