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