From 51bf0baba993a123181892e38affdbb48e02e25a Mon Sep 17 00:00:00 2001 From: addisonbeck Date: Thu, 11 Sep 2025 13:22:36 -0400 Subject: [PATCH] Consolidate messaging-internal into messaging library - Move SubjectMessageSender, helpers, and test files from messaging-internal to messaging - Update imports to use relative paths instead of @bitwarden/messaging imports - Remove messaging-internal library entirely to eliminate circular dependency - Update external references to use @bitwarden/messaging instead of @bitwarden/messaging-internal - Fix tsconfig.lib.json rootDir conflict by removing cross-library file includes Resolves the first incomplete TODO in Fix Nx Library Paths memory: 'Import from messaging-internal directly in messaging' --- .../sync/sync-service.listener.spec.ts | 2 +- .../common/src/platform/messaging/internal.ts | 2 +- libs/messaging-internal/README.md | 5 --- libs/messaging-internal/eslint.config.mjs | 3 -- libs/messaging-internal/jest.config.js | 10 ------ libs/messaging-internal/package.json | 11 ------ libs/messaging-internal/project.json | 34 ------------------- libs/messaging-internal/src/index.ts | 5 --- .../src/messaging-internal.spec.ts | 8 ----- libs/messaging-internal/tsconfig.eslint.json | 6 ---- libs/messaging-internal/tsconfig.json | 13 ------- libs/messaging-internal/tsconfig.lib.json | 10 ------ libs/messaging-internal/tsconfig.spec.json | 10 ------ .../src/helpers.spec.ts | 4 +-- .../src/helpers.ts | 3 +- libs/messaging/src/index.ts | 4 +++ .../src/subject-message.sender.spec.ts | 3 +- .../src/subject-message.sender.ts | 4 +-- libs/messaging/tsconfig.lib.json | 8 +---- .../src/generators/files/package.json__tmpl__ | 4 +-- .../src/generators/files/project.json__tmpl__ | 3 +- 21 files changed, 18 insertions(+), 134 deletions(-) delete mode 100644 libs/messaging-internal/README.md delete mode 100644 libs/messaging-internal/eslint.config.mjs delete mode 100644 libs/messaging-internal/jest.config.js delete mode 100644 libs/messaging-internal/package.json delete mode 100644 libs/messaging-internal/project.json delete mode 100644 libs/messaging-internal/src/index.ts delete mode 100644 libs/messaging-internal/src/messaging-internal.spec.ts delete mode 100644 libs/messaging-internal/tsconfig.eslint.json delete mode 100644 libs/messaging-internal/tsconfig.json delete mode 100644 libs/messaging-internal/tsconfig.lib.json delete mode 100644 libs/messaging-internal/tsconfig.spec.json rename libs/{messaging-internal => messaging}/src/helpers.spec.ts (92%) rename libs/{messaging-internal => messaging}/src/helpers.ts (81%) rename libs/{messaging-internal => messaging}/src/subject-message.sender.spec.ts (96%) rename libs/{messaging-internal => messaging}/src/subject-message.sender.ts (83%) diff --git a/apps/browser/src/platform/sync/sync-service.listener.spec.ts b/apps/browser/src/platform/sync/sync-service.listener.spec.ts index 383586c0cd0..ed0af15415b 100644 --- a/apps/browser/src/platform/sync/sync-service.listener.spec.ts +++ b/apps/browser/src/platform/sync/sync-service.listener.spec.ts @@ -4,7 +4,7 @@ import { Subject, firstValueFrom } from "rxjs"; import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; import { MessageListener, MessageSender } from "@bitwarden/common/platform/messaging"; import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction"; -import { tagAsExternal } from "@bitwarden/messaging-internal"; +import { tagAsExternal } from "@bitwarden/messaging"; import { FullSyncMessage } from "./foreground-sync.service"; import { FULL_SYNC_FINISHED, SyncServiceListener } from "./sync-service.listener"; diff --git a/libs/common/src/platform/messaging/internal.ts b/libs/common/src/platform/messaging/internal.ts index 9fe261f2264..0d7abe256e6 100644 --- a/libs/common/src/platform/messaging/internal.ts +++ b/libs/common/src/platform/messaging/internal.ts @@ -1 +1 @@ -export * from "@bitwarden/messaging-internal"; +export { SubjectMessageSender, tagAsExternal, getCommand } from "@bitwarden/messaging"; diff --git a/libs/messaging-internal/README.md b/libs/messaging-internal/README.md deleted file mode 100644 index a2f36138ad7..00000000000 --- a/libs/messaging-internal/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# messaging-internal - -Owned by: platform - -Internal details to accompany @bitwarden/messaging this library should not be consumed in non-platform code. diff --git a/libs/messaging-internal/eslint.config.mjs b/libs/messaging-internal/eslint.config.mjs deleted file mode 100644 index 9c37d10e3ff..00000000000 --- a/libs/messaging-internal/eslint.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import baseConfig from "../../eslint.config.mjs"; - -export default [...baseConfig]; diff --git a/libs/messaging-internal/jest.config.js b/libs/messaging-internal/jest.config.js deleted file mode 100644 index 152244f6603..00000000000 --- a/libs/messaging-internal/jest.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - displayName: "messaging-internal", - preset: "../../jest.preset.js", - testEnvironment: "node", - transform: { - "^.+\\.[tj]s$": ["ts-jest", { tsconfig: "/tsconfig.spec.json" }], - }, - moduleFileExtensions: ["ts", "js", "html"], - coverageDirectory: "../../coverage/libs/messaging-internal", -}; diff --git a/libs/messaging-internal/package.json b/libs/messaging-internal/package.json deleted file mode 100644 index 02d1f8b21f1..00000000000 --- a/libs/messaging-internal/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "@bitwarden/messaging-internal", - "version": "0.0.1", - "description": "Internal details to accompany @bitwarden/messaging this library should not be consumed in non-platform code.", - "private": true, - "type": "commonjs", - "main": "index.js", - "types": "index.d.ts", - "license": "GPL-3.0", - "author": "platform" -} diff --git a/libs/messaging-internal/project.json b/libs/messaging-internal/project.json deleted file mode 100644 index 96a06e404a3..00000000000 --- a/libs/messaging-internal/project.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "messaging-internal", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "libs/messaging-internal/src", - "projectType": "library", - "tags": [], - "targets": { - "build": { - "executor": "@nx/js:tsc", - "outputs": ["{options.outputPath}"], - "options": { - "outputPath": "dist/libs/messaging-internal", - "main": "libs/messaging-internal/src/index.ts", - "tsConfig": "libs/messaging-internal/tsconfig.lib.json", - "assets": ["libs/messaging-internal/*.md"], - "rootDir": "libs/messaging-internal/src" - } - }, - "lint": { - "executor": "@nx/eslint:lint", - "outputs": ["{options.outputFile}"], - "options": { - "lintFilePatterns": ["libs/messaging-internal/**/*.ts"] - } - }, - "test": { - "executor": "@nx/jest:jest", - "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], - "options": { - "jestConfig": "libs/messaging-internal/jest.config.js" - } - } - } -} diff --git a/libs/messaging-internal/src/index.ts b/libs/messaging-internal/src/index.ts deleted file mode 100644 index 08763d48bc5..00000000000 --- a/libs/messaging-internal/src/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -// Built in implementations -export { SubjectMessageSender } from "./subject-message.sender"; - -// Helpers meant to be used only by other implementations -export { tagAsExternal, getCommand } from "./helpers"; diff --git a/libs/messaging-internal/src/messaging-internal.spec.ts b/libs/messaging-internal/src/messaging-internal.spec.ts deleted file mode 100644 index b2b50a218bd..00000000000 --- a/libs/messaging-internal/src/messaging-internal.spec.ts +++ /dev/null @@ -1,8 +0,0 @@ -import * as lib from "./index"; - -describe("messaging-internal", () => { - // This test will fail until something is exported from index.ts - it("should work", () => { - expect(lib).toBeDefined(); - }); -}); diff --git a/libs/messaging-internal/tsconfig.eslint.json b/libs/messaging-internal/tsconfig.eslint.json deleted file mode 100644 index 3daf120441a..00000000000 --- a/libs/messaging-internal/tsconfig.eslint.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "files": [], - "include": ["src/**/*.ts", "src/**/*.js"], - "exclude": ["**/build", "**/dist"] -} diff --git a/libs/messaging-internal/tsconfig.json b/libs/messaging-internal/tsconfig.json deleted file mode 100644 index 62ebbd94647..00000000000 --- a/libs/messaging-internal/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.lib.json" - }, - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/libs/messaging-internal/tsconfig.lib.json b/libs/messaging-internal/tsconfig.lib.json deleted file mode 100644 index 9cbf6736007..00000000000 --- a/libs/messaging-internal/tsconfig.lib.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "declaration": true, - "types": ["node"] - }, - "include": ["src/**/*.ts"], - "exclude": ["jest.config.js", "src/**/*.spec.ts"] -} diff --git a/libs/messaging-internal/tsconfig.spec.json b/libs/messaging-internal/tsconfig.spec.json deleted file mode 100644 index 1275f148a18..00000000000 --- a/libs/messaging-internal/tsconfig.spec.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "module": "commonjs", - "moduleResolution": "node10", - "types": ["jest", "node"] - }, - "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] -} diff --git a/libs/messaging-internal/src/helpers.spec.ts b/libs/messaging/src/helpers.spec.ts similarity index 92% rename from libs/messaging-internal/src/helpers.spec.ts rename to libs/messaging/src/helpers.spec.ts index 5a97ff959cc..35bc07b8caf 100644 --- a/libs/messaging-internal/src/helpers.spec.ts +++ b/libs/messaging/src/helpers.spec.ts @@ -1,8 +1,8 @@ import { Subject, firstValueFrom } from "rxjs"; -import { CommandDefinition, isExternalMessage, Message } from "@bitwarden/messaging"; - import { getCommand, tagAsExternal } from "./helpers"; +import { isExternalMessage } from "./is-external-message"; +import { CommandDefinition, Message } from "./types"; describe("helpers", () => { describe("getCommand", () => { diff --git a/libs/messaging-internal/src/helpers.ts b/libs/messaging/src/helpers.ts similarity index 81% rename from libs/messaging-internal/src/helpers.ts rename to libs/messaging/src/helpers.ts index 00231b455b7..e505f558522 100644 --- a/libs/messaging-internal/src/helpers.ts +++ b/libs/messaging/src/helpers.ts @@ -1,6 +1,7 @@ import { map } from "rxjs"; -import { CommandDefinition, EXTERNAL_SOURCE_TAG } from "@bitwarden/messaging"; +import { EXTERNAL_SOURCE_TAG } from "./is-external-message"; +import { CommandDefinition } from "./types"; export const getCommand = ( commandDefinition: CommandDefinition> | string, diff --git a/libs/messaging/src/index.ts b/libs/messaging/src/index.ts index 9090ff581c1..8bb8212e660 100644 --- a/libs/messaging/src/index.ts +++ b/libs/messaging/src/index.ts @@ -2,3 +2,7 @@ export { MessageListener } from "./message.listener"; export { MessageSender } from "./message.sender"; export { Message, CommandDefinition } from "./types"; export { isExternalMessage, EXTERNAL_SOURCE_TAG } from "./is-external-message"; + +// Internal implementations +export { SubjectMessageSender } from "./subject-message.sender"; +export { tagAsExternal, getCommand } from "./helpers"; diff --git a/libs/messaging-internal/src/subject-message.sender.spec.ts b/libs/messaging/src/subject-message.sender.spec.ts similarity index 96% rename from libs/messaging-internal/src/subject-message.sender.spec.ts rename to libs/messaging/src/subject-message.sender.spec.ts index e3e5305d1b2..04c7eaa59c8 100644 --- a/libs/messaging-internal/src/subject-message.sender.spec.ts +++ b/libs/messaging/src/subject-message.sender.spec.ts @@ -1,8 +1,7 @@ import { bufferCount, firstValueFrom, Subject } from "rxjs"; -import { CommandDefinition, Message } from "@bitwarden/messaging"; - import { SubjectMessageSender } from "./subject-message.sender"; +import { CommandDefinition, Message } from "./types"; describe("SubjectMessageSender", () => { const subject = new Subject>(); diff --git a/libs/messaging-internal/src/subject-message.sender.ts b/libs/messaging/src/subject-message.sender.ts similarity index 83% rename from libs/messaging-internal/src/subject-message.sender.ts rename to libs/messaging/src/subject-message.sender.ts index e8df5913b01..ebbd821dcb0 100644 --- a/libs/messaging-internal/src/subject-message.sender.ts +++ b/libs/messaging/src/subject-message.sender.ts @@ -1,8 +1,8 @@ import { Subject } from "rxjs"; -import { CommandDefinition, Message, MessageSender } from "@bitwarden/messaging"; - import { getCommand } from "./helpers"; +import { MessageSender } from "./message.sender"; +import { CommandDefinition, Message } from "./types"; export class SubjectMessageSender implements MessageSender { constructor(private readonly messagesSubject: Subject>>) {} diff --git a/libs/messaging/tsconfig.lib.json b/libs/messaging/tsconfig.lib.json index 1f3b89d988e..9cbf6736007 100644 --- a/libs/messaging/tsconfig.lib.json +++ b/libs/messaging/tsconfig.lib.json @@ -5,12 +5,6 @@ "declaration": true, "types": ["node"] }, - "include": [ - "src/**/*.ts", - "../messaging-internal/src/subject-message.sender.spec.ts", - "../messaging-internal/src/subject-message.sender.ts", - "../messaging-internal/src/helpers.spec.ts", - "../messaging-internal/src/helpers.ts" - ], + "include": ["src/**/*.ts"], "exclude": ["jest.config.js", "src/**/*.spec.ts"] } diff --git a/libs/nx-plugin/src/generators/files/package.json__tmpl__ b/libs/nx-plugin/src/generators/files/package.json__tmpl__ index b4da6154ce4..6b032fd6701 100644 --- a/libs/nx-plugin/src/generators/files/package.json__tmpl__ +++ b/libs/nx-plugin/src/generators/files/package.json__tmpl__ @@ -4,8 +4,8 @@ "description": "<%= description %>", "private": true, "type": "commonjs", - "main": "dist/index.js", - "types": "dist/index.d.ts", + "main": "index.js", + "types": "index.d.ts", "license": "GPL-3.0", "author": "<%= team %>" } \ No newline at end of file diff --git a/libs/nx-plugin/src/generators/files/project.json__tmpl__ b/libs/nx-plugin/src/generators/files/project.json__tmpl__ index 50671e56715..e9685af75e9 100644 --- a/libs/nx-plugin/src/generators/files/project.json__tmpl__ +++ b/libs/nx-plugin/src/generators/files/project.json__tmpl__ @@ -12,7 +12,8 @@ "outputPath": "dist/libs/<%= name %>", "main": "libs/<%= name %>/src/index.ts", "tsConfig": "libs/<%= name %>/tsconfig.lib.json", - "assets": ["libs/<%= name%>/*.md"] + "assets": ["libs/<%= name %>/*.md"], + "rootDir": "libs/<%= name %>/src" } }, "lint": {