diff --git a/extension/package.json b/extension/package.json index ef336d11..670d6683 100644 --- a/extension/package.json +++ b/extension/package.json @@ -66,7 +66,7 @@ "electron": "^31.7.7", "esbuild": "^0.25.0", "globals": "^15.15.0", - "immutable": "^4.3.7", + "immutable": "^5.0.3", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "pug": "^3.0.3", diff --git a/packages/map2tree/package.json b/packages/map2tree/package.json index 5b3caab6..eb1cbd70 100755 --- a/packages/map2tree/package.json +++ b/packages/map2tree/package.json @@ -42,7 +42,7 @@ "devDependencies": { "@types/jest": "^29.5.14", "@types/lodash-es": "^4.17.12", - "immutable": "^4.3.7", + "immutable": "^5.0.3", "jest": "^29.7.0", "rimraf": "^6.0.1", "ts-jest": "^29.2.6", diff --git a/packages/react-json-tree/examples/package.json b/packages/react-json-tree/examples/package.json index 1dba762c..edeb9348 100644 --- a/packages/react-json-tree/examples/package.json +++ b/packages/react-json-tree/examples/package.json @@ -19,7 +19,7 @@ "type-check": "tsc --noEmit" }, "dependencies": { - "immutable": "^4.3.7", + "immutable": "^5.0.3", "react": "^18.3.1", "react-base16-styling": "workspace:^", "react-dom": "^18.3.1", diff --git a/packages/redux-devtools-extension/package.json b/packages/redux-devtools-extension/package.json index f57a8d80..496dd409 100644 --- a/packages/redux-devtools-extension/package.json +++ b/packages/redux-devtools-extension/package.json @@ -29,8 +29,7 @@ "prepublish": "pnpm run type-check && pnpm run lint" }, "dependencies": { - "@babel/runtime": "^7.26.9", - "immutable": "^4.3.7" + "@babel/runtime": "^7.26.9" }, "devDependencies": { "@babel/cli": "^7.26.4", diff --git a/packages/redux-devtools-extension/src/index.ts b/packages/redux-devtools-extension/src/index.ts index 366b9e21..a9aafe45 100644 --- a/packages/redux-devtools-extension/src/index.ts +++ b/packages/redux-devtools-extension/src/index.ts @@ -1,4 +1,3 @@ -import type Immutable from 'immutable'; import { compose } from 'redux'; import type { Action, ActionCreator, StoreEnhancer } from 'redux'; @@ -74,11 +73,11 @@ export interface EnhancerOptions { * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back. * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`. */ - immutable?: typeof Immutable; + immutable?: unknown; /** * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting... */ - refs?: Immutable.Record.Factory[]; + refs?: (new (data: any) => unknown)[]; }; /** * function which takes `action` object and id number as arguments, and should return `action` object back. diff --git a/packages/redux-devtools-inspector-monitor-test-tab/demo/package.json b/packages/redux-devtools-inspector-monitor-test-tab/demo/package.json index 0530724e..f3294899 100644 --- a/packages/redux-devtools-inspector-monitor-test-tab/demo/package.json +++ b/packages/redux-devtools-inspector-monitor-test-tab/demo/package.json @@ -16,7 +16,7 @@ "@redux-devtools/inspector-monitor": "workspace:^", "@redux-devtools/inspector-monitor-test-tab": "workspace:^", "@redux-devtools/ui": "workspace:^", - "immutable": "^4.3.7", + "immutable": "^5.0.3", "lodash.shuffle": "^4.2.0", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/packages/redux-devtools-inspector-monitor-test-tab/demo/src/reducers.ts b/packages/redux-devtools-inspector-monitor-test-tab/demo/src/reducers.ts index 6c6a4dfe..dbe75e6a 100644 --- a/packages/redux-devtools-inspector-monitor-test-tab/demo/src/reducers.ts +++ b/packages/redux-devtools-inspector-monitor-test-tab/demo/src/reducers.ts @@ -1,4 +1,11 @@ -import Immutable from 'immutable'; +import { + fromJS, + Map as ImmutableMap, + List, + Set as ImmutableSet, + Stack, + Seq, +} from 'immutable'; import shuffle from 'lodash.shuffle'; import { combineReducers, Reducer } from 'redux'; @@ -18,17 +25,14 @@ const NESTED = { }, }; -const IMMUTABLE_NESTED = Immutable.fromJS(NESTED) as Immutable.Map< - unknown, - unknown ->; +const IMMUTABLE_NESTED = fromJS(NESTED) as ImmutableMap; -const IMMUTABLE_MAP = Immutable.Map({ - map: Immutable.Map({ a: 1, b: 2, c: 3 }), - list: Immutable.List(['a', 'b', 'c']), - set: Immutable.Set(['a', 'b', 'c']), - stack: Immutable.Stack(['a', 'b', 'c']), - seq: Immutable.Seq([1, 2, 3, 4, 5, 6, 7, 8]), +const IMMUTABLE_MAP = ImmutableMap({ + map: ImmutableMap({ a: 1, b: 2, c: 3 }), + list: List(['a', 'b', 'c']), + set: ImmutableSet(['a', 'b', 'c']), + stack: Stack(['a', 'b', 'c']), + seq: Seq([1, 2, 3, 4, 5, 6, 7, 8]), }); const HUGE_ARRAY = Array.from({ length: 5000 }).map((_, key) => ({ diff --git a/packages/redux-devtools-inspector-monitor/demo/package.json b/packages/redux-devtools-inspector-monitor/demo/package.json index bb092d88..35e31093 100644 --- a/packages/redux-devtools-inspector-monitor/demo/package.json +++ b/packages/redux-devtools-inspector-monitor/demo/package.json @@ -14,7 +14,7 @@ "@redux-devtools/core": "workspace:^", "@redux-devtools/dock-monitor": "workspace:^", "@redux-devtools/inspector-monitor": "workspace:^", - "immutable": "^4.3.7", + "immutable": "^5.0.3", "lodash.shuffle": "^4.2.0", "react": "^18.3.1", "react-base16-styling": "workspace:^", diff --git a/packages/redux-devtools-inspector-monitor/demo/src/reducers.ts b/packages/redux-devtools-inspector-monitor/demo/src/reducers.ts index b5ab333b..d7f4af13 100644 --- a/packages/redux-devtools-inspector-monitor/demo/src/reducers.ts +++ b/packages/redux-devtools-inspector-monitor/demo/src/reducers.ts @@ -1,4 +1,11 @@ -import Immutable from 'immutable'; +import { + fromJS, + Map as ImmutableMap, + List, + Set as ImmutableSet, + Stack, + Seq, +} from 'immutable'; import shuffle from 'lodash.shuffle'; import { combineReducers, Reducer } from 'redux'; @@ -18,17 +25,14 @@ const NESTED = { }, }; -const IMMUTABLE_NESTED = Immutable.fromJS(NESTED) as Immutable.Map< - unknown, - unknown ->; +const IMMUTABLE_NESTED = fromJS(NESTED) as ImmutableMap; -const IMMUTABLE_MAP = Immutable.Map({ - map: Immutable.Map({ a: 1, b: 2, c: 3 }), - list: Immutable.List(['a', 'b', 'c']), - set: Immutable.Set(['a', 'b', 'c']), - stack: Immutable.Stack(['a', 'b', 'c']), - seq: Immutable.Seq([1, 2, 3, 4, 5, 6, 7, 8]), +const IMMUTABLE_MAP = ImmutableMap({ + map: ImmutableMap({ a: 1, b: 2, c: 3 }), + list: List(['a', 'b', 'c']), + set: ImmutableSet(['a', 'b', 'c']), + stack: Stack(['a', 'b', 'c']), + seq: Seq([1, 2, 3, 4, 5, 6, 7, 8]), }); type MapValue = diff --git a/packages/redux-devtools-inspector-monitor/package.json b/packages/redux-devtools-inspector-monitor/package.json index ccf7be76..3655eb60 100644 --- a/packages/redux-devtools-inspector-monitor/package.json +++ b/packages/redux-devtools-inspector-monitor/package.json @@ -43,7 +43,7 @@ "@types/lodash": "^4.17.16", "dateformat": "^5.0.3", "hex-rgba": "^1.0.2", - "immutable": "^4.3.7", + "immutable": "^5.0.3", "javascript-stringify": "^2.1.0", "jsondiffpatch": "^0.6.0", "lodash.debounce": "^4.0.8", diff --git a/packages/redux-devtools-rtk-query-monitor/package.json b/packages/redux-devtools-rtk-query-monitor/package.json index 020e786c..7d3d900b 100644 --- a/packages/redux-devtools-rtk-query-monitor/package.json +++ b/packages/redux-devtools-rtk-query-monitor/package.json @@ -48,7 +48,7 @@ "@redux-devtools/ui": "workspace:^", "@types/lodash": "^4.17.16", "hex-rgba": "^1.0.2", - "immutable": "^4.3.7", + "immutable": "^5.0.3", "lodash.debounce": "^4.0.8", "react-base16-styling": "workspace:^", "react-json-tree": "workspace:^" diff --git a/packages/redux-devtools-serialize/package.json b/packages/redux-devtools-serialize/package.json index c99e7f0b..438da2d8 100644 --- a/packages/redux-devtools-serialize/package.json +++ b/packages/redux-devtools-serialize/package.json @@ -49,13 +49,13 @@ "@babel/preset-typescript": "^7.26.0", "@types/jest": "^29.5.14", "@types/jsan": "^3.1.5", - "immutable": "^4.3.7", + "immutable": "^5.0.3", "jest": "^29.7.0", "rimraf": "^6.0.1", "ts-jest": "^29.2.6", "typescript": "~5.7.3" }, "peerDependencies": { - "immutable": "^4.3.7" + "immutable": "^5.0.3" } } diff --git a/packages/redux-devtools-serialize/src/immutable/index.ts b/packages/redux-devtools-serialize/src/immutable/index.ts index 08834e7a..570994a5 100644 --- a/packages/redux-devtools-serialize/src/immutable/index.ts +++ b/packages/redux-devtools-serialize/src/immutable/index.ts @@ -1,5 +1,5 @@ import jsan from 'jsan'; -import Immutable from 'immutable'; +import type Immutable from 'immutable'; import serialize from './serialize'; import options from '../constants/options'; diff --git a/packages/redux-devtools-serialize/src/immutable/serialize.ts b/packages/redux-devtools-serialize/src/immutable/serialize.ts index 2318cfb4..314261af 100644 --- a/packages/redux-devtools-serialize/src/immutable/serialize.ts +++ b/packages/redux-devtools-serialize/src/immutable/serialize.ts @@ -1,4 +1,5 @@ -import Immutable, { OrderedSet, Record } from 'immutable'; +import type Immutable from 'immutable'; +import { Record } from 'immutable'; import { mark, extract, refer } from '../helpers'; import options from '../constants/options'; import { SerializedImmutableData } from '../types'; @@ -57,8 +58,8 @@ export default function serialize( return immutable.List(immutableValue.data); case 'ImmutableRange': return immutable.Range( - immutableValue.data._start, - immutableValue.data._end, + immutableValue.data._start!, + immutableValue.data._end!, immutableValue.data._step, ); case 'ImmutableRepeat': diff --git a/packages/redux-devtools-serialize/test/immutable.spec.ts b/packages/redux-devtools-serialize/test/immutable.spec.ts index 0ac7a9c3..566d60db 100644 --- a/packages/redux-devtools-serialize/test/immutable.spec.ts +++ b/packages/redux-devtools-serialize/test/immutable.spec.ts @@ -1,6 +1,8 @@ -import Immutable, { Map, OrderedMap } from 'immutable'; +import * as Immutable from 'immutable'; +import { Map, OrderedMap } from 'immutable'; import Serialize from '../src/immutable'; import { SerializedData } from '../src/helpers'; + const serialize = Serialize(Immutable); const stringify = serialize.stringify; const parse = serialize.parse; @@ -100,7 +102,7 @@ describe('Immutable', function () { const scndProp = parsed.data.scnd.data.prop; expect(fstProp).toEqual(scndProp); - expect(Array.isArray(obj.get('fst')!.get('prop'))).toBe(true); + expect(Array.isArray(obj.get('fst').get('prop'))).toBe(true); }); }); diff --git a/packages/redux-devtools-utils/package.json b/packages/redux-devtools-utils/package.json index 743cce7d..f2709d8d 100644 --- a/packages/redux-devtools-utils/package.json +++ b/packages/redux-devtools-utils/package.json @@ -37,7 +37,7 @@ "@redux-devtools/serialize": "workspace:^", "@types/get-params": "^0.1.2", "get-params": "^0.1.2", - "immutable": "^4.3.7", + "immutable": "^5.0.3", "jsan": "^3.1.14", "nanoid": "^5.1.2", "redux": "^5.0.1" @@ -56,7 +56,7 @@ }, "peerDependencies": { "@redux-devtools/core": "workspace:^", - "immutable": "^4.3.7", + "immutable": "^5.0.3", "redux": "^4.0.0 || ^5.0.0" } } diff --git a/packages/redux-devtools-utils/src/importState.ts b/packages/redux-devtools-utils/src/importState.ts index cb948218..83f5ecbd 100644 --- a/packages/redux-devtools-utils/src/importState.ts +++ b/packages/redux-devtools-utils/src/importState.ts @@ -1,7 +1,7 @@ import jsan from 'jsan'; import { immutableSerialize } from '@redux-devtools/serialize'; import { Action } from 'redux'; -import Immutable from 'immutable'; +import type Immutable from 'immutable'; import { PerformAction } from '@redux-devtools/core'; interface State { diff --git a/packages/redux-devtools-utils/src/index.ts b/packages/redux-devtools-utils/src/index.ts index d901fa27..75120714 100644 --- a/packages/redux-devtools-utils/src/index.ts +++ b/packages/redux-devtools-utils/src/index.ts @@ -2,7 +2,7 @@ import getParams from 'get-params'; import jsan from 'jsan'; import { nanoid } from 'nanoid/non-secure'; import { immutableSerialize } from '@redux-devtools/serialize'; -import Immutable from 'immutable'; +import type Immutable from 'immutable'; import { Action, ActionCreator } from 'redux'; export function generateId(id: string | undefined) { diff --git a/packages/redux-devtools/examples/counter/src/store/configureStore.dev.ts b/packages/redux-devtools/examples/counter/src/store/configureStore.dev.ts index 14a5ece6..de0d5f64 100644 --- a/packages/redux-devtools/examples/counter/src/store/configureStore.dev.ts +++ b/packages/redux-devtools/examples/counter/src/store/configureStore.dev.ts @@ -7,7 +7,7 @@ import { Middleware, } from 'redux'; import { persistState } from '@redux-devtools/core'; -import thunk from 'redux-thunk'; +import { thunk } from 'redux-thunk'; import rootReducer, { CounterState } from '../reducers'; import DevTools from '../containers/DevTools'; import { CounterAction } from '../actions/CounterActions'; diff --git a/packages/redux-devtools/examples/counter/src/store/configureStore.prod.ts b/packages/redux-devtools/examples/counter/src/store/configureStore.prod.ts index b7c04365..f6f51d4a 100644 --- a/packages/redux-devtools/examples/counter/src/store/configureStore.prod.ts +++ b/packages/redux-devtools/examples/counter/src/store/configureStore.prod.ts @@ -1,5 +1,5 @@ import { createStore, applyMiddleware, Middleware } from 'redux'; -import thunk from 'redux-thunk'; +import { thunk } from 'redux-thunk'; import rootReducer, { CounterState } from '../reducers'; const enhancer = applyMiddleware(thunk as unknown as Middleware); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ab3871f..21b121fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,8 +172,8 @@ importers: specifier: ^15.15.0 version: 15.15.0 immutable: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.0.3 + version: 5.0.3 jest: specifier: ^29.7.0 version: 29.7.0(@types/node@22.13.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.7(@swc/helpers@0.5.15))(@types/node@22.13.9)(typescript@5.7.3)) @@ -313,8 +313,8 @@ importers: specifier: ^4.17.12 version: 4.17.12 immutable: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.0.3 + version: 5.0.3 jest: specifier: ^29.7.0 version: 29.7.0(@types/node@22.13.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.7(@swc/helpers@0.5.15))(@types/node@22.13.9)(typescript@5.7.3)) @@ -524,8 +524,8 @@ importers: packages/react-json-tree/examples: dependencies: immutable: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.0.3 + version: 5.0.3 react: specifier: ^18.3.1 version: 18.3.1 @@ -1211,9 +1211,6 @@ importers: '@babel/runtime': specifier: ^7.26.9 version: 7.26.9 - immutable: - specifier: ^4.3.7 - version: 4.3.7 devDependencies: '@babel/cli': specifier: ^7.26.4 @@ -1270,8 +1267,8 @@ importers: specifier: ^1.0.2 version: 1.0.2 immutable: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.0.3 + version: 5.0.3 javascript-stringify: specifier: ^2.1.0 version: 2.1.0 @@ -1476,8 +1473,8 @@ importers: specifier: workspace:^ version: link:../../redux-devtools-ui immutable: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.0.3 + version: 5.0.3 lodash.shuffle: specifier: ^4.2.0 version: 4.2.0 @@ -1697,8 +1694,8 @@ importers: specifier: workspace:^ version: link:.. immutable: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.0.3 + version: 5.0.3 lodash.shuffle: specifier: ^4.2.0 version: 4.2.0 @@ -1979,8 +1976,8 @@ importers: specifier: ^1.0.2 version: 1.0.2 immutable: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.0.3 + version: 5.0.3 lodash.debounce: specifier: ^4.0.8 version: 4.0.8 @@ -2231,8 +2228,8 @@ importers: specifier: ^3.1.5 version: 3.1.5 immutable: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.0.3 + version: 5.0.3 jest: specifier: ^29.7.0 version: 29.7.0(@types/node@22.13.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.7(@swc/helpers@0.5.15))(@types/node@22.13.9)(typescript@5.7.3)) @@ -2594,8 +2591,8 @@ importers: specifier: ^0.1.2 version: 0.1.2 immutable: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.0.3 + version: 5.0.3 jsan: specifier: ^3.1.14 version: 3.1.14 @@ -7397,8 +7394,8 @@ packages: immer@10.1.1: resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} - immutable@4.3.7: - resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + immutable@5.0.3: + resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -16049,7 +16046,7 @@ snapshots: immer@10.1.1: {} - immutable@4.3.7: {} + immutable@5.0.3: {} import-fresh@3.3.1: dependencies: