Skip to content

Backoffice: Swap relative imports to @umbraco-cms/backoffice module imports in core packages#22942

Merged
AndyButland merged 1 commit into
v17/devfrom
v17/improvement/swap-core-relative-imports-to-module-imports
May 22, 2026
Merged

Backoffice: Swap relative imports to @umbraco-cms/backoffice module imports in core packages#22942
AndyButland merged 1 commit into
v17/devfrom
v17/improvement/swap-core-relative-imports-to-module-imports

Conversation

@madsrasmussen

@madsrasmussen madsrasmussen commented May 21, 2026

Copy link
Copy Markdown
Member

Summary

  • Replaces relative ../../ import paths in src/packages/core/ with their corresponding
    @umbraco-cms/backoffice/ package imports across 42 files.
  • No new exports has been made. Everything was already exported from the modules

Benefits

  • It gives a very small decrease in network requests because Vite can chunk files a little better
  • It will help us better detect bidirectional imports.

Replace numerous relative/internal import paths with centralized '@umbraco-cms/backoffice' package entry points across core modules.This consolidates exports, simplifies import paths.
@madsrasmussen madsrasmussen changed the title Use @umbraco-cms/backoffice imports Backoffice: Swap relative imports to @umbraco-cms/backoffice module imports in core packages May 21, 2026
@madsrasmussen madsrasmussen marked this pull request as ready for review May 21, 2026 14:28
Copilot AI review requested due to automatic review settings May 21, 2026 14:28
@claude

claude Bot commented May 21, 2026

Copy link
Copy Markdown

Claude finished @madsrasmussen's task in 2m 17s —— View job


PR Review

Target: origin/v17/dev · Based on commit: ccc406ee · Skipped: 0 noise files out of 42 total · Classified as: Refactor

