From 77a76266414a719a44a0e157397618bd3f1eaf18 Mon Sep 17 00:00:00 2001 From: Lene Gadewoll Date: Wed, 23 Apr 2025 16:29:50 +0200 Subject: [PATCH 1/3] build: upgrade refractor dependency to v4.9.0 - updates usages to align with changed API - updates jest config to ensure ESM-only dependencies are transformed to commonjs --- packages/eui/package.json | 3 +- packages/eui/scripts/jest/.babelrc.js | 2 +- packages/eui/scripts/jest/config.js | 15 +++++ packages/eui/src/components/code/code.tsx | 8 ++- .../eui/src/components/code/code_block.tsx | 2 +- .../code/code_block_virtualized.tsx | 3 +- .../eui/src/components/code/utils.test.tsx | 3 +- packages/eui/src/components/code/utils.tsx | 51 ++++++++++------ .../plugins/remark/remark_prismjs.ts | 4 +- yarn.lock | 60 +++++++++---------- 10 files changed, 91 insertions(+), 60 deletions(-) diff --git a/packages/eui/package.json b/packages/eui/package.json index ec56fd8492d..2ef55134c3a 100644 --- a/packages/eui/package.json +++ b/packages/eui/package.json @@ -58,7 +58,6 @@ "@types/lodash": "^4.14.202", "@types/numeral": "^2.0.5", "@types/react-window": "^1.8.8", - "@types/refractor": "^3.4.0", "chroma-js": "^2.4.2", "classnames": "^2.5.1", "lodash": "^4.17.21", @@ -72,7 +71,7 @@ "react-remove-scroll-bar": "^2.3.4", "react-virtualized-auto-sizer": "^1.0.24", "react-window": "^1.8.10", - "refractor": "^3.6.0", + "refractor": "4.9.0", "rehype-raw": "^5.1.0", "rehype-react": "^6.2.1", "rehype-stringify": "^8.0.0", diff --git a/packages/eui/scripts/jest/.babelrc.js b/packages/eui/scripts/jest/.babelrc.js index fdb7e3db10b..77fd611864c 100644 --- a/packages/eui/scripts/jest/.babelrc.js +++ b/packages/eui/scripts/jest/.babelrc.js @@ -1,5 +1,5 @@ module.exports = { - extends: '../../.babelrc.js', + extends: '/../../.babelrc.js', presets: [ [ '@babel/env', diff --git a/packages/eui/scripts/jest/config.js b/packages/eui/scripts/jest/config.js index 47b70394941..d3aa7d74116 100644 --- a/packages/eui/scripts/jest/config.js +++ b/packages/eui/scripts/jest/config.js @@ -1,6 +1,19 @@ const jestConfig = require('jest-config'); +const babelConfig = require('../../scripts/jest/.babelrc.js'); + const getCacheDirectory = () => jestConfig.defaults.cacheDirectory; +// dependencies that provide ESM only, +// we'll need to manually transform them to commonJS for Jest +const esModules = [ + 'refractor', + 'hastscript', + 'hast-util-parse-selector', + 'parse-entities', + 'character-reference-invalid', + 'decode-named-character-reference', +].join('|'); + // Set REACT_VERSION env variable to latest if empty or invalid if (!['16', '17', '18'].includes(process.env.REACT_VERSION)) { process.env.REACT_VERSION = '18'; @@ -62,8 +75,10 @@ const config = { testEnvironment: 'jsdom', testMatch: ['**/*.test.js', '**/*.test.ts', '**/*.test.tsx'], transform: { + [`^.+\\/(${esModules})\\/.*\\.js$`]: ['babel-jest', babelConfig], '^.+\\.(js|tsx?)$': 'babel-jest', }, + transformIgnorePatterns: [`/node_modules/(?!${esModules})`], snapshotSerializers: [ '/node_modules/enzyme-to-json/serializer', '/scripts/jest/setup/emotion', diff --git a/packages/eui/src/components/code/code.tsx b/packages/eui/src/components/code/code.tsx index 55676def4b3..90a3daac3f0 100644 --- a/packages/eui/src/components/code/code.tsx +++ b/packages/eui/src/components/code/code.tsx @@ -7,13 +7,14 @@ */ import React, { useMemo, FunctionComponent } from 'react'; -import { highlight, RefractorNode } from 'refractor'; +import { refractor } from 'refractor'; import classNames from 'classnames'; import { EuiCodeSharedProps, DEFAULT_LANGUAGE, checkSupportedLanguage, getHtmlContent, + type RefractorBaseNode, } from './utils'; import { useEuiMemoizedStyles } from '../../services'; import { euiCodeStyles } from './code.styles'; @@ -32,11 +33,12 @@ export const EuiCode: FunctionComponent = ({ [_language] ); - const data: RefractorNode[] = useMemo(() => { + const data: RefractorBaseNode[] = useMemo(() => { if (typeof children !== 'string') { return []; } - return highlight(children, language); + return refractor.highlight(children, language) + .children as RefractorBaseNode[]; }, [children, language]); const content = useMemo( diff --git a/packages/eui/src/components/code/code_block.tsx b/packages/eui/src/components/code/code_block.tsx index b9fcb4b3f78..fc2f123b142 100644 --- a/packages/eui/src/components/code/code_block.tsx +++ b/packages/eui/src/components/code/code_block.tsx @@ -7,7 +7,6 @@ */ import React, { FunctionComponent, useMemo } from 'react'; -import { RefractorNode } from 'refractor'; import classNames from 'classnames'; import { @@ -23,6 +22,7 @@ import { checkSupportedLanguage, getHtmlContent, highlightByLine, + type RefractorNode, } from './utils'; import { LineAnnotationMap } from './code_block_annotations'; import { useOverflow } from './code_block_overflow'; diff --git a/packages/eui/src/components/code/code_block_virtualized.tsx b/packages/eui/src/components/code/code_block_virtualized.tsx index 22fd05b3aa8..95877693c5c 100644 --- a/packages/eui/src/components/code/code_block_virtualized.tsx +++ b/packages/eui/src/components/code/code_block_virtualized.tsx @@ -8,14 +8,13 @@ import React, { HTMLAttributes, forwardRef, useMemo } from 'react'; import { FixedSizeList, ListChildComponentProps } from 'react-window'; -import { RefractorNode } from 'refractor'; import { logicalStyles } from '../../global_styling'; import { EuiAutoSizer, EuiAutoSize, EuiAutoSizeHorizontal, } from '../auto_sizer'; -import { nodeToHtml } from './utils'; +import { nodeToHtml, type RefractorNode } from './utils'; export const EuiCodeBlockVirtualized = ({ data, diff --git a/packages/eui/src/components/code/utils.test.tsx b/packages/eui/src/components/code/utils.test.tsx index b3cd2112918..b6580a2f86e 100644 --- a/packages/eui/src/components/code/utils.test.tsx +++ b/packages/eui/src/components/code/utils.test.tsx @@ -17,6 +17,7 @@ import { nodeToHtml, highlightByLine, parseLineRanges, + AnnotationElement, } from './utils'; describe('shared utils', () => { @@ -83,7 +84,7 @@ describe('shared utils', () => { }, ], properties: { className: ['hello-world'] }, - }, + } as unknown as AnnotationElement, 0, [] ); diff --git a/packages/eui/src/components/code/utils.tsx b/packages/eui/src/components/code/utils.tsx index 7790f58f91e..04d1d107406 100644 --- a/packages/eui/src/components/code/utils.tsx +++ b/packages/eui/src/components/code/utils.tsx @@ -12,14 +12,11 @@ import React, { ReactNode, HTMLAttributes, } from 'react'; -import { - listLanguages, - highlight, - AST, - RefractorNode, - register, - type RefractorSyntax, -} from 'refractor'; +// uses refractor/all to ensure all languages are supported OOTB +import { refractor } from 'refractor/lib/all.js'; +import { type Syntax } from 'refractor'; +import type { Element, Text, Comment } from 'hast'; + import { cx } from '@emotion/css'; import { esql as esqlLanguage } from '@elastic/prismjs-esql'; @@ -32,7 +29,13 @@ import { } from './code_block_annotations'; import { euiCodeBlockLineStyles } from './code_block_line.styles'; -register(esqlLanguage as RefractorSyntax); +export type RefractorBaseNode = Element | Text; +export type RefractorNode = RefractorBaseNode | Comment; +export type AnnotationElement = Element & { annotation: string }; + +const { listLanguages, highlight, register } = refractor; + +register(esqlLanguage as Syntax); /** * Utils shared between EuiCode and EuiCodeBlock @@ -81,9 +84,12 @@ export const getHtmlContent = ( return data.map(nodeToHtml); }; -export const isAstElement = (node: RefractorNode): node is AST.Element => +export const isAstElement = (node: RefractorNode): node is Element => node.hasOwnProperty('type') && node.type === 'element'; +export const isAstTextElement = (node: RefractorNode): node is Text => + node.hasOwnProperty('type') && node.type === 'text'; + export const nodeToHtml = ( node: RefractorNode, idx: number, @@ -100,7 +106,11 @@ export const nodeToHtml = ( { ...properties, key, - className: cx(properties.className), + className: Array.isArray(properties?.className) + ? cx(properties?.className.join(' ')) + : typeof properties?.className === 'string' + ? cx(properties?.className) + : undefined, }, children && children.map((el, i) => @@ -168,7 +178,7 @@ const addLineData = ( ): ExtendedRefractorNode[] => { return nodes.reduce((result, node) => { const lineStart = data.lineNumber; - if (node.type === 'text') { + if (isAstTextElement(node) && node.type === 'text') { if (!node.value.match(NEW_LINE_REGEX)) { node.lineStart = lineStart; node.lineEnd = lineStart; @@ -188,7 +198,7 @@ const addLineData = ( return result; } - if (node.children && node.children.length) { + if (isAstElement(node) && node.children && node.children.length) { const children = addLineData(node.children, data); const first = children[0]; const last = children[children.length - 1]; @@ -249,7 +259,7 @@ function wrapLines( styles.lineText.euiCodeBlock__lineText, highlights.includes(lineNumber) && styles.lineText.isHighlighted, ]); - const lineTextElement: RefractorNode = { + const lineTextElement: Element = { type: 'element', tagName: 'span', properties: { @@ -262,10 +272,11 @@ function wrapLines( const lineNumberWrapperStyles = cx( styles.lineNumber.euiCodeBlock__lineNumberWrapper ); - const lineNumberWrapperElement: RefractorNode = { + const lineNumberWrapperElement: Element = { type: 'element', tagName: 'span', properties: { + // @ts-expect-error - expects string style but we're relying on object notation style: { inlineSize: width }, className: [ 'euiCodeBlock__lineNumberWrapper', @@ -277,7 +288,7 @@ function wrapLines( // Line number element const lineNumberStyles = cx(styles.lineNumber.euiCodeBlock__lineNumber); - const lineNumberElement: RefractorNode = { + const lineNumberElement: Element = { type: 'element', tagName: 'span', properties: { @@ -287,6 +298,7 @@ function wrapLines( }, children: [], }; + lineNumberWrapperElement.children.push(lineNumberElement); // Annotation element @@ -296,7 +308,7 @@ function wrapLines( type: 'annotation', annotation: options.annotations[lineNumber], lineNumber, - } as unknown as RefractorNode; + } as unknown as AnnotationElement; lineNumberWrapperElement.children.push(annotationElement); } @@ -322,7 +334,10 @@ export const highlightByLine = ( euiTheme: UseEuiTheme ) => { return wrapLines( - addLineData(highlight(children, language), { lineNumber: data.start }), + // @ts-expect-error RefractorNode + addLineData(highlight(children, language).children, { + lineNumber: data.start, + }), { showLineNumbers: data.show, highlight: data.highlight, diff --git a/packages/eui/src/components/markdown_editor/plugins/remark/remark_prismjs.ts b/packages/eui/src/components/markdown_editor/plugins/remark/remark_prismjs.ts index ad62e6c9c64..8ef74a820e4 100644 --- a/packages/eui/src/components/markdown_editor/plugins/remark/remark_prismjs.ts +++ b/packages/eui/src/components/markdown_editor/plugins/remark/remark_prismjs.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import refractor from 'refractor'; +import { refractor } from 'refractor'; import visit from 'unist-util-visit'; import { Plugin } from 'unified'; @@ -23,7 +23,7 @@ const attacher: Plugin = () => { } node.data = data; - data.hChildren = refractor.highlight(node.value, language); + data.hChildren = refractor.highlight(node.value, language).children; data.hProperties = { ...data.hProperties, language, diff --git a/yarn.lock b/yarn.lock index bf32c8d5665..0754dad396a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7362,7 +7362,6 @@ __metadata: "@types/react-is": "npm:^17.0.3" "@types/react-router-dom": "npm:^5.3.3" "@types/react-window": "npm:^1.8.8" - "@types/refractor": "npm:^3.4.0" "@types/stylis": "npm:^4.2.1" "@types/testing-library__jest-dom": "npm:^5.14.3" "@types/url-parse": "npm:^1.4.8" @@ -7465,7 +7464,7 @@ __metadata: react-window: "npm:^1.8.10" redux: "npm:^4.0.5" redux-thunk: "npm:^2.3.0" - refractor: "npm:^3.6.0" + refractor: "npm:4.9.0" rehype-raw: "npm:^5.1.0" rehype-react: "npm:^6.2.1" rehype-stringify: "npm:^8.0.0" @@ -11229,10 +11228,10 @@ __metadata: languageName: node linkType: hard -"@types/prismjs@npm:*": - version: 1.26.0 - resolution: "@types/prismjs@npm:1.26.0" - checksum: 10c0/dce1388a626c20b95fa2715917deef5a401eec33e9e181f202840ee3b3c7d8a84d5558c834af4c29b8e007741a6a18639b074db8ecccdd6e7de15280fc4dfdd2 +"@types/prismjs@npm:^1.0.0": + version: 1.26.5 + resolution: "@types/prismjs@npm:1.26.5" + checksum: 10c0/5619cb449e0d8df098c8759d6f47bf8fdd510abf5dbdfa999e55c6a2545efbd1e209cc85a33d8d9f4ff2898089a1a6d9a70737c9baffaae635c46852c40d384a languageName: node linkType: hard @@ -11408,15 +11407,6 @@ __metadata: languageName: node linkType: hard -"@types/refractor@npm:^3.4.0": - version: 3.4.1 - resolution: "@types/refractor@npm:3.4.1" - dependencies: - "@types/prismjs": "npm:*" - checksum: 10c0/c8d74657f912266b7df1b4c0d598ca766f0df3ee86347f6b26354d67768ab33a7a64052c3e27464c92f58159215f6a56df7d2ba722050a967d3d22ccabd78fe8 - languageName: node - linkType: hard - "@types/resolve@npm:^1.20.2": version: 1.20.6 resolution: "@types/resolve@npm:1.20.6" @@ -23775,6 +23765,15 @@ __metadata: languageName: node linkType: hard +"hast-util-parse-selector@npm:^3.0.0": + version: 3.1.1 + resolution: "hast-util-parse-selector@npm:3.1.1" + dependencies: + "@types/hast": "npm:^2.0.0" + checksum: 10c0/34ac1707a477fd9764e328087163f1f21857bdb0f8d425bf41f6def7baf840e50e4bca2eb03072e3da4e39856de28893c4b688dcba0cc305160d53afcece4df4 + languageName: node + linkType: hard + "hast-util-parse-selector@npm:^4.0.0": version: 4.0.0 resolution: "hast-util-parse-selector@npm:4.0.0" @@ -23985,16 +23984,16 @@ __metadata: languageName: node linkType: hard -"hastscript@npm:^6.0.0": - version: 6.0.0 - resolution: "hastscript@npm:6.0.0" +"hastscript@npm:^7.0.0": + version: 7.2.0 + resolution: "hastscript@npm:7.2.0" dependencies: "@types/hast": "npm:^2.0.0" - comma-separated-tokens: "npm:^1.0.0" - hast-util-parse-selector: "npm:^2.0.0" - property-information: "npm:^5.0.0" - space-separated-tokens: "npm:^1.0.0" - checksum: 10c0/f76d9cf373cb075c8523c8ad52709f09f7e02b7c9d3152b8d35c65c265b9f1878bed6023f215a7d16523921036d40a7da292cb6f4399af9b5eccac2a5a5eb330 + comma-separated-tokens: "npm:^2.0.0" + hast-util-parse-selector: "npm:^3.0.0" + property-information: "npm:^6.0.0" + space-separated-tokens: "npm:^2.0.0" + checksum: 10c0/579912b03ff4a5b19eb609df7403c6dba2505ef1a1e2bc47cbf467cbd7cffcd51df40e74d882de1ccdda40aaf18487f82619eb9cb9f2077cba778017e95e868e languageName: node linkType: hard @@ -35388,14 +35387,15 @@ __metadata: languageName: node linkType: hard -"refractor@npm:^3.6.0": - version: 3.6.0 - resolution: "refractor@npm:3.6.0" +"refractor@npm:4.9.0": + version: 4.9.0 + resolution: "refractor@npm:4.9.0" dependencies: - hastscript: "npm:^6.0.0" - parse-entities: "npm:^2.0.0" - prismjs: "npm:~1.27.0" - checksum: 10c0/63ab62393c8c2fd7108c2ea1eff721c0ad2a1a6eee60fdd1b47f4bb25cf298667dc97d041405b3e718b0817da12b37a86ed07ebee5bd2ca6405611f1bae456db + "@types/hast": "npm:^2.0.0" + "@types/prismjs": "npm:^1.0.0" + hastscript: "npm:^7.0.0" + parse-entities: "npm:^4.0.0" + checksum: 10c0/58c9471d17d4e2d19436c0917d94c214366b43de090da679880d01d47a3ca5e9da1790aaa55d23da14222bc82d61bb9fd27ad17ab4bc5218e1fa026893c2b5d7 languageName: node linkType: hard From 0363104863648c15294414d216c68435c57434e0 Mon Sep 17 00:00:00 2001 From: Lene Gadewoll Date: Wed, 23 Apr 2025 16:30:15 +0200 Subject: [PATCH 2/3] build: upgrade refractor to v5.0.0 --- packages/eui/package.json | 2 +- packages/eui/src/components/code/types.d.ts | 11 +++++ packages/eui/src/components/code/utils.tsx | 2 +- yarn.lock | 52 ++++++++++----------- 4 files changed, 38 insertions(+), 29 deletions(-) create mode 100644 packages/eui/src/components/code/types.d.ts diff --git a/packages/eui/package.json b/packages/eui/package.json index 2ef55134c3a..9c7f884564d 100644 --- a/packages/eui/package.json +++ b/packages/eui/package.json @@ -71,7 +71,7 @@ "react-remove-scroll-bar": "^2.3.4", "react-virtualized-auto-sizer": "^1.0.24", "react-window": "^1.8.10", - "refractor": "4.9.0", + "refractor": "5.0.0", "rehype-raw": "^5.1.0", "rehype-react": "^6.2.1", "rehype-stringify": "^8.0.0", diff --git a/packages/eui/src/components/code/types.d.ts b/packages/eui/src/components/code/types.d.ts new file mode 100644 index 00000000000..d169a402b1a --- /dev/null +++ b/packages/eui/src/components/code/types.d.ts @@ -0,0 +1,11 @@ +declare module 'refractor' { + export * from 'refractor/lib/common'; +} + +declare module 'refractor/all' { + export * from 'refractor/lib/all'; +} + +declare module 'refractor/core' { + export * from 'refractor/lib/core'; +} diff --git a/packages/eui/src/components/code/utils.tsx b/packages/eui/src/components/code/utils.tsx index 04d1d107406..b3630148650 100644 --- a/packages/eui/src/components/code/utils.tsx +++ b/packages/eui/src/components/code/utils.tsx @@ -13,7 +13,7 @@ import React, { HTMLAttributes, } from 'react'; // uses refractor/all to ensure all languages are supported OOTB -import { refractor } from 'refractor/lib/all.js'; +import { refractor } from 'refractor/all'; import { type Syntax } from 'refractor'; import type { Element, Text, Comment } from 'hast'; diff --git a/yarn.lock b/yarn.lock index 0754dad396a..b61b5865468 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7464,7 +7464,7 @@ __metadata: react-window: "npm:^1.8.10" redux: "npm:^4.0.5" redux-thunk: "npm:^2.3.0" - refractor: "npm:4.9.0" + refractor: "npm:5.0.0" rehype-raw: "npm:^5.1.0" rehype-react: "npm:^6.2.1" rehype-stringify: "npm:^8.0.0" @@ -23765,15 +23765,6 @@ __metadata: languageName: node linkType: hard -"hast-util-parse-selector@npm:^3.0.0": - version: 3.1.1 - resolution: "hast-util-parse-selector@npm:3.1.1" - dependencies: - "@types/hast": "npm:^2.0.0" - checksum: 10c0/34ac1707a477fd9764e328087163f1f21857bdb0f8d425bf41f6def7baf840e50e4bca2eb03072e3da4e39856de28893c4b688dcba0cc305160d53afcece4df4 - languageName: node - linkType: hard - "hast-util-parse-selector@npm:^4.0.0": version: 4.0.0 resolution: "hast-util-parse-selector@npm:4.0.0" @@ -23984,29 +23975,29 @@ __metadata: languageName: node linkType: hard -"hastscript@npm:^7.0.0": - version: 7.2.0 - resolution: "hastscript@npm:7.2.0" +"hastscript@npm:^8.0.0": + version: 8.0.0 + resolution: "hastscript@npm:8.0.0" dependencies: - "@types/hast": "npm:^2.0.0" + "@types/hast": "npm:^3.0.0" comma-separated-tokens: "npm:^2.0.0" - hast-util-parse-selector: "npm:^3.0.0" + hast-util-parse-selector: "npm:^4.0.0" property-information: "npm:^6.0.0" space-separated-tokens: "npm:^2.0.0" - checksum: 10c0/579912b03ff4a5b19eb609df7403c6dba2505ef1a1e2bc47cbf467cbd7cffcd51df40e74d882de1ccdda40aaf18487f82619eb9cb9f2077cba778017e95e868e + checksum: 10c0/f0b54bbdd710854b71c0f044612db0fe1b5e4d74fa2001633dc8c535c26033269f04f536f9fd5b03f234de1111808f9e230e9d19493bf919432bb24d541719e0 languageName: node linkType: hard -"hastscript@npm:^8.0.0": - version: 8.0.0 - resolution: "hastscript@npm:8.0.0" +"hastscript@npm:^9.0.0": + version: 9.0.1 + resolution: "hastscript@npm:9.0.1" dependencies: "@types/hast": "npm:^3.0.0" comma-separated-tokens: "npm:^2.0.0" hast-util-parse-selector: "npm:^4.0.0" - property-information: "npm:^6.0.0" + property-information: "npm:^7.0.0" space-separated-tokens: "npm:^2.0.0" - checksum: 10c0/f0b54bbdd710854b71c0f044612db0fe1b5e4d74fa2001633dc8c535c26033269f04f536f9fd5b03f234de1111808f9e230e9d19493bf919432bb24d541719e0 + checksum: 10c0/18dc8064e5c3a7a2ae862978e626b97a254e1c8a67ee9d0c9f06d373bba155ed805fc5b5ce21b990fb7bc174624889e5e1ce1cade264f1b1d58b48f994bc85ce languageName: node linkType: hard @@ -33963,6 +33954,13 @@ __metadata: languageName: node linkType: hard +"property-information@npm:^7.0.0": + version: 7.0.0 + resolution: "property-information@npm:7.0.0" + checksum: 10c0/bf443e3bbdfc154da8f4ff4c85ed97c3d21f5e5f77cce84d2fd653c6dfb974a75ad61eafbccb2b8d2285942be35d763eaa99d51e29dccc28b40917d3f018107e + languageName: node + linkType: hard + "proto-list@npm:~1.2.1": version: 1.2.4 resolution: "proto-list@npm:1.2.4" @@ -35387,15 +35385,15 @@ __metadata: languageName: node linkType: hard -"refractor@npm:4.9.0": - version: 4.9.0 - resolution: "refractor@npm:4.9.0" +"refractor@npm:5.0.0": + version: 5.0.0 + resolution: "refractor@npm:5.0.0" dependencies: - "@types/hast": "npm:^2.0.0" + "@types/hast": "npm:^3.0.0" "@types/prismjs": "npm:^1.0.0" - hastscript: "npm:^7.0.0" + hastscript: "npm:^9.0.0" parse-entities: "npm:^4.0.0" - checksum: 10c0/58c9471d17d4e2d19436c0917d94c214366b43de090da679880d01d47a3ca5e9da1790aaa55d23da14222bc82d61bb9fd27ad17ab4bc5218e1fa026893c2b5d7 + checksum: 10c0/7b69a3b525f88de4adae3467f30ff7e80513fa53e65d85656f169ded16e314f471dfa936ccc545ae604e178ee7a108cbd94e6144a5bd541ed8d20626cc75e7b8 languageName: node linkType: hard From aaf53b62d47257e35f78f0dbd9bfcc9c6bb01bce Mon Sep 17 00:00:00 2001 From: Lene Gadewoll Date: Wed, 23 Apr 2025 16:33:02 +0200 Subject: [PATCH 3/3] chore: add changelog --- packages/eui/changelogs/upcoming/8618.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 packages/eui/changelogs/upcoming/8618.md diff --git a/packages/eui/changelogs/upcoming/8618.md b/packages/eui/changelogs/upcoming/8618.md new file mode 100644 index 00000000000..5a8dc9dbecb --- /dev/null +++ b/packages/eui/changelogs/upcoming/8618.md @@ -0,0 +1,3 @@ +**Dependency updates** + +- Updated `refractor` to v5.0.0