Compare commits

...

821 Commits

Author SHA1 Message Date
github-actions[bot]
1c5df1ee32
Version Packages (#1851)
* Version Packages

* Bump extension version number

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-04-03 00:36:05 +00:00
renovate[bot]
3fc48a226b
fix(deps): update dependency @babel/runtime to v7.26.10 [security] (#1850)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-02 18:56:21 +00:00
Mark Erikson
17b55ef99f
Handle api.provided state changes in RTKQ 2.6.2 (#1848)
* Handle api.provided state changes in RTKQ 2.6.2

* Create little-melons-grow.md

---------

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-04-02 18:46:52 +00:00
renovate[bot]
73a01cc5a7
chore(deps): update dependency @storybook/addon-webpack5-compiler-swc to v3 (#1849)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-02 18:38:41 +00:00
renovate[bot]
07e8f2c3ad
chore(deps): update dependency babel-loader to v10 (#1845)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-05 17:23:47 -05:00
renovate[bot]
8c563d71bb
chore(deps): update dependency typescript to ~5.8.2 (#1844)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-05 22:10:41 +00:00
renovate[bot]
d730ea185f
fix(deps): update dependency immutable to v5 (#1799)
* fix(deps): update dependency immutable to v5

* Updates

* Updates

* Updates

* Fix lint

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-03-05 22:00:27 +00:00
renovate[bot]
6df66b7320
fix(deps): update dependency msw to ^2.7.3 (#1841)
* fix(deps): update dependency msw to ^2.7.3

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-03-05 20:40:41 +00:00
renovate[bot]
3c90662cfa
chore(deps): lock file maintenance (#1842)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-05 14:49:14 -05:00
renovate[bot]
763bf937a4
fix(deps): update all non-major dependencies (#1840)
* fix(deps): update all non-major dependencies

* Dedupe

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-03-05 19:15:25 +00:00
github-actions[bot]
8ec2b303ee
Version Packages (#1838)
* Version Packages

* Trigger build

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-03-01 16:37:28 -05:00
Nathan Bierema
91f21b2ffc
Fix compatibility of createDevTools with React 19 types (#1837)
* Fix compatibility of createDevTools with React 19 types

* Create fluffy-keys-doubt.md
2025-03-01 20:09:01 +00:00
github-actions[bot]
ff60266836
Version Packages (#1836)
* Version Packages

* Fix version numbers

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-03-01 12:09:02 -05:00
Nathan Bierema
6830118951
Add React 19 to peer deps (#1835)
* Add React 19 to peer deps

* Create moody-crabs-kick.md

* Update moody-crabs-kick.md
2025-03-01 11:44:15 -05:00
renovate[bot]
cc7ec13fb9
chore(deps): lock file maintenance (#1834)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 21:53:49 +00:00
renovate[bot]
e46bbcaef3
fix(deps): update all non-major dependencies (#1833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 16:40:12 -05:00
renovate[bot]
4a8fbc675a
chore(deps): lock file maintenance (#1830)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-10 16:06:50 -05:00
renovate[bot]
c9bed44e0e
fix(deps): update all non-major dependencies (#1826)
* fix(deps): update all non-major dependencies

* Format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-02-10 20:46:53 +00:00
renovate[bot]
750046c4d9
chore(deps): update dependency stylelint-config-standard to v37 (#1824)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 20:59:43 +00:00
renovate[bot]
f42403c579
chore(deps): update dependency eslint-config-prettier to v10 (#1822)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-01-29 19:57:40 +00:00
renovate[bot]
519ec090c6
chore(deps): lock file maintenance (#1823)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 19:46:48 +00:00
renovate[bot]
4e71048997
fix(deps): update all non-major dependencies (#1814)
* fix(deps): update all non-major dependencies

* Dedupe

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-01-29 19:31:18 +00:00
renovate[bot]
5b33056bc5
chore(deps): update dependency webpack-cli to v6 (#1812)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 15:18:55 +00:00
renovate[bot]
da0051706e
chore(deps): lock file maintenance (#1813)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 10:11:21 -05:00
renovate[bot]
6ea51af67c
fix(deps): update all non-major dependencies (#1810)
* fix(deps): update all non-major dependencies

* Dedupe

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2025-01-09 14:45:25 +00:00
renovate[bot]
9a46407254
fix(deps): update dependency msw to ^2.7.0 (#1800)
* fix(deps): update dependency msw to ^2.7.0

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-12-30 13:24:34 -05:00
renovate[bot]
07bd4476b2
chore(deps): update dependency @storybook/addon-webpack5-compiler-swc to v2 (#1807)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-30 17:13:48 +00:00
renovate[bot]
b9993eb5f7
chore(deps): lock file maintenance (#1808)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-30 12:03:27 -05:00
renovate[bot]
5228d46328
fix(deps): update all non-major dependencies (#1794)
* fix(deps): update all non-major dependencies

* Downgrade Ubuntu

Possibly related:

- https://github.com/electron/electron/issues/41066
- https://github.com/SeleniumHQ/selenium/issues/14609

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-12-30 10:48:57 -05:00
Nathan Bierema
2002a81071 Publish @redux-devtools/rtk-query-monitor 2024-12-16 12:43:15 -05:00
renovate[bot]
c065b03caa
chore(deps): update eslint monorepo to v9 (#1670)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-12-07 00:03:15 +00:00
renovate[bot]
81a9ee33cc
chore(deps): update dependency @types/color to v4 (#1795)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-12-06 23:45:59 +00:00
renovate[bot]
3c47910110
chore(deps): update dependency @chromatic-com/storybook to v3 (#1787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-12-06 23:34:12 +00:00
renovate[bot]
1c6f45fb47
chore(deps): update dependency typescript to ~5.7.2 (#1757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-06 23:25:49 +00:00
renovate[bot]
054b27a9f8
chore(deps): update dependency @types/node to v22 (#1796)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-06 23:14:52 +00:00
renovate[bot]
415257cd41
fix(deps): update dependency msw to ^2.6.7 (#1763)
* fix(deps): update dependency msw to ^2.6.7

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-12-06 23:03:53 +00:00
renovate[bot]
14201108e7
chore(deps): lock file maintenance (#1773)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-06 22:53:43 +00:00
renovate[bot]
90737b7e26
fix(deps): update all non-major dependencies (#1780)
* fix(deps): update all non-major dependencies

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-12-06 22:39:17 +00:00
Nathan Bierema
54c6f26c81 Publish @redux-devtools/utils
This hasn't been published since the upgrade to Redux 5
2024-12-05 15:57:27 -05:00
takanuva15
6e400f68b3
feat(docs): add reference to new intellij redux devtools plugin (#1788) 2024-11-19 20:57:04 -05:00
renovate[bot]
2c65192b4f
fix(deps): update all non-major dependencies (#1778)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 18:54:50 +00:00
renovate[bot]
88a02a8332
chore(deps): update all non-major dependencies (#1764)
* chore(deps): update all non-major dependencies

* Combine @types/lodash

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-10-14 08:51:59 -04:00
github-actions[bot]
04858cd514
Version Packages (#1772)
* Version Packages

* Bump version

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-09-21 15:31:15 +00:00
Nathan Bierema
b25bf1304b
Send state from background when monitor connects (#1771)
* Send state from background on connection

* Create green-hats-kick.md
2024-09-21 15:17:43 +00:00
Nathan Bierema
41fae27637
Use pnpm for running scripts instead of nx (#1770)
* Use pnpm for running scripts instead of nx

* Fix typos
2024-09-20 03:06:32 +00:00
Nathan Bierema
fdce076757
Enable linting for extension (#1769)
* Enable linting for extension

* Update lock file
2024-09-20 02:51:22 +00:00
github-actions[bot]
b934e80d23
Version Packages (#1768)
* Version Packages

* Update

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-09-20 01:23:20 +00:00
Nathan Bierema
50d7682776
Fix DevTools from losing connection (#1767)
* Fix DevTools from losing connection

* Create kind-seals-arrive.md
2024-09-20 01:07:52 +00:00
renovate[bot]
344387c9c6
chore(deps): lock file maintenance (#1745)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 20:48:34 -04:00
renovate[bot]
80c570d6d0
fix(deps): update dependency msw to ^2.4.7 (#1762)
* fix(deps): update dependency msw to ^2.4.7

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-09-17 00:19:53 +00:00
renovate[bot]
aca0cd09a1
chore(deps): update dependency @chromatic-com/storybook to v2 (#1756)
* chore(deps): update dependency @chromatic-com/storybook to v2

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-09-16 23:44:52 +00:00
renovate[bot]
75dbf74963
chore(deps): update all non-major dependencies (#1746)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 19:24:11 -04:00
github-actions[bot]
997f7b636d
Version Packages (#1761)
* Version Packages

* Bump

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-09-16 02:57:02 +00:00
Nathan Bierema
eb3ac09b03
Add logging to background service worker (#1760)
* Add logging in background service worker

* Create ninety-sheep-end.md
2024-09-16 02:19:01 +00:00
renovate[bot]
3c39eb49f2
fix(deps): update dependency msw to ^2.4.4 (#1750)
* fix(deps): update dependency msw to ^2.4.4

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-09-09 16:49:21 -04:00
github-actions[bot]
61c09e1cc3
Version Packages (#1749)
* Version Packages

* Bump

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-09-04 02:07:20 +00:00
Nathan Bierema
f1d61580a8
Fix mocking Chrome API for Electron (#1748)
* Fix mocking Chrome API for Electron

* Create chilled-feet-marry.md
2024-09-04 01:47:16 +00:00
renovate[bot]
c5aef77b85
chore(deps): lock file maintenance (#1744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-01 14:02:40 +00:00
renovate[bot]
908e1c11bd
chore(deps): update pnpm to v9 (#1679)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-01 09:41:09 -04:00
renovate[bot]
d591c18fc8
fix(deps): update dependency msw to ^2.4.1 (#1733)
* fix(deps): update dependency msw to ^2.4.1

* Update msw

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-09-01 13:24:59 +00:00
renovate[bot]
bc4b0755c3
chore(deps): lock file maintenance (#1728)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-01 12:57:20 +00:00
renovate[bot]
2c8f0a0544
chore(deps): update dependency @types/node to ^20.16.3 (#1743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-01 12:43:37 +00:00
renovate[bot]
68d4440e38
chore(deps): update all non-major dependencies (#1729)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-01 08:30:09 -04:00
Nathan Bierema
c52962d532
Use workspace protocol (#1742) 2024-09-01 04:12:24 +00:00
Nathan Bierema
18b86498e2
Remove workspaces from package.json (#1741) 2024-08-31 22:26:53 -04:00
Nathan Bierema
01ee4e99be
Update pnpm setup GitHub Action (#1740) 2024-08-31 21:55:32 +00:00
github-actions[bot]
c133d59461
Version Packages (#1738)
* Version Packages

* Update

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-08-31 21:23:43 +00:00
Nathan Bierema
fd9f9504f0
Fix monitoring on opening panel (#1739)
* Fix monitoring on opening panel

* Create polite-foxes-rest.md

* Further cleanup

* Fix

* Simplify

* ===
2024-08-31 21:10:34 +00:00
Nathan Bierema
e49708d831
Fix manifest.json for Edge (#1737)
* Fix manifest.json for Edge

* Create unlucky-dots-hammer.md
2024-08-31 13:22:13 +00:00
github-actions[bot]
f64cbda982
Version Packages (#1736)
* Version Packages

* Bump

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-08-31 03:38:12 +00:00
Nathan Bierema
abd03a70c7
Fix: only send data to extension if DevTools are open (#1735)
* Fix: only send data to extension if DevTools are open

* Create odd-apples-argue.md
2024-08-30 23:26:39 -04:00
Nathan Bierema
b3e8f209fd
Remove more unnecessary use of lodash (#1734) 2024-08-30 19:07:05 -04:00
renovate[bot]
238a38fb21
fix(deps): update dependency @rjsf/core to v5 (#1409)
* fix(deps): update dependency @rjsf/core to v5

* redux-devtools-ui

* Update

* Update

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-08-26 03:16:10 +00:00
renovate[bot]
76183cfa43
chore(deps): lock file maintenance (#1715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 02:11:43 +00:00
renovate[bot]
9fa9a6ff79
fix(deps): update all non-major dependencies (#1713)
* fix(deps): update all non-major dependencies

* weird

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-08-26 01:53:07 +00:00
github-actions[bot]
2a93de46a1
Version Packages (#1720)
* Version Packages

* Bump version numbers

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-08-17 19:25:57 +00:00
Nathan Bierema
83b2c19a11
Upgrade to Manifest V3 (#1714)
* Update Chrome manifest.json

* Remove use of window in background

* Test devpanel

* Inject pageScript using new API

* Keep connection from devpanel to background alive

* Keep connection from content script to background alive

* Replace page action with action

* Cleanup syncOptions

* Update options to not rely on background page access

* Start work on updating popup

* Updates

* Remove window

* Get opening in a separate window working

* Remove pageScriptWrap

* Add socket to panelStore

* Fix tests

* Try to use MV3 for Firefox

* Fix path

* Fix Chrome E2E tests

* Revert unintentional change

* Skip Electron tests for now

Looks like they're still working through stuff in https://github.com/electron/electron/issues/41613

* Better image centering

The Firefox popup did not like the old CSS. This is still not perfect, but it's better than it was.

* Create shaggy-taxis-cross.md
2024-08-17 19:11:46 +00:00
Nathan Bierema
61ec00f505
Remove unnecessary lodash usage from bundles (#1718)
* Use lodash-es instead of lodash in extension

Produces (slightly) smaller bundles

* Use lodash-es instead of lodash in instrument

* Use lodash-es instead of lodash in utils

* Use lodash-es instead of lodash in redux-devtools

* Remove lodash from instrument

* Remove lodash from redux-devtools

* Remove lodash from utils

* Remove unnecessary mapValues from extension
2024-08-13 23:42:16 -04:00
github-actions[bot]
7f41fcf0fc
Version Packages (#1717)
* Version Packages

* Trigger build

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-08-14 02:38:19 +00:00
Nathan Bierema
73688e117a
Fix releasing Firefox extension (#1716)
* Fix releasing Firefox extension

The lowest supported "strict_min_version" is 58.0.

* Create shiny-chicken-hammer.md

* Revert "Fix releasing Firefox extension"

This reverts commit 92881382b2.

* Keep the id
2024-08-14 02:25:26 +00:00
Nathan Bierema
4164b6279e
Use flat config for ESLint (#1712)
* d3tooltip

* map2tree

* d3-state-visualizer

* react-base16-styling

* react-dock

* Cleanup

* Update

* react-json-tree

* redux-devtools

* redux-devtools-app

* redux-devtools-app-core

* redux-devtools-cli

* Fix

* redux-devtools-dock-monitor

* redux-devtools-extension

* redux-devtools-inspector-monitor

* redux-devtools-inspector-monitor-test-tab

* redux-devtools-inspector-monitor-trace-tab

* redux-devtools-instrument

* Simplify

* redux-devtools-log-monitor

* redux-devtools-remote

* redux-devtools-rtk-query-monitor

* redux-devtools-serialize

* redux-devtools-slider-monitor

* redux-devtools-utils

* Format
2024-08-08 23:47:07 -04:00
renovate[bot]
9b2f8720c9
chore(deps): lock file maintenance (#1702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 03:46:44 +00:00
renovate[bot]
0bd66c7388
fix(deps): update all non-major dependencies (#1701)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 03:27:22 +00:00
Nathan Bierema
8682d05b0b
Update Redux packages (#1583)
* Update Redux packages

* Fix instrument build

* Fix some test type errors

* Fix redux-devtools build

* Fix rtk-query-monitor build

* Fix redux-devtools-app build

* Fix redux-devtools-extension build

* Fix redux-devtools-remote build

* Fix extension build

* slider-monitor-example

* test-tab-demo

* inspector-monitor-demo

* rtk-query-monitor-demo

* counter-example

* todomvc-example

* Fix lint

* Fix instrument test types

* Fix core tests

* Fix rtk-query-monitor tests

* Updates
2024-08-05 23:11:13 -04:00
renovate[bot]
bd463b19ec
chore(deps): update typescript-eslint monorepo to v8 (major) (#1710)
* chore(deps): update typescript-eslint monorepo to v8

* instrument

* react-base16-styling

* Disable react/prop-types

* react-json-tree

* redux-devtools-ui

* inspector-monitor

* react-dock

* log-monitor

* map2tree

* d3-state-visualizer

* test-tab

* rtk-query-monitor

* slider-monitor

* trace-tab

* chart-monitor

* app-core

* utils

* test-tab-demo

* inspector-monitor-demo

* redux-devtools-counter-demo

* redux-devtools-todomvc-demo

* remote

* cli

* react-dock-demo

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-08-05 00:38:28 +00:00
renovate[bot]
0462470dca
fix(deps): update dependency msw to ^2.3.5 (#1709)
* fix(deps): update dependency msw to ^2.3.5

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-08-04 21:51:57 +00:00
Nathan Bierema
9a78f414ae Update extension version number 2024-08-04 15:33:29 -04:00
github-actions[bot]
652bcfa7f8
Version Packages (#1708)
* Version Packages

* Trigger build

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-08-04 15:31:41 -04:00
Nathan Bierema
2163bc3f09
Split large messages sent from background page to devpanel (#1706)
* Split messages sent to devpanel

* Types

* Create ninety-files-obey.md
2024-08-04 15:05:37 -04:00
renovate[bot]
6cf528b4a0
chore(deps): lock file maintenance (#1700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-20 13:51:46 +00:00
renovate[bot]
ae3f4e59f5
fix(deps): update dependency msw to ^2.3.2 (#1699)
* fix(deps): update dependency msw to ^2.3.2

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-07-20 13:33:49 +00:00
renovate[bot]
fce9074175
chore(deps): update all non-major dependencies (#1698)
* chore(deps): update all non-major dependencies

* Update snapshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-07-20 09:17:14 -04:00
Nathan Bierema
3184647fa9
Remove deprecated packages (#1697) 2024-07-16 13:56:20 -04:00
renovate[bot]
4c73661e78
chore(deps): lock file maintenance (#1696)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-16 16:27:25 +00:00
renovate[bot]
23f1c47224
chore(deps): update dependency rimraf to v6 (#1695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-07-16 15:35:07 +00:00
renovate[bot]
2c1a74cdff
chore(deps): update dependency @types/uuid to v10 (#1691)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-07-16 13:53:15 +00:00
renovate[bot]
baed7ccd07
fix(deps): update all non-major dependencies (#1694)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-16 13:40:53 +00:00
renovate[bot]
443b993f6a
chore(deps): update all non-major dependencies (#1689)
* chore(deps): update all non-major dependencies

* Format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-07-16 13:24:47 +00:00
renovate[bot]
65126657cb
chore(deps): update dependency typescript to ~5.5.2 (#1690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 16:56:57 -04:00
Nathan Bierema
42e11518f3 Add content script notes 2024-06-14 17:51:14 -04:00
Nathan Bierema
5e81525818 Add initial architecture notes 2024-06-12 23:30:55 -04:00
renovate[bot]
1735536bd6
chore(deps): lock file maintenance (#1686)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-12 16:26:41 +00:00
renovate[bot]
51e46328a5
chore(deps): update all non-major dependencies (#1669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-12 15:57:19 +00:00
renovate[bot]
b55cdf0aea
chore(deps): update dependency typescript to ~5.4.5 (#1685)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-12 15:43:31 +00:00
renovate[bot]
cacf7cf182
fix(deps): update dependency electron to v31 (#1682)
* fix(deps): update dependency electron to v31

* chore(deps): update dependency chromedriver to v126

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-12 15:26:21 +00:00
Nathan Bierema
a1fe1a4018 Fix redux-devtools-app prepublish script 2024-06-12 10:05:37 -04:00
github-actions[bot]
08336c06ca
Version Packages (#1683)
* Version Packages

* Updates

* Updates

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-12 13:57:30 +00:00
Nathan Bierema
76711b7ee1
Fix pnpm-lock.yaml (#1684) 2024-06-12 13:42:09 +00:00
Matt Oakes
96ac1f291a
Move the logic from @redux-devtools/app into @redux-devtools/app-core (#1655)
This change splits out the main logic from the Redux Devtools App into a new
core package but keeps the socket connection management in @redux-devtools/app.
The aim is to allow for easier reuse of the rest of the app in other envioronments
with their own transport methods, such as React Native or Electron.
2024-06-12 09:18:46 -04:00
renovate[bot]
a4382ecb9c
fix(deps): update dependency electron to v30 (#1676)
* fix(deps): update dependency electron to v30

* Test installing chromedriver

* Test

* Revert "Test"

This reverts commit 473f872a77.

* Test

* Update

* Typo? :fingers-crossed:

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-09 22:48:52 -04:00
renovate[bot]
d9cdc25cb2
chore(deps): update testing-library monorepo (major) (#1675)
* chore(deps): update testing-library monorepo

* Add deps

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-10 01:14:22 +00:00
renovate[bot]
819000df9b
fix(deps): update dependency uuid to v10 (#1677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-10 01:02:15 +00:00
renovate[bot]
35fb9b12f4
chore(deps): update dependency supertest to v7 (#1674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-10 00:49:13 +00:00
renovate[bot]
d5bbd78c52
chore(deps): update dependency style-loader to v4 (#1673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-10 00:36:47 +00:00
renovate[bot]
25aeba0bd8
chore(deps): update dependency nx to v19 (#1672)
* chore(deps): update dependency nx to v19

* chore(deps): update dependency @nrwl/nx-cloud to v19

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-10 00:26:05 +00:00
renovate[bot]
846ded1c74
chore(deps): update dependency eslint-plugin-jest to v28 (#1671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-10 00:13:51 +00:00
renovate[bot]
04d141932d
chore(deps): update dependency typescript to ~5.4.5 (#1628)
* chore(deps): update dependency typescript to ~5.4.5

* Fix

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-09 23:15:11 +00:00
renovate[bot]
1fc9f76e50
chore(deps): lock file maintenance (#1667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-09 23:01:48 +00:00
renovate[bot]
249b3a030b
chore(deps): update dependency css-loader to v7 (#1666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-09 22:49:11 +00:00
Nathan Bierema
612a23488d
Revert "chore(deps): update pnpm to v9 (#1664)" (#1668)
This reverts commit 367fce39e6.
2024-06-09 22:34:00 +00:00
renovate[bot]
367fce39e6
chore(deps): update pnpm to v9 (#1664)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 02:47:09 +00:00
renovate[bot]
57755f6f7d
chore(deps): update dependency pug to ^3.0.3 (#1663)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 02:35:26 +00:00
renovate[bot]
9c1b1b84b8
fix(deps): update dependency msw to ^2.3.1 (#1656)
* fix(deps): update dependency msw to ^2.3.1

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-07 02:21:49 +00:00
renovate[bot]
6842c895d5
chore(deps): lock file maintenance (#1662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-06 22:00:30 -04:00
renovate[bot]
911b063fba
fix(deps): update all non-major dependencies (#1637)
* fix(deps): update all non-major dependencies

* Fix

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-06-07 01:21:49 +00:00
github-actions[bot]
c8cf847681
Version Packages (#1651)
* Version Packages

* Update lock file

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-04-07 21:19:20 +00:00
Nathan Bierema
af486b01e9 Make releases minors for 0.x 2024-04-07 17:08:00 -04:00
Nathan Bierema
bbb1a40395
Convert React packages to ESM (#1650)
* react-base16-styling

* Use inline react-base16-styling themes

* Fix

* Format

* Fix

* Fixes

* Transform more

* react-json-tree

* Update lock

* Remove unnecessary

* react-dock

* Move to dep

* Lock

* Fix

* Fix

* Create tame-eagles-relax.md
2024-04-07 21:04:45 +00:00
github-actions[bot]
18cde73771
Version Packages (#1649)
* Version Packages

* Force rebuild

* Update

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-04-07 00:05:15 -04:00
Nathan Bierema
191d419773
Convert d3 packages to ESM (#1648)
* d3tooltip

* Add back type-check

* Remove dependency

* map2tree

* Use lodash-es

* Update jest invocation

* Transform lodash-es

* d3-state-visualizer

* Use module: node16

* Update

* Create chilly-fans-hunt.md
2024-04-07 03:44:14 +00:00
Nathan Bierema
629419bd1b
Upgrade to Storybook 7 (#1647)
* Remove storybook

* Install storybook

* Fix

* Format

* Update

* Disable background
2024-04-01 20:48:58 +00:00
github-actions[bot]
b56a3aa0dc
Version Packages (#1646)
* Version Packages

* Trigger build

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-04-01 20:31:36 +00:00
Nathan Bierema
f3878541c2
Revert "Add polyfill for Symbol.asyncIterator (#1642)" (#1645)
* Revert "Add polyfill for Symbol.asyncIterator (#1642)"

This reverts commit 138f4f37b6.

* Create silly-windows-flow.md
2024-04-01 20:19:53 +00:00
github-actions[bot]
075e9f6099
Version Packages (#1643)
* Version Packages

* Trigger build

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-03-28 16:43:54 +00:00
Nathan Bierema
138f4f37b6
Add polyfill for Symbol.asyncIterator (#1642)
* Add polyfill for Symbol.asyncIterator

* Create tame-dancers-fail.md

* Format
2024-03-28 16:20:08 +00:00
renovate[bot]
8f166edc73
chore(deps): update dependency @types/copy-webpack-plugin to v10 (#1639)
* chore(deps): update dependency @types/copy-webpack-plugin to v10

* Remove unnecessary (?) type packages

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-03-26 17:50:57 -04:00
renovate[bot]
9545a46c5d
chore(deps): lock file maintenance (#1638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-26 17:24:52 -04:00
renovate[bot]
cb4772fa2c
fix(deps): update all non-major dependencies (#1633)
* fix(deps): update all non-major dependencies

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-03-26 21:01:02 +00:00
Chris deWolf
ab7df4cdd6
updated documentation link that was resolving to a 404 (#1635) 2024-03-15 01:50:19 +00:00
renovate[bot]
2eddfd60a8
chore(deps): lock file maintenance (#1631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 23:03:36 -05:00
renovate[bot]
dc6b584ad0
fix(deps): update all non-major dependencies (#1627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 22:38:44 -05:00
renovate[bot]
5c6aa8aa0a
chore(deps): update typescript-eslint monorepo to v7 (#1630)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-08 03:25:24 +00:00
renovate[bot]
4c6add7aa2
chore(deps): update dependency webpack-dev-server to v5 (#1629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 22:13:07 -05:00
renovate[bot]
f282e26a59
fix(deps): update dependency msw to ^2.2.3 (#1606)
* fix(deps): update dependency msw to ^2.2.3

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-03-08 02:57:43 +00:00
renovate[bot]
d0b89ca577
chore(deps): update dependency nx to v18 (#1615)
* chore(deps): update dependency nx to v18

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-03-08 02:19:40 +00:00
renovate[bot]
d76df9985f
chore(deps): update dependency @nrwl/nx-cloud to v18 (#1611)
* chore(deps): update dependency @nrwl/nx-cloud to v18

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-03-08 02:02:15 +00:00
renovate[bot]
3b7bca2dbb
chore(deps): lock file maintenance (#1616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-23 21:31:30 -05:00
renovate[bot]
6b80162ca9
chore(deps): update all non-major dependencies (#1613)
* chore(deps): update all non-major dependencies

* Fix

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-02-23 23:18:02 +00:00
renovate[bot]
3c44f223f5
chore(deps): lock file maintenance (#1607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-08 23:18:19 +00:00
renovate[bot]
fe9a3674e0
chore(deps): update all non-major dependencies (#1605)
* chore(deps): update all non-major dependencies

* Format

* Temporarily downgrade @types/redux-logger

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-02-08 18:01:24 -05:00
renovate[bot]
eba12e74f0
chore(deps): update nrwl monorepo (major) (#1511)
* chore(deps): update nrwl monorepo

* Add .nx/cache to gitignore

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-24 03:15:48 +00:00
renovate[bot]
8257f616f5
fix(deps): update dependency msw to ^2.1.4 (#1599)
* fix(deps): update dependency msw to ^2.1.4

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-24 03:00:09 +00:00
renovate[bot]
9e4e054f8b
fix(deps): update dependency jsondiffpatch to ^0.6.0 (#1586)
* fix(deps): update dependency jsondiffpatch to ^0.6.0

* Cleanup renovate.json

* Code updates

* Update test config

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-23 21:48:11 -05:00
Nathan Bierema
31aabfa82c
Use moduleResolution bundler (#1571) 2024-01-24 02:14:03 +00:00
renovate[bot]
7b90e75e03
fix(deps): update dependency react-icons to v5 (#1604)
* fix(deps): update dependency react-icons to v5

* Update snapshot

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-24 02:03:00 +00:00
renovate[bot]
8f3b306a66
fix(deps): update dependency framer-motion to v11 (#1603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-24 01:42:21 +00:00
renovate[bot]
57af776834
chore(deps): update dependency html-loader to v5 (#1602)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-24 01:27:44 +00:00
renovate[bot]
c3497c1b17
chore(deps): update dependency copy-webpack-plugin to v12 (#1601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-23 20:16:53 -05:00
renovate[bot]
eff9410828
chore(deps): lock file maintenance (#1600)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 21:29:55 -05:00
renovate[bot]
264f076252
fix(deps): update all non-major dependencies (#1598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 21:09:49 -05:00
renovate[bot]
a0db02b31e
chore(deps): update dependency typescript to ~5.3.3 (#1581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-07 23:08:46 +00:00
renovate[bot]
eff9bee92d
fix(deps): update dependency msw to ^2.0.12 (#1597)
* fix(deps): update dependency msw to ^2.0.12

* Update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-07 17:57:05 -05:00
github-actions[bot]
baf484adbc
Version Packages (#1593)
* Version Packages

* Trigger build

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-01 21:49:58 +00:00
renovate[bot]
c9f2491d7e
chore(deps): lock file maintenance (#1595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-01 21:35:51 +00:00
renovate[bot]
a3a6eb4cb3
chore(deps): update all non-major dependencies (#1585)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-01 21:18:59 +00:00
renovate[bot]
4dd0dd2d19
fix(deps): update dependency open to v10 (#1592)
* fix(deps): update dependency open to v10

* Update package.json

* Create seven-squids-hammer.md

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-01 21:08:50 +00:00
renovate[bot]
8aa37659b3
chore(deps): update socketcluster to v19 (#1591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-01 20:54:58 +00:00
renovate[bot]
28a08cde92
chore(deps): update dependency stylelint-config-standard to v36 (#1590)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-01 20:44:26 +00:00
renovate[bot]
1f1d188601
chore(deps): update dependency stylelint to v16 (#1589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-01 20:31:39 +00:00
renovate[bot]
81e3efd070
chore(deps): update dependency @types/supertest to v6 (#1588)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2024-01-01 20:16:38 +00:00
renovate[bot]
91dd5df25b
chore(deps): update actions/upload-artifact action to v4 (#1587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-01 15:06:02 -05:00
Nathan Bierema
1b4c36c46a Fix Renovate group name 2024-01-01 11:13:53 -05:00
Nathan Bierema
32d1ee0894 Update Renovate groups 2024-01-01 11:08:45 -05:00
Nathan Bierema
e2e65dbeab Update Renovate groups 2024-01-01 11:05:04 -05:00
renovate[bot]
c42e33437e
chore(deps): lock file maintenance (#1582)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-25 04:40:37 +00:00
renovate[bot]
d4adb601da
fix(deps): update all non-major dependencies (#1555)
* fix(deps): update all non-major dependencies

* Downgrade jsondiffpatch

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-12-24 23:24:56 -05:00
Nathan Bierema
fa7af18888
Upgrade msw (#1580) 2023-12-19 10:06:33 -05:00
Nathan Bierema
00664dcd3e
Downgrade typescript (#1579)
* Downgrade typescript

For msw

* Fix version
2023-12-19 14:13:40 +00:00
Nathan Bierema
b79b2c3bbc
Fix some unbound-method ESLint errors (#1576)
* Fix some unbound-method ESLint errors

* Keep that one
2023-12-17 22:03:02 -05:00
github-actions[bot]
e9afa8fb27
Version Packages (#1577)
* Version Packages

* Update lock file

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-12-18 02:32:58 +00:00
Nathan Bierema
5cfe3e5522
Update min required React version to 16.8.4 (#1578)
* Update min required React version to 16.8.4

* Create breezy-emus-tie.md

* Update lock file
2023-12-18 02:13:35 +00:00
Nathan Bierema
decc035570
Remove support for legacy context (#1575)
* Remove support for legacy context

* Create chatty-walls-burn.md
2023-12-17 20:48:45 -05:00
github-actions[bot]
6f9ef2e941
Version Packages (#1574)
* Version Packages

* Trigger build

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-12-16 17:21:24 +00:00
Nathan Bierema
3205269f8c
[inspector-monitor] Add explicit return types (#1573)
* Cleanup

* Explicitly define return type

* Create violet-hotels-appear.md

* Strip out module augmentation

* Update violet-hotels-appear.md
2023-12-16 17:10:27 +00:00
Nathan Bierema
d165cc7bd9 Bump extension version number 2023-12-13 20:20:26 -05:00
github-actions[bot]
c03264c54d
Version Packages (#1562)
* Version Packages

* Update lock file

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-12-14 01:00:31 +00:00
Nathan Bierema
6954eb9580
[rtk-query-monitor] Replace jss with Emotion (#1568)
* Add Emotion to RTK Query monitor

* Add other Emotion setup

* Start transition

* Convert more styling to Emotion

* Convert more styling to Emotion

* Finish convert styling to Emotion

* import type

* Fix test

* Remove unused styling

* Remove more unused styling

* Remove more unused styling

* Remove jss

* Cleanup

* Create perfect-otters-help.md

* Update perfect-otters-help.md
2023-12-14 00:45:53 +00:00
renovate[bot]
178002de65
chore(deps): update dependency typescript to ~5.3.3 (#1564)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 20:54:11 -05:00
Nathan Bierema
ae1bc3aaae
Fix RTK Query demo (#1563)
* Update mockServiceWorker.js

* Separate Renovate group
2023-12-13 00:13:32 +00:00
Nathan Bierema
158ba2ce12
[inspector-monitor] Replace jss with Emotion (#1560)
* Setup Emotion

* Fix setup

* Start conversion

* actionList

* actionListHeader

* actionListRows

* actionListHeaderSelector

* actionListItem

* actionListItemTime

* actionListItemSelector

* actionListItemName

* actionListHeaderSearch

* actionListHeaderWrapper

* actionPreview

* Remaining css

* Format

* Propagate Emotion dependencies

* Fix tests

* Remove styling prop

* Remove jss

* Remove themeState

* Use color map as Emotion theme

* Rework theme resolution

* Inline CSS

* Remove usage of className

* Fix warning

* Create large-spoons-yell.md
2023-12-12 04:02:35 +00:00
Nathan Bierema
b54bc75cbb
Remove prop-types (#1557) 2023-12-10 00:50:15 -05:00
renovate[bot]
37fee5574a
chore(deps): lock file maintenance (#1556)
* chore(deps): lock file maintenance

* Downgrade csstype

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-12-09 23:08:31 -05:00
renovate[bot]
57d97026f3
chore(deps): update all non-major dependencies (#1544)
* chore(deps): update all non-major dependencies

* Downgrade csstype

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-12-10 03:44:13 +00:00
github-actions[bot]
2e4929b3b7
Version Packages (#1552)
* Version Packages

* Trigger build

* Update pnpm-lock.yaml

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-12-09 05:05:25 +00:00
Nathan Bierema
d95a5ff5ca
Fix peer dependency versioning (#1554) 2023-12-09 04:42:26 +00:00
Nathan Bierema
7f5bddbdc2
Widen peer dependencies (#1553)
* Widen peer dependencies

* Create lucky-lobsters-tickle.md

* Update pnpm-lock.yaml
2023-12-09 04:14:28 +00:00
Nathan Bierema
6fc18ed74e
Add new Redux version to peer dependencies (#1551)
* Add new Redux version to peer dependencies

* Create orange-ravens-train.md
2023-12-08 22:41:20 -05:00
github-actions[bot]
8e99d35749
Version Packages (#1550)
* Version Packages

* Trigger build

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-12-08 05:23:56 +00:00
Nathan Bierema
a3f86a42df
Add Redux 5 to peerDependency range of extension package (#1549) 2023-12-08 05:10:33 +00:00
Nathan Bierema
a7d612fbdc
Fix chromedriver issues (#1548)
* Test removing chromedriver

* Remove port

* Try removing it altogether

* Alright, try that

* Attempt to run xvfb directly

* Halfway happy?
2023-12-08 00:15:18 +00:00
renovate[bot]
8979004b53
chore(deps): lock file maintenance (#1543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 23:18:31 +00:00
renovate[bot]
3f5719ec1f
chore(deps): update all non-major dependencies (#1542)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 23:00:35 +00:00
renovate[bot]
c723e4a3c8
chore(deps): update all non-major dependencies (#1538)
* chore(deps): update all non-major dependencies

* Format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-11-13 17:41:31 -05:00
renovate[bot]
057b5e6de7
fix(deps): update dnd-kit monorepo (#1537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 02:23:02 +00:00
renovate[bot]
ba56d5b96d
fix(deps): update dependency nanoid to v5 (#1485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-11-09 02:05:45 +00:00
renovate[bot]
e8da9f0945
chore(deps): lock file maintenance (#1536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 01:41:25 +00:00
renovate[bot]
487775b206
fix(deps): update all non-major dependencies (#1523)
* fix(deps): update all non-major dependencies

* Update snapshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-11-09 01:22:50 +00:00
github-actions[bot]
2ab5bd833e
Version Packages (#1531)
* Version Packages

* Trigger build

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-11-05 14:12:55 +00:00
Nathan Bierema
262ea85ce1
Remove unnecessary exported functions from instrument (#1530)
* Remove unnecessary exported functions from instrument

This avoids importing CombinedState so that the types are compatible with Redux 5

* Create bright-pumpkins-move.md
2023-11-05 13:52:55 +00:00
github-actions[bot]
d57d015de9
Version Packages (#1529)
* Version Packages

* Update lock

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-11-05 04:05:38 +00:00
Nathan Bierema
42531c503e
Bump packages (#1528)
* Random change in instrument

* Create few-crabs-bathe.md

* Revert "Random change in instrument"

This reverts commit 72bdbce860.
2023-11-04 22:29:31 +00:00
github-actions[bot]
11be87f31a
Version Packages (#1527)
* Version Packages

* Update lock file

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-11-04 21:26:10 +00:00
Nathan Bierema
65205f9078
Replace Action<unknown> with Action<string> (#1525)
* Replace Action<unknown> with Action<string>

In anticipation of Redux 5 type changes

* Fix lint errors

* Create yellow-steaks-marry.md
2023-11-04 21:04:23 +00:00
renovate[bot]
963f1963e7
chore(deps): lock file maintenance (#1521)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-28 04:08:29 +00:00
renovate[bot]
e7e43f16b0
fix(deps): update all non-major dependencies (#1519)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-27 23:45:50 -04:00
renovate[bot]
27da2edc1a
fix(deps): update dependency knex to v3 (#1515)
* fix(deps): update dependency knex to v3

* Consolidate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-10-24 21:58:55 +00:00
renovate[bot]
46911b13dd
chore(deps): update dependency rollup to v4 (#1510)
* chore(deps): update dependency rollup to v4

* Consolidate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-10-24 21:37:13 +00:00
renovate[bot]
c781ac0624
chore(deps): update dependency @types/node to v20 (#1513)
* chore(deps): update dependency @types/node to v20

* Consolidate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-10-24 21:15:35 +00:00
renovate[bot]
b649e13f5b
chore(deps): update dependency fork-ts-checker-webpack-plugin to v9 (#1504)
* chore(deps): update dependency fork-ts-checker-webpack-plugin to v9

* Consolidate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-10-24 20:44:53 +00:00
renovate[bot]
c6464ef371
chore(deps): update actions/setup-node action to v4 (#1512)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-10-24 20:20:18 +00:00
renovate[bot]
669c87b9f4
chore(deps): lock file maintenance (#1514)
* chore(deps): lock file maintenance

* Consolidate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-10-24 19:59:14 +00:00
renovate[bot]
8a216f531e
fix(deps): update all non-major dependencies (#1503)
* fix(deps): update all non-major dependencies

* Combine

* Update to Chrome 118

* Update snapshot

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-10-24 15:18:38 -04:00
renovate[bot]
986acf4e73
chore(deps): lock file maintenance (#1484)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 09:52:17 -04:00
renovate[bot]
508506fe90
fix(deps): update dependency electron to ^26.2.2 (#1502)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-09-27 13:25:18 +00:00
dependabot[bot]
cacd101481
Bump graphql from 16.8.0 to 16.8.1 (#1500)
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.8.0 to 16.8.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](https://github.com/graphql/graphql-js/compare/v16.8.0...v16.8.1)

---
updated-dependencies:
- dependency-name: graphql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-09-27 13:06:01 +00:00
dependabot[bot]
c280ec5988
Bump electron from 26.1.0 to 26.2.1 (#1498)
Bumps [electron](https://github.com/electron/electron) from 26.1.0 to 26.2.1.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v26.1.0...v26.2.1)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-27 08:51:57 -04:00
renovate[bot]
20024cfb5b
chore(deps): update all non-major dependencies (#1478)
* chore(deps): update all non-major dependencies

* Fix tests

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-09-27 08:23:14 -04:00
Nick McCurdy
9695e499f2
Replace deprecated action (#1487)
* Use default Node version in CI

GitHub's default Node version doesn't require additional downloads or installations. Currently the LTS and default version are similar, but I think it would be best to stay consistent with the other repositories.

* Replace deprecated action

* Revert "Use default Node version in CI"

This reverts commit b6a1ffd4b5.
2023-09-22 08:57:28 -04:00
github-actions[bot]
840aa45c19
Version Packages (#1495)
* Version Packages

* Update lock

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-09-17 02:27:10 +00:00
Nathan Bierema
7e6d04380b
Transform for await...of syntax for @redux-devtools/remote (#1496)
* Transform for await...of for @redux-devtools/remote

* Create green-bulldogs-serve.md
2023-09-17 02:09:13 +00:00
Nathan Bierema
e57bcb3933
Build @redux-devtools/app UMD using esbuild (#1494)
* Build @redux-devtools/app UMDs using esbuild

* Fix variable being exported

* Remove module.hot

* Include CSS

* Cleanup

* Cleanup

* Create slow-paws-beg.md
2023-09-17 00:13:50 +00:00
github-actions[bot]
f523d06499
Version Packages (#1492)
* Version Packages

* Bump extension versions

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-09-15 01:02:38 +00:00
Nathan Bierema
bca760097b
Fix missing CSS for code editor (#1491)
* Import bundled css files

* Create smart-files-swim.md
2023-09-15 00:42:20 +00:00
github-actions[bot]
ee64102c1d
Version Packages (#1488)
* Version Packages

* Bump version numbers

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-09-13 02:31:31 +00:00
Nathan Bierema
64ed81b09a
Fix extension in Firefox and Chrome Incognito (#1486)
* Fix extension in incognito mode

* Create shy-rings-smile.md

* Update shy-rings-smile.md
2023-09-13 01:55:08 +00:00
renovate[bot]
50f84218cd
chore(deps): update actions/checkout action to v4 (#1479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 22:02:00 +00:00
renovate[bot]
801e1a4cba
chore(deps): lock file maintenance (#1464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-09-04 15:19:58 +00:00
dependabot[bot]
02e211463b
Bump @apollo/server from 4.9.2 to 4.9.3 (#1475)
Bumps [@apollo/server](https://github.com/apollographql/apollo-server/tree/HEAD/packages/server) from 4.9.2 to 4.9.3.
- [Release notes](https://github.com/apollographql/apollo-server/releases)
- [Changelog](https://github.com/apollographql/apollo-server/blob/main/packages/server/CHANGELOG.md)
- [Commits](https://github.com/apollographql/apollo-server/commits/@apollo/server@4.9.3/packages/server)

---
updated-dependencies:
- dependency-name: "@apollo/server"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 11:04:07 -04:00
renovate[bot]
2ca07f5c37
chore(deps): update dependency typescript to ~5.2.2 (#1472)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 03:36:52 +00:00
renovate[bot]
92f0e217d4
chore(deps): update all non-major dependencies (#1473)
* chore(deps): update all non-major dependencies

* Use Storybook alpha

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-09-04 03:16:14 +00:00
renovate[bot]
c50bdc02e8
chore(deps): update typescript-eslint monorepo to v6 (major) (#1436)
* chore(deps): update typescript-eslint monorepo to v6

* Fix msw

* Initial updates

* Disable new lint rules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-09-03 22:56:58 -04:00
Nathan Bierema
4e0620c131
Build extension with esbuild (#1476)
* window.bundle.js seems to work

* minify

* Use API instead of CLI

* Add remote bundle

* Perform code-splitting

* Add background and stop code-splitting

* Add other entrypoints

* Flesh out some more

* Keep going

* Copy to browser directories

* Ignore import type error

* Strip out webpack stuff

* Remove todos

* Remove pug imports

* Fix
2023-08-30 20:59:38 -04:00
renovate[bot]
546c98d406
fix(deps): update dependency electron to v26 (#1455)
* fix(deps): update dependency electron to v26

* Revert chromedriver divergence

* Fix lock file

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-08-30 02:06:16 +00:00
renovate[bot]
391ab8b565
fix(deps): update all non-major dependencies (#1466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 02:49:22 +00:00
github-actions[bot]
ffbf132174
Version Packages (#1469)
* Version Packages

* Update

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-08-28 02:24:11 +00:00
Nathan Bierema
57751ff933
Add react-dom peerDependency and bump react peerDependency (#1471)
* Add react-dom peerDependency and bump react peerDependency

* Create odd-planets-return.md
2023-08-28 01:49:10 +00:00
Nathan Bierema
b9459ec7ae
Fix copying dist to browser folders (#1470) 2023-08-28 01:27:13 +00:00
Nathan Bierema
d18525b5c7
Increase min-width for popup (#1468)
* Increase min-width for popup

* Create short-lamps-cross.md
2023-08-27 21:09:02 -04:00
github-actions[bot]
135a676949
Version Packages (#1463)
* Version Packages

* Trigger build

* Update lock file

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-08-21 01:03:08 +00:00
renovate[bot]
fe32709c4c
fix(deps): update dependency jsondiffpatch to ^0.5.0 (#1462)
* fix(deps): update dependency jsondiffpatch to ^0.5.0

* Create happy-maps-cross.md

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-08-21 00:35:32 +00:00
renovate[bot]
850680d2b8
chore(deps): lock file maintenance (#1453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 00:12:51 +00:00
renovate[bot]
59159ede40
chore(deps): update all non-major dependencies (#1450)
* chore(deps): update all non-major dependencies

* Update @babel/code-frame

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-08-20 23:49:11 +00:00
github-actions[bot]
6c44727915
Version Packages (#1390)
* Version Packages

* Updates

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-08-19 02:56:48 +00:00
Nathan Bierema
156454d6f1
Fix clicking buttons (#1458) 2023-08-19 02:34:49 +00:00
Nathan Bierema
71b77b9d4d
chromedriver 115 (#1457)
* chromedriver 115

* versions
2023-08-18 22:14:30 -04:00
Nathan Bierema
14a795737b
Replace react-dragula with dnd-kit (#1451)
* Replace react-dragula package with dnd-kit

* Refactor to function component

* Remove @types/dragula as well

* Move

* Initial implementation

* Ditch DragOverlay

* Fix function name

* Fix handling drag

* Fix scrolling issue

* Create gorgeous-meals-glow.md

* Fix app test

* Fix extension test

* Fix styling
2023-08-18 23:52:43 +00:00
renovate[bot]
176a6cc59e
chore(deps): update dependency @testing-library/jest-dom to v6 (#1452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-18 08:40:10 -04:00
Satyam Oza R
e57dd29be2
Fix #1431 - Image resources in README broken (#1433)
Image resources in README broken

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-08-07 22:41:28 +00:00
Viki
c5f247e81c
docs: use latest npm package name (#1443)
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-08-07 15:31:42 +00:00
Nathan Bierema
fbd031818d
Disable running only affected packages in CI (#1449) 2023-08-07 14:50:43 +00:00
Nathan Bierema
bb9bd907c5
Move @types/redux-devtools-themes to dependencies (#1448)
* Move @types/redux-devtools-themes to dependencies

* Update lock

* Create rude-zebras-smell.md
2023-08-07 13:40:13 +00:00
renovate[bot]
1f591944cd
chore(deps): update dependency eslint-config-prettier to v9 (#1447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 13:13:49 +00:00
renovate[bot]
319446868d
chore(deps): lock file maintenance (#1439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 12:46:35 +00:00
renovate[bot]
7009fe2ca9
fix(deps): update all non-major dependencies (#1437)
* fix(deps): update all non-major dependencies

* Fix lint

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-08-07 12:21:50 +00:00
renovate[bot]
615c8a906f
chore(deps): update dependency typescript to ~5.1.6 (#1414)
* chore(deps): update dependency typescript to ~5.1.6

* Fix

* Fix

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-07-12 18:07:28 -04:00
renovate[bot]
ded6be7683
chore(deps): lock file maintenance (#1426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-12 19:17:22 +00:00
renovate[bot]
915d5115e4
fix(deps): update all non-major dependencies (#1425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-12 18:49:09 +00:00
renovate[bot]
96475e19e2
chore(deps): update dependency stylelint-config-standard to v34 (#1432)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-12 18:29:33 +00:00
renovate[bot]
922985f9ea
chore(deps): update dependency prettier to v3 (#1434)
* chore(deps): update dependency prettier to v3

* Format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-07-12 18:03:20 +00:00
renovate[bot]
d73787b172
chore(deps): update dependency cpy-cli to v5 (#1428)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-12 13:16:34 -04:00
renovate[bot]
5f104534b2
chore(deps): lock file maintenance (#1420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-23 15:52:36 +00:00
renovate[bot]
f1842af4d3
fix(deps): update all non-major dependencies (#1419)
* fix(deps): update all non-major dependencies

* Update icon

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-06-23 14:32:19 +00:00
renovate[bot]
026694c360
chore(deps): update dependency chromedriver to v114 (#1415)
* fix(deps): update dependency electron to v25

* chore(deps): update dependency chromedriver to v114

* Combine

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-06-14 13:37:12 -04:00
renovate[bot]
81ba239ea2
fix(deps): update dependency get-port to v7 (#1417)
* fix(deps): update dependency get-port to v7

* Update package.json

* Create early-poets-enjoy.md

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-06-04 19:13:46 +00:00
renovate[bot]
0ade007a87
chore(deps): lock file maintenance (#1405)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-04 18:46:51 +00:00
renovate[bot]
7d722f35b6
chore(deps): update dependency webpack-cli to ^5.1.3 (#1418)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-04 18:24:06 +00:00
renovate[bot]
4fb9f1a6cd
fix(deps): update all non-major dependencies (#1403)
* fix(deps): update all non-major dependencies

* Downgrade source-map

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-06-04 17:59:22 +00:00
renovate[bot]
398746ba75
chore(deps): update dependency @rollup/plugin-commonjs to v25 (#1408)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 15:51:28 -04:00
renovate[bot]
58a8135b08
chore(deps): update dependency nx to v16 (#1404)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-28 09:13:40 -04:00
renovate[bot]
acee8321a0
chore(deps): lock file maintenance (#1396)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-26 20:38:48 +00:00
renovate[bot]
d6ca48a6b4
fix(deps): update all non-major dependencies (#1393)
* fix(deps): update all non-major dependencies

* Update snapshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-04-26 20:13:44 +00:00
renovate[bot]
27dad81aa7
chore(deps): update dependency @nrwl/nx-cloud to v16 (#1398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-25 13:15:46 -04:00
renovate[bot]
aec0fee986
chore(deps): update dependency stylelint-config-standard to v33 (#1395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-16 11:24:26 -04:00
renovate[bot]
bca3cb5db9
chore(deps): update dependency typescript to v5 (#1374)
* chore(deps): update dependency typescript to v5

* Fix

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-04-15 17:14:32 +00:00
renovate[bot]
51eef5ce2a
fix(deps): update dependency electron to v24 (#1385)
* chore(deps): update dependency chromedriver to v112

* fix(deps): update dependency electron to v24

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-04-15 11:33:50 -04:00
renovate[bot]
07af421555
chore(deps): update dependency rimraf to v5 (#1388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-11 22:49:34 +00:00
renovate[bot]
21bba99afc
chore(deps): lock file maintenance (#1389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-04-11 13:32:32 +00:00
renovate[bot]
0f25f33886
fix(deps): update all non-major dependencies (#1391)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-11 13:05:15 +00:00
renovate[bot]
1126a80b3a
fix(deps): update all non-major dependencies (#1379)
* fix(deps): update all non-major dependencies

* Remove old package

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-04-11 12:45:34 +00:00
kentkwee
d54adb76f8
feature(redux-devtools-inspector-monitor): add option to sort state tree alphabetically and/or disable collections (#1264)
Co-authored-by: Kent Kwee <kent.kwee@tngtech.com>
2023-04-11 08:21:40 -04:00
Nathan Bierema
c52cfbe469
Upgrade to Storybook 7 (#1386)
* Migrate

* Config updates

* Remove

* No require-from-string

* Update lock file

* Fix types

* Doesn't work

* Update to CSF3
2023-04-06 21:39:14 -04:00
renovate[bot]
59be92a8af
chore(deps): update dependency stylelint-config-standard to v32 (#1381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-02 18:51:20 -04:00
renovate[bot]
409046eac2
chore(deps): update pnpm to v8 (#1380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-29 15:12:26 -04:00
renovate[bot]
f86902dfb0
chore(deps): lock file maintenance (#1378)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-26 22:29:03 -04:00
renovate[bot]
22f234da8d
fix(deps): update dependency open to v9 (#1376) 2023-03-27 01:57:28 +00:00
renovate[bot]
6003063de9
chore(deps): lock file maintenance (#1375) 2023-03-27 01:30:45 +00:00
renovate[bot]
0760d0d0ed
fix(deps): update all non-major dependencies (#1372)
* fix(deps): update all non-major dependencies

* Fix types

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-03-27 01:04:12 +00:00
renovate[bot]
b72ef8686d
chore(deps): update dependency stylelint-config-standard to v31 (#1373)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-18 16:48:04 -04:00
renovate[bot]
8fd2b51ca6
chore(deps): lock file maintenance (#1364)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-03-15 12:19:49 +00:00
renovate[bot]
58825ee363
chore(deps): update pnpm to v7.29.3 (#1371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-15 08:00:54 -04:00
renovate[bot]
3abaa33177
fix(deps): update all non-major dependencies (#1362)
* fix(deps): update all non-major dependencies

* Update snapshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-03-15 11:35:42 +00:00
github-actions[bot]
0bf0c4e30f
Version Packages (#1366)
* Version Packages

* Trigger build

* Bump

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-03-06 07:27:40 -05:00
Nathan Bierema
450cde6e1d
Fix responsive layout (#1365)
* Fix responsive layout

* Create twenty-houses-bow.md
2023-03-06 03:19:15 +00:00
renovate[bot]
f15145ed13
chore(deps): update dependency fork-ts-checker-webpack-plugin to v8 (#1363)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-05 18:56:03 -05:00
renovate[bot]
8c97757bbe
fix(deps): update dependency framer-motion to v10 (#1360)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-05 09:31:34 -05:00
renovate[bot]
0511ea4a80
chore(deps): lock file maintenance (#1361)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-02 13:21:24 +00:00
renovate[bot]
65594c5cc9
fix(deps): update all non-major dependencies (#1354)
* fix(deps): update all non-major dependencies

* Update snapshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-03-02 12:41:28 +00:00
renovate[bot]
a9469d8558
fix(deps): update dependency electron to v23 (#1348)
* fix(deps): update dependency electron to v23

* chore(deps): update dependency chromedriver to v110

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-20 12:37:14 +00:00
renovate[bot]
af23114ed8
chore(deps): update dependency @testing-library/react to v14 (#1357)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-17 01:40:30 +00:00
renovate[bot]
5398f6b171
chore(deps): update dependency @testing-library/dom to v9 (#1356)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-16 20:17:42 -05:00
renovate[bot]
2ed146a519
chore(deps): update dependency @types/socketcluster-server to v17 (#1352)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-02-16 17:49:02 +00:00
renovate[bot]
399c25e215
fix(deps): update dependency framer-motion to v9 (#1344)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-16 17:05:35 +00:00
renovate[bot]
5ec2361e7d
chore(deps): lock file maintenance (#1325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-16 16:42:47 +00:00
renovate[bot]
762a0c5a87
fix(deps): update all non-major dependencies (#1326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-15 08:44:51 -05:00
renovate[bot]
bef71f4a0e
chore(deps): update dependency stylelint-config-standard to v30 (#1351)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-09 19:30:26 +00:00
renovate[bot]
19297685bb
chore(deps): update dependency stylelint to v15 (#1350)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-09 14:05:09 -05:00
renovate[bot]
be6f3e0e48
fix(deps): update dependency msw to v1 (#1338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-04 09:29:30 -05:00
github-actions[bot]
9a0af4257f
Version Packages (#1337)
* Version Packages

* Trigger build

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-01-25 00:37:35 +00:00
Nathan Bierema
421ea47603
Release changes to @redux-devtools/remote (#1336)
* Make change to trigger changeset

* Create plenty-comics-complain.md

* Update README.md
2023-01-24 19:17:47 -05:00
renovate[bot]
bb5d670143
chore(deps): update dependency rimraf to v4 (#1329)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-17 08:08:12 -05:00
github-actions[bot]
ffb6983700
Version Packages (#1332)
* Version Packages

* Trigger build

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-01-16 13:19:03 +00:00
Nathan Bierema
a07167406a
Fix types for other exports from extension package (#1331)
* Fix types for other imports from extension package

Missed in https://github.com/reduxjs/redux-devtools/pull/1323

* Create pink-bags-grab.md
2023-01-16 13:15:34 +00:00
github-actions[bot]
9536998256
Version Packages (#1324)
* Version Packages

* Trigger build

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-01-09 01:02:03 +00:00
Nathan Bierema
07456db41e
Propagate store enhancer generic type when using composeWithDevTools (#1323)
* Propagate store enhancer generic type when using composeWithDevTools

* Create silent-rats-tickle.md

* Update silent-rats-tickle.md
2023-01-08 19:56:45 -05:00
github-actions[bot]
c72c021e2d
Version Packages (#1318)
* Version Packages

* Trigger build

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-01-08 19:33:35 +00:00
smacpherson64
a7729dae87
Adjusts @redux-devtools/cli --open flag to respect protocol and host (#1217)
* Adjusts the location open uses

Currently when using open, the cli will ignore the host and protocol and always open `http://localhost`.

This pr adjusts the open script to use the options protocol and host and default back to localhost if not provided.

* adds changeset

* fixes grammar

* adjusts electron path to respect protocol and host as well

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-01-08 19:25:09 +00:00
Nathan Bierema
69833d35b2
Update ready promise (#1320) 2023-01-08 19:12:15 +00:00
Nathan Bierema
c9293470ec
Fix launching electron app using CLI (#1319) 2023-01-08 18:59:58 +00:00
renovate[bot]
248aa98c0b
chore(deps): lock file maintenance (#1301)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-07 21:20:29 +00:00
renovate[bot]
8254de5437
chore(deps): update all non-major dependencies (#1299)
* chore(deps): update all non-major dependencies

* Format

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-01-07 20:33:03 +00:00
Nathan Bierema
7e1299886e
Convert @redux-devtools/cli to ESM (#1316)
* stash

* Updates

* Fix lint

* Create lovely-boats-happen.md

* Update package.json

* Update lovely-boats-happen.md
2023-01-07 19:25:01 +00:00
Nathan Bierema
78eed2dd20
Replace getport with get-port (#1314) 2023-01-06 01:12:28 +00:00
Nathan Bierema
ce26486f83
Upgrade Apollo server (#1313)
* Upgrade Apollo server

* Fix lint
2023-01-05 18:18:32 +00:00
github-actions[bot]
fa25234d36
Version Packages (#1309)
* Version Packages

* Update lock file

* Major changes

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-01-05 14:18:48 +00:00
Nathan Bierema
5219bf8c68 Make react-json-tree minor 2023-01-05 09:00:16 -05:00
Nathan Bierema
1f5e5c519b Update changesets 2023-01-05 08:50:25 -05:00
Nathan Bierema
f11383d294 Export CommonExternalProps 2023-01-05 08:47:54 -05:00
Nathan Bierema
81926f3212
Remove UNSAFE methods from react-json-tree (#1288)
* Remove UNSAFE method from JSONTree

* Bump peer dep

* Fix types

* Remove proptypes

* Remove unused

* shouldExpandNode => shouldExpandNodeInitially

* Cleanup

* Update usages

* Tighten types

* Create four-parrots-poke.md

* Format

* Fix inspector-monitor types

* Fix log-monitor types

* Fix rtk-query-monitor types

* Fix type
2023-01-04 23:17:44 -05:00
renovate[bot]
5f33eeb8bf
fix(deps): update dependency nanoid to v4 (#1188)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-01-02 20:27:16 -05:00
renovate[bot]
0833fa1622
fix(deps): update dependency dateformat to v5 (#884)
* fix(deps): update dependency dateformat to v5

* Fix transformIgnorePattern

* Update

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-01-02 19:58:10 -05:00
renovate[bot]
935460457b
chore(deps): update dependency d3 to v7 (#768)
* chore(deps): update dependency d3 to v7

* Update changeset

* Fix app tests

* Fix extension test

* Format

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-01-02 17:16:20 -05:00
Nathan Bierema
aac607c490
Upgrade D3 to v6 (#1310)
* Update packages

* Updates

* Update changeset
2023-01-02 14:47:07 -05:00
Nathan Bierema
9994ea62e8
Upgrade D3 to v5 (#1308) 2023-01-02 14:35:26 -05:00
Nathan Bierema
b323f77d31
Upgrade D3 to v4 (#1307)
* Update packages

* Fix after update

* Update some types

* Remove attr

* Finish d3tooltip

* Update style option

* Updates

* Zoom

* Update

* Update

* Update

* Fix

* Update

* Update

* Update

* Update

* Update

* Fixes

* Update id type

* Fix enter + update selections

* Use this

* Fix stringifying

* Remove InputOptions

* Use data.value

* Updates

* Remove UMD builds

* Fix exit

* No need to re-assign

* Simplify d3tooltip API

* Update redux-devtools-chart-monitor

* Update redux-devtools-app

* Update

* Update

* Remove @types/prop-types

* Update prop types

* Update d3tooltip docs

* Update d3-state-visualizer docs

* Update chart-monitor docs

* Create weak-kings-brake.md

* Create spicy-olives-compete.md

* Create friendly-coats-trade.md

* Create slimy-elephants-flash.md

* Fix empty arrays
2023-01-02 14:19:13 -05:00
github-actions[bot]
40b024a308
Version Packages (#1303)
* Version Packages

* Bump extension version

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-12-26 17:52:42 +00:00
Nathan Bierema
1aa6c4f7a0
Fix remounting root for devpanel (#1302)
* Fix remounting root for devpanel

* Create seven-turkeys-battle.md
2022-12-26 12:37:55 -05:00
renovate[bot]
76c6b2d19a
fix(deps): update dependency framer-motion to v8 (#1298)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-21 21:47:57 +00:00
renovate[bot]
a132e78808
chore(deps): lock file maintenance (#1283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-21 21:43:11 +00:00
renovate[bot]
f6e4a3cb68
chore(deps): update dependency @rollup/plugin-commonjs to v24 (#1297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-21 21:33:43 +00:00
renovate[bot]
1ef86dc751
chore(deps): update all non-major dependencies (#1282)
* chore(deps): update all non-major dependencies

* Update snapshots

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-12-21 16:13:25 -05:00
github-actions[bot]
4c1096a369
Version Packages (#1293)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-12-11 16:02:16 +00:00
Nathan Bierema
20ebf725c1
Remove source map from page wrap bundle (#1292)
* Remove source maps from page wrap bundle

* Create thirty-bananas-agree.md

* Update thirty-bananas-agree.md
2022-12-11 15:46:55 +00:00
renovate[bot]
7d814f6aa6
fix(deps): update dependency electron to v22 (#1285)
* fix(deps): update dependency electron to v22

* chore(deps): update dependency chromedriver to v108

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-12-11 15:32:41 +00:00
Nathan Bierema
55078635ce Bump extension version 2022-12-04 19:09:21 -05:00
Nathan Bierema
92f13ed730
Disable source maps for prod extension build (#1289) 2022-12-05 00:04:06 +00:00
Nathan Bierema
6436116048
Fix duplicate msw (#1287) 2022-12-04 22:49:21 +00:00
renovate[bot]
590dbc3974
chore(deps): update dependency @types/uuid to v9 (#1284)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 15:56:23 -05:00
renovate[bot]
fe140516b7
chore(deps): lock file maintenance (#1280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-27 16:02:05 +00:00
renovate[bot]
c5d8b61252
chore(deps): update all non-major dependencies (#1276)
* chore(deps): update all non-major dependencies

* Format

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-11-27 15:44:17 +00:00
renovate[bot]
8c86b965bf
chore(deps): update dependency webpack-cli to v5 (#1278)
* chore(deps): update dependency webpack-cli to v5

* Fix msw

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-11-17 13:11:29 +00:00
renovate[bot]
3920b78f1d
chore(deps): update dependency typescript to ~4.9.3 (#1277)
* chore(deps): update dependency typescript to ~4.9.3

* Fix

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-11-15 22:38:38 +00:00
renovate[bot]
623b85dc1d
chore(deps): lock file maintenance (#1267)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-15 10:11:28 -05:00
renovate[bot]
eed9449862
chore(deps): update dependency selenium-webdriver to ^4.6.1 (#1275)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-15 14:38:31 +00:00
renovate[bot]
fd6b0b3542
chore(deps): update all non-major dependencies (#1260)
* chore(deps): update all non-major dependencies

* Update snapshots

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-11-15 14:22:58 +00:00
Nathan Bierema
c2dae52c95
Build updates (#1272)
The CI seems to faster with parallel=1. Also avoid unnecessarily building the extension again while testing.
2022-11-07 14:42:25 +00:00
Nathan Bierema
cac62d6e8d
Fix extension archives (#1271) 2022-11-07 13:59:32 +00:00
Nathan Bierema
cd6b0c414f
Update extension archiving (#1268) 2022-11-07 01:08:44 +00:00
Nathan Bierema
adff9dd9f9
Refactor extension builds (#1265)
* Update for Edge build

* Refactor builds

* Update permissions

* Update tests
2022-11-07 00:26:12 +00:00
Nathan Bierema
27f13c02e6
Update permissions (#1266) 2022-11-06 20:43:55 +00:00
eghernqvist
cc5d7b7ffd
Update Troubleshooting.md (#1237)
* Update Troubleshooting.md

Added documentation for another possible cause of "### It shows only the `@@INIT` action or moving back and forth doesn't update the state".

* Added missing link label

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-10-29 20:04:43 +00:00
Avinash Thakur
61d0aca1fc
Add "clean:all" script (#1200)
Add "clean:all" script to root workspace

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-10-29 19:52:40 +00:00
Perttu Haliseva
48824ad20f
Fix link to paragraph 1.3 (#1235) 2022-10-29 19:33:48 +00:00
renovate[bot]
2de22c9807
fix(deps): update dependency socketcluster-client to v17 (#1219)
* fix(deps): update dependency socketcluster-client to v17

* fix(deps): update dependency socketcluster-server to v17

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-10-29 13:58:02 +00:00
renovate[bot]
0266df5776
chore(deps): update jest monorepo to v29 (major) (#1149)
* chore(deps): update jest monorepo to v29

* Add jest-environment-jsdom

* Replace globals with transform

* Fix nanoid in ui and rtk-query-monitor

* Update serialize snapshots

* Fix nanoid in test-tab

* Fix nanoid and uuid in app

* Fix nanoid and uuid in extension

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-10-28 17:15:02 -04:00
renovate[bot]
9e01600dde
chore(deps): update dependency babel-loader to v9 (#1262)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-28 15:55:16 +00:00
renovate[bot]
50f1a870ff
chore(deps): update dependency @types/node to v18 (#1261)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-28 11:27:59 -04:00
renovate[bot]
37b51a1bb5
chore(deps): update dependency rollup to v3 (#1251)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-28 14:42:59 +00:00
Nathan Bierema
5cf6886783
Switch to @rollup/plugin-terser (#1258) 2022-10-28 14:03:57 +00:00
Nathan Bierema
9f71b1e31b
Fix Storybook for Node 18 (#1259) 2022-10-28 13:47:58 +00:00
renovate[bot]
f3ead32eba
chore(deps): update dependency stylelint-config-standard to v29 (#1255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-20 14:29:34 +00:00
renovate[bot]
9429b1cbc2
chore(deps): update dependency @nrwl/nx-cloud to v15 (#1256)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-20 14:03:03 +00:00
renovate[bot]
fac75b3581
chore(deps): lock file maintenance (#1252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-18 13:44:30 +00:00
renovate[bot]
32b87260cb
chore(deps): update all non-major dependencies (#1249)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-18 13:26:57 +00:00
renovate[bot]
d2de8078b2
chore(deps): update dependency nx to v15 (#1254)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-18 08:59:57 -04:00
renovate[bot]
2804e36464
chore(deps): update dependency typescript to ~4.8.4 (#1221)
* chore(deps): update dependency typescript to ~4.8.4

* Fix

* Fix

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-10-14 14:20:40 +00:00
renovate[bot]
00b07715d1
chore(deps): update dependency @rollup/plugin-node-resolve to v15 (#1250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-13 15:40:37 +00:00
Nathan Bierema
6cc517d97e
Refactor extension directory structure (#1248)
* Move background to top-level

* Move devpanel to top-level

* Move devtools to top-level

* Move options to top-level

* Move window to top-level

* Move chromeApiMock to top-level

* Move manifests to top-level

* Move contentScript to top-level

* Move pageScript to top-level

* Update tests

* Update Webpack config

* Fix path
2022-10-10 13:05:28 -04:00
renovate[bot]
35fb3343f5
chore(deps): update dependency @rollup/plugin-commonjs to v23 (#1241)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-10 03:35:13 +00:00
renovate[bot]
8384f1766a
chore(deps): update dependency @rollup/plugin-babel to v6 (#1240)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-10 03:13:49 +00:00
renovate[bot]
46bd102068
chore(deps): update dependency stylelint-config-standard to v28 (#1216)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-10 02:55:48 +00:00
renovate[bot]
aa7aa94592
chore(deps): update dependency @rollup/plugin-node-resolve to v14 (#1226)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-10 02:41:05 +00:00
renovate[bot]
bdae246a9d
fix(deps): update dependency uuid to v9 (#1228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-10-10 02:25:53 +00:00
renovate[bot]
79c0035c72
chore(deps): update nrwl/nx-set-shas action to v3 (#1227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-10-10 02:17:27 +00:00
renovate[bot]
64aa035538
chore(deps): update dependency eslint-plugin-jest to v27 (#1223)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-10-10 01:53:48 +00:00
Nathan Bierema
3c4c8782ee
Remove webpack progress from builds (#1239)
In order to make CI readable
2022-10-10 01:18:09 +00:00
renovate[bot]
ef973608b9
fix(deps): update dependency @chakra-ui/react to ^2.3.5 (#1212)
* fix(deps): update dependency @chakra-ui/react to ^2.3.5

* Update

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-10-10 00:56:01 +00:00
renovate[bot]
55f5bac479
chore(deps): lock file maintenance (#1245)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-10 00:38:39 +00:00
renovate[bot]
94928262b1
chore(deps): update all non-major dependencies (#1213)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-09 23:36:16 +00:00
Nathan Bierema
4ff825021d
Re-export types referenced by other packages (#1243)
* Re-export StylingFunction type

* Re-export Base16Theme type from base16
2022-10-09 19:28:53 +00:00
Nathan Bierema
84f662259d
Fix msw (#1246) 2022-10-09 19:10:52 +00:00
renovate[bot]
ea55ba2c11
chore(deps): update dependency chromedriver to v106 (#1242)
* chore(deps): update dependency chromedriver to v106

* Update electron

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-10-09 18:49:01 +00:00
Nathan Bierema
ccfd89ee9e
Update link for base16 (#1231) 2022-09-21 14:13:34 +00:00
renovate[bot]
418a909144
fix(deps): update dependency framer-motion to v7 (#1211)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-12 23:19:24 -04:00
renovate[bot]
93eaca078f
chore(deps): update dependency html-loader to v4 (#1208)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-12 19:19:58 -04:00
renovate[bot]
29bac4d535
chore(deps): update all non-major dependencies (#1195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-11 23:41:53 -04:00
Nathan Bierema
3b78a19b9f Split chakra-ui into separate group 2022-08-11 23:14:41 -04:00
github-actions[bot]
4644c1ce01
Version Packages (#1196)
* Version Packages

* Trigger build

* Update lock file

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-08-11 23:34:08 +00:00
renovate[bot]
8521d3fd27
chore(deps): update dependency chromedriver to v104 (#1206)
* chore(deps): update dependency chromedriver to v104

* fix(deps): update dependency electron to v20

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-11 18:58:19 -04:00
Daniel Rosenwasser
41ea59b42e
Provide explicit constraints for TypeScript 4.8 (#1201)
* Add `extends object` constraint to `T` in `assign` helper.

* Add `JSX.IntrinsictAttributes` constraint to `P` in `Tabs`.

* Format

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-07-20 00:25:45 +00:00
Fabrizio Vitale
24f60a7aa7
Feat #1126 Add Data Tab to rtk-query-monitor (#1129)
* fix: broken rtk-query-monitor demo not working #1126

Description:

downgrades framer-motion in order to remove the runtime error "_framerMotion.motion.custom is not a function"

See: https://stackoverflow.com/questions/66703410/next-js-framermotion-motion-custom-is-not-a-function

* feat(rtk-query): add Data tab #1126

* fix: bump min popup width to 700px #1126

Description:

improve UI of rtk-query right side tabs

* fix: bump min popup window width again to 760px #1126

* chore: add changeset

* feat(rtk-query): improve a11y of rtk-query-monitor tab panel #1126

* chore(rtk-query): add few integration tests to rtk-query-monitor #1126

* Fix merge

* Deduplicate msw

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-07-05 13:31:38 +00:00
Louis DeScioli
6cf1865f55
Fixes type for serialize option (#1112)
* Fixes type for serialize option

* Create gold-chairs-rescue.md

* Update gold-chairs-rescue.md

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-07-05 12:53:44 +00:00
renovate[bot]
db1fcd12c0
chore(deps): update all non-major dependencies (#1192)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-06-27 07:14:31 -04:00
renovate[bot]
4e061f4600
chore(deps): lock file maintenance (#1191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-06-19 21:39:55 -04:00
renovate[bot]
c9589c0307
chore(deps): update all non-major dependencies (#1186)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-06-19 21:12:23 -04:00
renovate[bot]
6c9ae2713f
chore(deps): update socketcluster to v16 (major) (#1167)
* chore(deps): update socketcluster to v16

* Use the right packages

* stash

* stash

* stash

* Fixes

* Fixes

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-06-13 11:35:11 +00:00
renovate[bot]
1ee787e353
chore(deps): update dependency chromedriver to v102 (#1185)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-06-07 23:46:40 +00:00
renovate[bot]
e9da5fc411
fix(deps): update react (major) (#1165)
* fix(deps): update react

* Fix

* Use createRoot

* Update tests

* Format

* Fix test

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-06-06 16:22:05 +00:00
renovate[bot]
e60c2d37dd
chore(deps): update dependency typescript to ~4.7.3 (#1174)
* chore(deps): update dependency typescript to ~4.7.3

* Fix

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-06-06 13:52:37 +00:00
renovate[bot]
e21d40d5b8
chore(deps): lock file maintenance (#1178)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-06-06 12:58:33 +00:00
renovate[bot]
d28e05f156
chore(deps): update all non-major dependencies (#1177)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-06-06 08:34:50 -04:00
github-actions[bot]
ac7c6ab355
Version Packages (#1183)
* Version Packages

* Update lock file

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-05-30 18:49:52 +00:00
Nathan Bierema
a55ba3026a
Fix peer dependencies on @redux-devtools/core (#1182)
* Fix peer dependencies on @redux-devtools/core

* Create neat-boxes-compare.md
2022-05-30 18:20:40 +00:00
github-actions[bot]
3f1e5e0ed3
Version Packages (#1181)
* Version Packages

* Trigger build

* Update lock file

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-05-30 17:22:06 +00:00
Nathan Bierema
8a7eae465e
Add React 18 to peerDependencies range (#1180)
* Add React 18 to peerDependencies range

* Create large-rocks-design.md
2022-05-30 15:32:32 +00:00
renovate[bot]
cffe091672
chore(deps): lock file maintenance (#1173)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-29 21:45:42 -04:00
renovate[bot]
52aa598322
chore(deps): update all non-major dependencies (#1172)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-29 20:52:15 -04:00
renovate[bot]
f194daa45d
fix(deps): update dependency electron to v19 (#1175)
* chore(deps): update dependency chromedriver to v101

* fix(deps): update dependency electron to v19

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-05-25 17:11:00 -04:00
renovate[bot]
b7989f2956
chore(deps): update all non-major dependencies (#1171)
* chore(deps): update all non-major dependencies

* Add require-from-string

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-05-20 18:40:20 +00:00
renovate[bot]
d8ff11fc91
chore(deps): update all non-major dependencies (#1166)
* chore(deps): update all non-major dependencies

* Dedupe csstype

* Revert "Fix build after upgrade to pnpm 7 (#1162)"

This reverts commit 2e2f2d42c1.

* Even more dedupe

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-05-17 23:15:31 +00:00
renovate[bot]
fb1339c86f
chore(deps): update dependency copy-webpack-plugin to v11 (#1170)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-17 17:47:34 +00:00
Nathan Bierema
0f8cf79aa7
Keep Node upgrades disabled (#1168) 2022-05-16 16:09:07 +00:00
renovate[bot]
8d4f514187
chore(deps): update dependency eslint-plugin-react to ~7.29.4 (#1119)
* chore(deps): update dependency eslint-plugin-react to ~7.29.4

* Add children prop

* Updates

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-05-16 15:32:31 +00:00
Nathan Bierema
5a8eefe3a5
Group react upgrades (#1163) 2022-05-16 01:31:13 +00:00
Nathan Bierema
2e2f2d42c1
Fix build after upgrade to pnpm 7 (#1162) 2022-05-16 01:22:45 +00:00
renovate[bot]
d64e3b9472
chore(deps): update pnpm to v7 (#1153)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-15 20:33:54 -04:00
renovate[bot]
dd3141b4db
chore(deps): update dependency copy-webpack-plugin to v10 (#963)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-15 19:20:02 -04:00
renovate[bot]
8ecfb5b35e
chore(deps): update dependency react-redux to v8 (#1137)
* chore(deps): update dependency react-redux to v8

* Remove @types/react-redux

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-05-15 22:21:37 +00:00
renovate[bot]
6d27879515
fix(deps): update dependency react-router-dom to v6 (#940)
* fix(deps): update dependency react-router-dom to v6

* inspector-monitor demo

* test-tab demo

* rtk-query-monitor

* Fix

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-05-15 21:47:09 +00:00
Nathan Bierema
a90481a672
Add missing peer dependencies (#1160) 2022-05-15 20:37:41 +00:00
Nathan Bierema
ae0c295f4f
Remove demo dependency on connected-react-router (#1159)
* Remove connected-react-router from inspector demo

* test-tab
2022-05-15 16:16:18 -04:00
renovate[bot]
fe6419412b
chore(deps): lock file maintenance (#1155)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-09 07:09:08 -04:00
renovate[bot]
8300ef0d7b
fix(deps): update all non-major dependencies (#1154)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-09 02:27:25 +00:00
renovate[bot]
12950c539d
chore(deps): update dependency typescript to ~4.6.4 (#1104)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-08 15:25:28 -04:00
Nathan Bierema
8211ada0d8
Switch to Nx (#1152)
* Nx

* Updates

* Format

* fetch-depth

* Update

* Fix
2022-05-08 14:51:47 -04:00
Nathan Bierema
3b368269e6
Switch to pnpm (#1151)
* Use pnpm

* Update package.json's

* Add pnpm-lock.yaml to prettierignore

* Define packages for lerna

* Fix build

* Fix build

* Fix build

* Fix build

* Fix build

* Fix build

* Update

* Fix build

* Fix build

* Fix build

* Try specific version

* Try different specific version

* Test

* Skip for now
2022-05-08 13:49:09 +00:00
renovate[bot]
dce4dee498
chore(deps): lock file maintenance (#1150)
* chore(deps): lock file maintenance

* Combine @types/react

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-05-04 13:06:12 +00:00
renovate[bot]
f282e381a1
chore(deps): update all non-major dependencies (#1143)
* chore(deps): update all non-major dependencies

* Fix lint

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-05-04 11:43:48 +00:00
Sukka
24a37cb44b
chore: replace git.io form debug message (#1145) 2022-04-28 15:07:09 +00:00
renovate[bot]
67ff49b33f
chore(deps): update dependency @rollup/plugin-commonjs to v22 (#1144)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-04-25 03:57:56 +00:00
renovate[bot]
129ce7be5b
fix(deps): update dependency knex to v2 (#1141)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-04-23 05:09:28 +00:00
github-actions[bot]
c9fe990a4d
Version Packages (#1140)
* Version Packages

* Update version numbers

* Update CHANGELOGs

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-04-23 04:42:01 +00:00
Nathan Bierema
4891bf6ce2
Add react-redux v8 to peerDependencies range (#1139)
* Add react-redux v8 to peerDependencies range

* Create nasty-cheetahs-appear.md
2022-04-23 03:51:56 +00:00
renovate[bot]
07ac78f26d
chore(deps): lock file maintenance (#1134)
* chore(deps): lock file maintenance

* yarn.lock

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-04-11 13:16:43 -04:00
renovate[bot]
7f873a94a6
chore(deps): update all non-major dependencies (#1131)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-04-11 16:15:24 +00:00
renovate[bot]
5c4721acf0
fix(deps): update dependency color to v4 (#896)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-04-05 09:11:54 -04:00
github-actions[bot]
1f996a30a4
Version Packages (#1096)
* Version Packages

* Updates

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-04-04 16:47:07 +00:00
renovate[bot]
829dd7e9c2
fix(deps): update dependency electron to v18 (#1118)
* fix(deps): update dependency electron to v18

* chore(deps): update dependency chromedriver to v100

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-04-04 16:00:01 +00:00
Nathan Bierema
fd856ee1c7 Fix changeset 2022-04-04 10:48:06 -04:00
renovate[bot]
2e5eb50895
chore(deps): lock file maintenance (#1123)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-04-04 04:50:32 +00:00
renovate[bot]
60eed10573
chore(deps): update all non-major dependencies (#1109)
* chore(deps): update all non-major dependencies

* Consolidate msw

* Fix eslintignore

* Update

* Update

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-04-04 03:59:41 +00:00
Nathan Bierema
ab3c0e29dc
Avoid persisting the selected action between sessions (#1122)
* Avoid persisting the selected action between sessions

* Create giant-oranges-report.md
2022-04-03 22:05:14 +00:00
Nathan Bierema
14e4178d59
Separate eslint-plugin-react into separate Renovate group (#1110) 2022-03-14 01:41:21 +00:00
renovate[bot]
63272596bd
chore(deps): update actions/checkout action to v3 (#1105)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-03 22:57:40 +00:00
renovate[bot]
a4c10b25cb
chore(deps): lock file maintenance (#1103)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-28 05:57:37 +00:00
renovate[bot]
0bf7bbd064
chore(deps): update all non-major dependencies (#1101)
* chore(deps): update all non-major dependencies

* yarn install

* Consolidate

* More consolidation

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-02-28 05:12:36 +00:00
renovate[bot]
9f7fbb0ba0
chore(deps): update actions/setup-node action to v3 (#1098)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-26 14:57:20 +00:00
NaincyKumariKnoldus
4c9a890904
Fixed react-json-tree - Broken import statement in d.ts #1087 (#1088)
* fixed broken import statement

* made two import statements

* made requested changes

* Create lemon-files-trade.md

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-02-23 15:57:48 +00:00
renovate[bot]
f43aba4908
fix(deps): update dependency @rjsf/core to v4 (#1095)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-22 19:06:14 +00:00
KPNK
3ccf1a54d2
Update branch name on package file (#1094)
* Update branch name on package.json file

* Add LICENSE file to repo
2022-02-21 15:42:17 +00:00
Nathan Bierema
b59718d5ec Format README 2022-02-15 10:48:37 -05:00
Nathan Bierema
4f8bb628a3 Add backers and sponsors to README 2022-02-13 17:01:51 -05:00
Nathan Bierema
1388a2248e
Update donation link
Now that I have access to the OpenCollective again
2022-02-13 16:07:21 -05:00
renovate[bot]
aa91e94511
chore(deps): update dependency stylelint-config-standard to v25 (#1084)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-02-12 19:19:20 -05:00
renovate[bot]
59acf7b3d9
chore(deps): update dependency chromedriver to v98 (#1083)
* chore(deps): update dependency chromedriver to v98

* fix(deps): update dependency electron to v17

Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-12 18:07:35 -05:00
github-actions[bot]
f6b06e741d
Version Packages (#1080)
* Version Packages

* Trigger build

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-02-08 17:26:25 +00:00
Nathan Bierema
55cc37eacc
Fix inspector-monitor filter (#1077)
* Fix inspector-monitor filter

* Create stale-deers-pump.md

* Update stale-deers-pump.md
2022-02-06 05:46:29 +00:00
Nathan Bierema
2ec10f00ee
Add secondary exports to extension package (#1075)
* Add secondary exports to extension package

* Update documentation

* Create dull-cats-end.md
2022-02-06 05:26:57 +00:00
renovate[bot]
37539fc01e
fix(deps): update dependency framer-motion to v6 (#1044)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-06 05:05:22 +00:00
Nathan Bierema
8a2dd9b71a
Remove unnecessary package extensions (#1079) 2022-02-06 04:43:13 +00:00
Nathan Bierema
16ebc4579b
Remove gitbook-cli (#1076) 2022-02-06 04:22:46 +00:00
renovate[bot]
8067589d0c
chore(deps): lock file maintenance (#1078)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-06 03:56:08 +00:00
renovate[bot]
7c2cfa98e2
chore(deps): update all non-major dependencies (#1074)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-06 01:20:56 +00:00
Nathan Bierema
7fff6e817f
Remove remaining reference to remotedev.io 2022-02-01 09:50:19 -05:00
renovate[bot]
1b41026173
chore(deps): lock file maintenance (#1071)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-31 02:16:50 +00:00
renovate[bot]
06a1913b69
fix(deps): update all non-major dependencies (#1070)
* fix(deps): update all non-major dependencies

* Combine msw

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-01-31 01:37:35 +00:00
Nathan Bierema
84e11135c3 Bump extension version number 2022-01-30 18:42:19 -05:00
Nathan Bierema
c283d4272f Build all before releasing 2022-01-30 18:38:03 -05:00
Nathan Bierema
b725a3af51 Make access public 2022-01-30 18:20:01 -05:00
github-actions[bot]
3c28bc8a24
Version Packages (#1069)
* Version Packages

* Trigger build

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-01-30 18:09:21 -05:00
Nathan Bierema
8b69d7d40f Cleanup existing changelogs and add major versions 2022-01-30 17:31:00 -05:00
Nathan Bierema
a25551f15c Add changesets 2022-01-30 17:04:43 -05:00
Nathan Bierema
cb20c98a7d Add release workflow 2022-01-30 16:58:20 -05:00
Nathan Bierema
149e2b45fc Add changeset 2022-01-30 16:45:07 -05:00
Nathan Bierema
b4cde1442f
Fix files published in @redux-devtools/extension (#1068) 2022-01-30 21:30:18 +00:00
Nathan Bierema
9251315177
Fix failing to bundle fonts (#1067) 2022-01-30 21:04:12 +00:00
Nathan Bierema
ec52b74770
Use @types/rn-host-detect (#1066) 2022-01-29 20:02:05 +00:00
renovate[bot]
df059f9459
chore(deps): update dependency eslint-plugin-jest to v26 (#1064)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-29 15:14:25 +00:00
renovate[bot]
cba5f938ce
chore(deps): update dependency fork-ts-checker-webpack-plugin to v7 (#1065)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-29 15:11:15 +00:00
Nathan Bierema
62b5d77a8c Bump extension version number 2022-01-28 23:23:50 -05:00
Nathan Bierema
6bc927ff6d Update yarn.lock 2022-01-28 22:47:19 -05:00
Nathan Bierema
e3dc8444b4 Publish
- remotedev-redux-devtools-extension@3.0.6
 - @redux-devtools/app@2.1.1
 - @redux-devtools/cli@1.0.6
 - @redux-devtools/inspector-monitor-test-tab@0.8.5
 - @redux-devtools/rtk-query-monitor@2.1.1
 - @redux-devtools/slider-monitor@3.1.1
 - @redux-devtools/ui@1.2.1
 - test-demo@0.1.8
 - rtk-query-demo@0.1.7
 - slider-todomvc@0.1.9
2022-01-28 22:46:23 -05:00
Nathan Bierema
96b63744a7
Fix @redux-devtools/ui ESM build (#1063) 2022-01-28 22:59:47 +00:00
Nathan Bierema
6802f83946 Bump extension version number 2022-01-24 20:22:14 -05:00
Nathan Bierema
238b8896f9 Update yarn.lock 2022-01-24 19:26:51 -05:00
Nathan Bierema
bdb9b953ef Publish
- remotedev-redux-devtools-extension@3.0.5
 - d3-state-visualizer@1.6.0
 - d3tooltip@2.1.0
 - map2tree@2.1.0
 - react-base16-styling@0.9.1
 - react-dock@0.5.1
 - react-json-tree@0.16.1
 - @redux-devtools/app@2.1.0
 - @redux-devtools/chart-monitor@2.1.0
 - @redux-devtools/cli@1.0.5
 - @redux-devtools/dock-monitor@2.1.0
 - @redux-devtools/extension@3.2.0
 - @redux-devtools/inspector-monitor-test-tab@0.8.4
 - @redux-devtools/inspector-monitor-trace-tab@0.3.3
 - @redux-devtools/inspector-monitor@2.1.0
 - @redux-devtools/instrument@2.1.0
 - @redux-devtools/log-monitor@3.1.0
 - @redux-devtools/remote@0.7.3
 - @redux-devtools/rtk-query-monitor@2.1.0
 - @redux-devtools/serialize@0.4.1
 - @redux-devtools/slider-monitor@3.1.0
 - @redux-devtools/ui@1.2.0
 - @redux-devtools/utils@1.2.0
 - @redux-devtools/core@3.11.0
 - d3-state-visualizer-tree-example@0.1.4
 - react-dock-demo@0.1.4
 - react-json-tree-example@1.1.6
 - test-demo@0.1.7
 - inspector-demo@0.1.5
 - rtk-query-demo@0.1.6
 - slider-todomvc@0.1.8
 - counter-redux@0.1.7
 - todomvc@0.2.6
2022-01-24 19:26:20 -05:00
Nathan Bierema
c8f36e9c26
Default monitors to a monospace font (#1051) 2022-01-24 19:18:59 +00:00
Nathan Bierema
c379a62081
Imprrove ability to tree-shake libraries (#1050)
* Revert "Remove React from page bundle (#1031)"

This reverts commit fdfbc1942e.

* redux-devtools

* d3-state-visualizer

* d3tooltip

* map2tree

* react-base16-styling

* react-dock and react-json-tree

* redux-devtools-app

* redux-devtools-chart-monitor

* redux-devtools-dock-monitor

* redux-devtools-extension

* redux-devtools-inspector-monitor-test-tab

* redux-devtools-inspector-monitor-trace-tab

* redux-devtools-instrument

* redux-devtools-log-monitor and redux-devtools-remote

* redux-devtools-rtk-query-monitor

* redux-devtools-serialize

* redux-devtools-slider-monitor

* redux-devtools-ui

* redux-devtools-utils

* Fix build

* Fix storybook build

Storybook loads the babel.config.json but not .babelrc.json. We actually don't want to load the babel config because it uses @babel/runtime which can't be resolved with Yarn PnP.
2022-01-24 02:11:46 +00:00
renovate[bot]
b992fcc653
chore(deps): lock file maintenance (#1023)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-23 00:01:20 +00:00
renovate[bot]
dcbb43b0a4
chore(deps): update all non-major dependencies (#1022)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-22 23:00:06 +00:00
Nathan Bierema
54bcdac63e
Cache dependencies in CI (#1046) 2022-01-22 22:17:29 +00:00
Nathan Bierema
0576588a1a
Use types in tscnofig to explicitly define global types (#1045) 2022-01-22 21:51:27 +00:00
Nathan Bierema
5572d5704d
Fix unresolved dependency warning in Rollup (#1043) 2022-01-21 15:53:59 +00:00
Nathan Bierema
36a015a6f2 Bump extension version number 2022-01-20 09:58:11 -05:00
Nathan Bierema
d0c4ecdc6c Update yarn.lock 2022-01-20 09:42:22 -05:00
Nathan Bierema
bae386959d Publish
- remotedev-redux-devtools-extension@3.0.4
 - @redux-devtools/app@2.0.3
 - @redux-devtools/cli@1.0.4
 - @redux-devtools/inspector-monitor-test-tab@0.8.3
 - @redux-devtools/remote@0.7.2
 - @redux-devtools/rtk-query-monitor@2.0.2
 - @redux-devtools/slider-monitor@3.0.2
 - @redux-devtools/ui@1.1.1
 - test-demo@0.1.6
 - rtk-query-demo@0.1.5
 - slider-todomvc@0.1.7
2022-01-20 09:41:49 -05:00
Nathan Bierema
fdfbc1942e
Remove React from page bundle (#1031)
* Remove React from page bundle

* Import individual lodash functions
2022-01-20 09:19:45 -05:00
Sebastian
757abaf36d
Fix redux-devtools-remote rollup output (#1035) 2022-01-19 17:12:35 +00:00
Nathan Bierema
d0f4041beb
Update links in README (#1021) 2022-01-16 20:30:48 +00:00
Nathan Bierema
58954c7989
Use asset resources in redux-devtools-app Webpack builds (#1019)
* Use asset resources in redux-devtools-app

* Add folders to .eslintignore
2022-01-16 14:37:49 +00:00
Fabrizio Vitale
2665e2768d
chore: add vscode plugnplay support (#1016)
Reference:

- https://yarnpkg.com/getting-started/editor-sdks
2022-01-15 15:17:49 -05:00
Nathan Bierema
8ad5c3ca45
Add Open Collective 2022-01-13 19:55:10 -05:00
Nathan Bierema
e80f92ed6a Bump extension version number 2022-01-12 00:10:31 -05:00
Nathan Bierema
3f3c96c161 Update yarn.lock 2022-01-11 23:58:33 -05:00
Nathan Bierema
358d2de60d Publish
- remotedev-redux-devtools-extension@3.0.3
 - @redux-devtools/app@2.0.2
 - @redux-devtools/chart-monitor@2.0.1
 - @redux-devtools/cli@1.0.3
 - @redux-devtools/dock-monitor@2.0.1
 - @redux-devtools/inspector-monitor-test-tab@0.8.2
 - @redux-devtools/inspector-monitor-trace-tab@0.3.2
 - @redux-devtools/inspector-monitor@2.0.1
 - @redux-devtools/instrument@2.0.1
 - @redux-devtools/log-monitor@3.0.1
 - @redux-devtools/remote@0.7.1
 - @redux-devtools/rtk-query-monitor@2.0.1
 - @redux-devtools/slider-monitor@3.0.1
 - @redux-devtools/utils@1.1.1
 - @redux-devtools/core@3.10.1
 - test-demo@0.1.5
 - inspector-demo@0.1.4
 - rtk-query-demo@0.1.4
 - slider-todomvc@0.1.6
 - counter-redux@0.1.6
 - todomvc@0.2.5
2022-01-11 23:57:59 -05:00
Nathan Bierema
912e2d132f
Fix Symbol.observable polyfill mismatch (#1003)
* Remove spreading store in instrument

* Add subscribe method

* Ignore ESLint error

* Resolve Symbol.observable at store creation time

* Add warning
2022-01-12 04:56:04 +00:00
Nathan Bierema
aa10c7d918 Bump extension version number 2022-01-11 10:05:35 -05:00
Nathan Bierema
0d38261061 Fix yarn.lock 2022-01-11 09:55:32 -05:00
Nathan Bierema
36d5811683 Publish
- remotedev-redux-devtools-extension@3.0.2
 - @redux-devtools/app@2.0.1
 - @redux-devtools/cli@1.0.2
 - @redux-devtools/inspector-monitor-test-tab@0.8.1
 - @redux-devtools/inspector-monitor-trace-tab@0.3.1
 - test-demo@0.1.4
2022-01-11 09:55:08 -05:00
Nathan Bierema
614c310c6a
Fix peer dependencies (#1004) 2022-01-11 05:06:21 +00:00
Nathan Bierema
e27c2558ff Bump extension version number 2022-01-10 23:39:44 -05:00
Nathan Bierema
24e5e78e69 Update yarn.lock 2022-01-10 14:09:05 -05:00
Nathan Bierema
a4c987fc1f Publish
- remotedev-redux-devtools-extension@3.0.1
 - d3-state-visualizer@1.5.0
 - d3tooltip@2.0.0
 - map2tree@2.0.0
 - react-base16-styling@0.9.0
 - react-dock@0.5.0
 - react-json-tree@0.16.0
 - @redux-devtools/app@2.0.0
 - @redux-devtools/chart-monitor@2.0.0
 - @redux-devtools/cli@1.0.1
 - @redux-devtools/dock-monitor@2.0.0
 - @redux-devtools/extension@3.1.0
 - @redux-devtools/inspector-monitor-test-tab@0.8.0
 - @redux-devtools/inspector-monitor-trace-tab@0.3.0
 - @redux-devtools/inspector-monitor@2.0.0
 - @redux-devtools/instrument@2.0.0
 - @redux-devtools/log-monitor@3.0.0
 - @redux-devtools/remote@0.7.0
 - @redux-devtools/rtk-query-monitor@2.0.0
 - @redux-devtools/serialize@0.4.0
 - @redux-devtools/slider-monitor@3.0.0
 - @redux-devtools/ui@1.1.0
 - @redux-devtools/utils@1.1.0
 - @redux-devtools/core@3.10.0
 - d3-state-visualizer-tree-example@0.1.3
 - react-dock-demo@0.1.3
 - react-json-tree-example@1.1.5
 - test-demo@0.1.3
 - inspector-demo@0.1.3
 - rtk-query-demo@0.1.3
 - slider-todomvc@0.1.5
 - counter-redux@0.1.5
 - todomvc@0.2.4
2022-01-10 14:08:33 -05:00
Nathan Bierema
ae5bc5736e
Fix @redux-devtools/app README 2022-01-10 13:42:48 -05:00
Nathan Bierema
b82de74592
Add ESM builds (#997)
* Use rollup for d3tooltip

* Use rollup for map2tree

* Set moduleResolution

* Use rollup for d3-state-visualizer

* Use rollup for react-base16-styling

* Use rollup for react-dock

* Use rollup for react-json-tree

* Use rollup for redux-devtools

* Use rollup for redux-devtools-intrument

* Use rollup for redux-devtools-chart-monitor

* Update export

* Use rollup for redux-devtools-dock-monitor

* Use rollup for redux-devtools-inspector-monitor

* Fix inspector demo

* Fix invalid eslint config

* Use rollup for inspector-monitor-test-tab

* Use rollup for inspector-monitor-trace-tab

* Use rollup for redux-devtools-log-monitor

* Use rollup for redux-devtools-remote

* Use rollup in redux-devtools-rtk-query-monitor

* Use rollup for redux-devtools-serialize

* Fix redux-devtools examples

* Use rollup for redux-devtools-slider-monitor

* Fix slider examples

* Use rollup for redux-devtools-ui

* Use rollup for redux-devtools-utils

* Use rollup for redux-devtools-extension

* Use rollup for redux-devtools-app

* Fix Webpack app build

* Fix extension build

* Turn on minimization

* Update CLI
2022-01-10 15:41:53 +00:00
You Nguyen
aa93a0d703
[SEXUAL CONTENT/18+ SITE REDIRECTING] remove remotedev-app (#998)
* remove remotedev-app

* Update README.md

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2022-01-09 13:32:39 +00:00
Fabrizio Vitale
d1028e0a76
fix(rtk-query-monitor): capitalize tabs #995 (#996) 2022-01-08 15:01:30 -05:00
Nathan Bierema
88efc25786 Update yarn.lock 2022-01-07 21:26:26 -05:00
Nathan Bierema
ba5bd18d5b Publish
- remotedev-redux-devtools-extension@3.0.0
 - d3-state-visualizer@1.4.2
 - d3tooltip@1.3.2
 - map2tree@1.5.2
 - react-base16-styling@0.8.2
 - react-dock@0.4.2
 - react-json-tree@0.15.2
 - @redux-devtools/app@1.0.0
 - @redux-devtools/chart-monitor@1.9.2
 - @redux-devtools/cli@1.0.0
 - @redux-devtools/dock-monitor@1.4.2
 - @redux-devtools/extension@3.0.0
 - @redux-devtools/inspector-monitor-test-tab@0.7.4
 - @redux-devtools/inspector-monitor-trace-tab@0.2.4
 - @redux-devtools/inspector-monitor@1.0.2
 - @redux-devtools/instrument@1.11.2
 - @redux-devtools/log-monitor@2.3.2
 - @redux-devtools/remote@0.6.1
 - @redux-devtools/rtk-query-monitor@1.0.2
 - @redux-devtools/serialize@0.3.2
 - @redux-devtools/slider-monitor@2.0.0
 - @redux-devtools/ui@1.0.0
 - @redux-devtools/utils@1.0.0
 - @redux-devtools/core@3.9.2
 - d3-state-visualizer-tree-example@0.1.2
 - react-dock-demo@0.1.2
 - react-json-tree-example@1.1.4
 - test-demo@0.1.2
 - inspector-demo@0.1.2
 - rtk-query-demo@0.1.2
 - slider-todomvc@0.1.4
 - counter-redux@0.1.4
 - todomvc@0.2.3
2022-01-07 21:24:58 -05:00
Nathan Bierema
77456e7dc2 Bump extension version number 2022-01-07 21:11:39 -05:00
Nathan Bierema
1bebc4423e
Expand PropTypes for dataTypeKey (#994) 2022-01-08 02:10:50 +00:00
Nathan Bierema
90af902aac
Fix color theme when printing (#993) 2022-01-08 01:50:51 +00:00
Nathan Bierema
3c0fb90b38
Update buttons (#992) 2022-01-08 00:56:13 +00:00
Nathan Bierema
872a144a69
Fix styled-components duplication (#991) 2022-01-07 15:06:15 +00:00
Nathan Bierema
06ba7575bc
Update links in header (#990) 2022-01-07 05:01:50 +00:00
Nathan Bierema
b4f2958dda
Fix usage of filtered actions with slider-monitor (#983)
* Use jumpToAction instead of jumpToState

* Jumping to action is time traveling

* Fix bad null check

* Fix types

* Fix JUMP_TO_ACTION handling

* Use indexOf
2022-01-07 04:27:50 +00:00
renovate[bot]
3930411ade
chore(deps): lock file maintenance (#988)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-03 05:43:11 +00:00
renovate[bot]
8d917e2944
chore(deps): update all non-major dependencies (#987)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-03 05:10:29 +00:00
Nathan Bierema
8a5964760a
Use yarn dedupe in Renovate PRs (#986) 2021-12-27 03:35:30 +00:00
renovate[bot]
9fa1ec35ac
chore(deps): lock file maintenance (#985)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-12-27 02:43:37 +00:00
renovate[bot]
9a2ece2c88
chore(deps): update all non-major dependencies (#981)
* chore(deps): update all non-major dependencies

* Changes

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-12-27 02:12:31 +00:00
renovate[bot]
6e9f881c7a
chore(deps): update dependency typescript to ~4.5.2 (#964)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-12-08 05:02:22 +00:00
renovate[bot]
415be444dc
chore(deps): lock file maintenance (#979)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-12-08 04:38:30 +00:00
renovate[bot]
4323824e69
chore(deps): update all non-major dependencies (#973)
* chore(deps): update all non-major dependencies

* Combine webpack

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-12-08 04:11:07 +00:00
Nathan Bierema
596181ed42
Remove unnecessary @types/webpack (#980) 2021-12-08 03:27:14 +00:00
Nathan Bierema
8f6fbc45a1
Remove unnecessary package extension (#978) 2021-12-05 04:45:23 +00:00
Nathan Bierema
f60e636a28
Type-check Webpack configs (#976) 2021-12-05 03:28:45 +00:00
Nathan Bierema
5a507de8cf
Remove more unnecessary dependency patches (#977) 2021-12-04 21:38:51 -05:00
Nathan Bierema
07229eb2cd
Remove unnecessary dependency patches (#975)
* Remove unnecessary dependency patches

* Also unnecessary

* Not unnecessary
2021-12-04 22:47:36 +00:00
renovate[bot]
dc20bd6ce8
chore(deps): lock file maintenance (#969)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-12-04 20:42:33 +00:00
renovate[bot]
76e0f371ac
fix(deps): update dependency msw to ^0.36.0 (#974)
* fix(deps): update dependency msw to ^0.36.0

* Update

* Remove entry

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-12-04 15:14:31 -05:00
renovate[bot]
34ffeb60b4
fix(deps): update all non-major dependencies (#967)
* fix(deps): update all non-major dependencies

* Changes

* Downgrade msw for now

* Move into own group

* Ignore no-unused-vars

* Disable both

* Just the one

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-12-04 19:04:59 +00:00
renovate[bot]
dc969c14e6
chore(deps): update dependency chromedriver to v96 (#962)
* chore(deps): update dependency chromedriver to v96

* fix(deps): update dependency electron to v16

* Fix electron test

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-12-04 13:41:26 -05:00
renovate[bot]
6d8971f230
chore(deps): lock file maintenance (#965)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-22 04:45:11 +00:00
renovate[bot]
a1512a8b8b
chore(deps): update all non-major dependencies (#960)
* chore(deps): update all non-major dependencies

* Changes

* Changes

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-11-22 04:02:21 +00:00
renovate[bot]
a363433db5
fix(deps): update dependency graphql to v16 (#932)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-15 03:59:20 +00:00
renovate[bot]
ff260a90ad
chore(deps): lock file maintenance (#959)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-14 22:35:24 -05:00
renovate[bot]
82c114c375
fix(deps): update all non-major dependencies (#956)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-15 02:14:56 +00:00
renovate[bot]
96851210c6
chore(deps): update dependency stylelint-config-standard to v24 (#958)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-14 15:23:59 -05:00
renovate[bot]
733293fdeb
chore(deps): update dependency eslint to v8 (#902)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-10 19:12:10 -05:00
renovate[bot]
b420986188
chore(deps): update dependency eslint-config-airbnb to v19 (#954)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-11-10 23:09:19 +00:00
renovate[bot]
e2c6532d13
chore(deps): update all non-major dependencies (#953)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-10 17:49:26 -05:00
renovate[bot]
8f7bfb52b0
fix(deps): update dependency framer-motion to v5 (#926)
* fix(deps): update dependency framer-motion to v5

* Fix peer deps

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-11-10 14:55:19 +00:00
renovate[bot]
e985f0e989
fix(deps): update all non-major dependencies (#952)
* fix(deps): update all non-major dependencies

* Fix lint error

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-11-10 14:32:42 +00:00
renovate[bot]
82cdc6c119
chore(deps): lock file maintenance (#951)
* chore(deps): lock file maintenance

* Fix build

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-11-08 05:48:23 +00:00
renovate[bot]
621063b97d
fix(deps): update all non-major dependencies (#935)
* fix(deps): update all non-major dependencies

* Combine react types

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-11-08 02:33:44 +00:00
Nathan Bierema
1ccbfbbf81 Update yarn.lock 2021-11-06 14:50:44 -04:00
Nathan Bierema
a40938b01c Make extension private 2021-11-06 14:17:18 -04:00
Nathan Bierema
faff0db47b Publish
- remotedev-redux-devtools-extension@3.0.0-rc.1
 - d3-state-visualizer@1.4.1
 - d3tooltip@1.3.1
 - map2tree@1.5.1
 - react-base16-styling@0.8.1
 - react-dock@0.4.1
 - react-json-tree@0.15.1
 - @redux-devtools/app@1.0.0-9
 - @redux-devtools/chart-monitor@1.9.1
 - @redux-devtools/cli@1.0.0-10
 - @redux-devtools/dock-monitor@1.4.1
 - @redux-devtools/extension@3.0.0-rc.1
 - @redux-devtools/inspector-monitor-test-tab@0.7.3
 - @redux-devtools/inspector-monitor-trace-tab@0.2.3
 - @redux-devtools/inspector-monitor@1.0.1
 - @redux-devtools/instrument@1.11.1
 - @redux-devtools/log-monitor@2.3.1
 - @redux-devtools/remote@0.6.0
 - @redux-devtools/rtk-query-monitor@1.0.1
 - @redux-devtools/serialize@0.3.1
 - @redux-devtools/slider-monitor@2.0.0-9
 - @redux-devtools/ui@1.0.0-10
 - @redux-devtools/utils@1.0.0-7
 - @redux-devtools/core@3.9.1
 - d3-state-visualizer-tree-example@0.1.1
 - react-dock-demo@0.1.1
 - react-json-tree-example@1.1.3
 - test-demo@0.1.1
 - inspector-demo@0.1.1
 - rtk-query-demo@0.1.1
 - slider-todomvc@0.1.3
 - counter-redux@0.1.3
 - todomvc@0.2.2
2021-11-06 13:44:49 -04:00
Nathan Bierema
efd9245637 Publish from main 2021-11-06 13:37:51 -04:00
Nathan Bierema
179ef5887e Add files to extension package.json 2021-11-06 13:36:26 -04:00
Nathan Bierema
1de7e11a0a
Integrate color scheme preference into ui library (#950) 2021-11-06 17:28:35 +00:00
Nathan Bierema
a8883f287d
Convert npm extension package to TypeScript (#948)
* stash

* stash
2021-11-06 14:38:27 +00:00
Nathan Bierema
0651b764df
Update documentation for remote (#949) 2021-11-06 14:12:11 +00:00
Fabrizio Vitale
90cde4cfdf
Feat/use dark mode preference to set initial theme.light (#861)
* feat(redux-devtools-app): use `prefers-color-scheme` to set `theme.light` if user has not set a preferred theme

* chore(@redux-devtools/app): fix lint error

Error message:

0:0  error  Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.
The file does not match your project config: test/__mocks__/styleMock.ts.
The file must be included in at least one of the projects provided

* chore: run prettier

* feat(app): add theme color dropdown

* refactor(rename): system preference option from default to auto
2021-11-06 09:52:43 -04:00
Nathan Bierema
a9ef668d9b
Remove deprecated inject scripts (#947) 2021-11-06 04:23:00 +00:00
Nathan Bierema
16cad91ede
Remove deprecated updateStore method (#943) 2021-11-05 20:59:08 +00:00
Nathan Bierema
5c375330b4
Remove deprecated creation of store (#946) 2021-11-05 20:22:04 +00:00
Nathan Bierema
b79886eb50
Remove deprecated getMonitor method (#945) 2021-11-05 19:41:29 +00:00
Nathan Bierema
de83aa1b45
Remove deprecated filter methods (#944) 2021-11-05 19:20:01 +00:00
Nathan Bierema
39be59eebe
Remove deprecated serialization parameters (#942) 2021-11-05 18:54:22 +00:00
Nathan Bierema
a3d70a7e04
Remove references to remotedev.io (#941) 2021-11-05 14:53:43 +00:00
Nathan Bierema
0d38895eb2
Fix uninitialized errorCounts bug in remote DevTools (#936)
* Fix bug in remote

* Use create instead of connect
2021-11-02 03:19:25 +00:00
renovate[bot]
beb02ebe6d
chore(deps): update all non-major dependencies (#921)
* chore(deps): update all non-major dependencies

* Combine react types

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-11-01 13:59:32 +00:00
Nathan Bierema
199f7d8c53
Ignore remote examples for Renovate (#931)
* Ignore remote examples for now

* Format
2021-10-28 21:19:41 +00:00
Nathan Bierema
9a130ce9d1
Add @redux-devtools/remote (#928) 2021-10-28 20:39:47 +00:00
Nathan Bierema
d807663302
Update Renovate config (#925)
* Update Renovate config

* Twice
2021-10-26 02:14:42 +00:00
renovate[bot]
acdee33088
chore(deps): update dependency @types/node to v16 (#923)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-25 21:48:05 -04:00
renovate[bot]
0400e0c8e0
fix(deps): update dependency knex to ^0.95.11 (#837)
* fix(deps): update dependency knex to ^0.95.11

* Changes

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-25 18:33:53 +00:00
renovate[bot]
503be15cf4
fix(deps): update apollo graphql packages to v3 (major) (#794)
* fix(deps): update apollo graphql packages to v3

* stash

* Change

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-25 17:20:23 +00:00
renovate[bot]
2913769e3a
fix(deps): update dependency graphql to v15 (#804)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-25 14:39:59 +00:00
renovate[bot]
bab081c30e
chore(deps): lock file maintenance (#920)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-25 04:25:44 +00:00
renovate[bot]
ef374287be
fix(deps): update all non-major dependencies (#911)
* fix(deps): update all non-major dependencies

* Changes

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-25 00:42:08 +00:00
renovate[bot]
a0472bdeaa
chore(deps): update react monorepo (#792)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-22 16:11:42 +00:00
Nathan Bierema
e8dc843f78
Replace enzyme with React testing library in app and extension (#918)
* Update tests

* Replace in extension as well
2021-10-22 14:49:53 +00:00
Nathan Bierema
57ec0534b2
Replace enzyme with React testing library in ui (#917)
* Replace enzyme with React testing library in ui

* Mock Math.random()
2021-10-22 04:18:03 +00:00
Nathan Bierema
623e4b42a6
Replace enzyme with React testing library in trace-tab (#916) 2021-10-22 00:43:15 +00:00
Nathan Bierema
f1514f7e4a
Replace enzyme with React testing library in test-tab (#915) 2021-10-21 21:55:21 +00:00
renovate[bot]
492aa362fb
fix(deps): update dependency react-bootstrap to v2 (#910)
* fix(deps): update dependency react-bootstrap to v2

* Remove Append

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-21 20:07:15 +00:00
renovate[bot]
7e4cea6fa9
chore(deps): update typescript-eslint monorepo to v5 (major) (#907)
* chore(deps): update typescript-eslint monorepo to v5

* Update

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-21 19:08:35 +00:00
renovate[bot]
0262fe1345
chore(deps): update dependency stylelint-config-standard to v23 (#914)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-21 18:05:37 +00:00
renovate[bot]
922b8be10a
chore(deps): update dependency stylelint to v14 (#913)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-21 17:42:51 +00:00
renovate[bot]
ada8aa0a89
chore(deps): update dependency html-loader to v3 (#912)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-21 13:25:36 -04:00
renovate[bot]
3dae06e2cb
chore(deps): update dependency selenium-webdriver to v4 (#909)
* chore(deps): update dependency selenium-webdriver to v4

* Update

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-21 14:15:09 +00:00
renovate[bot]
577943bfd1
chore(deps): update dependency chromedriver to v94 (#893)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-21 04:48:25 +00:00
renovate[bot]
2b6acd853a
fix(deps): update all non-major dependencies (#906)
* fix(deps): update all non-major dependencies

* Changes

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-21 04:26:47 +00:00
renovate[bot]
f1ae2d11a0
chore(deps): update dependency stylelint-config-prettier to v9 (#908)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-11 23:00:17 +00:00
renovate[bot]
d4953b733f
chore(deps): lock file maintenance (#905)
* chore(deps): lock file maintenance

* Combine react and node types

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-11 04:51:08 +00:00
renovate[bot]
8e8df67007
fix(deps): update all non-major dependencies (#900)
* fix(deps): update all non-major dependencies

* Update snapshots

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-11 04:16:48 +00:00
renovate[bot]
689ea58318
chore(deps): update dependency eslint-plugin-jest to v25 (#904)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-10 16:17:01 -04:00
renovate[bot]
7e01b693ad
chore(deps): update dependency typescript to ~4.4.3 (#833)
* chore(deps): update dependency typescript to ~4.4.3

* Fix instrument

* Fix app

* Fix cli

* Fix extension

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-05 02:32:03 +00:00
renovate[bot]
2abf69ab63
chore(deps): lock file maintenance (#897)
* chore(deps): lock file maintenance

* Combine react types

* Combine node types

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-04 20:18:13 +00:00
renovate[bot]
9cbcc53062
chore(deps): update dependency @types/d3 to ^3.5.46 (#899)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-04 19:18:48 +00:00
renovate[bot]
0d4750ebba
chore(deps): update all non-major dependencies (#898)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-04 18:57:11 +00:00
renovate[bot]
3957e694c6
chore(deps): update all non-major dependencies (#883)
* chore(deps): update all non-major dependencies

* Combine react types

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-10-04 04:29:49 +00:00
Nathan Bierema
88685b08a3
chore(ui): fix storybook build (#895)
* Add storybook build

* Downgrade color
2021-10-01 21:34:29 +00:00
Nathan Bierema
13c775ee2c
chore(slider): fix example build (#894) 2021-10-01 20:46:02 +00:00
Nathan Bierema
d3fccc1487
chore(rtk-query): fix demo build (#892)
* stash

* stash

* stash
2021-09-25 13:21:12 +00:00
Nathan Bierema
6af7103e41
chore(test-tab): fix demo build (#891)
* stash

* stash
2021-09-25 04:54:14 +00:00
Nathan Bierema
399c83f9bf
chore(inspector): fix example build (#890) 2021-09-25 04:12:30 +00:00
renovate[bot]
02a8232058
fix(deps): update dependency react-select to v5 (#889)
* fix(deps): update dependency react-select to v5

* Updates

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-09-25 02:58:39 +00:00
Nathan Bierema
b20f1fffe3
chore(core): fix example builds (#888) 2021-09-22 04:01:04 +00:00
Nathan Bierema
47d102680a
chore(react-json-tree): fix example build (#887)
* chore(react-json-tree): fix example build

* Fix build
2021-09-22 03:24:10 +00:00
Nathan Bierema
09c82b70ab
chore(react-dock): fix example build (#886)
* chore(react-dock): fix demo build

* Lint
2021-09-22 02:57:17 +00:00
renovate[bot]
c0662f115b
fix(deps): update dependency electron to v15 (#885)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-21 19:39:03 -04:00
renovate[bot]
9eccbfabec
chore(deps): lock file maintenance (#874)
* chore(deps): lock file maintenance

* Combine react types

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-09-20 23:05:12 +00:00
renovate[bot]
aa5b2a756e
chore(deps): update all non-major dependencies (#860)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-20 21:49:13 +00:00
Nathan Bierema
80efa75706
chore(deps): disable renovate for extension examples (#882) 2021-09-20 21:27:53 +00:00
Nathan Bierema
29fd019e2b
chore(deps): enable renovate for examples (#879)
* chore(deps): enable renovate for examples

* Format

* yarn.lock
2021-09-20 20:57:03 +00:00
Nathan Bierema
525a9174c3
chore(*): reorder package.json (#878) 2021-09-20 17:29:23 +00:00
Nathan Bierema
fc83932198
chore(deps): create separate group for source-map (#876) 2021-09-20 15:47:09 +00:00
Nathan Bierema
3c28250668
chore(cli): increase timeout in test (#873) 2021-09-20 00:56:48 +00:00
Nathan Bierema
f23b14cdf0
chore(d3-state-visualizer): fix example build (#875) 2021-09-20 00:33:29 +00:00
Nathan Bierema
f454ac8a7f
chore(*): switch to Yarn Plug'n'Play (#871)
* Build all

* Lint all

* Test (almost) all

* Test CLI

* Format

* Make styled-components a peer dependency

* Add missing peer dependencies

* Fix electron fixture
2021-09-19 21:59:01 +00:00
Nathan Bierema
97ca2fc781
chore(*): move devDependencies back to packages (#870)
* Start work

* More work

* More work

* Prettify

* Fix

* More work

* Fix

* Cleanup
2021-09-18 23:47:03 +00:00
Nathan Bierema
19393e8e7f
chore(*): update Yarn (#869)
* chore(*): update Yarn

* Update yarn.lock
2021-09-18 14:17:27 +00:00
Nathan Bierema
17314ccf70
chore(*): rename devui to redux-devtools-ui (#868) 2021-09-18 14:00:58 +00:00
Nick McCurdy
7c9579c141
chore(*): build on Linux for performance (#865)
* chore(*): build on Linux for performance

* Try using xvfb

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-09-18 00:19:35 -04:00
Nathan Bierema
6644072a85
chore(*): fix lint on ubuntu (#867) 2021-09-18 03:35:49 +00:00
Nick McCurdy
e18b2757f4
chore(*): remove Travis (#864)
* chore(*): remove Travis config

* chore(*): fix CI badges

* chore(*): fix package source links

* chore(*): remove CI badges from packages
2021-09-17 15:02:33 +00:00
renovate[bot]
77d61b1c73
chore(deps): update dependency prettier to v2.4.1 (#863)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-16 13:55:40 +00:00
renovate[bot]
ced495167a
chore(deps): update dependency prettier to v2.4.0 (#857)
* chore(deps): update dependency prettier to v2.4.0

* Format

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-09-15 21:47:31 +00:00
Nathan Bierema
490d3b9ccc
chore(*): remove unnecessary immutable flag (#862) 2021-09-15 21:25:49 +00:00
renovate[bot]
2c4aa7966a
fix(deps): update dependency color to v4 (#801)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-15 13:49:35 +00:00
renovate[bot]
921b8a5ac9
chore(deps): lock file maintenance (#842)
* chore(deps): lock file maintenance

* Combine @types/react

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-09-14 03:26:47 +00:00
renovate[bot]
74741a2d27
fix(deps): update all non-major dependencies (#859)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-13 22:55:43 -04:00
renovate[bot]
d18c48cbb6
chore(deps): update dependency chromedriver to v93 (#831)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-09-13 20:28:33 +00:00
renovate[bot]
1827c55553
chore(deps): update all non-major dependencies to ^4.31.1 (#856)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-13 18:58:30 +00:00
renovate[bot]
2c15cd4fc2
chore(deps): update all non-major dependencies (#847)
* chore(deps): update all non-major dependencies

* Format

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-09-13 18:35:18 +00:00
Nathan Bierema
6e75c35ccc
Only group major react types (#853) 2021-09-07 13:40:57 +00:00
renovate[bot]
4360144c0a
chore(deps): update dependency @types/react to ^16.14.15 (#839)
* chore(deps): update dependency @types/react to ^16.14.15

* Combine

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-09-07 04:12:31 +00:00
renovate[bot]
59a565a618
fix(deps): update dependency anser to v2 (#798)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-07 03:48:49 +00:00
Nathan Bierema
4829547451
fix(extension): update links in manifest.json (#852) 2021-09-06 17:28:01 -04:00
Nathan Bierema
6b2ad1ebaa
fix(app): update links (#849) 2021-09-06 20:31:10 +00:00
Nathan Bierema
42728c2114
feat(extension): replace whitelist/blacklist with allowlist/denylist (#851) 2021-09-06 20:07:44 +00:00
Nathan Bierema
1695dee135
chore(*): update CI branch (#850) 2021-09-06 19:47:09 +00:00
Nathan Bierema
5f1b7e9de5
fix(app): remove remotedev option (#845) 2021-09-06 18:29:41 +00:00
Nathan Bierema
d1462690ba
fix(extension): increase delay in e2e chrome test (#846) 2021-09-06 18:07:02 +00:00
renovate[bot]
6aea3993ed
fix(deps): update dependency @types/chrome to ^0.0.156 (#844)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-06 13:47:03 -04:00
Nathan Bierema
370b5e6df3
fix(extension): fix state persisting (#843) 2021-09-06 16:48:34 +00:00
Nathan Bierema
515953a118
fix(devui): increase z-index of select menu to appear above editor (#840) 2021-09-05 20:03:00 +00:00
renovate[bot]
5fb8f02add
chore(deps): lock file maintenance (#818)
* chore(deps): lock file maintenance

* Combine react types

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-09-04 22:44:37 -04:00
renovate[bot]
d492b2de75
chore(deps): update all non-major dependencies (#771)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-05 01:53:32 +00:00
Nathan Bierema
3a84ab4f7c
fix(devui): fix z-index issues (#838)
* fix(devui): fix z-index issues

* Update snapshots
2021-09-04 23:07:20 +00:00
Nathan Bierema
01ad152ac9
fix(extension): fix style of links (#835) 2021-09-04 21:41:27 +00:00
Nathan Bierema
4d8daffc6b
chore(*): move 0.x dependencies into their own PRs (#832) 2021-09-04 20:22:36 +00:00
Nathan Bierema
855f22e14e
fix(extension): remove special case for JUMP_TO_STATE (#829) 2021-09-02 13:34:24 +00:00
renovate[bot]
cfba119c53
chore(deps): update dependency clean-webpack-plugin to v4 (#828)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-01 14:16:47 +00:00
renovate[bot]
a5867e83d6
fix(deps): update dependency electron to v14 (#827)
* fix(deps): update dependency electron to v14

* chore(deps): update dependency chromedriver to v92

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-30 22:57:55 -04:00
Nathan Bierema
a3a46cabf0
feat(extension): add persistence of settings (#826) 2021-08-31 01:42:01 +00:00
renovate[bot]
ad23a3ed8b
fix(deps): update dependency redux-persist to v6 (#811)
* fix(deps): update dependency redux-persist to v6

* Changes

* Add PersistGate

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-30 22:18:02 +00:00
Nathan Bierema
49c8f24460
chore(*): group react types with monorepo (#825) 2021-08-30 13:05:52 +00:00
Nathan Bierema
91b89826ea
feat(extension): use persist from app (#821)
* feat(extension): use persist from app

* Fix imports
2021-08-30 05:21:32 +00:00
Nathan Bierema
a640e7345a
fix(extension): fix types (#822) 2021-08-30 04:54:35 +00:00
Nathan Bierema
95fe2bb42e
chore(utils): use types package (#823) 2021-08-30 03:47:29 +00:00
Nathan Bierema
e98c083e41
fix(extension): remove socket from panel store (#820) 2021-08-30 02:17:39 +00:00
Nathan Bierema
bff8dd4924
chore(*): tighten TypeScript range (#819) 2021-08-30 01:57:49 +00:00
Nathan Bierema
1258902c35
fix(extension): fix code editor styles (#817) 2021-08-30 01:32:29 +00:00
Nathan Bierema
d38a438764
chore(*): clean up babel configs (#816) 2021-08-29 23:25:48 +00:00
Nathan Bierema
5ab7cae0de
refactor(trace): remove settle-promise (#815) 2021-08-29 20:15:56 +00:00
Nathan Bierema
04c0e2ae00
chore(react-dock): provide missing transitive peer dependency (#814)
* chore(react-dock): provide missing transitive peer dependency

* Fix
2021-08-29 19:46:40 +00:00
renovate[bot]
9aac647de1
fix(deps): update dependency open to v8 (#806)
* fix(deps): update dependency open to v8

* Changes

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-29 19:09:57 +00:00
Nathan Bierema
b32b08552e
fix(trace): restore usage of @babel/code-frames (#813)
* Restore usage of @babel/code-frame

* Use resolutions
2021-08-29 14:32:44 -04:00
renovate[bot]
451e1adfd0
fix(deps): update dependency react-select to v4 (#810)
* fix(deps): update dependency react-select to v4

* Update types

* Update snapshots

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-29 17:09:10 +00:00
Nathan Bierema
2209a648a6
fix(*): starting webpack dev server (#809) 2021-08-29 16:40:36 +00:00
renovate[bot]
f7c45f94b0
fix(deps): update dependency html-entities to v2 (#805)
* fix(deps): update dependency html-entities to v2

* Changes

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-29 16:20:20 +00:00
renovate[bot]
246af5ad62
fix(deps): update dependency dateformat to v4 (#802)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-29 15:41:32 +00:00
renovate[bot]
6714bda9c1
chore(deps): update dependency @rjsf/core to v3 (#759)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-29 15:21:38 +00:00
renovate[bot]
7481d6a738
fix(deps): update dependency react-icons to v4 (#807)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-29 14:54:05 +00:00
renovate[bot]
fb6573793a
chore(deps): update dependency html-webpack-plugin to v5 (#808)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-29 14:25:33 +00:00
renovate[bot]
6c5f7446b5
chore(deps): update dependency css-loader to v6 (#767)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-29 13:58:25 +00:00
Nathan Bierema
085352d7b3
chore(rtk): remove extraneous yarn.lock (#803) 2021-08-29 13:34:49 +00:00
renovate[bot]
1b92b82fad
chore(deps): update dependency style-loader to v3 (#782)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-29 05:20:57 +00:00
renovate[bot]
7b2099c546
chore(deps): update dependency html-loader to v2 (#775)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-29 05:00:18 +00:00
renovate[bot]
dcdd7546ec
chore(deps): update dependency copy-webpack-plugin to v9 (#766)
* chore(deps): update dependency copy-webpack-plugin to v9

* Changes

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-29 04:39:18 +00:00
renovate[bot]
6660eaae18
chore(deps): update dependency webpack to v5 (#788)
* chore(deps): update dependency webpack to v5

* Add path

* changes

* Add path to extension

* Fix things

* Fix that

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-29 04:09:37 +00:00
renovate[bot]
2387834778
chore(deps): update dependency webpack-dev-server to v4 (#790)
* chore(deps): update dependency webpack-dev-server to v4

* Remove deprecated inline argument

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-28 20:21:06 +00:00
Nathan Bierema
d489364417
chore(*): only rebase renovate when conflicted (#800) 2021-08-28 14:30:48 +00:00
Fabrizio Vitale
01a48db742
[Docs][Rtk-query][Readme]: remove To Do, update demo source link and update Features (#799)
* docs(rtk-query): remove `To Do`, update demo source link, and update `Features`

* fix: run prettier
2021-08-28 10:13:27 -04:00
renovate[bot]
c83ba6828e
fix(deps): update dependency @types/codemirror to v5 (#796)
* fix(deps): update dependency @types/codemirror to v5

* Fix type

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-27 21:56:30 +00:00
Nathan Bierema
4b166f25aa
chore(*): maintain lock file (#797) 2021-08-27 21:11:32 +00:00
renovate[bot]
35f958b982
chore(deps): update dependency webpack-cli to v4 (#789)
* chore(deps): update dependency webpack-cli to v4

* Update arguments

* config

* Let's see what this does

* Revert "config"

This reverts commit e8ff2f1acd.

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-27 20:23:35 +00:00
Nathan Bierema
04176905c6
chore(extension): clean up babelrc (#795)
* chore(extension): clean up babelrc

* Format
2021-08-27 19:53:20 +00:00
renovate[bot]
8c42d03594
chore(deps): update typescript-eslint monorepo to v4 (#793)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-27 13:43:08 -04:00
renovate[bot]
5cee92d1ef
chore(deps): update jest monorepo (major) (#791)
* chore(deps): update jest monorepo

* Changes for jest 27

* Update types as well

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-27 16:08:40 +00:00
renovate[bot]
0101471ffb
chore(deps): update dependency ts-node to v10 (#786)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-27 05:48:54 +00:00
renovate[bot]
e7c51af803
chore(deps): update dependency supertest to v6 (#785)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-27 05:02:52 +00:00
renovate[bot]
9caf393abf
chore(deps): update dependency eslint-plugin-jest to v24 (#772)
* chore(deps): update dependency eslint-plugin-jest to v24

* Fix lint

* Fix

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-27 04:16:15 +00:00
Nathan Bierema
2f7cf3efac
fix(devui): better Select styles to match other components (#787)
* feat(extension): add back buttons for opening new windows

* Change import

* stash

* stash
2021-08-27 03:48:24 +00:00
renovate[bot]
1dd169a60d
chore(deps): update dependency eslint-config-prettier to v8 (#769)
* chore(deps): update dependency eslint-config-prettier to v8

* Update eslintrc

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-27 03:23:46 +00:00
Nathan Bierema
fdf3f2d94f
feat(extension): add back buttons for opening new windows (#784) 2021-08-27 01:37:12 +00:00
renovate[bot]
f122f5227a
chore(deps): update dependency stylelint-config-standard to v22 (#783)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-27 01:09:00 +00:00
renovate[bot]
8d94d6cd6c
chore(deps): update dependency sinon-chrome to v3 (#780)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-27 00:23:07 +00:00
renovate[bot]
ea16b342b9
chore(deps): update dependency rxjs to v7 (#778)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-26 23:40:32 +00:00
Nathan Bierema
63b5e656e3
chore(deps): clean up (#779)
* chore(deps): clean up

* prettierignore

* Remove

* Keep

* Unify @types/react
2021-08-26 19:20:13 -04:00
renovate[bot]
b893e07fd8
chore(deps): update dependency lerna to v4 (#777)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-26 18:29:54 -04:00
renovate[bot]
cc475a2f64
chore(deps): update dependency fork-ts-checker-webpack-plugin to v6 (#773)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-26 17:28:15 -04:00
Fabrizio Vitale
7d92a5e186
[feat][monitor] Add rkt-query-inspector-monitor - feat/rtk query monitor (#750)
* chore: copy rtk-query example from toolkit

* feat(rtk-query): complete initial setup of rtk-query

* feat: complete inspector layout and add initial JSONTree setup

* fix: unintentional removal of tsconfig

* feat(search): add search logic and refactor monitor state shape

* fix: inverted monitor theme inside  devtoop-app

Othetr changes:

* simplify monitor integration

* fix: rtk monitor reducer not working in  app

* refactor(rtk-query): simplify theme config

* feat(rtk-query-monitor): add query preview tabs

* fix: wip

* refactor(examples): add rtk-query-polling to workspace

Other changes:

* docs(rtk-query-polling): add README.md

* chore(rtk-query-inspector): add demo to monorepo

Other changes:

chore: increase isWideScreen polling interval to 300

refactor: add subscription as root node in QueryPreviewSubscriptions

* feat(rtk-query): add multiple filter options

* chore(rtk-queery): rename demo build script and add SKIP_PREFLIGHT_CHECK=true

* feat(rtk-query): display status flags in QueryPreviewInfo

* chore(rtk-query): update typescript versions in rkt-inspector-monitor & its demo

* docs(rtk-query): add proper README

Other changes:

* fix examples/rtk-query-poilling

* docs(rtk-query): improve rtk-query-inspector-monitor demo gif

* docs(rtk-query): clean up demo

* fix(rtk-query): clear button not updating redux state

* docs(rtk-query): add link to rtk-query-inspector-monitor demo site

* chore(rtk-query): run prettier after prettier upgrade (55e2284)

* docs(rtk.query): clean up readme add features, todo and development section

* docs(rtk-query): fix link href

* chore(rtk-query): clean up rtk-query-imspector-monitor-demo and add post example

* feat(rtk-query): add counters on tags & subs tab buttons

* fix(rtk-query): layering issue between queryPreview tabList and select

Other changes:

* clean up demo styles

* run prettier

* fix: revert accidental changes packages/redux-devtools-serialize/tsconfig.json

* chore: change QueryComparators.fulfilledTimeStamp label

* feat(rtk-query): display api stats

* refactor: remove rtk-query-polling example from monorepo

* chore: regenerate lock file and add @types/react as monorepo devDep

* chore: display apiState

Other changes:

* fix close button overflow

* minor responsive style tweaks

* display reducerPath in query tab

* fix(rtk-query): resolve CI errors

- fix(prettier:check): unformatted file
- fix(lint:all): fix accidentallly removed .eslintignore

* chore(rtk-query): rename package to '@redux-devtools/rtk-query-monitor'

* fix(rtk-query): lint:all error

https://github.com/reduxjs/redux-devtools/runs/2869729048?check_suite_focus=true

* feat(rtk-query): add fallback message if there are no rtk-query apis

* refactor(rtk-query): move Inspector & Monitor to containers clean up typings

Other changes:

* chore: improved type coverage

* chore: do not lint packages/redux-devtools-rtk-query-monitor/demo folder

* refactor: put sort order buttons inside a component

* chore: hopefully resolve mockServiceWorker formatting issues

* fix(rtk-query): incorrect link color

Other changes:

* fix: add missing anchor property value noopener

* refactor(rtk-query): simplify sort order control

* feat(rtk-query): add timings to apiStats sections

* feat(rtk-query): add slowest and fastest in timings section

* feat(rtk-query): improve formatting of timings and display average loading time

* fix(rtk-query): rtk-query imports

* refactor(rtk-query): reduce selector computations

Other changes:

* simplify TreeView props

* feat(rtk-query): add actions tab

* refactor(rtk-query): add custom logic for TreeView shouldExpandNode

Other changes:

* feat: added duration in QueryPreviewInfo tab

* refactor: TreeView component

* chore(rtk-query): improve demo visibility on small devices

* feat(rtk-query): do not display tree node preview

Other changes:

* improve visibility of demo devTools on small devices

* tweak QueryPreviewInfo labels

* chore(rtk-query): improve responsiveness

* refactor(rtk-query): move preview to containers remove unnecessary computation

* feat(rtk-query): display median of timings

Other changes:

* improved shouldExpandNode logic of QueryPreviewActions

* tweaked mean logic

* refactor(rtk-query-monitor): conform demo setup to repo standards

* chore(rtk-query-monitor): add option to select active devtools

* chore(rtk-query-monitor): remove redux-devtools/examples/rtk-query-polling

* refactor(rtk-query): improve UI of api tab

* feat(rtk-query): add regex search

* feat(rtk-query): display mutations in queryList

* refactor(rtk-query): track all fulfilled requests using actions

Other changes:

* refactor(rtk-query): rename tally properties

* chore(rtk-query): update @redux-devtools/rtk-query-monitor dependencies

* fix(rtk-query): demo build failing caused by a typing error
2021-08-26 15:33:06 -04:00
Nathan Bierema
6cdc18f2fa
chore(deps): update yarn to v3 (#770)
* chore(deps): update yarn to v3

* Update yarn.lock
2021-08-26 10:20:15 -04:00
renovate[bot]
9a77585dd7
chore(deps): update all non-major dependencies (#758)
* chore(deps): update all non-major dependencies

* Prettify

* Combine versions

* Downgrade knex

* Engine changes

* Only LTS

* Greater than

* Combine lodash

* Fix type

* Fix type

* Update snapshots

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-26 09:52:23 -04:00
renovate[bot]
ec7f9117f6
Configure Renovate (#757)
* Add renovate.json

* Update config

* Bump ranges instead of pinning

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-08-25 23:00:13 -04:00
Nathan Bierema
a418284a4a
chore(extension): convert to TypeScript (#756)
* Start work

* More work

* stash

* stash

* stash

* Eliminate relay

* Fix

* Define page script to content script messages

* Define ContentScriptToPageScriptMessage

* Not required

* Fill out more types

* More work on types

* More type fixes

* Add type

* More improvements to types

* More work on types

* Fix more type errors

* More changes

* More work

* Work

* Fix build

* Fix lint

* Fix more lint

* Fix bug

* Fix tests
2021-08-25 00:22:54 -04:00
Nathan Bierema
326cfdf217
chore(extension): add extension to yarn workspaces (#747)
* Add packages

* misc changes

* Work

* Fix missing package

* Remove lint for now

* Test differently

* Try no-sandbox

* Test

* Try that

* Try that

* Test

* Not headless?

* Test electron

* Try Windows

* lerna run test

* Update
2021-06-19 23:08:00 -04:00
Nathan Bierema
79e2d5298d
chore(extension): test in CI (#749)
* chore(extension): test in CI

* On Windows

* Use working-directory

* Increase timeout

* Try waiting 2 seconds

* Or 5

* Keep other parts of CI

* Add more to gitattributes

* Expand

* No yaml

* Long
2021-06-19 21:58:59 -04:00
Nathan Bierema
9d7aa4b62f
chore(extension): upgrade dependencies (#745) 2021-06-18 22:11:10 -04:00
Nathan Bierema
89c8d7759e
chore(*): upgrade dependencies (#744)
* Upgrade

* yarn.lock

* Combine

* Ignore

* Update snapshots

* All the cool kids are doing this
2021-06-18 21:47:26 -04:00
Nathan Bierema
55e2284a3d
chore(*): upgrade prettier (#743)
* chore(*): upgrade prettier

* Update snapshots
2021-06-17 23:56:36 -04:00
Nathan Bierema
b50af14542
chore(*): remove prettier plugin (#742)
* chore(*): remove prettier plugin

* Remove references
2021-06-17 23:26:53 -04:00
Nathan Bierema
0c77e4d457
chore(*): upgrade to TypeScript 4.3 (#741) 2021-06-17 23:17:29 -04:00
Nathan Bierema
a635c4bc6a
chore(*): upgrade to TypeScript 4.2 (#740)
* chore(*): upgrade to TypeScript 4.2

* Fix

* Ignore
2021-06-17 23:00:59 -04:00
Nathan Bierema
985b7b6a56
chore(*): upgrade to TypeScript 4.1 (#739)
* chore(*): upgrade to TypeScript 4.1

* Fix lint

* Fix tests
2021-06-17 21:41:41 -04:00
Nathan Bierema
698fdec21d
chore(*): upgrade to TypeScript 4.0 (#736)
* chore(*): upgrade to TypeScript 4.0

* Fix

* Fix

* trigger

* build

* More fixes

* Fix
2021-06-16 12:20:20 -04:00
Nathan Bierema
81916f6cb8
chore(*): use GitHub Actions for CI (#738) 2021-06-16 10:58:22 -04:00
Nathan Bierema
50653641a9
chore(extension): use Yarn 2 (#735) 2021-06-14 17:50:06 -04:00
Nathan Bierema
0d5d7d8357
chore(*): use Yarn 2 (#733)
* Migrate to Yarn 2

* Add peer deps

* Work

* prettify

* test

* this

* Clean up travis.yml

* Run prettier first
2021-06-13 17:14:23 -04:00
Nathan Bierema
2bc60b53eb chore(*): run prettier 2021-06-10 23:42:46 -04:00
Nathan Bierema
7ee5055037 Publish
- @redux-devtools/app@1.0.0-8
 - @redux-devtools/cli@1.0.0-9
 - @redux-devtools/inspector-monitor-test-tab@0.7.2
 - @redux-devtools/inspector-monitor-trace-tab@0.2.2
2021-06-10 23:28:21 -04:00
Nathan Bierema
30c6971d37
fix(app): fix dependency version of inspector (#732)
* fix(app): fix dependency version of inspector

* Update other package.jsons
2021-06-10 23:21:57 -04:00
Nathan Bierema
46f33a24b4 chore(*): run prettier 2021-06-10 22:50:56 -04:00
Nathan Bierema
2513c370a6 Publish
- devui@1.0.0-9
 - @redux-devtools/app@1.0.0-7
 - @redux-devtools/cli@1.0.0-8
 - @redux-devtools/inspector-monitor-test-tab@0.7.1
 - @redux-devtools/inspector-monitor-trace-tab@0.2.1
 - @redux-devtools/inspector-monitor@1.0.0
 - @redux-devtools/slider-monitor@2.0.0-8
 - slider-todomvc@0.1.2
2021-06-10 22:41:29 -04:00
Nathan Bierema
c4a8fa286c
fix(app): remove unimplemented reports tab (#731) 2021-06-10 22:27:58 -04:00
Nathan Bierema
0291f5c95e
fix(*): fix peer dependencies on inpsector monitor (#730) 2021-06-10 22:16:29 -04:00
Nathan Bierema
457a201232
fix(cli): fix starting Electron app (#729) 2021-06-10 22:00:00 -04:00
Nathan Bierema
dbc08ab1b4
fix(devui): clean up after fixing UI bugs (#728)
* fix(devui): clean up after fixing UI bugs

* Fix references to props

* Update snapshot
2021-06-10 21:48:13 -04:00
wang chenyu
ed25a72e99
fix(devui): Fix buggy UI behaviors with redux-devtools-app (#709)
* fix(devui): Always run updateTabs on UNSAFE_componentWillReceiveProps. Otherwise, the changes in property tabs might not be reflected on the UI.

* chore(*): Update devui version. Fix the container growing out of viewport when too many actions.

* fix(devui): Update snapshots

* Update Tabs.tsx

* Update package.json

* Update package.json

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-06-10 21:19:56 -04:00
Nathan Bierema
fcd73ab043
fix(inspector): move immutable back to dependencies (#725) 2021-06-07 09:10:45 -04:00
Nathan Bierema
07e409de6a
fix(*): fix Select types and usages (#724)
* stash

* more

* stash

* Revert port change

* Fix test

* Fix

* Update snapshot
2021-06-07 00:54:05 -04:00
Nathan Bierema
e7477833f0
fix(inspector): fix z-index of tabs (#723) 2021-06-06 20:19:03 -04:00
Nathan Bierema
a8d99ee424
fix(devui): fix Select widget in Form (#722) 2021-06-06 17:40:55 -04:00
Nathan Bierema
bb72311e1c
fix(devui): fix style of Select (#721)
* fix(devui): fix style of Select

* Upgrade @types/react-select

* Update snapshots
2021-06-06 16:42:40 -04:00
Nathan Bierema
bc5523f14f
chore(app): move common devDependencies to root (#720) 2021-06-06 16:02:32 -04:00
Nathan Bierema
950021cf7b
chore(cli): upgrade Electron (#719) 2021-06-06 15:18:49 -04:00
Nathan Bierema
a304a2c1a8
chore(extension): upgrade Electron for tests (#718)
* mode: 'detach'

* Upgrade selenium-webdriver

* Temporarily use electron-chromedriver

* electron@3

* electron@5

* electron@8

* electron@11

* electron@12

* electron@13

* stash

* This works

* Cleanup

* Prettify
2021-06-06 15:04:43 -04:00
Tim Dorr
86ed9473d2
Bump extension version 2021-06-01 11:26:04 -04:00
zhuhaow
f4b9c4b057
fix(extension): polyfill chrome.storage.sync for Electron (#711)
`chrome.storage.sync` is not supported on Electron (https://www.electronjs.org/docs/api/extensions#chromestorage).

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2021-05-17 11:03:56 -04:00
James Peters
9eb1644776
docs(*): update link to Devtools extension (#714) 2021-05-05 19:43:15 -04:00
Tim Dorr
d84e1f4d3a
Fix these compression scripts 2021-05-05 14:24:13 -04:00
Tim Dorr
5cd155f638
This permission is unused.
`tabs` is only needed if we're getting the url, title, or favIconUrl of a tab, which we are not.
2021-05-05 14:20:35 -04:00
Tim Dorr
74034ba4f0
Don't minimize extension code 2021-05-05 14:17:31 -04:00
Nathan Bierema
a094e3b42c chore(*): run prettier 2021-04-06 15:29:32 -04:00
Nathan Bierema
9cff7127de Publish
- @redux-devtools/cli@1.0.0-7
2021-04-06 15:26:51 -04:00
Nathan Bierema
95c8c5520d
fix(cli): include dist directory in publish (#707) 2021-04-06 15:24:34 -04:00
Nathan Bierema
511c974e63
docs(*): update docs for scoped packages (#704) 2021-03-06 13:56:00 -05:00
Nathan Bierema
984096ffde chore(*): run prettier 2021-03-06 10:51:16 -05:00
Nathan Bierema
c29a8d9391 Publish
- devui@1.0.0-8
 - react-dock@0.4.0
 - react-json-tree@0.15.0
 - @redux-devtools/app@1.0.0-6
 - @redux-devtools/chart-monitor@1.9.0
 - @redux-devtools/cli@1.0.0-6
 - @redux-devtools/dock-monitor@1.4.0
 - @redux-devtools/inspector-monitor-test-tab@0.7.0
 - @redux-devtools/inspector-monitor-trace-tab@0.2.0
 - @redux-devtools/inspector-monitor@0.15.0
 - @redux-devtools/log-monitor@2.3.0
 - @redux-devtools/slider-monitor@2.0.0-7
 - @redux-devtools/utils@1.0.0-6
 - @redux-devtools/core@3.9.0
 - react-json-tree-example@1.1.2
 - slider-todomvc@0.1.1
 - counter-redux@0.1.2
 - todomvc@0.2.1
2021-03-06 10:38:32 -05:00
Nathan Bierema
2aaa9c10a3
feat(*): update peer dependencies to allow react@^17 (#703) 2021-03-06 10:31:16 -05:00
Nathan Bierema
10f6229085 chore(*): run prettier 2021-03-06 10:17:55 -05:00
Nathan Bierema
5ef9b00cd4 Publish
- d3-state-visualizer@1.4.0
 - d3tooltip@1.3.0
 - devui@1.0.0-7
 - map2tree@1.5.0
 - react-json-tree@0.14.0
 - @redux-devtools/app@1.0.0-5
 - @redux-devtools/chart-monitor@1.8.0
 - @redux-devtools/cli@1.0.0-5
 - @redux-devtools/dock-monitor@1.3.0
 - redux-devtools-extension@2.13.9
 - @redux-devtools/inspector-monitor-test-tab@0.6.3
 - @redux-devtools/inspector-monitor-trace-tab@0.1.4
 - @redux-devtools/inspector-monitor@0.14.1
 - @redux-devtools/instrument@1.11.0
 - @redux-devtools/log-monitor@2.2.0
 - @redux-devtools/serialize@0.3.0
 - @redux-devtools/slider-monitor@2.0.0-6
 - @redux-devtools/utils@1.0.0-5
 - @redux-devtools/core@3.8.0
 - d3-state-visualizer-tree-example@0.1.0
 - react-json-tree-example@1.1.1
 - slider-todomvc@0.1.0
 - counter-redux@0.1.1
 - todomvc@0.2.0
2021-03-06 08:57:19 -05:00
Nathan Bierema
47323165a3
Add sponsor button 2020-12-29 16:12:34 -06:00
Nathan Bierema
0399d306c0
chore(*): move redux-devtools-app to scoped package (#693)
* stash

* more

* cli rename

* Remove reference

* Fix another reference

* Fix scripts

* Fix package name

* Fix tsconfig
2020-12-22 12:02:14 -05:00
Josh Hunt
85b4b0fb04
feat(react-json-tree): Add keyPath to getItemString (#694) 2020-12-22 11:15:29 -05:00
Nathan Bierema
a46b43209d
chore(*): make more packages scoped (#692)
* dock-monitor

* log-monitor

* serialize

* slider-monitor

* inspector-monitor

* chart-monitor

* test-tab

* trace-tab

* Fix
2020-12-21 15:46:28 -05:00
Nathan Bierema
cf357931e3
chore(redux-devtools): move to scoped package (#691)
* Start

* Finish
2020-12-21 09:08:08 -05:00
Nathan Bierema
02e95fc724
chore(instrument): move to scoped package (#690)
* instrument

* More instrument
2020-12-20 09:13:01 -05:00
Nathan Bierema
f1c2e17998
chore(extension): upgrade dependencies (#689)
* cross-env and enzyme

* babel/register

* eslint and file-loader

* raw-loader

* rimraf and style-loader

* lodash and react-icons

* react-redux and redux

* prettify
2020-12-19 17:36:05 -05:00
Nathan Bierema
ebb0818093
chore(extension): switch to Jest (#679)
* Start converting to jest

* Use toMatch

* Finish

* Remove commented out code

* Remove @babel/register
2020-12-19 15:01:09 -05:00
Chris Woodley
d76d6c678d
fix(react-json-tree): remove isRequired from data prop type (#685)
* remove is required check

* revert formatting changes
2020-12-03 16:36:49 -05:00
Ray Booysen
c980eadec7
feat(extension): tightens the permissions for which URLs the extension can access (#677) 2020-11-17 18:11:16 -05:00
Nathan Bierema
f2e01b1ca1
chore(extension): remove gulp (#676) 2020-11-16 20:20:57 -05:00
Nathan Bierema
0531c2432d
chore(extension): run tests outside of gulp (#675) 2020-11-16 19:57:35 -05:00
Nathan Bierema
a28cd62bff
chore(extension): copy using Webpack (#674) 2020-11-16 17:53:51 -05:00
Nathan Bierema
01ae238e14
chore(extension): remove bundle rename (#673) 2020-11-16 17:34:21 -05:00
Nathan Bierema
de1fd3add6
chore(extension): compile pug files using Webpack (#672)
* chore(extension): compile pug files using Webpack

* prettier
2020-11-16 16:43:49 -05:00
Nathan Bierema
104cc8e715
chore(extension): remove replace-webpack-code (#671) 2020-11-16 16:06:21 -05:00
Nathan Bierema
6a0ba78cf3
chore(extension): fix tests (#670) 2020-11-16 13:37:40 -05:00
Nathan Bierema
c69030b519
chore(extension): upgrade babel (#669) 2020-11-16 08:49:14 -05:00
Nathan Bierema
e39e43968b
fix(cli): resolve dependency issues (#666)
* Loosen peer range

* Add immutable dependency

* Install @types/react in cli
2020-11-12 11:48:06 -05:00
Nathan Bierema
9cf69bcc63
chore(extension): upgrade gulp (#662)
* Update upath

* Upgrade gulp

* Fix core-js

* stash

* prettier
2020-10-31 07:51:20 -05:00
Nathan Bierema
e1bd517519
Update upath (#661) 2020-10-30 22:50:30 -05:00
Etienne Dusseault
4d73c3f98c
feat(instrument): use latest symbol-observable (compatibility with frozen Symbol) (#660) 2020-10-30 22:05:40 -05:00
Nathan Bierema
6782f4ae41
chore(extension): add extension (#658)
* Move extension

* prettier
2020-10-26 08:18:23 -04:00
Nathan Bierema
7ae485b035
chore(extension): move npm package (#657)
* Start adding extension

* prettier
2020-10-26 02:43:20 -04:00
Nathan Bierema
c91471a41d
chore(cli): convert to TypeScript (#656)
* chore(cli): convert to TypeScript

* Fix knex usage

* Fix eslintrc

* Ignore dist
2020-10-26 01:57:34 -04:00
Nathan Bierema
ee52c29a8d
chore(core): convert to TypeScript (#655)
* Get started

* stash

* stash

* stash

* stash

* stash

* stash

* stash

* stash

* stash

* stash

* stash

* stash

* stash

* stash

* stash

* stash
2020-10-25 19:32:04 -04:00
Edoardo Lincetto
94c2c28cad
chore(redux-devtools-cli): upgrade graphql-server-express to apollo-server-express (#652)
* chore(devui): upgrade react-jsonschema-form to @rjsf/core

* chore(devui): remove @types/react-jsonschema-form

* chore(redux-devtools-cli): upgrade graphql-server-express to apollo-server-express

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2020-10-11 17:57:47 -04:00
Edoardo Lincetto
2db2d6024d
chore(devui): upgrade react-jsonschema-form to @rjsf/core (#648)
* chore(devui): upgrade react-jsonschema-form to @rjsf/core

* chore(devui): remove @types/react-jsonschema-form

Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2020-10-06 20:33:25 -04:00
Jess Telford
94f4605311
docs(react-json-tree): correct link to base16 site (#651) 2020-10-06 10:16:21 -04:00
Nathan Bierema
187699491f
chore(trace): rename trace-monitor to trace-tab (#650)
* chore(trace): rename trace-monitor to test-tab

* And that

* Fix name
2020-10-04 00:11:22 -04:00
Nathan Bierema
9fdd298dc3
chore(test): rename test-generator to test-tab (#649)
* chore(test): rename test-generator to test-tab

* And those

* Prettify
2020-10-04 00:01:46 -04:00
Nathan Bierema
03217001df
feat(trace): convert to TypeScript (#647)
* get started

* progress

* finish test

* Revert that file

* Move types to dev

* Add enzyme types

* Bump that version

* prettier
2020-09-29 09:37:13 -04:00
Nathan Bierema
d37e7d93e1
chore(test): use @types/packages internally (#646) 2020-09-28 21:06:02 -04:00
Nathan Bierema
761baba0aa
feat(redux-devtools-chart-monitor): convert to TypeScript (#642)
* chart-monitor

* and that
2020-09-21 21:23:38 -04:00
Nathan Bierema
300b60a8b1
feat(d3-state-visualizer): convert example to TypeScript (#641) 2020-09-20 19:29:13 -04:00
Nathan Bierema
0c78a5a9a7
feat(d3-state-visualizer): convert to TypeScript (#640)
* feat(d3-state-visualizer): convert to TypeScript

* dep

* Odd
2020-09-20 19:05:37 -04:00
Nathan Bierema
3b580dad4c
feat(d3tooltip): convert to TypeScript (#639)
* start d3tooltip

* finish d3tooltip
2020-09-20 14:21:59 -04:00
Nathan Bierema
3b027f400e
feat(map2tree): convert to TypeScript (#638)
* map2tree

* Fix build
2020-09-19 19:56:40 -04:00
Nathan Bierema
f9f15a41de
fix(redux-devtools-test-generator): fix devui's Select component (#637)
* Stash

* Fix stuff

* Unused

* Update snapshot
2020-09-19 19:24:18 -04:00
Nathan Bierema
d49535da03
feature(redux-devtools-test-generator): convert to TypeScript (#634)
* stash

* stash

* compiles

* Tests

* finish

* fix packages

* somemore

* update snapshot
2020-09-13 00:02:24 -04:00
Nathan Bierema
d1c222d847
refactor(redux-devtools-inspector-monitor): rename package (#633) 2020-09-10 12:37:19 -04:00
Nathan Bierema
ec75d3a4b6
feat(redux-devtools-slider-monitor): convert example to TypeScript (#632) 2020-09-10 11:45:02 -04:00
Nathan Bierema
89917320e5
feat(redux-devtools-slider-monitor): convert to TypeScript (#631)
* start

* fix?

* fix lint
2020-09-10 10:10:53 -04:00
Nathan Bierema
727d753081
feature(devui): convert to TypeScript (#629)
* stash

* and those

* stash

* stash

* stash

* stash

* tests

* fix errors

* revert

* stash

* fix lint

* prettier
2020-09-09 10:35:22 -04:00
1304 changed files with 68071 additions and 36388 deletions

13
.changeset/config.json Normal file
View File

@ -0,0 +1,13 @@
{
"$schema": "https://unpkg.com/@changesets/config@1.6.4/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": [],
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
"onlyUpdatePeerDependentsWhenOutOfRange": true
}
}

View File

@ -7,6 +7,5 @@ build
coverage
node_modules
__snapshots__
# Ignore until TS linting is configured in redux-devtools package
packages/redux-devtools/index.d.ts
storybook-static
.vscode/*

View File

@ -1,28 +0,0 @@
{
"root": true,
"parser": "babel-eslint",
"extends": ["eslint:recommended", "plugin:react/recommended", "prettier"],
"globals": {
"chrome": true
},
"env": {
"es6": true,
"browser": true,
"jest": true,
"node": true
},
"rules": {
"eol-last": ["warn"],
"max-len": ["warn", { "code": 120, "ignoreComments": true }],
"quotes": ["warn", "single", "avoid-escape"],
"jsx-quotes": ["warn", "prefer-double"],
"react/prop-types": 0,
"prettier/prettier": "error"
},
"plugins": ["prettier", "react", "babel"],
"settings": {
"react": {
"version": "detect"
}
}
}

9
.gitattributes vendored
View File

@ -1,8 +1 @@
*.js text eol=lf
*.jsx text eol=lf
*.ts text eol=lf
*.tsx text eol=lf
*.json text eol=lf
*.css text eol=lf
*.html text eol=lf
*.md text eol=lf
* text=auto eol=lf

2
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,2 @@
github: Methuselah96
open_collective: redux-devtools-extension

31
.github/workflows/CI.yml vendored Normal file
View File

@ -0,0 +1,31 @@
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: 'ubuntu-22.04'
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 'lts/*'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Check formatting
run: pnpm run format:check
- name: Build
run: pnpm run build:all
- name: Lint
run: pnpm run lint:all
- name: Test
uses: coactions/setup-xvfb@v1
with:
run: pnpm run test:all

58
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,58 @@
name: Release
on:
push:
branches:
- main
permissions: write-all
jobs:
release:
name: Release
runs-on: 'ubuntu-22.04'
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
fetch-depth: 0
- uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v1
with:
version: pnpm changeset version
publish: pnpm run release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Archive Chrome Extension
uses: actions/upload-artifact@v4
with:
name: chrome
path: extension/chrome/dist
- name: Archive Edge Extension
uses: actions/upload-artifact@v4
with:
name: edge
path: extension/edge/dist
- name: Archive Firefox Extension
uses: actions/upload-artifact@v4
with:
name: firefox
path: extension/firefox/dist

1
.gitignore vendored
View File

@ -9,3 +9,4 @@ coverage
.idea
.eslintcache
!packages/redux-devtools-slider-monitor/examples/todomvc/dist/index.html
.nx

View File

@ -7,3 +7,8 @@ build
coverage
node_modules
__snapshots__
dev
**/demo/public/**
storybook-static
.vscode/*
pnpm-lock.yaml

View File

@ -1,13 +0,0 @@
sudo: false
language: node_js
node_js:
- 'stable'
cache:
yarn: true
directories:
- 'node_modules'
script:
- yarn build:all
- yarn lint:all
- yarn prettier:check
- yarn test:all

View File

@ -1,4 +0,0 @@
# Change log
This project adheres to [Semantic Versioning](http://semver.org/).
See all notable changes on [Releases](https://github.com/gaearon/redux-devtools/releases) page.

21
LICENSE.md Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2015-present Dan Abramov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,25 +1,100 @@
[![Build Status](https://travis-ci.org/reduxjs/redux-devtools.svg?branch=master)](https://travis-ci.org/reduxjs/redux-devtools) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=round-square)](https://github.com/reduxjs/redux-devtools/pulls)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/reduxjs/redux-devtools/CI)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=round-square)](https://github.com/reduxjs/redux-devtools/pulls)
[![OpenCollective](https://opencollective.com/redux-devtools-extension/backers/badge.svg)](#backers)
[![OpenCollective](https://opencollective.com/redux-devtools-extension/sponsors/badge.svg)](#sponsors)
# Redux DevTools
Developer Tools to power-up [Redux](https://github.com/reactjs/redux) development workflow or any other architecture which handles the state change (see [integrations](https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/Integrations.md)).
Developer Tools to power-up [Redux](https://redux.js.org/) development workflow or any other architecture which handles the state change (see [integrations](https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/Integrations.md)).
It can be used as a browser extension (for [Chrome](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd), [Edge](https://microsoftedge.microsoft.com/addons/detail/redux-devtools/nnkgneoiohoecpdiaponcejilbhhikei) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/reduxdevtools/)), as [a standalone app](https://github.com/zalmoxisus/remotedev-app) or as [a React component](https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools) integrated in the client app.
It can be used as a browser extension (for [Chrome](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd), [Edge](https://microsoftedge.microsoft.com/addons/detail/redux-devtools/nnkgneoiohoecpdiaponcejilbhhikei) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/reduxdevtools/)), as [a standalone app](https://github.com/reduxjs/redux-devtools/tree/main/packages/redux-devtools-app) or as [a React component](https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools) integrated in the client app.
![image](https://user-images.githubusercontent.com/7957859/48663602-3aac4900-ea9b-11e8-921f-97059cbb599c.png)
> Note that this repository is work in progress for [the monorepo](https://github.com/reduxjs/redux-devtools/issues/412), which will merge all the packages. Please refer to [Redux DevTools Extension](https://github.com/zalmoxisus/redux-devtools-extension) and [Redux DevTools package](https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools).
## Documentation
### Documentation
- [Browser Extension Installation and Configuration](https://github.com/zalmoxisus/redux-devtools-extension#installation)
- [Browser Extension Installation and Configuration](https://github.com/reduxjs/redux-devtools/tree/main/extension#installation)
- [Manual Integration as a React Component](./docs/Walkthrough.md#manual-integration)
- [Extension Options (Arguments)](https://github.com/zalmoxisus/redux-devtools-extension/tree/master/docs/API/Arguments.md)
- [Extension Methods (Advanced API)](https://github.com/zalmoxisus/redux-devtools-extension/tree/master/docs/API/Methods.md)
- [Extension Options (Arguments)](https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/API/Arguments.md)
- [Extension Methods (Advanced API)](https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/API/Methods.md)
- [Remote monitoring](./docs/Integrations/Remote.md)
- [Troubleshooting](https://github.com/zalmoxisus/redux-devtools-extension/tree/master/docs/Troubleshooting.md)
- [Recipes](https://github.com/zalmoxisus/redux-devtools-extension/tree/master/docs/Recipes.md)
- [FAQ](https://github.com/zalmoxisus/redux-devtools-extension/tree/master/docs/FAQ.md)
- [Troubleshooting](https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/Troubleshooting.md)
- [Recipes](https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/Recipes.md)
- [FAQ](https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/FAQ.md)
## Development
This is a monorepo powered by [pnpm](https://pnpm.io/). [Install pnpm](https://pnpm.io/installation) and run `pnpm install` to get started. Each package's dependencies need to be built before the package itself can be built. You can either build all the packages (i.e., `pnpm run build:all`) or use pnpm workspace commands to build only the packages necessary for the packages you're working on (i.e., `pnpm --filter "remotedev-redux-devtools-extension" build`).
## Backers
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/redux-devtools-extension#backer)]
<a href="https://opencollective.com/redux-devtools-extension/backer/0/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/0/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/1/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/1/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/2/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/2/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/3/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/3/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/4/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/4/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/5/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/5/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/6/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/6/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/7/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/7/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/8/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/8/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/9/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/9/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/10/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/10/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/11/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/11/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/12/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/12/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/13/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/13/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/14/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/14/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/15/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/15/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/16/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/16/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/17/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/17/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/18/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/18/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/19/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/19/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/20/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/20/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/21/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/21/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/22/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/22/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/23/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/23/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/24/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/24/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/25/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/25/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/26/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/26/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/27/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/27/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/28/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/28/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/29/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/29/avatar.svg"></a>
## Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/redux-devtools-extension#sponsor)]
<a href="https://opencollective.com/redux-devtools-extension/sponsor/0/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/1/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/2/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/3/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/4/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/5/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/6/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/7/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/8/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/9/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/9/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/10/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/10/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/11/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/11/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/12/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/12/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/13/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/13/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/14/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/14/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/15/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/15/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/16/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/16/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/17/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/17/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/18/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/18/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/19/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/19/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/20/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/20/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/21/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/21/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/22/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/22/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/23/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/23/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/24/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/24/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/25/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/25/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/26/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/26/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/27/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/27/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/28/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/28/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/29/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/29/avatar.svg"></a>
### License

View File

@ -1,14 +0,0 @@
module.exports = {
presets: ['@babel/preset-env', '@babel/preset-react', '@babel/preset-flow'],
plugins: [
[
'@babel/plugin-transform-runtime',
{
regenerator: true,
},
],
['@babel/plugin-proposal-decorators', { legacy: true }],
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-export-default-from',
],
};

View File

@ -1,6 +1,6 @@
## Remote monitoring
By installing [`redux-devtools-cli`](https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools-cli#usage), starting the server server and launching the Redux DevTools app (`redux-devtools --open`), you can connect any remote application, even not javascript. There are some integrations for javascript like [remote-redux-devtools](https://github.com/zalmoxisus/remote-redux-devtools) and [remotedev](https://github.com/zalmoxisus/remotedev), but the plan is to deprecate them and support it out of the box from the extension without a websocket server. It is more useful for non-js apps.
By installing [`@redux-devtools/cli`](https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools-cli#usage), starting the server server and launching the Redux DevTools app (`redux-devtools --open`), you can connect any remote application, even not javascript. There are some integrations for javascript like [remote-redux-devtools](https://github.com/zalmoxisus/remote-redux-devtools) and [remotedev](https://github.com/zalmoxisus/remotedev), but the plan is to deprecate them and support it out of the box from the extension without a websocket server. It is more useful for non-js apps.
### WebSocket Clients

View File

@ -2,7 +2,7 @@
## Browser Extension
If you dont want to bother with installing Redux DevTools and integrating it into your project, consider using [Redux DevTools Extension](https://github.com/zalmoxisus/redux-devtools-extension) for Chrome and Firefox. It provides access to the most popular monitors, is easy to configure to filter actions, and doesnt require installing any packages.
If you dont want to bother with installing Redux DevTools and integrating it into your project, consider using [Redux DevTools Extension](https://github.com/reduxjs/redux-devtools/tree/master/extension) for Chrome and Firefox. It provides access to the most popular monitors, is easy to configure to filter actions, and doesnt require installing any packages.
## Manual Integration
@ -12,14 +12,14 @@ Its more steps, but you will have full control over monitors and their config
### Installation
```
npm install --save-dev redux-devtools
npm install --save-dev @redux-devtools/core
```
Youll also likely want to install some monitors:
```
npm install --save-dev redux-devtools-log-monitor
npm install --save-dev redux-devtools-dock-monitor
npm install --save-dev @redux-devtools/log-monitor
npm install --save-dev @redux-devtools/dock-monitor
```
### Usage
@ -34,11 +34,11 @@ Somewhere in your project, create a `DevTools` component by passing a `monitor`
import React from 'react';
// Exported from redux-devtools
import { createDevTools } from 'redux-devtools';
import { createDevTools } from '@redux-devtools/core';
// Monitors are separate packages, and you can make a custom one
import LogMonitor from 'redux-devtools-log-monitor';
import DockMonitor from 'redux-devtools-dock-monitor';
import LogMonitor from '@redux-devtools/log-monitor';
import DockMonitor from '@redux-devtools/dock-monitor';
// createDevTools takes a monitor and produces a DevTools component
const DevTools = createDevTools(
@ -52,7 +52,7 @@ const DevTools = createDevTools(
defaultIsVisible={true}
>
<LogMonitor theme="tomorrow" />
</DockMonitor>
</DockMonitor>,
);
export default DevTools;
@ -88,7 +88,7 @@ const enhancer = compose(
// Middleware you want to use in development:
applyMiddleware(d1, d2, d3),
// Required! Enable Redux DevTools with the monitors you chose
DevTools.instrument()
DevTools.instrument(),
);
export default function configureStore(initialState) {
@ -100,8 +100,8 @@ export default function configureStore(initialState) {
if (module.hot) {
module.hot.accept('../reducers', () =>
store.replaceReducer(
require('../reducers') /*.default if you use Babel 6+ */
)
require('../reducers') /*.default if you use Babel 6+ */,
),
);
}
@ -113,7 +113,7 @@ If youd like, you may add another store enhancer called `persistState()`. It
```js
// ...
import { persistState } from 'redux-devtools';
import { persistState } from '@redux-devtools/core';
const enhancer = compose(
// Middleware you want to use in development:
@ -121,7 +121,7 @@ const enhancer = compose(
// Required! Enable Redux DevTools with the monitors you chose
DevTools.instrument(),
// Optional. Lets you write ?debug_session=<key> in address bar to persist debug sessions
persistState(getDebugSessionKey())
persistState(getDebugSessionKey()),
);
function getDebugSessionKey() {
@ -190,7 +190,7 @@ export default function configureStore(initialState) {
```js
import { createStore, applyMiddleware, compose } from 'redux';
import { persistState } from 'redux-devtools';
import { persistState } from '@redux-devtools/core';
import rootReducer from '../reducers';
import DevTools from '../containers/DevTools';
@ -200,7 +200,7 @@ const enhancer = compose(
// Required! Enable Redux DevTools with the monitors you chose
DevTools.instrument(),
// Optional. Lets you write ?debug_session=<key> in address bar to persist debug sessions
persistState(getDebugSessionKey())
persistState(getDebugSessionKey()),
);
function getDebugSessionKey() {
@ -219,8 +219,8 @@ export default function configureStore(initialState) {
if (module.hot) {
module.hot.accept('../reducers', () =>
store.replaceReducer(
require('../reducers') /*.default if you use Babel 6+ */
)
require('../reducers') /*.default if you use Babel 6+ */,
),
);
}
@ -333,7 +333,7 @@ render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
document.getElementById('root'),
);
if (process.env.NODE_ENV !== 'production') {
@ -353,7 +353,7 @@ export default function showDevTools(store) {
const popup = window.open(
null,
'Redux DevTools',
'menubar=no,location=no,resizable=yes,scrollbars=no,status=no'
'menubar=no,location=no,resizable=yes,scrollbars=no,status=no',
);
// Reload in case it already exists
popup.location.reload();
@ -362,7 +362,7 @@ export default function showDevTools(store) {
popup.document.write('<div id="react-devtools-root"></div>');
render(
<DevTools store={store} />,
popup.document.getElementById('react-devtools-root')
popup.document.getElementById('react-devtools-root'),
);
}, 10);
}

View File

@ -0,0 +1,4 @@
import eslint from '@eslint/js';
import eslintConfigPrettier from 'eslint-config-prettier';
export default [eslint.configs.recommended, eslintConfigPrettier];

View File

@ -0,0 +1,43 @@
import eslint from '@eslint/js';
import react from 'eslint-plugin-react';
import { fixupPluginRules } from '@eslint/compat';
import eslintPluginReactHooks from 'eslint-plugin-react-hooks';
import jest from 'eslint-plugin-jest';
import eslintConfigPrettier from 'eslint-config-prettier';
export default [
{
files: ['test/**/*.js', 'test/**/*.jsx'],
...eslint.configs.recommended,
},
{
files: ['test/**/*.js', 'test/**/*.jsx'],
...react.configs.flat.recommended,
},
{
files: ['test/**/*.js', 'test/**/*.jsx'],
settings: {
react: {
version: 'detect',
},
},
},
{
files: ['test/**/*.js', 'test/**/*.jsx'],
plugins: {
'react-hooks': fixupPluginRules(eslintPluginReactHooks),
},
},
{
files: ['test/**/*.js', 'test/**/*.jsx'],
...jest.configs['flat/recommended'],
},
{
files: ['test/**/*.js', 'test/**/*.jsx'],
...jest.configs['jest/style'],
},
{
files: ['test/**/*.js', 'test/**/*.jsx'],
...eslintConfigPrettier,
},
];

55
eslint.ts.config.base.mjs Normal file
View File

@ -0,0 +1,55 @@
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,
},
},
},
{
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',
},
},
];

View File

@ -0,0 +1,64 @@
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,
},
},
},
{
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',
},
},
];

View File

@ -0,0 +1,89 @@
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 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,
},
},
},
{
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,
},
},
],
'@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',
},
},
];

View File

@ -0,0 +1,85 @@
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 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,
},
},
},
{
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'],
...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',
},
},
];

View File

@ -1,18 +0,0 @@
{
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:prettier/recommended",
"prettier/@typescript-eslint"
],
"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"
}
}

View File

@ -1,19 +0,0 @@
{
"plugins": ["jest"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:jest/recommended",
"plugin:jest/style",
"plugin:prettier/recommended",
"prettier/@typescript-eslint"
],
"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"
}
}

View File

@ -1,30 +0,0 @@
{
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
}
},
"plugins": ["@typescript-eslint", "react"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:react/recommended",
"plugin:prettier/recommended",
"prettier/@typescript-eslint",
"prettier/react"
],
"settings": {
"react": {
"version": "detect"
}
},
"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"
}
}

View File

@ -1,21 +0,0 @@
{
"plugins": ["jest"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:react/recommended",
"plugin:jest/recommended",
"plugin:jest/style",
"plugin:prettier/recommended",
"prettier/@typescript-eslint",
"prettier/react"
],
"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"
}
}

2
extension/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
node_modules
dist

238
extension/CHANGELOG.md Normal file
View File

@ -0,0 +1,238 @@
# remotedev-redux-devtools-extension
## 3.2.10
### Patch Changes
- @redux-devtools/app@6.2.2
## 3.2.9
### Patch Changes
- Updated dependencies [91f21b2]
- @redux-devtools/core@4.1.1
- @redux-devtools/slider-monitor@5.1.1
- @redux-devtools/utils@3.1.1
- @redux-devtools/app@6.2.1
## 3.2.8
### Patch Changes
- Updated dependencies [6830118]
- react-json-tree@0.20.0
- @redux-devtools/app@6.2.0
- @redux-devtools/slider-monitor@6.0.0
- @redux-devtools/ui@1.4.0
- @redux-devtools/core@4.1.0
- @redux-devtools/utils@4.0.0
## 3.2.7
### Patch Changes
- b25bf13: Send state from background when monitor connects
## 3.2.6
### Patch Changes
- 50d7682: Fix DevTools from losing connection
## 3.2.5
### Patch Changes
- eb3ac09: Add logging to background service worker
## 3.2.4
### Patch Changes
- f1d6158: Fix mocking Chrome API for Electron
## 3.2.3
### Patch Changes
- fd9f950: Fix monitoring on opening panel
- e49708d: Fix manifest.json for Edge
## 3.2.1
### Patch Changes
- abd03a7: Fix: only send data to extension if DevTools are open
## 3.2.0
### Minor Changes
- 83b2c19: Upgrade to Manifest V3
## 3.1.11
### Patch Changes
- 73688e1: Fix releasing Firefox extension
## 3.1.10
### Patch Changes
- 2163bc3: Split large messages sent from background page to devpanel
## 3.1.9
### Patch Changes
- Updated dependencies [bbb1a40]
- react-json-tree@0.19.0
- @redux-devtools/slider-monitor@5.0.1
- @redux-devtools/ui@1.3.2
## 3.1.8
### Patch Changes
- 191d419: Convert d3 packages to ESM
- Updated dependencies [191d419]
- @redux-devtools/app@6.0.1
## 3.1.7
### Patch Changes
- Updated dependencies [5cfe3e5]
- Updated dependencies [decc035]
- @redux-devtools/app@6.0.0
- @redux-devtools/slider-monitor@5.0.0
- @redux-devtools/core@4.0.0
- @redux-devtools/utils@3.0.0
## 3.1.6
### Patch Changes
- Updated dependencies [158ba2c]
- @redux-devtools/app@5.0.0
## 3.1.5
### Patch Changes
- 65205f90: Replace Action<unknown> with Action<string>
- Updated dependencies [65205f90]
- @redux-devtools/app@4.0.1
- @redux-devtools/core@3.13.2
## 3.1.4
### Patch Changes
- Updated dependencies [e57bcb39]
- @redux-devtools/app@4.0.0
## 3.1.3
### Patch Changes
- bca76009: Fix missing CSS for code editor
## 3.1.2
### Patch Changes
- 64ed81b0: Fix extension in Firefox and Chrome Incognito
## 3.1.1
### Patch Changes
- d18525b5: Increase min-width of popup
- Updated dependencies [57751ff9]
- @redux-devtools/app@3.0.0
## 3.1.0
### Minor Changes
- d54adb76: Option to sort State Tree keys alphabetically
Option to disable collapsing of object keys
### Patch Changes
- @redux-devtools/app@2.2.2
## 3.0.19
### Patch Changes
- 450cde6e: Fix responsive layout
## 3.0.18
### Patch Changes
- Updated dependencies [81926f32]
- react-json-tree@0.18.0
- @redux-devtools/app@2.2.1
## 3.0.17
### Patch Changes
- 1aa6c4f7: Fix remounting root for devpanel
## 3.0.16
### Patch Changes
- 20ebf725: Remove source map from page wrap bundle
## 3.0.14
### Patch Changes
- 24f60a7a: bump min popup window width to 760px #1126 #1129
## 3.0.13
### Patch Changes
- Updated dependencies [8a7eae4]
- react-json-tree@0.17.0
- @redux-devtools/app@2.2.0
- @redux-devtools/slider-monitor@4.0.0
- @redux-devtools/ui@1.3.0
- @redux-devtools/core@3.13.0
- @redux-devtools/utils@2.0.0
## 3.0.12
### Patch Changes
- Updated dependencies [4891bf6]
- @redux-devtools/core@3.12.0
- @redux-devtools/slider-monitor@3.1.2
- @redux-devtools/utils@1.2.1
- @redux-devtools/app@2.1.4
## 3.0.11
### Patch Changes
- ab3c0e2: Avoid persisting the selected action index between sessions
- Updated dependencies [ab3c0e2]
- Updated dependencies [4c9a890]
- @redux-devtools/app@2.1.3
- react-json-tree@0.16.2
## 3.0.10
### Patch Changes
- 55cc37e: Fix filter to show state-controlled search value
- Updated dependencies [55cc37e]
- @redux-devtools/app@2.1.2

View File

@ -0,0 +1,63 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

21
extension/LICENSE Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2015-present Mihail Diordiev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

325
extension/README.md Normal file
View File

@ -0,0 +1,325 @@
# Redux DevTools Extension
[![Join the chat at https://gitter.im/zalmoxisus/redux-devtools-extension](https://badges.gitter.im/zalmoxisus/redux-devtools-extension.svg)](https://gitter.im/zalmoxisus/redux-devtools-extension?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=round-square)](http://makeapullrequest.com)
[![OpenCollective](https://opencollective.com/redux-devtools-extension/backers/badge.svg)](#backers)
[![OpenCollective](https://opencollective.com/redux-devtools-extension/sponsors/badge.svg)](#sponsors)
![Demo](https://cloud.githubusercontent.com/assets/7957859/18002950/aacb82fc-6b93-11e6-9ae9-609862c18302.png)
## Installation
### 1. For Chrome
- from [Chrome Web Store](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd);
- or download `extension.zip` from [last releases](https://github.com/zalmoxisus/redux-devtools-extension/releases), unzip, open `chrome://extensions` url and turn on developer mode from top left and then click; on `Load Unpacked` and select the extracted folder for use
- or build it with `npm i && npm run build:extension` and [load the extension's folder](https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world#load-unpacked) `./build/extension`;
- or run it in dev mode with `npm i && npm start` and [load the extension's folder](https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world#load-unpacked) `./dev`.
### 2. For Firefox
- from [Mozilla Add-ons](https://addons.mozilla.org/en-US/firefox/addon/reduxdevtools/);
- or build it with `npm i && npm run build:firefox` and [load the extension's folder](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox) `./build/firefox` (just select a file from inside the dir).
### 3. For Electron
- just specify `REDUX_DEVTOOLS` in [`electron-devtools-installer`](https://github.com/GPMDP/electron-devtools-installer).
### 4. For other browsers and non-browser environment
- use [`remote-redux-devtools`](https://github.com/zalmoxisus/remote-redux-devtools).
## Usage
> Note that starting from v2.7, `window.devToolsExtension` was renamed to `window.__REDUX_DEVTOOLS_EXTENSION__` / `window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__`.
## 1. With Redux
### 1.1 Basic store
For a basic [Redux store](https://redux.js.org/api/createstore#createstorereducer-preloadedstate-enhancer) simply add:
```diff
const store = createStore(
reducer, /* preloadedState, */
+ window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);
```
Note that [`preloadedState`](https://redux.js.org/api/createstore#createstorereducer-preloadedstate-enhancer) argument is optional in Redux's [`createStore`](https://redux.js.org/api/createstore#createstorereducer-preloadedstate-enhancer).
> For universal ("isomorphic") apps, prefix it with `typeof window !== 'undefined' &&`.
```js
const composeEnhancers =
(typeof window !== 'undefined' &&
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) ||
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).
```js
const composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
```
In case ESLint is configured to not allow using the underscore dangle, wrap it like so:
```diff
+ /* eslint-disable no-underscore-dangle */
const store = createStore(
reducer, /* preloadedState, */
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);
+ /* eslint-enable */
```
> **Note**: Passing enhancer as last argument requires **redux@>=3.1.0**. For older versions apply it like [here](https://github.com/zalmoxisus/redux-devtools-extension/blob/v0.4.2/examples/todomvc/store/configureStore.js) or [here](https://github.com/zalmoxisus/redux-devtools-extension/blob/v0.4.2/examples/counter/store/configureStore.js#L7-L12). Don't mix the old Redux API with the new one.
> You don't need to npm install [`redux-devtools`](https://github.com/gaearon/redux-devtools) when using the extension (that's a different lib).
### 1.2 Advanced store setup
If you setup your store with [middleware and enhancers](http://redux.js.org/docs/api/applyMiddleware.html), change:
```diff
import { createStore, applyMiddleware, compose } from 'redux';
+ const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
+ const store = createStore(reducer, /* preloadedState, */ composeEnhancers(
- const store = createStore(reducer, /* preloadedState, */ compose(
applyMiddleware(...middleware)
));
```
> Note that when the extension is not installed, were using Redux compose here.
To specify [extensions options](https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Arguments.md), use it like so:
```js
const composeEnhancers =
typeof window === 'object' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
// Specify extensions options like name, actionsDenylist, actionsCreators, serialize...
})
: compose;
const enhancer = composeEnhancers(
applyMiddleware(...middleware),
// other store enhancers if any
);
const store = createStore(reducer, enhancer);
```
> [See the post for more details](https://medium.com/@zalmoxis/improve-your-development-workflow-with-redux-devtools-extension-f0379227ff83).
### 1.3 Use `@redux-devtools/extension` package from npm
To make things easier, there's an npm package to install:
```
npm install --save @redux-devtools/extension
```
and to use like so:
```js
import { createStore, applyMiddleware } from 'redux';
import { composeWithDevTools } from '@redux-devtools/extension';
const store = createStore(
reducer,
composeWithDevTools(
applyMiddleware(...middleware),
// other store enhancers if any
),
);
```
To specify [extensions options](https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Arguments.md#windowdevtoolsextensionconfig):
```js
import { createStore, applyMiddleware } from 'redux';
import { composeWithDevTools } from '@redux-devtools/extension';
const composeEnhancers = composeWithDevTools({
// Specify name here, actionsDenylist, actionsCreators and other options if needed
});
const store = createStore(
reducer,
/* preloadedState, */ composeEnhancers(
applyMiddleware(...middleware),
// other store enhancers if any
),
);
```
> There are just a [few lines of code](https://github.com/zalmoxisus/redux-devtools-extension/blob/master/npm-package/index.js) added to your bundle.
In case you don't include other enhancers and middlewares, just use `devToolsEnhancer`:
```js
import { createStore } from 'redux';
import { devToolsEnhancer } from '@redux-devtools/extension';
const store = createStore(
reducer,
/* preloadedState, */ devToolsEnhancer(),
// Specify name here, actionsDenylist, actionsCreators and other options if needed
);
```
### 1.4 Using in production
It's useful to include the extension in production as well. Usually you [can use it for development](https://medium.com/@zalmoxis/using-redux-devtools-in-production-4c5b56c5600f).
If you want to restrict it there, use `composeWithDevToolsLogOnlyInProduction` or `devToolsEnhancerLogOnlyInProduction`:
```js
import { createStore } from 'redux';
import { devToolsEnhancerLogOnlyInProduction } from '@redux-devtools/extension';
const store = createStore(
reducer,
/* preloadedState, */ devToolsEnhancerLogOnlyInProduction(),
// options like actionSanitizer, stateSanitizer
);
```
or with middlewares and enhancers:
```js
import { createStore, applyMiddleware } from 'redux';
import { composeWithDevToolsLogOnlyInProduction } from '@redux-devtools/extension';
const composeEnhancers = composeWithDevToolsLogOnlyInProduction({
// options like actionSanitizer, stateSanitizer
});
const store = createStore(
reducer,
/* preloadedState, */ composeEnhancers(
applyMiddleware(...middleware),
// other store enhancers if any
),
);
```
> You'll have to add `'process.env.NODE_ENV': JSON.stringify('production')` in your Webpack config for the production bundle ([to envify](https://github.com/gaearon/redux-devtools/blob/master/docs/Walkthrough.md#exclude-devtools-from-production-builds)). If you use `create-react-app`, [it already does it for you.](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/config/webpack.config.prod.js#L253-L257)
If you're already checking `process.env.NODE_ENV` when creating the store, import `composeWithDevToolsLogOnly` or `devToolsEnhancerLogOnly` for production environment.
If you dont want to allow the extension in production, just use `composeWithDevToolsDevelopmentOnly` or `devToolsEnhancerDevelopmentOnly`.
> See [the article](https://medium.com/@zalmoxis/using-redux-devtools-in-production-4c5b56c5600f) for more details.
### 1.5 For React Native, hybrid, desktop and server side Redux apps
For React Native we can use [`react-native-debugger`](https://github.com/jhen0409/react-native-debugger), which already included [the same API](https://github.com/jhen0409/react-native-debugger/blob/master/docs/redux-devtools-integration.md) with Redux DevTools Extension.
For most platforms, include [`Remote Redux DevTools`](https://github.com/zalmoxisus/remote-redux-devtools)'s store enhancer, and from the extension's context menu choose 'Open Remote DevTools' for remote monitoring.
## 2. Without Redux
See [integrations](docs/Integrations.md) and [the blog post](https://medium.com/@zalmoxis/redux-devtools-without-redux-or-how-to-have-a-predictable-state-with-any-architecture-61c5f5a7716f) for more details on how to use the extension with any architecture.
## Docs
- [Options (arguments)](docs/API/Arguments.md)
- [Methods (advanced API)](docs/API/Methods.md)
- [FAQ](docs/FAQ.md)
- Features
- [Trace actions calls](/docs/Features/Trace.md)
- [Troubleshooting](docs/Troubleshooting.md)
- [Articles](docs/Articles.md)
- [Videos](docs/Videos.md)
- [Feedback](docs/Feedback.md)
## Demo
Live demos to use the extension with:
- [Counter](http://zalmoxisus.github.io/examples/counter/)
- [TodoMVC](http://zalmoxisus.github.io/examples/todomvc/)
- [Redux Form](http://redux-form.com/6.5.0/examples/simple/)
- [React Tetris](https://chvin.github.io/react-tetris/?lan=en)
- [Book Collection (Angular ngrx store)](https://ngrx.github.io/platform/example-app/)
Also see [`./examples` folder](https://github.com/zalmoxisus/redux-devtools-extension/tree/master/examples).
## Backers
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/redux-devtools-extension#backer)]
<a href="https://opencollective.com/redux-devtools-extension/backer/0/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/0/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/1/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/1/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/2/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/2/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/3/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/3/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/4/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/4/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/5/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/5/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/6/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/6/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/7/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/7/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/8/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/8/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/9/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/9/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/10/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/10/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/11/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/11/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/12/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/12/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/13/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/13/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/14/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/14/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/15/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/15/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/16/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/16/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/17/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/17/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/18/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/18/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/19/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/19/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/20/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/20/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/21/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/21/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/22/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/22/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/23/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/23/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/24/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/24/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/25/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/25/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/26/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/26/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/27/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/27/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/28/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/28/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/backer/29/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/backer/29/avatar.svg"></a>
## Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/redux-devtools-extension#sponsor)]
<a href="https://opencollective.com/redux-devtools-extension/sponsor/0/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/1/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/2/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/3/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/4/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/5/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/6/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/7/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/8/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/9/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/9/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/10/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/10/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/11/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/11/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/12/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/12/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/13/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/13/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/14/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/14/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/15/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/15/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/16/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/16/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/17/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/17/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/18/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/18/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/19/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/19/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/20/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/20/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/21/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/21/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/22/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/22/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/23/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/23/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/24/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/24/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/25/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/25/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/26/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/26/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/27/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/27/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/28/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/28/avatar.svg"></a>
<a href="https://opencollective.com/redux-devtools-extension/sponsor/29/website" target="_blank"><img src="https://opencollective.com/redux-devtools-extension/sponsor/29/avatar.svg"></a>
## License
MIT
## Created By
If you like this, follow [@mdiordiev](https://twitter.com/mdiordiev) on twitter.

View File

@ -0,0 +1,7 @@
{
"presets": [
["@babel/preset-env", { "targets": "defaults" }],
"@babel/preset-react",
"@babel/preset-typescript"
]
}

55
extension/build.mjs Normal file
View File

@ -0,0 +1,55 @@
import * as fs from 'node:fs';
import * as esbuild from 'esbuild';
import pug from 'pug';
const args = process.argv.slice(2);
const prod = !args.includes('--dev');
await esbuild.build({
bundle: true,
logLevel: 'info',
outdir: 'dist',
minify: prod,
sourcemap: !prod,
define: {
'process.env.NODE_ENV': prod ? '"production"' : '"development"',
'process.env.BABEL_ENV': prod ? '"production"' : '"development"',
},
entryPoints: [
{ out: 'background.bundle', in: 'src/background/index.ts' },
{ out: 'options.bundle', in: 'src/options/index.tsx' },
{ out: 'remote.bundle', in: 'src/remote/index.tsx' },
{ out: 'devpanel.bundle', in: 'src/devpanel/index.tsx' },
{ out: 'devtools.bundle', in: 'src/devtools/index.ts' },
{ out: 'content.bundle', in: 'src/contentScript/index.ts' },
{ out: 'page.bundle', in: 'src/pageScript/index.ts' },
],
loader: {
'.woff2': 'file',
},
});
console.log();
console.log('Creating HTML files...');
const htmlFiles = ['devpanel', 'devtools', 'options', 'remote'];
for (const htmlFile of htmlFiles) {
fs.writeFileSync(
`dist/${htmlFile}.html`,
pug.renderFile(`src/${htmlFile}/${htmlFile}.pug`),
);
}
console.log('Copying manifest.json...');
fs.copyFileSync('chrome/manifest.json', 'dist/manifest.json');
console.log('Copying assets...');
fs.cpSync('src/assets', 'dist', { recursive: true });
console.log('Copying dist for each browser...');
fs.cpSync('dist', 'chrome/dist', { recursive: true });
fs.copyFileSync('chrome/manifest.json', 'chrome/dist/manifest.json');
fs.cpSync('dist', 'edge/dist', { recursive: true });
fs.copyFileSync('edge/manifest.json', 'edge/dist/manifest.json');
fs.cpSync('dist', 'firefox/dist', { recursive: true });
fs.copyFileSync('firefox/manifest.json', 'firefox/dist/manifest.json');

View File

@ -0,0 +1,64 @@
{
"version": "3.2.10",
"name": "Redux DevTools",
"description": "Redux DevTools for debugging application's state changes.",
"homepage_url": "https://github.com/reduxjs/redux-devtools",
"manifest_version": 3,
"action": {
"default_icon": "img/logo/gray.png",
"default_title": "Redux DevTools",
"default_popup": "devpanel.html#popup"
},
"commands": {
"devtools-window": {
"description": "DevTools window"
},
"devtools-remote": {
"description": "Remote DevTools"
},
"_execute_action": {
"suggested_key": {
"default": "Ctrl+Shift+E"
}
}
},
"icons": {
"16": "img/logo/16x16.png",
"48": "img/logo/48x48.png",
"128": "img/logo/128x128.png"
},
"options_ui": {
"page": "options.html"
},
"background": {
"service_worker": "background.bundle.js"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"exclude_globs": ["https://www.google*"],
"js": ["content.bundle.js"],
"run_at": "document_start",
"all_frames": true
},
{
"matches": ["<all_urls>"],
"exclude_globs": ["https://www.google*"],
"js": ["page.bundle.js"],
"run_at": "document_start",
"all_frames": true,
"world": "MAIN"
}
],
"devtools_page": "devtools.html",
"externally_connectable": {
"ids": ["*"]
},
"permissions": ["notifications", "contextMenus", "storage"],
"host_permissions": ["file:///*", "http://*/*", "https://*/*"],
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self'; style-src * 'unsafe-inline'; img-src 'self' data:;"
},
"update_url": "https://clients2.google.com/service/update2/crx",
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsdJEPwY92xUACA9CcDBDBmbdbp8Ap3cKQ0DJTUuVQvqb4FQAv8RtKY3iUjGvdwuAcSJQIZwHXcP2aNDH3TiFik/NhRK2GRW8X3OZyTdkuDueABGP2KEX8q1WQDgjX/rPIinGYztUrvoICw/UerMPwNW62jwGoVU3YhAGf+15CgX2Y6a4tppnf/+1mPedKPidh0RsM+aJY98rX+r1SPAHPcGzMjocLkqcT75DZBXer8VQN14tOOzRCd6T6oy7qm7eWru8lJwcY66qMQvhk0osqEod2G3nA7aTWpmqPFS66VEiecP9PgZlp8gQdgZ3dFhA62exydlD55JuRhiMIR63yQIDAQAB"
}

View File

@ -0,0 +1,324 @@
# Options
Use with
- `window.__REDUX_DEVTOOLS_EXTENSION__([options])`
- `window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__([options])()`
- `window.__REDUX_DEVTOOLS_EXTENSION__.connect([options])`
- `@redux-devtools/extension` npm package:
```js
import { composeWithDevTools } from '@redux-devtools/extension';
const composeEnhancers = composeWithDevTools(options);
const store = createStore(
reducer,
/* preloadedState, */ composeEnhancers(
applyMiddleware(...middleware),
// other store enhancers if any
),
);
```
The `options` object is optional, and can include any of the following.
### `name`
_string_ - the instance name to be shown on the monitor page. Default value is `document.title`. If not specified and there's no document title, it will consist of `tabId` and `instanceId`.
### `actionCreators`
_array_ or _object_ - action creators functions to be available in the Dispatcher. See [the example](https://github.com/zalmoxisus/redux-devtools-extension/commit/477e69d8649dfcdc9bf84dd45605dab7d9775c03).
### `latency`
_number (in ms)_ - if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once. It is the joint between performance and speed. When set to `0`, all actions will be sent instantly. Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value). Default is `500 ms`.
### `maxAge`
_number_ (>1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance. Default is `50`.
### `trace`
_boolean_ or _function_ - if set to `true`, will include stack trace for every dispatched action, so you can see it in trace tab jumping directly to that part of code ([more details](../Features/Trace.md)). You can use a function (with action object as argument) which should return `new Error().stack` string, getting the stack outside of reducers. Default to `false`.
### `traceLimit`
_number_ - maximum stack trace frames to be stored (in case `trace` option was provided as `true`). By default it's `10`. Note that, because extension's calls are excluded, the resulted frames could be 1 less. If `trace` option is a function, `traceLimit` will have no effect, as it's supposed to be handled there.
### `serialize`
_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.
- object, which contains `date`, `regex`, `undefined`, `nan`, `infinity`, `error`, `symbol`, `map`, `set` and `function` keys. For each of them you can indicate if to include (by setting as `true`). For `function` key you can also specify a custom function which handles serialization. See [`jsan`](https://github.com/kolodny/jsan) for more details. Example:
```js
const store = Redux.createStore(
reducer,
window.__REDUX_DEVTOOLS_EXTENSION__ &&
window.__REDUX_DEVTOOLS_EXTENSION__({
serialize: {
options: {
undefined: true,
function: function (fn) {
return fn.toString();
},
},
},
}),
);
```
- **replacer** `function(key, value)` - [JSON `replacer` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.
Example of usage with [mori data structures](https://github.com/swannodette/mori):
```js
const store = Redux.createStore(
reducer,
window.__REDUX_DEVTOOLS_EXTENSION__ &&
window.__REDUX_DEVTOOLS_EXTENSION__({
serialize: {
replacer: (key, value) =>
value && mori.isMap(value) ? mori.toJs(value) : value,
},
}),
);
```
In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4) key. So you can deserialize it back while importing or persisting data. Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):
```js
const store = Redux.createStore(
reducer,
window.__REDUX_DEVTOOLS_EXTENSION__ &&
window.__REDUX_DEVTOOLS_EXTENSION__({
serialize: {
replacer: (key, value) => {
if (Immutable.List.isList(value)) {
// use your custom data type checker
return {
data: value.toArray(), // ImmutableJS custom method to get JS data as array
__serializedType__: 'ImmutableList', // mark you custom data type to show and retrieve back
};
}
},
},
}),
);
```
- **reviver** `function(key, value)` - [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter) used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41) as an example on how to serialize special data types and get them back:
```js
const store = Redux.createStore(
reducer,
window.__REDUX_DEVTOOLS_EXTENSION__ &&
window.__REDUX_DEVTOOLS_EXTENSION__({
serialize: {
reviver: (key, value) => {
if (
typeof value === 'object' &&
value !== null &&
'__serializedType__' in value
) {
switch (value.__serializedType__) {
case 'ImmutableList':
return Immutable.List(value.data);
}
}
},
},
}),
);
```
- **immutable** `object` - automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize). Just pass the Immutable library like so:
```js
import Immutable from 'immutable'; // https://facebook.github.io/immutable-js/
// ...
// Like above, only showing off compose this time. Reminder you might not want this in prod.
const composeEnhancers =
typeof window === 'object' &&
typeof window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ !== 'undefined'
? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
serialize: {
immutable: Immutable,
},
})
: compose;
```
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 in addition the references to your classes in `refs`.
- **refs** `array` - ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting... Example of usage:
```js
import Immutable from 'immutable';
// ...
const ABRecord = Immutable.Record({ a: 1, b: 2 });
const myRecord = new ABRecord({ b: 3 }); // used in the reducers
const store = createStore(
rootReducer,
window.__REDUX_DEVTOOLS_EXTENSION__ &&
window.__REDUX_DEVTOOLS_EXTENSION__({
serialize: {
immutable: Immutable,
refs: [ABRecord],
},
}),
);
```
Also you can specify alternative values right in the state object (in the initial state of the reducer) by adding `toJSON` function:
In the example bellow it will always send `{ component: '[React]' }`, regardless of the state's `component` value (useful when you don't want to send lots of unnecessary data):
```js
function component(
state = { component: null, toJSON: () => ({ component: '[React]' }) },
action,
) {
switch (action.type) {
case 'ADD_COMPONENT':
return { component: action.component };
default:
return state;
}
}
```
You could also alter the value. For example when state is `{ count: 1 }`, we'll send `{ counter: 10 }` (notice we don't have an arrow function this time to use the object's `this`):
```js
function counter(
state = {
count: 0,
toJSON: function () {
return { conter: this.count * 10 };
},
},
action,
) {
switch (action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
default:
return state;
}
}
```
### `actionSanitizer` / `stateSanitizer`
- **actionSanitizer** (_function_) - function which takes `action` object and id number as arguments, and should return `action` object back. See the example bellow.
- **stateSanitizer** (_function_) - function which takes `state` object and index as arguments, and should return `state` object back.
Example of usage:
```js
const actionSanitizer = (action) =>
action.type === 'FILE_DOWNLOAD_SUCCESS' && action.data
? { ...action, data: '<<LONG_BLOB>>' }
: action;
const store = createStore(
rootReducer,
window.__REDUX_DEVTOOLS_EXTENSION__ &&
window.__REDUX_DEVTOOLS_EXTENSION__({
actionSanitizer,
stateSanitizer: (state) =>
state.data ? { ...state, data: '<<LONG_BLOB>>' } : state,
}),
);
```
### `actionsDenylist` / `actionsAllowlist`
_string or array of strings as regex_ - actions types to be hidden / shown in the monitors (while passed to the reducers). If `actionsAllowlist` specified, `actionsDenylist` is ignored.
Example:
```js
createStore(
reducer,
remotedev({
sendTo: 'http://localhost:8000',
actionsDenylist: 'SOME_ACTION',
// or actionsDenylist: ['SOME_ACTION', 'SOME_OTHER_ACTION']
// or just actionsDenylist: 'SOME_' to omit both
}),
);
```
### `predicate`
_function_ - called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor. Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.
Example of usage:
```js
const store = createStore(
rootReducer,
window.__REDUX_DEVTOOLS_EXTENSION__ &&
window.__REDUX_DEVTOOLS_EXTENSION__({
predicate: (state, action) =>
state.dev.logLevel === VERBOSE && !action.forwarded,
}),
);
```
### `shouldRecordChanges`
_boolean_ - if specified as `false`, it will not record the changes till clicking on `Start recording` button. Default is `true`. Available only for Redux enhancer, for others use `autoPause`.
### `pauseActionType`
_string_ - if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type. If not specified, will commit when paused. Available only for Redux enhancer. Default is `@@PAUSED`.
### `autoPause`
_boolean_ - auto pauses when the extensions window is not opened, and so has zero impact on your app when not in use. Not available for Redux enhancer (as it already does it but storing the data to be sent). Default is `false`.
### `shouldStartLocked`
_boolean_ - if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button. Available only for Redux enhancer. Default is `false`.
### `shouldHotReload`
_boolean_ - if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer. Default to `true`.
### `shouldCatchErrors`
_boolean_ - if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.
### `features`
If you want to restrict the extension, just specify the features you allow:
```js
const composeEnhancers = composeWithDevTools({
features: {
pause: true, // start/pause recording of dispatched actions
lock: true, // lock/unlock dispatching actions and side effects
persist: true, // persist states on page reloading
export: true, // export history of actions in a file
import: 'custom', // import history of actions from a file
jump: true, // jump back and forth (time travelling)
skip: true, // skip (cancel) actions
reorder: true, // drag and drop actions in the history list
dispatch: true, // dispatch custom actions or action creators
test: true, // generate tests for the selected actions
},
// other options like actionSanitizer, stateSanitizer
});
```
If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.
Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side. Otherwise, you'll get/set the data right from the monitor part.

View File

@ -0,0 +1,93 @@
## Communicate with the extension directly
> Note this is advanced API, which you usually don't need to use with Redux enhancer.
Use the following methods of `window.__REDUX_DEVTOOLS_EXTENSION__`:
- [connect](#connect)
- [disconnect](#disconnect)
- [send](#send)
- [listen](#listen)
- [open](#open)
- [notifyErrors](#notifyerrors)
<a id="connect"></a>
### connect([options])
##### Arguments
- [`options`] _Object_ - [see the available options](Arguments.md).
##### Returns
_Object_ containing the following methods:
- `subscribe(listener)` - adds a change listener. It will be called any time an action is dispatched from the monitor. Returns a function to unsubscribe the current listener.
- `unsubscribe()` - unsubscribes all listeners.
- `send(action, state)` - sends a new action and state manually to be shown on the monitor. If action is `null` then we suppose we send `liftedState`.
- `init(state)` - sends the initial state to the monitor.
- `error(message)` - sends the error message to be shown in the extension's monitor.
Example of usage:
```js
const devTools = window.__REDUX_DEVTOOLS_EXTENSION__.connect(config);
devTools.subscribe((message) => {
if (message.type === 'DISPATCH' && message.state) {
console.log('DevTools requested to change the state to', message.state);
}
});
devTools.init({ value: 'initial state' });
devTools.send('change state', { value: 'state changed' });
```
See [redux enhancer's example](https://github.com/reduxjs/redux-devtools/blob/main/packages/redux-devtools-extension/src/logOnly.ts), [react example](https://github.com/zalmoxisus/redux-devtools-extension/blob/master/examples/react-counter-messaging/components/Counter.js) and [blog post](https://medium.com/@zalmoxis/redux-devtools-without-redux-or-how-to-have-a-predictable-state-with-any-architecture-61c5f5a7716f) for more details.
### disconnect()
Remove extensions listener and disconnect extensions background script connection. Usually just unsubscribing the listener inside the `connect` is enough.
<a id="send"></a>
### send(action, state, [options, instanceId])
Send a new action and state manually to be shown on the monitor. It's recommended to use [`connect`](connect), unless you want to hook into an already created instance.
##### Arguments
- `action` _String_ (action type) or _Object_ with required `type` key.
- `state` _any_ - usually object to expand.
- [`options`] _Object_ - [see the available options](Arguments.md).
- [`instanceId`] _String_ - instance id for which to include the log. If not specified and not present in the `options` object, will be the first available instance.
<a id="listen"></a>
### listen(onMessage, instanceId)
Listen for messages dispatched for specific `instanceId`. For most cases it's better to use `subcribe` inside the [`connect`](connect).
##### Arguments
- `onMessage` _Function_ to call when there's an action from the monitor.
- `instanceId` _String_ - instance id for which to handle actions.
<a id="open"></a>
### open([position])
Open the extension's window. This should be conditional (usually you don't need to open extension's window automatically).
##### Arguments
- [`position`] _String_ - window position: `left`, `right`, `bottom`. Also can be `panel` to [open it in a Chrome panel](../FAQ.md#how-to-keep-devtools-window-focused-all-the-time-in-a-chrome-panel). Or `remote` to [open remote monitor](../FAQ.md#how-to-get-it-work-with-webworkers-react-native-hybrid-desktop-and-server-side-apps). By default is `left`.
<a id="notifyErrors"></a>
### notifyErrors([onError])
When called, the extension will listen for uncaught exceptions on the page, and, if any, will show native notifications. Optionally, you can provide a function to be called when an exception occurs.
##### Arguments
- [`onError`] _Function_ to call when there's an exceptions.

View File

@ -0,0 +1,4 @@
# API Reference
- [Parameters](Arguments.md)
- [Methods](Methods.md)

View File

@ -0,0 +1,37 @@
# Architecture Notes
This document exists to keep track of how the different parts of the Redux DevTools interact, since it's easy to forget how it all works together. This is intended for internal purposes and is just a collection of notes to myself.
## Entry Points
### Window
This is the default view that is shown in the Redux DevTools popup, the Chrome DevTools tab (if direct access to the background page is available), and new popup windows that are created. It has direct access to the background page via `chrome.runtime.getBackgroundPage`.
### DevPanel
This is the view that is shown in the Chrome DevTools tab if direct access to the background page is not available.
Initially this was the view that was always used for the Chrome DevTools tab, but when support to directly access the background page from the DevTools tab was added, [the Window View became the preferred view](https://github.com/zalmoxisus/redux-devtools-extension/pull/580).
### Remote
This does not interact with the other parts of the extension at all, it just renders the `App` component from `@redux-devtools/app`.
It can be triggered by hitting the "Remote" button in any of the other views, which calls `chrome.windows.create` and creates a new window.
### DevTools
This is the script that adds the Redux panel in the Chrome DevTools using `chrome.devtools.panels.create`.
It creates a Window View if it has direct access to the background page, otherwise it creates a DevPanel View.
Note that this used to always show the DevPanel View, but [started using the Window View by default](https://github.com/zalmoxisus/redux-devtools-extension/pull/580) once direct access to the background page was added to Chrome DevTools tabs.
### Content Script
Passes messages between the injected page script and the background page.
It listens for messages from the injected page script using `window.addEventListener('message', ...)`. It knows the message is from the injected page script if `message.source` is `'@devtools-page'`. See the Chrome DevTools docs where this approach [is documented](https://developer.chrome.com/docs/extensions/how-to/devtools/extend-devtools#evaluated-scripts-to-devtools).
It creates a connection to the background page using `chrome.runtime.connect` with the name `'tab'` when it receives the first message from the injected page script.

View File

@ -0,0 +1,5 @@
# Articles
- [Improve your development workflow with Redux DevTools Extension](https://medium.com/@zalmoxis/improve-your-development-workflow-with-redux-devtools-extension-f0379227ff83)
- [Using Redux DevTools in production](https://medium.com/@zalmoxis/using-redux-devtools-in-production-4c5b56c5600f)
- [Redux DevTools without Redux](https://medium.com/@zalmoxis/redux-devtools-without-redux-or-how-to-have-a-predictable-state-with-any-architecture-61c5f5a7716f)

11
extension/docs/Credits.md Normal file
View File

@ -0,0 +1,11 @@
# Credits
- Built using [Crossbuilder](https://github.com/zalmoxisus/crossbuilder) boilerplate.
- Includes [Dan Abramov](https://github.com/gaearon)'s [redux-devtools](https://github.com/gaearon/redux-devtools) and the following monitors:
- [Log Monitor](https://github.com/gaearon/redux-devtools-log-monitor)
- [Inspector](https://github.com/alexkuz/redux-devtools-inspector)
- [Dispatch](https://github.com/YoruNoHikage/redux-devtools-dispatch)
- [Slider](https://github.com/calesce/redux-slider-monitor)
- [Chart](https://github.com/romseguy/redux-devtools-chart-monitor)
- [The logo icon](https://github.com/reactjs/redux/issues/151) made by [Keith Yong](https://github.com/keithyong) .
- Examples from [Redux](https://github.com/rackt/redux/tree/master/examples).

45
extension/docs/FAQ.md Normal file
View File

@ -0,0 +1,45 @@
# Redux DevTools Extension FAQ
## Table of Contents
- [How to get it work](#how-to-get-it-work)
- [How to disable/enable it in production](#how-to-disable-it-in-production)
- [How to persist debug sessions across page reloads](#how-to-persist-debug-sessions-across-page-reloads)
- [How to open DevTools programmatically](#how-to-open-devtools-programmatically)
- [How to enable/disable errors notifying](#how-to-enabledisable-errors-notifying)
- [How to get it work with WebWorkers, React Native, hybrid, desktop and server side apps](#how-to-get-it-work-with-webworkers-react-native-hybrid-desktop-and-server-side-apps)
- [Keyboard shortcuts](#keyboard-shortcuts)
#### How to get it work
- Check the extension with [Counter](http://zalmoxisus.github.io/examples/counter/) or [TodoMVC](http://zalmoxisus.github.io/examples/todomvc/) demo.
- Reload the extension on the extensions page (`chrome://extensions/`).
- If something goes wrong, [open an issue](https://github.com/zalmoxisus/redux-devtools-extension/issues) or tweet me: [@mdiordiev](https://twitter.com/mdiordiev).
#### How to disable it in production
Usually you don't have to. See [the article for details on how to include it in production](https://medium.com/@zalmoxis/using-redux-devtools-in-production-4c5b56c5600f).
#### How to persist debug sessions across page reloads
Just click the `Persist` button or add `?debug_session=<session_name>` to the url.
#### How to open DevTools programmatically
```js
window.__REDUX_DEVTOOLS_EXTENSION__.open();
```
Make sure to have it conditionally. Auto opening windows is a bad DX. See the [API](https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Methods.md#open) for details.
#### How to enable/disable errors notifying
Just find `Redux DevTools` on the extensions page (`chrome://extensions/`) and click the `Options` link to customize everything. The errors notifying is disabled by default. If enabled, it works only when the store enhancer is called (in order not to show notifications for any sites you visit). In case you want notifications for a non-redux app, init it explicitly by calling `window.__REDUX_DEVTOOLS_EXTENSION__.notifyErrors()` (probably you'll check if `window.__REDUX_DEVTOOLS_EXTENSION__` exists before calling it).
#### How to get it work with WebWorkers, React Native, hybrid, desktop and server side apps
It is not possible to inject extension's script there and to communicate directly. To solve this, use [Remote Redux DevTools](https://github.com/zalmoxisus/remote-redux-devtools). After including it inside the app, click `Remote` button for remote monitoring.
#### Keyboard shortcuts
To set/change the keyboard shortcuts, click "Keyboard shortcuts" button on the bottom of the extensions page (`chrome://extensions/`). By default only `Cmd` (`Ctrl`) + `Shift` + `E` is available, which will open the extension popup (only when the Redux store is available in the current page).

View File

@ -0,0 +1,13 @@
## Trace actions calls
![trace-demo](https://user-images.githubusercontent.com/7957859/50161148-a1639300-02e3-11e9-80e7-18d3215a0bf8.gif)
One of the features of Redux DevTools is to select an action in the history and see the callstack that triggered it. It aims to solve the problem of finding the source of events in the event list.
By default it's disabled as, depending of the use case, generating and serializing stack traces for every action can impact the performance. To enable it, set `trace` option to `true` as in [examples](https://github.com/zalmoxisus/redux-devtools-extension/commit/64717bb9b3534ff616d9db56c2be680627c7b09d). See [the API](../API/Arguments.md#trace) for more details.
For some edge cases where stack trace cannot be obtained with just `Error().stack`, you can pass a function as `trace` with your implementation. It's useful for cases where the stack is broken, like, for example, [when calling `setTimeout`](https://github.com/zalmoxisus/redux-devtools-instrument/blob/e7c05c98e7e9654cb7db92a2f56c6b5f3ff2452b/test/instrument.spec.js#L735-L737). It takes `action` object as argument and should return `stack` string. This way it can be also used to provide stack conditionally only for certain actions.
There's also an optional `traceLimit` parameter, which is `10` by default, to prevent consuming too much memory and serializing large stacks and also allows you to get larger stacks than limited by the browser (it will overpass default limit of `10` imposed by Chrome in `Error.stackTraceLimit`). If `trace` option is a function, `traceLimit` will have no effect, that should be handled there like so: `trace: () => new Error().stack.split('\n').slice(0, limit+1).join('\n')` (`+1` is needed for Chrome where's an extra 1st frame for `Error\n`).
Apart from opening resources in Chrome DevTools, as seen in the demo above, it can open the file (and jump to the line-column) right in your editor. Pretty useful for debugging, and also as an alternative when it's not possible to use openResource (for Firefox or when using the extension from window or for remote debugging). You can click Settings button and enable that, also adding the path to your project root directory to use. It works out of the box for VSCode, Atom, Webstorm/Phpstorm/IntelliJ, Sublime, Emacs, MacVim, Textmate on Mac and Windows. For Linux you can use [`atom-url-handler`](https://github.com/eclemens/atom-url-handler).

View File

@ -0,0 +1,5 @@
# Feedback wanted
[File an issue](https://github.com/zalmoxisus/redux-devtools-extension/issues) or [submit a PR](https://github.com/zalmoxisus/redux-devtools-extension/pulls) if you have suggestions, rate us and leave a review on [Chrome Store](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd/reviews), post feature requests and bug reports on [Product Pains](https://productpains.com/product/redux-devtools-extension), or ping me on Twitter as [@mdiordiev](https://twitter.com/mdiordiev).
<iframe width="100%" height="400px" scrolling="no" style="border:0" src="https://productpains.com/widget.html?token=fc7887ce-f3f9-105a-e5cb-43b9eeb668d5"></iframe><script type="text/javascript" src="https://productpains.com/js/lib/iframeResizer.min.js"></script>

View File

@ -0,0 +1,302 @@
# Integrations for js and non-js frameworks
Mostly functional:
- [React](#react)
- [Angular](#angular)
- [Cycle](#cycle)
- [Ember](#ember)
- [Fable](#fable)
- [Freezer](#freezer)
- [Mobx](#mobx)
- [PureScript](#purescript)
- [Reductive](#reductive)
- [Aurelia](#aurelia)
In progress:
- [ClojureScript](#clojurescript)
- [Horizon](#horizon)
- [Python](#python)
- [Swift](#swift)
### [React](https://github.com/facebook/react)
#### Inspect React props
##### [`react-inspect-props`](https://github.com/lucasconstantino/react-inspect-props)
```js
import { compose, withState } from 'recompose';
import { inspectProps } from 'react-inspect-props';
compose(
withState('count', 'setCount', 0),
inspectProps('Counter inspector'),
)(Counter);
```
#### Inspect React states
##### [`remotedev-react-state`](https://github.com/jhen0409/remotedev-react-state)
```js
import connectToDevTools from 'remotedev-react-state'
componentWillMount() {
// Connect to devtools after setup initial state
connectToDevTools(this/*, options */)
}
```
#### Inspect React hooks (useState and useReducer)
##### [`reinspect`](https://github.com/troch/reinspect)
```js
import { useState } from 'reinspect';
export function CounterWithUseState({ id }) {
const [count, setCount] = useState(0, id);
// ...
}
```
### [Mobx](https://github.com/mobxjs/mobx)
#### [`mobx-remotedev`](https://github.com/zalmoxisus/mobx-remotedev)
```js
import remotedev from 'mobx-remotedev';
// or import remotedev from 'mobx-remotedev/lib/dev'
// in case you want to use it in production or don't have process.env.NODE_ENV === 'development'
const appStore = observable({
// ...
});
// Or
class appStore {
// ...
}
export default remotedev(appStore);
```
### [Angular](https://github.com/angular/angular)
#### [ng2-redux](https://github.com/angular-redux/ng2-redux)
```js
import { NgReduxModule, NgRedux, DevToolsExtension } from 'ng2-redux';
@NgModule({
/* ... */
imports: [ /* ... */, NgReduxModule ]
})export class AppModule {
constructor(
private ngRedux: NgRedux,
private devTools: DevToolsExtension) {
let enhancers = [];
// ... add whatever other enhancers you want.
// You probably only want to expose this tool in devMode.
if (__DEVMODE__ && devTools.isEnabled()) {
enhancers = [ ...enhancers, devTools.enhancer() ];
}
this.ngRedux.configureStore(
rootReducer,
initialState,
[],
enhancers);
}
}
```
For Angular 1 see [ng-redux](https://github.com/angular-redux/ng-redux).
#### [Angular @ngrx/store](https://ngrx.io/) + [`@ngrx/store-devtools`](https://ngrx.io/guide/store-devtools)
```js
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
@NgModule({
imports: [
StoreModule.forRoot(rootReducer),
// Instrumentation must be imported after importing StoreModule (config is optional)
StoreDevtoolsModule.instrument({
maxAge: 5,
}),
],
})
export class AppModule {}
```
[`Example of integration`](https://github.com/ngrx/platform/tree/master/projects/example-app/) ([live demo](https://ngrx.github.io/platform/example-app/)).
### [Ember](http://emberjs.com/)
#### [`ember-redux`](https://github.com/ember-redux/ember-redux)
```js
//app/enhancers/index.js
import { compose } from 'redux';
var devtools = window.__REDUX_DEVTOOLS_EXTENSION__
? window.__REDUX_DEVTOOLS_EXTENSION__()
: (f) => f;
export default compose(devtools);
```
### [Cycle](https://github.com/cyclejs/cyclejs)
#### [`@culli/store`](https://github.com/milankinen/culli/tree/master/packages/store)
```js
import { run } from '@cycle/most-run';
import { makeDOMDriver as DOM } from '@cycle/dom';
import Store, { ReduxDevtools } from '@culli/store';
import App, { newId } from './App';
run(App, {
DOM: DOM('#app'),
Store: Store(
ReduxDevtools({
items: [
{ id: newId(), num: 0 },
{ id: newId(), num: 0 },
],
}),
),
});
```
### [Freezer](https://github.com/arqex/freezer)
#### [`freezer-redux-devtools`](https://github.com/arqex/freezer-redux-devtools)
```js
import React, { Component } from 'react';
import { supportChromeExtension } from 'freezer-redux-devtools/freezer-redux-middleware';
import Freezer from 'freezer-js';
// Our state is a freezer object
var State = new Freezer({ hello: 'world' });
// Enable the extension
supportChromeExtension(State);
```
### [Horizon](https://github.com/rethinkdb/horizon)
#### [`horizon-remotedev`](https://github.com/zalmoxisus/horizon-remotedev)
```js
// import hzRemotedev from 'horizon-remotedev';
// or import hzRemotedev from 'horizon-remotedev/lib/dev'
// in case you want to use it in production or don't have process.env.NODE_ENV === 'development'
//Setup Horizon connection
const horizon = Horizon();
// ...
// Specify the horizon instance to monitor
hzRemotedev(horizon('react_messages'));
```
### [Fable](https://github.com/fable-compiler/Fable)
#### [`fable-elmish/debugger`](https://github.com/fable-elmish/debugger)
```fsharp
open Elmish.Debug
Program.mkProgram init update view
|> Program.withDebugger // connect to a devtools monitor via Chrome extension if available
|> Program.run
```
or
```fsharp
open Elmish.Debug
Program.mkProgram init update view
|> Program.withDebuggerAt (Remote("localhost",8000)) // connect to a server running on localhost:8000
|> Program.run
```
### [PureScript](https://github.com/purescript/purescript)
#### [`purescript-react-redux`](https://github.com/ethul/purescript-react-redux)
[`Example of integration`](https://github.com/ethul/purescript-react-redux-example).
### [ClojureScript](https://github.com/clojure/clojurescript)
[`Example of integration`](http://gitlab.xet.ru:9999/publicpr/clojurescript-redux/tree/master#dev-setup)
### [Python](https://www.python.org/)
#### [`pyredux`](https://github.com/peterpeter5/pyredux)
[WIP](https://github.com/zalmoxisus/remotedev-server/issues/34)
### [Swift](https://github.com/apple/swift)
#### [`katanaMonitor`](https://github.com/bolismauro/katanaMonitor-lib-swift) for [`katana-swift`](https://github.com/BendingSpoons/katana-swift)
```swift
import KatanaMonitor
var middleware: [StoreMiddleware] = [
// other middleware
]
#if DEBUG
middleware.append(MonitorMiddleware.create(using: .defaultConfiguration))
#endif
```
### [Reductive](https://github.com/reasonml-community/reductive)
#### [`reductive-dev-tools`](https://github.com/ambientlight/reductive-dev-tools)
```reason
let storeEnhancer =
ReductiveDevTools.(
Connectors.reductiveEnhancer(
Extension.enhancerOptions(~name="MyApp", ()),
)
);
let storeCreator = storeEnhancer @@ Reductive.Store.create;
```
### [Aurelia](http://aurelia.io)
#### [`aurelia-store`](https://aurelia.io/docs/plugins/store)
```ts
import {Aurelia} from 'aurelia-framework';
import {initialState} from './state';
export function configure(aurelia: Aurelia) {
aurelia.use
.standardConfiguration()
.feature('resources');
...
aurelia.use.plugin('aurelia-store', {
initialState,
devToolsOptions: { // optional
... // see https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Arguments.md
},
});
aurelia.start().then(() => aurelia.setRoot());
}
```

21
extension/docs/README.md Normal file
View File

@ -0,0 +1,21 @@
# Documentation
- [Extension](/README.md)
- [Installation](/README.md#installation)
- [Usage](/README.md#usage)
- [Demo](/README.md#demo)
- [API Reference](/docs/API/README.md)
- [Options (arguments)](/docs/API/Arguments.md)
- [Methods (advanced API)](/docs/API/Methods.md)
- Features
- [Trace actions calls](/docs/Features/Trace.md)
- [Integrations](/docs/Integrations.md)
- [FAQ](/docs/FAQ.md)
- [Troubleshooting](/docs/Troubleshooting.md)
- [Recipes](/docs/Recipes.md)
- [Articles](/docs/Articles.md)
- [Videos](/docs/Videos.md)
- [Credits](/docs/Credits.md)
- [Support us](/README.md#backers)
- [Feedback](/docs/Feedback.md)
- [Change Log](https://github.com/zalmoxisus/redux-devtools-extension/releases)

78
extension/docs/Recipes.md Normal file
View File

@ -0,0 +1,78 @@
# Recipes
### Using in a typescript project
The recommended way is to use [`@redux-devtools/extension` npm package](/README.md#13-use-redux-devtools-extension-package-from-npm), which contains all typescript definitions. Or you can just use `window as any`:
```js
const store = createStore(
rootReducer,
initialState,
(window as any).__REDUX_DEVTOOLS_EXTENSION__ &&
(window as any).__REDUX_DEVTOOLS_EXTENSION__()
);
```
Note that you many need to set `no-any` to false in your `tslint.json` file.
Alternatively you can use type-guard in order to avoid
casting to any.
```typescript
import { createStore, StoreEnhancer } from 'redux';
// ...
type WindowWithDevTools = Window & {
__REDUX_DEVTOOLS_EXTENSION__: () => StoreEnhancer<unknown, {}>;
};
const isReduxDevtoolsExtenstionExist = (
arg: Window | WindowWithDevTools,
): arg is WindowWithDevTools => {
return '__REDUX_DEVTOOLS_EXTENSION__' in arg;
};
// ...
const store = createStore(
rootReducer,
initialState,
isReduxDevtoolsExtenstionExist(window)
? window.__REDUX_DEVTOOLS_EXTENSION__()
: undefined,
);
```
### Export from browser console or from application
```js
store.liftedStore.getState();
```
The extension is not sharing `store` object, so you should take care of that.
### Applying multiple times with different sets of options
We're [not allowing that from instrumentation part](https://github.com/reduxjs/redux-devtools/blob/main/packages/redux-devtools-extension/src/logOnly.ts), which can be used it like so:
```js
import { createStore, compose } from 'redux';
import { devToolsEnhancerLogOnly } from '@redux-devtools/extension';
const store = createStore(
reducer,
/* preloadedState, */ compose(
devToolsEnhancerLogOnly({
instaceID: 1,
name: 'Denylisted',
actionsDenylist: '...',
}),
devToolsEnhancerLogOnly({
instaceID: 2,
name: 'Allowlisted',
actionsAllowlist: '...',
}),
),
);
```

View File

@ -0,0 +1,131 @@
# Troubleshooting
### I just see empty log or "No store found"
Make sure you [applied the enhancer](https://github.com/zalmoxisus/redux-devtools-extension#2-use-with-redux). Note that passing enhancer as last argument requires redux@>=3.1.0. For older versions apply it like [here](https://github.com/zalmoxisus/redux-devtools-extension/blob/v0.4.2/examples/todomvc/store/configureStore.js) or [here](https://github.com/zalmoxisus/redux-devtools-extension/blob/v0.4.2/examples/counter/store/configureStore.js#L7-L12).
Don't mix the old Redux API with the new one. Pass enhancers and applyMiddleware as last createStore argument.
### Access file url (`file:///`)
If you develop on your local filesystem, make sure to allow Redux DevTools access to `file:///` URLs in the settings of this extension:
<img width="746" alt="extensions" src="https://cloud.githubusercontent.com/assets/7957859/19075220/a0fad99e-8a4c-11e6-8b87-757f2dc179cb.png">
### It shows only the `@@INIT` action or moving back and forth doesn't update the state
Most likely you mutate the state. Check it by [adding `redux-immutable-state-invariant` middleware](https://github.com/zalmoxisus/redux-devtools-extension/blob/master/examples/counter/store/configureStore.js#L3).
Another cause could be that you are creating multiple stores, which means that the devtools get attached to one but the application uses another. See [https://github.com/reduxjs/redux-toolkit/issues/2753](this issue).
### @@INIT or REPLACE action resets the state of the app or last actions RE-APPLIED
`@@redux/REPLACE` (or `@@INIT`) is used internally when the application is hot reloaded. When you use `store.replaceReducer` the effect will be the same as for hot-reloading, where the extension is recomputing all the history again. To avoid that set [`shouldHotReload`](/docs/API/Arguments.md#shouldhotreload) parameter to `false`.
### It doesn't work with other store enhancers
Usually the extension's store enhancer should be last in the compose. When you're using [`window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__`](/README.md#12-advanced-store-setup) or [`composeWithDevTools`](/README.md#13-use-redux-devtools-extension-package-from-npm) helper you don't have to worry about the enhancers order. However some enhancers ([like `redux-batched-subscribe`](https://github.com/zalmoxisus/redux-devtools-extension/issues/261)) also have this requirement to be the last in the compose. In this case you can use it like so:
```js
const store = createStore(
reducer,
preloadedState,
compose(
// applyMiddleware(thunk),
window.__REDUX_DEVTOOLS_EXTENSION__
? window.__REDUX_DEVTOOLS_EXTENSION__()
: (noop) => noop,
batchedSubscribe(/* ... */),
),
);
```
Where `batchedSubscribe` is `redux-batched-subscribe` store enhancer.
### Excessive use of memory and CPU
That is happening due to serialization of some huge objects included in the state or action. The solution is to [sanitize them](/docs/API/Arguments.md#actionsanitizer--statesanitizer).
You can do that by including/omitting data containing specific values, having specific types... In the example below we're omitting parts of action and state objects with the key `data` (in case of action only when was dispatched action `FILE_DOWNLOAD_SUCCESS`):
```js
const actionSanitizer = (action) =>
action.type === 'FILE_DOWNLOAD_SUCCESS' && action.data
? { ...action, data: '<<LONG_BLOB>>' }
: action;
const store = createStore(
rootReducer,
window.__REDUX_DEVTOOLS_EXTENSION__ &&
window.__REDUX_DEVTOOLS_EXTENSION__({
actionSanitizer,
stateSanitizer: (state) =>
state.data ? { ...state, data: '<<LONG_BLOB>>' } : state,
}),
);
```
There's a more advanced [example on how to implement that for `ui-router`](https://github.com/zalmoxisus/redux-devtools-extension/issues/455#issuecomment-404538385).
The extension is in different process and cannot access the store object directly, unlike vanilla [`redux-devtools`](https://github.com/reduxjs/redux-devtools) which doesn't have this issue. In case sanitizing doesn't fit your use case, you might consider including it directly as a react component, so there will be no need to serialize the data, but it would add some complexity.
### It fails to serialize data when [passing synthetic events](https://github.com/zalmoxisus/redux-devtools-extension/issues/275) or [calling an action directly with `redux-actions`](https://github.com/zalmoxisus/redux-devtools-extension/issues/287)
React synthetic event cannot be reused for performance reason. So, it's not possible to serialize event objects you pass to action payloads.
1. The best solution is **not to pass the whole event object to reducers, but the data you need**:
```diff
function click(event) {
return {
type: ELEMENT_CLICKED,
- event: event
+ value: event.target.value
};
}
```
2. If you cannot pick data from the event object or, for some reason, you need the whole object, use `event.persist()` as suggested in [React Docs](https://facebook.github.io/react/docs/events.html#event-pooling), but it will consume RAM while not needed.
```diff
function increment(event) {
+ event.persist();
return {
type: ELEMENT_CLICKED,
event: event,
};
}
```
3. A workaround, to pass the whole object and at the same time not to persist it, is to override this key of the stringified payload in your action creator. Add a custom `toJSON` function right in the action object (which will be called by the extension before accessing the object):
```diff
function increment(event) {
return {
type: ELEMENT_CLICKED,
event: event,
+ toJSON: function (){
+ return { ...this, event: '[Event]' };
+ }
};
}
```
Note that it shouldn't be arrow function as we want to have access to the function's `this`.
As we don't have access to the original object, skipping and recomputing actions during hot reloading will not work in this case. We recommend to use the first solution whenever possible.
### Symbols or other unserializable data not shown
To get data which cannot be serialized by `JSON.stringify`, set [`serialize` parameter](/docs/API/Arguments.md#serialize):
```js
const store = Redux.createStore(
reducer,
window.__REDUX_DEVTOOLS_EXTENSION__ &&
window.__REDUX_DEVTOOLS_EXTENSION__({
serialize: true,
}),
);
```
It will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.

6
extension/docs/Videos.md Normal file
View File

@ -0,0 +1,6 @@
# Videos
- [Debugging flux applications in production at React Europe 2016](https://youtu.be/YU8jQ2HtqH4)
- [Hot Reloading with Time Travel at React Europe 2015](https://youtu.be/xsSnOQynTHs)
- [Getting Started with Redux DevTools Extension](https://egghead.io/lessons/javascript-getting-started-with-redux-dev-tools)
- [React & Redux With ExpressJS](https://www.youtube.com/watch?v=6ygcbRpZFR4)

View File

@ -0,0 +1,62 @@
{
"version": "3.2.10",
"name": "Redux DevTools",
"description": "Redux DevTools for debugging application's state changes.",
"homepage_url": "https://github.com/reduxjs/redux-devtools",
"manifest_version": 3,
"action": {
"default_icon": "img/logo/gray.png",
"default_title": "Redux DevTools",
"default_popup": "devpanel.html#popup"
},
"commands": {
"devtools-window": {
"description": "DevTools window"
},
"devtools-remote": {
"description": "Remote DevTools"
},
"_execute_action": {
"suggested_key": {
"default": "Ctrl+Shift+E"
}
}
},
"icons": {
"16": "img/logo/16x16.png",
"48": "img/logo/48x48.png",
"128": "img/logo/128x128.png"
},
"options_ui": {
"page": "options.html"
},
"background": {
"service_worker": "background.bundle.js"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"exclude_globs": ["https://www.google*"],
"js": ["content.bundle.js"],
"run_at": "document_start",
"all_frames": true
},
{
"matches": ["<all_urls>"],
"exclude_globs": ["https://www.google*"],
"js": ["page.bundle.js"],
"run_at": "document_start",
"all_frames": true,
"world": "MAIN"
}
],
"devtools_page": "devtools.html",
"externally_connectable": {
"ids": ["*"]
},
"permissions": ["notifications", "contextMenus", "storage"],
"host_permissions": ["file:///*", "http://*/*", "https://*/*"],
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self'; style-src * 'unsafe-inline'; img-src 'self' data:;"
}
}

View File

@ -0,0 +1,38 @@
import globals from 'globals';
import eslintJs from '../eslint.js.config.base.mjs';
import eslintTsReact from '../eslint.ts.react.config.base.mjs';
import eslintJsReactJest from '../eslint.js.react.jest.config.base.mjs';
export default [
...eslintJs,
...eslintTsReact(import.meta.dirname),
...eslintJsReactJest,
{
ignores: [
'chrome',
'dist',
'edge',
'examples',
'firefox',
'test/electron/fixture/dist',
],
},
{
files: ['build.mjs'],
languageOptions: {
globals: {
...globals.nodeBuiltin,
},
},
},
{
files: ['test/**/*.js', 'test/**/*.jsx'],
languageOptions: {
globals: {
...globals.browser,
...globals.node,
EUI: true,
},
},
},
];

View File

@ -0,0 +1,36 @@
/**
* Runs an ordered set of commands within each of the build directories.
*/
import fs from 'fs';
import path from 'path';
import { spawnSync } from 'child_process';
var exampleDirs = fs.readdirSync(__dirname).filter((file) => {
return fs.statSync(path.join(__dirname, file)).isDirectory();
});
// Ordering is important here. `npm install` must come first.
var cmdArgs = [
{ cmd: 'npm', args: ['install'] },
{ cmd: 'webpack', args: ['index.js'] },
];
for (const dir of exampleDirs) {
for (const cmdArg of cmdArgs) {
// declare opts in this scope to avoid https://github.com/joyent/node/issues/9158
const opts = {
cwd: path.join(__dirname, dir),
stdio: 'inherit',
};
let result = {};
if (process.platform === 'win32') {
result = spawnSync(cmdArg.cmd + '.cmd', cmdArg.args, opts);
} else {
result = spawnSync(cmdArg.cmd, cmdArg.args, opts);
}
if (result.status !== 0) {
throw new Error('Building examples exited with non-zero');
}
}
}

View File

@ -0,0 +1,3 @@
{
"presets": ["es2015", "stage-0", "react"]
}

View File

@ -0,0 +1,37 @@
export const INCREMENT_COUNTER = 'INCREMENT_COUNTER';
export const DECREMENT_COUNTER = 'DECREMENT_COUNTER';
let t;
export function increment() {
return {
type: INCREMENT_COUNTER,
};
}
export function decrement() {
return {
type: DECREMENT_COUNTER,
};
}
export function autoIncrement(delay = 10) {
return (dispatch) => {
if (t) {
clearInterval(t);
t = undefined;
return;
}
t = setInterval(() => {
dispatch(increment());
}, delay);
};
}
export function incrementAsync(delay = 1000) {
return (dispatch) => {
setTimeout(() => {
dispatch(increment());
}, delay);
};
}

View File

@ -0,0 +1,27 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
class Counter extends Component {
render() {
const { increment, autoIncrement, incrementAsync, decrement, counter } =
this.props;
return (
<p>
Clicked: {counter} times <button onClick={increment}>+</button>{' '}
<button onClick={decrement}>-</button>{' '}
<button onClick={incrementAsync}>Increment async</button>{' '}
<button onClick={autoIncrement}>Auto increment</button>
</p>
);
}
}
Counter.propTypes = {
increment: PropTypes.func.isRequired,
autoIncrement: PropTypes.func.isRequired,
incrementAsync: PropTypes.func.isRequired,
decrement: PropTypes.func.isRequired,
counter: PropTypes.number.isRequired,
};
export default Counter;

View File

@ -0,0 +1,16 @@
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import Counter from '../components/Counter';
import * as CounterActions from '../actions/counter';
function mapStateToProps(state) {
return {
counter: state.counter,
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators(CounterActions, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(Counter);

View File

@ -0,0 +1,10 @@
<!doctype html>
<html>
<head>
<title>Redux counter example</title>
</head>
<body>
<div id="root"></div>
<script src="/static/bundle.js"></script>
</body>
</html>

View File

@ -0,0 +1,14 @@
import React from 'react';
import { render } from 'react-dom';
import { Provider } from 'react-redux';
import App from './containers/App';
import configureStore from './store/configureStore';
const store = configureStore();
render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root'),
);

View File

@ -0,0 +1,41 @@
{
"name": "redux-counter-example",
"version": "0.0.0",
"description": "Redux counter example",
"scripts": {
"start": "node server.js",
"test": "NODE_ENV=test mocha --recursive --compilers js:babel-core/register --require ./test/setup.js",
"test:watch": "npm test -- --watch"
},
"repository": {
"type": "git",
"url": "https://github.com/rackt/redux.git"
},
"license": "MIT",
"bugs": {
"url": "https://github.com/rackt/redux/issues"
},
"homepage": "http://rackt.github.io/redux",
"dependencies": {
"prop-types": "^15.6.2",
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-redux": "^6.0.0",
"redux": "^4.0.1",
"redux-devtools-extension": "^2.13.7",
"redux-thunk": "^2.3.0"
},
"devDependencies": {
"babel-cli": "^6.3.17",
"babel-core": "^6.3.17",
"babel-loader": "^7.0.0",
"babel-preset-es2015": "^6.0.0",
"babel-preset-react": "6.3.13",
"babel-preset-stage-0": "^6.3.13",
"express": "^4.13.3",
"redux-immutable-state-invariant": "^2.1.0",
"webpack": "^4.0.0",
"webpack-dev-server": "^3.0.0",
"webpack-hot-middleware": "^2.2.0"
}
}

View File

@ -0,0 +1,12 @@
import { INCREMENT_COUNTER, DECREMENT_COUNTER } from '../actions/counter';
export default function counter(state = 0, action) {
switch (action.type) {
case INCREMENT_COUNTER:
return state + 1;
case DECREMENT_COUNTER:
return state - 1;
default:
return state;
}
}

View File

@ -0,0 +1,8 @@
import { combineReducers } from 'redux';
import counter from './counter';
const rootReducer = combineReducers({
counter,
});
export default rootReducer;

View File

@ -0,0 +1,32 @@
var webpack = require('webpack');
var webpackDevMiddleware = require('webpack-dev-middleware');
var webpackHotMiddleware = require('webpack-hot-middleware');
var config = require('./webpack.config');
var app = new require('express')();
var port = 4001;
var compiler = webpack(config);
app.use(
webpackDevMiddleware(compiler, {
noInfo: true,
publicPath: config.output.publicPath,
}),
);
app.use(webpackHotMiddleware(compiler));
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
app.listen(port, function (error) {
if (error) {
console.error(error);
} else {
console.info(
'==> 🌎 Listening on port %s. Open up http://localhost:%s/ in your browser.',
port,
port,
);
}
});

View File

@ -0,0 +1,28 @@
import { createStore, applyMiddleware, compose } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension';
import thunk from 'redux-thunk';
import invariant from 'redux-immutable-state-invariant';
import reducer from '../reducers';
import * as actionCreators from '../actions/counter';
export default function configureStore(preloadedState) {
const composeEnhancers = composeWithDevTools({
actionCreators,
trace: true,
traceLimit: 25,
});
const store = createStore(
reducer,
preloadedState,
composeEnhancers(applyMiddleware(invariant(), thunk)),
);
if (module.hot) {
// Enable Webpack hot module replacement for reducers
module.hot.accept('../reducers', () => {
store.replaceReducer(require('../reducers').default);
});
}
return store;
}

View File

@ -0,0 +1,73 @@
import expect from 'expect';
import { applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import * as actions from '../../actions/counter';
const middlewares = [thunk];
/*
* Creates a mock of Redux store with middleware.
*/
function mockStore(getState, expectedActions, onLastAction) {
if (!Array.isArray(expectedActions)) {
throw new Error('expectedActions should be an array of expected actions.');
}
if (
typeof onLastAction !== 'undefined' &&
typeof onLastAction !== 'function'
) {
throw new Error('onLastAction should either be undefined or function.');
}
function mockStoreWithoutMiddleware() {
return {
getState() {
return typeof getState === 'function' ? getState() : getState;
},
dispatch(action) {
const expectedAction = expectedActions.shift();
expect(action).toEqual(expectedAction);
if (onLastAction && !expectedActions.length) {
onLastAction();
}
return action;
},
};
}
const mockStoreWithMiddleware = applyMiddleware(...middlewares)(
mockStoreWithoutMiddleware,
);
return mockStoreWithMiddleware();
}
describe('actions', () => {
it('increment should create increment action', () => {
expect(actions.increment()).toEqual({ type: actions.INCREMENT_COUNTER });
});
it('decrement should create decrement action', () => {
expect(actions.decrement()).toEqual({ type: actions.DECREMENT_COUNTER });
});
it('incrementIfOdd should create increment action', (done) => {
const expectedActions = [{ type: actions.INCREMENT_COUNTER }];
const store = mockStore({ counter: 1 }, expectedActions, done);
store.dispatch(actions.incrementIfOdd());
});
it('incrementIfOdd shouldnt create increment action if counter is even', (done) => {
const expectedActions = [];
const store = mockStore({ counter: 2 }, expectedActions);
store.dispatch(actions.incrementIfOdd());
done();
});
it('incrementAsync should create increment action', (done) => {
const expectedActions = [{ type: actions.INCREMENT_COUNTER }];
const store = mockStore({ counter: 0 }, expectedActions, done);
store.dispatch(actions.incrementAsync(100));
});
});

View File

@ -0,0 +1,53 @@
import expect from 'expect';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import Counter from '../../components/Counter';
function setup() {
const actions = {
increment: expect.createSpy(),
incrementIfOdd: expect.createSpy(),
incrementAsync: expect.createSpy(),
decrement: expect.createSpy(),
};
const component = TestUtils.renderIntoDocument(
<Counter counter={1} {...actions} />,
);
return {
component: component,
actions: actions,
buttons: TestUtils.scryRenderedDOMComponentsWithTag(component, 'button'),
p: TestUtils.findRenderedDOMComponentWithTag(component, 'p'),
};
}
describe('Counter component', () => {
it('should display count', () => {
const { p } = setup();
expect(p.textContent).toMatch(/^Clicked: 1 times/);
});
it('first button should call increment', () => {
const { buttons, actions } = setup();
TestUtils.Simulate.click(buttons[0]);
expect(actions.increment).toHaveBeenCalled();
});
it('second button should call decrement', () => {
const { buttons, actions } = setup();
TestUtils.Simulate.click(buttons[1]);
expect(actions.decrement).toHaveBeenCalled();
});
it('third button should call incrementIfOdd', () => {
const { buttons, actions } = setup();
TestUtils.Simulate.click(buttons[2]);
expect(actions.incrementIfOdd).toHaveBeenCalled();
});
it('fourth button should call incrementAsync', () => {
const { buttons, actions } = setup();
TestUtils.Simulate.click(buttons[3]);
expect(actions.incrementAsync).toHaveBeenCalled();
});
});

View File

@ -0,0 +1,53 @@
import expect from 'expect';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import { Provider } from 'react-redux';
import App from '../../containers/App';
import configureStore from '../../store/configureStore';
function setup(initialState) {
const store = configureStore(initialState);
const app = TestUtils.renderIntoDocument(
<Provider store={store}>
<App />
</Provider>,
);
return {
app: app,
buttons: TestUtils.scryRenderedDOMComponentsWithTag(app, 'button'),
p: TestUtils.findRenderedDOMComponentWithTag(app, 'p'),
};
}
describe('containers', () => {
describe('App', () => {
it('should display initial count', () => {
const { p } = setup();
expect(p.textContent).toMatch(/^Clicked: 0 times/);
});
it('should display updated count after increment button click', () => {
const { buttons, p } = setup();
TestUtils.Simulate.click(buttons[0]);
expect(p.textContent).toMatch(/^Clicked: 1 times/);
});
it('should display updated count after decrement button click', () => {
const { buttons, p } = setup();
TestUtils.Simulate.click(buttons[1]);
expect(p.textContent).toMatch(/^Clicked: -1 times/);
});
it('shouldnt change if even and if odd button clicked', () => {
const { buttons, p } = setup();
TestUtils.Simulate.click(buttons[2]);
expect(p.textContent).toMatch(/^Clicked: 0 times/);
});
it('should change if odd and if odd button clicked', () => {
const { buttons, p } = setup({ counter: 1 });
TestUtils.Simulate.click(buttons[2]);
expect(p.textContent).toMatch(/^Clicked: 2 times/);
});
});
});

View File

@ -0,0 +1,23 @@
import expect from 'expect';
import counter from '../../reducers/counter';
import { INCREMENT_COUNTER, DECREMENT_COUNTER } from '../../actions/counter';
describe('reducers', () => {
describe('counter', () => {
it('should handle initial state', () => {
expect(counter(undefined, {})).toBe(0);
});
it('should handle INCREMENT_COUNTER', () => {
expect(counter(1, { type: INCREMENT_COUNTER })).toBe(2);
});
it('should handle DECREMENT_COUNTER', () => {
expect(counter(1, { type: DECREMENT_COUNTER })).toBe(0);
});
it('should handle unknown action type', () => {
expect(counter(1, { type: 'unknown' })).toBe(1);
});
});
});

View File

@ -0,0 +1,5 @@
import { jsdom } from 'jsdom';
global.document = jsdom('<!doctype html><html><body></body></html>');
global.window = document.defaultView;
global.navigator = global.window.navigator;

View File

@ -0,0 +1,23 @@
var path = require('path');
var webpack = require('webpack');
module.exports = {
mode: 'development',
devtool: 'source-map',
entry: ['webpack-hot-middleware/client', './index'],
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: '/static/',
},
plugins: [new webpack.HotModuleReplacementPlugin()],
module: {
rules: [
{
test: /\.js$/,
loaders: ['babel-loader'],
exclude: /node_modules/,
},
],
},
};

View File

@ -0,0 +1,3 @@
{
"presets": ["es2015", "stage-0", "react"]
}

View File

@ -0,0 +1,62 @@
import React, { Component } from 'react';
const withDevTools =
// process.env.NODE_ENV === 'development' &&
typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;
class Counter extends Component {
constructor() {
super();
this.state = { counter: 0 };
this.increment = this.increment.bind(this);
this.decrement = this.decrement.bind(this);
}
componentWillMount() {
if (withDevTools) {
this.devTools = window.__REDUX_DEVTOOLS_EXTENSION__.connect();
this.unsubscribe = this.devTools.subscribe((message) => {
// Implement monitors actions.
// For example time traveling:
if (
message.type === 'DISPATCH' &&
message.payload.type === 'JUMP_TO_STATE'
) {
this.setState(message.state);
}
});
}
}
componentWillUnmount() {
if (withDevTools) {
this.unsubscribe(); // Use if you have other subscribers from other components.
window.__REDUX_DEVTOOLS_EXTENSION__.disconnect(); // If there aren't other subscribers.
}
}
increment() {
const state = { counter: this.state.counter + 1 };
if (withDevTools) this.devTools.send('increment', state);
this.setState(state);
}
decrement() {
const state = { counter: this.state.counter - 1 };
if (withDevTools) this.devTools.send('decrement', state);
this.setState(state);
}
render() {
const { counter } = this.state;
return (
<p>
Clicked: {counter} times <button onClick={this.increment}>+</button>{' '}
<button onClick={this.decrement}>-</button>
</p>
);
}
}
export default Counter;

View File

@ -0,0 +1,10 @@
<!doctype html>
<html>
<head>
<title>React counter example</title>
</head>
<body>
<div id="root"></div>
<script src="/static/bundle.js"></script>
</body>
</html>

View File

@ -0,0 +1,5 @@
import React from 'react';
import { render } from 'react-dom';
import Counter from './components/Counter';
render(<Counter />, document.getElementById('root'));

View File

@ -0,0 +1,33 @@
{
"name": "react-counter-example",
"version": "0.0.0",
"description": "React counter example",
"scripts": {
"start": "webpack-dev-server --progress"
},
"repository": {
"type": "git",
"url": "https://github.com/zalmoxisus/redux-devtools-extension.git"
},
"license": "MIT",
"bugs": {
"url": "https://github.com/zalmoxisus/redux-devtools-extension/issues"
},
"homepage": "https://github.com/zalmoxisus/redux-devtools-extension",
"dependencies": {
"react": "^16.0.0",
"react-dom": "^16.0.0"
},
"devDependencies": {
"babel-cli": "^6.3.17",
"babel-core": "^6.3.17",
"babel-loader": "^7.0.0",
"babel-preset-es2015": "^6.0.0",
"babel-preset-react": "6.3.13",
"babel-preset-stage-0": "^6.3.13",
"webpack": "^4.0.0",
"webpack-cli": "^3.2.0",
"webpack-dev-server": "^3.0.0",
"webpack-hot-middleware": "^2.2.0"
}
}

View File

@ -0,0 +1,25 @@
var path = require('path');
var webpack = require('webpack');
module.exports = {
mode: 'development',
devtool: 'source-map',
entry: ['./index'],
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: '/static/',
},
module: {
rules: [
{
test: /\.js$/,
loaders: ['babel-loader'],
exclude: /node_modules/,
},
],
},
devServer: {
port: 4004,
},
};

View File

@ -0,0 +1,4 @@
{
"presets": ["es2015", "stage-0", "react"],
"plugins": ["add-module-exports", "transform-decorators-legacy"]
}

View File

@ -0,0 +1,25 @@
import * as types from '../constants/ActionTypes';
export function addTodo(text) {
return { type: types.ADD_TODO, text };
}
export function deleteTodo(id) {
return { type: types.DELETE_TODO, id };
}
export function editTodo(id, text) {
return { type: types.EDIT_TODO, id, text };
}
export function completeTodo(id) {
return { type: types.COMPLETE_TODO, id };
}
export function completeAll() {
return { type: types.COMPLETE_ALL };
}
export function clearCompleted() {
return { type: types.CLEAR_COMPLETED };
}

View File

@ -0,0 +1,76 @@
import React, { PropTypes, Component } from 'react';
import classnames from 'classnames';
import {
SHOW_ALL,
SHOW_COMPLETED,
SHOW_ACTIVE,
} from '../constants/TodoFilters';
const FILTER_TITLES = {
[SHOW_ALL]: 'All',
[SHOW_ACTIVE]: 'Active',
[SHOW_COMPLETED]: 'Completed',
};
class Footer extends Component {
renderTodoCount() {
const { activeCount } = this.props;
const itemWord = activeCount === 1 ? 'item' : 'items';
return (
<span className="todo-count">
<strong>{activeCount || 'No'}</strong> {itemWord} left
</span>
);
}
renderFilterLink(filter) {
const title = FILTER_TITLES[filter];
const { filter: selectedFilter, onShow } = this.props;
return (
<a
className={classnames({ selected: filter === selectedFilter })}
style={{ cursor: 'pointer' }}
onClick={() => onShow(filter)}
>
{title}
</a>
);
}
renderClearButton() {
const { completedCount, onClearCompleted } = this.props;
if (completedCount > 0) {
return (
<button className="clear-completed" onClick={onClearCompleted}>
Clear completed
</button>
);
}
}
render() {
return (
<footer className="footer">
{this.renderTodoCount()}
<ul className="filters">
{[SHOW_ALL, SHOW_ACTIVE, SHOW_COMPLETED].map((filter) => (
<li key={filter}>{this.renderFilterLink(filter)}</li>
))}
</ul>
{this.renderClearButton()}
</footer>
);
}
}
Footer.propTypes = {
completedCount: PropTypes.number.isRequired,
activeCount: PropTypes.number.isRequired,
filter: PropTypes.string.isRequired,
onClearCompleted: PropTypes.func.isRequired,
onShow: PropTypes.func.isRequired,
};
export default Footer;

View File

@ -0,0 +1,30 @@
import React, { PropTypes, Component } from 'react';
import TodoTextInput from './TodoTextInput';
class Header extends Component {
handleSave(text) {
if (text.length !== 0) {
this.props.addTodo(text);
}
}
render() {
const { path } = this.props;
return (
<header className="header">
<h1 style={{ fontSize: 80 }}>{path}</h1>
<TodoTextInput
newTodo
onSave={this.handleSave.bind(this)}
placeholder="What needs to be done?"
/>
</header>
);
}
}
Header.propTypes = {
addTodo: PropTypes.func.isRequired,
};
export default Header;

View File

@ -0,0 +1,94 @@
import React, { Component, PropTypes } from 'react';
import TodoItem from './TodoItem';
import Footer from './Footer';
import {
SHOW_ALL,
SHOW_COMPLETED,
SHOW_ACTIVE,
} from '../constants/TodoFilters';
const TODO_FILTERS = {
[SHOW_ALL]: () => true,
[SHOW_ACTIVE]: (todo) => !todo.completed,
[SHOW_COMPLETED]: (todo) => todo.completed,
};
class MainSection extends Component {
constructor(props, context) {
super(props, context);
this.state = { filter: SHOW_ALL };
}
handleClearCompleted() {
const atLeastOneCompleted = this.props.todos.some((todo) => todo.completed);
if (atLeastOneCompleted) {
this.props.actions.clearCompleted();
}
}
handleShow(filter) {
this.setState({ filter });
}
renderToggleAll(completedCount) {
const { todos, actions } = this.props;
if (todos.length > 0) {
return (
<input
className="toggle-all"
type="checkbox"
checked={completedCount === todos.length}
onChange={actions.completeAll}
/>
);
}
}
renderFooter(completedCount) {
const { todos } = this.props;
const { filter } = this.state;
const activeCount = todos.length - completedCount;
if (todos.length) {
return (
<Footer
completedCount={completedCount}
activeCount={activeCount}
filter={filter}
onClearCompleted={this.handleClearCompleted.bind(this)}
onShow={this.handleShow.bind(this)}
/>
);
}
}
render() {
const { todos, actions } = this.props;
const { filter } = this.state;
const filteredTodos = todos.filter(TODO_FILTERS[filter]);
const completedCount = todos.reduce(
(count, todo) => (todo.completed ? count + 1 : count),
0,
);
return (
<section className="main">
{this.renderToggleAll(completedCount)}
<ul className="todo-list">
{filteredTodos.map((todo) => (
<TodoItem key={todo.id} todo={todo} {...actions} />
))}
</ul>
{this.renderFooter(completedCount)}
</section>
);
}
}
MainSection.propTypes = {
todos: PropTypes.array.isRequired,
actions: PropTypes.object.isRequired,
};
export default MainSection;

View File

@ -0,0 +1,75 @@
import React, { Component, PropTypes } from 'react';
import classnames from 'classnames';
import TodoTextInput from './TodoTextInput';
class TodoItem extends Component {
constructor(props, context) {
super(props, context);
this.state = {
editing: false,
};
}
handleDoubleClick() {
this.setState({ editing: true });
}
handleSave(id, text) {
if (text.length === 0) {
this.props.deleteTodo(id);
} else {
this.props.editTodo(id, text);
}
this.setState({ editing: false });
}
render() {
const { todo, completeTodo, deleteTodo } = this.props;
let element;
if (this.state.editing) {
element = (
<TodoTextInput
text={todo.text}
editing={this.state.editing}
onSave={(text) => this.handleSave(todo.id, text)}
/>
);
} else {
element = (
<div className="view">
<input
className="toggle"
type="checkbox"
checked={todo.completed}
onChange={() => completeTodo(todo.id)}
/>
<label onDoubleClick={this.handleDoubleClick.bind(this)}>
{todo.text}
</label>
<button className="destroy" onClick={() => deleteTodo(todo.id)} />
</div>
);
}
return (
<li
className={classnames({
completed: todo.completed,
editing: this.state.editing,
})}
>
{element}
</li>
);
}
}
TodoItem.propTypes = {
todo: PropTypes.object.isRequired,
editTodo: PropTypes.func.isRequired,
deleteTodo: PropTypes.func.isRequired,
completeTodo: PropTypes.func.isRequired,
};
export default TodoItem;

View File

@ -0,0 +1,59 @@
import React, { Component, PropTypes } from 'react';
import classnames from 'classnames';
class TodoTextInput extends Component {
constructor(props, context) {
super(props, context);
this.state = {
text: this.props.text || '',
};
}
handleSubmit(e) {
const text = e.target.value.trim();
if (e.which === 13) {
this.props.onSave(text);
if (this.props.newTodo) {
this.setState({ text: '' });
}
}
}
handleChange(e) {
this.setState({ text: e.target.value });
}
handleBlur(e) {
if (!this.props.newTodo) {
this.props.onSave(e.target.value);
}
}
render() {
return (
<input
className={classnames({
edit: this.props.editing,
'new-todo': this.props.newTodo,
})}
type="text"
placeholder={this.props.placeholder}
autoFocus="true"
value={this.state.text}
onBlur={this.handleBlur.bind(this)}
onChange={this.handleChange.bind(this)}
onKeyDown={this.handleSubmit.bind(this)}
/>
);
}
}
TodoTextInput.propTypes = {
onSave: PropTypes.func.isRequired,
text: PropTypes.string,
placeholder: PropTypes.string,
editing: PropTypes.bool,
newTodo: PropTypes.bool,
};
export default TodoTextInput;

View File

@ -0,0 +1,6 @@
export const ADD_TODO = 'ADD_TODO';
export const DELETE_TODO = 'DELETE_TODO';
export const EDIT_TODO = 'EDIT_TODO';
export const COMPLETE_TODO = 'COMPLETE_TODO';
export const COMPLETE_ALL = 'COMPLETE_ALL';
export const CLEAR_COMPLETED = 'CLEAR_COMPLETED';

View File

@ -0,0 +1,3 @@
export const SHOW_ALL = 'show_all';
export const SHOW_COMPLETED = 'show_completed';
export const SHOW_ACTIVE = 'show_active';

View File

@ -0,0 +1,38 @@
import React, { Component, PropTypes } from 'react';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import Header from '../components/Header';
import MainSection from '../components/MainSection';
import * as TodoActions from '../actions/todos';
class App extends Component {
render() {
const { todos, path, actions } = this.props;
return (
<div>
<Header addTodo={actions.addTodo} path={path} />
<MainSection todos={todos} actions={actions} />
</div>
);
}
}
App.propTypes = {
todos: PropTypes.array.isRequired,
actions: PropTypes.object.isRequired,
};
function mapStateToProps(state) {
return {
todos: state.todos,
path: state.router.location.pathname,
};
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(TodoActions, dispatch),
};
}
export default connect(mapStateToProps, mapDispatchToProps)(App);

View File

@ -0,0 +1,21 @@
import React, { Component, PropTypes } from 'react';
import { Provider } from 'react-redux';
import { Route, Redirect } from 'react-router';
import { ReduxRouter } from 'redux-router';
import Wrapper from './Wrapper';
import App from './App';
class Root extends Component {
render() {
return (
<ReduxRouter>
<Redirect from="/" to="Standard Todo" />
<Route path="/" component={Wrapper}>
<Route path="/:id" component={App} />
</Route>
</ReduxRouter>
);
}
}
export default Root;

View File

@ -0,0 +1,68 @@
import React, { Component, PropTypes } from 'react';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { pushState } from 'redux-router';
import { Route, Link } from 'react-router';
import * as TodoActions from '../actions/todos';
function mapDispatchToProps(dispatch) {
return {
pushState: bindActionCreators(pushState, dispatch),
actions: bindActionCreators(TodoActions, dispatch),
};
}
@connect((state) => ({}), mapDispatchToProps)
class Wrapper extends Component {
static propTypes = {
children: PropTypes.node,
};
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick(event) {
event.preventDefault();
const { actions, pushState } = this.props;
const path = event.target.innerText;
pushState(null, path);
console.log('Navigate to', path);
if (this.timeout) clearInterval(this.timeout);
if (path === 'AutoTodo') {
console.log('!');
this.timeout = setInterval(() => {
actions.addTodo('Auto generated task');
}, 100);
}
}
render() {
return (
<div>
<div
style={{
padding: 20,
backgroundColor: '#eee',
fontWeight: 'bold',
textAlign: 'center',
}}
>
<a href="#" onClick={this.handleClick}>
Standard Todo
</a>{' '}
|{' '}
<a href="#" onClick={this.handleClick}>
AutoTodo
</a>
</div>
{this.props.children}
</div>
);
}
}
export default Wrapper;

View File

@ -0,0 +1,10 @@
<!doctype html>
<html>
<head>
<title>Redux TodoMVC example</title>
</head>
<body>
<div class="todoapp" id="root"></div>
<script src="/static/bundle.js"></script>
</body>
</html>

View File

@ -0,0 +1,16 @@
import 'babel-polyfill';
import React from 'react';
import { render } from 'react-dom';
import { Provider } from 'react-redux';
import Root from './containers/Root';
import configureStore from './store/configureStore';
import 'todomvc-app-css/index.css';
const store = configureStore();
render(
<Provider store={store}>
<Root />
</Provider>,
document.getElementById('root'),
);

View File

@ -0,0 +1,53 @@
{
"name": "redux-todomvc-example",
"version": "0.0.0",
"description": "Redux TodoMVC example",
"scripts": {
"start": "node server.js",
"test": "NODE_ENV=test mocha --recursive --compilers js:babel-core/register --require ./test/setup.js",
"test:watch": "npm test -- --watch"
},
"repository": {
"type": "git",
"url": "https://github.com/rackt/redux.git"
},
"license": "MIT",
"bugs": {
"url": "https://github.com/rackt/redux/issues"
},
"homepage": "http://rackt.github.io/redux",
"dependencies": {
"classnames": "^2.1.2",
"history": "^1.13.1",
"react": "^0.14.0",
"react-dom": "^0.14.0",
"react-redux": "^4.0.0",
"react-router": "^1.0.2",
"redux": "^3.0.0",
"redux-router": "^1.0.0-beta5"
},
"devDependencies": {
"babel-core": "^6.3.15",
"babel-loader": "^6.2.0",
"babel-plugin-add-module-exports": "^0.1.1",
"babel-plugin-react-transform": "^2.0.0-beta1",
"babel-plugin-transform-decorators-legacy": "^1.2.0",
"babel-polyfill": "^6.3.14",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-stage-0": "^6.3.13",
"expect": "^1.8.0",
"express": "^4.13.3",
"jsdom": "^5.6.1",
"mocha": "^2.2.5",
"node-libs-browser": "^0.5.2",
"raw-loader": "^0.5.1",
"react-addons-test-utils": "^0.14.0",
"react-transform-hmr": "^1.0.0",
"style-loader": "^0.12.3",
"todomvc-app-css": "^2.0.1",
"webpack": "^1.9.11",
"webpack-dev-middleware": "^1.2.0",
"webpack-hot-middleware": "^2.2.0"
}
}

View File

@ -0,0 +1,10 @@
import { combineReducers } from 'redux';
import { routerStateReducer } from 'redux-router';
import todos from './todos';
const rootReducer = combineReducers({
todos,
router: routerStateReducer,
});
export default rootReducer;

View File

@ -0,0 +1,61 @@
import {
ADD_TODO,
DELETE_TODO,
EDIT_TODO,
COMPLETE_TODO,
COMPLETE_ALL,
CLEAR_COMPLETED,
} from '../constants/ActionTypes';
const initialState = [
{
text: 'Use Redux',
completed: false,
id: 0,
},
];
export default function todos(state = initialState, action) {
switch (action.type) {
case ADD_TODO:
return [
{
id: state.reduce((maxId, todo) => Math.max(todo.id, maxId), -1) + 1,
completed: false,
text: action.text,
},
...state,
];
case DELETE_TODO:
return state.filter((todo) => todo.id !== action.id);
case EDIT_TODO:
return state.map((todo) =>
todo.id === action.id
? Object.assign({}, todo, { text: action.text })
: todo,
);
case COMPLETE_TODO:
return state.map((todo) =>
todo.id === action.id
? Object.assign({}, todo, { completed: !todo.completed })
: todo,
);
case COMPLETE_ALL:
const areAllMarked = state.every((todo) => todo.completed);
return state.map((todo) =>
Object.assign({}, todo, {
completed: !areAllMarked,
}),
);
case CLEAR_COMPLETED:
return state.filter((todo) => todo.completed === false);
default:
return state;
}
}

View File

@ -0,0 +1,32 @@
var webpack = require('webpack');
var webpackDevMiddleware = require('webpack-dev-middleware');
var webpackHotMiddleware = require('webpack-hot-middleware');
var config = require('./webpack.config');
var app = new require('express')();
var port = 4002;
var compiler = webpack(config);
app.use(
webpackDevMiddleware(compiler, {
noInfo: true,
publicPath: config.output.publicPath,
}),
);
app.use(webpackHotMiddleware(compiler));
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
app.listen(port, function (error) {
if (error) {
console.error(error);
} else {
console.info(
'==> 🌎 Listening on port %s. Open up http://localhost:%s/ in your browser.',
port,
port,
);
}
});

View File

@ -0,0 +1,28 @@
import { createStore, compose } from 'redux';
import {
reduxReactRouter,
routerStateReducer,
ReduxRouter,
} from 'redux-router';
//import createHistory from 'history/lib/createBrowserHistory';
import createHistory from 'history/lib/createHashHistory';
import rootReducer from '../reducers';
export default function configureStore(initialState) {
let finalCreateStore = compose(
reduxReactRouter({ createHistory }),
global.devToolsExtension ? global.devToolsExtension() : (f) => f,
)(createStore);
const store = finalCreateStore(rootReducer, initialState);
if (module.hot) {
// Enable Webpack hot module replacement for reducers
module.hot.accept('../reducers', () => {
const nextReducer = require('../reducers');
store.replaceReducer(nextReducer);
});
}
return store;
}

View File

@ -0,0 +1,46 @@
import expect from 'expect';
import * as types from '../../constants/ActionTypes';
import * as actions from '../../actions/todos';
describe('todo actions', () => {
it('addTodo should create ADD_TODO action', () => {
expect(actions.addTodo('Use Redux')).toEqual({
type: types.ADD_TODO,
text: 'Use Redux',
});
});
it('deleteTodo should create DELETE_TODO action', () => {
expect(actions.deleteTodo(1)).toEqual({
type: types.DELETE_TODO,
id: 1,
});
});
it('editTodo should create EDIT_TODO action', () => {
expect(actions.editTodo(1, 'Use Redux everywhere')).toEqual({
type: types.EDIT_TODO,
id: 1,
text: 'Use Redux everywhere',
});
});
it('completeTodo should create COMPLETE_TODO action', () => {
expect(actions.completeTodo(1)).toEqual({
type: types.COMPLETE_TODO,
id: 1,
});
});
it('completeAll should create COMPLETE_ALL action', () => {
expect(actions.completeAll()).toEqual({
type: types.COMPLETE_ALL,
});
});
it('clearCompleted should create CLEAR_COMPLETED action', () => {
expect(actions.clearCompleted('Use Redux')).toEqual({
type: types.CLEAR_COMPLETED,
});
});
});

View File

@ -0,0 +1,108 @@
import expect from 'expect';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import Footer from '../../components/Footer';
import { SHOW_ALL, SHOW_ACTIVE } from '../../constants/TodoFilters';
function setup(propOverrides) {
const props = Object.assign(
{
completedCount: 0,
activeCount: 0,
filter: SHOW_ALL,
onClearCompleted: expect.createSpy(),
onShow: expect.createSpy(),
},
propOverrides,
);
const renderer = TestUtils.createRenderer();
renderer.render(<Footer {...props} />);
const output = renderer.getRenderOutput();
return {
props: props,
output: output,
};
}
function getTextContent(elem) {
const children = Array.isArray(elem.props.children)
? elem.props.children
: [elem.props.children];
return children.reduce(function concatText(out, child) {
// Children are either elements or text strings
return out + (child.props ? getTextContent(child) : child);
}, '');
}
describe('components', () => {
describe('Footer', () => {
it('should render container', () => {
const { output } = setup();
expect(output.type).toBe('footer');
expect(output.props.className).toBe('footer');
});
it('should display active count when 0', () => {
const { output } = setup({ activeCount: 0 });
const [count] = output.props.children;
expect(getTextContent(count)).toBe('No items left');
});
it('should display active count when above 0', () => {
const { output } = setup({ activeCount: 1 });
const [count] = output.props.children;
expect(getTextContent(count)).toBe('1 item left');
});
it('should render filters', () => {
const { output } = setup();
const [, filters] = output.props.children;
expect(filters.type).toBe('ul');
expect(filters.props.className).toBe('filters');
expect(filters.props.children.length).toBe(3);
filters.props.children.forEach(function checkFilter(filter, i) {
expect(filter.type).toBe('li');
const a = filter.props.children;
expect(a.props.className).toBe(i === 0 ? 'selected' : '');
expect(a.props.children).toBe(
{
0: 'All',
1: 'Active',
2: 'Completed',
}[i],
);
});
});
it('should call onShow when a filter is clicked', () => {
const { output, props } = setup();
const [, filters] = output.props.children;
const filterLink = filters.props.children[1].props.children;
filterLink.props.onClick({});
expect(props.onShow).toHaveBeenCalledWith(SHOW_ACTIVE);
});
it('shouldnt show clear button when no completed todos', () => {
const { output } = setup({ completedCount: 0 });
const [, , clear] = output.props.children;
expect(clear).toBe(undefined);
});
it('should render clear button when completed todos', () => {
const { output } = setup({ completedCount: 1 });
const [, , clear] = output.props.children;
expect(clear.type).toBe('button');
expect(clear.props.children).toBe('Clear completed');
});
it('should call onClearCompleted on clear button click', () => {
const { output, props } = setup({ completedCount: 1 });
const [, , clear] = output.props.children;
clear.props.onClick({});
expect(props.onClearCompleted).toHaveBeenCalled();
});
});
});

View File

@ -0,0 +1,50 @@
import expect from 'expect';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import Header from '../../components/Header';
import TodoTextInput from '../../components/TodoTextInput';
function setup() {
const props = {
addTodo: expect.createSpy(),
};
const renderer = TestUtils.createRenderer();
renderer.render(<Header {...props} />);
const output = renderer.getRenderOutput();
return {
props: props,
output: output,
renderer: renderer,
};
}
describe('components', () => {
describe('Header', () => {
it('should render correctly', () => {
const { output } = setup();
expect(output.type).toBe('header');
expect(output.props.className).toBe('header');
const [h1, input] = output.props.children;
expect(h1.type).toBe('h1');
expect(h1.props.children).toBe('todos');
expect(input.type).toBe(TodoTextInput);
expect(input.props.newTodo).toBe(true);
expect(input.props.placeholder).toBe('What needs to be done?');
});
it('should call call addTodo if length of text is greater than 0', () => {
const { output, props } = setup();
const input = output.props.children[1];
input.props.onSave('');
expect(props.addTodo.calls.length).toBe(0);
input.props.onSave('Use Redux');
expect(props.addTodo.calls.length).toBe(1);
});
});
});

View File

@ -0,0 +1,150 @@
import expect from 'expect';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import MainSection from '../../components/MainSection';
import TodoItem from '../../components/TodoItem';
import Footer from '../../components/Footer';
import { SHOW_ALL, SHOW_COMPLETED } from '../../constants/TodoFilters';
function setup(propOverrides) {
const props = Object.assign(
{
todos: [
{
text: 'Use Redux',
completed: false,
id: 0,
},
{
text: 'Run the tests',
completed: true,
id: 1,
},
],
actions: {
editTodo: expect.createSpy(),
deleteTodo: expect.createSpy(),
completeTodo: expect.createSpy(),
completeAll: expect.createSpy(),
clearCompleted: expect.createSpy(),
},
},
propOverrides,
);
const renderer = TestUtils.createRenderer();
renderer.render(<MainSection {...props} />);
const output = renderer.getRenderOutput();
return {
props: props,
output: output,
renderer: renderer,
};
}
describe('components', () => {
describe('MainSection', () => {
it('should render container', () => {
const { output } = setup();
expect(output.type).toBe('section');
expect(output.props.className).toBe('main');
});
describe('toggle all input', () => {
it('should render', () => {
const { output } = setup();
const [toggle] = output.props.children;
expect(toggle.type).toBe('input');
expect(toggle.props.type).toBe('checkbox');
expect(toggle.props.checked).toBe(false);
});
it('should be checked if all todos completed', () => {
const { output } = setup({
todos: [
{
text: 'Use Redux',
completed: true,
id: 0,
},
],
});
const [toggle] = output.props.children;
expect(toggle.props.checked).toBe(true);
});
it('should call completeAll on change', () => {
const { output, props } = setup();
const [toggle] = output.props.children;
toggle.props.onChange({});
expect(props.actions.completeAll).toHaveBeenCalled();
});
});
describe('footer', () => {
it('should render', () => {
const { output } = setup();
const [, , footer] = output.props.children;
expect(footer.type).toBe(Footer);
expect(footer.props.completedCount).toBe(1);
expect(footer.props.activeCount).toBe(1);
expect(footer.props.filter).toBe(SHOW_ALL);
});
it('onShow should set the filter', () => {
const { output, renderer } = setup();
const [, , footer] = output.props.children;
footer.props.onShow(SHOW_COMPLETED);
const updated = renderer.getRenderOutput();
const [, , updatedFooter] = updated.props.children;
expect(updatedFooter.props.filter).toBe(SHOW_COMPLETED);
});
it('onClearCompleted should call clearCompleted', () => {
const { output, props } = setup();
const [, , footer] = output.props.children;
footer.props.onClearCompleted();
expect(props.actions.clearCompleted).toHaveBeenCalled();
});
it('onClearCompleted shouldnt call clearCompleted if no todos completed', () => {
const { output, props } = setup({
todos: [
{
text: 'Use Redux',
completed: false,
id: 0,
},
],
});
const [, , footer] = output.props.children;
footer.props.onClearCompleted();
expect(props.actions.clearCompleted.calls.length).toBe(0);
});
});
describe('todo list', () => {
it('should render', () => {
const { output, props } = setup();
const [, list] = output.props.children;
expect(list.type).toBe('ul');
expect(list.props.children.length).toBe(2);
list.props.children.forEach((item, i) => {
expect(item.type).toBe(TodoItem);
expect(item.props.todo).toBe(props.todos[i]);
});
});
it('should filter items', () => {
const { output, renderer, props } = setup();
const [, , footer] = output.props.children;
footer.props.onShow(SHOW_COMPLETED);
const updated = renderer.getRenderOutput();
const [, updatedList] = updated.props.children;
expect(updatedList.props.children.length).toBe(1);
expect(updatedList.props.children[0].props.todo).toBe(props.todos[1]);
});
});
});
});

View File

@ -0,0 +1,118 @@
import expect from 'expect';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import TodoItem from '../../components/TodoItem';
import TodoTextInput from '../../components/TodoTextInput';
function setup(editing = false) {
const props = {
todo: {
id: 0,
text: 'Use Redux',
completed: false,
},
editTodo: expect.createSpy(),
deleteTodo: expect.createSpy(),
completeTodo: expect.createSpy(),
};
const renderer = TestUtils.createRenderer();
renderer.render(<TodoItem {...props} />);
let output = renderer.getRenderOutput();
if (editing) {
const label = output.props.children.props.children[1];
label.props.onDoubleClick({});
output = renderer.getRenderOutput();
}
return {
props: props,
output: output,
renderer: renderer,
};
}
describe('components', () => {
describe('TodoItem', () => {
it('initial render', () => {
const { output } = setup();
expect(output.type).toBe('li');
expect(output.props.className).toBe('');
const div = output.props.children;
expect(div.type).toBe('div');
expect(div.props.className).toBe('view');
const [input, label, button] = div.props.children;
expect(input.type).toBe('input');
expect(input.props.checked).toBe(false);
expect(label.type).toBe('label');
expect(label.props.children).toBe('Use Redux');
expect(button.type).toBe('button');
expect(button.props.className).toBe('destroy');
});
it('input onChange should call completeTodo', () => {
const { output, props } = setup();
const input = output.props.children.props.children[0];
input.props.onChange({});
expect(props.completeTodo).toHaveBeenCalledWith(0);
});
it('button onClick should call deleteTodo', () => {
const { output, props } = setup();
const button = output.props.children.props.children[2];
button.props.onClick({});
expect(props.deleteTodo).toHaveBeenCalledWith(0);
});
it('label onDoubleClick should put component in edit state', () => {
const { output, renderer } = setup();
const label = output.props.children.props.children[1];
label.props.onDoubleClick({});
const updated = renderer.getRenderOutput();
expect(updated.type).toBe('li');
expect(updated.props.className).toBe('editing');
});
it('edit state render', () => {
const { output } = setup(true);
expect(output.type).toBe('li');
expect(output.props.className).toBe('editing');
const input = output.props.children;
expect(input.type).toBe(TodoTextInput);
expect(input.props.text).toBe('Use Redux');
expect(input.props.editing).toBe(true);
});
it('TodoTextInput onSave should call editTodo', () => {
const { output, props } = setup(true);
output.props.children.props.onSave('Use Redux');
expect(props.editTodo).toHaveBeenCalledWith(0, 'Use Redux');
});
it('TodoTextInput onSave should call deleteTodo if text is empty', () => {
const { output, props } = setup(true);
output.props.children.props.onSave('');
expect(props.deleteTodo).toHaveBeenCalledWith(0);
});
it('TodoTextInput onSave should exit component from edit state', () => {
const { output, renderer } = setup(true);
output.props.children.props.onSave('Use Redux');
const updated = renderer.getRenderOutput();
expect(updated.type).toBe('li');
expect(updated.props.className).toBe('');
});
});
});

View File

@ -0,0 +1,84 @@
import expect from 'expect';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import TodoTextInput from '../../components/TodoTextInput';
function setup(propOverrides) {
const props = Object.assign(
{
onSave: expect.createSpy(),
text: 'Use Redux',
placeholder: 'What needs to be done?',
editing: false,
newTodo: false,
},
propOverrides,
);
const renderer = TestUtils.createRenderer();
renderer.render(<TodoTextInput {...props} />);
let output = renderer.getRenderOutput();
output = renderer.getRenderOutput();
return {
props: props,
output: output,
renderer: renderer,
};
}
describe('components', () => {
describe('TodoTextInput', () => {
it('should render correctly', () => {
const { output } = setup();
expect(output.props.placeholder).toEqual('What needs to be done?');
expect(output.props.value).toEqual('Use Redux');
expect(output.props.className).toEqual('');
});
it('should render correctly when editing=true', () => {
const { output } = setup({ editing: true });
expect(output.props.className).toEqual('edit');
});
it('should render correctly when newTodo=true', () => {
const { output } = setup({ newTodo: true });
expect(output.props.className).toEqual('new-todo');
});
it('should update value on change', () => {
const { output, renderer } = setup();
output.props.onChange({ target: { value: 'Use Radox' } });
const updated = renderer.getRenderOutput();
expect(updated.props.value).toEqual('Use Radox');
});
it('should call onSave on return key press', () => {
const { output, props } = setup();
output.props.onKeyDown({ which: 13, target: { value: 'Use Redux' } });
expect(props.onSave).toHaveBeenCalledWith('Use Redux');
});
it('should reset state on return key press if newTodo', () => {
const { output, renderer } = setup({ newTodo: true });
output.props.onKeyDown({ which: 13, target: { value: 'Use Redux' } });
const updated = renderer.getRenderOutput();
expect(updated.props.value).toEqual('');
});
it('should call onSave on blur', () => {
const { output, props } = setup();
output.props.onBlur({ target: { value: 'Use Redux' } });
expect(props.onSave).toHaveBeenCalledWith('Use Redux');
});
it('shouldnt call onSave on blur if newTodo', () => {
const { output, props } = setup({ newTodo: true });
output.props.onBlur({ target: { value: 'Use Redux' } });
expect(props.onSave.calls.length).toBe(0);
});
});
});

View File

@ -0,0 +1,325 @@
import expect from 'expect';
import todos from '../../reducers/todos';
import * as types from '../../constants/ActionTypes';
describe('todos reducer', () => {
it('should handle initial state', () => {
expect(todos(undefined, {})).toEqual([
{
text: 'Use Redux',
completed: false,
id: 0,
},
]);
});
it('should handle ADD_TODO', () => {
expect(
todos([], {
type: types.ADD_TODO,
text: 'Run the tests',
}),
).toEqual([
{
text: 'Run the tests',
completed: false,
id: 0,
},
]);
expect(
todos(
[
{
text: 'Use Redux',
completed: false,
id: 0,
},
],
{
type: types.ADD_TODO,
text: 'Run the tests',
},
),
).toEqual([
{
text: 'Run the tests',
completed: false,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
]);
expect(
todos(
[
{
text: 'Run the tests',
completed: false,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
],
{
type: types.ADD_TODO,
text: 'Fix the tests',
},
),
).toEqual([
{
text: 'Fix the tests',
completed: false,
id: 2,
},
{
text: 'Run the tests',
completed: false,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
]);
});
it('should handle DELETE_TODO', () => {
expect(
todos(
[
{
text: 'Run the tests',
completed: false,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
],
{
type: types.DELETE_TODO,
id: 1,
},
),
).toEqual([
{
text: 'Use Redux',
completed: false,
id: 0,
},
]);
});
it('should handle EDIT_TODO', () => {
expect(
todos(
[
{
text: 'Run the tests',
completed: false,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
],
{
type: types.EDIT_TODO,
text: 'Fix the tests',
id: 1,
},
),
).toEqual([
{
text: 'Fix the tests',
completed: false,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
]);
});
it('should handle COMPLETE_TODO', () => {
expect(
todos(
[
{
text: 'Run the tests',
completed: false,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
],
{
type: types.COMPLETE_TODO,
id: 1,
},
),
).toEqual([
{
text: 'Run the tests',
completed: true,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
]);
});
it('should handle COMPLETE_ALL', () => {
expect(
todos(
[
{
text: 'Run the tests',
completed: true,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
],
{
type: types.COMPLETE_ALL,
},
),
).toEqual([
{
text: 'Run the tests',
completed: true,
id: 1,
},
{
text: 'Use Redux',
completed: true,
id: 0,
},
]);
// Unmark if all todos are currently completed
expect(
todos(
[
{
text: 'Run the tests',
completed: true,
id: 1,
},
{
text: 'Use Redux',
completed: true,
id: 0,
},
],
{
type: types.COMPLETE_ALL,
},
),
).toEqual([
{
text: 'Run the tests',
completed: false,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
]);
});
it('should handle CLEAR_COMPLETED', () => {
expect(
todos(
[
{
text: 'Run the tests',
completed: true,
id: 1,
},
{
text: 'Use Redux',
completed: false,
id: 0,
},
],
{
type: types.CLEAR_COMPLETED,
},
),
).toEqual([
{
text: 'Use Redux',
completed: false,
id: 0,
},
]);
});
it('should not generate duplicate ids after CLEAR_COMPLETED', () => {
expect(
[
{
type: types.COMPLETE_TODO,
id: 0,
},
{
type: types.CLEAR_COMPLETED,
},
{
type: types.ADD_TODO,
text: 'Write more tests',
},
].reduce(todos, [
{
id: 0,
completed: false,
text: 'Use Redux',
},
{
id: 1,
completed: false,
text: 'Write tests',
},
]),
).toEqual([
{
text: 'Write more tests',
completed: false,
id: 2,
},
{
text: 'Write tests',
completed: false,
id: 1,
},
]);
});
});

Some files were not shown because too many files have changed in this diff Show More