mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2024-11-24 10:33:58 +03:00
Enable linting for extension (#1769)
* Enable linting for extension * Update lock file
This commit is contained in:
parent
b934e80d23
commit
fdce076757
43
eslint.js.react.jest.config.base.mjs
Normal file
43
eslint.js.react.jest.config.base.mjs
Normal 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,
|
||||
},
|
||||
];
|
|
@ -1,3 +0,0 @@
|
|||
node_modules
|
||||
dist
|
||||
examples
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": "eslint-config-airbnb",
|
||||
"globals": {
|
||||
"chrome": true,
|
||||
"__DEVELOPMENT__": true
|
||||
},
|
||||
"env": {
|
||||
"browser": true,
|
||||
"node": true
|
||||
},
|
||||
"rules": {
|
||||
"react/jsx-uses-react": 2,
|
||||
"react/jsx-uses-vars": 2,
|
||||
"react/react-in-jsx-scope": 2,
|
||||
"react/jsx-quotes": 0,
|
||||
"block-scoped-var": 0,
|
||||
"padded-blocks": 0,
|
||||
"quotes": [1, "single"],
|
||||
"comma-style": [2, "last"],
|
||||
"no-use-before-define": [0, "nofunc"],
|
||||
"func-names": 0,
|
||||
"prefer-const": 0,
|
||||
"comma-dangle": 0,
|
||||
"id-length": 0,
|
||||
"indent": [2, 2, { "SwitchCase": 1 }],
|
||||
"new-cap": [2, { "capIsNewExceptions": ["Test"] }],
|
||||
"default-case": 0
|
||||
},
|
||||
"plugins": ["react"]
|
||||
}
|
38
extension/eslint.config.mjs
Normal file
38
extension/eslint.config.mjs
Normal 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,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
|
@ -3,7 +3,7 @@ module.exports = {
|
|||
testPathIgnorePatterns: ['<rootDir>/examples'],
|
||||
testEnvironment: 'jsdom',
|
||||
moduleNameMapper: {
|
||||
'\\.css$': '<rootDir>/test/__mocks__/styleMock.ts',
|
||||
'\\.css$': '<rootDir>/test/__mocks__/styleMock.js',
|
||||
},
|
||||
transformIgnorePatterns: [
|
||||
'node_modules/(?!.pnpm|@babel/code-frame|@babel/highlight|@babel/helper-validator-identifier|chalk|d3|dateformat|delaunator|internmap|jsondiffpatch|lodash-es|nanoid|robust-predicates|uuid)',
|
|
@ -17,9 +17,10 @@
|
|||
"clean": "rimraf dist && rimraf chrome/dist && rimraf edge/dist && rimraf firefox/dist",
|
||||
"test:app": "cross-env BABEL_ENV=test jest test/app",
|
||||
"test:chrome": "jest test/chrome",
|
||||
"build:test:electron:fixture": "webpack --config test/electron/fixture/webpack.config.js",
|
||||
"test:electron": "pnpm run build:test:electron:fixture && jest test/electron",
|
||||
"test": "pnpm run test:app && pnpm run test:chrome && pnpm run test:electron",
|
||||
"build:test:electron:fixture": "webpack --config test/electron/fixture/webpack.config.js",
|
||||
"lint": "eslint .",
|
||||
"type-check": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
|
@ -64,12 +65,7 @@
|
|||
"cross-env": "^7.0.3",
|
||||
"electron": "^31.6.0",
|
||||
"esbuild": "^0.23.1",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
"eslint-plugin-import": "^2.30.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.10.0",
|
||||
"eslint-plugin-react": "^7.36.1",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
"globals": "^15.9.0",
|
||||
"immutable": "^4.3.7",
|
||||
"jest": "^29.7.0",
|
||||
"jest-environment-jsdom": "^29.7.0",
|
||||
|
|
|
@ -31,19 +31,19 @@ type Props = StateProps & DispatchProps & OwnProps;
|
|||
|
||||
const isElectron = navigator.userAgent.includes('Electron');
|
||||
|
||||
function sendMessage(message: SingleMessage) {
|
||||
chrome.runtime.sendMessage(message);
|
||||
async function sendMessage(message: SingleMessage) {
|
||||
await chrome.runtime.sendMessage(message);
|
||||
}
|
||||
|
||||
class Actions extends Component<Props> {
|
||||
openWindow = (position: Position) => {
|
||||
sendMessage({ type: 'OPEN', position });
|
||||
openWindow = async (position: Position) => {
|
||||
await sendMessage({ type: 'OPEN', position });
|
||||
};
|
||||
openOptionsPage = () => {
|
||||
if (navigator.userAgent.indexOf('Firefox') !== -1) {
|
||||
sendMessage({ type: 'OPEN_OPTIONS' });
|
||||
openOptionsPage = async () => {
|
||||
if (navigator.userAgent.includes('Firefox')) {
|
||||
await sendMessage({ type: 'OPEN_OPTIONS' });
|
||||
} else {
|
||||
chrome.runtime.openOptionsPage();
|
||||
await chrome.runtime.openOptionsPage();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -85,7 +85,7 @@ class Actions extends Component<Props> {
|
|||
{features.import && <ImportButton />}
|
||||
{position &&
|
||||
(position !== '#popup' ||
|
||||
navigator.userAgent.indexOf('Firefox') !== -1) && <PrintButton />}
|
||||
navigator.userAgent.includes('Firefox')) && <PrintButton />}
|
||||
<Divider />
|
||||
<MonitorSelector />
|
||||
<Divider />
|
||||
|
@ -96,8 +96,8 @@ class Actions extends Component<Props> {
|
|||
<Divider />
|
||||
{!isElectron && (
|
||||
<Button
|
||||
onClick={() => {
|
||||
this.openWindow('window');
|
||||
onClick={async () => {
|
||||
await this.openWindow('window');
|
||||
}}
|
||||
>
|
||||
<MdOutlineWindow />
|
||||
|
@ -105,8 +105,8 @@ class Actions extends Component<Props> {
|
|||
)}
|
||||
{!isElectron && (
|
||||
<Button
|
||||
onClick={() => {
|
||||
this.openWindow('remote');
|
||||
onClick={async () => {
|
||||
await this.openWindow('remote');
|
||||
}}
|
||||
>
|
||||
<GoBroadcast />
|
||||
|
|
|
@ -27,6 +27,7 @@ class App extends Component<Props> {
|
|||
<a
|
||||
href="https://github.com/zalmoxisus/redux-devtools-extension#usage"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
the instructions
|
||||
</a>
|
||||
|
|
|
@ -6,7 +6,7 @@ export function createMenu() {
|
|||
{ id: 'devtools-remote', title: 'Open Remote DevTools' },
|
||||
];
|
||||
|
||||
let shortcuts: { [commandName: string]: string | undefined } = {};
|
||||
const shortcuts: { [commandName: string]: string | undefined } = {};
|
||||
chrome.commands.getAll((commands) => {
|
||||
for (const { name, shortcut } of commands) {
|
||||
shortcuts[name!] = shortcut;
|
||||
|
|
|
@ -15,7 +15,7 @@ chrome.commands.onCommand.addListener((shortcut) => {
|
|||
|
||||
// Disable the action by default and create the context menu when installed
|
||||
chrome.runtime.onInstalled.addListener(() => {
|
||||
chrome.action.disable();
|
||||
void chrome.action.disable();
|
||||
|
||||
getOptions((option) => {
|
||||
if (option.showContextMenus) createMenu();
|
||||
|
@ -32,6 +32,7 @@ chrome.storage.onChanged.addListener((changes) => {
|
|||
|
||||
// https://developer.chrome.com/docs/extensions/develop/migrate/to-service-workers#keep_a_service_worker_alive_continuously
|
||||
setInterval(
|
||||
() => chrome.storage.local.set({ 'last-heartbeat': new Date().getTime() }),
|
||||
() =>
|
||||
void chrome.storage.local.set({ 'last-heartbeat': new Date().getTime() }),
|
||||
20000,
|
||||
);
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
export type DevToolsPosition = 'devtools-window' | 'devtools-remote';
|
||||
|
||||
let windows: { [K in DevToolsPosition]?: number } = {};
|
||||
const windows: { [K in DevToolsPosition]?: number } = {};
|
||||
|
||||
export default function openDevToolsWindow(position: DevToolsPosition) {
|
||||
if (!windows[position]) {
|
||||
createWindow(position);
|
||||
} else {
|
||||
chrome.windows.update(windows[position]!, { focused: true }, () => {
|
||||
chrome.windows.update(windows[position], { focused: true }, () => {
|
||||
if (chrome.runtime.lastError) createWindow(position);
|
||||
});
|
||||
}
|
||||
|
@ -16,8 +16,8 @@ function createWindow(position: DevToolsPosition) {
|
|||
const url = chrome.runtime.getURL(getPath(position));
|
||||
chrome.windows.create({ type: 'popup', url }, (win) => {
|
||||
windows[position] = win!.id;
|
||||
if (navigator.userAgent.indexOf('Firefox') !== -1) {
|
||||
chrome.windows.update(win!.id!, { focused: true });
|
||||
if (navigator.userAgent.includes('Firefox')) {
|
||||
void chrome.windows.update(win!.id!, { focused: true });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -29,6 +29,6 @@ function getPath(position: DevToolsPosition) {
|
|||
case 'devtools-remote':
|
||||
return 'remote.html';
|
||||
default:
|
||||
throw new Error(`Unrecognized position: ${position}`);
|
||||
throw new Error('Unrecognized position');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -324,14 +324,8 @@ function toContentScript(messageBody: ToContentScriptMessage) {
|
|||
connections.tab[id!].postMessage({
|
||||
type: message,
|
||||
action,
|
||||
state: nonReduxDispatch(
|
||||
store,
|
||||
message,
|
||||
instanceId,
|
||||
action as AppDispatchAction,
|
||||
state,
|
||||
),
|
||||
id: instanceId.toString().replace(/^[^\/]+\//, ''),
|
||||
state: nonReduxDispatch(store, message, instanceId, action, state),
|
||||
id: instanceId.toString().replace(/^[^/]+\//, ''),
|
||||
});
|
||||
} else if (messageBody.message === 'IMPORT') {
|
||||
const { message, action, id, instanceId, state } = messageBody;
|
||||
|
@ -345,7 +339,7 @@ function toContentScript(messageBody: ToContentScriptMessage) {
|
|||
action as unknown as AppDispatchAction,
|
||||
state,
|
||||
),
|
||||
id: instanceId.toString().replace(/^[^\/]+\//, ''),
|
||||
id: instanceId.toString().replace(/^[^/]+\//, ''),
|
||||
});
|
||||
} else if (messageBody.message === 'ACTION') {
|
||||
const { message, action, id, instanceId, state } = messageBody;
|
||||
|
@ -359,7 +353,7 @@ function toContentScript(messageBody: ToContentScriptMessage) {
|
|||
action as unknown as AppDispatchAction,
|
||||
state,
|
||||
),
|
||||
id: instanceId.toString().replace(/^[^\/]+\//, ''),
|
||||
id: instanceId.toString().replace(/^[^/]+\//, ''),
|
||||
});
|
||||
} else if (messageBody.message === 'EXPORT') {
|
||||
const { message, action, id, instanceId, state } = messageBody;
|
||||
|
@ -373,11 +367,11 @@ function toContentScript(messageBody: ToContentScriptMessage) {
|
|||
action as unknown as AppDispatchAction,
|
||||
state,
|
||||
),
|
||||
id: instanceId.toString().replace(/^[^\/]+\//, ''),
|
||||
id: instanceId.toString().replace(/^[^/]+\//, ''),
|
||||
});
|
||||
} else {
|
||||
const { message, action, id, instanceId, state } = messageBody;
|
||||
connections.tab[id!].postMessage({
|
||||
connections.tab[id].postMessage({
|
||||
type: message,
|
||||
action,
|
||||
state: nonReduxDispatch(
|
||||
|
@ -387,7 +381,7 @@ function toContentScript(messageBody: ToContentScriptMessage) {
|
|||
action as AppDispatchAction,
|
||||
state,
|
||||
),
|
||||
id: (instanceId as number).toString().replace(/^[^\/]+\//, ''),
|
||||
id: (instanceId as number).toString().replace(/^[^/]+\//, ''),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -452,7 +446,7 @@ function messaging<S, A extends Action<string>>(
|
|||
return;
|
||||
}
|
||||
if (request.type === 'OPEN_OPTIONS') {
|
||||
chrome.runtime.openOptionsPage();
|
||||
void chrome.runtime.openOptionsPage();
|
||||
return;
|
||||
}
|
||||
if (request.type === 'OPTIONS') {
|
||||
|
@ -557,8 +551,8 @@ function onConnect<S, A extends Action<string>>(port: chrome.runtime.Port) {
|
|||
console.log(`Message from tab ${id}: ${msg.name}`);
|
||||
if (msg.name === 'INIT_INSTANCE') {
|
||||
if (typeof id === 'number') {
|
||||
chrome.action.enable(id);
|
||||
chrome.action.setIcon({ tabId: id, path: 'img/logo/38x38.png' });
|
||||
void chrome.action.enable(id);
|
||||
void chrome.action.setIcon({ tabId: id, path: 'img/logo/38x38.png' });
|
||||
}
|
||||
if (monitors > 0) port.postMessage({ type: 'START' });
|
||||
|
||||
|
@ -611,6 +605,7 @@ chrome.notifications.onClicked.addListener((id) => {
|
|||
openDevToolsWindow('devtools-window');
|
||||
});
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||
const api: Middleware<{}, BackgroundState, Dispatch<BackgroundAction>> =
|
||||
(store) => (next) => (untypedAction) => {
|
||||
const action = untypedAction as BackgroundAction;
|
||||
|
|
|
@ -9,28 +9,42 @@ if (
|
|||
isFirefox
|
||||
) {
|
||||
(chrome.runtime as any).onConnectExternal = {
|
||||
addListener() {},
|
||||
addListener() {
|
||||
// do nothing.
|
||||
},
|
||||
};
|
||||
(chrome.runtime as any).onMessageExternal = {
|
||||
addListener() {},
|
||||
addListener() {
|
||||
// do nothing.
|
||||
},
|
||||
};
|
||||
|
||||
if (isElectron) {
|
||||
(chrome.notifications as any) = {
|
||||
onClicked: {
|
||||
addListener() {},
|
||||
addListener() {
|
||||
// do nothing.
|
||||
},
|
||||
},
|
||||
create() {
|
||||
// do nothing.
|
||||
},
|
||||
clear() {
|
||||
// do nothing.
|
||||
},
|
||||
create() {},
|
||||
clear() {},
|
||||
};
|
||||
(chrome.contextMenus as any) = {
|
||||
onClicked: {
|
||||
addListener() {},
|
||||
addListener() {
|
||||
// do nothing.
|
||||
},
|
||||
},
|
||||
};
|
||||
(chrome.commands as any) = {
|
||||
onCommand: {
|
||||
addListener() {},
|
||||
addListener() {
|
||||
// do nothing.
|
||||
},
|
||||
},
|
||||
};
|
||||
} else {
|
||||
|
@ -44,31 +58,36 @@ if (
|
|||
if (isElectron) {
|
||||
if (!chrome.storage.local || !chrome.storage.local.remove) {
|
||||
(chrome.storage as any).local = {
|
||||
set(obj: any, callback: any) {
|
||||
Object.keys(obj).forEach((key) => {
|
||||
localStorage.setItem(key, obj[key]);
|
||||
});
|
||||
set(items: { [key: string]: string }, callback: () => void) {
|
||||
for (const [key, value] of Object.entries(items)) {
|
||||
localStorage.setItem(key, value);
|
||||
}
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
},
|
||||
get(obj: any, callback: any) {
|
||||
const result: any = {};
|
||||
Object.keys(obj).forEach((key) => {
|
||||
result[key] = localStorage.getItem(key) || obj[key];
|
||||
});
|
||||
get(
|
||||
keys: { [key: string]: any },
|
||||
callback: (items: { [key: string]: any }) => void,
|
||||
) {
|
||||
const result = Object.fromEntries(
|
||||
Object.entries(keys).map(([key, value]) => [
|
||||
key,
|
||||
localStorage.getItem(key) ?? value,
|
||||
]),
|
||||
);
|
||||
if (callback) {
|
||||
callback(result);
|
||||
}
|
||||
},
|
||||
// Electron ~ 1.4.6
|
||||
remove(items: any, callback: any) {
|
||||
if (Array.isArray(items)) {
|
||||
items.forEach((name) => {
|
||||
localStorage.removeItem(name);
|
||||
});
|
||||
remove(keys: string | string[], callback: () => void) {
|
||||
if (Array.isArray(keys)) {
|
||||
for (const key of keys) {
|
||||
localStorage.removeItem(key);
|
||||
}
|
||||
} else {
|
||||
localStorage.removeItem(items);
|
||||
localStorage.removeItem(keys);
|
||||
}
|
||||
if (callback) {
|
||||
callback();
|
||||
|
@ -78,14 +97,14 @@ if (isElectron) {
|
|||
}
|
||||
// Avoid error: chrome.runtime.sendMessage is not supported responseCallback
|
||||
const originSendMessage = (chrome.runtime as any).sendMessage;
|
||||
chrome.runtime.sendMessage = function () {
|
||||
(chrome.runtime as any).sendMessage = function (...args: unknown[]) {
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
return originSendMessage(...arguments);
|
||||
return originSendMessage(...args);
|
||||
}
|
||||
if (typeof arguments[arguments.length - 1] === 'function') {
|
||||
Array.prototype.pop.call(arguments);
|
||||
if (typeof args[arguments.length - 1] === 'function') {
|
||||
Array.prototype.pop.call(args);
|
||||
}
|
||||
return originSendMessage(...arguments);
|
||||
return originSendMessage(...args);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -254,7 +254,7 @@ function tryCatch<S, A extends Action<string>>(
|
|||
}
|
||||
newArgs[key as keyof typeof newArgs] = arg;
|
||||
});
|
||||
fn(newArgs as any);
|
||||
fn(newArgs as SplitMessage);
|
||||
for (let i = 0; i < toSplit.length; i++) {
|
||||
for (let j = 0; j < toSplit[i][1].length; j += maxChromeMsgSize) {
|
||||
fn({
|
||||
|
|
|
@ -36,7 +36,7 @@ let persistor: Persistor | undefined;
|
|||
let bgConnection: chrome.runtime.Port;
|
||||
let naTimeout: NodeJS.Timeout;
|
||||
|
||||
const isChrome = navigator.userAgent.indexOf('Firefox') === -1;
|
||||
const isChrome = !navigator.userAgent.includes('Firefox');
|
||||
|
||||
function renderNodeAtRoot(node: ReactNode) {
|
||||
if (currentRoot) currentRoot.unmount();
|
||||
|
@ -67,6 +67,7 @@ function renderNA() {
|
|||
<a
|
||||
href="https://github.com/zalmoxisus/redux-devtools-extension#usage"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
the instructions
|
||||
</a>
|
||||
|
@ -87,6 +88,7 @@ function renderNA() {
|
|||
<a
|
||||
href="https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/Troubleshooting.md#access-file-url-file"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
See details
|
||||
</a>
|
||||
|
@ -139,12 +141,18 @@ function init() {
|
|||
}
|
||||
|
||||
if (request.split === 'chunk') {
|
||||
if ((splitMessage as Record<string, unknown>)[request.chunk[0]]) {
|
||||
(splitMessage as Record<string, unknown>)[request.chunk[0]] +=
|
||||
request.chunk[1];
|
||||
if (
|
||||
(splitMessage as unknown as Record<string, string>)[
|
||||
request.chunk[0]
|
||||
]
|
||||
) {
|
||||
(splitMessage as unknown as Record<string, string>)[
|
||||
request.chunk[0]
|
||||
] += request.chunk[1];
|
||||
} else {
|
||||
(splitMessage as Record<string, unknown>)[request.chunk[0]] =
|
||||
request.chunk[1];
|
||||
(splitMessage as unknown as Record<string, string>)[
|
||||
request.chunk[0]
|
||||
] = request.chunk[1];
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ function getCurrentTabId(next: (tabId: number) => void) {
|
|||
|
||||
function panelDispatcher(
|
||||
bgConnection: chrome.runtime.Port,
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||
): Middleware<{}, StoreState, Dispatch<StoreAction>> {
|
||||
let autoselected = false;
|
||||
|
||||
|
|
|
@ -2,5 +2,7 @@ chrome.devtools.panels.create(
|
|||
'Redux',
|
||||
'img/logo/scalable.png',
|
||||
'devpanel.html',
|
||||
() => {},
|
||||
() => {
|
||||
// do nothing.
|
||||
},
|
||||
);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import React from 'react';
|
||||
import { OptionsProps } from './Options';
|
||||
|
||||
export default ({ options, saveOption }: OptionsProps) => {
|
||||
export default function AllowToRunGroup({ options, saveOption }: OptionsProps) {
|
||||
const AllowToRunState = {
|
||||
EVERYWHERE: true,
|
||||
ON_SPECIFIC_URLS: false,
|
||||
|
@ -50,4 +50,4 @@ export default ({ options, saveOption }: OptionsProps) => {
|
|||
</div>
|
||||
</fieldset>
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
import React from 'react';
|
||||
import { OptionsProps } from './Options';
|
||||
|
||||
export default ({ options, saveOption }: OptionsProps) => {
|
||||
export default function ContextMenuGroup({
|
||||
options,
|
||||
saveOption,
|
||||
}: OptionsProps) {
|
||||
return (
|
||||
<fieldset className="option-group">
|
||||
<legend className="option-group__title">Context Menu</legend>
|
||||
|
@ -23,4 +26,4 @@ export default ({ options, saveOption }: OptionsProps) => {
|
|||
</div>
|
||||
</fieldset>
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import React from 'react';
|
||||
import { OptionsProps } from './Options';
|
||||
|
||||
export default ({ options, saveOption }: OptionsProps) => {
|
||||
export default function EditorGroup({ options, saveOption }: OptionsProps) {
|
||||
const EditorState = {
|
||||
BROWSER: 0,
|
||||
EXTERNAL: 1,
|
||||
|
@ -21,7 +21,7 @@ export default ({ options, saveOption }: OptionsProps) => {
|
|||
onChange={() => saveOption('useEditor', EditorState.BROWSER)}
|
||||
/>
|
||||
<label className="option__label" htmlFor="editor-browser">
|
||||
{navigator.userAgent.indexOf('Firefox') !== -1
|
||||
{navigator.userAgent.includes('Firefox')
|
||||
? "Don't open in external editor"
|
||||
: "Use browser's debugger (from browser devpanel only)"}
|
||||
</label>
|
||||
|
@ -80,4 +80,4 @@ export default ({ options, saveOption }: OptionsProps) => {
|
|||
</div>
|
||||
</fieldset>
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ import React from 'react';
|
|||
import { FilterState } from '../pageScript/api/filters';
|
||||
import { OptionsProps } from './Options';
|
||||
|
||||
export default ({ options, saveOption }: OptionsProps) => {
|
||||
export default function FilterGroup({ options, saveOption }: OptionsProps) {
|
||||
return (
|
||||
<fieldset className="option-group">
|
||||
<legend className="option-group__title">
|
||||
|
@ -68,4 +68,4 @@ export default ({ options, saveOption }: OptionsProps) => {
|
|||
</div>
|
||||
</fieldset>
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
import React from 'react';
|
||||
import { OptionsProps } from './Options';
|
||||
|
||||
export default ({ options, saveOption }: OptionsProps) => {
|
||||
export default function MiscellaneousGroup({
|
||||
options,
|
||||
saveOption,
|
||||
}: OptionsProps) {
|
||||
return (
|
||||
<fieldset className="option-group">
|
||||
<legend className="option-group__title">Miscellaneous</legend>
|
||||
|
@ -47,4 +50,4 @@ export default ({ options, saveOption }: OptionsProps) => {
|
|||
</div>
|
||||
</fieldset>
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -14,34 +14,38 @@ export interface OptionsProps {
|
|||
) => void;
|
||||
}
|
||||
|
||||
export default (props: OptionsProps) => (
|
||||
<div>
|
||||
<EditorGroup {...props} />
|
||||
<FilterGroup {...props} />
|
||||
<AllowToRunGroup {...props} />
|
||||
<MiscellaneousGroup {...props} />
|
||||
<ContextMenuGroup {...props} />
|
||||
<div style={{ color: 'red' }}>
|
||||
<br />
|
||||
<hr />
|
||||
Setting options here is discouraged, and will not be possible in the next
|
||||
major release. Please{' '}
|
||||
<a
|
||||
href="https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Arguments.md"
|
||||
target="_blank"
|
||||
style={{ color: 'red' }}
|
||||
>
|
||||
specify them as parameters
|
||||
</a>
|
||||
. See{' '}
|
||||
<a
|
||||
href="https://github.com/zalmoxisus/redux-devtools-extension/issues/296"
|
||||
target="_blank"
|
||||
style={{ color: 'red' }}
|
||||
>
|
||||
the issue
|
||||
</a>{' '}
|
||||
for more details.
|
||||
export default function OptionsComponent(props: OptionsProps) {
|
||||
return (
|
||||
<div>
|
||||
<EditorGroup {...props} />
|
||||
<FilterGroup {...props} />
|
||||
<AllowToRunGroup {...props} />
|
||||
<MiscellaneousGroup {...props} />
|
||||
<ContextMenuGroup {...props} />
|
||||
<div style={{ color: 'red' }}>
|
||||
<br />
|
||||
<hr />
|
||||
Setting options here is discouraged, and will not be possible in the
|
||||
next major release. Please{' '}
|
||||
<a
|
||||
href="https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Arguments.md"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
style={{ color: 'red' }}
|
||||
>
|
||||
specify them as parameters
|
||||
</a>
|
||||
. See{' '}
|
||||
<a
|
||||
href="https://github.com/zalmoxisus/redux-devtools-extension/issues/296"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
style={{ color: 'red' }}
|
||||
>
|
||||
the issue
|
||||
</a>{' '}
|
||||
for more details.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
);
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ import {
|
|||
|
||||
subscribeToOptions((options) => {
|
||||
const message: OptionsMessage = { type: 'OPTIONS', options };
|
||||
chrome.runtime.sendMessage(message);
|
||||
void chrome.runtime.sendMessage(message);
|
||||
});
|
||||
|
||||
const renderOptions = (options: Options) => {
|
||||
|
|
|
@ -46,9 +46,9 @@ export const saveOption = <K extends keyof Options>(
|
|||
key: K,
|
||||
value: Options[K],
|
||||
) => {
|
||||
let obj: { [K1 in keyof Options]?: Options[K1] } = {};
|
||||
const obj: { [K1 in keyof Options]?: Options[K1] } = {};
|
||||
obj[key] = value;
|
||||
chrome.storage.sync.set(obj);
|
||||
void chrome.storage.sync.set(obj);
|
||||
options![key] = value;
|
||||
for (const subscriber of subscribers) {
|
||||
subscriber(options!);
|
||||
|
@ -99,7 +99,10 @@ export const getOptions = (callback: (options: Options) => void) => {
|
|||
}
|
||||
};
|
||||
|
||||
export const prefetchOptions = () => getOptions(() => {});
|
||||
export const prefetchOptions = () =>
|
||||
getOptions(() => {
|
||||
// do nothing.
|
||||
});
|
||||
|
||||
export const subscribeToOptions = (callback: (options: Options) => void) => {
|
||||
subscribers = subscribers.concat(callback);
|
||||
|
|
|
@ -26,8 +26,7 @@ export function isFiltered<A extends Action<string>>(
|
|||
) {
|
||||
if (
|
||||
noFiltersApplied(localFilter) ||
|
||||
(typeof action !== 'string' &&
|
||||
typeof (action.type as string).match !== 'function')
|
||||
(typeof action !== 'string' && typeof action.type.match !== 'function')
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ export default function importState<S, A extends Action<string>>(
|
|||
| LiftedState<S, A, unknown> = parse(state) as
|
||||
| ParsedSerializedLiftedState
|
||||
| LiftedState<S, A, unknown>;
|
||||
let preloadedState =
|
||||
const preloadedState =
|
||||
'payload' in parsedSerializedLiftedState &&
|
||||
parsedSerializedLiftedState.preloadedState
|
||||
? (parse(parsedSerializedLiftedState.preloadedState) as S)
|
||||
|
|
|
@ -222,6 +222,7 @@ function post<S, A extends Action<string>>(
|
|||
|
||||
function getStackTrace(
|
||||
config: Config,
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
||||
toExcludeFromTrace: Function | undefined,
|
||||
) {
|
||||
if (!config.trace) return undefined;
|
||||
|
@ -248,6 +249,7 @@ function getStackTrace(
|
|||
typeof Error.stackTraceLimit !== 'number' ||
|
||||
Error.stackTraceLimit > traceLimit!
|
||||
) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
||||
const frames = stack!.split('\n');
|
||||
if (frames.length > traceLimit!) {
|
||||
stack = frames
|
||||
|
@ -265,10 +267,11 @@ function amendActionType<A extends Action<string>>(
|
|||
| StructuralPerformAction<A>[]
|
||||
| string,
|
||||
config: Config,
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
||||
toExcludeFromTrace: Function | undefined,
|
||||
): StructuralPerformAction<A> {
|
||||
let timestamp = Date.now();
|
||||
let stack = getStackTrace(config, toExcludeFromTrace);
|
||||
const timestamp = Date.now();
|
||||
const stack = getStackTrace(config, toExcludeFromTrace);
|
||||
if (typeof action === 'string') {
|
||||
return { action: { type: action } as A, timestamp, stack };
|
||||
}
|
||||
|
@ -595,7 +598,11 @@ export function connect(preConfig: Config): ConnectResponse {
|
|||
};
|
||||
|
||||
const sendDelayed = throttle(() => {
|
||||
sendMessage(delayedActions, delayedStates as any, config);
|
||||
sendMessage(
|
||||
delayedActions,
|
||||
delayedStates as unknown as LiftedState<unknown, Action<string>, unknown>,
|
||||
config,
|
||||
);
|
||||
delayedActions = [];
|
||||
delayedStates = [];
|
||||
}, latency);
|
||||
|
|
|
@ -10,7 +10,7 @@ function createExpBackoffTimer(step: number) {
|
|||
return 0;
|
||||
}
|
||||
// Calculate next timeout
|
||||
let timeout = Math.pow(2, count - 1);
|
||||
const timeout = Math.pow(2, count - 1);
|
||||
if (count < 5) count += 1;
|
||||
return timeout * step;
|
||||
};
|
||||
|
|
|
@ -4,8 +4,8 @@ import { persistState } from '@redux-devtools/core';
|
|||
import type { ConfigWithExpandedMaxAge } from './index';
|
||||
|
||||
export function getUrlParam(key: string) {
|
||||
const matches = window.location.href.match(
|
||||
new RegExp(`[?&]${key}=([^&#]+)\\b`),
|
||||
const matches = new RegExp(`[?&]${key}=([^&#]+)\\b`).exec(
|
||||
window.location.href,
|
||||
);
|
||||
return matches && matches.length > 0 ? matches[1] : null;
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ type EnhancedStoreWithInitialDispatch<
|
|||
> = EnhancedStore<S, A, MonitorState> & { initialDispatch: Dispatch<A> };
|
||||
|
||||
const source = '@devtools-page';
|
||||
let stores: {
|
||||
const stores: {
|
||||
[K in string | number]: EnhancedStoreWithInitialDispatch<
|
||||
unknown,
|
||||
Action<string>,
|
||||
|
@ -167,7 +167,7 @@ function __REDUX_DEVTOOLS_EXTENSION__<S, A extends Action<string>>(
|
|||
const localFilter = getLocalFilter(config);
|
||||
const serializeState = getSerializeParameter(config);
|
||||
const serializeAction = getSerializeParameter(config);
|
||||
let { stateSanitizer, actionSanitizer, predicate, latency = 500 } = config;
|
||||
const { stateSanitizer, actionSanitizer, predicate, latency = 500 } = config;
|
||||
|
||||
// Deprecate actionsWhitelist and actionsBlacklist
|
||||
if (config.actionsWhitelist) {
|
||||
|
@ -447,7 +447,7 @@ function __REDUX_DEVTOOLS_EXTENSION__<S, A extends Action<string>>(
|
|||
liftedAction?: LiftedAction<S, A, unknown>,
|
||||
liftedState?: LiftedState<S, A, unknown> | undefined,
|
||||
) => {
|
||||
let m = (config && config.maxAge) || window.devToolsOptions.maxAge || 50;
|
||||
const m = (config && config.maxAge) || window.devToolsOptions.maxAge || 50;
|
||||
if (
|
||||
!liftedAction ||
|
||||
noFiltersApplied(localFilter) ||
|
||||
|
@ -464,10 +464,7 @@ function __REDUX_DEVTOOLS_EXTENSION__<S, A extends Action<string>>(
|
|||
if (filteredActionIds.length >= m) {
|
||||
const stagedActionIds = liftedState!.stagedActionIds;
|
||||
let i = 1;
|
||||
while (
|
||||
maxAge > m &&
|
||||
filteredActionIds.indexOf(stagedActionIds[i]) === -1
|
||||
) {
|
||||
while (maxAge > m && !filteredActionIds.includes(stagedActionIds[i])) {
|
||||
maxAge--;
|
||||
i++;
|
||||
}
|
||||
|
@ -539,7 +536,7 @@ function __REDUX_DEVTOOLS_EXTENSION__<S, A extends Action<string>>(
|
|||
...config,
|
||||
maxAge: getMaxAge as any,
|
||||
}) as any
|
||||
)(reducer_, initialState_) as any;
|
||||
)(reducer_, initialState_);
|
||||
|
||||
if (isInIframe()) setTimeout(init, 3000);
|
||||
else init();
|
||||
|
@ -591,18 +588,18 @@ export type InferComposedStoreExt<StoreEnhancers> = StoreEnhancers extends [
|
|||
? HeadStoreEnhancer extends StoreEnhancer<infer StoreExt>
|
||||
? StoreExt & InferComposedStoreExt<RestStoreEnhancers>
|
||||
: never
|
||||
: {};
|
||||
: // eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||
{};
|
||||
|
||||
const extensionCompose =
|
||||
(config: Config) =>
|
||||
<StoreEnhancers extends readonly StoreEnhancer[]>(
|
||||
...funcs: StoreEnhancers
|
||||
): StoreEnhancer<InferComposedStoreExt<StoreEnhancers>> => {
|
||||
// @ts-ignore FIXME
|
||||
// @ts-expect-error FIXME
|
||||
return (...args) => {
|
||||
const instanceId = generateId(config.instanceId);
|
||||
return [preEnhancer(instanceId), ...funcs].reduceRight(
|
||||
// @ts-ignore FIXME
|
||||
(composed, f) => f(composed),
|
||||
__REDUX_DEVTOOLS_EXTENSION__({ ...config, instanceId })(...args),
|
||||
);
|
||||
|
|
1
extension/test/__mocks__/styleMock.js
Normal file
1
extension/test/__mocks__/styleMock.js
Normal file
|
@ -0,0 +1 @@
|
|||
module.exports = {};
|
|
@ -1 +0,0 @@
|
|||
export default {};
|
|
@ -71,6 +71,7 @@ describe('Chrome extension', function () {
|
|||
});
|
||||
|
||||
Object.keys(switchMonitorTests).forEach((description) =>
|
||||
// eslint-disable-next-line jest/expect-expect,jest/valid-title
|
||||
it(description, () => switchMonitorTests[description](driver)),
|
||||
);
|
||||
});
|
||||
|
|
|
@ -76,6 +76,7 @@ describe('DevTools panel for Electron', function () {
|
|||
expect(className).not.toMatch(/hidden/); // not hidden
|
||||
});
|
||||
|
||||
// eslint-disable-next-line jest/expect-expect
|
||||
it('should have Redux DevTools UI on current tab', async () => {
|
||||
await driver
|
||||
.switchTo()
|
||||
|
@ -107,9 +108,11 @@ describe('DevTools panel for Electron', function () {
|
|||
});
|
||||
|
||||
Object.keys(switchMonitorTests).forEach((description) =>
|
||||
// eslint-disable-next-line jest/expect-expect,jest/valid-title
|
||||
it(description, () => switchMonitorTests[description](driver)),
|
||||
);
|
||||
|
||||
// eslint-disable-next-line jest/no-commented-out-tests
|
||||
/* it('should be no logs in console of main window', async () => {
|
||||
const handles = await driver.getAllWindowHandles();
|
||||
await driver.switchTo().window(handles[1]); // Change to main window
|
||||
|
|
351
pnpm-lock.yaml
351
pnpm-lock.yaml
|
@ -31,7 +31,7 @@ importers:
|
|||
version: 9.1.0(eslint@8.57.1)
|
||||
eslint-plugin-jest:
|
||||
specifier: ^28.8.3
|
||||
version: 28.8.3(@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@22.5.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.5.5)(typescript@5.5.4)))(typescript@5.5.4)
|
||||
version: 28.8.3(@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@20.16.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@20.16.5)(typescript@5.5.4)))(typescript@5.5.4)
|
||||
eslint-plugin-react:
|
||||
specifier: ^7.36.1
|
||||
version: 7.36.1(eslint@8.57.1)
|
||||
|
@ -40,7 +40,7 @@ importers:
|
|||
version: 4.6.2(eslint@8.57.1)
|
||||
jest:
|
||||
specifier: ^29.7.0
|
||||
version: 29.7.0(@types/node@22.5.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.5.5)(typescript@5.5.4))
|
||||
version: 29.7.0(@types/node@20.16.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@20.16.5)(typescript@5.5.4))
|
||||
nx:
|
||||
specifier: ^19.7.3
|
||||
version: 19.7.3(@swc/core@1.7.26(@swc/helpers@0.5.13))
|
||||
|
@ -174,30 +174,15 @@ importers:
|
|||
esbuild:
|
||||
specifier: ^0.23.1
|
||||
version: 0.23.1
|
||||
eslint:
|
||||
specifier: ^8.57.1
|
||||
version: 8.57.1
|
||||
eslint-config-airbnb:
|
||||
specifier: ^19.0.4
|
||||
version: 19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.36.1(eslint@8.57.1))(eslint@8.57.1)
|
||||
eslint-plugin-import:
|
||||
specifier: ^2.30.0
|
||||
version: 2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)
|
||||
eslint-plugin-jsx-a11y:
|
||||
specifier: ^6.10.0
|
||||
version: 6.10.0(eslint@8.57.1)
|
||||
eslint-plugin-react:
|
||||
specifier: ^7.36.1
|
||||
version: 7.36.1(eslint@8.57.1)
|
||||
eslint-plugin-react-hooks:
|
||||
specifier: ^4.6.2
|
||||
version: 4.6.2(eslint@8.57.1)
|
||||
globals:
|
||||
specifier: ^15.9.0
|
||||
version: 15.9.0
|
||||
immutable:
|
||||
specifier: ^4.3.7
|
||||
version: 4.3.7
|
||||
jest:
|
||||
specifier: ^29.7.0
|
||||
version: 29.7.0(@types/node@20.16.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@20.16.5)(typescript@5.5.4))
|
||||
version: 29.7.0(@types/node@22.5.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.5.5)(typescript@5.5.4))
|
||||
jest-environment-jsdom:
|
||||
specifier: ^29.7.0
|
||||
version: 29.7.0
|
||||
|
@ -215,7 +200,7 @@ importers:
|
|||
version: 3.0.1
|
||||
ts-jest:
|
||||
specifier: ^29.2.5
|
||||
version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.1)(jest@29.7.0(@types/node@20.16.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@20.16.5)(typescript@5.5.4)))(typescript@5.5.4)
|
||||
version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.1)(jest@29.7.0(@types/node@22.5.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.5.5)(typescript@5.5.4)))(typescript@5.5.4)
|
||||
typescript:
|
||||
specifier: ~5.5.4
|
||||
version: 5.5.4
|
||||
|
@ -4844,9 +4829,6 @@ packages:
|
|||
peerDependencies:
|
||||
'@rjsf/utils': ^5.20.x
|
||||
|
||||
'@rtsao/scc@1.1.0':
|
||||
resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
|
||||
|
||||
'@sinclair/typebox@0.27.8':
|
||||
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
|
||||
|
||||
|
@ -5476,9 +5458,6 @@ packages:
|
|||
'@types/json-schema@7.0.15':
|
||||
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
||||
|
||||
'@types/json5@0.0.29':
|
||||
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
|
||||
|
||||
'@types/jsonwebtoken@9.0.7':
|
||||
resolution: {integrity: sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==}
|
||||
|
||||
|
@ -6019,9 +5998,6 @@ packages:
|
|||
resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
aria-query@5.1.3:
|
||||
resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
|
||||
|
||||
aria-query@5.3.0:
|
||||
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
|
||||
|
||||
|
@ -6051,10 +6027,6 @@ packages:
|
|||
resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
array.prototype.findlastindex@1.2.5:
|
||||
resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
array.prototype.flat@1.3.2:
|
||||
resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
@ -6081,9 +6053,6 @@ packages:
|
|||
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
ast-types-flow@0.0.8:
|
||||
resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
|
||||
|
||||
ast-types@0.13.4:
|
||||
resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
|
||||
engines: {node: '>=4'}
|
||||
|
@ -6112,17 +6081,9 @@ packages:
|
|||
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
axe-core@4.10.0:
|
||||
resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==}
|
||||
engines: {node: '>=4'}
|
||||
|
||||
axios@1.7.7:
|
||||
resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==}
|
||||
|
||||
axobject-query@4.1.0:
|
||||
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
babel-jest@29.7.0:
|
||||
resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
|
||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||
|
@ -6546,9 +6507,6 @@ packages:
|
|||
concat-map@0.0.1:
|
||||
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||
|
||||
confusing-browser-globals@1.0.11:
|
||||
resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==}
|
||||
|
||||
connect-history-api-fallback@2.0.0:
|
||||
resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
|
||||
engines: {node: '>=0.8'}
|
||||
|
@ -6857,9 +6815,6 @@ packages:
|
|||
resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
damerau-levenshtein@1.0.8:
|
||||
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
|
||||
|
||||
data-uri-to-buffer@6.0.2:
|
||||
resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==}
|
||||
engines: {node: '>= 14'}
|
||||
|
@ -6896,14 +6851,6 @@ packages:
|
|||
supports-color:
|
||||
optional: true
|
||||
|
||||
debug@3.2.7:
|
||||
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
|
||||
peerDependencies:
|
||||
supports-color: '*'
|
||||
peerDependenciesMeta:
|
||||
supports-color:
|
||||
optional: true
|
||||
|
||||
debug@4.3.1:
|
||||
resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==}
|
||||
engines: {node: '>=6.0'}
|
||||
|
@ -6956,10 +6903,6 @@ packages:
|
|||
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
deep-equal@2.2.3:
|
||||
resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
deep-extend@0.6.0:
|
||||
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
|
||||
engines: {node: '>=4.0.0'}
|
||||
|
@ -7230,9 +7173,6 @@ packages:
|
|||
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
es-get-iterator@1.1.3:
|
||||
resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
|
||||
|
||||
es-iterator-helpers@1.0.19:
|
||||
resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
@ -7299,63 +7239,12 @@ packages:
|
|||
engines: {node: '>=6.0'}
|
||||
hasBin: true
|
||||
|
||||
eslint-config-airbnb-base@15.0.0:
|
||||
resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==}
|
||||
engines: {node: ^10.12.0 || >=12.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^7.32.0 || ^8.2.0
|
||||
eslint-plugin-import: ^2.25.2
|
||||
|
||||
eslint-config-airbnb@19.0.4:
|
||||
resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==}
|
||||
engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^7.32.0 || ^8.2.0
|
||||
eslint-plugin-import: ^2.25.3
|
||||
eslint-plugin-jsx-a11y: ^6.5.1
|
||||
eslint-plugin-react: ^7.28.0
|
||||
eslint-plugin-react-hooks: ^4.3.0
|
||||
|
||||
eslint-config-prettier@9.1.0:
|
||||
resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
eslint: '>=7.0.0'
|
||||
|
||||
eslint-import-resolver-node@0.3.9:
|
||||
resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
|
||||
|
||||
eslint-module-utils@2.11.0:
|
||||
resolution: {integrity: sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': '*'
|
||||
eslint: '*'
|
||||
eslint-import-resolver-node: '*'
|
||||
eslint-import-resolver-typescript: '*'
|
||||
eslint-import-resolver-webpack: '*'
|
||||
peerDependenciesMeta:
|
||||
'@typescript-eslint/parser':
|
||||
optional: true
|
||||
eslint:
|
||||
optional: true
|
||||
eslint-import-resolver-node:
|
||||
optional: true
|
||||
eslint-import-resolver-typescript:
|
||||
optional: true
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
|
||||
eslint-plugin-import@2.30.0:
|
||||
resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': '*'
|
||||
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
|
||||
peerDependenciesMeta:
|
||||
'@typescript-eslint/parser':
|
||||
optional: true
|
||||
|
||||
eslint-plugin-jest@28.8.3:
|
||||
resolution: {integrity: sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ==}
|
||||
engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0}
|
||||
|
@ -7369,12 +7258,6 @@ packages:
|
|||
jest:
|
||||
optional: true
|
||||
|
||||
eslint-plugin-jsx-a11y@6.10.0:
|
||||
resolution: {integrity: sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==}
|
||||
engines: {node: '>=4.0'}
|
||||
peerDependencies:
|
||||
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
|
||||
|
||||
eslint-plugin-react-hooks@4.6.2:
|
||||
resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==}
|
||||
engines: {node: '>=10'}
|
||||
|
@ -8624,10 +8507,6 @@ packages:
|
|||
json-stringify-safe@5.0.1:
|
||||
resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
|
||||
|
||||
json5@1.0.2:
|
||||
resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
|
||||
hasBin: true
|
||||
|
||||
json5@2.2.3:
|
||||
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
|
||||
engines: {node: '>=6'}
|
||||
|
@ -8716,13 +8595,6 @@ packages:
|
|||
known-css-properties@0.34.0:
|
||||
resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==}
|
||||
|
||||
language-subtag-registry@0.3.23:
|
||||
resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
|
||||
|
||||
language-tags@1.0.9:
|
||||
resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
|
||||
engines: {node: '>=0.10'}
|
||||
|
||||
launch-editor@2.9.1:
|
||||
resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==}
|
||||
|
||||
|
@ -9232,10 +9104,6 @@ packages:
|
|||
resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
object-is@1.1.6:
|
||||
resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
object-keys@1.1.1:
|
||||
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
@ -9256,10 +9124,6 @@ packages:
|
|||
resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
object.groupby@1.0.3:
|
||||
resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
object.values@1.2.0:
|
||||
resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
@ -10333,10 +10197,6 @@ packages:
|
|||
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
stop-iteration-iterator@1.0.0:
|
||||
resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
storybook@8.3.1:
|
||||
resolution: {integrity: sha512-CYqt5KOpaTgb8OczNo2+EtMi8YNDPi4vNVebVlLDOroWxyulb8I7MIOH9gALczcIOb+TZUArPztjoa8rkXTaDQ==}
|
||||
hasBin: true
|
||||
|
@ -10359,9 +10219,6 @@ packages:
|
|||
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
string.prototype.includes@2.0.0:
|
||||
resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==}
|
||||
|
||||
string.prototype.matchall@4.0.11:
|
||||
resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
@ -10709,9 +10566,6 @@ packages:
|
|||
ts-toolbelt@9.6.0:
|
||||
resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
|
||||
|
||||
tsconfig-paths@3.15.0:
|
||||
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
|
||||
|
||||
tsconfig-paths@4.2.0:
|
||||
resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==}
|
||||
engines: {node: '>=6'}
|
||||
|
@ -13984,8 +13838,6 @@ snapshots:
|
|||
lodash: 4.17.21
|
||||
lodash-es: 4.17.21
|
||||
|
||||
'@rtsao/scc@1.1.0': {}
|
||||
|
||||
'@sinclair/typebox@0.27.8': {}
|
||||
|
||||
'@sindresorhus/is@4.6.0': {}
|
||||
|
@ -14806,8 +14658,6 @@ snapshots:
|
|||
|
||||
'@types/json-schema@7.0.15': {}
|
||||
|
||||
'@types/json5@0.0.29': {}
|
||||
|
||||
'@types/jsonwebtoken@9.0.7':
|
||||
dependencies:
|
||||
'@types/node': 20.16.5
|
||||
|
@ -15447,10 +15297,6 @@ snapshots:
|
|||
dependencies:
|
||||
tslib: 2.7.0
|
||||
|
||||
aria-query@5.1.3:
|
||||
dependencies:
|
||||
deep-equal: 2.2.3
|
||||
|
||||
aria-query@5.3.0:
|
||||
dependencies:
|
||||
dequal: 2.0.3
|
||||
|
@ -15486,15 +15332,6 @@ snapshots:
|
|||
es-object-atoms: 1.0.0
|
||||
es-shim-unscopables: 1.0.2
|
||||
|
||||
array.prototype.findlastindex@1.2.5:
|
||||
dependencies:
|
||||
call-bind: 1.0.7
|
||||
define-properties: 1.2.1
|
||||
es-abstract: 1.23.3
|
||||
es-errors: 1.3.0
|
||||
es-object-atoms: 1.0.0
|
||||
es-shim-unscopables: 1.0.2
|
||||
|
||||
array.prototype.flat@1.3.2:
|
||||
dependencies:
|
||||
call-bind: 1.0.7
|
||||
|
@ -15534,8 +15371,6 @@ snapshots:
|
|||
|
||||
assertion-error@2.0.1: {}
|
||||
|
||||
ast-types-flow@0.0.8: {}
|
||||
|
||||
ast-types@0.13.4:
|
||||
dependencies:
|
||||
tslib: 2.7.0
|
||||
|
@ -15562,8 +15397,6 @@ snapshots:
|
|||
dependencies:
|
||||
possible-typed-array-names: 1.0.0
|
||||
|
||||
axe-core@4.10.0: {}
|
||||
|
||||
axios@1.7.7:
|
||||
dependencies:
|
||||
follow-redirects: 1.15.9
|
||||
|
@ -15572,8 +15405,6 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- debug
|
||||
|
||||
axobject-query@4.1.0: {}
|
||||
|
||||
babel-jest@29.7.0(@babel/core@7.25.2):
|
||||
dependencies:
|
||||
'@babel/core': 7.25.2
|
||||
|
@ -16078,8 +15909,6 @@ snapshots:
|
|||
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
confusing-browser-globals@1.0.11: {}
|
||||
|
||||
connect-history-api-fallback@2.0.0: {}
|
||||
|
||||
console-control-strings@1.1.0:
|
||||
|
@ -16449,8 +16278,6 @@ snapshots:
|
|||
d3-transition: 3.0.1(d3-selection@3.0.0)
|
||||
d3-zoom: 3.0.0
|
||||
|
||||
damerau-levenshtein@1.0.8: {}
|
||||
|
||||
data-uri-to-buffer@6.0.2: {}
|
||||
|
||||
data-urls@3.0.2:
|
||||
|
@ -16487,10 +16314,6 @@ snapshots:
|
|||
dependencies:
|
||||
ms: 2.0.0
|
||||
|
||||
debug@3.2.7:
|
||||
dependencies:
|
||||
ms: 2.1.3
|
||||
|
||||
debug@4.3.1:
|
||||
dependencies:
|
||||
ms: 2.1.2
|
||||
|
@ -16521,27 +16344,6 @@ snapshots:
|
|||
|
||||
deep-eql@5.0.2: {}
|
||||
|
||||
deep-equal@2.2.3:
|
||||
dependencies:
|
||||
array-buffer-byte-length: 1.0.1
|
||||
call-bind: 1.0.7
|
||||
es-get-iterator: 1.1.3
|
||||
get-intrinsic: 1.2.4
|
||||
is-arguments: 1.1.1
|
||||
is-array-buffer: 3.0.4
|
||||
is-date-object: 1.0.5
|
||||
is-regex: 1.1.4
|
||||
is-shared-array-buffer: 1.0.3
|
||||
isarray: 2.0.5
|
||||
object-is: 1.1.6
|
||||
object-keys: 1.1.1
|
||||
object.assign: 4.1.5
|
||||
regexp.prototype.flags: 1.5.2
|
||||
side-channel: 1.0.6
|
||||
which-boxed-primitive: 1.0.2
|
||||
which-collection: 1.0.2
|
||||
which-typed-array: 1.1.15
|
||||
|
||||
deep-extend@0.6.0: {}
|
||||
|
||||
deep-is@0.1.4: {}
|
||||
|
@ -16822,18 +16624,6 @@ snapshots:
|
|||
|
||||
es-errors@1.3.0: {}
|
||||
|
||||
es-get-iterator@1.1.3:
|
||||
dependencies:
|
||||
call-bind: 1.0.7
|
||||
get-intrinsic: 1.2.4
|
||||
has-symbols: 1.0.3
|
||||
is-arguments: 1.1.1
|
||||
is-map: 2.0.3
|
||||
is-set: 2.0.3
|
||||
is-string: 1.0.7
|
||||
isarray: 2.0.5
|
||||
stop-iteration-iterator: 1.0.0
|
||||
|
||||
es-iterator-helpers@1.0.19:
|
||||
dependencies:
|
||||
call-bind: 1.0.7
|
||||
|
@ -16937,107 +16727,21 @@ snapshots:
|
|||
optionalDependencies:
|
||||
source-map: 0.6.1
|
||||
|
||||
eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1):
|
||||
dependencies:
|
||||
confusing-browser-globals: 1.0.11
|
||||
eslint: 8.57.1
|
||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)
|
||||
object.assign: 4.1.5
|
||||
object.entries: 1.1.8
|
||||
semver: 6.3.1
|
||||
|
||||
eslint-config-airbnb@19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.36.1(eslint@8.57.1))(eslint@8.57.1):
|
||||
dependencies:
|
||||
eslint: 8.57.1
|
||||
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1)
|
||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)
|
||||
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1)
|
||||
eslint-plugin-react: 7.36.1(eslint@8.57.1)
|
||||
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1)
|
||||
object.assign: 4.1.5
|
||||
object.entries: 1.1.8
|
||||
|
||||
eslint-config-prettier@9.1.0(eslint@8.57.1):
|
||||
dependencies:
|
||||
eslint: 8.57.1
|
||||
|
||||
eslint-import-resolver-node@0.3.9:
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
is-core-module: 2.15.1
|
||||
resolve: 1.22.8
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-module-utils@2.11.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1):
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.6.0(eslint@8.57.1)(typescript@5.5.4)
|
||||
eslint: 8.57.1
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1):
|
||||
dependencies:
|
||||
'@rtsao/scc': 1.1.0
|
||||
array-includes: 3.1.8
|
||||
array.prototype.findlastindex: 1.2.5
|
||||
array.prototype.flat: 1.3.2
|
||||
array.prototype.flatmap: 1.3.2
|
||||
debug: 3.2.7
|
||||
doctrine: 2.1.0
|
||||
eslint: 8.57.1
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1)
|
||||
hasown: 2.0.2
|
||||
is-core-module: 2.15.1
|
||||
is-glob: 4.0.3
|
||||
minimatch: 3.1.2
|
||||
object.fromentries: 2.0.8
|
||||
object.groupby: 1.0.3
|
||||
object.values: 1.2.0
|
||||
semver: 6.3.1
|
||||
tsconfig-paths: 3.15.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.6.0(eslint@8.57.1)(typescript@5.5.4)
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@22.5.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.5.5)(typescript@5.5.4)))(typescript@5.5.4):
|
||||
eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@20.16.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@20.16.5)(typescript@5.5.4)))(typescript@5.5.4):
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 8.6.0(eslint@8.57.1)(typescript@5.5.4)
|
||||
eslint: 8.57.1
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4)
|
||||
jest: 29.7.0(@types/node@22.5.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.5.5)(typescript@5.5.4))
|
||||
jest: 29.7.0(@types/node@20.16.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@20.16.5)(typescript@5.5.4))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1):
|
||||
dependencies:
|
||||
aria-query: 5.1.3
|
||||
array-includes: 3.1.8
|
||||
array.prototype.flatmap: 1.3.2
|
||||
ast-types-flow: 0.0.8
|
||||
axe-core: 4.10.0
|
||||
axobject-query: 4.1.0
|
||||
damerau-levenshtein: 1.0.8
|
||||
emoji-regex: 9.2.2
|
||||
es-iterator-helpers: 1.0.19
|
||||
eslint: 8.57.1
|
||||
hasown: 2.0.2
|
||||
jsx-ast-utils: 3.3.5
|
||||
language-tags: 1.0.9
|
||||
minimatch: 3.1.2
|
||||
object.fromentries: 2.0.8
|
||||
safe-regex-test: 1.0.3
|
||||
string.prototype.includes: 2.0.0
|
||||
|
||||
eslint-plugin-react-hooks@4.6.2(eslint@8.57.1):
|
||||
dependencies:
|
||||
eslint: 8.57.1
|
||||
|
@ -18738,10 +18442,6 @@ snapshots:
|
|||
json-stringify-safe@5.0.1:
|
||||
optional: true
|
||||
|
||||
json5@1.0.2:
|
||||
dependencies:
|
||||
minimist: 1.2.8
|
||||
|
||||
json5@2.2.3: {}
|
||||
|
||||
jsonc-parser@3.2.0: {}
|
||||
|
@ -18840,12 +18540,6 @@ snapshots:
|
|||
|
||||
known-css-properties@0.34.0: {}
|
||||
|
||||
language-subtag-registry@0.3.23: {}
|
||||
|
||||
language-tags@1.0.9:
|
||||
dependencies:
|
||||
language-subtag-registry: 0.3.23
|
||||
|
||||
launch-editor@2.9.1:
|
||||
dependencies:
|
||||
picocolors: 1.1.0
|
||||
|
@ -19382,11 +19076,6 @@ snapshots:
|
|||
|
||||
object-inspect@1.13.2: {}
|
||||
|
||||
object-is@1.1.6:
|
||||
dependencies:
|
||||
call-bind: 1.0.7
|
||||
define-properties: 1.2.1
|
||||
|
||||
object-keys@1.1.1: {}
|
||||
|
||||
object-path@0.11.8: {}
|
||||
|
@ -19411,12 +19100,6 @@ snapshots:
|
|||
es-abstract: 1.23.3
|
||||
es-object-atoms: 1.0.0
|
||||
|
||||
object.groupby@1.0.3:
|
||||
dependencies:
|
||||
call-bind: 1.0.7
|
||||
define-properties: 1.2.1
|
||||
es-abstract: 1.23.3
|
||||
|
||||
object.values@1.2.0:
|
||||
dependencies:
|
||||
call-bind: 1.0.7
|
||||
|
@ -20671,10 +20354,6 @@ snapshots:
|
|||
|
||||
statuses@2.0.1: {}
|
||||
|
||||
stop-iteration-iterator@1.0.0:
|
||||
dependencies:
|
||||
internal-slot: 1.0.7
|
||||
|
||||
storybook@8.3.1:
|
||||
dependencies:
|
||||
'@storybook/core': 8.3.1
|
||||
|
@ -20707,11 +20386,6 @@ snapshots:
|
|||
emoji-regex: 9.2.2
|
||||
strip-ansi: 7.1.0
|
||||
|
||||
string.prototype.includes@2.0.0:
|
||||
dependencies:
|
||||
define-properties: 1.2.1
|
||||
es-abstract: 1.23.3
|
||||
|
||||
string.prototype.matchall@4.0.11:
|
||||
dependencies:
|
||||
call-bind: 1.0.7
|
||||
|
@ -21192,13 +20866,6 @@ snapshots:
|
|||
|
||||
ts-toolbelt@9.6.0: {}
|
||||
|
||||
tsconfig-paths@3.15.0:
|
||||
dependencies:
|
||||
'@types/json5': 0.0.29
|
||||
json5: 1.0.2
|
||||
minimist: 1.2.8
|
||||
strip-bom: 3.0.0
|
||||
|
||||
tsconfig-paths@4.2.0:
|
||||
dependencies:
|
||||
json5: 2.2.3
|
||||
|
|
Loading…
Reference in New Issue
Block a user