From 6aa471479ed0feb800a916d9d34faac686d2bf18 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 8 Apr 2025 12:44:10 +0200 Subject: [PATCH] Internalize uuid package (#18955) * move uuid to core package package.json * install * remove external + generate tsconfig * import from local node_modules * temp accept uuid as import --- src/Umbraco.Web.UI.Client/eslint.config.js | 2 +- src/Umbraco.Web.UI.Client/package-lock.json | 12 +++++++----- src/Umbraco.Web.UI.Client/package.json | 9 ++------- src/Umbraco.Web.UI.Client/src/external/diff/index.ts | 1 - src/Umbraco.Web.UI.Client/src/external/uuid/index.ts | 1 - .../src/packages/core/id/index.ts | 2 +- .../src/packages/core/package.json | 5 +++++ .../src/packages/core/utils/diff/index.ts | 7 +++++++ .../src/packages/core/utils/index.ts | 3 ++- .../rollback/modal/rollback-modal.element.ts | 6 +++--- src/Umbraco.Web.UI.Client/tsconfig.json | 4 +--- 11 files changed, 29 insertions(+), 23 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/external/diff/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/external/uuid/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/utils/diff/index.ts diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js index 8aed0c6fcb..2dd76ea6e2 100644 --- a/src/Umbraco.Web.UI.Client/eslint.config.js +++ b/src/Umbraco.Web.UI.Client/eslint.config.js @@ -63,7 +63,7 @@ export default [ 'local-rules/enforce-umbraco-external-imports': [ 'error', { - exceptions: ['@umbraco-cms', '@open-wc/testing', '@storybook', 'msw', '.', 'vite'], + exceptions: ['@umbraco-cms', '@open-wc/testing', '@storybook', 'msw', '.', 'vite', 'uuid'], }, ], 'local-rules/exported-string-constant-naming': [ diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 775e79b7e9..f1085c909a 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -27,17 +27,14 @@ "@tiptap/extension-underline": "2.11.5", "@tiptap/pm": "2.11.5", "@tiptap/starter-kit": "2.11.5", - "@types/diff": "^7.0.1", "@umbraco-ui/uui": "^1.13.0", "@umbraco-ui/uui-css": "^1.13.0", - "diff": "^7.0.0", "dompurify": "^3.2.4", "element-internals-polyfill": "^1.3.13", "lit": "^3.2.1", "marked": "^15.0.7", "monaco-editor": "^0.52.2", - "rxjs": "^7.8.1", - "uuid": "^11.0.5" + "rxjs": "^7.8.1" }, "devDependencies": { "@babel/core": "^7.26.9", @@ -17587,7 +17584,12 @@ "name": "@umbraco-backoffice/code-editor" }, "src/packages/core": { - "name": "@umbraco-backoffice/core" + "name": "@umbraco-backoffice/core", + "dependencies": { + "@types/diff": "^7.0.1", + "diff": "^7.0.0", + "uuid": "^11.0.5" + } }, "src/packages/data-type": { "name": "@umbraco-backoffice/data-type" diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index e5d12aa78b..cbb6500aa6 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -115,7 +115,6 @@ "./workspace": "./dist-cms/packages/core/workspace/index.js", "./external/backend-api": "./dist-cms/external/backend-api/index.js", "./external/base64-js": "./dist-cms/external/base64-js/index.js", - "./external/diff": "./dist-cms/external/diff/index.js", "./external/dompurify": "./dist-cms/external/dompurify/index.js", "./external/lit": "./dist-cms/external/lit/index.js", "./external/marked": "./dist-cms/external/marked/index.js", @@ -124,8 +123,7 @@ "./external/router-slot": "./dist-cms/external/router-slot/index.js", "./external/rxjs": "./dist-cms/external/rxjs/index.js", "./external/tiptap": "./dist-cms/external/tiptap/index.js", - "./external/uui": "./dist-cms/external/uui/index.js", - "./external/uuid": "./dist-cms/external/uuid/index.js" + "./external/uui": "./dist-cms/external/uui/index.js" }, "files": [ "dist-cms", @@ -215,17 +213,14 @@ "@tiptap/extension-underline": "2.11.5", "@tiptap/pm": "2.11.5", "@tiptap/starter-kit": "2.11.5", - "@types/diff": "^7.0.1", "@umbraco-ui/uui": "^1.13.0", "@umbraco-ui/uui-css": "^1.13.0", - "diff": "^7.0.0", "dompurify": "^3.2.4", "element-internals-polyfill": "^1.3.13", "lit": "^3.2.1", "marked": "^15.0.7", "monaco-editor": "^0.52.2", - "rxjs": "^7.8.1", - "uuid": "^11.0.5" + "rxjs": "^7.8.1" }, "devDependencies": { "@babel/core": "^7.26.9", diff --git a/src/Umbraco.Web.UI.Client/src/external/diff/index.ts b/src/Umbraco.Web.UI.Client/src/external/diff/index.ts deleted file mode 100644 index 3870b67b72..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/diff/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { diffWords, type Change } from 'diff'; diff --git a/src/Umbraco.Web.UI.Client/src/external/uuid/index.ts b/src/Umbraco.Web.UI.Client/src/external/uuid/index.ts deleted file mode 100644 index 12531073f5..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/uuid/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { v4, validate } from 'uuid'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/id/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/id/index.ts index 4b33a4564a..f5a65afed2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/id/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/id/index.ts @@ -1,4 +1,4 @@ -import { v4, validate } from '@umbraco-cms/backoffice/external/uuid'; +import { v4, validate } from 'uuid'; export class UmbId { public static new() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/package.json b/src/Umbraco.Web.UI.Client/src/packages/core/package.json index 3bc1d09ca9..045f9dc9f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/package.json +++ b/src/Umbraco.Web.UI.Client/src/packages/core/package.json @@ -4,5 +4,10 @@ "type": "module", "scripts": { "build": "vite build" + }, + "dependencies": { + "@types/diff": "^7.0.1", + "diff": "^7.0.0", + "uuid": "^11.0.5" } } \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/diff/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/diff/index.ts new file mode 100644 index 0000000000..d4780f3751 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/diff/index.ts @@ -0,0 +1,7 @@ +import { diffWords } from 'diff'; +import type { Change } from 'diff'; + +type UmbDiffChange = Change; + +export { diffWords }; +export type { UmbDiffChange }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/index.ts index e6aabbc8d1..9c51a8d54b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/utils/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/index.ts @@ -1,5 +1,7 @@ export * from './bytes/bytes.function.js'; export * from './debounce/debounce.function.js'; +export * from './deprecation/index.js'; +export * from './diff/index.js'; export * from './direction/index.js'; export * from './download/blob-download.function.js'; export * from './get-guid-from-udi.function.js'; @@ -25,5 +27,4 @@ export * from './sanitize/sanitize-html.function.js'; export * from './selection-manager/selection.manager.js'; export * from './state-manager/index.js'; export * from './string/index.js'; -export * from './deprecation/index.js'; export type * from './type/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/rollback/modal/rollback-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/rollback/modal/rollback-modal.element.ts index a62a00a571..5da19c0cca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/rollback/modal/rollback-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/rollback/modal/rollback-modal.element.ts @@ -3,7 +3,7 @@ import { UmbRollbackRepository } from '../repository/rollback.repository.js'; import { UmbDocumentDetailRepository } from '../../repository/index.js'; import type { UmbDocumentDetailModel } from '../../types.js'; import type { UmbRollbackModalData, UmbRollbackModalValue } from './types.js'; -import { diffWords, type Change } from '@umbraco-cms/backoffice/external/diff'; +import { diffWords, type UmbDiffChange } from '@umbraco-cms/backoffice/utils'; import { css, customElement, html, nothing, repeat, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -53,7 +53,7 @@ export class UmbRollbackModalElement extends UmbModalBaseElement = []; + _diffs: Array<{ alias: string; diff: UmbDiffChange[] }> = []; #rollbackRepository = new UmbRollbackRepository(this); #userItemRepository = new UmbUserItemRepository(this); @@ -321,7 +321,7 @@ export class UmbRollbackModalElement extends UmbModalBaseElement = []; + const diffs: Array<{ alias: string; diff: UmbDiffChange[] }> = []; const nameDiff = diffWords(currentName, this._selectedVersion.name); diffs.push({ alias: 'name', diff: nameDiff }); diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index b648af791a..7210ae9882 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -144,7 +144,6 @@ DON'T EDIT THIS FILE DIRECTLY. It is generated by /devops/tsconfig/index.js "@umbraco-cms/backoffice/workspace": ["./src/packages/core/workspace/index.ts"], "@umbraco-cms/backoffice/external/backend-api": ["./src/external/backend-api/index.ts"], "@umbraco-cms/backoffice/external/base64-js": ["./src/external/base64-js/index.ts"], - "@umbraco-cms/backoffice/external/diff": ["./src/external/diff/index.ts"], "@umbraco-cms/backoffice/external/dompurify": ["./src/external/dompurify/index.ts"], "@umbraco-cms/backoffice/external/lit": ["./src/external/lit/index.ts"], "@umbraco-cms/backoffice/external/marked": ["./src/external/marked/index.ts"], @@ -153,8 +152,7 @@ DON'T EDIT THIS FILE DIRECTLY. It is generated by /devops/tsconfig/index.js "@umbraco-cms/backoffice/external/router-slot": ["./src/external/router-slot/index.ts"], "@umbraco-cms/backoffice/external/rxjs": ["./src/external/rxjs/index.ts"], "@umbraco-cms/backoffice/external/tiptap": ["./src/external/tiptap/index.ts"], - "@umbraco-cms/backoffice/external/uui": ["./src/external/uui/index.ts"], - "@umbraco-cms/backoffice/external/uuid": ["./src/external/uuid/index.ts"] + "@umbraco-cms/backoffice/external/uui": ["./src/external/uui/index.ts"] } }, "include": [