Replaces 42 relative ../../* import paths within src/packages/core/ with their corresponding @umbraco-cms/backoffice/<module> public exports.

  • Modified public API: None
  • Other changes: None visible to consumers — all changes are internal import wiring within the core package

No issues found. All new import paths are confirmed in package.json exports and map to dist-cms/packages/core/ — staying within the core package boundary as required by the architecture. The pattern aligns with the documented convention ("Never import from dist-cms/ directly — always use @umbraco-cms/backoffice/<subpath>") and shifts cross-module references from internal file paths to public module entries, which is stricter and better for encapsulation.

The one +1/-2 change in collection-data-source.interface.ts (consolidating two separate relative imports into one module import) is a nice cleanup bonus.

No breaking changes detected.


Approved

This looks good to be merged as-is, but please do a manual sanity check and testing before merging.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR standardizes internal imports within src/packages/core/ by replacing relative ../../... paths with the public @umbraco-cms/backoffice/<module> entrypoint imports, aligning core packages with the intended module boundaries and improving bundling/cycle detection.

Changes:

  • Replaced relative imports with @umbraco-cms/backoffice/* module imports across core packages.
  • Consolidated a few multi-line type imports into single module imports (e.g., repository types).
  • Updated test files alongside runtime code to use the same module entrypoints.

Reviewed changes

Copilot reviewed 42 out of 42 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/Umbraco.Web.UI.Client/src/packages/core/workspace/utils/object-to-property-value-array.function.ts Switches property type import to @umbraco-cms/backoffice/property.
src/Umbraco.Web.UI.Client/src/packages/core/workspace/contexts/tokens/variant-dataset-workspace-context.interface.ts Uses public property module import for dataset context typing.
src/Umbraco.Web.UI.Client/src/packages/core/view/context/view.controller.ts Imports shortcut controller via @umbraco-cms/backoffice/shortcut.
src/Umbraco.Web.UI.Client/src/packages/core/validation/controllers/validation.controller.ts Imports variant id type via @umbraco-cms/backoffice/variant.
src/Umbraco.Web.UI.Client/src/packages/core/utils/guard-manager/readonly-variant-guard.manager.test.ts Updates test to import UmbVariantId from variant module.
src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-context.interface.ts Imports pagination manager via @umbraco-cms/backoffice/utils.
src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-actions/move/move-repository.interface.ts Imports repository error response via @umbraco-cms/backoffice/repository.
src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.server.data-source.ts Imports data source response type via repository module entrypoint.
src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/rename/rename-server-file.action.kind.ts Imports default entity-action kind manifest via @umbraco-cms/backoffice/entity-action.
src/Umbraco.Web.UI.Client/src/packages/core/section/section-picker-modal/section-picker-modal.token.ts Imports modal token via @umbraco-cms/backoffice/modal.
src/Umbraco.Web.UI.Client/src/packages/core/section/paths.ts Imports router path pattern via @umbraco-cms/backoffice/router.
src/Umbraco.Web.UI.Client/src/packages/core/router/path-pattern.class.ts Imports url-pattern utility via @umbraco-cms/backoffice/utils.
src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source-response.interface.ts Imports error types via @umbraco-cms/backoffice/resources.
src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts Imports repository base type via repository module entrypoint.
src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.kind.ts Imports default entity-action kind manifest via module entrypoint.
src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts Imports default entity-action kind manifest via module entrypoint.
src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.kind.ts Imports default entity-action kind manifest via module entrypoint.
src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/collection-action/empty-recycle-bin/empty-recycle-bin.collection-action.ts Imports collection action base via @umbraco-cms/backoffice/collection.
src/Umbraco.Web.UI.Client/src/packages/core/property/property-value-preset/types.ts Imports variant id type via @umbraco-cms/backoffice/variant.
src/Umbraco.Web.UI.Client/src/packages/core/property/property-value-preset/property-value-preset-variant-builder.controller.ts Imports variant id via @umbraco-cms/backoffice/variant.
src/Umbraco.Web.UI.Client/src/packages/core/property/property-value-preset/property-value-preset-variant-builder.controller.test.ts Updates test to import UmbVariantId from variant module.
src/Umbraco.Web.UI.Client/src/packages/core/property/property-guard-manager/variant-property-guard.manager.test.ts Updates test to import UmbVariantId from variant module.
src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-context.interface.ts Imports variant id type via @umbraco-cms/backoffice/variant.
src/Umbraco.Web.UI.Client/src/packages/core/property-editor-data-source/extension/property-editor-data-source.extension.ts Imports property editor settings type via @umbraco-cms/backoffice/property-editor.
src/Umbraco.Web.UI.Client/src/packages/core/menu/conditions/menu-alias.condition.ts Imports condition base via @umbraco-cms/backoffice/extension-registry.
src/Umbraco.Web.UI.Client/src/packages/core/hint/context/hint.controller.ts Imports utility type via @umbraco-cms/backoffice/utils.
src/Umbraco.Web.UI.Client/src/packages/core/entity-sign/components/entity-sign-bundle.element.ts Imports lit base element via @umbraco-cms/backoffice/lit-element.
src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/common/move-to/move-to-repository.interface.ts Imports repository error response via repository module entrypoint.
src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/common/duplicate-to/duplicate-to-repository.interface.ts Imports repository error response via repository module entrypoint.
src/Umbraco.Web.UI.Client/src/packages/core/entity-action/global-components/entity-actions-dropdown/entity-actions-dropdown.element.ts Imports dropdown element type via @umbraco-cms/backoffice/components.
src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/duplicate/duplicate-repository.interface.ts Imports repository error response via repository module entrypoint.
src/Umbraco.Web.UI.Client/src/packages/core/debug/debug-modal/debug-modal.token.ts Imports modal token via @umbraco-cms/backoffice/modal.
src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.element.ts Imports validation mixin via @umbraco-cms/backoffice/validation.
src/Umbraco.Web.UI.Client/src/packages/core/components/icon/icon.element.ts Imports resource utility via @umbraco-cms/backoffice/resources.
src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts Imports entity context via @umbraco-cms/backoffice/entity.
src/Umbraco.Web.UI.Client/src/packages/core/collection/view/collection-view.manager.test.ts Imports extensions registry via @umbraco-cms/backoffice/extension-registry.
src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/collection-data-source.interface.ts Consolidates repository type imports into repository module entrypoint.
src/Umbraco.Web.UI.Client/src/packages/core/collection/manifests.ts Imports extension-registry manifest kind type via module entrypoint.
src/Umbraco.Web.UI.Client/src/packages/core/collection/bulk-action/collection-bulk-action.manager.test.ts Imports extensions registry via @umbraco-cms/backoffice/extension-registry.
src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-auth-timeout-modal.token.ts Imports modal token via @umbraco-cms/backoffice/modal.
src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts Imports modal token via @umbraco-cms/backoffice/modal.
src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts Imports modal base element via @umbraco-cms/backoffice/modal.

@AndyButland AndyButland left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good and works as expected (I've pulled the branch down, rebuilt the front-end and verified a selection of the backoffice views that use these features are working as expected).

Will merge and mark for 17.6 and 18.1, but feel free to cherry-pick and re-label if you'd like this in an earlier release.

@AndyButland AndyButland merged commit 6b3bdb5 into v17/dev May 22, 2026
34 checks passed
@AndyButland AndyButland deleted the v17/improvement/swap-core-relative-imports-to-module-imports branch May 22, 2026 05:24
iOvergaard pushed a commit that referenced this pull request May 27, 2026
…mports in core packages (#22942)

Use @umbraco-cms/backoffice imports

Replace numerous relative/internal import paths with centralized '@umbraco-cms/backoffice' package entry points across core modules.This consolidates exports, simplifies import paths.
iOvergaard pushed a commit that referenced this pull request May 27, 2026
…mports in core packages (#22942)

Use @umbraco-cms/backoffice imports

Replace numerous relative/internal import paths with centralized '@umbraco-cms/backoffice' package entry points across core modules.This consolidates exports, simplifies import paths.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants