mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2026-02-25 00:20:28 +03:00
Compare commits
81 Commits
remotedev-
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0cd341fe35 | ||
|
|
62cb6ddc25 | ||
|
|
ed6d65bd30 | ||
|
|
8f5cf1b5bc | ||
|
|
21d5699045 | ||
|
|
d609bfb14d | ||
|
|
b350e7bae9 | ||
|
|
35aa092d45 | ||
|
|
102c21d43e | ||
|
|
b8219c2afc | ||
|
|
1e701e45cb | ||
|
|
78ed3b1efe | ||
|
|
fbdbb56d19 | ||
|
|
c7e77652c2 | ||
|
|
558e2ecfd3 | ||
|
|
d0e04165ab | ||
|
|
aebfca4f93 | ||
|
|
56de415db0 | ||
|
|
36f1f36471 | ||
|
|
1039d6c827 | ||
|
|
ebaf7cf102 | ||
|
|
a4343c3116 | ||
|
|
75cafed485 | ||
|
|
a663401e42 | ||
|
|
60a027e016 | ||
|
|
85e0eb9a67 | ||
|
|
8e6014f9d3 | ||
|
|
70c98a0c05 | ||
|
|
ebaf3e0516 | ||
|
|
10f112c0ee | ||
|
|
ca3782c545 | ||
|
|
9d4924ef1d | ||
|
|
16087352e1 | ||
|
|
f80b555457 | ||
|
|
c7a9b746d5 | ||
|
|
f0330162e6 | ||
|
|
531aa338e7 | ||
|
|
8308db6832 | ||
|
|
4e44c2ca50 | ||
|
|
4e81dc99c4 | ||
|
|
e9e6b33a6d | ||
|
|
20883e5bdf | ||
|
|
0e9528ea37 | ||
|
|
e327727f91 | ||
|
|
4a616983aa | ||
|
|
13e65e0f73 | ||
|
|
c3e35815d8 | ||
|
|
b1e2d4bd58 | ||
|
|
68f82b6994 | ||
|
|
30308f54ab | ||
|
|
5b28b69261 | ||
|
|
7a48268a74 | ||
|
|
fa20f09fc1 | ||
|
|
1e0d09251b | ||
|
|
2b7e1b890a | ||
|
|
119864cd95 | ||
|
|
dfa6c937c3 | ||
|
|
8b554db5bf | ||
|
|
842419b802 | ||
|
|
1e3fb5e27a | ||
|
|
da5e9f0c1a | ||
|
|
54c40135e5 | ||
|
|
61632768a7 | ||
|
|
585d6b9220 | ||
|
|
6468c48b75 | ||
|
|
41f3c1a7b6 | ||
|
|
c82e511929 | ||
|
|
832f4dc195 | ||
|
|
4b35476610 | ||
|
|
7873dd23ae | ||
|
|
9444ca7e87 | ||
|
|
b2f01026cb | ||
|
|
04c234dd49 | ||
|
|
c394803622 | ||
|
|
fd56ac7d92 | ||
|
|
65dce0864e | ||
|
|
e02cfd327c | ||
|
|
9ddcef672f | ||
|
|
3f52f16473 | ||
|
|
9f12777827 | ||
|
|
5dc8611c38 |
5
.changeset/brown-stingrays-grow.md
Normal file
5
.changeset/brown-stingrays-grow.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'@redux-devtools/cli': major
|
||||
---
|
||||
|
||||
Require Node.js 20
|
||||
4
.github/workflows/CI.yml
vendored
4
.github/workflows/CI.yml
vendored
|
|
@ -11,9 +11,9 @@ jobs:
|
|||
runs-on: 'ubuntu-22.04'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
- uses: pnpm/action-setup@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 'lts/*'
|
||||
cache: 'pnpm'
|
||||
|
|
|
|||
10
.github/workflows/release.yml
vendored
10
.github/workflows/release.yml
vendored
|
|
@ -13,7 +13,7 @@ jobs:
|
|||
runs-on: 'ubuntu-22.04'
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
|
||||
fetch-depth: 0
|
||||
|
|
@ -21,7 +21,7 @@ jobs:
|
|||
- uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 'lts/*'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -40,19 +40,19 @@ jobs:
|
|||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
- name: Archive Chrome Extension
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: chrome
|
||||
path: extension/chrome/dist
|
||||
|
||||
- name: Archive Edge Extension
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: edge
|
||||
path: extension/edge/dist
|
||||
|
||||
- name: Archive Firefox Extension
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: firefox
|
||||
path: extension/firefox/dist
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { defineConfig } from 'eslint/config';
|
||||
import eslint from '@eslint/js';
|
||||
import eslintConfigPrettier from 'eslint-config-prettier';
|
||||
|
||||
export default [eslint.configs.recommended, eslintConfigPrettier];
|
||||
export default defineConfig([eslint.configs.recommended, eslintConfigPrettier]);
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import { defineConfig } from 'eslint/config';
|
||||
import eslint from '@eslint/js';
|
||||
import react from 'eslint-plugin-react';
|
||||
import { fixupPluginRules } from '@eslint/compat';
|
||||
import eslintPluginReactHooks from 'eslint-plugin-react-hooks';
|
||||
import reactHooks from 'eslint-plugin-react-hooks';
|
||||
import jest from 'eslint-plugin-jest';
|
||||
import eslintConfigPrettier from 'eslint-config-prettier';
|
||||
|
||||
export default [
|
||||
export default defineConfig([
|
||||
{
|
||||
files: ['test/**/*.js', 'test/**/*.jsx'],
|
||||
...eslint.configs.recommended,
|
||||
|
|
@ -24,9 +24,7 @@ export default [
|
|||
},
|
||||
{
|
||||
files: ['test/**/*.js', 'test/**/*.jsx'],
|
||||
plugins: {
|
||||
'react-hooks': fixupPluginRules(eslintPluginReactHooks),
|
||||
},
|
||||
...reactHooks.configs.flat.recommended,
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.js', 'test/**/*.jsx'],
|
||||
|
|
@ -40,4 +38,4 @@ export default [
|
|||
files: ['test/**/*.js', 'test/**/*.jsx'],
|
||||
...eslintConfigPrettier,
|
||||
},
|
||||
];
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -1,55 +1,57 @@
|
|||
import { defineConfig } from 'eslint/config';
|
||||
import eslint from '@eslint/js';
|
||||
import tseslint from 'typescript-eslint';
|
||||
import eslintConfigPrettier from 'eslint-config-prettier';
|
||||
|
||||
export default (tsconfigRootDir, files = ['**/*.ts'], project = true) => [
|
||||
{
|
||||
files,
|
||||
...eslint.configs.recommended,
|
||||
},
|
||||
...tseslint.configs.recommendedTypeChecked.map((config) => ({
|
||||
files,
|
||||
...config,
|
||||
})),
|
||||
...tseslint.configs.stylisticTypeChecked.map((config) => ({
|
||||
files,
|
||||
...config,
|
||||
})),
|
||||
{
|
||||
files,
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project,
|
||||
tsconfigRootDir,
|
||||
export default (tsconfigRootDir, files = ['**/*.ts'], project = true) =>
|
||||
defineConfig([
|
||||
{
|
||||
files,
|
||||
...eslint.configs.recommended,
|
||||
},
|
||||
...tseslint.configs.recommendedTypeChecked.map((config) => ({
|
||||
files,
|
||||
...config,
|
||||
})),
|
||||
...tseslint.configs.stylisticTypeChecked.map((config) => ({
|
||||
files,
|
||||
...config,
|
||||
})),
|
||||
{
|
||||
files,
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project,
|
||||
tsconfigRootDir,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
files,
|
||||
...eslintConfigPrettier,
|
||||
},
|
||||
{
|
||||
files,
|
||||
rules: {
|
||||
'@typescript-eslint/no-unsafe-return': 'off',
|
||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
||||
'@typescript-eslint/no-unsafe-call': 'off',
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||
'@typescript-eslint/prefer-optional-chain': 'off',
|
||||
'@typescript-eslint/no-base-to-string': 'off',
|
||||
'@typescript-eslint/consistent-indexed-object-style': 'off',
|
||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
||||
'@typescript-eslint/consistent-type-definitions': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/prefer-for-of': 'off',
|
||||
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
||||
'@typescript-eslint/class-literal-property-style': 'off',
|
||||
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
||||
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
|
||||
'@typescript-eslint/no-duplicate-type-constituents': 'off',
|
||||
'@typescript-eslint/array-type': 'off',
|
||||
'@typescript-eslint/prefer-function-type': 'off',
|
||||
{
|
||||
files,
|
||||
...eslintConfigPrettier,
|
||||
},
|
||||
},
|
||||
];
|
||||
{
|
||||
files,
|
||||
rules: {
|
||||
'@typescript-eslint/no-unsafe-return': 'off',
|
||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
||||
'@typescript-eslint/no-unsafe-call': 'off',
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||
'@typescript-eslint/prefer-optional-chain': 'off',
|
||||
'@typescript-eslint/no-base-to-string': 'off',
|
||||
'@typescript-eslint/consistent-indexed-object-style': 'off',
|
||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
||||
'@typescript-eslint/consistent-type-definitions': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/prefer-for-of': 'off',
|
||||
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
||||
'@typescript-eslint/class-literal-property-style': 'off',
|
||||
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
||||
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
|
||||
'@typescript-eslint/no-duplicate-type-constituents': 'off',
|
||||
'@typescript-eslint/array-type': 'off',
|
||||
'@typescript-eslint/prefer-function-type': 'off',
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -1,64 +1,66 @@
|
|||
import { defineConfig } from 'eslint/config';
|
||||
import eslint from '@eslint/js';
|
||||
import tseslint from 'typescript-eslint';
|
||||
import jest from 'eslint-plugin-jest';
|
||||
import eslintConfigPrettier from 'eslint-config-prettier';
|
||||
|
||||
export default (tsconfigRootDir) => [
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
...eslint.configs.recommended,
|
||||
},
|
||||
...tseslint.configs.recommendedTypeChecked.map((config) => ({
|
||||
files: ['test/**/*.ts'],
|
||||
...config,
|
||||
})),
|
||||
...tseslint.configs.stylisticTypeChecked.map((config) => ({
|
||||
files: ['test/**/*.ts'],
|
||||
...config,
|
||||
})),
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project: ['./tsconfig.test.json'],
|
||||
tsconfigRootDir,
|
||||
export default (tsconfigRootDir) =>
|
||||
defineConfig([
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
...eslint.configs.recommended,
|
||||
},
|
||||
...tseslint.configs.recommendedTypeChecked.map((config) => ({
|
||||
files: ['test/**/*.ts'],
|
||||
...config,
|
||||
})),
|
||||
...tseslint.configs.stylisticTypeChecked.map((config) => ({
|
||||
files: ['test/**/*.ts'],
|
||||
...config,
|
||||
})),
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project: ['./tsconfig.test.json'],
|
||||
tsconfigRootDir,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
...jest.configs['flat/recommended'],
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
...jest.configs['jest/style'],
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
...eslintConfigPrettier,
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-unsafe-return': 'off',
|
||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
||||
'@typescript-eslint/no-unsafe-call': 'off',
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||
'@typescript-eslint/prefer-optional-chain': 'off',
|
||||
'@typescript-eslint/no-base-to-string': 'off',
|
||||
'@typescript-eslint/consistent-indexed-object-style': 'off',
|
||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
||||
'@typescript-eslint/consistent-type-definitions': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/prefer-for-of': 'off',
|
||||
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
||||
'@typescript-eslint/class-literal-property-style': 'off',
|
||||
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
||||
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
|
||||
'@typescript-eslint/no-duplicate-type-constituents': 'off',
|
||||
'@typescript-eslint/array-type': 'off',
|
||||
'@typescript-eslint/prefer-function-type': 'off',
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
...jest.configs['flat/recommended'],
|
||||
},
|
||||
},
|
||||
];
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
...jest.configs['jest/style'],
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
...eslintConfigPrettier,
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-unsafe-return': 'off',
|
||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
||||
'@typescript-eslint/no-unsafe-call': 'off',
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||
'@typescript-eslint/prefer-optional-chain': 'off',
|
||||
'@typescript-eslint/no-base-to-string': 'off',
|
||||
'@typescript-eslint/consistent-indexed-object-style': 'off',
|
||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
||||
'@typescript-eslint/consistent-type-definitions': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/prefer-for-of': 'off',
|
||||
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
||||
'@typescript-eslint/class-literal-property-style': 'off',
|
||||
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
||||
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
|
||||
'@typescript-eslint/no-duplicate-type-constituents': 'off',
|
||||
'@typescript-eslint/array-type': 'off',
|
||||
'@typescript-eslint/prefer-function-type': 'off',
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -1,89 +1,88 @@
|
|||
import { defineConfig } from 'eslint/config';
|
||||
import eslint from '@eslint/js';
|
||||
import tseslint from 'typescript-eslint';
|
||||
import react from 'eslint-plugin-react';
|
||||
import { fixupPluginRules } from '@eslint/compat';
|
||||
import eslintPluginReactHooks from 'eslint-plugin-react-hooks';
|
||||
import reactHooks from 'eslint-plugin-react-hooks';
|
||||
import eslintConfigPrettier from 'eslint-config-prettier';
|
||||
|
||||
export default (
|
||||
tsconfigRootDir,
|
||||
files = ['**/*.ts', '**/*.tsx'],
|
||||
project = true,
|
||||
) => [
|
||||
{
|
||||
files,
|
||||
...eslint.configs.recommended,
|
||||
},
|
||||
...tseslint.configs.recommendedTypeChecked.map((config) => ({
|
||||
files,
|
||||
...config,
|
||||
})),
|
||||
...tseslint.configs.stylisticTypeChecked.map((config) => ({
|
||||
files,
|
||||
...config,
|
||||
})),
|
||||
{
|
||||
files,
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project,
|
||||
tsconfigRootDir,
|
||||
},
|
||||
) =>
|
||||
defineConfig([
|
||||
{
|
||||
files,
|
||||
...eslint.configs.recommended,
|
||||
},
|
||||
},
|
||||
{
|
||||
files,
|
||||
...react.configs.flat.recommended,
|
||||
},
|
||||
{
|
||||
files,
|
||||
settings: {
|
||||
react: {
|
||||
version: 'detect',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
files,
|
||||
plugins: {
|
||||
'react-hooks': fixupPluginRules(eslintPluginReactHooks),
|
||||
},
|
||||
},
|
||||
{
|
||||
files,
|
||||
...eslintConfigPrettier,
|
||||
},
|
||||
{
|
||||
files,
|
||||
rules: {
|
||||
'@typescript-eslint/no-unsafe-return': 'off',
|
||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
||||
'@typescript-eslint/no-unsafe-call': 'off',
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||
'@typescript-eslint/no-misused-promises': [
|
||||
'error',
|
||||
{
|
||||
checksVoidReturn: {
|
||||
attributes: false,
|
||||
},
|
||||
...tseslint.configs.recommendedTypeChecked.map((config) => ({
|
||||
files,
|
||||
...config,
|
||||
})),
|
||||
...tseslint.configs.stylisticTypeChecked.map((config) => ({
|
||||
files,
|
||||
...config,
|
||||
})),
|
||||
{
|
||||
files,
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project,
|
||||
tsconfigRootDir,
|
||||
},
|
||||
],
|
||||
'@typescript-eslint/prefer-optional-chain': 'off',
|
||||
'@typescript-eslint/no-base-to-string': 'off',
|
||||
'@typescript-eslint/consistent-indexed-object-style': 'off',
|
||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
||||
'@typescript-eslint/consistent-type-definitions': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/prefer-for-of': 'off',
|
||||
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
||||
'@typescript-eslint/class-literal-property-style': 'off',
|
||||
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
||||
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
|
||||
'@typescript-eslint/no-duplicate-type-constituents': 'off',
|
||||
'@typescript-eslint/array-type': 'off',
|
||||
'@typescript-eslint/prefer-function-type': 'off',
|
||||
'react/prop-types': 'off',
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
{
|
||||
files,
|
||||
...react.configs.flat.recommended,
|
||||
},
|
||||
{
|
||||
files,
|
||||
settings: {
|
||||
react: {
|
||||
version: 'detect',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
files,
|
||||
...reactHooks.configs.flat.recommended,
|
||||
},
|
||||
{
|
||||
files,
|
||||
...eslintConfigPrettier,
|
||||
},
|
||||
{
|
||||
files,
|
||||
rules: {
|
||||
'@typescript-eslint/no-unsafe-return': 'off',
|
||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
||||
'@typescript-eslint/no-unsafe-call': 'off',
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||
'@typescript-eslint/no-misused-promises': [
|
||||
'error',
|
||||
{
|
||||
checksVoidReturn: {
|
||||
attributes: false,
|
||||
},
|
||||
},
|
||||
],
|
||||
'@typescript-eslint/prefer-optional-chain': 'off',
|
||||
'@typescript-eslint/no-base-to-string': 'off',
|
||||
'@typescript-eslint/consistent-indexed-object-style': 'off',
|
||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
||||
'@typescript-eslint/consistent-type-definitions': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/prefer-for-of': 'off',
|
||||
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
||||
'@typescript-eslint/class-literal-property-style': 'off',
|
||||
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
||||
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
|
||||
'@typescript-eslint/no-duplicate-type-constituents': 'off',
|
||||
'@typescript-eslint/array-type': 'off',
|
||||
'@typescript-eslint/prefer-function-type': 'off',
|
||||
'react/prop-types': 'off',
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -1,85 +1,84 @@
|
|||
import { defineConfig } from 'eslint/config';
|
||||
import eslint from '@eslint/js';
|
||||
import tseslint from 'typescript-eslint';
|
||||
import react from 'eslint-plugin-react';
|
||||
import { fixupPluginRules } from '@eslint/compat';
|
||||
import eslintPluginReactHooks from 'eslint-plugin-react-hooks';
|
||||
import reactHooks from 'eslint-plugin-react-hooks';
|
||||
import jest from 'eslint-plugin-jest';
|
||||
import eslintConfigPrettier from 'eslint-config-prettier';
|
||||
|
||||
export default (tsconfigRootDir) => [
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...eslint.configs.recommended,
|
||||
},
|
||||
...tseslint.configs.recommendedTypeChecked.map((config) => ({
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...config,
|
||||
})),
|
||||
...tseslint.configs.stylisticTypeChecked.map((config) => ({
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...config,
|
||||
})),
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project: ['./tsconfig.test.json'],
|
||||
tsconfigRootDir,
|
||||
export default (tsconfigRootDir) =>
|
||||
defineConfig([
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...eslint.configs.recommended,
|
||||
},
|
||||
...tseslint.configs.recommendedTypeChecked.map((config) => ({
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...config,
|
||||
})),
|
||||
...tseslint.configs.stylisticTypeChecked.map((config) => ({
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...config,
|
||||
})),
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project: ['./tsconfig.test.json'],
|
||||
tsconfigRootDir,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...react.configs.flat.recommended,
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
settings: {
|
||||
react: {
|
||||
version: 'detect',
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...react.configs.flat.recommended,
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
settings: {
|
||||
react: {
|
||||
version: 'detect',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
plugins: {
|
||||
'react-hooks': fixupPluginRules(eslintPluginReactHooks),
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...reactHooks.configs.flat.recommended,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...jest.configs['flat/recommended'],
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...jest.configs['jest/style'],
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...eslintConfigPrettier,
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-unsafe-return': 'off',
|
||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
||||
'@typescript-eslint/no-unsafe-call': 'off',
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||
'@typescript-eslint/prefer-optional-chain': 'off',
|
||||
'@typescript-eslint/no-base-to-string': 'off',
|
||||
'@typescript-eslint/consistent-indexed-object-style': 'off',
|
||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
||||
'@typescript-eslint/consistent-type-definitions': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/prefer-for-of': 'off',
|
||||
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
||||
'@typescript-eslint/class-literal-property-style': 'off',
|
||||
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
||||
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
|
||||
'@typescript-eslint/no-duplicate-type-constituents': 'off',
|
||||
'@typescript-eslint/array-type': 'off',
|
||||
'@typescript-eslint/prefer-function-type': 'off',
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...jest.configs['flat/recommended'],
|
||||
},
|
||||
},
|
||||
];
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...jest.configs['jest/style'],
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
...eslintConfigPrettier,
|
||||
},
|
||||
{
|
||||
files: ['test/**/*.ts', 'test/**/*.tsx'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-unsafe-return': 'off',
|
||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
||||
'@typescript-eslint/no-unsafe-call': 'off',
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||
'@typescript-eslint/prefer-optional-chain': 'off',
|
||||
'@typescript-eslint/no-base-to-string': 'off',
|
||||
'@typescript-eslint/consistent-indexed-object-style': 'off',
|
||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
||||
'@typescript-eslint/consistent-type-definitions': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/prefer-for-of': 'off',
|
||||
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
||||
'@typescript-eslint/class-literal-property-style': 'off',
|
||||
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
||||
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
|
||||
'@typescript-eslint/no-duplicate-type-constituents': 'off',
|
||||
'@typescript-eslint/array-type': 'off',
|
||||
'@typescript-eslint/prefer-function-type': 'off',
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,14 @@
|
|||
# remotedev-redux-devtools-extension
|
||||
|
||||
## 3.2.11
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6163276]
|
||||
- @redux-devtools/app@7.0.0
|
||||
- @redux-devtools/slider-monitor@6.0.0
|
||||
- @redux-devtools/ui@2.0.0
|
||||
|
||||
## 3.2.10
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ const composeEnhancers =
|
|||
compose;
|
||||
```
|
||||
|
||||
> 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).
|
||||
> 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;
|
||||
|
|
@ -228,7 +228,7 @@ See [integrations](docs/Integrations.md) and [the blog post](https://medium.com/
|
|||
- [Methods (advanced API)](docs/API/Methods.md)
|
||||
- [FAQ](docs/FAQ.md)
|
||||
- Features
|
||||
- [Trace actions calls](/docs/Features/Trace.md)
|
||||
- [Trace actions calls](docs/Features/Trace.md)
|
||||
- [Troubleshooting](docs/Troubleshooting.md)
|
||||
- [Articles](docs/Articles.md)
|
||||
- [Videos](docs/Videos.md)
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@ _number_ - maximum stack trace frames to be stored (in case `trace` option was p
|
|||
_boolean_ or _object_ which contains:
|
||||
|
||||
- **options** `object or boolean`:
|
||||
|
||||
- `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).
|
||||
- `false` - will handle also circular references.
|
||||
- `true` - will handle also date, regex, undefined, primitives, error objects, symbols, maps, sets and functions.
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@ module.exports = {
|
|||
'\\.css$': '<rootDir>/test/__mocks__/styleMock.js',
|
||||
},
|
||||
transformIgnorePatterns: [
|
||||
'node_modules/(?!.pnpm|@babel/code-frame|@babel/highlight|@babel/helper-validator-identifier|chalk|d3|dateformat|delaunator|internmap|jsondiffpatch|lodash-es|nanoid|robust-predicates|uuid)',
|
||||
'node_modules/(?!.pnpm|@babel/code-frame|@babel/highlight|@babel/helper-validator-identifier|@x0k/json-schema-merge|chalk|color|d3|dateformat|delaunator|internmap|jsondiffpatch|js-tokens|lodash-es|nanoid|robust-predicates|uuid)',
|
||||
],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"private": true,
|
||||
"name": "remotedev-redux-devtools-extension",
|
||||
"version": "3.2.10",
|
||||
"version": "3.2.11",
|
||||
"description": "Redux Developer Tools for debugging application state changes.",
|
||||
"homepage": "https://github.com/reduxjs/redux-devtools/tree/master/extension",
|
||||
"license": "MIT",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"build:examples": "babel-node examples/buildAll.js",
|
||||
"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:chrome": "cross-env SE_FORCE_BROWSER_DOWNLOAD=true jest test/chrome",
|
||||
"build:test:electron:fixture": "webpack --config test/electron/fixture/webpack.config.js",
|
||||
"test:electron": "pnpm run build:test:electron:fixture && jest test/electron",
|
||||
"test": "pnpm run test:app && pnpm run test:chrome && pnpm run test:electron",
|
||||
|
|
@ -25,6 +25,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@redux-devtools/app": "workspace:^",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@redux-devtools/instrument": "workspace:^",
|
||||
|
|
@ -32,50 +33,48 @@
|
|||
"@redux-devtools/slider-monitor": "workspace:^",
|
||||
"@redux-devtools/ui": "workspace:^",
|
||||
"@redux-devtools/utils": "workspace:^",
|
||||
"@reduxjs/toolkit": "^2.6.0",
|
||||
"@reduxjs/toolkit": "^2.11.2",
|
||||
"@types/jsan": "^3.1.5",
|
||||
"jsan": "^3.1.14",
|
||||
"localforage": "^1.10.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"lodash-es": "^4.17.22",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-is": "^18.3.1",
|
||||
"react-is": "^19.2.3",
|
||||
"react-json-tree": "workspace:^",
|
||||
"react-redux": "^9.2.0",
|
||||
"redux": "^5.0.1",
|
||||
"redux-persist": "^6.0.0",
|
||||
"styled-components": "^5.3.11"
|
||||
"redux-persist": "^6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/register": "^7.25.9",
|
||||
"@testing-library/dom": "^10.4.0",
|
||||
"@testing-library/jest-dom": "^6.6.3",
|
||||
"@testing-library/react": "^16.2.0",
|
||||
"@types/chrome": "^0.0.308",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@babel/register": "^7.28.6",
|
||||
"@testing-library/dom": "^10.4.1",
|
||||
"@testing-library/jest-dom": "^6.9.1",
|
||||
"@testing-library/react": "^16.3.1",
|
||||
"@types/chrome": "^0.1.33",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-dom": "^18.3.5",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"@types/react": "^19.2.8",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"chromedriver": "^126.0.5",
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"electron": "^31.7.7",
|
||||
"esbuild": "^0.25.0",
|
||||
"globals": "^15.15.0",
|
||||
"immutable": "^5.0.3",
|
||||
"jest": "^29.7.0",
|
||||
"jest-environment-jsdom": "^29.7.0",
|
||||
"esbuild": "^0.27.2",
|
||||
"globals": "^17.0.0",
|
||||
"immutable": "^5.1.4",
|
||||
"jest": "^30.2.0",
|
||||
"jest-environment-jsdom": "^30.2.0",
|
||||
"pug": "^3.0.3",
|
||||
"rimraf": "^6.0.1",
|
||||
"selenium-webdriver": "^4.29.0",
|
||||
"rimraf": "^6.1.2",
|
||||
"selenium-webdriver": "^4.39.0",
|
||||
"sinon-chrome": "^3.0.1",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "~5.8.2",
|
||||
"webpack": "^5.98.0",
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "~5.9.3",
|
||||
"webpack": "^5.104.1",
|
||||
"webpack-cli": "^6.0.1"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,11 @@ export function getReport(
|
|||
tabId: string | number,
|
||||
instanceId: number,
|
||||
) {
|
||||
chrome.storage.local.get(['s:hostname', 's:port', 's:secure'], (options) => {
|
||||
chrome.storage.local.get<{
|
||||
's:hostname': string | undefined;
|
||||
's:port': string | undefined;
|
||||
's:secure': string | undefined;
|
||||
}>(['s:hostname', 's:port', 's:secure'], (options) => {
|
||||
if (!options['s:hostname'] || !options['s:port']) return;
|
||||
const url = `${options['s:secure'] ? 'https' : 'http'}://${
|
||||
options['s:hostname']
|
||||
|
|
|
|||
|
|
@ -472,7 +472,7 @@ function messaging<S, A extends Action<string>>(
|
|||
}
|
||||
if (!request.message) return;
|
||||
const reducerError = getReducerError();
|
||||
chrome.notifications.create('app-error', {
|
||||
void chrome.notifications.create('app-error', {
|
||||
type: 'basic',
|
||||
title: reducerError
|
||||
? 'An error occurred in the reducer'
|
||||
|
|
@ -628,7 +628,7 @@ chrome.runtime.onMessage.addListener(messaging);
|
|||
chrome.runtime.onMessageExternal.addListener(messaging);
|
||||
|
||||
chrome.notifications.onClicked.addListener((id) => {
|
||||
chrome.notifications.clear(id);
|
||||
void chrome.notifications.clear(id);
|
||||
openDevToolsWindow('devtools-window');
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ const migrateOldOptions = (oldOptions: OldOrNewOptions): Options => ({
|
|||
export const getOptions = (callback: (options: Options) => void) => {
|
||||
if (options) callback(options);
|
||||
else {
|
||||
chrome.storage.sync.get(
|
||||
chrome.storage.sync.get<OldOrNewOptions>(
|
||||
{
|
||||
useEditor: 0,
|
||||
editor: '',
|
||||
|
|
@ -92,7 +92,7 @@ export const getOptions = (callback: (options: Options) => void) => {
|
|||
showContextMenus: true,
|
||||
},
|
||||
function (items) {
|
||||
options = migrateOldOptions(items as OldOrNewOptions);
|
||||
options = migrateOldOptions(items);
|
||||
callback(options);
|
||||
},
|
||||
);
|
||||
|
|
|
|||
27
package.json
27
package.json
|
|
@ -1,19 +1,18 @@
|
|||
{
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.26.9",
|
||||
"@changesets/cli": "^2.28.1",
|
||||
"@eslint/compat": "^1.2.7",
|
||||
"@eslint/js": "^9.21.0",
|
||||
"eslint": "^9.21.0",
|
||||
"eslint-config-prettier": "^10.0.2",
|
||||
"eslint-plugin-jest": "^28.11.0",
|
||||
"eslint-plugin-react": "^7.37.4",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
"jest": "^29.7.0",
|
||||
"prettier": "3.5.3",
|
||||
"typescript": "~5.8.2",
|
||||
"typescript-eslint": "^8.26.0"
|
||||
"@babel/core": "^7.28.6",
|
||||
"@changesets/cli": "^2.29.8",
|
||||
"@eslint/js": "^9.39.2",
|
||||
"eslint": "^9.39.2",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"eslint-plugin-jest": "^29.12.1",
|
||||
"eslint-plugin-react": "^7.37.5",
|
||||
"eslint-plugin-react-hooks": "^7.0.1",
|
||||
"jest": "^30.2.0",
|
||||
"prettier": "3.8.0",
|
||||
"typescript": "~5.9.3",
|
||||
"typescript-eslint": "^8.53.0"
|
||||
},
|
||||
"scripts": {
|
||||
"format": "prettier --write .",
|
||||
|
|
@ -24,5 +23,5 @@
|
|||
"clean:all": "pnpm --recursive run clean",
|
||||
"release": "pnpm build:all && pnpm publish -r"
|
||||
},
|
||||
"packageManager": "pnpm@9.15.6"
|
||||
"packageManager": "pnpm@10.28.0"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
### Major Changes
|
||||
|
||||
- b323f77d: Upgrade D3
|
||||
|
||||
- Remove UMD build.
|
||||
- Split `style` option into `chartStyles`, `nodeStyleOptions`, `textStyleOptions`, and `linkStyles`.
|
||||
- The shape of the argument passed to the `onClickText` option has been updated.
|
||||
|
|
|
|||
|
|
@ -29,18 +29,18 @@
|
|||
"map2tree": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@types/node": "^22.13.9",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@types/node": "^24.10.9",
|
||||
"babel-loader": "^10.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
||||
"html-webpack-plugin": "^5.6.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"fork-ts-checker-webpack-plugin": "^9.1.0",
|
||||
"html-webpack-plugin": "^5.6.5",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "~5.8.2",
|
||||
"webpack": "^5.98.0",
|
||||
"typescript": "~5.9.3",
|
||||
"webpack": "^5.104.1",
|
||||
"webpack-cli": "^6.0.1",
|
||||
"webpack-dev-server": "^5.2.0"
|
||||
"webpack-dev-server": "^5.2.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,11 +42,11 @@
|
|||
"d3tooltip": "workspace:^",
|
||||
"deepmerge": "^4.3.1",
|
||||
"map2tree": "workspace:^",
|
||||
"ramda": "^0.30.1"
|
||||
"ramda": "^0.32.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/ramda": "^0.30.2",
|
||||
"rimraf": "^6.0.1",
|
||||
"typescript": "~5.8.2"
|
||||
"@types/ramda": "^0.31.1",
|
||||
"rimraf": "^6.1.2",
|
||||
"typescript": "~5.9.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
### Major Changes
|
||||
|
||||
- b323f77d: Upgrade D3
|
||||
|
||||
- Remove UMD build.
|
||||
- Upgrade d3 peer dependency from v3 to v7.
|
||||
- Remove `attr` configuration method.
|
||||
|
|
|
|||
|
|
@ -35,8 +35,8 @@
|
|||
"devDependencies": {
|
||||
"@types/d3": "^7.4.3",
|
||||
"d3": "^7.9.0",
|
||||
"rimraf": "^6.0.1",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/d3": "^7.4.3",
|
||||
|
|
|
|||
|
|
@ -37,15 +37,15 @@
|
|||
"prepublish": "pnpm run lint && pnpm run test"
|
||||
},
|
||||
"dependencies": {
|
||||
"lodash-es": "^4.17.21"
|
||||
"lodash-es": "^4.17.22"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"immutable": "^5.0.3",
|
||||
"jest": "^29.7.0",
|
||||
"rimraf": "^6.0.1",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "~5.8.2"
|
||||
"immutable": "^5.1.4",
|
||||
"jest": "^30.2.0",
|
||||
"rimraf": "^6.1.2",
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "~5.9.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,19 +36,19 @@
|
|||
"prepublish": "pnpm run lint && pnpm run test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/lodash": "^4.17.16",
|
||||
"color": "^4.2.3",
|
||||
"csstype": "^3.1.3",
|
||||
"lodash-es": "^4.17.21"
|
||||
"@types/lodash": "^4.17.23",
|
||||
"color": "^5.0.3",
|
||||
"csstype": "^3.2.3",
|
||||
"lodash-es": "^4.17.22"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/color": "^4.2.0",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"jest": "^29.7.0",
|
||||
"jest-environment-jsdom": "^29.7.0",
|
||||
"rimraf": "^6.0.1",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "~5.8.2"
|
||||
"jest": "^30.2.0",
|
||||
"jest-environment-jsdom": "^30.2.0",
|
||||
"rimraf": "^6.1.2",
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "~5.9.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,31 +10,30 @@
|
|||
"type-check": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"react": "^18.3.1",
|
||||
"react-bootstrap": "^2.10.9",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"react": "^19.2.3",
|
||||
"react-bootstrap": "^2.10.10",
|
||||
"react-dock": "workspace:^",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-is": "^18.3.1",
|
||||
"styled-components": "^5.3.11"
|
||||
"react-is": "^19.2.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@types/node": "^22.13.9",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-dom": "^18.3.5",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@types/node": "^24.10.9",
|
||||
"@types/react": "^19.2.8",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"babel-loader": "^10.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
||||
"html-webpack-plugin": "^5.6.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"fork-ts-checker-webpack-plugin": "^9.1.0",
|
||||
"html-webpack-plugin": "^5.6.5",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "~5.8.2",
|
||||
"webpack": "^5.98.0",
|
||||
"typescript": "~5.9.3",
|
||||
"webpack": "^5.104.1",
|
||||
"webpack-cli": "^6.0.1",
|
||||
"webpack-dev-server": "^5.2.0"
|
||||
"webpack-dev-server": "^5.2.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import React, { Component } from 'react';
|
|||
import Button from 'react-bootstrap/Button';
|
||||
import Form from 'react-bootstrap/Form';
|
||||
import { BsX } from 'react-icons/bs';
|
||||
import styled from 'styled-components';
|
||||
import styled from '@emotion/styled';
|
||||
|
||||
import { Dock } from 'react-dock';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
import eslintJs from '../../eslint.js.config.base.mjs';
|
||||
import eslintTsReact from '../../eslint.ts.react.config.base.mjs';
|
||||
import eslintTsReactJest from '../../eslint.ts.react.jest.config.base.mjs';
|
||||
|
||||
export default [
|
||||
...eslintJs,
|
||||
...eslintTsReact(import.meta.dirname),
|
||||
...eslintTsReactJest(import.meta.dirname),
|
||||
{
|
||||
ignores: ['demo', 'lib'],
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
module.exports = {
|
||||
testEnvironment: 'jsdom',
|
||||
extensionsToTreatAsEsm: ['.ts', '.tsx'],
|
||||
moduleNameMapper: {
|
||||
'^(\\.{1,2}/.*)\\.js$': '$1',
|
||||
},
|
||||
transform: {
|
||||
'^.+\\.tsx?$': [
|
||||
'ts-jest',
|
||||
{ tsconfig: 'tsconfig.test.json', useESM: true },
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
@ -29,27 +29,20 @@
|
|||
"scripts": {
|
||||
"build": "tsc",
|
||||
"clean": "rimraf lib",
|
||||
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
||||
"lint": "eslint .",
|
||||
"type-check": "tsc --noEmit",
|
||||
"prepack": "pnpm run clean && pnpm run build",
|
||||
"prepublish": "pnpm run lint && pnpm run test"
|
||||
"prepublish": "pnpm run lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"lodash-es": "^4.17.21"
|
||||
"lodash-es": "^4.17.22"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-test-renderer": "^18.3.1",
|
||||
"jest": "^29.7.0",
|
||||
"jest-environment-jsdom": "^29.7.0",
|
||||
"react": "^18.3.1",
|
||||
"react-test-renderer": "^18.3.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "~5.8.2"
|
||||
"@types/react": "^19.2.8",
|
||||
"react": "^19.2.3",
|
||||
"rimraf": "^6.1.2",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/react": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
|
|
|
|||
|
|
@ -228,12 +228,12 @@ interface Props {
|
|||
dockHiddenStyle?: React.CSSProperties | null;
|
||||
duration: number;
|
||||
children?:
|
||||
| React.FunctionComponent<{
|
||||
| ((params: {
|
||||
position: 'left' | 'right' | 'top' | 'bottom';
|
||||
isResizing: boolean | undefined;
|
||||
size: number;
|
||||
isVisible: boolean | undefined;
|
||||
}>
|
||||
}) => ReactNode)
|
||||
| ReactNode;
|
||||
}
|
||||
|
||||
|
|
@ -363,14 +363,7 @@ export default class Dock extends Component<Props, State> {
|
|||
/>
|
||||
<div style={styles.dockContent}>
|
||||
{typeof children === 'function'
|
||||
? (
|
||||
children as React.FunctionComponent<{
|
||||
position: 'left' | 'right' | 'top' | 'bottom';
|
||||
isResizing: boolean | undefined;
|
||||
size: number;
|
||||
isVisible: boolean | undefined;
|
||||
}>
|
||||
)({
|
||||
? children({
|
||||
position,
|
||||
isResizing,
|
||||
size,
|
||||
|
|
|
|||
|
|
@ -39,7 +39,8 @@ const prefixes = ['Moz', 'Webkit', 'ms', 'O'];
|
|||
function prefixProp<Value>(key: string, value: Value) {
|
||||
return prefixes.reduce<{ [key: string]: Value }>(
|
||||
(obj, pre) => (
|
||||
(obj[pre + key[0].toUpperCase() + key.substr(1)] = value), obj
|
||||
(obj[pre + key[0].toUpperCase() + key.substr(1)] = value),
|
||||
obj
|
||||
),
|
||||
{},
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
import React from 'react';
|
||||
import TestRenderer from 'react-test-renderer/shallow';
|
||||
import Dock from '../src/Dock.js';
|
||||
|
||||
describe('Dock component', function () {
|
||||
it('should have shallow rendering', function () {
|
||||
const renderer = TestRenderer.createRenderer();
|
||||
const DockEl = <Dock />;
|
||||
renderer.render(DockEl);
|
||||
|
||||
const result = renderer.getRenderOutput();
|
||||
|
||||
expect(DockEl.props).toEqual({
|
||||
position: 'left',
|
||||
zIndex: 99999999,
|
||||
fluid: true,
|
||||
defaultSize: 0.3,
|
||||
dimMode: 'opaque',
|
||||
duration: 200,
|
||||
});
|
||||
expect(result.type).toBe('div');
|
||||
});
|
||||
});
|
||||
|
|
@ -22,7 +22,6 @@
|
|||
### Major Changes
|
||||
|
||||
- 81926f32: Remove UNSAFE method from react-json-tree
|
||||
|
||||
- Replace `shouldExpandNode` with `shouldExpandNodeInitially`. This function is now only called when a node in the tree is first rendered, when before it would update the expanded state of the node if the results of calling `shouldExpandNode` changed between renders. There is no way to replicate the old behavior exactly, but the new behavior is the intended behavior for the use cases within Redux DevTools. Please open an issue if you need a way to programatically control the expanded state of nodes.
|
||||
- Bump the minimum React version from `16.3.0` to `16.8.0` so that `react-json-tree` can use hooks.
|
||||
- Tightened TypeScript prop types to use `unknown` instead of `any` where possible and make the key path array `readonly`.
|
||||
|
|
|
|||
|
|
@ -19,28 +19,28 @@
|
|||
"type-check": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"immutable": "^5.0.3",
|
||||
"react": "^18.3.1",
|
||||
"immutable": "^5.1.4",
|
||||
"react": "^19.2.3",
|
||||
"react-base16-styling": "workspace:^",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-json-tree": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@types/node": "^22.13.9",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-dom": "^18.3.5",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@types/node": "^24.10.9",
|
||||
"@types/react": "^19.2.8",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"babel-loader": "^10.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
||||
"html-webpack-plugin": "^5.6.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"fork-ts-checker-webpack-plugin": "^9.1.0",
|
||||
"html-webpack-plugin": "^5.6.5",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "~5.8.2",
|
||||
"webpack": "^5.98.0",
|
||||
"typescript": "~5.9.3",
|
||||
"webpack": "^5.104.1",
|
||||
"webpack-cli": "^6.0.1",
|
||||
"webpack-dev-server": "^5.2.0"
|
||||
"webpack-dev-server": "^5.2.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,19 +40,17 @@
|
|||
"prepublish": "pnpm run lint && pnpm run test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/lodash": "^4.17.16",
|
||||
"@types/lodash": "^4.17.23",
|
||||
"react-base16-styling": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-test-renderer": "^18.3.1",
|
||||
"jest": "^29.7.0",
|
||||
"react": "^18.3.1",
|
||||
"react-test-renderer": "^18.3.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "~5.8.2"
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/react": "^19.2.8",
|
||||
"jest": "^30.2.0",
|
||||
"react": "^19.2.3",
|
||||
"rimraf": "^6.1.2",
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
import React from 'react';
|
||||
import TestRenderer from 'react-test-renderer/shallow';
|
||||
|
||||
import { JSONTree } from '../src/index.js';
|
||||
import JSONNode from '../src/JSONNode.js';
|
||||
|
||||
const BASIC_DATA = { a: 1, b: 'c' };
|
||||
|
||||
function render(component: React.ReactElement) {
|
||||
const renderer = TestRenderer.createRenderer();
|
||||
renderer.render(component);
|
||||
return renderer.getRenderOutput();
|
||||
}
|
||||
|
||||
describe('JSONTree', () => {
|
||||
it('should render basic tree', () => {
|
||||
const result = render(<JSONTree data={BASIC_DATA} />);
|
||||
|
||||
expect(result.type).toBe('ul');
|
||||
expect(result.props.children.type.name).toBe(JSONNode.name);
|
||||
});
|
||||
});
|
||||
|
|
@ -1,5 +1,21 @@
|
|||
# @redux-devtools/app-core
|
||||
|
||||
## 2.0.0
|
||||
|
||||
### Major Changes
|
||||
|
||||
- 6163276: Replace styled-components with Emotion
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6163276]
|
||||
- Updated dependencies [20883e5]
|
||||
- @redux-devtools/inspector-monitor-test-tab@5.0.0
|
||||
- @redux-devtools/rtk-query-monitor@6.0.0
|
||||
- @redux-devtools/slider-monitor@6.0.0
|
||||
- @redux-devtools/ui@2.0.0
|
||||
- @redux-devtools/inspector-monitor@6.1.2
|
||||
|
||||
## 1.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
|||
|
|
@ -10,6 +10,6 @@ module.exports = {
|
|||
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }],
|
||||
},
|
||||
transformIgnorePatterns: [
|
||||
'node_modules/(?!.pnpm|@babel/code-frame|@babel/highlight|@babel/helper-validator-identifier|chalk|d3|dateformat|delaunator|internmap|jsondiffpatch|lodash-es|nanoid|robust-predicates|uuid)',
|
||||
'node_modules/(?!.pnpm|@babel/code-frame|@babel/highlight|@babel/helper-validator-identifier|@x0k/json-schema-merge|chalk|color|d3|dateformat|delaunator|internmap|jsondiffpatch|js-tokens|lodash-es|nanoid|robust-predicates|uuid)',
|
||||
],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@redux-devtools/app-core",
|
||||
"version": "1.1.2",
|
||||
"version": "2.0.0",
|
||||
"description": "Redux DevTools app core",
|
||||
"homepage": "https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools-app-core",
|
||||
"bugs": {
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint && pnpm run test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"@babel/runtime": "^7.28.6",
|
||||
"@redux-devtools/chart-monitor": "workspace:^",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@redux-devtools/inspector-monitor": "workspace:^",
|
||||
|
|
@ -48,56 +48,54 @@
|
|||
"d3-state-visualizer": "workspace:^",
|
||||
"javascript-stringify": "^2.1.0",
|
||||
"jsan": "^3.1.14",
|
||||
"jsondiffpatch": "^0.6.0",
|
||||
"jsondiffpatch": "^0.7.3",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-is": "^18.3.1"
|
||||
"react-is": "^19.2.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@reduxjs/toolkit": "^2.6.0",
|
||||
"@rjsf/core": "^5.24.3",
|
||||
"@testing-library/dom": "^10.4.0",
|
||||
"@testing-library/jest-dom": "^6.6.3",
|
||||
"@testing-library/react": "^16.2.0",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@reduxjs/toolkit": "^2.11.2",
|
||||
"@rjsf/core": "^6.2.4",
|
||||
"@testing-library/dom": "^10.4.1",
|
||||
"@testing-library/jest-dom": "^6.9.1",
|
||||
"@testing-library/react": "^16.3.1",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/jsan": "^3.1.5",
|
||||
"@types/json-schema": "^7.0.15",
|
||||
"@types/node": "^22.13.9",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-dom": "^18.3.5",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"cross-env": "^7.0.3",
|
||||
"esbuild": "^0.25.0",
|
||||
"jest": "^29.7.0",
|
||||
"jest-environment-jsdom": "^29.7.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"@types/node": "^24.10.9",
|
||||
"@types/react": "^19.2.8",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"esbuild": "^0.27.2",
|
||||
"jest": "^30.2.0",
|
||||
"jest-environment-jsdom": "^30.2.0",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-redux": "^9.2.0",
|
||||
"redux": "^5.0.1",
|
||||
"redux-persist": "^6.0.0",
|
||||
"rimraf": "^6.0.1",
|
||||
"styled-components": "^5.3.11",
|
||||
"ts-jest": "^29.2.6",
|
||||
"rimraf": "^6.1.2",
|
||||
"ts-jest": "^29.4.6",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "~5.8.2"
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@reduxjs/toolkit": "^1.0.0 || ^2.0.0",
|
||||
"@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"react-redux": "^8.0.0 || ^9.0.0",
|
||||
"redux": "^4.0.0 || ^5.0.0",
|
||||
"redux-persist": "^6.0.0",
|
||||
"styled-components": "^5.3.11"
|
||||
"redux-persist": "^6.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import React, { Component } from 'react';
|
||||
import { withTheme } from 'styled-components';
|
||||
import { withTheme } from '@emotion/react';
|
||||
import { LiftedAction, LiftedState } from '@redux-devtools/core';
|
||||
import { Action } from 'redux';
|
||||
import getMonitor from '../utils/getMonitor';
|
||||
|
|
|
|||
|
|
@ -1,8 +1,14 @@
|
|||
// Based on https://github.com/YoruNoHikage/redux-devtools-dispatch
|
||||
|
||||
import React, { Component } from 'react';
|
||||
import styled from 'styled-components';
|
||||
import { Button, Select, Editor, Toolbar } from '@redux-devtools/ui';
|
||||
import styled from '@emotion/styled';
|
||||
import {
|
||||
Button,
|
||||
Select,
|
||||
Editor,
|
||||
Toolbar,
|
||||
Base16Theme,
|
||||
} from '@redux-devtools/ui';
|
||||
import { connect, ResolveThunks } from 'react-redux';
|
||||
import { dispatchRemotely } from '../../actions';
|
||||
import { Options } from '../../reducers/instances';
|
||||
|
|
@ -12,7 +18,7 @@ export const DispatcherContainer = styled.div`
|
|||
flex-direction: column;
|
||||
flex-shrink: 0;
|
||||
padding-top: 2px;
|
||||
background: ${(props) => props.theme.base01};
|
||||
background: ${(props: { theme?: Base16Theme }) => props.theme!.base01};
|
||||
`;
|
||||
|
||||
export const CodeContainer = styled.div`
|
||||
|
|
@ -24,7 +30,7 @@ export const CodeContainer = styled.div`
|
|||
export const ActionContainer = styled.div`
|
||||
display: table;
|
||||
width: 100%;
|
||||
color: ${(props) => props.theme.base06};
|
||||
color: ${(props: { theme?: Base16Theme }) => props.theme!.base06};
|
||||
|
||||
> div {
|
||||
display: table-row;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import React, { Component, RefCallback } from 'react';
|
||||
import { connect, ResolveThunks } from 'react-redux';
|
||||
import { withTheme } from 'styled-components';
|
||||
import { withTheme } from '@emotion/react';
|
||||
import { tree } from 'd3-state-visualizer';
|
||||
import type { HierarchyPointNode, Node, Options } from 'd3-state-visualizer';
|
||||
import { getPath } from '../ChartMonitorWrapper';
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import React, { Component } from 'react';
|
||||
import type { Delta } from 'jsondiffpatch';
|
||||
import * as htmlFormatter from 'jsondiffpatch/formatters/html';
|
||||
import styled, { ThemedStyledProps } from 'styled-components';
|
||||
import { effects, Theme } from '@redux-devtools/ui';
|
||||
import styled from '@emotion/styled';
|
||||
import { Base16Theme, effects } from '@redux-devtools/ui';
|
||||
|
||||
export const StyledContainer = styled.div`
|
||||
.jsondiffpatch-delta {
|
||||
|
|
@ -19,8 +19,7 @@ export const StyledContainer = styled.div`
|
|||
padding: 2px 3px;
|
||||
border-radius: 3px;
|
||||
position: relative;
|
||||
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
|
||||
color: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base07};
|
||||
color: ${(props: { theme?: Base16Theme }) => props.theme!.base07};
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
|
@ -44,25 +43,22 @@ export const StyledContainer = styled.div`
|
|||
.jsondiffpatch-modified .jsondiffpatch-right-value:before {
|
||||
vertical-align: top;
|
||||
padding: 2px;
|
||||
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
|
||||
color: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base0E};
|
||||
color: ${(props) => props.theme.base0E};
|
||||
content: ' => ';
|
||||
}
|
||||
|
||||
.jsondiffpatch-added .jsondiffpatch-value pre,
|
||||
.jsondiffpatch-modified .jsondiffpatch-right-value pre,
|
||||
.jsondiffpatch-textdiff-added {
|
||||
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
|
||||
background: ${(props: ThemedStyledProps<{}, Theme>) =>
|
||||
effects.color(props.theme.base0B, 'alpha', 0.2)};
|
||||
background: ${(props: { theme?: Base16Theme }) =>
|
||||
effects.color(props.theme!.base0B, 'alpha', 0.2)};
|
||||
}
|
||||
|
||||
.jsondiffpatch-deleted pre,
|
||||
.jsondiffpatch-modified .jsondiffpatch-left-value pre,
|
||||
.jsondiffpatch-textdiff-deleted {
|
||||
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
|
||||
background: ${(props: ThemedStyledProps<{}, Theme>) =>
|
||||
effects.color(props.theme.base08, 'alpha', 0.2)};
|
||||
background: ${(props: { theme?: Base16Theme }) =>
|
||||
effects.color(props.theme!.base08, 'alpha', 0.2)};
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
|
|
@ -129,14 +125,12 @@ export const StyledContainer = styled.div`
|
|||
padding: 2px 0;
|
||||
padding-right: 5px;
|
||||
vertical-align: top;
|
||||
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
|
||||
color: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base0D};
|
||||
color: ${(props) => props.theme.base0D};
|
||||
}
|
||||
|
||||
.jsondiffpatch-property-name:after {
|
||||
content: ': ';
|
||||
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
|
||||
color: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base07};
|
||||
color: ${(props) => props.theme.base07};
|
||||
}
|
||||
|
||||
.jsondiffpatch-child-node-type-array > .jsondiffpatch-property-name:after {
|
||||
|
|
@ -172,8 +166,7 @@ export const StyledContainer = styled.div`
|
|||
}
|
||||
|
||||
.jsondiffpatch-value pre:after {
|
||||
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
|
||||
color: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base07};
|
||||
color: ${(props) => props.theme.base07};
|
||||
content: ',';
|
||||
}
|
||||
|
||||
|
|
@ -196,8 +189,7 @@ export const StyledContainer = styled.div`
|
|||
|
||||
.jsondiffpatch-moved .jsondiffpatch-moved-destination {
|
||||
display: inline-block;
|
||||
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
|
||||
background: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base0A};
|
||||
background: ${(props) => props.theme.base0A};
|
||||
}
|
||||
|
||||
.jsondiffpatch-moved .jsondiffpatch-moved-destination:before {
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
import React, { Component } from 'react';
|
||||
import styled, { withTheme } from 'styled-components';
|
||||
import styled from '@emotion/styled';
|
||||
import { withTheme } from '@emotion/react';
|
||||
import { SliderMonitor } from '@redux-devtools/slider-monitor';
|
||||
import { LiftedAction } from '@redux-devtools/core';
|
||||
import { Action } from 'redux';
|
||||
import { ThemeFromProvider } from '@redux-devtools/ui';
|
||||
import { Base16Theme, ThemeFromProvider } from '@redux-devtools/ui';
|
||||
import { State } from '../../reducers/instances';
|
||||
|
||||
const SliderWrapper = styled.div`
|
||||
border-color: ${(props) => props.theme.base02};
|
||||
border-color: ${(props: { theme?: Base16Theme }) => props.theme!.base02};
|
||||
border-style: solid;
|
||||
border-width: 1px 0;
|
||||
`;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,17 @@
|
|||
# Change Log
|
||||
|
||||
## 7.0.0
|
||||
|
||||
### Major Changes
|
||||
|
||||
- 6163276: Replace styled-components with Emotion
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6163276]
|
||||
- @redux-devtools/app-core@2.0.0
|
||||
- @redux-devtools/ui@2.0.0
|
||||
|
||||
## 6.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@redux-devtools/app",
|
||||
"version": "6.2.2",
|
||||
"version": "7.0.0",
|
||||
"description": "Redux DevTools app",
|
||||
"homepage": "https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools-app",
|
||||
"bugs": {
|
||||
|
|
@ -46,54 +46,52 @@
|
|||
"react-redux": "^9.2.0",
|
||||
"redux": "^5.0.1",
|
||||
"redux-persist": "^6.0.0",
|
||||
"socketcluster-client": "^19.2.3"
|
||||
"socketcluster-client": "^20.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@reduxjs/toolkit": "^2.6.0",
|
||||
"@rjsf/core": "^5.24.3",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@reduxjs/toolkit": "^2.11.2",
|
||||
"@rjsf/core": "^6.2.4",
|
||||
"@types/jsan": "^3.1.5",
|
||||
"@types/json-schema": "^7.0.15",
|
||||
"@types/node": "^22.13.9",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-dom": "^18.3.5",
|
||||
"@types/socketcluster-client": "^19.1.0",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"@types/node": "^24.10.9",
|
||||
"@types/react": "^19.2.8",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@types/socketcluster-client": "^20.0.0",
|
||||
"@types/webpack-env": "^1.18.8",
|
||||
"babel-loader": "^10.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"css-loader": "^7.1.2",
|
||||
"esbuild": "^0.25.0",
|
||||
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
||||
"globals": "^15.15.0",
|
||||
"esbuild": "^0.27.2",
|
||||
"fork-ts-checker-webpack-plugin": "^9.1.0",
|
||||
"globals": "^17.0.0",
|
||||
"html-loader": "^5.1.0",
|
||||
"html-webpack-plugin": "^5.6.3",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"html-webpack-plugin": "^5.6.5",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"rimraf": "^6.1.2",
|
||||
"style-loader": "^4.0.0",
|
||||
"styled-components": "^5.3.11",
|
||||
"ts-jest": "^29.2.6",
|
||||
"ts-jest": "^29.4.6",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "~5.8.2",
|
||||
"webpack": "^5.98.0",
|
||||
"typescript": "~5.9.3",
|
||||
"webpack": "^5.104.1",
|
||||
"webpack-cli": "^6.0.1",
|
||||
"webpack-dev-server": "^5.2.0"
|
||||
"webpack-dev-server": "^5.2.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@reduxjs/toolkit": "^1.0.0 || ^2.0.0",
|
||||
"@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"styled-components": "^5.3.11"
|
||||
"react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,6 @@
|
|||
### Major Changes
|
||||
|
||||
- b323f77d: Upgrade D3
|
||||
|
||||
- Split `style` option into `chartStyles`, `nodeStyleOptions`, `textStyleOptions`, and `linkStyles`.
|
||||
- The shape of the argument passed to the `onClickText` option has been updated.
|
||||
|
||||
|
|
|
|||
|
|
@ -39,25 +39,25 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"@babel/runtime": "^7.28.6",
|
||||
"d3-state-visualizer": "workspace:^",
|
||||
"deepmerge": "^4.3.1",
|
||||
"react-base16-styling": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@types/react": "^18.3.18",
|
||||
"react": "^18.3.1",
|
||||
"@types/react": "^19.2.8",
|
||||
"react": "^19.2.3",
|
||||
"redux": "^5.0.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
|
|
|
|||
|
|
@ -13,8 +13,7 @@ const wrapperStyle = {
|
|||
};
|
||||
|
||||
export interface Props<S, A extends Action<string>>
|
||||
extends LiftedState<S, A, ChartMonitorState>,
|
||||
Options {
|
||||
extends LiftedState<S, A, ChartMonitorState>, Options {
|
||||
dispatch: Dispatch<LiftedAction<S, A, ChartMonitorState>>;
|
||||
preserveScrollTop: boolean;
|
||||
select: (state: S) => unknown;
|
||||
|
|
|
|||
|
|
@ -41,8 +41,7 @@ function invertColors(theme: Base16Theme) {
|
|||
}
|
||||
|
||||
export interface ChartMonitorProps<S, A extends Action<string>>
|
||||
extends LiftedState<S, A, ChartMonitorState>,
|
||||
Options {
|
||||
extends LiftedState<S, A, ChartMonitorState>, Options {
|
||||
dispatch: Dispatch<LiftedAction<S, A, ChartMonitorState>>;
|
||||
preserveScrollTop: boolean;
|
||||
select: (state: S) => unknown;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,12 @@
|
|||
# Change Log
|
||||
|
||||
## 4.0.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6163276]
|
||||
- @redux-devtools/app@7.0.0
|
||||
|
||||
## 4.0.3
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@redux-devtools/cli",
|
||||
"version": "4.0.3",
|
||||
"version": "4.0.4",
|
||||
"description": "CLI for remote debugging with Redux DevTools.",
|
||||
"homepage": "https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools-cli",
|
||||
"bugs": {
|
||||
|
|
@ -38,59 +38,59 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint && pnpm run test"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18.12.0"
|
||||
"node": ">=20"
|
||||
},
|
||||
"dependencies": {
|
||||
"@apollo/server": "^4.11.3",
|
||||
"@apollo/server": "^5.2.0",
|
||||
"@as-integrations/express5": "^1.1.2",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@redux-devtools/app": "workspace:^",
|
||||
"@reduxjs/toolkit": "^2.6.0",
|
||||
"@types/react": "^18.3.18",
|
||||
"body-parser": "^1.20.3",
|
||||
"chalk": "^5.4.1",
|
||||
"@reduxjs/toolkit": "^2.11.2",
|
||||
"@types/react": "^19.2.8",
|
||||
"body-parser": "^2.2.2",
|
||||
"chalk": "^5.6.2",
|
||||
"cors": "^2.8.5",
|
||||
"cross-spawn": "^7.0.6",
|
||||
"electron": "^31.7.7",
|
||||
"express": "^4.21.2",
|
||||
"express": "^5.2.1",
|
||||
"get-port": "^7.1.0",
|
||||
"graphql": "^16.10.0",
|
||||
"graphql": "^16.12.0",
|
||||
"knex": "^3.1.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"lodash-es": "^4.17.22",
|
||||
"minimist": "^1.2.8",
|
||||
"morgan": "^1.10.0",
|
||||
"open": "^10.1.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-is": "^18.3.1",
|
||||
"semver": "^7.7.1",
|
||||
"socketcluster-server": "^19.1.1",
|
||||
"morgan": "^1.10.1",
|
||||
"open": "^11.0.0",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-is": "^19.2.3",
|
||||
"semver": "^7.7.3",
|
||||
"socketcluster-server": "^20.0.0",
|
||||
"sqlite3": "^5.1.7",
|
||||
"styled-components": "^5.3.11",
|
||||
"uuid": "^10.0.0"
|
||||
"uuid": "^13.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/body-parser": "^1.19.5",
|
||||
"@types/cors": "^2.8.17",
|
||||
"@types/body-parser": "^1.19.6",
|
||||
"@types/cors": "^2.8.19",
|
||||
"@types/cross-spawn": "^6.0.6",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/express": "^5.0.6",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/minimist": "^1.2.5",
|
||||
"@types/morgan": "^1.9.9",
|
||||
"@types/node": "^22.13.9",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@types/socketcluster-client": "^19.1.0",
|
||||
"@types/socketcluster-server": "^19.0.1",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"@types/supertest": "^6.0.2",
|
||||
"@types/uuid": "^10.0.0",
|
||||
"globals": "^15.15.0",
|
||||
"jest": "^29.7.0",
|
||||
"@types/morgan": "^1.9.10",
|
||||
"@types/node": "^24.10.9",
|
||||
"@types/semver": "^7.7.1",
|
||||
"@types/socketcluster-client": "^20.0.0",
|
||||
"@types/socketcluster-server": "^20.0.0",
|
||||
"@types/supertest": "^6.0.3",
|
||||
"@types/uuid": "^11.0.0",
|
||||
"globals": "^17.0.0",
|
||||
"jest": "^30.2.0",
|
||||
"ncp": "^2.0.0",
|
||||
"rimraf": "^6.0.1",
|
||||
"socketcluster-client": "^19.2.3",
|
||||
"supertest": "^7.0.0",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"socketcluster-client": "^20.0.1",
|
||||
"supertest": "^7.2.2",
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "~5.9.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ export default async function (argv: { [arg: string]: any }): Promise<{
|
|||
const agServer = socketClusterServer.attach(httpServer, options);
|
||||
|
||||
const app = express();
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
||||
httpServer.on('request', app);
|
||||
const store = createStore(options);
|
||||
app.use(routes(options, store, agServer));
|
||||
|
|
@ -76,7 +77,7 @@ export default async function (argv: { [arg: string]: any }): Promise<{
|
|||
});
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.error(error); // eslint-disable-line no-console
|
||||
console.error(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -110,7 +111,7 @@ export default async function (argv: { [arg: string]: any }): Promise<{
|
|||
request.end(data);
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.error(error); // eslint-disable-line no-console
|
||||
console.error(error);
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
|
@ -118,7 +119,6 @@ export default async function (argv: { [arg: string]: any }): Promise<{
|
|||
for await (const data of socket.listener('disconnect')) {
|
||||
const channel = agServer.exchange.channel('sc-' + socket.id);
|
||||
channel.unsubscribe();
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
void agServer.exchange.transmitPublish(channelToEmit!, {
|
||||
id: socket.id,
|
||||
type: 'DISCONNECTED',
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import bodyParser from 'body-parser';
|
|||
import cors from 'cors';
|
||||
import { AGServer } from 'socketcluster-server';
|
||||
import { ApolloServer } from '@apollo/server';
|
||||
import { expressMiddleware } from '@apollo/server/express4';
|
||||
import { expressMiddleware } from '@as-integrations/express5';
|
||||
import type { AddData, ReportBaseFields, Store } from './store.js';
|
||||
import { resolvers, schema } from './api/schema.js';
|
||||
|
||||
|
|
@ -68,7 +68,7 @@ function routes(
|
|||
);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error(error); // eslint-disable-line no-console
|
||||
console.error(error);
|
||||
});
|
||||
|
||||
serveUmdModule('react');
|
||||
|
|
@ -76,10 +76,9 @@ function routes(
|
|||
serveUmdModule('@redux-devtools/app');
|
||||
|
||||
app.get('/port.js', function (req, res) {
|
||||
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
||||
res.send(`reduxDevToolsPort = ${options.port}`);
|
||||
});
|
||||
app.get('*', function (req, res) {
|
||||
app.get('/{*splat}', function (req, res) {
|
||||
res.sendFile(
|
||||
path.join(
|
||||
path.dirname(fileURLToPath(import.meta.url)),
|
||||
|
|
@ -93,7 +92,10 @@ function routes(
|
|||
app.use(bodyParser.urlencoded({ limit: limit, extended: false }));
|
||||
|
||||
app.post('/', function (req, res) {
|
||||
if (!req.body) return res.status(404).end();
|
||||
if (!req.body) {
|
||||
res.status(404).end();
|
||||
return;
|
||||
}
|
||||
switch (req.body.op) {
|
||||
case 'get':
|
||||
store
|
||||
|
|
@ -102,7 +104,7 @@ function routes(
|
|||
res.send(r || {});
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.error(error); // eslint-disable-line no-console
|
||||
console.error(error);
|
||||
res.sendStatus(500);
|
||||
});
|
||||
break;
|
||||
|
|
@ -113,7 +115,7 @@ function routes(
|
|||
res.send(r);
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.error(error); // eslint-disable-line no-console
|
||||
console.error(error);
|
||||
res.sendStatus(500);
|
||||
});
|
||||
break;
|
||||
|
|
@ -131,7 +133,7 @@ function routes(
|
|||
});
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.error(error); // eslint-disable-line no-console
|
||||
console.error(error);
|
||||
res.status(500).send({});
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,25 +41,25 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"@babel/runtime": "^7.28.6",
|
||||
"parse-key": "^0.2.1",
|
||||
"react-dock": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@types/parse-key": "^0.2.2",
|
||||
"@types/react": "^18.3.18",
|
||||
"react": "^18.3.1",
|
||||
"@types/react": "^19.2.8",
|
||||
"react": "^19.2.3",
|
||||
"redux": "^5.0.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
|
|
|
|||
|
|
@ -44,8 +44,10 @@ interface DefaultProps {
|
|||
fluid: boolean;
|
||||
}
|
||||
|
||||
export interface DockMonitorProps<S, A extends Action<string>>
|
||||
extends LiftedState<S, A, DockMonitorState> {
|
||||
export interface DockMonitorProps<
|
||||
S,
|
||||
A extends Action<string>,
|
||||
> extends LiftedState<S, A, DockMonitorState> {
|
||||
defaultPosition: 'left' | 'top' | 'right' | 'bottom';
|
||||
defaultIsVisible: boolean;
|
||||
defaultSize: number;
|
||||
|
|
|
|||
|
|
@ -29,18 +29,18 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.26.9"
|
||||
"@babel/runtime": "^7.28.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"redux": "^5.0.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"redux": "^3.1.0 || ^4.0.0 || ^5.0.0"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,18 @@
|
|||
# Change Log
|
||||
|
||||
## 5.0.0
|
||||
|
||||
### Major Changes
|
||||
|
||||
- 6163276: Replace styled-components with Emotion
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6163276]
|
||||
- Updated dependencies [20883e5]
|
||||
- @redux-devtools/ui@2.0.0
|
||||
- @redux-devtools/inspector-monitor@6.1.2
|
||||
|
||||
## 4.1.1
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
|||
|
|
@ -1,5 +1,15 @@
|
|||
# test-demo
|
||||
|
||||
## 0.1.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6163276]
|
||||
- Updated dependencies [20883e5]
|
||||
- @redux-devtools/inspector-monitor-test-tab@5.0.0
|
||||
- @redux-devtools/ui@2.0.0
|
||||
- @redux-devtools/inspector-monitor@6.1.2
|
||||
|
||||
## 0.1.17
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"private": true,
|
||||
"name": "test-demo",
|
||||
"version": "0.1.17",
|
||||
"version": "0.1.18",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"start": "cross-env TS_NODE_PROJECT=\"tsconfig.webpack.json\" webpack serve --open",
|
||||
|
|
@ -11,44 +11,43 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@redux-devtools/dock-monitor": "workspace:^",
|
||||
"@redux-devtools/inspector-monitor": "workspace:^",
|
||||
"@redux-devtools/inspector-monitor-test-tab": "workspace:^",
|
||||
"@redux-devtools/ui": "workspace:^",
|
||||
"immutable": "^5.0.3",
|
||||
"immutable": "^5.1.4",
|
||||
"lodash.shuffle": "^4.2.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-is": "^18.3.1",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-is": "^19.2.3",
|
||||
"react-redux": "^9.2.0",
|
||||
"react-router-dom": "^6.30.0",
|
||||
"react-router-dom": "^7.12.0",
|
||||
"redux": "^5.0.1",
|
||||
"redux-logger": "^3.0.6",
|
||||
"styled-components": "^5.3.11"
|
||||
"redux-logger": "^3.0.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@types/lodash.shuffle": "^4.2.9",
|
||||
"@types/node": "^22.13.9",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-dom": "^18.3.5",
|
||||
"@types/node": "^24.10.9",
|
||||
"@types/react": "^19.2.8",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@types/redux-logger": "^3.0.13",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"@types/webpack-env": "^1.18.8",
|
||||
"babel-loader": "^10.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"css-loader": "^7.1.2",
|
||||
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
||||
"html-webpack-plugin": "^5.6.3",
|
||||
"fork-ts-checker-webpack-plugin": "^9.1.0",
|
||||
"html-webpack-plugin": "^5.6.5",
|
||||
"style-loader": "^4.0.0",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "~5.8.2",
|
||||
"webpack": "^5.98.0",
|
||||
"typescript": "~5.9.3",
|
||||
"webpack": "^5.104.1",
|
||||
"webpack-cli": "^6.0.1",
|
||||
"webpack-dev-server": "^5.2.0"
|
||||
"webpack-dev-server": "^5.2.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,8 +48,10 @@ const styles: {
|
|||
|
||||
const ROOT = '/'; // process.env.NODE_ENV === 'production' ? '/' : '/';
|
||||
|
||||
interface Props
|
||||
extends Omit<DemoAppState, 'addFunction' | 'addSymbol' | 'shuffleArray'> {
|
||||
interface Props extends Omit<
|
||||
DemoAppState,
|
||||
'addFunction' | 'addSymbol' | 'shuffleArray'
|
||||
> {
|
||||
toggleTimeoutUpdate: (timeoutUpdateEnabled: boolean) => void;
|
||||
timeoutUpdate: () => void;
|
||||
increment: () => void;
|
||||
|
|
@ -70,7 +72,7 @@ interface Props
|
|||
}
|
||||
|
||||
function DemoApp(props: Props) {
|
||||
const timeout = useRef<number | undefined>();
|
||||
const timeout = useRef<number | undefined>(undefined);
|
||||
const location = useLocation();
|
||||
|
||||
const options = getOptions(location);
|
||||
|
|
|
|||
|
|
@ -36,5 +36,6 @@ export const getDevTools = (location: { search: string }) =>
|
|||
export function ConnectedDevTools() {
|
||||
const location = useLocation();
|
||||
const DevTools = getDevTools(location);
|
||||
// eslint-disable-next-line react-hooks/static-components
|
||||
return <DevTools />;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,8 @@ const HUGE_ARRAY = Array.from({ length: 5000 }).map((_, key) => ({
|
|||
|
||||
const HUGE_OBJECT = Array.from({ length: 5000 }).reduce(
|
||||
(o: { [key: string]: string }, _, key) => (
|
||||
(o[`key ${key}`] = `item ${key}`), o
|
||||
(o[`key ${key}`] = `item ${key}`),
|
||||
o
|
||||
),
|
||||
{},
|
||||
);
|
||||
|
|
|
|||
|
|
@ -8,5 +8,7 @@ module.exports = {
|
|||
'^.+\\.jsx?$': 'babel-jest',
|
||||
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }],
|
||||
},
|
||||
transformIgnorePatterns: ['node_modules/(?!.pnpm|lodash-es|nanoid)'],
|
||||
transformIgnorePatterns: [
|
||||
'node_modules/(?!.pnpm|@x0k/json-schema-merge|color|lodash-es|nanoid)',
|
||||
],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@redux-devtools/inspector-monitor-test-tab",
|
||||
"version": "4.1.1",
|
||||
"version": "5.0.0",
|
||||
"description": "Generate tests for redux devtools.",
|
||||
"keywords": [
|
||||
"redux",
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint && pnpm run test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"@babel/runtime": "^7.28.6",
|
||||
"@redux-devtools/ui": "workspace:^",
|
||||
"es6template": "^1.0.5",
|
||||
"javascript-stringify": "^2.1.0",
|
||||
|
|
@ -53,40 +53,40 @@
|
|||
"simple-diff": "^1.7.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@redux-devtools/inspector-monitor": "workspace:^",
|
||||
"@testing-library/dom": "^10.4.0",
|
||||
"@testing-library/react": "^16.2.0",
|
||||
"@testing-library/dom": "^10.4.1",
|
||||
"@testing-library/react": "^16.3.1",
|
||||
"@types/es6template": "^1.0.5",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/jsan": "^3.1.5",
|
||||
"@types/object-path": "^0.11.4",
|
||||
"@types/react": "^18.3.18",
|
||||
"jest": "^29.7.0",
|
||||
"jest-environment-jsdom": "^29.7.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"@types/react": "^19.2.8",
|
||||
"jest": "^30.2.0",
|
||||
"jest-environment-jsdom": "^30.2.0",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"redux": "^5.0.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@redux-devtools/inspector-monitor": "workspace:^",
|
||||
"@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"redux": "^3.4.0 || ^4.0.0 || ^5.0.0",
|
||||
"styled-components": "^5.3.11"
|
||||
"redux": "^3.4.0 || ^4.0.0 || ^5.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,8 +59,10 @@ export function compare<S>(
|
|||
).forEach(generate);
|
||||
}
|
||||
|
||||
interface Props<S, A extends Action<string>>
|
||||
extends Omit<TabComponentProps<S, A>, 'monitorState' | 'updateMonitorState'> {
|
||||
interface Props<S, A extends Action<string>> extends Omit<
|
||||
TabComponentProps<S, A>,
|
||||
'monitorState' | 'updateMonitorState'
|
||||
> {
|
||||
name?: string;
|
||||
isVanilla?: boolean;
|
||||
wrap?: string | ((locals: WrapLocals) => string);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||
|
||||
exports[`TestGenerator component should be empty when no actions provided 1`] = `
|
||||
<textarea
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@ module.exports = {
|
|||
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }],
|
||||
},
|
||||
transformIgnorePatterns: [
|
||||
'node_modules/(?!.pnpm|@babel/code-frame|@babel/highlight|@babel/helper-validator-identifier|chalk|lodash-es)',
|
||||
'node_modules/(?!.pnpm|@babel/code-frame|@babel/highlight|@babel/helper-validator-identifier|chalk|color|js-tokens|lodash-es)',
|
||||
],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -30,43 +30,42 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint && pnpm run test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^8.0.0-alpha.16",
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"@types/chrome": "^0.0.308",
|
||||
"anser": "^2.3.2",
|
||||
"html-entities": "^2.5.2",
|
||||
"@babel/code-frame": "^8.0.0-beta.4",
|
||||
"@babel/runtime": "^7.28.6",
|
||||
"@types/chrome": "^0.1.33",
|
||||
"anser": "^2.3.5",
|
||||
"html-entities": "^2.6.0",
|
||||
"path-browserify": "^1.0.1",
|
||||
"react-base16-styling": "workspace:^",
|
||||
"source-map": "^0.5.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@redux-devtools/inspector-monitor": "workspace:^",
|
||||
"@testing-library/dom": "^10.4.0",
|
||||
"@testing-library/react": "^16.2.0",
|
||||
"@types/babel__code-frame": "^7.0.6",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/node": "^22.13.9",
|
||||
"@testing-library/dom": "^10.4.1",
|
||||
"@testing-library/react": "^16.3.1",
|
||||
"@types/babel__code-frame": "^7.27.0",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/node": "^24.10.9",
|
||||
"@types/path-browserify": "^1.0.3",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react": "^19.2.8",
|
||||
"@types/source-map": "0.5.2",
|
||||
"jest": "^29.7.0",
|
||||
"jest-environment-jsdom": "^29.7.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-test-renderer": "^18.3.1",
|
||||
"jest": "^30.2.0",
|
||||
"jest-environment-jsdom": "^30.2.0",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"redux": "^5.0.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@emotion/react": "^11.14.0",
|
||||
|
|
|
|||
|
|
@ -32,11 +32,10 @@ function openAndCloseTab(url: string) {
|
|||
const removeTab = () => {
|
||||
chrome.windows.onFocusChanged.removeListener(removeTab);
|
||||
if (tab && tab.id) {
|
||||
chrome.tabs.remove(tab.id, async () => {
|
||||
// eslint-disable-next-line no-console
|
||||
chrome.tabs.remove(tab.id, () => {
|
||||
if (chrome.runtime.lastError) console.log(chrome.runtime.lastError);
|
||||
else if (chrome.devtools && chrome.devtools.inspectedWindow) {
|
||||
await chrome.tabs.update(chrome.devtools.inspectedWindow.tabId, {
|
||||
void chrome.tabs.update(chrome.devtools.inspectedWindow.tabId, {
|
||||
active: true,
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||
|
||||
exports[`StackTraceTab component should render the link to docs 1`] = `
|
||||
<div
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
# Change Log
|
||||
|
||||
## 6.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 20883e5: fix(deps): update all non-major dependencies
|
||||
|
||||
## 6.1.1
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
|||
|
|
@ -14,36 +14,36 @@
|
|||
"@redux-devtools/core": "workspace:^",
|
||||
"@redux-devtools/dock-monitor": "workspace:^",
|
||||
"@redux-devtools/inspector-monitor": "workspace:^",
|
||||
"immutable": "^5.0.3",
|
||||
"immutable": "^5.1.4",
|
||||
"lodash.shuffle": "^4.2.0",
|
||||
"react": "^18.3.1",
|
||||
"react": "^19.2.3",
|
||||
"react-base16-styling": "workspace:^",
|
||||
"react-bootstrap": "^2.10.9",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-bootstrap": "^2.10.10",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-redux": "^9.2.0",
|
||||
"react-router-dom": "^6.30.0",
|
||||
"react-router-dom": "^7.12.0",
|
||||
"redux": "^5.0.1",
|
||||
"redux-logger": "^3.0.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@types/lodash.shuffle": "^4.2.9",
|
||||
"@types/node": "^22.13.9",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-dom": "^18.3.5",
|
||||
"@types/node": "^24.10.9",
|
||||
"@types/react": "^19.2.8",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@types/redux-logger": "^3.0.13",
|
||||
"@types/webpack-env": "^1.18.8",
|
||||
"babel-loader": "^10.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
||||
"html-webpack-plugin": "^5.6.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"fork-ts-checker-webpack-plugin": "^9.1.0",
|
||||
"html-webpack-plugin": "^5.6.5",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "~5.8.2",
|
||||
"webpack": "^5.98.0",
|
||||
"typescript": "~5.9.3",
|
||||
"webpack": "^5.104.1",
|
||||
"webpack-cli": "^6.0.1",
|
||||
"webpack-dev-server": "^5.2.0"
|
||||
"webpack-dev-server": "^5.2.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -119,8 +119,10 @@ function buildUrl(options: Options) {
|
|||
);
|
||||
}
|
||||
|
||||
interface Props
|
||||
extends Omit<DemoAppState, 'addFunction' | 'addSymbol' | 'shuffleArray'> {
|
||||
interface Props extends Omit<
|
||||
DemoAppState,
|
||||
'addFunction' | 'addSymbol' | 'shuffleArray'
|
||||
> {
|
||||
toggleTimeoutUpdate: (timeoutUpdateEnabled: boolean) => void;
|
||||
timeoutUpdate: () => void;
|
||||
increment: () => void;
|
||||
|
|
@ -142,7 +144,7 @@ interface Props
|
|||
}
|
||||
|
||||
function DemoApp(props: Props) {
|
||||
const timeout = useRef<number | undefined>();
|
||||
const timeout = useRef<number | undefined>(undefined);
|
||||
const location = useLocation();
|
||||
const navigate = useNavigate();
|
||||
|
||||
|
|
@ -155,22 +157,22 @@ function DemoApp(props: Props) {
|
|||
});
|
||||
};
|
||||
|
||||
const toggleImmutableSupport = () => {
|
||||
const toggleImmutableSupport = async () => {
|
||||
const options = getOptions(location);
|
||||
|
||||
navigate(
|
||||
await navigate(
|
||||
buildUrl({ ...options, supportImmutable: !options.supportImmutable }),
|
||||
);
|
||||
};
|
||||
|
||||
const toggleTheme = () => {
|
||||
const toggleTheme = async () => {
|
||||
const options = getOptions(location);
|
||||
|
||||
navigate(buildUrl({ ...options, dark: !options.dark }));
|
||||
await navigate(buildUrl({ ...options, dark: !options.dark }));
|
||||
};
|
||||
|
||||
const setTheme = (options: Options, theme: string) => {
|
||||
navigate(buildUrl({ ...options, theme }));
|
||||
const setTheme = async (options: Options, theme: string) => {
|
||||
await navigate(buildUrl({ ...options, theme }));
|
||||
};
|
||||
|
||||
const toggleTimeoutUpdate = () => {
|
||||
|
|
|
|||
|
|
@ -47,5 +47,6 @@ export const getDevTools = (location: { search: string }) =>
|
|||
export function ConnectedDevTools() {
|
||||
const location = useLocation();
|
||||
const DevTools = getDevTools(location);
|
||||
// eslint-disable-next-line react-hooks/static-components
|
||||
return <DevTools />;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,8 @@ const HUGE_ARRAY = Array.from({ length: 5000 }).map((_, key) => ({
|
|||
|
||||
const HUGE_OBJECT = Array.from({ length: 5000 }).reduce(
|
||||
(o: { [key: string]: string }, _, key) => (
|
||||
(o[`key ${key}`] = `item ${key}`), o
|
||||
(o[`key ${key}`] = `item ${key}`),
|
||||
o
|
||||
),
|
||||
{},
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@redux-devtools/inspector-monitor",
|
||||
"version": "6.1.1",
|
||||
"version": "6.1.2",
|
||||
"description": "Redux DevTools Diff Monitor",
|
||||
"homepage": "https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools-inspector-monitor",
|
||||
"bugs": {
|
||||
|
|
@ -35,40 +35,40 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"@babel/runtime": "^7.28.6",
|
||||
"@dnd-kit/core": "^6.3.1",
|
||||
"@dnd-kit/modifiers": "^7.0.0",
|
||||
"@dnd-kit/sortable": "^8.0.0",
|
||||
"@dnd-kit/modifiers": "^9.0.0",
|
||||
"@dnd-kit/sortable": "^10.0.0",
|
||||
"@dnd-kit/utilities": "^3.2.2",
|
||||
"@types/lodash": "^4.17.16",
|
||||
"@types/lodash": "^4.17.23",
|
||||
"dateformat": "^5.0.3",
|
||||
"hex-rgba": "^1.0.2",
|
||||
"immutable": "^5.0.3",
|
||||
"immutable": "^5.1.4",
|
||||
"javascript-stringify": "^2.1.0",
|
||||
"jsondiffpatch": "^0.6.0",
|
||||
"jsondiffpatch": "^0.7.3",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"react-base16-styling": "workspace:^",
|
||||
"react-json-tree": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@emotion/babel-preset-css-prop": "^11.12.0",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@types/dateformat": "^5.0.3",
|
||||
"@types/hex-rgba": "^1.0.3",
|
||||
"@types/lodash.debounce": "^4.0.9",
|
||||
"@types/react": "^18.3.18",
|
||||
"react": "^18.3.1",
|
||||
"@types/react": "^19.2.8",
|
||||
"react": "^19.2.3",
|
||||
"redux": "^5.0.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@emotion/react": "^11.14.0",
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ export default function ActionList<A extends Action<string>>({
|
|||
onReorderAction,
|
||||
}: Props<A>): JSX.Element {
|
||||
const nodeRef = useRef<HTMLDivElement | null>(null);
|
||||
const prevLastActionId = useRef<number | undefined>();
|
||||
const prevLastActionId = useRef<number | undefined>(undefined);
|
||||
|
||||
useLayoutEffect(() => {
|
||||
if (nodeRef.current && prevLastActionId.current !== lastActionId) {
|
||||
|
|
|
|||
|
|
@ -144,8 +144,10 @@ interface DefaultProps {
|
|||
invertTheme: boolean;
|
||||
}
|
||||
|
||||
export interface DevtoolsInspectorProps<S, A extends Action<string>>
|
||||
extends LiftedState<S, A, DevtoolsInspectorState> {
|
||||
export interface DevtoolsInspectorProps<
|
||||
S,
|
||||
A extends Action<string>,
|
||||
> extends LiftedState<S, A, DevtoolsInspectorState> {
|
||||
dispatch: Dispatch<
|
||||
DevtoolsInspectorAction | LiftedAction<S, A, DevtoolsInspectorState>
|
||||
>;
|
||||
|
|
|
|||
|
|
@ -41,20 +41,20 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint && pnpm run test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/node": "^22.13.9",
|
||||
"jest": "^29.7.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/node": "^24.10.9",
|
||||
"jest": "^30.2.0",
|
||||
"redux": "^5.0.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"rimraf": "^6.1.2",
|
||||
"rxjs": "^7.8.2",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "~5.8.2"
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"redux": "^3.4.0 || ^4.0.0 || ^5.0.0"
|
||||
|
|
|
|||
|
|
@ -41,26 +41,26 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"@babel/runtime": "^7.28.6",
|
||||
"@types/lodash.debounce": "^4.0.9",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"react-base16-styling": "workspace:^",
|
||||
"react-json-tree": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@types/react": "^18.3.18",
|
||||
"react": "^18.3.1",
|
||||
"@types/react": "^19.2.8",
|
||||
"react": "^19.2.3",
|
||||
"redux": "^5.0.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
|
|
|
|||
|
|
@ -64,8 +64,10 @@ interface DefaultProps<S> {
|
|||
markStateDiff: boolean;
|
||||
}
|
||||
|
||||
export interface LogMonitorProps<S, A extends Action<string>>
|
||||
extends LiftedState<S, A, LogMonitorState> {
|
||||
export interface LogMonitorProps<
|
||||
S,
|
||||
A extends Action<string>,
|
||||
> extends LiftedState<S, A, LogMonitorState> {
|
||||
dispatch: Dispatch<LogMonitorAction | LiftedAction<S, A, LogMonitorState>>;
|
||||
|
||||
preserveScrollTop: boolean;
|
||||
|
|
|
|||
|
|
@ -41,31 +41,31 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"@babel/runtime": "^7.28.6",
|
||||
"@redux-devtools/instrument": "workspace:^",
|
||||
"@redux-devtools/utils": "workspace:^",
|
||||
"jsan": "^3.1.14",
|
||||
"rn-host-detect": "^1.2.0",
|
||||
"socketcluster-client": "^19.2.3"
|
||||
"socketcluster-client": "^20.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@types/jsan": "^3.1.5",
|
||||
"@types/node": "^22.13.9",
|
||||
"@types/node": "^24.10.9",
|
||||
"@types/rn-host-detect": "^1.2.2",
|
||||
"@types/socketcluster-client": "^19.1.0",
|
||||
"@typescript-eslint/eslint-plugin": "^8.26.0",
|
||||
"@typescript-eslint/parser": "^8.26.0",
|
||||
"eslint": "^9.21.0",
|
||||
"eslint-config-prettier": "^10.0.2",
|
||||
"@types/socketcluster-client": "^20.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^8.53.0",
|
||||
"@typescript-eslint/parser": "^8.53.0",
|
||||
"eslint": "^9.39.2",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"redux": "^5.0.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"redux": "^3.5.2 || ^4.0.0 || ^5.0.0"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,16 @@
|
|||
# Change Log
|
||||
|
||||
## 6.0.0
|
||||
|
||||
### Major Changes
|
||||
|
||||
- 6163276: Replace styled-components with Emotion
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6163276]
|
||||
- @redux-devtools/ui@2.0.0
|
||||
|
||||
## 5.2.0
|
||||
|
||||
### Minor Changes
|
||||
|
|
|
|||
|
|
@ -1,5 +1,12 @@
|
|||
# rtk-query-demo
|
||||
|
||||
## 0.1.16
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [6163276]
|
||||
- @redux-devtools/rtk-query-monitor@6.0.0
|
||||
|
||||
## 0.1.15
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"private": true,
|
||||
"name": "rtk-query-demo",
|
||||
"version": "0.1.15",
|
||||
"version": "0.1.16",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"start": "cross-env TS_NODE_PROJECT=\"tsconfig.webpack.json\" webpack serve --open",
|
||||
|
|
@ -10,49 +10,48 @@
|
|||
"type-check": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"@chakra-ui/react": "^2.10.6",
|
||||
"@babel/runtime": "^7.28.6",
|
||||
"@chakra-ui/react": "^3.31.0",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@mswjs/data": "^0.16.2",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@redux-devtools/dock-monitor": "workspace:^",
|
||||
"@redux-devtools/rtk-query-monitor": "workspace:^",
|
||||
"@reduxjs/toolkit": "^2.6.0",
|
||||
"framer-motion": "^11.18.2",
|
||||
"msw": "^2.7.3",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"@reduxjs/toolkit": "^2.11.2",
|
||||
"msw": "^2.12.4",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-is": "^18.3.1",
|
||||
"react-is": "^19.2.3",
|
||||
"react-redux": "^9.2.0",
|
||||
"react-router-dom": "^6.30.0",
|
||||
"styled-components": "^5.3.11"
|
||||
"react-router-dom": "^7.12.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@types/node": "^22.13.9",
|
||||
"@types/react": "^18.3.18",
|
||||
"@types/react-dom": "^18.3.5",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@types/node": "^24.10.9",
|
||||
"@types/react": "^19.2.8",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"babel-loader": "^10.0.0",
|
||||
"copy-webpack-plugin": "^12.0.2",
|
||||
"cross-env": "^7.0.3",
|
||||
"copy-webpack-plugin": "^13.0.1",
|
||||
"cross-env": "^10.1.0",
|
||||
"css-loader": "^7.1.2",
|
||||
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
||||
"html-webpack-plugin": "^5.6.3",
|
||||
"fork-ts-checker-webpack-plugin": "^9.1.0",
|
||||
"html-webpack-plugin": "^5.6.5",
|
||||
"style-loader": "^4.0.0",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "~5.8.2",
|
||||
"webpack": "^5.98.0",
|
||||
"typescript": "~5.9.3",
|
||||
"webpack": "^5.104.1",
|
||||
"webpack-cli": "^6.0.1",
|
||||
"webpack-dev-server": "^5.2.0"
|
||||
"webpack-dev-server": "^5.2.3"
|
||||
},
|
||||
"msw": {
|
||||
"workerDirectory": "public"
|
||||
"workerDirectory": [
|
||||
"public"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,24 +5,23 @@
|
|||
* Mock Service Worker.
|
||||
* @see https://github.com/mswjs/msw
|
||||
* - Please do NOT modify this file.
|
||||
* - Please do NOT serve this file on production.
|
||||
*/
|
||||
|
||||
const PACKAGE_VERSION = '2.7.3'
|
||||
const INTEGRITY_CHECKSUM = '00729d72e3b82faf54ca8b9621dbb96f'
|
||||
const PACKAGE_VERSION = '2.12.4'
|
||||
const INTEGRITY_CHECKSUM = '4db4a41e972cec1b64cc569c66952d82'
|
||||
const IS_MOCKED_RESPONSE = Symbol('isMockedResponse')
|
||||
const activeClientIds = new Set()
|
||||
|
||||
self.addEventListener('install', function () {
|
||||
addEventListener('install', function () {
|
||||
self.skipWaiting()
|
||||
})
|
||||
|
||||
self.addEventListener('activate', function (event) {
|
||||
addEventListener('activate', function (event) {
|
||||
event.waitUntil(self.clients.claim())
|
||||
})
|
||||
|
||||
self.addEventListener('message', async function (event) {
|
||||
const clientId = event.source.id
|
||||
addEventListener('message', async function (event) {
|
||||
const clientId = Reflect.get(event.source || {}, 'id')
|
||||
|
||||
if (!clientId || !self.clients) {
|
||||
return
|
||||
|
|
@ -72,11 +71,6 @@ self.addEventListener('message', async function (event) {
|
|||
break
|
||||
}
|
||||
|
||||
case 'MOCK_DEACTIVATE': {
|
||||
activeClientIds.delete(clientId)
|
||||
break
|
||||
}
|
||||
|
||||
case 'CLIENT_CLOSED': {
|
||||
activeClientIds.delete(clientId)
|
||||
|
||||
|
|
@ -94,69 +88,92 @@ self.addEventListener('message', async function (event) {
|
|||
}
|
||||
})
|
||||
|
||||
self.addEventListener('fetch', function (event) {
|
||||
const { request } = event
|
||||
addEventListener('fetch', function (event) {
|
||||
const requestInterceptedAt = Date.now()
|
||||
|
||||
// Bypass navigation requests.
|
||||
if (request.mode === 'navigate') {
|
||||
if (event.request.mode === 'navigate') {
|
||||
return
|
||||
}
|
||||
|
||||
// Opening the DevTools triggers the "only-if-cached" request
|
||||
// that cannot be handled by the worker. Bypass such requests.
|
||||
if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {
|
||||
if (
|
||||
event.request.cache === 'only-if-cached' &&
|
||||
event.request.mode !== 'same-origin'
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
// Bypass all requests when there are no active clients.
|
||||
// Prevents the self-unregistered worked from handling requests
|
||||
// after it's been deleted (still remains active until the next reload).
|
||||
// after it's been terminated (still remains active until the next reload).
|
||||
if (activeClientIds.size === 0) {
|
||||
return
|
||||
}
|
||||
|
||||
// Generate unique request ID.
|
||||
const requestId = crypto.randomUUID()
|
||||
event.respondWith(handleRequest(event, requestId))
|
||||
event.respondWith(handleRequest(event, requestId, requestInterceptedAt))
|
||||
})
|
||||
|
||||
async function handleRequest(event, requestId) {
|
||||
/**
|
||||
* @param {FetchEvent} event
|
||||
* @param {string} requestId
|
||||
* @param {number} requestInterceptedAt
|
||||
*/
|
||||
async function handleRequest(event, requestId, requestInterceptedAt) {
|
||||
const client = await resolveMainClient(event)
|
||||
const response = await getResponse(event, client, requestId)
|
||||
const requestCloneForEvents = event.request.clone()
|
||||
const response = await getResponse(
|
||||
event,
|
||||
client,
|
||||
requestId,
|
||||
requestInterceptedAt,
|
||||
)
|
||||
|
||||
// Send back the response clone for the "response:*" life-cycle events.
|
||||
// Ensure MSW is active and ready to handle the message, otherwise
|
||||
// this message will pend indefinitely.
|
||||
if (client && activeClientIds.has(client.id)) {
|
||||
;(async function () {
|
||||
const responseClone = response.clone()
|
||||
const serializedRequest = await serializeRequest(requestCloneForEvents)
|
||||
|
||||
sendToClient(
|
||||
client,
|
||||
{
|
||||
type: 'RESPONSE',
|
||||
payload: {
|
||||
requestId,
|
||||
isMockedResponse: IS_MOCKED_RESPONSE in response,
|
||||
// Clone the response so both the client and the library could consume it.
|
||||
const responseClone = response.clone()
|
||||
|
||||
sendToClient(
|
||||
client,
|
||||
{
|
||||
type: 'RESPONSE',
|
||||
payload: {
|
||||
isMockedResponse: IS_MOCKED_RESPONSE in response,
|
||||
request: {
|
||||
id: requestId,
|
||||
...serializedRequest,
|
||||
},
|
||||
response: {
|
||||
type: responseClone.type,
|
||||
status: responseClone.status,
|
||||
statusText: responseClone.statusText,
|
||||
body: responseClone.body,
|
||||
headers: Object.fromEntries(responseClone.headers.entries()),
|
||||
body: responseClone.body,
|
||||
},
|
||||
},
|
||||
[responseClone.body],
|
||||
)
|
||||
})()
|
||||
},
|
||||
responseClone.body ? [serializedRequest.body, responseClone.body] : [],
|
||||
)
|
||||
}
|
||||
|
||||
return response
|
||||
}
|
||||
|
||||
// Resolve the main client for the given event.
|
||||
// Client that issues a request doesn't necessarily equal the client
|
||||
// that registered the worker. It's with the latter the worker should
|
||||
// communicate with during the response resolving phase.
|
||||
/**
|
||||
* Resolve the main client for the given event.
|
||||
* Client that issues a request doesn't necessarily equal the client
|
||||
* that registered the worker. It's with the latter the worker should
|
||||
* communicate with during the response resolving phase.
|
||||
* @param {FetchEvent} event
|
||||
* @returns {Promise<Client | undefined>}
|
||||
*/
|
||||
async function resolveMainClient(event) {
|
||||
const client = await self.clients.get(event.clientId)
|
||||
|
||||
|
|
@ -184,12 +201,17 @@ async function resolveMainClient(event) {
|
|||
})
|
||||
}
|
||||
|
||||
async function getResponse(event, client, requestId) {
|
||||
const { request } = event
|
||||
|
||||
/**
|
||||
* @param {FetchEvent} event
|
||||
* @param {Client | undefined} client
|
||||
* @param {string} requestId
|
||||
* @param {number} requestInterceptedAt
|
||||
* @returns {Promise<Response>}
|
||||
*/
|
||||
async function getResponse(event, client, requestId, requestInterceptedAt) {
|
||||
// Clone the request because it might've been already used
|
||||
// (i.e. its body has been read and sent to the client).
|
||||
const requestClone = request.clone()
|
||||
const requestClone = event.request.clone()
|
||||
|
||||
function passthrough() {
|
||||
// Cast the request headers to a new Headers instance
|
||||
|
|
@ -230,29 +252,18 @@ async function getResponse(event, client, requestId) {
|
|||
}
|
||||
|
||||
// Notify the client that a request has been intercepted.
|
||||
const requestBuffer = await request.arrayBuffer()
|
||||
const serializedRequest = await serializeRequest(event.request)
|
||||
const clientMessage = await sendToClient(
|
||||
client,
|
||||
{
|
||||
type: 'REQUEST',
|
||||
payload: {
|
||||
id: requestId,
|
||||
url: request.url,
|
||||
mode: request.mode,
|
||||
method: request.method,
|
||||
headers: Object.fromEntries(request.headers.entries()),
|
||||
cache: request.cache,
|
||||
credentials: request.credentials,
|
||||
destination: request.destination,
|
||||
integrity: request.integrity,
|
||||
redirect: request.redirect,
|
||||
referrer: request.referrer,
|
||||
referrerPolicy: request.referrerPolicy,
|
||||
body: requestBuffer,
|
||||
keepalive: request.keepalive,
|
||||
interceptedAt: requestInterceptedAt,
|
||||
...serializedRequest,
|
||||
},
|
||||
},
|
||||
[requestBuffer],
|
||||
[serializedRequest.body],
|
||||
)
|
||||
|
||||
switch (clientMessage.type) {
|
||||
|
|
@ -268,6 +279,12 @@ async function getResponse(event, client, requestId) {
|
|||
return passthrough()
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Client} client
|
||||
* @param {any} message
|
||||
* @param {Array<Transferable>} transferrables
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
function sendToClient(client, message, transferrables = []) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const channel = new MessageChannel()
|
||||
|
|
@ -280,14 +297,18 @@ function sendToClient(client, message, transferrables = []) {
|
|||
resolve(event.data)
|
||||
}
|
||||
|
||||
client.postMessage(
|
||||
message,
|
||||
[channel.port2].concat(transferrables.filter(Boolean)),
|
||||
)
|
||||
client.postMessage(message, [
|
||||
channel.port2,
|
||||
...transferrables.filter(Boolean),
|
||||
])
|
||||
})
|
||||
}
|
||||
|
||||
async function respondWithMock(response) {
|
||||
/**
|
||||
* @param {Response} response
|
||||
* @returns {Response}
|
||||
*/
|
||||
function respondWithMock(response) {
|
||||
// Setting response status code to 0 is a no-op.
|
||||
// However, when responding with a "Response.error()", the produced Response
|
||||
// instance will have status code set to 0. Since it's not possible to create
|
||||
|
|
@ -305,3 +326,24 @@ async function respondWithMock(response) {
|
|||
|
||||
return mockedResponse
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Request} request
|
||||
*/
|
||||
async function serializeRequest(request) {
|
||||
return {
|
||||
url: request.url,
|
||||
mode: request.mode,
|
||||
method: request.method,
|
||||
headers: Object.fromEntries(request.headers.entries()),
|
||||
cache: request.cache,
|
||||
credentials: request.credentials,
|
||||
destination: request.destination,
|
||||
integrity: request.integrity,
|
||||
redirect: request.redirect,
|
||||
referrer: request.referrer,
|
||||
referrerPolicy: request.referrerPolicy,
|
||||
body: await request.arrayBuffer(),
|
||||
keepalive: request.keepalive,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import PokemonView from './features/pokemon/PokemonView';
|
||||
import PostsView from './features/posts/PostsView';
|
||||
import { Box, Flex, Heading } from '@chakra-ui/react';
|
||||
import { Link, UnorderedList, ListItem } from '@chakra-ui/react';
|
||||
import { Box, Flex, Heading, List } from '@chakra-ui/react';
|
||||
import { Link } from '@chakra-ui/react';
|
||||
import { Code } from '@chakra-ui/react';
|
||||
import * as React from 'react';
|
||||
import { DevToolsSelector } from './features/DevTools/DevToolsSelector';
|
||||
|
|
@ -27,44 +27,48 @@ export function App() {
|
|||
</Box>
|
||||
</Flex>
|
||||
<Flex p="2" as="footer">
|
||||
<UnorderedList p="2">
|
||||
<ListItem>
|
||||
<List.Root p="2">
|
||||
<List.Item>
|
||||
<Link
|
||||
className="link"
|
||||
isExternal
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="https://github.com/FaberVitale/redux-devtools/tree/feat/rtk-query-monitor/packages/redux-devtools-rtk-query-monitor/demo"
|
||||
>
|
||||
demo source
|
||||
</Link>
|
||||
</ListItem>
|
||||
<ListItem>
|
||||
</List.Item>
|
||||
<List.Item>
|
||||
<Link
|
||||
className="link"
|
||||
isExternal
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="https://github.com/FaberVitale/redux-devtools/tree/feat/rtk-query-monitor/packages/redux-devtools-rtk-query-monitor"
|
||||
>
|
||||
@redux-devtools/rtk-query-monitor source
|
||||
</Link>
|
||||
</ListItem>
|
||||
<ListItem>
|
||||
</List.Item>
|
||||
<List.Item>
|
||||
<Link
|
||||
className="link"
|
||||
isExternal
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="https://github.com/reduxjs/redux-toolkit/tree/master/examples/query/react/polling"
|
||||
>
|
||||
polling example
|
||||
</Link>
|
||||
</ListItem>
|
||||
<ListItem>
|
||||
</List.Item>
|
||||
<List.Item>
|
||||
<Link
|
||||
className="link"
|
||||
isExternal
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="https://github.com/reduxjs/redux-toolkit/tree/master/examples/query/react/mutations"
|
||||
>
|
||||
mutations example
|
||||
</Link>
|
||||
</ListItem>
|
||||
</UnorderedList>
|
||||
</List.Item>
|
||||
</List.Root>
|
||||
</Flex>
|
||||
</main>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
'use client';
|
||||
|
||||
import React from 'react';
|
||||
import { ChakraProvider, defaultSystem } from '@chakra-ui/react';
|
||||
|
||||
export function Provider({ children }: { children: React.ReactNode }) {
|
||||
return <ChakraProvider value={defaultSystem}>{children}</ChakraProvider>;
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
'use client';
|
||||
|
||||
import React from 'react';
|
||||
import {
|
||||
Toaster as ChakraToaster,
|
||||
Portal,
|
||||
Spinner,
|
||||
Stack,
|
||||
Toast,
|
||||
createToaster,
|
||||
} from '@chakra-ui/react';
|
||||
|
||||
export const toaster = createToaster({
|
||||
placement: 'bottom-end',
|
||||
pauseOnPageIdle: true,
|
||||
});
|
||||
|
||||
export const Toaster = () => {
|
||||
return (
|
||||
<Portal>
|
||||
<ChakraToaster toaster={toaster} insetInline={{ mdDown: '4' }}>
|
||||
{(toast) => (
|
||||
<Toast.Root width={{ md: 'sm' }}>
|
||||
{toast.type === 'loading' ? (
|
||||
<Spinner size="sm" color="blue.solid" />
|
||||
) : (
|
||||
<Toast.Indicator />
|
||||
)}
|
||||
<Stack gap="1" flex="1" maxWidth="100%">
|
||||
{toast.title && <Toast.Title>{toast.title}</Toast.Title>}
|
||||
{toast.description && (
|
||||
<Toast.Description>{toast.description}</Toast.Description>
|
||||
)}
|
||||
</Stack>
|
||||
{toast.action && (
|
||||
<Toast.ActionTrigger>{toast.action.label}</Toast.ActionTrigger>
|
||||
)}
|
||||
{toast.closable && <Toast.CloseTrigger />}
|
||||
</Toast.Root>
|
||||
)}
|
||||
</ChakraToaster>
|
||||
</Portal>
|
||||
);
|
||||
};
|
||||
|
|
@ -14,7 +14,7 @@ export function DevToolsSelector() {
|
|||
return (
|
||||
<Box as="section" p="2">
|
||||
<Heading as="h2">Set active devTools</Heading>
|
||||
<ButtonGroup variant="outline" spacing="4" p="4">
|
||||
<ButtonGroup variant="outline" gap="4" p="4">
|
||||
<Button
|
||||
aria-selected={!extensionEnabled}
|
||||
colorScheme="blue"
|
||||
|
|
|
|||
|
|
@ -1,15 +1,17 @@
|
|||
import React, { useState } from 'react';
|
||||
import { Button, Select } from '@chakra-ui/react';
|
||||
import { Button, createListCollection, Portal, Select } from '@chakra-ui/react';
|
||||
import { useGetPokemonByNameQuery } from '../../services/pokemon';
|
||||
import type { PokemonName } from '../../pokemon.data';
|
||||
|
||||
const intervalOptions = [
|
||||
{ label: 'Off', value: 0 },
|
||||
{ label: '3s', value: 3000 },
|
||||
{ label: '5s', value: 5000 },
|
||||
{ label: '10s', value: 10000 },
|
||||
{ label: '1m', value: 60000 },
|
||||
];
|
||||
const intervalOptions = createListCollection({
|
||||
items: [
|
||||
{ label: 'Off', value: '0' },
|
||||
{ label: '3s', value: '3000' },
|
||||
{ label: '5s', value: '5000' },
|
||||
{ label: '10s', value: '10000' },
|
||||
{ label: '1m', value: '60000' },
|
||||
],
|
||||
});
|
||||
|
||||
export function Pokemon({ name }: { name: PokemonName }) {
|
||||
const [pollingInterval, setPollingInterval] = useState(60000);
|
||||
|
|
@ -41,19 +43,39 @@ export function Pokemon({ name }: { name: PokemonName }) {
|
|||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label style={{ display: 'block' }}>Polling interval</label>
|
||||
<Select
|
||||
value={pollingInterval}
|
||||
onChange={({ target: { value } }) =>
|
||||
setPollingInterval(Number(value))
|
||||
<Select.Root
|
||||
collection={intervalOptions}
|
||||
value={[pollingInterval.toString()]}
|
||||
onValueChange={({ value }) =>
|
||||
setPollingInterval(Number(value[0]))
|
||||
}
|
||||
>
|
||||
{intervalOptions.map(({ label, value }) => (
|
||||
<option key={value} value={value}>
|
||||
{label}
|
||||
</option>
|
||||
))}
|
||||
</Select>
|
||||
<Select.HiddenSelect />
|
||||
<Select.Label>Polling interval</Select.Label>
|
||||
<Select.Control>
|
||||
<Select.Trigger>
|
||||
<Select.ValueText placeholder="Polling interval" />
|
||||
</Select.Trigger>
|
||||
<Select.IndicatorGroup>
|
||||
<Select.Indicator />
|
||||
</Select.IndicatorGroup>
|
||||
</Select.Control>
|
||||
<Portal>
|
||||
<Select.Positioner>
|
||||
<Select.Content>
|
||||
{intervalOptions.items.map((intervalOption) => (
|
||||
<Select.Item
|
||||
item={intervalOption}
|
||||
key={intervalOption.value}
|
||||
>
|
||||
{intervalOption.label}
|
||||
<Select.ItemIndicator />
|
||||
</Select.Item>
|
||||
))}
|
||||
</Select.Content>
|
||||
</Select.Positioner>
|
||||
</Portal>
|
||||
</Select.Root>
|
||||
</div>
|
||||
<div>
|
||||
<Button
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ import {
|
|||
Input,
|
||||
Spacer,
|
||||
Stack,
|
||||
useToast,
|
||||
} from '@chakra-ui/react';
|
||||
import { toaster } from '../../components/ui/toaster';
|
||||
|
||||
const EditablePostName = ({
|
||||
name: initialName,
|
||||
|
|
@ -50,8 +50,8 @@ const EditablePostName = ({
|
|||
</Box>
|
||||
<Spacer />
|
||||
<Box>
|
||||
<Stack spacing={4} direction="row" align="center">
|
||||
<Button onClick={handleUpdate} isLoading={isLoading}>
|
||||
<Stack gap={4} direction="row" align="center">
|
||||
<Button onClick={handleUpdate} loading={isLoading}>
|
||||
Update
|
||||
</Button>
|
||||
<CloseButton bg="red" onClick={handleCancel} disabled={isLoading} />
|
||||
|
|
@ -75,8 +75,6 @@ export const PostDetail = () => {
|
|||
const { id } = useParams<{ id: string }>();
|
||||
const navigate = useNavigate();
|
||||
|
||||
const toast = useToast();
|
||||
|
||||
const [isEditing, setIsEditing] = useState(false);
|
||||
|
||||
const { data: post, isLoading } = useGetPostQuery(id!);
|
||||
|
|
@ -108,12 +106,12 @@ export const PostDetail = () => {
|
|||
try {
|
||||
await updatePost({ id: id!, name }).unwrap();
|
||||
} catch {
|
||||
toast({
|
||||
toaster.create({
|
||||
title: 'An error occurred',
|
||||
description: "We couldn't save your changes, try again!",
|
||||
status: 'error',
|
||||
type: 'error',
|
||||
duration: 2000,
|
||||
isClosable: true,
|
||||
closable: true,
|
||||
});
|
||||
} finally {
|
||||
setIsEditing(false);
|
||||
|
|
@ -129,7 +127,7 @@ export const PostDetail = () => {
|
|||
</Box>
|
||||
<Spacer />
|
||||
<Box>
|
||||
<Stack spacing={4} direction="row" align="center">
|
||||
<Stack gap={4} direction="row" align="center">
|
||||
<Button
|
||||
onClick={() => setIsEditing(true)}
|
||||
disabled={isDeleting || isUpdating}
|
||||
|
|
|
|||
|
|
@ -2,20 +2,15 @@ import {
|
|||
Box,
|
||||
Button,
|
||||
Center,
|
||||
Divider,
|
||||
Field,
|
||||
Flex,
|
||||
FormControl,
|
||||
FormLabel,
|
||||
FormatNumber,
|
||||
Heading,
|
||||
Input,
|
||||
List,
|
||||
ListIcon,
|
||||
ListItem,
|
||||
Separator,
|
||||
Spacer,
|
||||
Stat,
|
||||
StatLabel,
|
||||
StatNumber,
|
||||
useToast,
|
||||
} from '@chakra-ui/react';
|
||||
import { Route, Routes, useNavigate } from 'react-router-dom';
|
||||
import { MdBook } from 'react-icons/md';
|
||||
|
|
@ -26,12 +21,12 @@ import {
|
|||
useGetPostsQuery,
|
||||
} from '../../services/posts';
|
||||
import { PostDetail } from './PostDetail';
|
||||
import { toaster } from '../../components/ui/toaster';
|
||||
|
||||
const AddPost = () => {
|
||||
const initialValue = { name: '' };
|
||||
const [post, setPost] = useState<Pick<Post, 'name'>>(initialValue);
|
||||
const [addPost, { isLoading }] = useAddPostMutation();
|
||||
const toast = useToast();
|
||||
|
||||
const handleChange = ({ target }: React.ChangeEvent<HTMLInputElement>) => {
|
||||
setPost((prev) => ({
|
||||
|
|
@ -45,12 +40,12 @@ const AddPost = () => {
|
|||
await addPost(post).unwrap();
|
||||
setPost(initialValue);
|
||||
} catch {
|
||||
toast({
|
||||
toaster.create({
|
||||
title: 'An error occurred',
|
||||
description: "We couldn't save your post, try again!",
|
||||
status: 'error',
|
||||
type: 'error',
|
||||
duration: 2000,
|
||||
isClosable: true,
|
||||
closable: true,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
@ -58,11 +53,11 @@ const AddPost = () => {
|
|||
return (
|
||||
<Flex p={'5px 0'} flexDirection="row" flexWrap="wrap" maxWidth={'85%'}>
|
||||
<Box flex={'5 0 auto'} padding="0 5px 0 0">
|
||||
<FormControl
|
||||
<Field.Root
|
||||
flexDirection="column"
|
||||
isInvalid={Boolean(post.name.length < 3 && post.name)}
|
||||
invalid={Boolean(post.name.length < 3 && post.name)}
|
||||
>
|
||||
<FormLabel htmlFor="name">Post name</FormLabel>
|
||||
<Field.Label htmlFor="name">Post name</Field.Label>
|
||||
<Input
|
||||
id="name"
|
||||
name="name"
|
||||
|
|
@ -70,13 +65,13 @@ const AddPost = () => {
|
|||
value={post.name}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
</FormControl>
|
||||
</Field.Root>
|
||||
</Box>
|
||||
<Box>
|
||||
<Button
|
||||
mt={8}
|
||||
colorScheme="purple"
|
||||
isLoading={isLoading}
|
||||
loading={isLoading}
|
||||
onClick={handleAddPost}
|
||||
>
|
||||
Add Post
|
||||
|
|
@ -99,13 +94,16 @@ const PostList = () => {
|
|||
}
|
||||
|
||||
return (
|
||||
<List spacing={3}>
|
||||
<List.Root gap={3}>
|
||||
{posts.map(({ id, name }) => (
|
||||
<ListItem key={id} onClick={() => navigate(`/posts/${id}`)}>
|
||||
<ListIcon as={MdBook} color="green.500" /> {name}
|
||||
</ListItem>
|
||||
<List.Item key={id} onClick={() => navigate(`/posts/${id}`)}>
|
||||
<List.Indicator asChild color="green.500">
|
||||
<MdBook />
|
||||
</List.Indicator>
|
||||
{name}
|
||||
</List.Item>
|
||||
))}
|
||||
</List>
|
||||
</List.Root>
|
||||
);
|
||||
};
|
||||
|
||||
|
|
@ -115,10 +113,12 @@ export const PostsCountStat = () => {
|
|||
if (!posts) return null;
|
||||
|
||||
return (
|
||||
<Stat>
|
||||
<StatLabel>Active Posts</StatLabel>
|
||||
<StatNumber>{posts?.length}</StatNumber>
|
||||
</Stat>
|
||||
<Stat.Root>
|
||||
<Stat.Label>Active Posts</Stat.Label>
|
||||
<Stat.ValueText>
|
||||
<FormatNumber value={posts?.length} />
|
||||
</Stat.ValueText>
|
||||
</Stat.Root>
|
||||
);
|
||||
};
|
||||
|
||||
|
|
@ -134,9 +134,9 @@ export const PostsManager = () => {
|
|||
<PostsCountStat />
|
||||
</Box>
|
||||
</Flex>
|
||||
<Divider />
|
||||
<Separator />
|
||||
<AddPost />
|
||||
<Divider />
|
||||
<Separator />
|
||||
<Flex wrap="wrap">
|
||||
<Box flex={1} borderRight="1px solid #eee">
|
||||
<Box p={4} borderBottom="1px solid #eee">
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
import React from 'react';
|
||||
import ReactDOM from 'react-dom/client';
|
||||
import { Provider } from 'react-redux';
|
||||
import { ChakraProvider } from '@chakra-ui/react';
|
||||
import { Provider as ChakraProvider } from './components/ui/provider';
|
||||
import './index.css';
|
||||
import { store } from './store';
|
||||
import DevTools from './features/DevTools/DevTools';
|
||||
import { BrowserRouter } from 'react-router-dom';
|
||||
import { App } from './App';
|
||||
import { worker } from './mocks/browser';
|
||||
import { Toaster } from './components/ui/toaster';
|
||||
|
||||
function renderApp() {
|
||||
const rootElement = document.getElementById('root');
|
||||
|
|
@ -17,6 +18,7 @@ function renderApp() {
|
|||
<ChakraProvider>
|
||||
<BrowserRouter>
|
||||
<App />
|
||||
<Toaster />
|
||||
<DevTools />
|
||||
</BrowserRouter>
|
||||
</ChakraProvider>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
/// <reference types="react-scripts" />
|
||||
|
||||
declare module '@redux-devtools/app';
|
||||
|
||||
declare module 'remote-redux-devtools';
|
||||
|
|
|
|||
|
|
@ -21,5 +21,8 @@ export const store: EnhancedStore<ReturnType<typeof reducer>> = configureStore({
|
|||
// adding the api middleware enables caching, invalidation, polling and other features of `rtk-query`
|
||||
middleware: (getDefaultMiddleware) =>
|
||||
getDefaultMiddleware().concat([pokemonApi.middleware, postsApi.middleware]),
|
||||
enhancers: (devTools ? [] : [DevTools.instrument()]) as any,
|
||||
enhancers: devTools
|
||||
? undefined
|
||||
: (getDefaultEnhancers) =>
|
||||
getDefaultEnhancers().concat(DevTools.instrument()),
|
||||
});
|
||||
|
|
|
|||
|
|
@ -8,5 +8,7 @@ module.exports = {
|
|||
'^.+\\.jsx?$': 'babel-jest',
|
||||
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }],
|
||||
},
|
||||
transformIgnorePatterns: ['node_modules/(?!.pnpm|lodash-es|nanoid)'],
|
||||
transformIgnorePatterns: [
|
||||
'node_modules/(?!.pnpm|@x0k/json-schema-merge|color|lodash-es|nanoid)',
|
||||
],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@redux-devtools/rtk-query-monitor",
|
||||
"version": "5.2.0",
|
||||
"version": "6.0.0",
|
||||
"description": "rtk-query monitor for Redux DevTools",
|
||||
"keywords": [
|
||||
"redux",
|
||||
|
|
@ -44,52 +44,52 @@
|
|||
"prepublish": "pnpm run type-check && pnpm run lint && pnpm run test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.26.9",
|
||||
"@babel/runtime": "^7.28.6",
|
||||
"@redux-devtools/ui": "workspace:^",
|
||||
"@types/lodash": "^4.17.16",
|
||||
"@types/lodash": "^4.17.23",
|
||||
"hex-rgba": "^1.0.2",
|
||||
"immutable": "^5.0.3",
|
||||
"immutable": "^5.1.4",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"react-base16-styling": "workspace:^",
|
||||
"react-json-tree": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.26.4",
|
||||
"@babel/core": "^7.26.9",
|
||||
"@babel/eslint-parser": "^7.26.8",
|
||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@babel/preset-typescript": "^7.26.0",
|
||||
"@babel/cli": "^7.28.6",
|
||||
"@babel/core": "^7.28.6",
|
||||
"@babel/eslint-parser": "^7.28.6",
|
||||
"@babel/plugin-transform-runtime": "^7.28.5",
|
||||
"@babel/preset-env": "^7.28.6",
|
||||
"@babel/preset-react": "^7.28.5",
|
||||
"@babel/preset-typescript": "^7.28.5",
|
||||
"@emotion/babel-preset-css-prop": "^11.12.0",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@reduxjs/toolkit": "^2.6.0",
|
||||
"@testing-library/dom": "^10.4.0",
|
||||
"@testing-library/jest-dom": "^6.6.3",
|
||||
"@testing-library/react": "^16.2.0",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@reduxjs/toolkit": "^2.11.2",
|
||||
"@testing-library/dom": "^10.4.1",
|
||||
"@testing-library/jest-dom": "^6.9.1",
|
||||
"@testing-library/react": "^16.3.1",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/hex-rgba": "^1.0.3",
|
||||
"@types/lodash.debounce": "^4.0.9",
|
||||
"@types/react": "^18.3.18",
|
||||
"jest": "^29.7.0",
|
||||
"jest-environment-jsdom": "^29.7.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"@types/react": "^19.2.8",
|
||||
"jest": "^30.2.0",
|
||||
"jest-environment-jsdom": "^30.2.0",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-redux": "^9.2.0",
|
||||
"redux": "^5.0.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "~5.8.2"
|
||||
"rimraf": "^6.1.2",
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "~5.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@redux-devtools/core": "workspace:^",
|
||||
"@reduxjs/toolkit": "^1.0.0 || ^2.0.0",
|
||||
"@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"@types/styled-components": "^5.1.34",
|
||||
"react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||
"redux": "^3.4.0 || ^4.0.0 || ^5.0.0",
|
||||
"styled-components": "^5.3.11"
|
||||
"redux": "^3.4.0 || ^4.0.0 || ^5.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user