diff --git a/.betterer.results b/.betterer.results index c52010d341589..fcb25c5f8769d 100644 --- a/.betterer.results +++ b/.betterer.results @@ -3,14 +3,6 @@ // If this file contains merge conflicts, use `betterer merge` to automatically resolve them: // https://phenomnomnominal.github.io/betterer/docs/results-file/#merge // -exports[`no enzyme tests`] = { - value: `{ - "packages/grafana-ui/src/components/QueryField/QueryField.test.tsx:2976628669": [ - [0, 26, 13, "RegExp match", "2409514259"] - ] - }` -}; - exports[`better eslint`] = { value: `{ "e2e/benchmarks/live/4-20hz-panels.spec.ts:5381": [ @@ -1315,12 +1307,6 @@ exports[`better eslint`] = { [0, 0, 0, "Do not use any type assertions.", "0"], [0, 0, 0, "Unexpected any. Specify a different type.", "1"] ], - "packages/grafana-ui/src/components/QueryField/QueryField.test.tsx:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"], - [0, 0, 0, "Unexpected any. Specify a different type.", "1"], - [0, 0, 0, "Unexpected any. Specify a different type.", "2"], - [0, 0, 0, "Unexpected any. Specify a different type.", "3"] - ], "packages/grafana-ui/src/components/QueryField/QueryField.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], [0, 0, 0, "Use data-testid for E2E selectors instead of aria-label", "1"] diff --git a/.betterer.ts b/.betterer.ts index af60ac38937e8..cf7e809107f2d 100644 --- a/.betterer.ts +++ b/.betterer.ts @@ -1,13 +1,10 @@ -import { regexp } from '@betterer/regexp'; import { BettererFileTest } from '@betterer/betterer'; import { ESLint, Linter } from 'eslint'; import { existsSync } from 'fs'; -import { exec } from 'child_process'; import path from 'path'; import glob from 'glob'; export default { - 'no enzyme tests': () => regexp(/from 'enzyme'/g).include('**/*.test.*'), 'better eslint': () => countEslintErrors().include('**/*.{ts,tsx}'), 'no undocumented stories': () => countUndocumentedStories().include('**/*.story.tsx'), }; diff --git a/jest.config.js b/jest.config.js index f71574e2db965..7db7afdf68ce8 100644 --- a/jest.config.js +++ b/jest.config.js @@ -20,7 +20,6 @@ module.exports = { testTimeout: 30000, resolver: `/public/test/jest-resolver.js`, setupFilesAfterEnv: ['./public/test/setupTests.ts'], - snapshotSerializers: ['enzyme-to-json/serializer'], globals: { __webpack_public_path__: '', // empty string }, diff --git a/package.json b/package.json index 52b4ff0628659..23a3f9bcd2b7d 100644 --- a/package.json +++ b/package.json @@ -123,8 +123,6 @@ "@types/d3-force": "^2.1.0", "@types/d3-scale-chromatic": "1.3.1", "@types/debounce-promise": "3.1.5", - "@types/enzyme": "3.10.12", - "@types/enzyme-adapter-react-16": "1.0.6", "@types/eslint": "8.4.9", "@types/file-saver": "2.0.5", "@types/glob": "^8.0.0", @@ -167,7 +165,6 @@ "@types/uuid": "8.3.4", "@typescript-eslint/eslint-plugin": "5.42.0", "@typescript-eslint/parser": "5.42.0", - "@wojtekmaj/enzyme-adapter-react-17": "0.8.0", "autoprefixer": "10.4.13", "babel-jest": "29.3.1", "babel-loader": "9.1.0", @@ -179,8 +176,6 @@ "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.2.2", "cypress": "9.5.1", - "enzyme": "3.11.0", - "enzyme-to-json": "3.6.2", "esbuild": "0.16.17", "esbuild-loader": "2.21.0", "esbuild-plugin-browserslist": "^0.6.0", diff --git a/packages/grafana-toolkit/README.md b/packages/grafana-toolkit/README.md index 8b853ac6b41eb..800492fa13337 100644 --- a/packages/grafana-toolkit/README.md +++ b/packages/grafana-toolkit/README.md @@ -146,14 +146,7 @@ Yes! grafana-toolkit supports TypeScript by default. grafana-toolkit comes with Jest as a test runner. -Internally at Grafana we use Enzyme. If you are developing React plugin and you want to configure Enzyme as a testing utility, then you need to configure `enzyme-adapter-react`. To do so, create `/config/jest-setup.ts` file that will provide necessary setup. Copy the following code into that file to get Enzyme working with React: - -```ts -import { configure } from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; - -configure({ adapter: new Adapter() }); -``` +Internally at Grafana we use React Testing Library. You can also set up Jest with shims of your needs by creating `jest-shim.ts` file in the same directory: `/config/jest-shim.ts` diff --git a/packages/grafana-ui/package.json b/packages/grafana-ui/package.json index 20678316f7762..dc219b691c4fb 100644 --- a/packages/grafana-ui/package.json +++ b/packages/grafana-ui/package.json @@ -141,8 +141,6 @@ "@testing-library/user-event": "14.4.3", "@types/common-tags": "^1.8.0", "@types/d3": "7.4.0", - "@types/enzyme": "3.10.12", - "@types/enzyme-adapter-react-16": "1.0.6", "@types/hoist-non-react-statics": "3.3.1", "@types/is-hotkey": "0.1.7", "@types/jest": "29.2.3", @@ -168,11 +166,9 @@ "@types/testing-library__jest-dom": "5.14.5", "@types/tinycolor2": "1.4.3", "@types/uuid": "8.3.4", - "@wojtekmaj/enzyme-adapter-react-17": "0.8.0", "common-tags": "1.8.2", "css-loader": "6.7.1", "csstype": "3.1.1", - "enzyme": "3.11.0", "esbuild": "0.16.17", "expose-loader": "4.0.0", "mock-raf": "1.0.1", diff --git a/packages/grafana-ui/src/components/QueryField/QueryField.test.tsx b/packages/grafana-ui/src/components/QueryField/QueryField.test.tsx index b661ed4b312fd..7557fa5d7b37c 100644 --- a/packages/grafana-ui/src/components/QueryField/QueryField.test.tsx +++ b/packages/grafana-ui/src/components/QueryField/QueryField.test.tsx @@ -1,6 +1,5 @@ -import { mount, shallow } from 'enzyme'; +import { render } from '@testing-library/react'; import React from 'react'; -import { Editor } from 'slate-react'; import { createTheme } from '@grafana/data'; @@ -8,120 +7,102 @@ import { UnThemedQueryField } from './QueryField'; describe('', () => { it('should render with null initial value', () => { - const wrapper = shallow( - - ); - expect(wrapper.find('div').exists()).toBeTruthy(); + expect(() => + render( + + ) + ).not.toThrow(); }); it('should render with empty initial value', () => { - const wrapper = shallow( - - ); - expect(wrapper.find('div').exists()).toBeTruthy(); + expect(() => + render() + ).not.toThrow(); }); it('should render with initial value', () => { - const wrapper = shallow( - - ); - expect(wrapper.find('div').exists()).toBeTruthy(); + expect(() => + render( + + ) + ).not.toThrow(); }); - it('should execute query on blur', () => { - const onRun = jest.fn(); - const wrapper = mount( - - ); - const field = wrapper.instance() as UnThemedQueryField; - const ed = wrapper.find(Editor).instance() as Editor; - expect(onRun.mock.calls.length).toBe(0); - field.handleBlur(undefined, ed, () => {}); - expect(onRun.mock.calls.length).toBe(1); - }); - - it('should run onChange with clean text', () => { - const onChange = jest.fn(); - const wrapper = shallow( - - ); - const field = wrapper.instance() as UnThemedQueryField; - field.runOnChange(); - expect(onChange.mock.calls.length).toBe(1); - expect(onChange.mock.calls[0][0]).toBe('my clean query '); - }); - - it('should run custom on blur, but not necessarily execute query', () => { - const onBlur = jest.fn(); - const onRun = jest.fn(); - const wrapper = mount( - - ); - const field = wrapper.instance() as UnThemedQueryField; - const ed = wrapper.find(Editor).instance() as Editor; - expect(onBlur.mock.calls.length).toBe(0); - expect(onRun.mock.calls.length).toBe(0); - field.handleBlur(undefined, ed, () => {}); - expect(onBlur.mock.calls.length).toBe(1); - expect(onRun.mock.calls.length).toBe(0); - }); describe('syntaxLoaded', () => { it('should re-render the editor after syntax has fully loaded', () => { - const wrapper: any = shallow( - + const mockOnRichValueChange = jest.fn(); + const { rerender } = render( + + ); + rerender( + ); - const spyOnChange = jest.spyOn(wrapper.instance(), 'onChange').mockImplementation(jest.fn()); - wrapper.instance().editor = { insertText: () => ({ deleteBackward: () => ({ value: 'fooo' }) }) }; - wrapper.setProps({ syntaxLoaded: true }); - expect(spyOnChange).toHaveBeenCalledWith('fooo', true); + expect(mockOnRichValueChange).toHaveBeenCalled(); }); + it('should not re-render the editor if syntax is already loaded', () => { - const wrapper: any = shallow( - + const mockOnRichValueChange = jest.fn(); + const { rerender } = render( + ); - const spyOnChange = jest.spyOn(wrapper.instance(), 'onChange').mockImplementation(jest.fn()); - wrapper.setProps({ syntaxLoaded: true }); - wrapper.instance().editor = {}; - wrapper.setProps({ syntaxLoaded: true }); - expect(spyOnChange).not.toBeCalled(); - }); - it('should not re-render the editor if editor itself is not defined', () => { - const wrapper: any = shallow( - + rerender( + ); - const spyOnChange = jest.spyOn(wrapper.instance(), 'onChange').mockImplementation(jest.fn()); - wrapper.setProps({ syntaxLoaded: true }); - expect(wrapper.instance().editor).toBeFalsy(); - expect(spyOnChange).not.toBeCalled(); + expect(mockOnRichValueChange).not.toBeCalled(); }); + it('should not re-render the editor twice once syntax is fully loaded', () => { - const wrapper: any = shallow( - + const mockOnRichValueChange = jest.fn(); + const { rerender } = render( + + ); + rerender( + + ); + rerender( + ); - const spyOnChange = jest.spyOn(wrapper.instance(), 'onChange').mockImplementation(jest.fn()); - wrapper.instance().editor = { insertText: () => ({ deleteBackward: () => ({ value: 'fooo' }) }) }; - wrapper.setProps({ syntaxLoaded: true }); - wrapper.setProps({ syntaxLoaded: true }); - expect(spyOnChange).toBeCalledTimes(1); + expect(mockOnRichValueChange).toBeCalledTimes(1); }); }); }); diff --git a/packages/jaeger-ui-components/package.json b/packages/jaeger-ui-components/package.json index cce91d58fb67e..8984f23da5dd5 100644 --- a/packages/jaeger-ui-components/package.json +++ b/packages/jaeger-ui-components/package.json @@ -14,7 +14,6 @@ "@testing-library/react": "12.1.4", "@testing-library/user-event": "14.4.3", "@types/deep-freeze": "^0.1.1", - "@types/enzyme": "3.10.12", "@types/hoist-non-react-statics": "^3.3.1", "@types/jest": "29.2.3", "@types/lodash": "4.14.187", @@ -25,7 +24,6 @@ "@types/slate-react": "0.22.9", "@types/testing-library__jest-dom": "5.14.5", "@types/tinycolor2": "1.4.3", - "enzyme": "3.11.0", "sinon": "14.0.1", "typescript": "4.8.4" }, diff --git a/public/test/jest-setup.ts b/public/test/jest-setup.ts index cf9b5f735abff..1477e86bd8872 100644 --- a/public/test/jest-setup.ts +++ b/public/test/jest-setup.ts @@ -2,9 +2,7 @@ // angular is imported. import './global-jquery-shim'; -import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import angular from 'angular'; -import { configure } from 'enzyme'; import { EventBusSrv } from '@grafana/data'; import { GrafanaBootConfig } from '@grafana/runtime'; @@ -67,8 +65,6 @@ jest.mock('../app/core/core', () => ({ jest.mock('../app/angular/partials', () => ({})); jest.mock('../app/features/plugins/plugin_loader', () => ({})); -configure({ adapter: new Adapter() }); - const localStorageMock = (() => { let store: any = {}; return { diff --git a/yarn.lock b/yarn.lock index a6adfe69b11ad..95d070c1c314a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5081,8 +5081,6 @@ __metadata: "@testing-library/user-event": 14.4.3 "@types/common-tags": ^1.8.0 "@types/d3": 7.4.0 - "@types/enzyme": 3.10.12 - "@types/enzyme-adapter-react-16": 1.0.6 "@types/hoist-non-react-statics": 3.3.1 "@types/is-hotkey": 0.1.7 "@types/jest": 29.2.3 @@ -5108,7 +5106,6 @@ __metadata: "@types/testing-library__jest-dom": 5.14.5 "@types/tinycolor2": 1.4.3 "@types/uuid": 8.3.4 - "@wojtekmaj/enzyme-adapter-react-17": 0.8.0 ansicolor: 1.1.100 calculate-size: 1.1.1 classnames: 2.3.2 @@ -5118,7 +5115,6 @@ __metadata: csstype: 3.1.1 d3: 5.15.0 date-fns: 2.29.3 - enzyme: 3.11.0 esbuild: 0.16.17 expose-loader: 4.0.0 hoist-non-react-statics: 3.3.2 @@ -5323,7 +5319,6 @@ __metadata: "@testing-library/react": 12.1.4 "@testing-library/user-event": 14.4.3 "@types/deep-freeze": ^0.1.1 - "@types/enzyme": 3.10.12 "@types/hoist-non-react-statics": ^3.3.1 "@types/jest": 29.2.3 "@types/lodash": 4.14.187 @@ -5339,7 +5334,6 @@ __metadata: combokeys: ^3.0.0 copy-to-clipboard: ^3.1.0 deep-freeze: ^0.0.1 - enzyme: 3.11.0 fuzzy: ^0.1.3 hoist-non-react-statics: ^3.3.2 json-markup: ^1.1.0 @@ -10399,15 +10393,6 @@ __metadata: languageName: node linkType: hard -"@types/cheerio@npm:*, @types/cheerio@npm:^0.22.22": - version: 0.22.30 - resolution: "@types/cheerio@npm:0.22.30" - dependencies: - "@types/node": "*" - checksum: 2aba93f57c0c88964bd83c3403b1f9ad98c377d00e0d638417a943ab483f0a638925c9a4f2e25d923db2a293ffb59f833cd49fa76c6299684494633becea54de - languageName: node - linkType: hard - "@types/chrome-remote-interface@npm:0.31.4": version: 0.31.4 resolution: "@types/chrome-remote-interface@npm:0.31.4" @@ -10824,35 +10809,6 @@ __metadata: languageName: node linkType: hard -"@types/enzyme-adapter-react-16@npm:1.0.6": - version: 1.0.6 - resolution: "@types/enzyme-adapter-react-16@npm:1.0.6" - dependencies: - "@types/enzyme": "*" - checksum: d668ed5fbb7bf72e647f212ab60e2208f96b566a1782cbaa35cd0be3bfc27c5d075367517d341155d35dd21834271df7d74bbf49d1f878e0b7be2a9c0daa17a3 - languageName: node - linkType: hard - -"@types/enzyme@npm:*": - version: 3.10.10 - resolution: "@types/enzyme@npm:3.10.10" - dependencies: - "@types/cheerio": "*" - "@types/react": "*" - checksum: e2393f87d6737d643789fb1a83c53c5cb6cb9eaebf1e1c8a3163d95f778f3741a9734fea47761a7648d9c778166ffd531f61c0aa4c5bf97b0d8018cacad05a49 - languageName: node - linkType: hard - -"@types/enzyme@npm:3.10.12": - version: 3.10.12 - resolution: "@types/enzyme@npm:3.10.12" - dependencies: - "@types/cheerio": "*" - "@types/react": "*" - checksum: 356e9142566b68c9b324ae71a7b93f03512a1c009a1d337a25ce4f495590f3e79de08aa4a0016d6224cb228c27832d92b6d7d3276ba5962302c41d0577e8a912 - languageName: node - linkType: hard - "@types/eslint-scope@npm:^3.7.3": version: 3.7.4 resolution: "@types/eslint-scope@npm:3.7.4" @@ -12974,38 +12930,6 @@ __metadata: languageName: node linkType: hard -"@wojtekmaj/enzyme-adapter-react-17@npm:0.8.0": - version: 0.8.0 - resolution: "@wojtekmaj/enzyme-adapter-react-17@npm:0.8.0" - dependencies: - "@wojtekmaj/enzyme-adapter-utils": ^0.2.0 - enzyme-shallow-equal: ^1.0.0 - has: ^1.0.0 - prop-types: ^15.7.0 - react-is: ^17.0.0 - react-test-renderer: ^17.0.0 - peerDependencies: - enzyme: ^3.0.0 - react: ^17.0.0-0 - react-dom: ^17.0.0-0 - checksum: aa9674f06f6db269b72168ebf46c4513938993479eb60bac30cb6183b5aca6108ade3d08af4f56c142cb219415480d0c4b454ba9452b85c32f711c806b39cd8c - languageName: node - linkType: hard - -"@wojtekmaj/enzyme-adapter-utils@npm:^0.2.0": - version: 0.2.0 - resolution: "@wojtekmaj/enzyme-adapter-utils@npm:0.2.0" - dependencies: - function.prototype.name: ^1.1.0 - has: ^1.0.0 - object.fromentries: ^2.0.0 - prop-types: ^15.7.0 - peerDependencies: - react: ^17.0.0-0 - checksum: 837741f1382acdb02ce304745eccfdcff03f1cae2a4fb833056a7a753308cd1182b0b32a10a04be6bfedaaab8f4acd5b458bfe0b9ebaa6119c4aaaba74a14ae4 - languageName: node - linkType: hard - "@xmldom/xmldom@npm:^0.8.3": version: 0.8.6 resolution: "@xmldom/xmldom@npm:0.8.6" @@ -13812,19 +13736,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.filter@npm:^1.0.0": - version: 1.0.1 - resolution: "array.prototype.filter@npm:1.0.1" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - es-array-method-boxes-properly: ^1.0.0 - is-string: ^1.0.7 - checksum: 574b52dcebf2def7bedb05449b60e5e3819093fa77f88c3f87a9611361d2745c7aacde01cd3ed7accafd632ee1e0340b655dd26dc7c060429cb4566058e63134 - languageName: node - linkType: hard - "array.prototype.flat@npm:^1.2.1": version: 1.3.1 resolution: "array.prototype.flat@npm:1.3.1" @@ -13837,17 +13748,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.flat@npm:^1.2.3": - version: 1.2.5 - resolution: "array.prototype.flat@npm:1.2.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - checksum: 9cc6414b111abfc7717e39546e4887b1e5ec74df8f1618d83425deaa95752bf05d475d1d241253b4d88d4a01f8e1bc84845ad5b7cc2047f8db2f614512acd40e - languageName: node - linkType: hard - "array.prototype.flat@npm:^1.2.5": version: 1.3.0 resolution: "array.prototype.flat@npm:1.3.0" @@ -15613,19 +15513,6 @@ __metadata: languageName: node linkType: hard -"cheerio-select@npm:^1.5.0": - version: 1.5.0 - resolution: "cheerio-select@npm:1.5.0" - dependencies: - css-select: ^4.1.3 - css-what: ^5.0.1 - domelementtype: ^2.2.0 - domhandler: ^4.2.0 - domutils: ^2.7.0 - checksum: d4506d8b9ad330a18f9de3a5a22138d0804063e92aac2fc020384cc52ab86d2194d2ae614fc87f0e2a62b6a6dd0c28ad23669cec64331172a9f99ad604863010 - languageName: node - linkType: hard - "cheerio-select@npm:^2.1.0": version: 2.1.0 resolution: "cheerio-select@npm:2.1.0" @@ -15655,21 +15542,6 @@ __metadata: languageName: node linkType: hard -"cheerio@npm:^1.0.0-rc.3": - version: 1.0.0-rc.10 - resolution: "cheerio@npm:1.0.0-rc.10" - dependencies: - cheerio-select: ^1.5.0 - dom-serializer: ^1.3.2 - domhandler: ^4.2.0 - htmlparser2: ^6.1.0 - parse5: ^6.0.1 - parse5-htmlparser2-tree-adapter: ^6.0.1 - tslib: ^2.2.0 - checksum: ace2f9c5809737534b1320d11d48762013694fa905b4deacac81a634edac178c1b0534f79d7b1896a88ce489db6cb539f222317996b21c8b6923ce413dcc1a2f - languageName: node - linkType: hard - "chokidar@npm:3.5.3, chokidar@npm:^3.3.1, chokidar@npm:^3.5.1, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" @@ -17011,7 +16883,7 @@ __metadata: languageName: node linkType: hard -"css-what@npm:^5.0.0, css-what@npm:^5.0.1": +"css-what@npm:^5.0.0": version: 5.1.0 resolution: "css-what@npm:5.1.0" checksum: 0b75d1bac95c885c168573c85744a6c6843d8c33345f54f717218b37ea6296b0e99bb12105930ea170fd4a921990392a7c790c16c585c1d8960c49e2b7ec39f7 @@ -18283,13 +18155,6 @@ __metadata: languageName: node linkType: hard -"discontinuous-range@npm:1.0.0": - version: 1.0.0 - resolution: "discontinuous-range@npm:1.0.0" - checksum: 8ee88d7082445b6eadc7c03bebe6dc978f96760c45e9f65d16ca66174d9e086a9e3855ee16acf65625e1a07a846a17de674f02a5964a6aebe5963662baf8b5c8 - languageName: node - linkType: hard - "djb2a@npm:^1.2.0": version: 1.2.0 resolution: "djb2a@npm:1.2.0" @@ -18382,7 +18247,7 @@ __metadata: languageName: node linkType: hard -"dom-serializer@npm:^1.0.1, dom-serializer@npm:^1.3.2": +"dom-serializer@npm:^1.0.1": version: 1.3.2 resolution: "dom-serializer@npm:1.3.2" dependencies: @@ -18468,7 +18333,7 @@ __metadata: languageName: node linkType: hard -"domutils@npm:^2.5.2, domutils@npm:^2.6.0, domutils@npm:^2.7.0": +"domutils@npm:^2.5.2, domutils@npm:^2.6.0": version: 2.8.0 resolution: "domutils@npm:2.8.0" dependencies: @@ -18832,59 +18697,6 @@ __metadata: languageName: node linkType: hard -"enzyme-shallow-equal@npm:^1.0.0, enzyme-shallow-equal@npm:^1.0.1": - version: 1.0.4 - resolution: "enzyme-shallow-equal@npm:1.0.4" - dependencies: - has: ^1.0.3 - object-is: ^1.1.2 - checksum: 54bbad0955683f09252568bfcb9d7e934a27c06634057db9e82b54c0d9f7a27b6160d77643177d973c133b87d404f284cc6aa0481c0a1c81cdff05b072e2bb49 - languageName: node - linkType: hard - -"enzyme-to-json@npm:3.6.2": - version: 3.6.2 - resolution: "enzyme-to-json@npm:3.6.2" - dependencies: - "@types/cheerio": ^0.22.22 - lodash: ^4.17.21 - react-is: ^16.12.0 - peerDependencies: - enzyme: ^3.4.0 - checksum: e81f3dc05b5c440da416544a3cbc41fb9e79de0777453e48fe55de822f7d6f56ee08e5173d46a7624cf2781198396509c470bdd616a1ea441e6fa9ddf4396477 - languageName: node - linkType: hard - -"enzyme@npm:3.11.0": - version: 3.11.0 - resolution: "enzyme@npm:3.11.0" - dependencies: - array.prototype.flat: ^1.2.3 - cheerio: ^1.0.0-rc.3 - enzyme-shallow-equal: ^1.0.1 - function.prototype.name: ^1.1.2 - has: ^1.0.3 - html-element-map: ^1.2.0 - is-boolean-object: ^1.0.1 - is-callable: ^1.1.5 - is-number-object: ^1.0.4 - is-regex: ^1.0.5 - is-string: ^1.0.5 - is-subset: ^0.1.1 - lodash.escape: ^4.0.1 - lodash.isequal: ^4.5.0 - object-inspect: ^1.7.0 - object-is: ^1.0.2 - object.assign: ^4.1.0 - object.entries: ^1.1.1 - object.values: ^1.1.1 - raf: ^3.4.1 - rst-selector-parser: ^2.2.3 - string.prototype.trim: ^1.2.1 - checksum: 69ae80049c3f405122b8e619f1cf8b04f32b3cc2b6134c29ed8c0f05e87a0b15080f1121096ec211954a710f4787300af9157078c863012de87eee16e98e64ea - languageName: node - linkType: hard - "eol@npm:^0.9.1": version: 0.9.1 resolution: "eol@npm:0.9.1" @@ -21145,7 +20957,7 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.0, function.prototype.name@npm:^1.1.2, function.prototype.name@npm:^1.1.5": +"function.prototype.name@npm:^1.1.0, function.prototype.name@npm:^1.1.5": version: 1.1.5 resolution: "function.prototype.name@npm:1.1.5" dependencies: @@ -21853,8 +21665,6 @@ __metadata: "@types/d3-force": ^2.1.0 "@types/d3-scale-chromatic": 1.3.1 "@types/debounce-promise": 3.1.5 - "@types/enzyme": 3.10.12 - "@types/enzyme-adapter-react-16": 1.0.6 "@types/eslint": 8.4.9 "@types/file-saver": 2.0.5 "@types/glob": ^8.0.0 @@ -21906,7 +21716,6 @@ __metadata: "@visx/shape": 2.12.2 "@visx/tooltip": 2.16.0 "@welldone-software/why-did-you-render": 7.0.1 - "@wojtekmaj/enzyme-adapter-react-17": 0.8.0 angular: 1.8.3 angular-bindonce: 0.3.1 angular-route: 1.8.3 @@ -21939,8 +21748,6 @@ __metadata: date-fns: 2.29.3 debounce-promise: 3.1.2 emotion: 11.0.0 - enzyme: 3.11.0 - enzyme-to-json: 3.6.2 esbuild: 0.16.17 esbuild-loader: 2.21.0 esbuild-plugin-browserslist: ^0.6.0 @@ -22316,7 +22123,7 @@ __metadata: languageName: node linkType: hard -"has@npm:^1.0.0, has@npm:^1.0.3": +"has@npm:^1.0.3": version: 1.0.3 resolution: "has@npm:1.0.3" dependencies: @@ -22562,16 +22369,6 @@ __metadata: languageName: node linkType: hard -"html-element-map@npm:^1.2.0": - version: 1.3.1 - resolution: "html-element-map@npm:1.3.1" - dependencies: - array.prototype.filter: ^1.0.0 - call-bind: ^1.0.2 - checksum: 7408da008d37bfa76b597e298ae0ed530258065deb29fbd73d40f7cbd123b654d1022a7a8cfbe713e57d90c5bef844399f5c8a46cde7d55c91d305024c921d08 - languageName: node - linkType: hard - "html-encoding-sniffer@npm:^2.0.1": version: 2.0.1 resolution: "html-encoding-sniffer@npm:2.0.1" @@ -23532,7 +23329,7 @@ __metadata: languageName: node linkType: hard -"is-boolean-object@npm:^1.0.1, is-boolean-object@npm:^1.1.0": +"is-boolean-object@npm:^1.1.0": version: 1.1.2 resolution: "is-boolean-object@npm:1.1.2" dependencies: @@ -23572,7 +23369,7 @@ __metadata: languageName: node linkType: hard -"is-callable@npm:^1.1.4, is-callable@npm:^1.1.5, is-callable@npm:^1.2.4": +"is-callable@npm:^1.1.4, is-callable@npm:^1.2.4": version: 1.2.4 resolution: "is-callable@npm:1.2.4" checksum: 1a28d57dc435797dae04b173b65d6d1e77d4f16276e9eff973f994eadcfdc30a017e6a597f092752a083c1103cceb56c91e3dadc6692fedb9898dfaba701575f @@ -24030,7 +23827,7 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.0.5, is-regex@npm:^1.1.2, is-regex@npm:^1.1.4": +"is-regex@npm:^1.1.2, is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" dependencies: @@ -24118,13 +23915,6 @@ __metadata: languageName: node linkType: hard -"is-subset@npm:^0.1.1": - version: 0.1.1 - resolution: "is-subset@npm:0.1.1" - checksum: 97b8d7852af165269b7495095691a6ce6cf20bdfa1f846f97b4560ee190069686107af4e277fbd93aa0845c4d5db704391460ff6e9014aeb73264ba87893df44 - languageName: node - linkType: hard - "is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": version: 1.0.4 resolution: "is-symbol@npm:1.0.4" @@ -26572,20 +26362,6 @@ __metadata: languageName: node linkType: hard -"lodash.escape@npm:^4.0.1": - version: 4.0.1 - resolution: "lodash.escape@npm:4.0.1" - checksum: fcb54f457497256964d619d5cccbd80a961916fca60df3fe0fa3e7f052715c2944c0ed5aefb4f9e047d127d44aa2d55555f3350cb42c6549e9e293fb30b41e7f - languageName: node - linkType: hard - -"lodash.flattendeep@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.flattendeep@npm:4.4.0" - checksum: 8521c919acac3d4bcf0aaf040c1ca9cb35d6c617e2d72e9b4d51c9a58b4366622cd6077441a18be626c3f7b28227502b3bf042903d447b056ee7e0b11d45c722 - languageName: node - linkType: hard - "lodash.get@npm:^4.4.2": version: 4.4.2 resolution: "lodash.get@npm:4.4.2" @@ -26593,7 +26369,7 @@ __metadata: languageName: node linkType: hard -"lodash.isequal@npm:^4.0.0, lodash.isequal@npm:^4.5.0": +"lodash.isequal@npm:^4.0.0": version: 4.5.0 resolution: "lodash.isequal@npm:4.5.0" checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644 @@ -28203,13 +27979,6 @@ __metadata: languageName: node linkType: hard -"moo@npm:^0.5.0": - version: 0.5.1 - resolution: "moo@npm:0.5.1" - checksum: 2d8c013f1f9aad8e5c7a9d4a03dbb4eecd91b9fe5e9446fbc7561fd38d4d161c742434acff385722542fe7b360fce9c586da62442379e62e4158ad49c7e1a6b7 - languageName: node - linkType: hard - "mousetrap-global-bind@npm:1.1.0": version: 1.1.0 resolution: "mousetrap-global-bind@npm:1.1.0" @@ -28434,23 +28203,6 @@ __metadata: languageName: node linkType: hard -"nearley@npm:^2.7.10": - version: 2.20.1 - resolution: "nearley@npm:2.20.1" - dependencies: - commander: ^2.19.0 - moo: ^0.5.0 - railroad-diagrams: ^1.0.0 - randexp: 0.4.6 - bin: - nearley-railroad: bin/nearley-railroad.js - nearley-test: bin/nearley-test.js - nearley-unparse: bin/nearley-unparse.js - nearleyc: bin/nearleyc.js - checksum: 42c2c330c13c7991b48221c5df00f4352c2f8851636ae4d1f8ca3c8e193fc1b7668c78011d1cad88cca4c1c4dc087425420629c19cc286d7598ec15533aaef26 - languageName: node - linkType: hard - "needle@npm:^2.5.2": version: 2.9.1 resolution: "needle@npm:2.9.1" @@ -29068,7 +28820,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.11.0, object-inspect@npm:^1.7.0, object-inspect@npm:^1.9.0": +"object-inspect@npm:^1.11.0, object-inspect@npm:^1.9.0": version: 1.11.0 resolution: "object-inspect@npm:1.11.0" checksum: 8c64f89ce3a7b96b6925879ad5f6af71d498abc217e136660efecd97452991216f375a7eb47cb1cb50643df939bf0c7cc391567b7abc6a924d04679705e58e27 @@ -29089,7 +28841,7 @@ __metadata: languageName: node linkType: hard -"object-is@npm:^1.0.1, object-is@npm:^1.0.2, object-is@npm:^1.1.2, object-is@npm:^1.1.5": +"object-is@npm:^1.0.1, object-is@npm:^1.1.5": version: 1.1.5 resolution: "object-is@npm:1.1.5" dependencies: @@ -29150,7 +28902,7 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.1, object.entries@npm:^1.1.5": +"object.entries@npm:^1.1.5": version: 1.1.5 resolution: "object.entries@npm:1.1.5" dependencies: @@ -29161,7 +28913,7 @@ __metadata: languageName: node linkType: hard -"object.fromentries@npm:^2.0.0, object.fromentries@npm:^2.0.0 || ^1.0.0, object.fromentries@npm:^2.0.5": +"object.fromentries@npm:^2.0.0 || ^1.0.0, object.fromentries@npm:^2.0.5": version: 2.0.5 resolution: "object.fromentries@npm:2.0.5" dependencies: @@ -29235,7 +28987,7 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.1, object.values@npm:^1.1.5": +"object.values@npm:^1.1.5": version: 1.1.5 resolution: "object.values@npm:1.1.5" dependencies: @@ -29842,15 +29594,6 @@ __metadata: languageName: node linkType: hard -"parse5-htmlparser2-tree-adapter@npm:^6.0.1": - version: 6.0.1 - resolution: "parse5-htmlparser2-tree-adapter@npm:6.0.1" - dependencies: - parse5: ^6.0.1 - checksum: 1848378b355d027915645c13f13f982e60502d201f53bc2067a508bf2dba4aac08219fc781dcd160167f5f50f0c73f58d20fa4fb3d90ee46762c20234fa90a6d - languageName: node - linkType: hard - "parse5-htmlparser2-tree-adapter@npm:^7.0.0": version: 7.0.0 resolution: "parse5-htmlparser2-tree-adapter@npm:7.0.0" @@ -31604,7 +31347,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:15.x, prop-types@npm:^15.0.0, prop-types@npm:^15.5.10, prop-types@npm:^15.5.4, prop-types@npm:^15.5.7, prop-types@npm:^15.5.8, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.0, prop-types@npm:^15.7.2": +"prop-types@npm:15.x, prop-types@npm:^15.0.0, prop-types@npm:^15.5.10, prop-types@npm:^15.5.4, prop-types@npm:^15.5.7, prop-types@npm:^15.5.8, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2": version: 15.7.2 resolution: "prop-types@npm:15.7.2" dependencies: @@ -31871,13 +31614,6 @@ __metadata: languageName: node linkType: hard -"railroad-diagrams@npm:^1.0.0": - version: 1.0.0 - resolution: "railroad-diagrams@npm:1.0.0" - checksum: 9e312af352b5ed89c2118edc0c06cef2cc039681817f65266719606e4e91ff6ae5374c707cc9033fe29a82c2703edf3c63471664f97f0167c85daf6f93496319 - languageName: node - linkType: hard - "ramda@npm:^0.28.0": version: 0.28.0 resolution: "ramda@npm:0.28.0" @@ -31885,16 +31621,6 @@ __metadata: languageName: node linkType: hard -"randexp@npm:0.4.6": - version: 0.4.6 - resolution: "randexp@npm:0.4.6" - dependencies: - discontinuous-range: 1.0.0 - ret: ~0.1.10 - checksum: 3c0d440a3f89d6d36844aa4dd57b5cdb0cab938a41956a16da743d3a3578ab32538fc41c16cc0984b6938f2ae4cbc0216967e9829e52191f70e32690d8e3445d - languageName: node - linkType: hard - "randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -32756,7 +32482,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:17.0.2, react-is@npm:^16.12.0 || ^17.0.0, react-is@npm:^17.0.0, react-is@npm:^17.0.1, react-is@npm:^17.0.2": +"react-is@npm:17.0.2, react-is@npm:^16.12.0 || ^17.0.0, react-is@npm:^17.0.1, react-is@npm:^17.0.2": version: 17.0.2 resolution: "react-is@npm:17.0.2" checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 @@ -33066,7 +32792,7 @@ __metadata: languageName: node linkType: hard -"react-test-renderer@npm:17.0.2, react-test-renderer@npm:^17.0.0": +"react-test-renderer@npm:17.0.2": version: 17.0.2 resolution: "react-test-renderer@npm:17.0.2" dependencies: @@ -34291,16 +34017,6 @@ __metadata: languageName: node linkType: hard -"rst-selector-parser@npm:^2.2.3": - version: 2.2.3 - resolution: "rst-selector-parser@npm:2.2.3" - dependencies: - lodash.flattendeep: ^4.4.0 - nearley: ^2.7.10 - checksum: fbfb2f6a7d4c9b3e013ef555ac06e5dba444e0d37dc959b94c507b6c34093ef10fe98141338d9cac58e5ae0f9453a5ef7f85af3d5e6386b237c1b3552debe4a0 - languageName: node - linkType: hard - "rst2html@github:thoward/rst2html#990cb89f2a300cdd9151790be377c4c0840df809": version: 1.0.4 resolution: "rst2html@https://github.com/thoward/rst2html.git#commit=990cb89f2a300cdd9151790be377c4c0840df809" @@ -36018,17 +35734,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.1": - version: 1.2.5 - resolution: "string.prototype.trim@npm:1.2.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 - checksum: d9f748ffca2a3ce722c421f7c2993b6490ec0cf19d9cb0904598c744e9367e54a3f13c7b99c8c0966c8a76484bd656a60281daa5d0534cc222cd72193fd63034 - languageName: node - linkType: hard - "string.prototype.trimend@npm:^1.0.4": version: 1.0.4 resolution: "string.prototype.trimend@npm:1.0.4" @@ -37411,7 +37116,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1": +"tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1": version: 2.3.1 resolution: "tslib@npm:2.3.1" checksum: de17a98d4614481f7fcb5cd53ffc1aaf8654313be0291e1bfaee4b4bb31a20494b7d218ff2e15017883e8ea9626599b3b0e0229c18383ba9dce89da2adf15cb9