diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 38bc5cdb..f2c7b65a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v3 with: fetch-depth: 0 - - uses: nrwl/nx-set-shas@v2 + - uses: nrwl/nx-set-shas@v3 - uses: pnpm/action-setup@v2 - uses: actions/setup-node@v3 with: @@ -25,10 +25,10 @@ jobs: - name: Check formatting run: pnpm run format:check - name: Build - run: pnpm exec nx affected --target=build --parallel=3 + run: pnpm exec nx affected --target=build --parallel=1 - name: Lint - run: pnpm exec nx affected --target=lint --parallel=3 + run: pnpm exec nx affected --target=lint --parallel=1 - name: Test uses: GabrielBB/xvfb-action@v1 with: - run: pnpm exec nx affected --target=test --parallel=3 + run: pnpm exec nx affected --target=test --parallel=1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b3a4ea15..70ae909c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,6 +5,8 @@ on: branches: - main +permissions: write-all + jobs: release: name: Release @@ -36,3 +38,21 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Archive Chrome Extension + uses: actions/upload-artifact@v3 + with: + name: chrome + path: extension/chrome/dist + + - name: Archive Edge Extension + uses: actions/upload-artifact@v3 + with: + name: edge + path: extension/edge/dist + + - name: Archive Firefox Extension + uses: actions/upload-artifact@v3 + with: + name: firefox + path: extension/firefox/dist diff --git a/extension/.eslintignore b/extension/.eslintignore index 85ffff06..d8c3bcd8 100644 --- a/extension/.eslintignore +++ b/extension/.eslintignore @@ -1,7 +1,3 @@ -node_modules -build -dev -webpack/replace -examples -npm-package -_book +node_modules +dist +examples diff --git a/extension/.gitignore b/extension/.gitignore index bbe0a464..f06235c4 100644 --- a/extension/.gitignore +++ b/extension/.gitignore @@ -1,9 +1,2 @@ node_modules -npm-debug.log -.DS_Store -.idea/ -dist/ -build/ -dev/ -tmp/ -_book +dist diff --git a/extension/README.md b/extension/README.md index 5c8dc144..2e3cd99c 100644 --- a/extension/README.md +++ b/extension/README.md @@ -57,7 +57,7 @@ const composeEnhancers = compose; ``` -> For TypeScript use [`redux-devtools-extension` npm package](#13-use-redux-devtools-extension-package-from-npm), which contains all the definitions, or just use `(window as any)` (see [Recipes](/docs/Recipes.md#using-in-a-typescript-project) for an example). +> For TypeScript use [`redux-devtools-extension` npm package](#13-use-redux-devtoolsextension-package-from-npm), which contains all the definitions, or just use `(window as any)` (see [Recipes](/docs/Recipes.md#using-in-a-typescript-project) for an example). ```js const composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; diff --git a/extension/src/browser/extension/manifest.json b/extension/chrome/manifest.json similarity index 98% rename from extension/src/browser/extension/manifest.json rename to extension/chrome/manifest.json index 449267a6..e37d37da 100644 --- a/extension/src/browser/extension/manifest.json +++ b/extension/chrome/manifest.json @@ -1,7 +1,6 @@ { "version": "3.0.11", "name": "Redux DevTools", - "short_name": "Redux DevTools", "description": "Redux DevTools for debugging application's state changes.", "homepage_url": "https://github.com/reduxjs/redux-devtools", "manifest_version": 2, diff --git a/extension/docs/Troubleshooting.md b/extension/docs/Troubleshooting.md index e3cf226f..d4b8591e 100644 --- a/extension/docs/Troubleshooting.md +++ b/extension/docs/Troubleshooting.md @@ -16,6 +16,8 @@ If you develop on your local filesystem, make sure to allow Redux DevTools acces Most likely you mutate the state. Check it by [adding `redux-immutable-state-invariant` middleware](https://github.com/zalmoxisus/redux-devtools-extension/blob/master/examples/counter/store/configureStore.js#L3). +Another cause could be that you are creating multiple stores, which means that the devtools get attached to one but the application uses another. See [https://github.com/reduxjs/redux-toolkit/issues/2753](this issue). + ### @@INIT or REPLACE action resets the state of the app or last actions RE-APPLIED `@@redux/REPLACE` (or `@@INIT`) is used internally when the application is hot reloaded. When you use `store.replaceReducer` the effect will be the same as for hot-reloading, where the extension is recomputing all the history again. To avoid that set [`shouldHotReload`](/docs/API/Arguments.md#shouldhotreload) parameter to `false`. diff --git a/extension/edge/manifest.json b/extension/edge/manifest.json new file mode 100644 index 00000000..4ef91ee1 --- /dev/null +++ b/extension/edge/manifest.json @@ -0,0 +1,67 @@ +{ + "version": "3.0.11", + "name": "Redux DevTools", + "description": "Redux DevTools for debugging application's state changes.", + "homepage_url": "https://github.com/reduxjs/redux-devtools", + "manifest_version": 2, + "page_action": { + "default_icon": "img/logo/gray.png", + "default_title": "Redux DevTools", + "default_popup": "window.html#popup" + }, + "commands": { + "devtools-left": { + "description": "DevTools window to left" + }, + "devtools-right": { + "description": "DevTools window to right" + }, + "devtools-bottom": { + "description": "DevTools window to bottom" + }, + "devtools-remote": { + "description": "Remote DevTools" + }, + "_execute_page_action": { + "suggested_key": { + "default": "Ctrl+Shift+E" + } + } + }, + "icons": { + "16": "img/logo/16x16.png", + "48": "img/logo/48x48.png", + "128": "img/logo/128x128.png" + }, + "options_ui": { + "page": "options.html", + "chrome_style": true + }, + "background": { + "scripts": ["background.bundle.js"], + "persistent": false + }, + "content_scripts": [ + { + "matches": [""], + "exclude_globs": ["https://www.google*"], + "js": ["content.bundle.js", "pagewrap.bundle.js"], + "run_at": "document_start", + "all_frames": true + } + ], + "devtools_page": "devtools.html", + "web_accessible_resources": ["page.bundle.js"], + "externally_connectable": { + "ids": ["*"] + }, + "permissions": [ + "notifications", + "contextMenus", + "storage", + "file:///*", + "http://*/*", + "https://*/*" + ], + "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'; style-src * 'unsafe-inline'; img-src 'self' data:;" +} diff --git a/extension/src/browser/firefox/manifest.json b/extension/firefox/manifest.json similarity index 100% rename from extension/src/browser/firefox/manifest.json rename to extension/firefox/manifest.json diff --git a/extension/jest.config.js b/extension/jest.config.js index b70a7b3e..924b5865 100644 --- a/extension/jest.config.js +++ b/extension/jest.config.js @@ -5,4 +5,5 @@ module.exports = { moduleNameMapper: { '\\.css$': '/test/__mocks__/styleMock.ts', }, + resolver: '/jestResolver.js', }; diff --git a/extension/jestResolver.js b/extension/jestResolver.js new file mode 100644 index 00000000..8e066aa4 --- /dev/null +++ b/extension/jestResolver.js @@ -0,0 +1,15 @@ +module.exports = (path, options) => { + return options.defaultResolver(path, { + ...options, + packageFilter: (pkg) => { + if (pkg.name === 'nanoid') { + pkg.exports['.'].browser = pkg.exports['.'].require; + } + if (pkg.name === 'uuid' && pkg.version.startsWith('8.')) { + delete pkg.exports; + delete pkg.module; + } + return pkg; + }, + }); +}; diff --git a/extension/package.json b/extension/package.json index 75a2f782..dd6427e1 100644 --- a/extension/package.json +++ b/extension/package.json @@ -11,20 +11,18 @@ "url": "https://github.com/reduxjs/redux-devtools.git" }, "scripts": { - "start": "webpack --config webpack/dev.config.babel.js", - "build": "pnpm run build:extension && pnpm run build:firefox", - "build:extension": "rimraf build/extension && webpack --config webpack/wrap.config.babel.js && webpack --config webpack/prod.config.babel.js", - "build:firefox": "webpack --config webpack/prod.firefox.config.babel.js", + "start": "webpack --env development --watch", + "build": "pnpm run build:extension && pnpm run build:chrome && pnpm run build:edge && pnpm run build:firefox", + "build:extension": "webpack --env production && webpack --config wrap.webpack.config.js", + "build:chrome": "cpy . ../chrome/dist --cwd dist && cpy manifest.json dist --cwd chrome", + "build:edge": "cpy . ../edge/dist --cwd dist && cpy manifest.json dist --cwd edge", + "build:firefox": "cpy . ../firefox/dist --cwd dist && cpy manifest.json dist --cwd firefox", "build:examples": "babel-node examples/buildAll.js", - "precompress:extension": "pnpm run lint && pnpm run test:app && pnpm run build:extension && pnpm run test:chrome && pnpm run test:electron", - "precompress:firefox": "pnpm run lint && pnpm run build:firefox && pnpm run test:app", - "compress:extension": "bestzip build/extension.zip build/extension", - "compress:firefox": "bestzip build/extension.zip build/extension", - "clean": "rimraf build && rimraf dev", + "clean": "rimraf dist && rimraf chrome/dist && rimraf edge/dist && rimraf firefox/dist", "test:app": "cross-env BABEL_ENV=test jest test/app", "test:chrome": "jest test/chrome", "test:electron": "pnpm run build:test:electron:fixture && jest test/electron", - "test": "pnpm run test:app && pnpm run build:extension && pnpm run test:chrome && pnpm run test:electron", + "test": "pnpm run test:app && pnpm run test:chrome && pnpm run test:electron", "build:test:electron:fixture": "webpack --config test/electron/fixture/webpack.config.js", "type-check": "tsc --noEmit" }, @@ -43,56 +41,56 @@ "lodash": "^4.17.21", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-icons": "^4.4.0", + "react-icons": "^4.6.0", "react-is": "^18.2.0", "react-json-tree": "^0.17.0", - "react-redux": "^8.0.2", + "react-redux": "^8.0.5", "redux": "^4.2.0", "redux-persist": "^6.0.0", - "styled-components": "^5.3.5" + "styled-components": "^5.3.6" }, "devDependencies": { - "@babel/core": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/core": "^7.20.2", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@babel/register": "^7.18.9", "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "^13.3.0", - "@types/chrome": "^0.0.193", - "@types/lodash": "^4.14.182", - "@types/react": "^18.0.17", - "@types/react-dom": "^18.0.6", + "@testing-library/react": "^13.4.0", + "@types/chrome": "^0.0.203", + "@types/lodash": "^4.14.190", + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", "@types/styled-components": "^5.1.26", - "babel-loader": "^8.2.5", - "bestzip": "^2.2.1", - "chromedriver": "^104.0.0", + "babel-loader": "^9.1.0", + "chromedriver": "^106.0.1", "copy-webpack-plugin": "^11.0.0", + "cpy-cli": "^4.2.0", "cross-env": "^7.0.3", - "css-loader": "^6.7.1", - "electron": "^20.0.2", - "eslint": "^8.21.0", + "css-loader": "^6.7.2", + "electron": "^21.3.1", + "eslint": "^8.28.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin": "^7.2.13", "immutable": "^4.1.0", - "jest": "^27.5.1", - "path-browserify": "^1.0.1", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", "pug-html-loader": "^1.1.5", "raw-loader": "^4.0.2", "react-transform-catch-errors": "^1.0.2", "react-transform-hmr": "^1.0.4", "rimraf": "^3.0.2", - "selenium-webdriver": "^4.4.0", + "selenium-webdriver": "^4.6.1", "sinon-chrome": "^3.0.1", "style-loader": "^3.3.1", - "ts-jest": "^27.1.5", - "typescript": "~4.7.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0" + "ts-jest": "^29.0.3", + "typescript": "~4.9.3", + "webpack": "^5.75.0", + "webpack-cli": "^5.0.0" } } diff --git a/extension/src/app/containers/Actions.tsx b/extension/src/app/Actions.tsx similarity index 96% rename from extension/src/app/containers/Actions.tsx rename to extension/src/app/Actions.tsx index c821afe4..bf1c6f39 100644 --- a/extension/src/app/containers/Actions.tsx +++ b/extension/src/app/Actions.tsx @@ -19,8 +19,8 @@ import { } from '@redux-devtools/app'; import { GoRadioTower } from 'react-icons/go'; import { MdBorderBottom, MdBorderLeft, MdBorderRight } from 'react-icons/md'; -import { Position } from '../api/openWindow'; -import { SingleMessage } from '../middlewares/api'; +import type { Position } from '../pageScript/api/openWindow'; +import type { SingleMessage } from '../background/store/apiMiddleware'; type StateProps = ReturnType; type DispatchProps = ResolveThunks; diff --git a/extension/src/app/containers/App.tsx b/extension/src/app/App.tsx similarity index 100% rename from extension/src/app/containers/App.tsx rename to extension/src/app/App.tsx diff --git a/extension/src/app/stores/createStore.ts b/extension/src/app/stores/createStore.ts deleted file mode 100644 index f91dd548..00000000 --- a/extension/src/app/stores/createStore.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { - Action, - createStore, - PreloadedState, - Reducer, - StoreEnhancer, -} from 'redux'; - -export default function configureStore>( - reducer: Reducer, - initialState: PreloadedState | undefined, - enhance: () => StoreEnhancer -) { - return createStore(reducer, initialState, enhance()); -} diff --git a/extension/src/browser/extension/background/contextMenus.ts b/extension/src/background/contextMenus.ts similarity index 100% rename from extension/src/browser/extension/background/contextMenus.ts rename to extension/src/background/contextMenus.ts diff --git a/extension/src/browser/extension/background/index.ts b/extension/src/background/index.ts similarity index 86% rename from extension/src/browser/extension/background/index.ts rename to extension/src/background/index.ts index 165b1af0..c7236e2e 100644 --- a/extension/src/browser/extension/background/index.ts +++ b/extension/src/background/index.ts @@ -1,11 +1,9 @@ import { Store } from 'redux'; -import configureStore, { - BackgroundAction, -} from '../../../app/stores/backgroundStore'; +import configureStore, { BackgroundAction } from './store/backgroundStore'; import openDevToolsWindow, { DevToolsPosition } from './openWindow'; import { createMenu, removeMenu } from './contextMenus'; import syncOptions from '../options/syncOptions'; -import { BackgroundState } from '../../../app/reducers/background'; +import { BackgroundState } from './store/backgroundReducer'; declare global { interface Window { diff --git a/extension/src/browser/extension/background/logging.ts b/extension/src/background/logging.ts similarity index 100% rename from extension/src/browser/extension/background/logging.ts rename to extension/src/background/logging.ts diff --git a/extension/src/browser/extension/background/openWindow.ts b/extension/src/background/openWindow.ts similarity index 100% rename from extension/src/browser/extension/background/openWindow.ts rename to extension/src/background/openWindow.ts diff --git a/extension/src/app/middlewares/api.ts b/extension/src/background/store/apiMiddleware.ts similarity index 96% rename from extension/src/app/middlewares/api.ts rename to extension/src/background/store/apiMiddleware.ts index c8cb8937..fb132e1d 100644 --- a/extension/src/app/middlewares/api.ts +++ b/extension/src/background/store/apiMiddleware.ts @@ -15,28 +15,23 @@ import syncOptions, { Options, OptionsMessage, SyncOptions, -} from '../../browser/extension/options/syncOptions'; -import openDevToolsWindow, { - DevToolsPosition, -} from '../../browser/extension/background/openWindow'; -import { getReport } from '../../browser/extension/background/logging'; +} from '../../options/syncOptions'; +import openDevToolsWindow, { DevToolsPosition } from '../openWindow'; +import { getReport } from '../logging'; import { Action, Dispatch, MiddlewareAPI } from 'redux'; -import { +import type { ContentScriptToBackgroundMessage, SplitMessage, -} from '../../browser/extension/inject/contentScript'; -import { +} from '../../contentScript'; +import type { ErrorMessage, PageScriptToContentScriptMessageForwardedToMonitors, PageScriptToContentScriptMessageWithoutDisconnectOrInitInstance, -} from '../api'; +} from '../../pageScript/api'; import { LiftedState } from '@redux-devtools/instrument'; -import { - BackgroundAction, - LiftedActionAction, -} from '../stores/backgroundStore'; -import { Position } from '../api/openWindow'; -import { BackgroundState } from '../reducers/background'; +import type { BackgroundAction, LiftedActionAction } from './backgroundStore'; +import type { Position } from '../../pageScript/api/openWindow'; +import type { BackgroundState } from './backgroundReducer'; interface TabMessageBase { readonly type: string; diff --git a/extension/src/app/reducers/background/index.ts b/extension/src/background/store/backgroundReducer.ts similarity index 84% rename from extension/src/app/reducers/background/index.ts rename to extension/src/background/store/backgroundReducer.ts index bea610c0..01ca5a02 100644 --- a/extension/src/app/reducers/background/index.ts +++ b/extension/src/background/store/backgroundReducer.ts @@ -1,6 +1,6 @@ import { combineReducers, Reducer } from 'redux'; import { instances, InstancesState } from '@redux-devtools/app'; -import { BackgroundAction } from '../../stores/backgroundStore'; +import type { BackgroundAction } from './backgroundStore'; export interface BackgroundState { readonly instances: InstancesState; diff --git a/extension/src/app/stores/backgroundStore.ts b/extension/src/background/store/backgroundStore.ts similarity index 93% rename from extension/src/app/stores/backgroundStore.ts rename to extension/src/background/store/backgroundStore.ts index 55eed9e4..da72bdd4 100644 --- a/extension/src/app/stores/backgroundStore.ts +++ b/extension/src/background/store/backgroundStore.ts @@ -5,8 +5,8 @@ import { LIFTED_ACTION, StoreActionWithoutLiftedAction, } from '@redux-devtools/app'; -import rootReducer, { BackgroundState } from '../reducers/background'; -import api, { CONNECTED, DISCONNECTED } from '../middlewares/api'; +import rootReducer, { BackgroundState } from './backgroundReducer'; +import api, { CONNECTED, DISCONNECTED } from './apiMiddleware'; interface LiftedActionActionBase { action?: DispatchAction | string | CustomAction; diff --git a/extension/src/browser/extension/chromeAPIMock.ts b/extension/src/chromeApiMock.ts similarity index 100% rename from extension/src/browser/extension/chromeAPIMock.ts rename to extension/src/chromeApiMock.ts diff --git a/extension/src/browser/extension/inject/contentScript.ts b/extension/src/contentScript/index.ts similarity index 98% rename from extension/src/browser/extension/inject/contentScript.ts rename to extension/src/contentScript/index.ts index 61c49e85..2c65ee14 100644 --- a/extension/src/browser/extension/inject/contentScript.ts +++ b/extension/src/contentScript/index.ts @@ -3,12 +3,12 @@ import { getOptionsFromBg, isAllowed, } from '../options/syncOptions'; -import { TabMessage } from '../../../app/middlewares/api'; -import { +import type { TabMessage } from '../background/store/apiMiddleware'; +import type { PageScriptToContentScriptMessage, PageScriptToContentScriptMessageWithoutDisconnect, PageScriptToContentScriptMessageWithoutDisconnectOrInitInstance, -} from '../../../app/api'; +} from '../pageScript/api'; import { Action } from 'redux'; import { CustomAction, diff --git a/extension/src/browser/views/devpanel.pug b/extension/src/devpanel/devpanel.pug similarity index 82% rename from extension/src/browser/views/devpanel.pug rename to extension/src/devpanel/devpanel.pug index ee41747c..4aa1268d 100644 --- a/extension/src/browser/views/devpanel.pug +++ b/extension/src/devpanel/devpanel.pug @@ -1,15 +1,15 @@ -doctype html - -html - head - meta(charset='UTF-8') - title Redux DevTools - include ./includes/style.pug - style. - body { - min-height: 100px; - } - - body - #root - script(src='/devpanel.bundle.js') +doctype html + +html + head + meta(charset='UTF-8') + title Redux DevTools + include ../style.pug + style. + body { + min-height: 100px; + } + + body + #root + script(src='/devpanel.bundle.js') diff --git a/extension/src/browser/extension/devpanel/index.tsx b/extension/src/devpanel/index.tsx similarity index 91% rename from extension/src/browser/extension/devpanel/index.tsx rename to extension/src/devpanel/index.tsx index af4fbfc3..aef0e752 100644 --- a/extension/src/browser/extension/devpanel/index.tsx +++ b/extension/src/devpanel/index.tsx @@ -3,13 +3,13 @@ import { createRoot, Root } from 'react-dom/client'; import { Provider } from 'react-redux'; import { Persistor } from 'redux-persist'; import { REMOVE_INSTANCE, StoreAction } from '@redux-devtools/app'; -import App from '../../../app/containers/App'; -import configureStore from '../../../app/stores/panelStore'; +import App from '../app/App'; +import configureStore from './store/panelStore'; -import '../../views/devpanel.pug'; +import './devpanel.pug'; import { Action, Store } from 'redux'; -import { PanelMessage } from '../../../app/middlewares/api'; -import { StoreStateWithoutSocket } from '../../../app/reducers/panel'; +import type { PanelMessage } from '../background/store/apiMiddleware'; +import type { StoreStateWithoutSocket } from './store/panelReducer'; import { PersistGate } from 'redux-persist/integration/react'; const position = location.hash; diff --git a/extension/src/app/reducers/panel/index.ts b/extension/src/devpanel/store/panelReducer.ts similarity index 100% rename from extension/src/app/reducers/panel/index.ts rename to extension/src/devpanel/store/panelReducer.ts diff --git a/extension/src/app/stores/panelStore.ts b/extension/src/devpanel/store/panelStore.ts similarity index 86% rename from extension/src/app/stores/panelStore.ts rename to extension/src/devpanel/store/panelStore.ts index 873e7284..f8b8e622 100644 --- a/extension/src/app/stores/panelStore.ts +++ b/extension/src/devpanel/store/panelStore.ts @@ -2,8 +2,8 @@ import { createStore, applyMiddleware, Reducer } from 'redux'; import localForage from 'localforage'; import { persistReducer, persistStore } from 'redux-persist'; import { exportStateMiddleware, StoreAction } from '@redux-devtools/app'; -import panelDispatcher from '../middlewares/panelSync'; -import rootReducer, { StoreStateWithoutSocket } from '../reducers/panel'; +import panelDispatcher from './panelSyncMiddleware'; +import rootReducer, { StoreStateWithoutSocket } from './panelReducer'; const persistConfig = { key: 'redux-devtools', diff --git a/extension/src/app/middlewares/panelSync.ts b/extension/src/devpanel/store/panelSyncMiddleware.ts similarity index 100% rename from extension/src/app/middlewares/panelSync.ts rename to extension/src/devpanel/store/panelSyncMiddleware.ts diff --git a/extension/src/browser/views/devtools.pug b/extension/src/devtools/devtools.pug similarity index 93% rename from extension/src/browser/views/devtools.pug rename to extension/src/devtools/devtools.pug index 7a361b53..c9f56539 100644 --- a/extension/src/browser/views/devtools.pug +++ b/extension/src/devtools/devtools.pug @@ -1,10 +1,10 @@ -doctype html - -html - head - meta(charset='UTF-8') - title Redux DevTools - - body - #root - script(src='/devtools.bundle.js') +doctype html + +html + head + meta(charset='UTF-8') + title Redux DevTools + + body + #root + script(src='/devtools.bundle.js') diff --git a/extension/src/browser/extension/devtools/index.ts b/extension/src/devtools/index.ts similarity index 92% rename from extension/src/browser/extension/devtools/index.ts rename to extension/src/devtools/index.ts index de6abaaa..cdd376b6 100644 --- a/extension/src/browser/extension/devtools/index.ts +++ b/extension/src/devtools/index.ts @@ -1,4 +1,4 @@ -import '../../views/devtools.pug'; +import './devtools.pug'; function createPanel(url: string) { chrome.devtools.panels.create( diff --git a/extension/src/browser/extension/options/AllowToRunGroup.tsx b/extension/src/options/AllowToRunGroup.tsx similarity index 100% rename from extension/src/browser/extension/options/AllowToRunGroup.tsx rename to extension/src/options/AllowToRunGroup.tsx diff --git a/extension/src/browser/extension/options/ContextMenuGroup.tsx b/extension/src/options/ContextMenuGroup.tsx similarity index 100% rename from extension/src/browser/extension/options/ContextMenuGroup.tsx rename to extension/src/options/ContextMenuGroup.tsx diff --git a/extension/src/browser/extension/options/EditorGroup.tsx b/extension/src/options/EditorGroup.tsx similarity index 97% rename from extension/src/browser/extension/options/EditorGroup.tsx rename to extension/src/options/EditorGroup.tsx index 130ef824..9b21097e 100644 --- a/extension/src/browser/extension/options/EditorGroup.tsx +++ b/extension/src/options/EditorGroup.tsx @@ -23,7 +23,7 @@ export default ({ options, saveOption }: OptionsProps) => { diff --git a/extension/src/browser/extension/options/FilterGroup.tsx b/extension/src/options/FilterGroup.tsx similarity index 97% rename from extension/src/browser/extension/options/FilterGroup.tsx rename to extension/src/options/FilterGroup.tsx index 56c050f1..792ca9f4 100644 --- a/extension/src/browser/extension/options/FilterGroup.tsx +++ b/extension/src/options/FilterGroup.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { FilterState } from '../../../app/api/filters'; +import { FilterState } from '../pageScript/api/filters'; import { OptionsProps } from './Options'; export default ({ options, saveOption }: OptionsProps) => { diff --git a/extension/src/browser/extension/options/MiscellaneousGroup.tsx b/extension/src/options/MiscellaneousGroup.tsx similarity index 90% rename from extension/src/browser/extension/options/MiscellaneousGroup.tsx rename to extension/src/options/MiscellaneousGroup.tsx index 1c3c9a05..f1301d40 100644 --- a/extension/src/browser/extension/options/MiscellaneousGroup.tsx +++ b/extension/src/options/MiscellaneousGroup.tsx @@ -2,10 +2,6 @@ import React from 'react'; import { OptionsProps } from './Options'; export default ({ options, saveOption }: OptionsProps) => { - const browserName = navigator.userAgent.includes('Firefox') - ? 'Firefox' - : 'Chrome'; - return (
Miscellaneous @@ -46,7 +42,7 @@ export default ({ options, saveOption }: OptionsProps) => { Show errors
- Show the {browserName} notifications when errors occur in the app + Show the browser notifications when errors occur in the app
diff --git a/extension/src/browser/extension/options/Options.tsx b/extension/src/options/Options.tsx similarity index 100% rename from extension/src/browser/extension/options/Options.tsx rename to extension/src/options/Options.tsx diff --git a/extension/src/browser/extension/options/index.tsx b/extension/src/options/index.tsx similarity index 95% rename from extension/src/browser/extension/options/index.tsx rename to extension/src/options/index.tsx index b344b86b..181fa1b1 100644 --- a/extension/src/browser/extension/options/index.tsx +++ b/extension/src/options/index.tsx @@ -3,7 +3,7 @@ import { createRoot } from 'react-dom/client'; import OptionsComponent from './Options'; import { Options } from './syncOptions'; -import '../../views/options.pug'; +import './options.pug'; chrome.runtime.getBackgroundPage((background) => { const syncOptions = background!.syncOptions; diff --git a/extension/src/browser/views/options.pug b/extension/src/options/options.pug similarity index 95% rename from extension/src/browser/views/options.pug rename to extension/src/options/options.pug index 6e2dda01..48192b6a 100644 --- a/extension/src/browser/views/options.pug +++ b/extension/src/options/options.pug @@ -1,93 +1,93 @@ -doctype html - -html - head - meta(charset='UTF-8') - title Redux DevTools Options - style. - body { - padding: 2px; - min-width: 380px; - } - - .option-group { - /* Reset the default fieldset styles */ - margin: initial; - border: initial; - padding: initial; - } - - .option-group + .option-group { - margin-top: 30px; - } - - .option-group__title { - /* Reset the default legend styles */ - margin: initial; - padding: initial; - - margin-bottom: 8px; - font-weight: bold; - font-size: 30px; - } - - .option + .option { - margin-top: 5px; - } - - .option__textarea { - margin-top: 2px; - width: 300px; - min-height: 50px; - } - - .option__hint { - margin-top: 2px; - font-size: 10px; - } - - .option__textarea + .option__hint { - margin-top: -2px; - } - - /* Checkbox and radio styling */ - .option_type_checkbox .option__element, - .option_type_radio .option__element { - vertical-align: bottom; - } - - .option_type_checkbox .option__label, - .option_type_radio .option__label { - margin-left: 4px; - } - - .option_type_checkbox .option__textarea, - .option_type_checkbox .option__hint, - .option_type_radio .option__textarea, - .option_type_radio .option__hint { - margin-left: 20px; - } - - - /* Checkbox styling */ - .option_type_checkbox .option__element { - /* Checkboxes in Chrome are 2px narrower than radio buttons. - These margins align them. */ - margin-left: 1px; - /* ...margin-right is 2px instead of 1px - because both radios and checkboxes have initial margin-right of 1px */ - margin-right: 2px; - } - - /* Value-based styling */ - .option_value_max-age { - margin-left: 20px; - } - - .option_value_max-age .option__element { - width: 50px; - } - - body - #root - script(src='/options.bundle.js') +doctype html + +html + head + meta(charset='UTF-8') + title Redux DevTools Options + style. + body { + padding: 2px; + min-width: 380px; + } + + .option-group { + /* Reset the default fieldset styles */ + margin: initial; + border: initial; + padding: initial; + } + + .option-group + .option-group { + margin-top: 30px; + } + + .option-group__title { + /* Reset the default legend styles */ + margin: initial; + padding: initial; + + margin-bottom: 8px; + font-weight: bold; + font-size: 30px; + } + + .option + .option { + margin-top: 5px; + } + + .option__textarea { + margin-top: 2px; + width: 300px; + min-height: 50px; + } + + .option__hint { + margin-top: 2px; + font-size: 10px; + } + + .option__textarea + .option__hint { + margin-top: -2px; + } + + /* Checkbox and radio styling */ + .option_type_checkbox .option__element, + .option_type_radio .option__element { + vertical-align: bottom; + } + + .option_type_checkbox .option__label, + .option_type_radio .option__label { + margin-left: 4px; + } + + .option_type_checkbox .option__textarea, + .option_type_checkbox .option__hint, + .option_type_radio .option__textarea, + .option_type_radio .option__hint { + margin-left: 20px; + } + + + /* Checkbox styling */ + .option_type_checkbox .option__element { + /* Checkboxes in Chrome are 2px narrower than radio buttons. + These margins align them. */ + margin-left: 1px; + /* ...margin-right is 2px instead of 1px + because both radios and checkboxes have initial margin-right of 1px */ + margin-right: 2px; + } + + /* Value-based styling */ + .option_value_max-age { + margin-left: 20px; + } + + .option_value_max-age .option__element { + width: 50px; + } + + body + #root + script(src='/options.bundle.js') diff --git a/extension/src/browser/extension/options/syncOptions.ts b/extension/src/options/syncOptions.ts similarity index 98% rename from extension/src/browser/extension/options/syncOptions.ts rename to extension/src/options/syncOptions.ts index ede4b150..e523c598 100644 --- a/extension/src/browser/extension/options/syncOptions.ts +++ b/extension/src/options/syncOptions.ts @@ -1,4 +1,4 @@ -import { FilterState, FilterStateValue } from '../../../app/api/filters'; +import { FilterState, FilterStateValue } from '../pageScript/api/filters'; export interface Options { readonly useEditor: number; diff --git a/extension/src/app/service/Monitor.ts b/extension/src/pageScript/Monitor.ts similarity index 100% rename from extension/src/app/service/Monitor.ts rename to extension/src/pageScript/Monitor.ts diff --git a/extension/src/app/api/filters.ts b/extension/src/pageScript/api/filters.ts similarity index 100% rename from extension/src/app/api/filters.ts rename to extension/src/pageScript/api/filters.ts diff --git a/extension/src/app/api/generateInstanceId.ts b/extension/src/pageScript/api/generateInstanceId.ts similarity index 100% rename from extension/src/app/api/generateInstanceId.ts rename to extension/src/pageScript/api/generateInstanceId.ts diff --git a/extension/src/app/api/importState.ts b/extension/src/pageScript/api/importState.ts similarity index 95% rename from extension/src/app/api/importState.ts rename to extension/src/pageScript/api/importState.ts index 70bda05e..ae818149 100644 --- a/extension/src/app/api/importState.ts +++ b/extension/src/pageScript/api/importState.ts @@ -1,9 +1,6 @@ import jsan from 'jsan'; import { immutableSerialize } from '@redux-devtools/serialize'; -import { - Config, - SerializeWithImmutable, -} from '../../browser/extension/inject/pageScript'; +import type { Config, SerializeWithImmutable } from '../index'; import Immutable from 'immutable'; import { LiftedState } from '@redux-devtools/instrument'; import { Action } from 'redux'; diff --git a/extension/src/app/api/index.ts b/extension/src/pageScript/api/index.ts similarity index 99% rename from extension/src/app/api/index.ts rename to extension/src/pageScript/api/index.ts index e0e6c3a9..ed062fe9 100644 --- a/extension/src/app/api/index.ts +++ b/extension/src/pageScript/api/index.ts @@ -5,15 +5,15 @@ import { getActionsArray, getLocalFilter } from '@redux-devtools/utils'; import { isFiltered, PartialLiftedState } from './filters'; import importState from './importState'; import generateId from './generateInstanceId'; -import { Config } from '../../browser/extension/inject/pageScript'; +import type { Config } from '../index'; import { Action } from 'redux'; import { LiftedState, PerformAction } from '@redux-devtools/instrument'; import { LibConfig } from '@redux-devtools/app'; -import { +import type { ContentScriptToPageScriptMessage, ListenerMessage, -} from '../../browser/extension/inject/contentScript'; -import { Position } from './openWindow'; +} from '../../contentScript'; +import type { Position } from './openWindow'; const listeners: { [instanceId: string]: diff --git a/extension/src/app/api/notifyErrors.ts b/extension/src/pageScript/api/notifyErrors.ts similarity index 100% rename from extension/src/app/api/notifyErrors.ts rename to extension/src/pageScript/api/notifyErrors.ts diff --git a/extension/src/app/api/openWindow.ts b/extension/src/pageScript/api/openWindow.ts similarity index 86% rename from extension/src/app/api/openWindow.ts rename to extension/src/pageScript/api/openWindow.ts index 51f9d145..53704b58 100644 --- a/extension/src/app/api/openWindow.ts +++ b/extension/src/pageScript/api/openWindow.ts @@ -1,5 +1,5 @@ import { Action } from 'redux'; -import { PageScriptToContentScriptMessage } from './index'; +import type { PageScriptToContentScriptMessage } from './index'; export type Position = 'left' | 'right' | 'bottom' | 'panel' | 'remote'; diff --git a/extension/src/app/stores/enhancerStore.ts b/extension/src/pageScript/enhancerStore.ts similarity index 93% rename from extension/src/app/stores/enhancerStore.ts rename to extension/src/pageScript/enhancerStore.ts index 532cfccb..5961292f 100644 --- a/extension/src/app/stores/enhancerStore.ts +++ b/extension/src/pageScript/enhancerStore.ts @@ -1,7 +1,7 @@ import { Action, compose, Reducer, StoreEnhancerStoreCreator } from 'redux'; import { instrument } from '@redux-devtools/instrument'; import { persistState } from '@redux-devtools/core'; -import { ConfigWithExpandedMaxAge } from '../../browser/extension/inject/pageScript'; +import type { ConfigWithExpandedMaxAge } from './index'; export function getUrlParam(key: string) { const matches = window.location.href.match( diff --git a/extension/src/browser/extension/inject/pageScript.ts b/extension/src/pageScript/index.ts similarity index 96% rename from extension/src/browser/extension/inject/pageScript.ts rename to extension/src/pageScript/index.ts index a0d48399..4b6bfb35 100644 --- a/extension/src/browser/extension/inject/pageScript.ts +++ b/extension/src/pageScript/index.ts @@ -27,19 +27,19 @@ import { LibConfig, Features, } from '@redux-devtools/app'; -import configureStore, { getUrlParam } from '../../../app/stores/enhancerStore'; +import configureStore, { getUrlParam } from './enhancerStore'; import { isAllowed, Options } from '../options/syncOptions'; -import Monitor from '../../../app/service/Monitor'; +import Monitor from './Monitor'; import { noFiltersApplied, isFiltered, filterState, startingFrom, -} from '../../../app/api/filters'; -import notifyErrors from '../../../app/api/notifyErrors'; -import importState from '../../../app/api/importState'; -import openWindow, { Position } from '../../../app/api/openWindow'; -import generateId from '../../../app/api/generateInstanceId'; +} from './api/filters'; +import notifyErrors from './api/notifyErrors'; +import importState from './api/importState'; +import openWindow, { Position } from './api/openWindow'; +import generateId from './api/generateInstanceId'; import { toContentScript, sendMessage, @@ -51,8 +51,8 @@ import { Serialize, StructuralPerformAction, ConnectResponse, -} from '../../../app/api'; -import { ContentScriptToPageScriptMessage } from './contentScript'; +} from './api'; +import type { ContentScriptToPageScriptMessage } from '../contentScript'; type EnhancedStoreWithInitialDispatch< S, @@ -539,10 +539,14 @@ function __REDUX_DEVTOOLS_EXTENSION__>( return next(reducer_, initialState_); } - store = stores[instanceId] = configureStore(next, monitor.reducer, { - ...config, - maxAge: getMaxAge as any, - })(reducer_, initialState_) as any; + store = stores[instanceId] = configureStore( + next as StoreEnhancerStoreCreator, + monitor.reducer, + { + ...config, + maxAge: getMaxAge as any, + } + )(reducer_, initialState_) as any; if (isInIframe()) setTimeout(init, 3000); else init(); diff --git a/extension/src/browser/extension/inject/pageScriptWrap.ts b/extension/src/pageScriptWrap.ts similarity index 87% rename from extension/src/browser/extension/inject/pageScriptWrap.ts rename to extension/src/pageScriptWrap.ts index 3c7f5147..ae1da249 100644 --- a/extension/src/browser/extension/inject/pageScriptWrap.ts +++ b/extension/src/pageScriptWrap.ts @@ -2,7 +2,7 @@ let s = document.createElement('script'); s.type = 'text/javascript'; if (process.env.NODE_ENV === 'production') { - const { default: script } = require('raw-loader!tmp/page.bundle.js'); + const { default: script } = require('raw-loader!../dist/page.bundle.js'); s.appendChild(document.createTextNode(script)); (document.head || document.documentElement).appendChild(s); s.parentNode!.removeChild(s); diff --git a/extension/src/browser/extension/window/remote.tsx b/extension/src/remote/index.tsx similarity index 96% rename from extension/src/browser/extension/window/remote.tsx rename to extension/src/remote/index.tsx index f91c372a..af100aca 100644 --- a/extension/src/browser/extension/window/remote.tsx +++ b/extension/src/remote/index.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { createRoot } from 'react-dom/client'; import { Root } from '@redux-devtools/app'; -import '../../views/remote.pug'; +import './remote.pug'; chrome.storage.local.get( { diff --git a/extension/src/browser/views/remote.pug b/extension/src/remote/remote.pug similarity index 78% rename from extension/src/browser/views/remote.pug rename to extension/src/remote/remote.pug index c70bc7f5..259bd8f4 100644 --- a/extension/src/browser/views/remote.pug +++ b/extension/src/remote/remote.pug @@ -1,11 +1,11 @@ -doctype html - -html - head - meta(charset='UTF-8') - title RemoteDev - include ./includes/style.pug - - body - #root - script(src='/remote.bundle.js') +doctype html + +html + head + meta(charset='UTF-8') + title RemoteDev + include ../style.pug + + body + #root + script(src='/remote.bundle.js') diff --git a/extension/src/browser/views/includes/style.pug b/extension/src/style.pug similarity index 100% rename from extension/src/browser/views/includes/style.pug rename to extension/src/style.pug diff --git a/extension/src/browser/extension/window/index.tsx b/extension/src/window/index.tsx similarity index 84% rename from extension/src/browser/extension/window/index.tsx rename to extension/src/window/index.tsx index 41b72b08..c74e33a1 100644 --- a/extension/src/browser/extension/window/index.tsx +++ b/extension/src/window/index.tsx @@ -3,11 +3,11 @@ import { createRoot } from 'react-dom/client'; import { Provider } from 'react-redux'; import { PersistGate } from 'redux-persist/integration/react'; import { UPDATE_STATE } from '@redux-devtools/app'; -import App from '../../../app/containers/App'; -import configureStore from '../../../app/stores/windowStore'; -import { MonitorMessage } from '../../../app/middlewares/api'; +import App from '../app/App'; +import configureStore from './store/windowStore'; +import type { MonitorMessage } from '../background/store/apiMiddleware'; -import '../../views/window.pug'; +import './window.pug'; const position = location.hash; diff --git a/extension/src/app/middlewares/instanceSelector.ts b/extension/src/window/store/instanceSelectorMiddleware.ts similarity index 100% rename from extension/src/app/middlewares/instanceSelector.ts rename to extension/src/window/store/instanceSelectorMiddleware.ts diff --git a/extension/src/app/reducers/window/instances.ts b/extension/src/window/store/instancesReducer.ts similarity index 94% rename from extension/src/app/reducers/window/instances.ts rename to extension/src/window/store/instancesReducer.ts index 6ef0cad3..cc39478b 100644 --- a/extension/src/app/reducers/window/instances.ts +++ b/extension/src/window/store/instancesReducer.ts @@ -6,10 +6,10 @@ import { LIFTED_ACTION, SET_PERSIST, } from '@redux-devtools/app'; -import { +import type { ExpandedUpdateStateAction, WindowStoreAction, -} from '../../stores/windowStore'; +} from './windowStore'; export default function instances( state = instancesInitialState, diff --git a/extension/src/app/reducers/window/index.ts b/extension/src/window/store/windowReducer.ts similarity index 80% rename from extension/src/app/reducers/window/index.ts rename to extension/src/window/store/windowReducer.ts index 3ec4ddf3..9a14cd3b 100644 --- a/extension/src/app/reducers/window/index.ts +++ b/extension/src/window/store/windowReducer.ts @@ -9,8 +9,8 @@ import { theme, StoreState, } from '@redux-devtools/app'; -import instances from './instances'; -import { WindowStoreAction } from '../../stores/windowStore'; +import instances from './instancesReducer'; +import type { WindowStoreAction } from './windowStore'; const rootReducer: Reducer = combineReducers({ diff --git a/extension/src/app/stores/windowStore.ts b/extension/src/window/store/windowStore.ts similarity index 81% rename from extension/src/app/stores/windowStore.ts rename to extension/src/window/store/windowStore.ts index 186203ab..f63002ae 100644 --- a/extension/src/app/stores/windowStore.ts +++ b/extension/src/window/store/windowStore.ts @@ -17,12 +17,15 @@ import { StoreState, UpdateStateAction, } from '@redux-devtools/app'; -import syncStores from '../middlewares/windowSync'; -import instanceSelector from '../middlewares/instanceSelector'; -import rootReducer from '../reducers/window'; -import { BackgroundState } from '../reducers/background'; -import { BackgroundAction } from './backgroundStore'; -import { EmptyUpdateStateAction, NAAction } from '../middlewares/api'; +import syncStores from './windowSyncMiddleware'; +import instanceSelector from './instanceSelectorMiddleware'; +import rootReducer from './windowReducer'; +import type { BackgroundState } from '../../background/store/backgroundReducer'; +import type { BackgroundAction } from '../../background/store/backgroundStore'; +import type { + EmptyUpdateStateAction, + NAAction, +} from '../../background/store/apiMiddleware'; export interface ExpandedUpdateStateAction extends UpdateStateAction { readonly instances: InstancesState; diff --git a/extension/src/app/middlewares/windowSync.ts b/extension/src/window/store/windowSyncMiddleware.ts similarity index 80% rename from extension/src/app/middlewares/windowSync.ts rename to extension/src/window/store/windowSyncMiddleware.ts index e6c2c599..6f9f9cf7 100644 --- a/extension/src/app/middlewares/windowSync.ts +++ b/extension/src/window/store/windowSyncMiddleware.ts @@ -7,9 +7,9 @@ import { UPDATE_STATE, } from '@redux-devtools/app'; import { Dispatch, MiddlewareAPI, Store } from 'redux'; -import { BackgroundState } from '../reducers/background'; -import { WindowStoreAction } from '../stores/windowStore'; -import { BackgroundAction } from '../stores/backgroundStore'; +import type { BackgroundState } from '../../background/store/backgroundReducer'; +import type { WindowStoreAction } from './windowStore'; +import type { BackgroundAction } from '../../background/store/backgroundStore'; const syncStores = (baseStore: Store) => diff --git a/extension/src/browser/views/window.pug b/extension/src/window/window.pug similarity index 89% rename from extension/src/browser/views/window.pug rename to extension/src/window/window.pug index 4ea83033..630a3edf 100644 --- a/extension/src/browser/views/window.pug +++ b/extension/src/window/window.pug @@ -1,17 +1,17 @@ -doctype html - -html - head - meta(charset='UTF-8') - title Redux DevTools - include ./includes/style.pug - - body - #root - div(style='position: relative') - img( - src='/img/loading.svg', - height=300, width=350, - style='position: absolute; top: 50%; left: 50%; margin-top: -175px; margin-left: -175px;' - ) - script(src='/window.bundle.js') +doctype html + +html + head + meta(charset='UTF-8') + title Redux DevTools + include ../style.pug + + body + #root + div(style='position: relative') + img( + src='/img/loading.svg', + height=300, width=350, + style='position: absolute; top: 50%; left: 50%; margin-top: -175px; margin-left: -175px;' + ) + script(src='/window.bundle.js') diff --git a/extension/test/app/containers/App.spec.js b/extension/test/app/containers/App.spec.js index 971789d7..26725311 100644 --- a/extension/test/app/containers/App.spec.js +++ b/extension/test/app/containers/App.spec.js @@ -1,8 +1,8 @@ import React from 'react'; import { render, screen, within } from '@testing-library/react'; import { Provider } from 'react-redux'; -import configureStore from '../../../src/app/stores/windowStore'; -import App from '../../../src/app/containers/App'; +import configureStore from '../../../src/window/store/windowStore'; +import App from '../../../src/app/App'; Object.defineProperty(window, 'matchMedia', { writable: true, @@ -18,7 +18,7 @@ Object.defineProperty(window, 'matchMedia', { })), }); -const { store } = configureStore(store); +const { store } = configureStore(); describe('App container', () => { it("should render inspector monitor's component", () => { diff --git a/extension/test/app/inject/api.spec.js b/extension/test/app/inject/api.spec.js index 0b30f33e..0a06d321 100644 --- a/extension/test/app/inject/api.spec.js +++ b/extension/test/app/inject/api.spec.js @@ -1,5 +1,5 @@ import { insertScript, listenMessage } from '../../utils/inject'; -import '../../../src/browser/extension/inject/pageScript'; +import '../../../src/pageScript'; describe('API', () => { it('should get window.__REDUX_DEVTOOLS_EXTENSION__ function', () => { diff --git a/extension/test/app/inject/enhancer.spec.js b/extension/test/app/inject/enhancer.spec.js index 49229474..c4ce2b88 100644 --- a/extension/test/app/inject/enhancer.spec.js +++ b/extension/test/app/inject/enhancer.spec.js @@ -1,7 +1,7 @@ import '@babel/polyfill'; import { createStore, compose } from 'redux'; import { insertScript, listenMessage } from '../../utils/inject'; -import '../../../src/browser/extension/inject/pageScript'; +import '../../../src/pageScript'; function counter(state = 0, action) { switch (action.type) { diff --git a/extension/test/chrome/extension.spec.js b/extension/test/chrome/extension.spec.js index d3082167..94e2ac60 100644 --- a/extension/test/chrome/extension.spec.js +++ b/extension/test/chrome/extension.spec.js @@ -5,7 +5,7 @@ import chromedriver from 'chromedriver'; import { switchMonitorTests, delay } from '../utils/e2e'; const port = 9515; -const path = resolve(__dirname, '..', '..', 'build', 'extension'); +const path = resolve(__dirname, '..', '..', 'dist'); const extensionId = 'lmhkpmbekcpmknklioeibfkpmmfibljd'; const actionsPattern = /^@@INIT(.|\n)+@@reduxReactRouter\/routerDidChange(.|\n)+@@reduxReactRouter\/initRoutes(.|\n)+$/; diff --git a/extension/test/electron/fixture/main.js b/extension/test/electron/fixture/main.js index 9d56953c..6bf7c2ef 100644 --- a/extension/test/electron/fixture/main.js +++ b/extension/test/electron/fixture/main.js @@ -4,7 +4,7 @@ const { app, BrowserWindow, session } = require('electron'); app.on('window-all-closed', app.quit); app.whenReady().then(async () => { await session.defaultSession.loadExtension( - path.join(__dirname, '../../../build/extension'), + path.join(__dirname, '../../../dist'), { allowFileAccess: true } ); diff --git a/extension/webpack.config.js b/extension/webpack.config.js new file mode 100644 index 00000000..0b80ce9d --- /dev/null +++ b/extension/webpack.config.js @@ -0,0 +1,81 @@ +const path = require('path'); +const webpack = require('webpack'); +const CopyPlugin = require('copy-webpack-plugin'); +const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); + +module.exports = function (env) { + return { + mode: env.production ? 'production' : 'development', + devtool: env.production ? 'source-map' : 'eval-source-map', + entry: { + background: [ + path.resolve(__dirname, 'src/chromeApiMock'), + path.resolve(__dirname, 'src/background/index'), + ], + options: [ + path.resolve(__dirname, 'src/chromeApiMock'), + path.resolve(__dirname, 'src/options/index'), + ], + window: [path.resolve(__dirname, 'src/window/index')], + remote: [path.resolve(__dirname, 'src/remote/index')], + devpanel: [ + path.resolve(__dirname, 'src/chromeApiMock'), + path.resolve(__dirname, 'src/devpanel/index'), + ], + devtools: path.resolve(__dirname, 'src/devtools/index'), + content: [ + path.resolve(__dirname, 'src/chromeApiMock'), + path.resolve(__dirname, 'src/contentScript/index'), + ], + page: path.join(__dirname, 'src/pageScript'), + ...(env.production + ? {} + : { pagewrap: path.resolve(__dirname, 'src/pageScriptWrap') }), + }, + output: { + filename: '[name].bundle.js', + }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env.BABEL_ENV': JSON.stringify(process.env.NODE_ENV), + }), + new ForkTsCheckerWebpackPlugin({ + typescript: { + configFile: 'tsconfig.json', + }, + }), + new CopyPlugin({ + patterns: [ + { + from: path.join(__dirname, 'chrome/manifest.json'), + to: path.join(__dirname, 'dist/manifest.json'), + }, + { + from: path.join(__dirname, 'src/assets'), + to: path.join(__dirname, 'dist'), + }, + ], + }), + ], + resolve: { + extensions: ['.js', '.jsx', '.ts', '.tsx'], + }, + module: { + rules: [ + { + test: /\.(js|ts)x?$/, + use: 'babel-loader', + exclude: /node_modules/, + }, + { + test: /\.css?$/, + use: ['style-loader', 'css-loader'], + }, + { + test: /\.pug$/, + use: ['file-loader?name=[name].html', 'pug-html-loader'], + }, + ], + }, + }; +}; diff --git a/extension/webpack/base.config.js b/extension/webpack/base.config.js deleted file mode 100644 index b320b890..00000000 --- a/extension/webpack/base.config.js +++ /dev/null @@ -1,91 +0,0 @@ -import path from 'path'; -import webpack from 'webpack'; -import CopyPlugin from 'copy-webpack-plugin'; -import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; - -const extpath = path.join(__dirname, '../src/browser/extension/'); -const mock = `${extpath}chromeAPIMock`; - -const baseConfig = (params) => ({ - // devtool: 'source-map', - mode: params.mode, - entry: params.input || { - background: [mock, `${extpath}background/index`], - options: [mock, `${extpath}options/index`], - window: [`${extpath}window/index`], - remote: [`${extpath}window/remote`], - devpanel: [mock, `${extpath}devpanel/index`], - devtools: [`${extpath}devtools/index`], - content: [mock, `${extpath}inject/contentScript`], - pagewrap: [`${extpath}inject/pageScriptWrap`], - ...params.inputExtra, - }, - output: { - filename: '[name].bundle.js', - chunkFilename: '[id].chunk.js', - ...params.output, - }, - plugins: [ - new webpack.DefinePlugin(params.globals), - ...(params.plugins - ? params.plugins - : [ - new ForkTsCheckerWebpackPlugin({ - typescript: { - configFile: 'tsconfig.json', - }, - }), - ]), - ].concat( - params.copy - ? new CopyPlugin({ - patterns: [ - { - from: params.manifestJsonPath, - to: path.join(params.output.path, 'manifest.json'), - }, - { - from: path.join(__dirname, '../src/assets/'), - to: params.output.path, - }, - ], - }) - : [] - ), - performance: { - hints: false, - }, - resolve: { - alias: { - app: path.join(__dirname, '../src/app'), - tmp: path.join(__dirname, '../build/tmp'), - }, - extensions: ['.js', '.jsx', '.ts', '.tsx'], - fallback: { - path: require.resolve('path-browserify'), - }, - }, - module: { - rules: [ - ...(params.loaders - ? params.loaders - : [ - { - test: /\.(js|ts)x?$/, - use: 'babel-loader', - exclude: /(node_modules|tmp\/page\.bundle)/, - }, - ]), - { - test: /\.css?$/, - use: ['style-loader', 'css-loader'], - }, - { - test: /\.pug$/, - use: ['file-loader?name=[name].html', 'pug-html-loader'], - }, - ], - }, -}); - -export default baseConfig; diff --git a/extension/webpack/dev.config.babel.js b/extension/webpack/dev.config.babel.js deleted file mode 100644 index cca1fa78..00000000 --- a/extension/webpack/dev.config.babel.js +++ /dev/null @@ -1,26 +0,0 @@ -import path from 'path'; -import webpack from 'webpack'; -import baseConfig from './base.config'; - -let config = baseConfig({ - mode: 'development', - inputExtra: { - page: [path.join(__dirname, '../src/browser/extension/inject/pageScript')], - }, - output: { path: path.join(__dirname, '../dev') }, - globals: { - 'process.env': { - NODE_ENV: '"development"', - }, - }, - plugins: [new webpack.NoEmitOnErrorsPlugin()], - copy: true, - manifestJsonPath: path.join( - __dirname, - '../src/browser/extension/manifest.json' - ), -}); - -config.watch = true; - -export default config; diff --git a/extension/webpack/prod.config.babel.js b/extension/webpack/prod.config.babel.js deleted file mode 100644 index ff04e735..00000000 --- a/extension/webpack/prod.config.babel.js +++ /dev/null @@ -1,20 +0,0 @@ -import path from 'path'; -import baseConfig from './base.config'; - -export default baseConfig({ - mode: 'production', - inputExtra: { - page: [path.join(__dirname, '../src/browser/extension/inject/pageScript')], - }, - output: { path: path.join(__dirname, '../build/extension') }, - globals: { - 'process.env': { - NODE_ENV: '"production"', - }, - }, - copy: true, - manifestJsonPath: path.join( - __dirname, - '../src/browser/extension/manifest.json' - ), -}); diff --git a/extension/webpack/prod.firefox.config.babel.js b/extension/webpack/prod.firefox.config.babel.js deleted file mode 100644 index 54fdf8b9..00000000 --- a/extension/webpack/prod.firefox.config.babel.js +++ /dev/null @@ -1,17 +0,0 @@ -import path from 'path'; -import baseConfig from './base.config'; - -export default baseConfig({ - mode: 'production', - output: { path: path.join(__dirname, '../build/extension') }, - globals: { - 'process.env': { - NODE_ENV: '"production"', - }, - }, - copy: true, - manifestJsonPath: path.join( - __dirname, - '../src/browser/firefox/manifest.json' - ), -}); diff --git a/extension/webpack/wrap.config.babel.js b/extension/webpack/wrap.config.babel.js deleted file mode 100644 index 25b57d11..00000000 --- a/extension/webpack/wrap.config.babel.js +++ /dev/null @@ -1,15 +0,0 @@ -import path from 'path'; -import baseConfig from './base.config'; - -export default baseConfig({ - mode: 'production', - input: { - page: [path.join(__dirname, '../src/browser/extension/inject/pageScript')], - }, - output: { path: path.join(__dirname, '../build/tmp') }, - globals: { - 'process.env': { - NODE_ENV: '"production"', - }, - }, -}); diff --git a/extension/wrap.webpack.config.js b/extension/wrap.webpack.config.js new file mode 100644 index 00000000..c4d50d62 --- /dev/null +++ b/extension/wrap.webpack.config.js @@ -0,0 +1,32 @@ +const path = require('path'); +const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); + +module.exports = { + mode: 'production', + devtool: 'source-map', + entry: { + pagewrap: path.resolve(__dirname, 'src/pageScriptWrap'), + }, + output: { + filename: '[name].bundle.js', + }, + plugins: [ + new ForkTsCheckerWebpackPlugin({ + typescript: { + configFile: 'tsconfig.json', + }, + }), + ], + resolve: { + extensions: ['.js', '.jsx', '.ts', '.tsx'], + }, + module: { + rules: [ + { + test: /\.(js|ts)x?$/, + use: 'babel-loader', + exclude: /(node_modules|dist\/page\.bundle)/, + }, + ], + }, +}; diff --git a/package.json b/package.json index dba12736..45568576 100644 --- a/package.json +++ b/package.json @@ -1,28 +1,29 @@ { "private": true, "devDependencies": { - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@changesets/cli": "^2.24.2", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@changesets/cli": "^2.25.2", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-jest": "^27.1.6", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", - "jest": "^27.5.1", - "prettier": "2.7.1", - "typescript": "~4.7.4", - "nx": "^14.5.4", - "@nrwl/nx-cloud": "^14.3.0" + "jest": "^29.3.1", + "prettier": "2.8.0", + "typescript": "~4.9.3", + "nx": "^15.2.1", + "@nrwl/nx-cloud": "^15.0.2" }, "scripts": { "format": "prettier --write .", "format:check": "prettier --check .", - "build:all": "nx run-many --target=build --all", - "lint:all": "nx run-many --target=lint --all", - "test:all": "nx run-many --target=test --all", + "build:all": "nx run-many --target=build --all --parallel=1", + "lint:all": "nx run-many --target=lint --all --parallel=1", + "test:all": "nx run-many --target=test --all --parallel=1", + "clean:all": "nx run-many --target=clean --all --parallel=1", "release": "pnpm build:all && changeset publish" }, "workspaces": [ @@ -38,7 +39,7 @@ "packages/redux-devtools-rtk-query-monitor/demo", "packages/redux-devtools-slider-monitor/examples/todomvc" ], - "packageManager": "pnpm@7.9.0", + "packageManager": "pnpm@7.17.1", "pnpm": { "overrides": { "@babel/highlight>chalk": "Methuselah96/chalk#v2-without-process" diff --git a/packages/d3-state-visualizer/examples/tree/package.json b/packages/d3-state-visualizer/examples/tree/package.json index c9271652..3eb968a5 100644 --- a/packages/d3-state-visualizer/examples/tree/package.json +++ b/packages/d3-state-visualizer/examples/tree/package.json @@ -29,22 +29,22 @@ "map2tree": "^2.1.0" }, "devDependencies": { - "@babel/core": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/core": "^7.20.2", + "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", - "@types/node": "^16.11.47", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "babel-loader": "^8.2.5", + "@types/node": "^18.11.9", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "babel-loader": "^9.1.0", "cross-env": "^7.0.3", - "eslint": "^8.21.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", "fork-ts-checker-webpack-plugin": "^7.2.13", "html-webpack-plugin": "^5.5.0", "ts-node": "^10.9.1", - "typescript": "~4.7.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.10.0" + "typescript": "~4.9.3", + "webpack": "^5.75.0", + "webpack-cli": "^5.0.0", + "webpack-dev-server": "^4.11.1" } } diff --git a/packages/d3-state-visualizer/package.json b/packages/d3-state-visualizer/package.json index 4252f0a9..83c75022 100644 --- a/packages/d3-state-visualizer/package.json +++ b/packages/d3-state-visualizer/package.json @@ -42,7 +42,7 @@ "prepublish": "pnpm run type-check && pnpm run lint" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@types/d3": "^3.5.47", "d3": "^3.5.17", "d3tooltip": "^2.1.0", @@ -51,26 +51,26 @@ "ramda": "^0.28.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", - "@rollup/plugin-babel": "^5.3.1", - "@rollup/plugin-commonjs": "^22.0.2", - "@rollup/plugin-node-resolve": "^13.3.0", - "@types/node": "^16.11.47", - "@types/ramda": "^0.28.15", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-commonjs": "^23.0.2", + "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-terser": "^0.1.0", + "@types/node": "^18.11.9", + "@types/ramda": "^0.28.20", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", "rimraf": "^3.0.2", - "rollup": "^2.77.3", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.32.1", - "tslib": "^2.4.0", - "typescript": "~4.7.4" + "rollup": "^3.5.0", + "rollup-plugin-typescript2": "^0.34.1", + "tslib": "^2.4.1", + "typescript": "~4.9.3" } } diff --git a/packages/d3-state-visualizer/rollup.config.js b/packages/d3-state-visualizer/rollup.config.mjs similarity index 96% rename from packages/d3-state-visualizer/rollup.config.js rename to packages/d3-state-visualizer/rollup.config.mjs index 70ce4df1..e144a1bb 100644 --- a/packages/d3-state-visualizer/rollup.config.js +++ b/packages/d3-state-visualizer/rollup.config.mjs @@ -2,7 +2,7 @@ import typescript from 'rollup-plugin-typescript2'; import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import babel from '@rollup/plugin-babel'; -import { terser } from 'rollup-plugin-terser'; +import terser from '@rollup/plugin-terser'; const config = [ { diff --git a/packages/d3tooltip/package.json b/packages/d3tooltip/package.json index 352fd7eb..26e0eaac 100644 --- a/packages/d3tooltip/package.json +++ b/packages/d3tooltip/package.json @@ -38,33 +38,33 @@ "prepublish": "pnpm run type-check && pnpm run lint" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "ramda": "^0.28.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", - "@rollup/plugin-babel": "^5.3.1", - "@rollup/plugin-commonjs": "^22.0.2", - "@rollup/plugin-node-resolve": "^13.3.0", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-commonjs": "^23.0.2", + "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-terser": "^0.1.0", "@types/d3": "^3.5.47", - "@types/node": "^16.11.47", - "@types/ramda": "^0.28.15", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", + "@types/node": "^18.11.9", + "@types/ramda": "^0.28.20", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", "d3": "^3.5.17", - "eslint": "^8.21.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", "rimraf": "^3.0.2", - "rollup": "^2.77.3", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.32.1", - "tslib": "^2.4.0", - "typescript": "~4.7.4" + "rollup": "^3.5.0", + "rollup-plugin-typescript2": "^0.34.1", + "tslib": "^2.4.1", + "typescript": "~4.9.3" }, "peerDependencies": { "@types/d3": "^3.5.47", diff --git a/packages/d3tooltip/rollup.config.js b/packages/d3tooltip/rollup.config.mjs similarity index 96% rename from packages/d3tooltip/rollup.config.js rename to packages/d3tooltip/rollup.config.mjs index 6a442f22..b2b9e71c 100644 --- a/packages/d3tooltip/rollup.config.js +++ b/packages/d3tooltip/rollup.config.mjs @@ -2,7 +2,7 @@ import typescript from 'rollup-plugin-typescript2'; import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import babel from '@rollup/plugin-babel'; -import { terser } from 'rollup-plugin-terser'; +import terser from '@rollup/plugin-terser'; const config = [ { diff --git a/packages/map2tree/jest.config.js b/packages/map2tree/jest.config.js index 05d33807..f68efd05 100644 --- a/packages/map2tree/jest.config.js +++ b/packages/map2tree/jest.config.js @@ -1,8 +1,6 @@ module.exports = { preset: 'ts-jest', - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, }; diff --git a/packages/map2tree/package.json b/packages/map2tree/package.json index d5b38f2e..5b000463 100755 --- a/packages/map2tree/package.json +++ b/packages/map2tree/package.json @@ -42,35 +42,35 @@ "prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "lodash": "^4.17.21" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", - "@rollup/plugin-babel": "^5.3.1", - "@rollup/plugin-commonjs": "^22.0.2", - "@rollup/plugin-node-resolve": "^13.3.0", - "@types/jest": "^27.5.2", - "@types/lodash": "^4.14.182", - "@types/node": "^16.11.47", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-commonjs": "^23.0.2", + "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-terser": "^0.1.0", + "@types/jest": "^29.2.3", + "@types/lodash": "^4.14.190", + "@types/node": "^18.11.9", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", + "eslint-plugin-jest": "^27.1.6", "immutable": "^4.1.0", - "jest": "^27.5.1", + "jest": "^29.3.1", "rimraf": "^3.0.2", - "rollup": "^2.77.3", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.32.1", - "ts-jest": "^27.1.5", - "tslib": "^2.4.0", - "typescript": "~4.7.4" + "rollup": "^3.5.0", + "rollup-plugin-typescript2": "^0.34.1", + "ts-jest": "^29.0.3", + "tslib": "^2.4.1", + "typescript": "~4.9.3" } } diff --git a/packages/map2tree/rollup.config.js b/packages/map2tree/rollup.config.mjs similarity index 95% rename from packages/map2tree/rollup.config.js rename to packages/map2tree/rollup.config.mjs index f977bb7c..d7a30f91 100644 --- a/packages/map2tree/rollup.config.js +++ b/packages/map2tree/rollup.config.mjs @@ -2,7 +2,7 @@ import typescript from 'rollup-plugin-typescript2'; import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import babel from '@rollup/plugin-babel'; -import { terser } from 'rollup-plugin-terser'; +import terser from '@rollup/plugin-terser'; const config = [ { diff --git a/packages/react-base16-styling/jest.config.js b/packages/react-base16-styling/jest.config.js index f0ecd734..dcef0803 100644 --- a/packages/react-base16-styling/jest.config.js +++ b/packages/react-base16-styling/jest.config.js @@ -1,9 +1,7 @@ module.exports = { preset: 'ts-jest', testEnvironment: 'jsdom', - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, }; diff --git a/packages/react-base16-styling/package.json b/packages/react-base16-styling/package.json index 905ac686..10b2845e 100644 --- a/packages/react-base16-styling/package.json +++ b/packages/react-base16-styling/package.json @@ -39,32 +39,33 @@ "prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@types/base16": "^1.0.2", - "@types/lodash": "^4.14.182", + "@types/lodash": "^4.14.190", "base16": "^1.0.0", "color": "^4.2.3", - "csstype": "^3.1.0", + "csstype": "^3.1.1", "lodash.curry": "^4.1.1" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", "@types/color": "^3.0.3", - "@types/jest": "^27.5.2", + "@types/jest": "^29.2.3", "@types/lodash.curry": "^4.1.7", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "jest": "^27.5.1", + "eslint-plugin-jest": "^27.1.6", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", "rimraf": "^3.0.2", - "ts-jest": "^27.1.5", - "typescript": "~4.7.4" + "ts-jest": "^29.0.3", + "typescript": "~4.9.3" } } diff --git a/packages/react-dock/demo/package.json b/packages/react-dock/demo/package.json index 30e08670..2fa1e075 100644 --- a/packages/react-dock/demo/package.json +++ b/packages/react-dock/demo/package.json @@ -11,36 +11,36 @@ }, "dependencies": { "react": "^18.2.0", - "react-bootstrap": "^2.5.0", + "react-bootstrap": "^2.6.0", "react-dock": "^0.6.0", "react-dom": "^18.2.0", - "react-icons": "^4.4.0", + "react-icons": "^4.6.0", "react-is": "^18.2.0", - "styled-components": "^5.3.5" + "styled-components": "^5.3.6" }, "devDependencies": { - "@babel/core": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/core": "^7.20.2", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", - "@types/node": "^16.11.47", - "@types/react": "^18.0.17", - "@types/react-dom": "^18.0.6", + "@types/node": "^18.11.9", + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", "@types/styled-components": "^5.1.26", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "babel-loader": "^8.2.5", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "babel-loader": "^9.1.0", "cross-env": "^7.0.3", - "eslint": "^8.21.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "fork-ts-checker-webpack-plugin": "^7.2.13", "html-webpack-plugin": "^5.5.0", "ts-node": "^10.9.1", - "typescript": "~4.7.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.10.0" + "typescript": "~4.9.3", + "webpack": "^5.75.0", + "webpack-cli": "^5.0.0", + "webpack-dev-server": "^4.11.1" } } diff --git a/packages/react-dock/jest.config.js b/packages/react-dock/jest.config.js index f0ecd734..dcef0803 100644 --- a/packages/react-dock/jest.config.js +++ b/packages/react-dock/jest.config.js @@ -1,9 +1,7 @@ module.exports = { preset: 'ts-jest', testEnvironment: 'jsdom', - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, }; diff --git a/packages/react-dock/package.json b/packages/react-dock/package.json index 5b6443b6..223bfa30 100644 --- a/packages/react-dock/package.json +++ b/packages/react-dock/package.json @@ -39,37 +39,38 @@ "prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" }, "dependencies": { - "@babel/runtime": "^7.18.9", - "@types/lodash": "^4.14.182", + "@babel/runtime": "^7.20.1", + "@types/lodash": "^4.14.190", "@types/prop-types": "^15.7.5", "lodash.debounce": "^4.0.8", "prop-types": "^15.8.1" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", - "@types/jest": "^27.5.2", + "@types/jest": "^29.2.3", "@types/lodash.debounce": "^4.0.7", - "@types/react": "^18.0.17", + "@types/react": "^18.0.25", "@types/react-test-renderer": "^18.0.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-jest": "^27.1.6", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", - "jest": "^27.5.1", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", "react": "^18.2.0", "react-test-renderer": "^18.2.0", "rimraf": "^3.0.2", - "ts-jest": "^27.1.5", - "typescript": "~4.7.4" + "ts-jest": "^29.0.3", + "typescript": "~4.9.3" }, "peerDependencies": { "@types/react": "^16.3.0 || ^17.0.0 || ^18.0.0", diff --git a/packages/react-json-tree/README.md b/packages/react-json-tree/README.md index f1e96518..6e802e5f 100644 --- a/packages/react-json-tree/README.md +++ b/packages/react-json-tree/README.md @@ -34,7 +34,7 @@ Check out [examples](examples) directory for more details. This component now uses [react-base16-styling](https://github.com/reduxjs/redux-devtools/tree/main/packages/react-base16-styling) module, which allows to customize component via `theme` property, which can be the following: -- [base16](http://chriskempson.com/projects/base16/) theme data. [The example theme data can be found here](https://github.com/gaearon/redux-devtools/tree/75322b15ee7ba03fddf10ac3399881e302848874/src/react/themes). +- [base16](https://github.com/chriskempson/base16) theme data. [The example theme data can be found here](https://github.com/gaearon/redux-devtools/tree/75322b15ee7ba03fddf10ac3399881e302848874/src/react/themes). - object that contains style objects, strings (that treated as classnames) or functions. A function is used to extend its first argument `{ style, className }` and should return an object with the same structure. Other arguments depend on particular context (and should be described here). See [createStylingFromTheme.js](https://github.com/reduxjs/redux-devtools/blob/main/packages/react-json-tree/src/createStylingFromTheme.ts) for the list of styling object keys. Also, this object can extend `base16` theme via `extend` property. Every theme has a light version, which is enabled with `invertTheme` prop. diff --git a/packages/react-json-tree/examples/package.json b/packages/react-json-tree/examples/package.json index f4bb4725..d9fae455 100644 --- a/packages/react-json-tree/examples/package.json +++ b/packages/react-json-tree/examples/package.json @@ -26,27 +26,27 @@ "react-json-tree": "^0.17.0" }, "devDependencies": { - "@babel/core": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/core": "^7.20.2", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", - "@types/node": "^16.11.47", - "@types/react": "^18.0.17", - "@types/react-dom": "^18.0.6", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "babel-loader": "^8.2.5", + "@types/node": "^18.11.9", + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "babel-loader": "^9.1.0", "cross-env": "^7.0.3", - "eslint": "^8.21.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "fork-ts-checker-webpack-plugin": "^7.2.13", "html-webpack-plugin": "^5.5.0", "ts-node": "^10.9.1", - "typescript": "~4.7.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.10.0" + "typescript": "~4.9.3", + "webpack": "^5.75.0", + "webpack-cli": "^5.0.0", + "webpack-dev-server": "^4.11.1" } } diff --git a/packages/react-json-tree/jest.config.js b/packages/react-json-tree/jest.config.js index 05d33807..f68efd05 100644 --- a/packages/react-json-tree/jest.config.js +++ b/packages/react-json-tree/jest.config.js @@ -1,8 +1,6 @@ module.exports = { preset: 'ts-jest', - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, }; diff --git a/packages/react-json-tree/package.json b/packages/react-json-tree/package.json index 801e5b1f..96ab8dcf 100644 --- a/packages/react-json-tree/package.json +++ b/packages/react-json-tree/package.json @@ -45,44 +45,44 @@ "prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" }, "dependencies": { - "@babel/runtime": "^7.18.9", - "@types/lodash": "^4.14.182", + "@babel/runtime": "^7.20.1", + "@types/lodash": "^4.14.190", "@types/prop-types": "^15.7.5", "prop-types": "^15.8.1", "react-base16-styling": "^0.9.1" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", - "@rollup/plugin-babel": "^5.3.1", - "@rollup/plugin-commonjs": "^22.0.2", - "@rollup/plugin-node-resolve": "^13.3.0", - "@types/jest": "^27.5.2", - "@types/node": "^16.11.47", - "@types/react": "^18.0.17", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-commonjs": "^23.0.2", + "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-terser": "^0.1.0", + "@types/jest": "^29.2.3", + "@types/node": "^18.11.9", + "@types/react": "^18.0.25", "@types/react-test-renderer": "^18.0.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-jest": "^27.1.6", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", - "jest": "^27.5.1", + "jest": "^29.3.1", "react": "^18.2.0", "react-test-renderer": "^18.2.0", "rimraf": "^3.0.2", - "rollup": "^2.77.3", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.32.1", - "ts-jest": "^27.1.5", - "tslib": "^2.4.0", - "typescript": "~4.7.4" + "rollup": "^3.5.0", + "rollup-plugin-typescript2": "^0.34.1", + "ts-jest": "^29.0.3", + "tslib": "^2.4.1", + "typescript": "~4.9.3" }, "peerDependencies": { "@types/react": "^16.3.0 || ^17.0.0 || ^18.0.0", diff --git a/packages/react-json-tree/rollup.config.js b/packages/react-json-tree/rollup.config.mjs similarity index 96% rename from packages/react-json-tree/rollup.config.js rename to packages/react-json-tree/rollup.config.mjs index 8d2e2555..de6c3688 100644 --- a/packages/react-json-tree/rollup.config.js +++ b/packages/react-json-tree/rollup.config.mjs @@ -2,7 +2,7 @@ import typescript from 'rollup-plugin-typescript2'; import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import babel from '@rollup/plugin-babel'; -import { terser } from 'rollup-plugin-terser'; +import terser from '@rollup/plugin-terser'; const config = [ { diff --git a/packages/redux-devtools-app/jest.config.js b/packages/redux-devtools-app/jest.config.js index 2aaa8218..2bef3a04 100644 --- a/packages/redux-devtools-app/jest.config.js +++ b/packages/redux-devtools-app/jest.config.js @@ -5,9 +5,8 @@ module.exports = { moduleNameMapper: { '\\.css$': '/test/__mocks__/styleMock.ts', }, - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, + resolver: '/jestResolver.js', }; diff --git a/packages/redux-devtools-app/jestResolver.js b/packages/redux-devtools-app/jestResolver.js new file mode 100644 index 00000000..8e066aa4 --- /dev/null +++ b/packages/redux-devtools-app/jestResolver.js @@ -0,0 +1,15 @@ +module.exports = (path, options) => { + return options.defaultResolver(path, { + ...options, + packageFilter: (pkg) => { + if (pkg.name === 'nanoid') { + pkg.exports['.'].browser = pkg.exports['.'].require; + } + if (pkg.name === 'uuid' && pkg.version.startsWith('8.')) { + delete pkg.exports; + delete pkg.module; + } + return pkg; + }, + }); +}; diff --git a/packages/redux-devtools-app/package.json b/packages/redux-devtools-app/package.json index f4cddf52..099d552a 100644 --- a/packages/redux-devtools-app/package.json +++ b/packages/redux-devtools-app/package.json @@ -29,9 +29,9 @@ "build:cjs": "babel src --extensions \".ts,.tsx\" --out-dir lib/cjs", "build:esm": "babel src --config-file ./babel.config.esm.json --extensions \".ts,.tsx\" --out-dir lib/esm", "build:types": "tsc --emitDeclarationOnly", - "build:web": "cross-env TS_NODE_PROJECT=\"tsconfig.webpack.json\" webpack --env platform=web --progress", - "build:umd": "cross-env TS_NODE_PROJECT=\"tsconfig.webpack.json\" webpack --progress --config webpack.config.umd.ts", - "build:umd:min": "cross-env TS_NODE_PROJECT=\"tsconfig.webpack.json\" webpack --env production --progress --config webpack.config.umd.ts", + "build:web": "cross-env TS_NODE_PROJECT=\"tsconfig.webpack.json\" webpack --env platform=web", + "build:umd": "cross-env TS_NODE_PROJECT=\"tsconfig.webpack.json\" webpack --config webpack.config.umd.ts", + "build:umd:min": "cross-env TS_NODE_PROJECT=\"tsconfig.webpack.json\" webpack --env production --config webpack.config.umd.ts", "clean": "rimraf build lib umd", "test": "jest", "lint": "eslint . --ext .ts,.tsx", @@ -40,7 +40,7 @@ "prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@redux-devtools/chart-monitor": "^3.0.0", "@redux-devtools/core": "^3.13.0", "@redux-devtools/inspector-monitor": "^3.0.0", @@ -50,7 +50,7 @@ "@redux-devtools/rtk-query-monitor": "^3.0.0", "@redux-devtools/slider-monitor": "^4.0.0", "@redux-devtools/ui": "^1.3.0", - "@reduxjs/toolkit": "^1.8.4", + "@reduxjs/toolkit": "^1.9.0", "@types/prop-types": "^15.7.5", "d3-state-visualizer": "^1.6.0", "javascript-stringify": "^2.1.0", @@ -59,66 +59,66 @@ "localforage": "^1.10.0", "lodash": "^4.17.21", "prop-types": "^15.8.1", - "react-icons": "^4.4.0", + "react-icons": "^4.6.0", "react-is": "^18.2.0", - "react-redux": "^8.0.2", + "react-redux": "^8.0.5", "redux": "^4.2.0", "redux-persist": "^6.0.0", - "socketcluster-client": "^16.1.1" + "socketcluster-client": "^17.1.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@rjsf/core": "^4.2.3", "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "^13.3.0", - "@types/jest": "^27.5.2", + "@testing-library/react": "^13.4.0", + "@types/jest": "^29.2.3", "@types/jsan": "^3.1.2", "@types/json-schema": "^7.0.11", - "@types/lodash": "^4.14.182", - "@types/node": "^16.11.47", - "@types/react": "^18.0.17", - "@types/react-dom": "^18.0.6", + "@types/lodash": "^4.14.190", + "@types/node": "^18.11.9", + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", "@types/socketcluster-client": "^16.0.0", "@types/styled-components": "^5.1.26", "@types/testing-library__jest-dom": "^5.14.5", - "@types/webpack-env": "^1.17.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "babel-loader": "^8.2.5", + "@types/webpack-env": "^1.18.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "babel-loader": "^9.1.0", "cross-env": "^7.0.3", - "css-loader": "^6.7.1", - "eslint": "^8.21.0", + "css-loader": "^6.7.2", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-jest": "^27.1.6", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "fork-ts-checker-webpack-plugin": "^7.2.13", - "html-loader": "^4.1.0", + "html-loader": "^4.2.0", "html-webpack-plugin": "^5.5.0", - "jest": "^27.5.1", - "path-browserify": "^1.0.1", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", "rimraf": "^3.0.2", "style-loader": "^3.3.1", - "styled-components": "^5.3.5", - "ts-jest": "^27.1.5", + "styled-components": "^5.3.6", + "ts-jest": "^29.0.3", "ts-node": "^10.9.1", - "typescript": "~4.7.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.10.0" + "typescript": "~4.9.3", + "webpack": "^5.75.0", + "webpack-cli": "^5.0.0", + "webpack-dev-server": "^4.11.1" }, "peerDependencies": { "@types/react": "^16.3.0 || ^17.0.0 || ^18.0.0", "@types/styled-components": "^5.1.26", "react": "^16.3.0 || ^17.0.0 || ^18.0.0", - "styled-components": "^5.3.5" + "styled-components": "^5.3.6" } } diff --git a/packages/redux-devtools-app/webpack.config.ts b/packages/redux-devtools-app/webpack.config.ts index c20747b6..d48dc365 100644 --- a/packages/redux-devtools-app/webpack.config.ts +++ b/packages/redux-devtools-app/webpack.config.ts @@ -39,9 +39,6 @@ export default ( }, resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx'], - fallback: { - path: require.resolve('path-browserify'), - }, }, plugins: [ new webpack.DefinePlugin({ diff --git a/packages/redux-devtools-app/webpack.config.umd.ts b/packages/redux-devtools-app/webpack.config.umd.ts index 58ae1c22..d3f4e829 100644 --- a/packages/redux-devtools-app/webpack.config.umd.ts +++ b/packages/redux-devtools-app/webpack.config.umd.ts @@ -39,9 +39,6 @@ export default (env: { production?: boolean } = {}): webpack.Configuration => ({ }, resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx'], - fallback: { - path: require.resolve('path-browserify'), - }, }, plugins: [ new webpack.DefinePlugin({ diff --git a/packages/redux-devtools-chart-monitor/package.json b/packages/redux-devtools-chart-monitor/package.json index d0ff0f6e..6091404b 100644 --- a/packages/redux-devtools-chart-monitor/package.json +++ b/packages/redux-devtools-chart-monitor/package.json @@ -39,7 +39,7 @@ "prepublish": "pnpm run type-check && pnpm run lint" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@types/prop-types": "^15.7.5", "@types/redux-devtools-themes": "^1.0.0", "d3-state-visualizer": "^1.6.0", @@ -48,25 +48,25 @@ "redux-devtools-themes": "^1.0.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@redux-devtools/core": "^3.13.1", - "@types/react": "^18.0.17", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@types/react": "^18.0.25", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "react": "^18.2.0", "redux": "^4.2.0", "rimraf": "^3.0.2", - "typescript": "~4.7.4" + "typescript": "~4.9.3" }, "peerDependencies": { "@redux-devtools/core": "^3.13.1", diff --git a/packages/redux-devtools-cli/jest.config.js b/packages/redux-devtools-cli/jest.config.js index 05d33807..f68efd05 100644 --- a/packages/redux-devtools-cli/jest.config.js +++ b/packages/redux-devtools-cli/jest.config.js @@ -1,8 +1,6 @@ module.exports = { preset: 'ts-jest', - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, }; diff --git a/packages/redux-devtools-cli/package.json b/packages/redux-devtools-cli/package.json index da807af3..b58244ba 100644 --- a/packages/redux-devtools-cli/package.json +++ b/packages/redux-devtools-cli/package.json @@ -41,57 +41,57 @@ }, "dependencies": { "@redux-devtools/app": "^2.1.3", - "@types/react": "^18.0.17", - "apollo-server-express": "^3.10.1", - "body-parser": "^1.20.0", + "@types/react": "^18.0.25", + "apollo-server-express": "^3.11.1", + "body-parser": "^1.20.1", "chalk": "^4.1.2", "cors": "^2.8.5", "cross-spawn": "^7.0.3", - "electron": "^20.0.2", - "express": "^4.18.1", + "electron": "^21.3.1", + "express": "^4.18.2", "getport": "^0.1.0", - "graphql": "^16.5.0", - "knex": "^2.2.0", + "graphql": "^16.6.0", + "knex": "^2.3.0", "lodash": "^4.17.21", - "minimist": "^1.2.6", + "minimist": "^1.2.7", "morgan": "^1.10.0", "open": "^8.4.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-is": "^18.2.0", - "semver": "^7.3.7", - "socketcluster-server": "^16.2.1", - "sqlite3": "^5.0.11", - "styled-components": "^5.3.5", - "uuid": "^8.3.2" + "semver": "^7.3.8", + "socketcluster-server": "^17.2.0", + "sqlite3": "^5.1.2", + "styled-components": "^5.3.6", + "uuid": "^9.0.0" }, "devDependencies": { "@types/body-parser": "^1.19.2", "@types/cors": "^2.8.12", "@types/cross-spawn": "^6.0.2", - "@types/express": "^4.17.13", - "@types/jest": "^27.5.2", - "@types/lodash": "^4.14.182", + "@types/express": "^4.17.14", + "@types/jest": "^29.2.3", + "@types/lodash": "^4.14.190", "@types/minimist": "^1.2.2", "@types/morgan": "^1.9.3", - "@types/node": "^16.11.47", - "@types/semver": "^7.3.12", + "@types/node": "^18.11.9", + "@types/semver": "^7.3.13", "@types/socketcluster-client": "^16.0.0", "@types/socketcluster-server": "^16.1.0", "@types/styled-components": "^5.1.26", "@types/supertest": "^2.0.12", "@types/uuid": "^8.3.4", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "jest": "^27.5.1", + "eslint-plugin-jest": "^27.1.6", + "jest": "^29.3.1", "ncp": "^2.0.0", "rimraf": "^3.0.2", - "socketcluster-client": "^16.1.1", - "supertest": "^6.2.4", - "ts-jest": "^27.1.5", - "typescript": "~4.7.4" + "socketcluster-client": "^17.1.0", + "supertest": "^6.3.1", + "ts-jest": "^29.0.3", + "typescript": "~4.9.3" } } diff --git a/packages/redux-devtools-dock-monitor/package.json b/packages/redux-devtools-dock-monitor/package.json index 589f7235..142a17f3 100644 --- a/packages/redux-devtools-dock-monitor/package.json +++ b/packages/redux-devtools-dock-monitor/package.json @@ -41,33 +41,33 @@ "prepublish": "pnpm run type-check && pnpm run lint" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@types/prop-types": "^15.7.5", "parse-key": "^0.2.1", "prop-types": "^15.8.1", "react-dock": "^0.6.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@redux-devtools/core": "^3.13.1", "@types/parse-key": "^0.2.0", - "@types/react": "^18.0.17", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@types/react": "^18.0.25", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "react": "^18.2.0", "redux": "^4.2.0", "rimraf": "^3.0.2", - "typescript": "~4.7.4" + "typescript": "~4.9.3" }, "peerDependencies": { "@redux-devtools/core": "^3.13.1", diff --git a/packages/redux-devtools-extension/package.json b/packages/redux-devtools-extension/package.json index e3448910..fb8683d1 100644 --- a/packages/redux-devtools-extension/package.json +++ b/packages/redux-devtools-extension/package.json @@ -29,23 +29,23 @@ "prepublish": "pnpm run type-check && pnpm run lint" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "immutable": "^4.1.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", "redux": "^4.2.0", "rimraf": "^3.0.2", - "typescript": "~4.7.4" + "typescript": "~4.9.3" }, "peerDependencies": { "redux": "^3.1.0 || ^4.0.0" diff --git a/packages/redux-devtools-inspector-monitor-test-tab/demo/package.json b/packages/redux-devtools-inspector-monitor-test-tab/demo/package.json index 7a264b90..fb7a44c4 100644 --- a/packages/redux-devtools-inspector-monitor-test-tab/demo/package.json +++ b/packages/redux-devtools-inspector-monitor-test-tab/demo/package.json @@ -20,40 +20,40 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-is": "^18.2.0", - "react-redux": "^8.0.2", - "react-router-dom": "^6.3.0", + "react-redux": "^8.0.5", + "react-router-dom": "^6.4.3", "redux": "^4.2.0", "redux-logger": "^3.0.6", - "styled-components": "^5.3.5" + "styled-components": "^5.3.6" }, "devDependencies": { - "@babel/core": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/core": "^7.20.2", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@types/lodash.shuffle": "^4.2.7", - "@types/node": "^16.11.47", - "@types/react": "^18.0.17", - "@types/react-dom": "^18.0.6", + "@types/node": "^18.11.9", + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", "@types/redux-logger": "^3.0.9", "@types/styled-components": "^5.1.26", - "@types/webpack-env": "^1.17.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "babel-loader": "^8.2.5", + "@types/webpack-env": "^1.18.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "babel-loader": "^9.1.0", "cross-env": "^7.0.3", - "css-loader": "^6.7.1", - "eslint": "^8.21.0", + "css-loader": "^6.7.2", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "fork-ts-checker-webpack-plugin": "^7.2.13", "html-webpack-plugin": "^5.5.0", "style-loader": "^3.3.1", "ts-node": "^10.9.1", - "typescript": "~4.7.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.10.0" + "typescript": "~4.9.3", + "webpack": "^5.75.0", + "webpack-cli": "^5.0.0", + "webpack-dev-server": "^4.11.1" } } diff --git a/packages/redux-devtools-inspector-monitor-test-tab/jest.config.js b/packages/redux-devtools-inspector-monitor-test-tab/jest.config.js index bf9761dc..3244f843 100644 --- a/packages/redux-devtools-inspector-monitor-test-tab/jest.config.js +++ b/packages/redux-devtools-inspector-monitor-test-tab/jest.config.js @@ -4,9 +4,8 @@ module.exports = { moduleNameMapper: { '\\.css$': '/test/__mocks__/styleMock.ts', }, - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, + resolver: '/jestResolver.js', }; diff --git a/packages/redux-devtools-inspector-monitor-test-tab/jestResolver.js b/packages/redux-devtools-inspector-monitor-test-tab/jestResolver.js new file mode 100644 index 00000000..385b2568 --- /dev/null +++ b/packages/redux-devtools-inspector-monitor-test-tab/jestResolver.js @@ -0,0 +1,11 @@ +module.exports = (path, options) => { + return options.defaultResolver(path, { + ...options, + packageFilter: (pkg) => { + if (pkg.name === 'nanoid') { + pkg.exports['.'].browser = pkg.exports['.'].require; + } + return pkg; + }, + }); +}; diff --git a/packages/redux-devtools-inspector-monitor-test-tab/package.json b/packages/redux-devtools-inspector-monitor-test-tab/package.json index 89ab6458..3ab27cfc 100644 --- a/packages/redux-devtools-inspector-monitor-test-tab/package.json +++ b/packages/redux-devtools-inspector-monitor-test-tab/package.json @@ -43,7 +43,7 @@ "prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@redux-devtools/ui": "^1.3.0", "@types/prop-types": "^15.7.5", "es6template": "^1.0.5", @@ -51,40 +51,41 @@ "jsan": "^3.1.14", "object-path": "^0.11.8", "prop-types": "^15.8.1", - "react-icons": "^4.4.0", + "react-icons": "^4.6.0", "simple-diff": "^1.6.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@redux-devtools/core": "^3.13.0", "@redux-devtools/inspector-monitor": "^3.0.0", - "@testing-library/react": "^13.3.0", + "@testing-library/react": "^13.4.0", "@types/es6template": "^1.0.0", - "@types/jest": "^27.5.2", + "@types/jest": "^29.2.3", "@types/jsan": "^3.1.2", "@types/object-path": "^0.11.1", - "@types/react": "^18.0.17", + "@types/react": "^18.0.25", "@types/simple-diff": "^1.6.1", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-jest": "^27.1.6", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", - "jest": "^27.5.1", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", "redux": "^4.2.0", "rimraf": "^3.0.2", - "ts-jest": "^27.1.5", - "typescript": "~4.7.4" + "ts-jest": "^29.0.3", + "typescript": "~4.9.3" }, "peerDependencies": { "@redux-devtools/inspector-monitor": "^3.0.0", @@ -92,6 +93,6 @@ "@types/styled-components": "^5.1.26", "react": "^16.3.0 || ^17.0.0 || ^18.0.0", "redux": "^3.4.0 || ^4.0.0", - "styled-components": "^5.3.5" + "styled-components": "^5.3.6" } } diff --git a/packages/redux-devtools-inspector-monitor-test-tab/src/index.tsx b/packages/redux-devtools-inspector-monitor-test-tab/src/index.tsx index 1dd54784..91d23019 100644 --- a/packages/redux-devtools-inspector-monitor-test-tab/src/index.tsx +++ b/packages/redux-devtools-inspector-monitor-test-tab/src/index.tsx @@ -155,11 +155,13 @@ export class TestTab> extends Component< {...rest} /> )} - {!persistedState.hideTip && assertion && rest.startActionId === null && ( - - Hold SHIFT key to select more actions. - - )} + {!persistedState.hideTip && + assertion && + rest.startActionId === null && ( + + Hold SHIFT key to select more actions. + + )} {dialogStatus && ( open diff --git a/packages/redux-devtools-inspector-monitor-trace-tab/package.json b/packages/redux-devtools-inspector-monitor-trace-tab/package.json index 97af0def..ecd64221 100644 --- a/packages/redux-devtools-inspector-monitor-trace-tab/package.json +++ b/packages/redux-devtools-inspector-monitor-trace-tab/package.json @@ -31,8 +31,8 @@ }, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/runtime": "^7.18.9", - "@types/chrome": "^0.0.193", + "@babel/runtime": "^7.20.1", + "@types/chrome": "^0.0.203", "anser": "^2.1.1", "html-entities": "^2.3.3", "path-browserify": "^1.0.1", @@ -40,39 +40,40 @@ "source-map": "^0.5.7" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@redux-devtools/core": "^3.13.0", "@redux-devtools/inspector-monitor": "^3.0.0", - "@testing-library/react": "^13.3.0", + "@testing-library/react": "^13.4.0", "@types/babel__code-frame": "^7.0.3", "@types/html-entities": "^1.3.4", - "@types/jest": "^27.5.2", - "@types/node": "^16.11.47", + "@types/jest": "^29.2.3", + "@types/node": "^18.11.9", "@types/path-browserify": "^1.0.0", - "@types/react": "^18.0.17", + "@types/react": "^18.0.25", "@types/redux-devtools-themes": "^1.0.0", "@types/source-map": "0.5.2", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-jest": "^27.1.6", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", - "jest": "^27.5.1", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-test-renderer": "^18.2.0", "redux": "^4.2.0", "rimraf": "^3.0.2", - "ts-jest": "^27.1.5", - "typescript": "~4.7.4" + "ts-jest": "^29.0.3", + "typescript": "~4.9.3" }, "peerDependencies": { "@redux-devtools/inspector-monitor": "^3.0.0", diff --git a/packages/redux-devtools-inspector-monitor/demo/package.json b/packages/redux-devtools-inspector-monitor/demo/package.json index 2d417de0..d94f7894 100644 --- a/packages/redux-devtools-inspector-monitor/demo/package.json +++ b/packages/redux-devtools-inspector-monitor/demo/package.json @@ -17,39 +17,39 @@ "immutable": "^4.1.0", "lodash.shuffle": "^4.2.0", "react": "^18.2.0", - "react-bootstrap": "^2.5.0", + "react-bootstrap": "^2.6.0", "react-dom": "^18.2.0", - "react-redux": "^8.0.2", - "react-router-dom": "^6.3.0", + "react-redux": "^8.0.5", + "react-router-dom": "^6.4.3", "redux": "^4.2.0", "redux-logger": "^3.0.6" }, "devDependencies": { - "@babel/core": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/core": "^7.20.2", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@types/base16": "^1.0.2", "@types/lodash.shuffle": "^4.2.7", - "@types/node": "^16.11.47", - "@types/react": "^18.0.17", - "@types/react-dom": "^18.0.6", + "@types/node": "^18.11.9", + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", "@types/redux-logger": "^3.0.9", - "@types/webpack-env": "^1.17.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "babel-loader": "^8.2.5", + "@types/webpack-env": "^1.18.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "babel-loader": "^9.1.0", "cross-env": "^7.0.3", - "eslint": "^8.21.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "fork-ts-checker-webpack-plugin": "^7.2.13", "html-webpack-plugin": "^5.5.0", "ts-node": "^10.9.1", - "typescript": "~4.7.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.10.0" + "typescript": "~4.9.3", + "webpack": "^5.75.0", + "webpack-cli": "^5.0.0", + "webpack-dev-server": "^4.11.1" } } diff --git a/packages/redux-devtools-inspector-monitor/package.json b/packages/redux-devtools-inspector-monitor/package.json index b7425def..47cce392 100644 --- a/packages/redux-devtools-inspector-monitor/package.json +++ b/packages/redux-devtools-inspector-monitor/package.json @@ -35,9 +35,9 @@ "prepublish": "pnpm run type-check && pnpm run lint" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@types/dragula": "^3.7.1", - "@types/lodash": "^4.14.182", + "@types/lodash": "^4.14.190", "@types/prop-types": "^15.7.5", "dateformat": "^4.6.3", "hex-rgba": "^1.0.2", @@ -54,11 +54,11 @@ "redux-devtools-themes": "^1.0.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@redux-devtools/core": "^3.13.1", @@ -66,19 +66,19 @@ "@types/hex-rgba": "^1.0.1", "@types/history": "^4.7.11", "@types/lodash.debounce": "^4.0.7", - "@types/react": "^18.0.17", + "@types/react": "^18.0.25", "@types/react-dragula": "^1.1.0", "@types/redux-devtools-themes": "^1.0.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "react": "^18.2.0", "redux": "^4.2.0", "rimraf": "^3.0.2", - "typescript": "~4.7.4" + "typescript": "~4.9.3" }, "peerDependencies": { "@redux-devtools/core": "^3.13.1", diff --git a/packages/redux-devtools-inspector-monitor/src/ActionPreview.tsx b/packages/redux-devtools-inspector-monitor/src/ActionPreview.tsx index 5fbf4f3c..0d28d107 100644 --- a/packages/redux-devtools-inspector-monitor/src/ActionPreview.tsx +++ b/packages/redux-devtools-inspector-monitor/src/ActionPreview.tsx @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import { Base16Theme } from 'redux-devtools-themes'; import { Action } from 'redux'; -import { StylingFunction } from 'react-base16-styling'; +import type { StylingFunction } from 'react-base16-styling'; import { PerformAction } from '@redux-devtools/core'; import { Delta } from 'jsondiffpatch'; import { DEFAULT_STATE, DevtoolsInspectorState } from './redux'; diff --git a/packages/redux-devtools-inspector-monitor/src/index.ts b/packages/redux-devtools-inspector-monitor/src/index.ts index 0b0cd949..2861d4e5 100644 --- a/packages/redux-devtools-inspector-monitor/src/index.ts +++ b/packages/redux-devtools-inspector-monitor/src/index.ts @@ -1,3 +1,4 @@ +export type { StylingFunction } from 'react-base16-styling'; export { default as InspectorMonitor } from './DevtoolsInspector'; export type { Tab, TabComponentProps } from './ActionPreview'; export type { DevtoolsInspectorState } from './redux'; diff --git a/packages/redux-devtools-instrument/jest.config.js b/packages/redux-devtools-instrument/jest.config.js index 05d33807..f68efd05 100644 --- a/packages/redux-devtools-instrument/jest.config.js +++ b/packages/redux-devtools-instrument/jest.config.js @@ -1,8 +1,6 @@ module.exports = { preset: 'ts-jest', - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, }; diff --git a/packages/redux-devtools-instrument/package.json b/packages/redux-devtools-instrument/package.json index cbb4f0e3..8b24d9f6 100644 --- a/packages/redux-devtools-instrument/package.json +++ b/packages/redux-devtools-instrument/package.json @@ -41,30 +41,30 @@ "prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "lodash": "^4.17.21" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", - "@types/jest": "^27.5.2", - "@types/lodash": "^4.14.182", - "@types/node": "^16.11.47", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@types/jest": "^29.2.3", + "@types/lodash": "^4.14.190", + "@types/node": "^18.11.9", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "jest": "^27.5.1", + "eslint-plugin-jest": "^27.1.6", + "jest": "^29.3.1", "redux": "^4.2.0", "rimraf": "^3.0.2", - "rxjs": "^7.5.6", - "ts-jest": "^27.1.5", - "typescript": "~4.7.4" + "rxjs": "^7.5.7", + "ts-jest": "^29.0.3", + "typescript": "~4.9.3" }, "peerDependencies": { "redux": "^3.4.0 || ^4.0.0" diff --git a/packages/redux-devtools-log-monitor/package.json b/packages/redux-devtools-log-monitor/package.json index 2017c56a..ebe81399 100644 --- a/packages/redux-devtools-log-monitor/package.json +++ b/packages/redux-devtools-log-monitor/package.json @@ -41,7 +41,7 @@ "prepublish": "pnpm run type-check && pnpm run lint" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@types/lodash.debounce": "^4.0.7", "@types/prop-types": "^15.7.5", "@types/redux-devtools-themes": "^1.0.0", @@ -51,25 +51,25 @@ "redux-devtools-themes": "^1.0.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@redux-devtools/core": "^3.13.1", - "@types/react": "^18.0.17", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@types/react": "^18.0.25", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "react": "^18.2.0", "redux": "^4.2.0", "rimraf": "^3.0.2", - "typescript": "~4.7.4" + "typescript": "~4.9.3" }, "peerDependencies": { "@redux-devtools/core": "^3.13.1", diff --git a/packages/redux-devtools-remote/package.json b/packages/redux-devtools-remote/package.json index 9e8fba2d..29c078d0 100644 --- a/packages/redux-devtools-remote/package.json +++ b/packages/redux-devtools-remote/package.json @@ -41,32 +41,32 @@ "prepublish": "pnpm run type-check && pnpm run lint" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@redux-devtools/instrument": "^2.1.0", "@redux-devtools/utils": "^2.0.0", "jsan": "^3.1.14", "querystring": "^0.2.1", "rn-host-detect": "^1.2.0", - "socketcluster-client": "^16.1.1" + "socketcluster-client": "^17.1.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", "@types/jsan": "^3.1.2", - "@types/node": "^16.11.47", + "@types/node": "^18.11.9", "@types/rn-host-detect": "^1.2.0", "@types/socketcluster-client": "^16.0.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", "redux": "^4.2.0", "rimraf": "^3.0.2", - "typescript": "~4.7.4" + "typescript": "~4.9.3" }, "peerDependencies": { "redux": "^3.5.2 || ^4.0.0" diff --git a/packages/redux-devtools-rtk-query-monitor/demo/package.json b/packages/redux-devtools-rtk-query-monitor/demo/package.json index 8fd326b1..bd7af850 100644 --- a/packages/redux-devtools-rtk-query-monitor/demo/package.json +++ b/packages/redux-devtools-rtk-query-monitor/demo/package.json @@ -10,54 +10,54 @@ "type-check": "tsc --noEmit" }, "dependencies": { - "@babel/runtime": "^7.18.9", - "@chakra-ui/react": "^2.2.1", - "@emotion/react": "^11.10.0", - "@emotion/styled": "^11.10.0", - "@mswjs/data": "^0.10.1", + "@babel/runtime": "^7.20.1", + "@chakra-ui/react": "^2.4.1", + "@emotion/react": "^11.10.5", + "@emotion/styled": "^11.10.5", + "@mswjs/data": "^0.11.0", "@redux-devtools/core": "^3.13.0", "@redux-devtools/dock-monitor": "^3.0.0", "@redux-devtools/rtk-query-monitor": "^3.1.0", - "@reduxjs/toolkit": "^1.8.4", - "framer-motion": "^7.1.0", - "msw": "^0.44.2", + "@reduxjs/toolkit": "^1.9.0", + "framer-motion": "^7.6.12", + "msw": "^0.49.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-icons": "^4.4.0", + "react-icons": "^4.6.0", "react-is": "^18.2.0", - "react-redux": "^8.0.2", - "react-router-dom": "^6.3.0", - "styled-components": "^5.3.5" + "react-redux": "^8.0.5", + "react-router-dom": "^6.4.3", + "styled-components": "^5.3.6" }, "devDependencies": { - "@babel/core": "^7.18.10", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/core": "^7.20.2", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@types/copy-webpack-plugin": "^8.0.1", - "@types/node": "^16.11.47", - "@types/react": "^18.0.17", - "@types/react-dom": "^18.0.6", + "@types/node": "^18.11.9", + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", "@types/styled-components": "^5.1.26", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "babel-loader": "^8.2.5", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "babel-loader": "^9.1.0", "copy-webpack-plugin": "^11.0.0", "cross-env": "^7.0.3", - "css-loader": "^6.7.1", - "eslint": "^8.21.0", + "css-loader": "^6.7.2", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "fork-ts-checker-webpack-plugin": "^7.2.13", "html-webpack-plugin": "^5.5.0", "style-loader": "^3.3.1", "ts-node": "^10.9.1", - "typescript": "~4.7.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.10.0" + "typescript": "~4.9.3", + "webpack": "^5.75.0", + "webpack-cli": "^5.0.0", + "webpack-dev-server": "^4.11.1" }, "msw": { "workerDirectory": "public" diff --git a/packages/redux-devtools-rtk-query-monitor/jest.config.js b/packages/redux-devtools-rtk-query-monitor/jest.config.js index bf9761dc..3244f843 100644 --- a/packages/redux-devtools-rtk-query-monitor/jest.config.js +++ b/packages/redux-devtools-rtk-query-monitor/jest.config.js @@ -4,9 +4,8 @@ module.exports = { moduleNameMapper: { '\\.css$': '/test/__mocks__/styleMock.ts', }, - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, + resolver: '/jestResolver.js', }; diff --git a/packages/redux-devtools-rtk-query-monitor/jestResolver.js b/packages/redux-devtools-rtk-query-monitor/jestResolver.js new file mode 100644 index 00000000..385b2568 --- /dev/null +++ b/packages/redux-devtools-rtk-query-monitor/jestResolver.js @@ -0,0 +1,11 @@ +module.exports = (path, options) => { + return options.defaultResolver(path, { + ...options, + packageFilter: (pkg) => { + if (pkg.name === 'nanoid') { + pkg.exports['.'].browser = pkg.exports['.'].require; + } + return pkg; + }, + }); +}; diff --git a/packages/redux-devtools-rtk-query-monitor/package.json b/packages/redux-devtools-rtk-query-monitor/package.json index abebef0b..fb66ed1c 100644 --- a/packages/redux-devtools-rtk-query-monitor/package.json +++ b/packages/redux-devtools-rtk-query-monitor/package.json @@ -44,9 +44,9 @@ "prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@redux-devtools/ui": "^1.3.0", - "@types/lodash": "^4.14.182", + "@types/lodash": "^4.14.190", "@types/prop-types": "^15.7.5", "@types/redux-devtools-themes": "^1.0.0", "hex-rgba": "^1.0.2", @@ -60,44 +60,45 @@ "redux-devtools-themes": "^1.0.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@redux-devtools/core": "^3.13.1", - "@reduxjs/toolkit": "^1.8.4", + "@reduxjs/toolkit": "^1.9.0", "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "^13.3.0", - "@types/jest": "^27.5.2", + "@testing-library/react": "^13.4.0", + "@types/jest": "^29.2.3", "@types/hex-rgba": "^1.0.1", "@types/lodash.debounce": "^4.0.7", - "@types/react": "^18.0.17", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@types/react": "^18.0.25", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-jest": "^27.1.6", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", - "jest": "^27.5.1", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-redux": "^8.0.2", + "react-redux": "^8.0.5", "redux": "^4.2.0", "rimraf": "^3.0.2", - "ts-jest": "^27.1.5", - "typescript": "~4.7.4" + "ts-jest": "^29.0.3", + "typescript": "~4.9.3" }, "peerDependencies": { "@redux-devtools/core": "^3.13.1", - "@reduxjs/toolkit": "^1.8.4", + "@reduxjs/toolkit": "^1.9.0", "@types/react": "^16.3.0 || ^17.0.0 || ^18.0.0", "@types/styled-components": "^5.1.26", "react": "^16.3.0 || ^17.0.0 || ^18.0.0", "redux": "^3.4.0 || ^4.0.0", - "styled-components": "^5.3.5" + "styled-components": "^5.3.6" } } diff --git a/packages/redux-devtools-rtk-query-monitor/src/containers/mapProps.tsx b/packages/redux-devtools-rtk-query-monitor/src/containers/mapProps.tsx index 2dc00182..79271e9f 100644 --- a/packages/redux-devtools-rtk-query-monitor/src/containers/mapProps.tsx +++ b/packages/redux-devtools-rtk-query-monitor/src/containers/mapProps.tsx @@ -16,7 +16,8 @@ export function mapProps( render(): ReactNode { const mappedProps = mapper(this.props); - return ; + // TODO Not really sure why this is needed, but it is + return ; } static displayName = `mapProps(${ diff --git a/packages/redux-devtools-rtk-query-monitor/src/utils/comparators.ts b/packages/redux-devtools-rtk-query-monitor/src/utils/comparators.ts index ff923a21..8714a864 100644 --- a/packages/redux-devtools-rtk-query-monitor/src/utils/comparators.ts +++ b/packages/redux-devtools-rtk-query-monitor/src/utils/comparators.ts @@ -55,6 +55,9 @@ export function compareJSONPrimitive< return 0; } + if (a == null) return -1; + if (b == null) return 1; + return a > b ? 1 : -1; } diff --git a/packages/redux-devtools-rtk-query-monitor/test/integration.spec.tsx b/packages/redux-devtools-rtk-query-monitor/test/integration.spec.tsx index 4eaf9895..56bf85aa 100644 --- a/packages/redux-devtools-rtk-query-monitor/test/integration.spec.tsx +++ b/packages/redux-devtools-rtk-query-monitor/test/integration.spec.tsx @@ -96,7 +96,9 @@ describe('rtk-query-monitor standalone integration', () => { it('displays query data tab content', async () => { // `Promise.resolve()` hushes `@typescript-eslint/await-thenable` - await Promise.resolve(pokemonApi.util.getRunningOperationPromises()); + await Promise.resolve( + store.dispatch(pokemonApi.util.getRunningQueriesThunk() as any) + ); const { container } = render( diff --git a/packages/redux-devtools-serialize/jest.config.js b/packages/redux-devtools-serialize/jest.config.js index 05d33807..f68efd05 100644 --- a/packages/redux-devtools-serialize/jest.config.js +++ b/packages/redux-devtools-serialize/jest.config.js @@ -1,8 +1,6 @@ module.exports = { preset: 'ts-jest', - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, }; diff --git a/packages/redux-devtools-serialize/package.json b/packages/redux-devtools-serialize/package.json index 7dfa661f..e83f7779 100644 --- a/packages/redux-devtools-serialize/package.json +++ b/packages/redux-devtools-serialize/package.json @@ -37,28 +37,28 @@ "prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "jsan": "^3.1.14" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", - "@types/jest": "^27.5.2", + "@types/jest": "^29.2.3", "@types/jsan": "^3.1.2", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", + "eslint-plugin-jest": "^27.1.6", "immutable": "^4.1.0", - "jest": "^27.5.1", + "jest": "^29.3.1", "rimraf": "^3.0.2", - "ts-jest": "^27.1.5", - "typescript": "~4.7.4" + "ts-jest": "^29.0.3", + "typescript": "~4.9.3" }, "peerDependencies": { "immutable": "^4.1.0" diff --git a/packages/redux-devtools-serialize/test/__snapshots__/helpers.spec.ts.snap b/packages/redux-devtools-serialize/test/__snapshots__/helpers.spec.ts.snap index 00056f49..14984dc6 100644 --- a/packages/redux-devtools-serialize/test/__snapshots__/helpers.spec.ts.snap +++ b/packages/redux-devtools-serialize/test/__snapshots__/helpers.spec.ts.snap @@ -1,34 +1,34 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Helpers extract 1`] = ` -Object { +{ "__serializedType__": "testType", - "data": Object { + "data": { "testData": "test", }, } `; exports[`Helpers mark 1`] = ` -Object { +{ "__serializedType__": "testType", - "data": Object { + "data": { "testData": "test", }, } `; exports[`Helpers mark 2`] = ` -Object { +{ "__serializedType__": "testType", "data": "[object Object]", } `; exports[`Helpers refer 1`] = ` -Object { +{ "__serializedType__": "testType", - "data": Object { + "data": { "testData": "test", }, } diff --git a/packages/redux-devtools-serialize/test/__snapshots__/immutable.spec.ts.snap b/packages/redux-devtools-serialize/test/__snapshots__/immutable.spec.ts.snap index 4c460e04..2fe2a9f9 100644 --- a/packages/redux-devtools-serialize/test/__snapshots__/immutable.spec.ts.snap +++ b/packages/redux-devtools-serialize/test/__snapshots__/immutable.spec.ts.snap @@ -1,23 +1,23 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Immutable Nested stringify 1`] = `"{\\"data\\":[{\\"data\\":{\\"map\\":{\\"data\\":{\\"seq\\":{\\"data\\":[1,2,3,4,5,6,7,8],\\"__serializedType__\\":\\"ImmutableSeq\\"},\\"stack\\":{\\"data\\":[\\"a\\",\\"b\\",\\"c\\"],\\"__serializedType__\\":\\"ImmutableStack\\"}},\\"__serializedType__\\":\\"ImmutableOrderedMap\\"},\\"repeat\\":{\\"data\\":{\\"_value\\":\\"hi\\",\\"size\\":100},\\"__serializedType__\\":\\"ImmutableRepeat\\"}},\\"__serializedType__\\":\\"ImmutableRecord\\",\\"__serializedRef__\\":0},{\\"data\\":[10,9,8,7,6,5,4,3,2,1],\\"__serializedType__\\":\\"ImmutableOrderedSet\\"},{\\"data\\":{\\"_start\\":0,\\"_end\\":7,\\"_step\\":1,\\"size\\":7},\\"__serializedType__\\":\\"ImmutableRange\\"}],\\"__serializedType__\\":\\"ImmutableSet\\"}"`; +exports[`Immutable Nested stringify 1`] = `"{"data":[{"data":{"map":{"data":{"seq":{"data":[1,2,3,4,5,6,7,8],"__serializedType__":"ImmutableSeq"},"stack":{"data":["a","b","c"],"__serializedType__":"ImmutableStack"}},"__serializedType__":"ImmutableOrderedMap"},"repeat":{"data":{"_value":"hi","size":100},"__serializedType__":"ImmutableRepeat"}},"__serializedType__":"ImmutableRecord","__serializedRef__":0},{"data":[10,9,8,7,6,5,4,3,2,1],"__serializedType__":"ImmutableOrderedSet"},{"data":{"_start":0,"_end":7,"_step":1,"size":7},"__serializedType__":"ImmutableRange"}],"__serializedType__":"ImmutableSet"}"`; -exports[`Immutable Record stringify 1`] = `"{\\"data\\":{\\"a\\":1,\\"b\\":3},\\"__serializedType__\\":\\"ImmutableRecord\\",\\"__serializedRef__\\":0}"`; +exports[`Immutable Record stringify 1`] = `"{"data":{"a":1,"b":3},"__serializedType__":"ImmutableRecord","__serializedRef__":0}"`; -exports[`Immutable Stringify list 1`] = `"{\\"data\\":[1,2,3,4,5,6,7,8,9,10],\\"__serializedType__\\":\\"ImmutableList\\"}"`; +exports[`Immutable Stringify list 1`] = `"{"data":[1,2,3,4,5,6,7,8,9,10],"__serializedType__":"ImmutableList"}"`; -exports[`Immutable Stringify map 1`] = `"{\\"data\\":{\\"a\\":1,\\"b\\":2,\\"c\\":3,\\"d\\":4},\\"__serializedType__\\":\\"ImmutableMap\\"}"`; +exports[`Immutable Stringify map 1`] = `"{"data":{"a":1,"b":2,"c":3,"d":4},"__serializedType__":"ImmutableMap"}"`; -exports[`Immutable Stringify orderedMap 1`] = `"{\\"data\\":{\\"b\\":2,\\"a\\":1,\\"c\\":3,\\"d\\":4},\\"__serializedType__\\":\\"ImmutableOrderedMap\\"}"`; +exports[`Immutable Stringify orderedMap 1`] = `"{"data":{"b":2,"a":1,"c":3,"d":4},"__serializedType__":"ImmutableOrderedMap"}"`; -exports[`Immutable Stringify orderedSet 1`] = `"{\\"data\\":[10,9,8,7,6,5,4,3,2,1],\\"__serializedType__\\":\\"ImmutableOrderedSet\\"}"`; +exports[`Immutable Stringify orderedSet 1`] = `"{"data":[10,9,8,7,6,5,4,3,2,1],"__serializedType__":"ImmutableOrderedSet"}"`; -exports[`Immutable Stringify range 1`] = `"{\\"data\\":{\\"_start\\":0,\\"_end\\":7,\\"_step\\":1,\\"size\\":7},\\"__serializedType__\\":\\"ImmutableRange\\"}"`; +exports[`Immutable Stringify range 1`] = `"{"data":{"_start":0,"_end":7,"_step":1,"size":7},"__serializedType__":"ImmutableRange"}"`; -exports[`Immutable Stringify repeat 1`] = `"{\\"data\\":{\\"_value\\":\\"hi\\",\\"size\\":100},\\"__serializedType__\\":\\"ImmutableRepeat\\"}"`; +exports[`Immutable Stringify repeat 1`] = `"{"data":{"_value":"hi","size":100},"__serializedType__":"ImmutableRepeat"}"`; -exports[`Immutable Stringify seq 1`] = `"{\\"data\\":[1,2,3,4,5,6,7,8],\\"__serializedType__\\":\\"ImmutableSeq\\"}"`; +exports[`Immutable Stringify seq 1`] = `"{"data":[1,2,3,4,5,6,7,8],"__serializedType__":"ImmutableSeq"}"`; -exports[`Immutable Stringify set 1`] = `"{\\"data\\":[1,2,3,4,5,6,7,8,9,10],\\"__serializedType__\\":\\"ImmutableSet\\"}"`; +exports[`Immutable Stringify set 1`] = `"{"data":[1,2,3,4,5,6,7,8,9,10],"__serializedType__":"ImmutableSet"}"`; -exports[`Immutable Stringify stack 1`] = `"{\\"data\\":[\\"a\\",\\"b\\",\\"c\\"],\\"__serializedType__\\":\\"ImmutableStack\\"}"`; +exports[`Immutable Stringify stack 1`] = `"{"data":["a","b","c"],"__serializedType__":"ImmutableStack"}"`; diff --git a/packages/redux-devtools-slider-monitor/examples/todomvc/package.json b/packages/redux-devtools-slider-monitor/examples/todomvc/package.json index 331d36e6..b0897243 100644 --- a/packages/redux-devtools-slider-monitor/examples/todomvc/package.json +++ b/packages/redux-devtools-slider-monitor/examples/todomvc/package.json @@ -19,44 +19,44 @@ "@redux-devtools/dock-monitor": "^3.0.0", "@redux-devtools/log-monitor": "^4.0.0", "@redux-devtools/slider-monitor": "^4.0.0", - "classnames": "^2.3.1", + "classnames": "^2.3.2", "prop-types": "^15.8.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-is": "^18.2.0", - "react-redux": "^8.0.2", + "react-redux": "^8.0.5", "redux": "^4.2.0", - "styled-components": "^5.3.5", + "styled-components": "^5.3.6", "todomvc-app-css": "^2.4.2" }, "devDependencies": { - "@babel/core": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/core": "^7.20.2", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@types/classnames": "^2.3.1", - "@types/node": "^16.11.47", + "@types/node": "^18.11.9", "@types/prop-types": "^15.7.5", - "@types/react": "^18.0.17", - "@types/react-dom": "^18.0.6", + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", "@types/styled-components": "^5.1.26", - "@types/webpack-env": "^1.17.0", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "babel-loader": "^8.2.5", + "@types/webpack-env": "^1.18.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "babel-loader": "^9.1.0", "cross-env": "^7.0.3", - "css-loader": "^6.7.1", - "eslint": "^8.21.0", + "css-loader": "^6.7.2", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "fork-ts-checker-webpack-plugin": "^7.2.13", "html-webpack-plugin": "^5.5.0", "style-loader": "^3.3.1", "ts-node": "^10.9.1", - "typescript": "~4.7.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.10.0" + "typescript": "~4.9.3", + "webpack": "^5.75.0", + "webpack-cli": "^5.0.0", + "webpack-dev-server": "^4.11.1" } } diff --git a/packages/redux-devtools-slider-monitor/package.json b/packages/redux-devtools-slider-monitor/package.json index 3cb56327..4e5a677d 100644 --- a/packages/redux-devtools-slider-monitor/package.json +++ b/packages/redux-devtools-slider-monitor/package.json @@ -32,7 +32,7 @@ "prepublish": "pnpm run type-check && pnpm run lint" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@redux-devtools/ui": "^1.3.0", "@types/prop-types": "^15.7.5", "@types/redux-devtools-themes": "^1.0.0", @@ -40,30 +40,30 @@ "redux-devtools-themes": "^1.0.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@redux-devtools/core": "^3.13.1", - "@rollup/plugin-babel": "^5.3.1", - "@types/node": "^16.11.47", - "@types/react": "^18.0.17", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "eslint": "^8.21.0", + "@rollup/plugin-babel": "^6.0.3", + "@types/node": "^18.11.9", + "@types/react": "^18.0.25", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", "react": "^18.2.0", "redux": "^4.2.0", "rimraf": "^3.0.2", - "rollup": "^2.77.3", - "rollup-plugin-typescript2": "^0.32.1", - "tslib": "^2.4.0", - "typescript": "~4.7.4" + "rollup": "^3.5.0", + "rollup-plugin-typescript2": "^0.34.1", + "tslib": "^2.4.1", + "typescript": "~4.9.3" }, "peerDependencies": { "@redux-devtools/core": "^3.13.1", @@ -71,6 +71,6 @@ "@types/styled-components": "^5.1.26", "react": "^16.3.0 || ^17.0.0 || ^18.0.0", "redux": "^3.4.0 || ^4.0.0", - "styled-components": "^5.3.5" + "styled-components": "^5.3.6" } } diff --git a/packages/redux-devtools-ui/.storybook/main.js b/packages/redux-devtools-ui/.storybook/main.js index 0b048608..b2931238 100644 --- a/packages/redux-devtools-ui/.storybook/main.js +++ b/packages/redux-devtools-ui/.storybook/main.js @@ -1,4 +1,7 @@ module.exports = { + core: { + builder: 'webpack5', + }, stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], addons: [ { diff --git a/packages/redux-devtools-ui/jest.config.js b/packages/redux-devtools-ui/jest.config.js index bf9761dc..3244f843 100644 --- a/packages/redux-devtools-ui/jest.config.js +++ b/packages/redux-devtools-ui/jest.config.js @@ -4,9 +4,8 @@ module.exports = { moduleNameMapper: { '\\.css$': '/test/__mocks__/styleMock.ts', }, - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json', - }, + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }], }, + resolver: '/jestResolver.js', }; diff --git a/packages/redux-devtools-ui/jestResolver.js b/packages/redux-devtools-ui/jestResolver.js new file mode 100644 index 00000000..385b2568 --- /dev/null +++ b/packages/redux-devtools-ui/jestResolver.js @@ -0,0 +1,11 @@ +module.exports = (path, options) => { + return options.defaultResolver(path, { + ...options, + packageFilter: (pkg) => { + if (pkg.name === 'nanoid') { + pkg.exports['.'].browser = pkg.exports['.'].require; + } + return pkg; + }, + }); +}; diff --git a/packages/redux-devtools-ui/package.json b/packages/redux-devtools-ui/package.json index d0fba578..42cd478e 100644 --- a/packages/redux-devtools-ui/package.json +++ b/packages/redux-devtools-ui/package.json @@ -25,8 +25,8 @@ }, "scripts": { "start": "pnpm run storybook", - "storybook": "start-storybook -p 6006 -s ./fonts", - "build:storybook": "build-storybook -s ./fonts", + "storybook": "start-storybook --port 6006 --static-dir ./fonts", + "build:storybook": "build-storybook --static-dir ./fonts --quiet", "build": "pnpm run build:lib && pnpm run build:storybook", "build:lib": "pnpm run build:cjs && pnpm run build:esm && pnpm run build:types && pnpm run build:css", "build:cjs": "babel src --extensions \".ts,.tsx\" --out-dir lib/cjs", @@ -42,7 +42,7 @@ "prepublish": "pnpm run type-check && pnpm run lint && pnpm run test" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.20.1", "@rjsf/core": "^4.2.3", "@types/base16": "^1.0.2", "@types/codemirror": "^5.60.5", @@ -51,61 +51,64 @@ "@types/redux-devtools-themes": "^1.0.0", "@types/simple-element-resize-detector": "^1.3.0", "base16": "^1.0.0", - "codemirror": "^5.65.7", + "codemirror": "^5.65.10", "color": "^4.2.3", "prop-types": "^15.8.1", - "react-icons": "^4.4.0", - "react-select": "^5.4.0", + "react-icons": "^4.6.0", + "react-select": "^5.6.1", "redux-devtools-themes": "^1.0.0", "simple-element-resize-detector": "^1.3.0" }, "devDependencies": { - "@babel/cli": "^7.18.10", - "@babel/core": "^7.18.10", - "@babel/eslint-parser": "^7.18.9", - "@babel/plugin-transform-runtime": "^7.18.10", - "@babel/preset-env": "^7.18.10", + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.2", + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", - "@storybook/addon-essentials": "^6.5.10", - "@storybook/react": "^6.5.10", - "@testing-library/dom": "^8.17.1", - "@testing-library/react": "^13.3.0", + "@storybook/addon-essentials": "^6.5.13", + "@storybook/builder-webpack5": "^6.5.13", + "@storybook/manager-webpack5": "^6.5.13", + "@storybook/react": "^6.5.13", + "@testing-library/dom": "^8.19.0", + "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", "@types/color": "^3.0.3", - "@types/jest": "^27.5.2", - "@types/react": "^18.0.17", + "@types/jest": "^29.2.3", + "@types/react": "^18.0.25", "@types/styled-components": "^5.1.26", - "@typescript-eslint/eslint-plugin": "^5.33.0", - "@typescript-eslint/parser": "^5.33.0", - "babel-loader": "^8.2.5", - "csstype": "^3.1.0", - "eslint": "^8.21.0", + "@typescript-eslint/eslint-plugin": "^5.44.0", + "@typescript-eslint/parser": "^5.44.0", + "babel-loader": "^9.1.0", + "csstype": "^3.1.1", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-jest": "^26.8.2", - "eslint-plugin-react": "^7.30.1", + "eslint-plugin-jest": "^27.1.6", + "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", - "jest": "^27.5.1", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", "ncp": "^2.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-is": "^18.2.0", "require-from-string": "^2.0.2", "rimraf": "^3.0.2", - "styled-components": "^5.3.5", - "stylelint": "^14.10.0", - "stylelint-config-prettier": "^9.0.3", - "stylelint-config-standard": "^25.0.0", + "styled-components": "^5.3.6", + "stylelint": "^14.15.0", + "stylelint-config-prettier": "^9.0.4", + "stylelint-config-standard": "^29.0.0", "stylelint-config-styled-components": "^0.1.1", "stylelint-processor-styled-components": "^1.10.0", - "ts-jest": "^27.1.5", - "typescript": "~4.7.4", - "webpack": "^5.74.0" + "ts-jest": "^29.0.3", + "typescript": "~4.9.3", + "webpack": "^5.75.0" }, "peerDependencies": { "@types/react": "^16.3.0 || ^17.0.0 || ^18.0.0", "@types/styled-components": "^5.1.26", "react": "^16.3.0 || ^17.0.0 || ^18.0.0", - "styled-components": "^5.3.5" + "styled-components": "^5.3.6" } } diff --git a/packages/redux-devtools-ui/src/index.ts b/packages/redux-devtools-ui/src/index.ts index fdfad8bd..58b36732 100644 --- a/packages/redux-devtools-ui/src/index.ts +++ b/packages/redux-devtools-ui/src/index.ts @@ -1,3 +1,5 @@ +export type { Base16Theme } from 'base16'; + export { default as Container } from './Container'; export { default as Button } from './Button'; export { default as ContextMenu } from './ContextMenu'; diff --git a/packages/redux-devtools-ui/test/__snapshots__/Button.test.tsx.snap b/packages/redux-devtools-ui/test/__snapshots__/Button.test.tsx.snap index 1bcb5caf..9d6c2198 100644 --- a/packages/redux-devtools-ui/test/__snapshots__/Button.test.tsx.snap +++ b/packages/redux-devtools-ui/test/__snapshots__/Button.test.tsx.snap @@ -2,10 +2,10 @@ exports[`Button renders correctly 1`] = `
diff --git a/packages/redux-devtools-ui/test/__snapshots__/Container.test.tsx.snap b/packages/redux-devtools-ui/test/__snapshots__/Container.test.tsx.snap index bd15d5d5..7e498f65 100644 --- a/packages/redux-devtools-ui/test/__snapshots__/Container.test.tsx.snap +++ b/packages/redux-devtools-ui/test/__snapshots__/Container.test.tsx.snap @@ -2,7 +2,7 @@ exports[`Container renders correctly 1`] = `
Text
diff --git a/packages/redux-devtools-ui/test/__snapshots__/ContextMenu.test.tsx.snap b/packages/redux-devtools-ui/test/__snapshots__/ContextMenu.test.tsx.snap index ea4037d8..6a21114e 100644 --- a/packages/redux-devtools-ui/test/__snapshots__/ContextMenu.test.tsx.snap +++ b/packages/redux-devtools-ui/test/__snapshots__/ContextMenu.test.tsx.snap @@ -2,7 +2,7 @@ exports[`ContextMenu renders correctly 1`] = `
@@ -45,7 +45,7 @@ exports[`Dialog renders correctly 1`] = ` exports[`Dialog renders modal 1`] = `
@@ -61,19 +61,19 @@ exports[`Dialog renders modal 1`] = ` class="mc-dialog--footer" >
@@ -85,7 +85,7 @@ exports[`Dialog renders modal 1`] = ` exports[`Dialog renders with props 1`] = `
@@ -109,19 +109,19 @@ exports[`Dialog renders with props 1`] = ` class="mc-dialog--footer" >
diff --git a/packages/redux-devtools-ui/test/__snapshots__/Editor.test.tsx.snap b/packages/redux-devtools-ui/test/__snapshots__/Editor.test.tsx.snap index a47f3afd..0eb7381d 100644 --- a/packages/redux-devtools-ui/test/__snapshots__/Editor.test.tsx.snap +++ b/packages/redux-devtools-ui/test/__snapshots__/Editor.test.tsx.snap @@ -2,7 +2,7 @@ exports[`Editor renders correctly 1`] = `