Use Knip for detecting dead code (#3426)

This commit is contained in:
Victor Bayas
2024-08-21 11:35:02 -05:00
committed by GitHub
parent 0b07cb3885
commit 4c432cd356
46 changed files with 449 additions and 370 deletions

26
web-app/knip.config.ts Normal file
View File

@@ -0,0 +1,26 @@
import type { KnipConfig } from "knip";
export default {
entry: ["src/**/{index,main}.{ts,tsx}", "e2e/**/*.ts", "test/**/*.ts"],
project: [
"src/**/*.{ts,tsx}",
"!src/api/**/*",
"e2e/**/*.{ts,tsx}",
"test/**/*.ts",
],
rules: {
binaries: "error",
classMembers: "error",
dependencies: "error",
devDependencies: "off",
duplicates: "error",
files: "error",
nsExports: "error",
nsTypes: "error",
unlisted: "error",
unresolved: "error",
types: "error",
exports: "error",
enumMembers: "off",
},
} satisfies KnipConfig;

View File

@@ -6,6 +6,8 @@
"private": true, "private": true,
"dependencies": { "dependencies": {
"@reduxjs/toolkit": "^1.9.7", "@reduxjs/toolkit": "^1.9.7",
"clsx": "^2.1.1",
"http-status-codes": "^2.3.0",
"kbar": "^0.1.0-beta.45", "kbar": "^0.1.0-beta.45",
"local-storage-fallback": "^4.1.2", "local-storage-fallback": "^4.1.2",
"lodash": "^4.17.21", "lodash": "^4.17.21",
@@ -36,7 +38,8 @@
"test": "react-scripts test", "test": "react-scripts test",
"eject": "react-scripts eject", "eject": "react-scripts eject",
"playwright": "PORT=5005 USE_BABEL_PLUGIN_ISTANBUL=1 react-app-rewired start", "playwright": "PORT=5005 USE_BABEL_PLUGIN_ISTANBUL=1 react-app-rewired start",
"find-deadcode": "ts-prune -s consoleApi.ts | sh -c '(! grep -v \"used in module\")'" "find-deadcode": "knip",
"format": "prettier . --write --log-level warn"
}, },
"eslintConfig": { "eslintConfig": {
"extends": "react-app", "extends": "react-app",
@@ -60,6 +63,7 @@
"devDependencies": { "devDependencies": {
"@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@playwright/test": "^1.45.2", "@playwright/test": "^1.45.2",
"@types/jest": "^29.5.12",
"@types/lodash": "^4.17.7", "@types/lodash": "^4.17.7",
"@types/luxon": "^3.4.2", "@types/luxon": "^3.4.2",
"@types/node": "20.14.11", "@types/node": "20.14.11",
@@ -75,6 +79,7 @@
"@types/webpack-env": "^1.18.5", "@types/webpack-env": "^1.18.5",
"babel-plugin-istanbul": "^6.1.1", "babel-plugin-istanbul": "^6.1.1",
"customize-cra": "^1.0.0", "customize-cra": "^1.0.0",
"knip": "^5.27.2",
"minio": "^8.0.1", "minio": "^8.0.1",
"nyc": "^15.1.0", "nyc": "^15.1.0",
"prettier": "3.3.3", "prettier": "3.3.3",
@@ -82,7 +87,6 @@
"react-app-rewired": "^2.2.1", "react-app-rewired": "^2.2.1",
"react-scripts": "5.0.1", "react-scripts": "5.0.1",
"testcafe": "3.6.2", "testcafe": "3.6.2",
"ts-prune": "^0.10.3",
"typescript": "^5.5.3" "typescript": "^5.5.3"
}, },
"resolutions": { "resolutions": {

View File

@@ -41,7 +41,7 @@ export interface IBytesCalc {
unit: string; unit: string;
} }
export interface IEmbeddedCustomButton { interface IEmbeddedCustomButton {
backgroundColor: string; backgroundColor: string;
textColor: string; textColor: string;
hoverColor: string; hoverColor: string;
@@ -52,7 +52,7 @@ export interface IEmbeddedCustomButton {
disabledText: string; disabledText: string;
} }
export interface IEmbeddedCustomTable { interface IEmbeddedCustomTable {
border: string; border: string;
disabledBorder: string; disabledBorder: string;
disabledBG: string; disabledBG: string;
@@ -61,14 +61,14 @@ export interface IEmbeddedCustomTable {
hoverColor: string; hoverColor: string;
} }
export interface IEmbeddedInputBox { interface IEmbeddedInputBox {
border: string; border: string;
hoverBorder: string; hoverBorder: string;
textColor: string; textColor: string;
backgroundColor: string; backgroundColor: string;
} }
export interface IEmbeddedSwitch { interface IEmbeddedSwitch {
switchBackground: string; switchBackground: string;
bulletBorderColor: string; bulletBorderColor: string;
bulletBGColor: string; bulletBGColor: string;

View File

@@ -32,8 +32,8 @@ export const units = [
"ZiB", "ZiB",
"YiB", "YiB",
]; ];
export const k8sUnits = ["Ki", "Mi", "Gi", "Ti", "Pi", "Ei"]; const k8sUnits = ["Ki", "Mi", "Gi", "Ti", "Pi", "Ei"];
export const k8sCalcUnits = ["B", ...k8sUnits]; const k8sCalcUnits = ["B", ...k8sUnits];
export const niceBytes = (x: string, showK8sUnits: boolean = false) => { export const niceBytes = (x: string, showK8sUnits: boolean = false) => {
let n = parseInt(x, 10) || 0; let n = parseInt(x, 10) || 0;
@@ -97,7 +97,7 @@ export const getBytes = (
}; };
//getBytesNumber, converts from a value and a unit from units array to bytes //getBytesNumber, converts from a value and a unit from units array to bytes
export const getBytesNumber = ( const getBytesNumber = (
value: string, value: string,
unit: string, unit: string,
fromk8s: boolean = false, fromk8s: boolean = false,

View File

@@ -16,7 +16,7 @@
import { ApplicationLogoProps } from "mds"; import { ApplicationLogoProps } from "mds";
export const MinIOPlan = const MinIOPlan =
( (
document.head.querySelector( document.head.querySelector(
"[name~=minio-license][content]", "[name~=minio-license][content]",

View File

@@ -15,7 +15,6 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react"; import React from "react";
import * as serviceWorker from "./serviceWorker";
import ReactDOM from "react-dom/client"; import ReactDOM from "react-dom/client";
import { Provider } from "react-redux"; import { Provider } from "react-redux";
import { store } from "./store"; import { store } from "./store";
@@ -35,8 +34,3 @@ root.render(
</Provider> </Provider>
</React.StrictMode>, </React.StrictMode>,
); );
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();

View File

@@ -18,7 +18,7 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { AppState } from "../../../../store"; import { AppState } from "../../../../store";
import { Bucket } from "api/consoleApi"; import { Bucket } from "api/consoleApi";
export interface BucketDetailsState { interface BucketDetailsState {
selectedTab: string; selectedTab: string;
loadingBucket: boolean; loadingBucket: boolean;
bucketInfo: Bucket | null; bucketInfo: Bucket | null;
@@ -30,7 +30,7 @@ const initialState: BucketDetailsState = {
bucketInfo: null, bucketInfo: null,
}; };
export const bucketDetailsSlice = createSlice({ const bucketDetailsSlice = createSlice({
name: "bucketDetails", name: "bucketDetails",
initialState, initialState,
reducers: { reducers: {
@@ -46,7 +46,7 @@ export const bucketDetailsSlice = createSlice({
}, },
}); });
export const { setBucketDetailsTab, setBucketInfo, setBucketDetailsLoad } = export const { setBucketInfo, setBucketDetailsLoad } =
bucketDetailsSlice.actions; bucketDetailsSlice.actions;
export const selBucketDetailsLoading = (state: AppState) => export const selBucketDetailsLoading = (state: AppState) =>

View File

@@ -18,7 +18,7 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { addBucketAsync } from "./addBucketThunks"; import { addBucketAsync } from "./addBucketThunks";
import { ObjectRetentionMode } from "api/consoleApi"; import { ObjectRetentionMode } from "api/consoleApi";
export interface AddBucketState { interface AddBucketState {
loading: boolean; loading: boolean;
isDirty: boolean; isDirty: boolean;
invalidFields: string[]; invalidFields: string[];
@@ -58,7 +58,7 @@ const initialState: AddBucketState = {
excludedPrefixes: "", excludedPrefixes: "",
}; };
export const addBucketsSlice = createSlice({ const addBucketsSlice = createSlice({
name: "addBuckets", name: "addBuckets",
initialState, initialState,
reducers: { reducers: {

View File

@@ -21,7 +21,7 @@ import { displayFileIconName } from "./utils";
// Functions // Functions
export const displayParsedDate = (object: BucketObjectItem) => { const displayParsedDate = (object: BucketObjectItem) => {
if (object.name.endsWith("/")) { if (object.name.endsWith("/")) {
return ""; return "";
} }
@@ -41,14 +41,14 @@ export const displayParsedDate = (object: BucketObjectItem) => {
return objectTime.toFormat("ccc, LLL dd yyyy HH:mm (ZZZZ)"); return objectTime.toFormat("ccc, LLL dd yyyy HH:mm (ZZZZ)");
}; };
export const displayNiceBytes = (object: BucketObjectItem) => { const displayNiceBytes = (object: BucketObjectItem) => {
if (object.name.endsWith("/") || !object.size) { if (object.name.endsWith("/") || !object.size) {
return "-"; return "-";
} }
return niceBytes(String(object.size)); return niceBytes(String(object.size));
}; };
export const displayDeleteFlag = (state: boolean) => { const displayDeleteFlag = (state: boolean) => {
return state ? "Yes" : "No"; return state ? "Yes" : "No";
}; };

View File

@@ -45,12 +45,12 @@ export interface WebsocketResponse {
bucketName?: string; bucketName?: string;
} }
export interface WebsocketErrorResponse { interface WebsocketErrorResponse {
Code: number; Code: number;
APIError: ApiError; APIError: ApiError;
} }
export interface ObjectResponse { interface ObjectResponse {
name: string; name: string;
last_modified: string; last_modified: string;
size: number; size: number;

View File

@@ -42,7 +42,7 @@ interface IExtToIcon {
extensions: string[]; extensions: string[];
} }
export const extensionToIcon: IExtToIcon[] = [ const extensionToIcon: IExtToIcon[] = [
{ {
icon: <FileVideoIcon />, icon: <FileVideoIcon />,
extensions: ["mp4", "mov", "avi", "mpeg", "mpg"], extensions: ["mp4", "mov", "avi", "mpeg", "mpg"],

View File

@@ -16,7 +16,7 @@
import { BucketObjectItem } from "./ListObjects/types"; import { BucketObjectItem } from "./ListObjects/types";
import { removeTrace } from "../../../ObjectBrowser/transferManager"; import { removeTrace } from "../../../ObjectBrowser/transferManager";
import store from "../../../../../store"; import { store } from "../../../../../store";
import { ContentType, PermissionResource } from "api/consoleApi"; import { ContentType, PermissionResource } from "api/consoleApi";
import { api } from "../../../../../api"; import { api } from "../../../../../api";
import { setErrorSnackMessage } from "../../../../../systemSlice"; import { setErrorSnackMessage } from "../../../../../systemSlice";
@@ -199,7 +199,7 @@ class BrowserDownload {
} }
export type AllowedPreviews = "image" | "pdf" | "audio" | "video" | "none"; export type AllowedPreviews = "image" | "pdf" | "audio" | "video" | "none";
export const contentTypePreview = (contentType: string): AllowedPreviews => { const contentTypePreview = (contentType: string): AllowedPreviews => {
if (contentType) { if (contentType) {
const mimeObjectType = (contentType || "").toLowerCase(); const mimeObjectType = (contentType || "").toLowerCase();
@@ -221,7 +221,7 @@ export const contentTypePreview = (contentType: string): AllowedPreviews => {
}; };
// Review file extension by name & returns the type of preview browser that can be used // Review file extension by name & returns the type of preview browser that can be used
export const extensionPreview = (fileName: string): AllowedPreviews => { const extensionPreview = (fileName: string): AllowedPreviews => {
const imageExtensions = [ const imageExtensions = [
"jif", "jif",
"jfif", "jfif",

View File

@@ -63,12 +63,12 @@ export interface LifeCycleItem {
status?: string; status?: string;
} }
export interface MultiBucketResult { interface MultiBucketResult {
bucketName: string; bucketName: string;
error?: string; error?: string;
} }
export interface MultiBucketResult { interface MultiBucketResult {
results: MultiBucketResult[]; results: MultiBucketResult[];
} }

View File

@@ -22,7 +22,7 @@ export interface NewServiceAccount {
url?: string; url?: string;
} }
export interface ConsoleSA { interface ConsoleSA {
accessKey: string; accessKey: string;
secretKey: string; secretKey: string;
url: string; url: string;

View File

@@ -17,7 +17,7 @@
import { SelectorTypes } from "../../../common/types"; import { SelectorTypes } from "../../../common/types";
import { EnvOverride } from "../../../api/consoleApi"; import { EnvOverride } from "../../../api/consoleApi";
export type KVFieldType = type KVFieldType =
| "string" | "string"
| "password" | "password"
| "number" | "number"

View File

@@ -108,7 +108,7 @@ const StatusCountBase = styled.div(({ theme }) => ({
}, },
})); }));
export const StatusCountCard = ({ const StatusCountCard = ({
onlineCount = 0, onlineCount = 0,
offlineCount = 0, offlineCount = 0,
icon = null, icon = null,

View File

@@ -21,7 +21,7 @@ import { Box } from "mds";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { widgetCommon } from "../Common/FormComponents/common/styleLibrary"; import { widgetCommon } from "../Common/FormComponents/common/styleLibrary";
export interface ISubInterface { interface ISubInterface {
message: string; message: string;
fontWeight?: "normal" | "bold"; fontWeight?: "normal" | "bold";
} }

View File

@@ -18,7 +18,7 @@ import React from "react";
import { Box } from "mds"; import { Box } from "mds";
import TimeStatItem from "../../TimeStatItem"; import TimeStatItem from "../../TimeStatItem";
export type SimpleWidgetRenderProps = { type SimpleWidgetRenderProps = {
valueToRender?: any; valueToRender?: any;
loading?: boolean; loading?: boolean;
title?: any; title?: any;

View File

@@ -36,7 +36,7 @@ export interface IPieChartConfiguration {
strokeWidth?: number; strokeWidth?: number;
} }
export interface ISinglePieConfiguration { interface ISinglePieConfiguration {
colorList: string[]; colorList: string[];
startAngle?: number; startAngle?: number;
endAngle?: number; endAngle?: number;

View File

@@ -20,7 +20,7 @@ import { IDashboardPanel } from "./Prometheus/types";
import { getUsageAsync } from "./dashboardThunks"; import { getUsageAsync } from "./dashboardThunks";
import { AdminInfoResponse } from "api/consoleApi"; import { AdminInfoResponse } from "api/consoleApi";
export interface DashboardState { interface DashboardState {
zoom: zoomState; zoom: zoomState;
usage: AdminInfoResponse | null; usage: AdminInfoResponse | null;
status: "idle" | "loading" | "failed"; status: "idle" | "loading" | "failed";
@@ -36,7 +36,7 @@ const initialState: DashboardState = {
usage: null, usage: null,
widgetLoadVersion: 0, widgetLoadVersion: 0,
}; };
export const dashboardSlice = createSlice({ const dashboardSlice = createSlice({
name: "dashboard", name: "dashboard",
initialState, initialState,
reducers: { reducers: {

View File

@@ -37,11 +37,7 @@ interface IConfGenericProps {
// Function to get defined values, // Function to get defined values,
//we make this because the backed sometimes don't return all the keys when there is an initial configuration //we make this because the backed sometimes don't return all the keys when there is an initial configuration
export const valueDef = ( const valueDef = (key: string, type: string, defaults: IElementValue[]) => {
key: string,
type: string,
defaults: IElementValue[],
) => {
let defValue = type === "on|off" ? "off" : ""; let defValue = type === "on|off" ? "off" : "";
if (defaults.length > 0) { if (defaults.length > 0) {

View File

@@ -16,7 +16,7 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { createSlice, PayloadAction } from "@reduxjs/toolkit";
export interface DestinationState { interface DestinationState {
loading: boolean; loading: boolean;
} }
@@ -24,7 +24,7 @@ const initialState: DestinationState = {
loading: true, loading: true,
}; };
export const destinationSlice = createSlice({ const destinationSlice = createSlice({
name: "destination", name: "destination",
initialState, initialState,
reducers: { reducers: {

View File

@@ -20,14 +20,14 @@ import { TransformedEndpointItem } from "./types";
export const notifyPostgres = "notify_postgres"; export const notifyPostgres = "notify_postgres";
export const notifyMysql = "notify_mysql"; export const notifyMysql = "notify_mysql";
export const notifyKafka = "notify_kafka"; const notifyKafka = "notify_kafka";
export const notifyAmqp = "notify_amqp"; const notifyAmqp = "notify_amqp";
export const notifyMqtt = "notify_mqtt"; const notifyMqtt = "notify_mqtt";
export const notifyRedis = "notify_redis"; const notifyRedis = "notify_redis";
export const notifyNats = "notify_nats"; const notifyNats = "notify_nats";
export const notifyElasticsearch = "notify_elasticsearch"; const notifyElasticsearch = "notify_elasticsearch";
export const notifyWebhooks = "notify_webhook"; const notifyWebhooks = "notify_webhook";
export const notifyNsq = "notify_nsq"; const notifyNsq = "notify_nsq";
export const notificationTransform = ( export const notificationTransform = (
notificationElements: NotificationEndpointItem[], notificationElements: NotificationEndpointItem[],
) => { ) => {

View File

@@ -64,7 +64,7 @@ import TooltipWrapper from "../Common/TooltipWrapper/TooltipWrapper";
import HelpMenu from "../HelpMenu"; import HelpMenu from "../HelpMenu";
import PageHeaderWrapper from "../Common/PageHeaderWrapper/PageHeaderWrapper"; import PageHeaderWrapper from "../Common/PageHeaderWrapper/PageHeaderWrapper";
export const formatPolicy = (policy: string = ""): string[] => { const formatPolicy = (policy: string = ""): string[] => {
if (policy.length <= 0) return []; if (policy.length <= 0) return [];
return policy.split(","); return policy.split(",");
}; };

View File

@@ -16,7 +16,7 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { HealthInfoMessage } from "./types"; import { HealthInfoMessage } from "./types";
export interface HealthInfoState { interface HealthInfoState {
message: HealthInfoMessage; message: HealthInfoMessage;
} }
@@ -24,7 +24,7 @@ const initialState: HealthInfoState = {
message: {} as HealthInfoMessage, message: {} as HealthInfoMessage,
}; };
export const healthInfoSlice = createSlice({ const healthInfoSlice = createSlice({
name: "trace", name: "trace",
initialState, initialState,
reducers: { reducers: {

View File

@@ -32,28 +32,28 @@ export interface ReportMessage {
subnetResponse: string; subnetResponse: string;
} }
export interface perfInfo { interface perfInfo {
drives: serverDrivesInfo[]; drives: serverDrivesInfo[];
net: serverNetHealthInfo[]; net: serverNetHealthInfo[];
net_parallel: serverNetHealthInfo; net_parallel: serverNetHealthInfo;
error: string; error: string;
} }
export interface serverDrivesInfo { interface serverDrivesInfo {
addr: string; addr: string;
serial: drivePerfInfo[]; serial: drivePerfInfo[];
parallel: drivePerfInfo[]; parallel: drivePerfInfo[];
error: string; error: string;
} }
export interface drivePerfInfo { interface drivePerfInfo {
endpoint: string; endpoint: string;
latency: diskLatency; latency: diskLatency;
throughput: diskThroughput; throughput: diskThroughput;
error: string; error: string;
} }
export interface diskLatency { interface diskLatency {
avg_secs: number; avg_secs: number;
percentile50_secs: number; percentile50_secs: number;
percentile90_secs: number; percentile90_secs: number;
@@ -62,7 +62,7 @@ export interface diskLatency {
max_secs: number; max_secs: number;
} }
export interface diskThroughput { interface diskThroughput {
avg_bytes_per_sec: number; avg_bytes_per_sec: number;
percentile50_bytes_per_sec: number; percentile50_bytes_per_sec: number;
percentile90_bytes_per_sec: number; percentile90_bytes_per_sec: number;
@@ -71,20 +71,20 @@ export interface diskThroughput {
max_bytes_per_sec: number; max_bytes_per_sec: number;
} }
export interface serverNetHealthInfo { interface serverNetHealthInfo {
addr: string; addr: string;
net: netPerfInfo[]; net: netPerfInfo[];
error: string; error: string;
} }
export interface netPerfInfo { interface netPerfInfo {
remote: string; remote: string;
latency: netLatency; latency: netLatency;
throughput: netThroughput; throughput: netThroughput;
error: string; error: string;
} }
export interface netLatency { interface netLatency {
avg_secs: number; avg_secs: number;
percentile50_secs: number; percentile50_secs: number;
percentile90_secs: number; percentile90_secs: number;
@@ -93,7 +93,7 @@ export interface netLatency {
max_secs: number; max_secs: number;
} }
export interface netThroughput { interface netThroughput {
avg_bytes_per_sec: number; avg_bytes_per_sec: number;
percentile50_bytes_per_sec: number; percentile50_bytes_per_sec: number;
percentile90_bytes_per_sec: number; percentile90_bytes_per_sec: number;
@@ -102,13 +102,13 @@ export interface netThroughput {
max_bytes_per_sec: number; max_bytes_per_sec: number;
} }
export interface minioHealthInfo { interface minioHealthInfo {
info: infoMessage; info: infoMessage;
config: any; config: any;
error: string; error: string;
} }
export interface infoMessage { interface infoMessage {
mode: string; mode: string;
domain: string[]; domain: string[];
region: string; region: string;
@@ -122,19 +122,19 @@ export interface infoMessage {
servers: serverProperties[]; servers: serverProperties[];
} }
export interface buckets { interface buckets {
count: number; count: number;
} }
export interface objects { interface objects {
count: number; count: number;
} }
export interface usage { interface usage {
size: number; size: number;
} }
export interface services { interface services {
vault: vault; vault: vault;
ldap: ldap; ldap: ldap;
logger: Map<string, status[]>[]; logger: Map<string, status[]>[];
@@ -142,21 +142,21 @@ export interface services {
notifications: Map<string, Map<string, status[]>[]>; notifications: Map<string, Map<string, status[]>[]>;
} }
export interface vault { interface vault {
status: string; status: string;
encrypt: string; encrypt: string;
decrypt: string; decrypt: string;
} }
export interface ldap { interface ldap {
status: string; status: string;
} }
export interface status { interface status {
status: string; status: string;
} }
export interface serverProperties { interface serverProperties {
state: string; state: string;
endpoint: string; endpoint: string;
uptime: number; uptime: number;
@@ -166,7 +166,7 @@ export interface serverProperties {
drives: disk[]; drives: disk[];
} }
export interface disk { interface disk {
endpoint: string; endpoint: string;
rootDisk: boolean; rootDisk: boolean;
path: string; path: string;
@@ -184,7 +184,7 @@ export interface disk {
utilization: number; utilization: number;
} }
export interface sysHealthInfo { interface sysHealthInfo {
cpus: serverCpuInfo[]; cpus: serverCpuInfo[];
drives: serverDiskHwInfo[]; drives: serverDiskHwInfo[];
osinfos: serverOsInfo[]; osinfos: serverOsInfo[];
@@ -193,14 +193,14 @@ export interface sysHealthInfo {
error: string; error: string;
} }
export interface serverCpuInfo { interface serverCpuInfo {
addr: string; addr: string;
cpu: cpuInfoStat[]; cpu: cpuInfoStat[];
time: cpuTimeStat[]; time: cpuTimeStat[];
error: string; error: string;
} }
export interface cpuInfoStat { interface cpuInfoStat {
cpu: number; cpu: number;
vendorId: string; vendorId: string;
family: string; family: string;
@@ -216,7 +216,7 @@ export interface cpuInfoStat {
microcode: string; microcode: string;
} }
export interface cpuTimeStat { interface cpuTimeStat {
cpu: string; cpu: string;
user: number; user: number;
system: number; system: number;
@@ -230,7 +230,7 @@ export interface cpuTimeStat {
guestNice: number; guestNice: number;
} }
export interface serverDiskHwInfo { interface serverDiskHwInfo {
addr: string; addr: string;
usages: diskUsageStat[]; usages: diskUsageStat[];
partitions: partitionStat[]; partitions: partitionStat[];
@@ -238,7 +238,7 @@ export interface serverDiskHwInfo {
error: string; error: string;
} }
export interface diskUsageStat { interface diskUsageStat {
path: string; path: string;
fstype: string; fstype: string;
total: number; total: number;
@@ -251,7 +251,7 @@ export interface diskUsageStat {
inodesUsedPercent: number; inodesUsedPercent: number;
} }
export interface partitionStat { interface partitionStat {
device: string; device: string;
mountpoint: string; mountpoint: string;
fstype: string; fstype: string;
@@ -259,7 +259,7 @@ export interface partitionStat {
smartInfo: smartInfo; smartInfo: smartInfo;
} }
export interface smartInfo { interface smartInfo {
device: string; device: string;
scsi: scsiInfo; scsi: scsiInfo;
nvme: nvmeInfo; nvme: nvmeInfo;
@@ -267,7 +267,7 @@ export interface smartInfo {
error: string; error: string;
} }
export interface scsiInfo { interface scsiInfo {
scsiCapacityBytes: number; scsiCapacityBytes: number;
scsiModeSenseBuf: string; scsiModeSenseBuf: string;
scsirespLen: number; scsirespLen: number;
@@ -276,7 +276,7 @@ export interface scsiInfo {
sciRpm: number; sciRpm: number;
} }
export interface nvmeInfo { interface nvmeInfo {
serialNum: string; serialNum: string;
vendorId: string; vendorId: string;
firmwareVersion: string; firmwareVersion: string;
@@ -297,7 +297,7 @@ export interface nvmeInfo {
hostWriteCommands: number; hostWriteCommands: number;
} }
export interface ataInfo { interface ataInfo {
scsiLuWWNDeviceID: string; scsiLuWWNDeviceID: string;
serialNum: string; serialNum: string;
modelNum: string; modelNum: string;
@@ -311,7 +311,7 @@ export interface ataInfo {
transport: string; transport: string;
} }
export interface diskIOCountersStat { interface diskIOCountersStat {
readCount: number; readCount: number;
mergedReadCount: number; mergedReadCount: number;
DriteCount: number; DriteCount: number;
@@ -328,7 +328,7 @@ export interface diskIOCountersStat {
label: string; label: string;
} }
export interface serverOsInfo { interface serverOsInfo {
addr: string; addr: string;
info: infoStat; info: infoStat;
sensors: temperatureStat[]; sensors: temperatureStat[];
@@ -336,7 +336,7 @@ export interface serverOsInfo {
error: string; error: string;
} }
export interface infoStat { interface infoStat {
hostname: string; hostname: string;
uptime: number; uptime: number;
bootTime: number; bootTime: number;
@@ -352,26 +352,26 @@ export interface infoStat {
hostid: string; hostid: string;
} }
export interface temperatureStat { interface temperatureStat {
sensorKey: string; sensorKey: string;
sensorTemperature: number; sensorTemperature: number;
} }
export interface userStat { interface userStat {
user: string; user: string;
terminal: string; terminal: string;
host: string; host: string;
started: number; started: number;
} }
export interface serverMemInfo { interface serverMemInfo {
addr: string; addr: string;
swap: swapMemoryStat; swap: swapMemoryStat;
virtualmem: virtualMemoryStat; virtualmem: virtualMemoryStat;
error: string; error: string;
} }
export interface swapMemoryStat { interface swapMemoryStat {
total: number; total: number;
used: number; used: number;
free: number; free: number;
@@ -384,7 +384,7 @@ export interface swapMemoryStat {
pgmajfault: number; pgmajfault: number;
} }
export interface virtualMemoryStat { interface virtualMemoryStat {
total: number; total: number;
available: number; available: number;
used: number; used: number;
@@ -422,13 +422,13 @@ export interface virtualMemoryStat {
hugepagesize: number; hugepagesize: number;
} }
export interface serverProcInfo { interface serverProcInfo {
addr: string; addr: string;
processes: sysProcess[]; processes: sysProcess[];
error: string; error: string;
} }
export interface sysProcess { interface sysProcess {
pid: number; pid: number;
background: boolean; background: boolean;
cpupercent: number; cpupercent: number;
@@ -461,7 +461,7 @@ export interface sysProcess {
username: string; username: string;
} }
export interface nethwConnectionStat { interface nethwConnectionStat {
fd: number; fd: number;
family: number; family: number;
type: number; type: number;
@@ -472,19 +472,19 @@ export interface nethwConnectionStat {
pid: number; pid: number;
} }
export interface netAddr { interface netAddr {
ip: string; ip: string;
port: number; port: number;
} }
export interface processIOCountersStat { interface processIOCountersStat {
readCount: number; readCount: number;
writeCount: number; writeCount: number;
readBytes: number; readBytes: number;
writeBytes: number; writeBytes: number;
} }
export interface memoryInfoStat { interface memoryInfoStat {
rss: number; rss: number;
vms: number; vms: number;
hwm: number; hwm: number;
@@ -494,7 +494,7 @@ export interface memoryInfoStat {
swap: number; swap: number;
} }
export interface nethwIOCounterStat { interface nethwIOCounterStat {
name: string; name: string;
bytesSent: number; bytesSent: number;
bytesRecv: number; bytesRecv: number;
@@ -508,19 +508,19 @@ export interface nethwIOCounterStat {
fifoout: number; fifoout: number;
} }
export interface processNmCtxSwitchesStat { interface processNmCtxSwitchesStat {
voluntary: number; voluntary: number;
involuntary: number; involuntary: number;
} }
export interface processPageFaultsStat { interface processPageFaultsStat {
minorFaults: number; minorFaults: number;
majorFaults: number; majorFaults: number;
childMinorFaults: number; childMinorFaults: number;
childMajorFaults: number; childMajorFaults: number;
} }
export interface processRLimitStat { interface processRLimitStat {
resource: number; resource: number;
soft: number; soft: number;
hard: number; hard: number;

View File

@@ -16,7 +16,7 @@
import { createSlice } from "@reduxjs/toolkit"; import { createSlice } from "@reduxjs/toolkit";
export interface IAddPool { interface IAddPool {
faqModalOpen: boolean; faqModalOpen: boolean;
} }
@@ -24,7 +24,7 @@ const initialState: IAddPool = {
faqModalOpen: false, faqModalOpen: false,
}; };
export const licenseSlice = createSlice({ const licenseSlice = createSlice({
name: "license", name: "license",
initialState, initialState,
reducers: { reducers: {
@@ -37,6 +37,4 @@ export const licenseSlice = createSlice({
}, },
}); });
export const { openFAQModal, closeFAQModal } = licenseSlice.actions;
export default licenseSlice.reducer; export default licenseSlice.reducer;

View File

@@ -17,7 +17,7 @@
import React from "react"; import React from "react";
import { ApplicationLogo } from "mds"; import { ApplicationLogo } from "mds";
export interface LicensePlanOption { interface LicensePlanOption {
planId: string; planId: string;
planName: string; planName: string;
planType: "commercial" | "open-source"; planType: "commercial" | "open-source";
@@ -25,7 +25,7 @@ export interface LicensePlanOption {
planDescription: React.ReactNode; planDescription: React.ReactNode;
} }
export interface FeatureElementObject { interface FeatureElementObject {
[name: string]: FeatureItem; [name: string]: FeatureItem;
} }
@@ -34,7 +34,7 @@ export interface FeatureItem {
isCheck?: boolean; isCheck?: boolean;
} }
export interface PlansFeatures { interface PlansFeatures {
featureLabel: string; featureLabel: string;
featurePlans: FeatureElementObject; featurePlans: FeatureElementObject;
} }
@@ -225,7 +225,7 @@ export const LICENSE_PLANS_INFORMATION: LicensePlanOption[] = [
}, },
]; ];
export const LICENSE_CONSENT_STORE_KEY = "agpl_minio_license_consent"; const LICENSE_CONSENT_STORE_KEY = "agpl_minio_license_consent";
export const setLicenseConsent = () => { export const setLicenseConsent = () => {
localStorage.setItem(LICENSE_CONSENT_STORE_KEY, "true"); localStorage.setItem(LICENSE_CONSENT_STORE_KEY, "true");
}; };

View File

@@ -18,7 +18,7 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { LogMessage } from "./types"; import { LogMessage } from "./types";
import { DateTime } from "luxon"; import { DateTime } from "luxon";
export interface LogState { interface LogState {
logMessages: LogMessage[]; logMessages: LogMessage[];
logsStarted: boolean; logsStarted: boolean;
} }
@@ -28,7 +28,7 @@ const initialState: LogState = {
logsStarted: false, logsStarted: false,
}; };
export const logsSlice = createSlice({ const logsSlice = createSlice({
name: "logs", name: "logs",
initialState, initialState,
reducers: { reducers: {

View File

@@ -14,17 +14,17 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
export interface logError { interface logError {
message: string; message: string;
source: string[]; source: string[];
} }
export interface logErrorApiArgs { interface logErrorApiArgs {
bucket: string; bucket: string;
object: string; object: string;
} }
export interface logErrorApi { interface logErrorApi {
name: string; name: string;
args: logErrorApiArgs; args: logErrorApiArgs;
} }

View File

@@ -80,7 +80,7 @@ const initialState: ObjectBrowserState = {
maxShareLinkExpTime: 0, maxShareLinkExpTime: 0,
}; };
export const objectBrowserSlice = createSlice({ const objectBrowserSlice = createSlice({
name: "objectBrowser", name: "objectBrowser",
initialState, initialState,
reducers: { reducers: {
@@ -398,7 +398,6 @@ export const {
cleanList, cleanList,
toggleList, toggleList,
openList, openList,
closeList,
setSearchObjects, setSearchObjects,
setRequestInProgress, setRequestInProgress,
cancelObjectInList, cancelObjectInList,

View File

@@ -20,7 +20,7 @@ import {
GetBucketRetentionConfig, GetBucketRetentionConfig,
} from "api/consoleApi"; } from "api/consoleApi";
export interface RewindItem { interface RewindItem {
rewindEnabled: boolean; rewindEnabled: boolean;
bucketToRewind: string; bucketToRewind: string;
dateToRewind: string | null; dateToRewind: string | null;
@@ -60,7 +60,7 @@ export interface ObjectBrowserState {
maxShareLinkExpTime: number; maxShareLinkExpTime: number;
} }
export interface ObjectManager { interface ObjectManager {
objectsToManage: IFileItem[]; objectsToManage: IFileItem[];
managerOpen: boolean; managerOpen: boolean;
newItems: boolean; newItems: boolean;

View File

@@ -24,7 +24,7 @@ export interface SpeedTestResponse {
GETStats?: STStats; GETStats?: STStats;
} }
export interface STStats { interface STStats {
throughputPerSec: number; throughputPerSec: number;
objectsPerSec: number; objectsPerSec: number;
servers: STServer[] | null; servers: STServer[] | null;

View File

@@ -17,7 +17,7 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { SubnetInfo, SubnetOrganization } from "../License/types"; import { SubnetInfo, SubnetOrganization } from "../License/types";
export interface RegisterState { interface RegisterState {
license: string; license: string;
subnetPassword: string; subnetPassword: string;
subnetEmail: string; subnetEmail: string;
@@ -51,7 +51,7 @@ const initialState: RegisterState = {
curTab: "simple-tab-0", curTab: "simple-tab-0",
}; };
export const registerSlice = createSlice({ const registerSlice = createSlice({
name: "register", name: "register",
initialState, initialState,
reducers: { reducers: {
@@ -106,7 +106,6 @@ export const registerSlice = createSlice({
// Action creators are generated for each case reducer function // Action creators are generated for each case reducer function
export const { export const {
setLicense,
setSubnetPassword, setSubnetPassword,
setSubnetEmail, setSubnetEmail,
setSubnetMFAToken, setSubnetMFAToken,

View File

@@ -91,7 +91,7 @@ export const fetchLicenseInfo = createAsyncThunk(
}, },
); );
export interface ClassRegisterArgs { interface ClassRegisterArgs {
token: string; token: string;
account_id: string; account_id: string;
} }

View File

@@ -17,7 +17,7 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { TraceMessage } from "./types"; import { TraceMessage } from "./types";
export interface TraceState { interface TraceState {
messages: TraceMessage[]; messages: TraceMessage[];
traceStarted: boolean; traceStarted: boolean;
} }
@@ -27,7 +27,7 @@ const initialState: TraceState = {
traceStarted: false, traceStarted: false,
}; };
export const traceSlice = createSlice({ const traceSlice = createSlice({
name: "trace", name: "trace",
initialState, initialState,
reducers: { reducers: {

View File

@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
export interface CallStats { interface CallStats {
timeToFirstByte: string; timeToFirstByte: string;
rx: number; rx: number;
tx: number; tx: number;

View File

@@ -17,7 +17,7 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { createUserAsync, resetFormAsync } from "./thunk/AddUsersThunk"; import { createUserAsync, resetFormAsync } from "./thunk/AddUsersThunk";
export interface ICreateUser { interface ICreateUser {
userName: string; userName: string;
secretKey: string; secretKey: string;
selectedGroups: string[]; selectedGroups: string[];
@@ -39,7 +39,7 @@ const initialState: ICreateUser = {
secretKeylength: 0, secretKeylength: 0,
}; };
export const createUserSlice = createSlice({ const createUserSlice = createSlice({
name: "createUser", name: "createUser",
initialState, initialState,
reducers: { reducers: {
@@ -93,7 +93,6 @@ export const {
setSelectedPolicies, setSelectedPolicies,
setAddLoading, setAddLoading,
setSendEnabled, setSendEnabled,
setApinoerror,
} = createUserSlice.actions; } = createUserSlice.actions;
export default createUserSlice.reducer; export default createUserSlice.reducer;

View File

@@ -31,7 +31,7 @@ export interface Bucket {
name: string; name: string;
} }
export interface Details { interface Details {
tags: object; tags: object;
} }

View File

@@ -17,7 +17,7 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { EventInfo } from "./types"; import { EventInfo } from "./types";
export interface WatchState { interface WatchState {
messages: EventInfo[]; messages: EventInfo[];
} }
@@ -25,7 +25,7 @@ const initialState: WatchState = {
messages: [], messages: [],
}; };
export const watchSlice = createSlice({ const watchSlice = createSlice({
name: "trace", name: "trace",
initialState, initialState,
reducers: { reducers: {

View File

@@ -20,7 +20,7 @@ import { AppState } from "../../store";
import { fetchSession } from "../../screens/LoginPage/sessionThunk"; import { fetchSession } from "../../screens/LoginPage/sessionThunk";
import { SessionCallStates } from "./consoleSlice.types"; import { SessionCallStates } from "./consoleSlice.types";
export interface ConsoleState { interface ConsoleState {
session: SessionResponse; session: SessionResponse;
sessionLoadingState: SessionCallStates; sessionLoadingState: SessionCallStates;
} }
@@ -30,7 +30,7 @@ const initialState: ConsoleState = {
sessionLoadingState: SessionCallStates.Initial, sessionLoadingState: SessionCallStates.Initial,
}; };
export const consoleSlice = createSlice({ const consoleSlice = createSlice({
name: "console", name: "console",
initialState, initialState,
reducers: { reducers: {

View File

@@ -18,7 +18,7 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { LoginDetails } from "api/consoleApi"; import { LoginDetails } from "api/consoleApi";
import { doLoginAsync, getFetchConfigurationAsync } from "./loginThunks"; import { doLoginAsync, getFetchConfigurationAsync } from "./loginThunks";
export interface LoginState { interface LoginState {
accessKey: string; accessKey: string;
secretKey: string; secretKey: string;
sts: string; sts: string;
@@ -49,7 +49,7 @@ const initialState: LoginState = {
ssoEmbeddedIDPDisplay: false, ssoEmbeddedIDPDisplay: false,
}; };
export const loginSlice = createSlice({ const loginSlice = createSlice({
name: "login", name: "login",
initialState, initialState,
reducers: { reducers: {

View File

@@ -1,143 +0,0 @@
// This optional code is used to register a service worker.
// register() is not called by default.
// This lets the app load faster on subsequent visits in production, and gives
// it offline capabilities. However, it also means that developers (and users)
// will only see deployed updates on subsequent visits to a page, after all the
// existing tabs open on the page have been closed, since previously cached
// resources are updated in the background.
// To learn more about the benefits of this model and instructions on how to
// opt-in, read https://bit.ly/CRA-PWA
const isLocalhost = Boolean(
window.location.hostname === "localhost" ||
// [::1] is the IPv6 localhost address.
window.location.hostname === "[::1]" ||
// 127.0.0.1/8 is considered localhost for IPv4.
window.location.hostname.match(
/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/,
),
);
type Config = {
onSuccess?: (registration: ServiceWorkerRegistration) => void;
onUpdate?: (registration: ServiceWorkerRegistration) => void;
};
export function register(config?: Config) {
if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) {
// The URL constructor is available in all browsers that support SW.
const publicUrl = new URL(
(process as { env: { [key: string]: string } }).env.PUBLIC_URL,
window.location.href,
);
if (publicUrl.origin !== window.location.origin) {
// Our service worker won't work if PUBLIC_URL is on a different origin
// from what our page is served on. This might happen if a CDN is used to
// serve assets; see https://github.com/facebook/create-react-app/issues/2374
return;
}
window.addEventListener("load", () => {
const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
if (isLocalhost) {
// This is running on localhost. Let's check if a service worker still exists or not.
checkValidServiceWorker(swUrl, config);
// Add some additional logging to localhost, pointing developers to the
// service worker/PWA documentation.
navigator.serviceWorker.ready.then(() => {
console.log(
"This web app is being served cache-first by a service " +
"worker. To learn more, visit https://bit.ly/CRA-PWA",
);
});
} else {
// Is not localhost. Just register service worker
registerValidSW(swUrl, config);
}
});
}
}
function registerValidSW(swUrl: string, config?: Config) {
navigator.serviceWorker
.register(swUrl)
.then((registration) => {
registration.onupdatefound = () => {
const installingWorker = registration.installing;
if (installingWorker === null) {
return;
}
installingWorker.onstatechange = () => {
if (installingWorker.state === "installed") {
if (navigator.serviceWorker.controller) {
// At this point, the updated precached content has been fetched,
// but the previous service worker will still serve the older
// content until all client tabs are closed.
console.log(
"New content is available and will be used when all " +
"tabs for this page are closed. See https://bit.ly/CRA-PWA.",
);
// Execute callback
if (config && config.onUpdate) {
config.onUpdate(registration);
}
} else {
// At this point, everything has been precached.
// It's the perfect time to display a
// "Content is cached for offline use." message.
console.log("Content is cached for offline use.");
// Execute callback
if (config && config.onSuccess) {
config.onSuccess(registration);
}
}
}
};
};
})
.catch((error) => {
console.error("Error during service worker registration:", error);
});
}
function checkValidServiceWorker(swUrl: string, config?: Config) {
// Check if the service worker can be found. If it can't reload the page.
fetch(swUrl)
.then((response) => {
// Ensure service worker exists, and that we really are getting a JS file.
const contentType = response.headers.get("content-type");
if (
response.status === 404 ||
(contentType !== null && contentType.indexOf("javascript") === -1)
) {
// No service worker found. Probably a different app. Reload the page.
navigator.serviceWorker.ready.then((registration) => {
registration.unregister().then(() => {
window.location.reload();
});
});
} else {
// Service worker found. Proceed as normal.
registerValidSW(swUrl, config);
}
})
.catch(() => {
console.log(
"No internet connection found. App is running in offline mode.",
);
});
}
export function unregister() {
if ("serviceWorker" in navigator) {
navigator.serviceWorker.ready.then((registration) => {
registration.unregister();
});
}
}

View File

@@ -69,8 +69,6 @@ if (process.env.NODE_ENV !== "production" && module.hot) {
export type AppState = ReturnType<typeof rootReducer>; export type AppState = ReturnType<typeof rootReducer>;
export type AppDispatch = typeof store.dispatch; export type AppDispatch = typeof store.dispatch;
export type RootState = ReturnType<typeof store.getState>; type RootState = ReturnType<typeof store.getState>;
export const useAppDispatch = () => useDispatch<AppDispatch>(); export const useAppDispatch = () => useDispatch<AppDispatch>();
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector; export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;
export default store;

View File

@@ -25,7 +25,7 @@ const initSideBarOpen = localStorage.getItem("sidebarOpen")
? JSON.parse(localStorage.getItem("sidebarOpen")!)["open"] ? JSON.parse(localStorage.getItem("sidebarOpen")!)["open"]
: true; : true;
export interface SystemState { interface SystemState {
value: number; value: number;
loggedIn: boolean; loggedIn: boolean;
showMarketplace: boolean; showMarketplace: boolean;
@@ -81,7 +81,7 @@ const initialState: SystemState = {
darkMode: isDarkModeOn(), darkMode: isDarkModeOn(),
}; };
export const systemSlice = createSlice({ const systemSlice = createSlice({
name: "system", name: "system",
initialState, initialState,
reducers: { reducers: {
@@ -189,11 +189,9 @@ export const systemSlice = createSlice({
// Action creators are generated for each case reducer function // Action creators are generated for each case reducer function
export const { export const {
userLogged, userLogged,
showMarketplace,
menuOpen, menuOpen,
setServerNeedsRestart, setServerNeedsRestart,
serverIsLoading, serverIsLoading,
setLoadingProgress,
setSnackBarMessage, setSnackBarMessage,
setErrorSnackMessage, setErrorSnackMessage,
setModalErrorSnackMessage, setModalErrorSnackMessage,
@@ -201,7 +199,6 @@ export const {
setServerDiagStat, setServerDiagStat,
globalSetDistributedSetup, globalSetDistributedSetup,
setSiteReplicationInfo, setSiteReplicationInfo,
setSystemLicenseInfo,
setOverrideStyles, setOverrideStyles,
setAnonymousMode, setAnonymousMode,
resetSystem, resetSystem,

View File

@@ -2163,6 +2163,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@jest/expect-utils@npm:^29.7.0":
version: 29.7.0
resolution: "@jest/expect-utils@npm:29.7.0"
dependencies:
jest-get-type: "npm:^29.6.3"
checksum: 10c0/60b79d23a5358dc50d9510d726443316253ecda3a7fb8072e1526b3e0d3b14f066ee112db95699b7a43ad3f0b61b750c72e28a5a1cac361d7a2bb34747fa938a
languageName: node
linkType: hard
"@jest/fake-timers@npm:^27.5.1": "@jest/fake-timers@npm:^27.5.1":
version: 27.5.1 version: 27.5.1
resolution: "@jest/fake-timers@npm:27.5.1" resolution: "@jest/fake-timers@npm:27.5.1"
@@ -2341,6 +2350,20 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@jest/types@npm:^29.6.3":
version: 29.6.3
resolution: "@jest/types@npm:29.6.3"
dependencies:
"@jest/schemas": "npm:^29.6.3"
"@types/istanbul-lib-coverage": "npm:^2.0.0"
"@types/istanbul-reports": "npm:^3.0.0"
"@types/node": "npm:*"
"@types/yargs": "npm:^17.0.8"
chalk: "npm:^4.0.0"
checksum: 10c0/ea4e493dd3fb47933b8ccab201ae573dcc451f951dc44ed2a86123cd8541b82aa9d2b1031caf9b1080d6673c517e2dcc25a44b2dc4f3fbc37bfc965d444888c0
languageName: node
linkType: hard
"@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": "@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5":
version: 0.3.5 version: 0.3.5
resolution: "@jridgewell/gen-mapping@npm:0.3.5" resolution: "@jridgewell/gen-mapping@npm:0.3.5"
@@ -2445,7 +2468,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": "@nodelib/fs.walk@npm:1.2.8, @nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8":
version: 1.2.8 version: 1.2.8
resolution: "@nodelib/fs.walk@npm:1.2.8" resolution: "@nodelib/fs.walk@npm:1.2.8"
dependencies: dependencies:
@@ -2734,6 +2757,19 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@snyk/github-codeowners@npm:1.1.0":
version: 1.1.0
resolution: "@snyk/github-codeowners@npm:1.1.0"
dependencies:
commander: "npm:^4.1.1"
ignore: "npm:^5.1.8"
p-map: "npm:^4.0.0"
bin:
github-codeowners: dist/cli.js
checksum: 10c0/92d860a904a1e67f8563d4ac4d540cc613f71193f7968933b4a4b1526e80a97f536f52d27762c158e3e39d48c2f3db4906ec78846309351c741abb1a28653af9
languageName: node
linkType: hard
"@storybook/csf@npm:0.1.11": "@storybook/csf@npm:0.1.11":
version: 0.1.11 version: 0.1.11
resolution: "@storybook/csf@npm:0.1.11" resolution: "@storybook/csf@npm:0.1.11"
@@ -2996,18 +3032,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@ts-morph/common@npm:~0.12.3":
version: 0.12.3
resolution: "@ts-morph/common@npm:0.12.3"
dependencies:
fast-glob: "npm:^3.2.7"
minimatch: "npm:^3.0.4"
mkdirp: "npm:^1.0.4"
path-browserify: "npm:^1.0.1"
checksum: 10c0/2a0b25128eca547cfdf4795d39e7d6e15c81008b74867ccdda9d0d9c1b0eaca534d6d729220572e726a811786efa3c38f3b6a482d3fc970d3bf0acea39a7248f
languageName: node
linkType: hard
"@types/aria-query@npm:^5.0.1": "@types/aria-query@npm:^5.0.1":
version: 5.0.4 version: 5.0.4
resolution: "@types/aria-query@npm:5.0.4" resolution: "@types/aria-query@npm:5.0.4"
@@ -3355,6 +3379,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/jest@npm:^29.5.12":
version: 29.5.12
resolution: "@types/jest@npm:29.5.12"
dependencies:
expect: "npm:^29.0.0"
pretty-format: "npm:^29.0.0"
checksum: 10c0/25fc8e4c611fa6c4421e631432e9f0a6865a8cb07c9815ec9ac90d630271cad773b2ee5fe08066f7b95bebd18bb967f8ce05d018ee9ab0430f9dfd1d84665b6f
languageName: node
linkType: hard
"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9":
version: 7.0.15 version: 7.0.15
resolution: "@types/json-schema@npm:7.0.15" resolution: "@types/json-schema@npm:7.0.15"
@@ -5605,6 +5639,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"clone@npm:^1.0.2":
version: 1.0.4
resolution: "clone@npm:1.0.4"
checksum: 10c0/2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b
languageName: node
linkType: hard
"clsx@npm:^1.0.4": "clsx@npm:^1.0.4":
version: 1.2.1 version: 1.2.1
resolution: "clsx@npm:1.2.1" resolution: "clsx@npm:1.2.1"
@@ -5612,7 +5653,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"clsx@npm:^2.0.0": "clsx@npm:^2.0.0, clsx@npm:^2.1.1":
version: 2.1.1 version: 2.1.1
resolution: "clsx@npm:2.1.1" resolution: "clsx@npm:2.1.1"
checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839 checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839
@@ -5637,13 +5678,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"code-block-writer@npm:^11.0.0":
version: 11.0.3
resolution: "code-block-writer@npm:11.0.3"
checksum: 10c0/12fe4c02152a2b607e8913b39dcc31dcb5240f7c8933a3335d4e42a5418af409bf7ed454c80d6d8c12f9c59bb685dd88f9467874b46be62236dfbed446d03fd6
languageName: node
linkType: hard
"coffeescript@npm:^2.3.1": "coffeescript@npm:^2.3.1":
version: 2.7.0 version: 2.7.0
resolution: "coffeescript@npm:2.7.0" resolution: "coffeescript@npm:2.7.0"
@@ -5746,7 +5780,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"commander@npm:^4.0.0": "commander@npm:^4.0.0, commander@npm:^4.1.1":
version: 4.1.1 version: 4.1.1
resolution: "commander@npm:4.1.1" resolution: "commander@npm:4.1.1"
checksum: 10c0/84a76c08fe6cc08c9c93f62ac573d2907d8e79138999312c92d4155bc2325d487d64d13f669b2000c9f8caf70493c1be2dac74fec3c51d5a04f8bc3ae1830bab checksum: 10c0/84a76c08fe6cc08c9c93f62ac573d2907d8e79138999312c92d4155bc2325d487d64d13f669b2000c9f8caf70493c1be2dac74fec3c51d5a04f8bc3ae1830bab
@@ -5760,13 +5794,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"commander@npm:^6.2.1":
version: 6.2.1
resolution: "commander@npm:6.2.1"
checksum: 10c0/85748abd9d18c8bc88febed58b98f66b7c591d9b5017cad459565761d7b29ca13b7783ea2ee5ce84bf235897333706c4ce29adf1ce15c8252780e7000e2ce9ea
languageName: node
linkType: hard
"commander@npm:^7.2.0": "commander@npm:^7.2.0":
version: 7.2.0 version: 7.2.0
resolution: "commander@npm:7.2.0" resolution: "commander@npm:7.2.0"
@@ -5964,7 +5991,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"cosmiconfig@npm:^7.0.0, cosmiconfig@npm:^7.0.1": "cosmiconfig@npm:^7.0.0":
version: 7.1.0 version: 7.1.0
resolution: "cosmiconfig@npm:7.1.0" resolution: "cosmiconfig@npm:7.1.0"
dependencies: dependencies:
@@ -6625,6 +6652,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"defaults@npm:^1.0.3":
version: 1.0.4
resolution: "defaults@npm:1.0.4"
dependencies:
clone: "npm:^1.0.2"
checksum: 10c0/9cfbe498f5c8ed733775db62dfd585780387d93c17477949e1670bfcfb9346e0281ce8c4bf9f4ac1fc0f9b851113bd6dc9e41182ea1644ccd97de639fa13c35a
languageName: node
linkType: hard
"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": "define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4":
version: 1.1.4 version: 1.1.4
resolution: "define-data-property@npm:1.1.4" resolution: "define-data-property@npm:1.1.4"
@@ -7035,6 +7071,19 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"easy-table@npm:1.2.0":
version: 1.2.0
resolution: "easy-table@npm:1.2.0"
dependencies:
ansi-regex: "npm:^5.0.1"
wcwidth: "npm:^1.0.1"
dependenciesMeta:
wcwidth:
optional: true
checksum: 10c0/2d37937cd608586ba02e1ec479f90ccec581d366b3b0d1bb26b99ee6005f8d724e32a07a873759893461ca45b99e2d08c30326529d967ce9eedc1e9b68d4aa63
languageName: node
linkType: hard
"ee-first@npm:1.1.1": "ee-first@npm:1.1.1":
version: 1.1.1 version: 1.1.1
resolution: "ee-first@npm:1.1.1" resolution: "ee-first@npm:1.1.1"
@@ -7151,6 +7200,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"enhanced-resolve@npm:^5.17.1":
version: 5.17.1
resolution: "enhanced-resolve@npm:5.17.1"
dependencies:
graceful-fs: "npm:^4.2.4"
tapable: "npm:^2.2.0"
checksum: 10c0/81a0515675eca17efdba2cf5bad87abc91a528fc1191aad50e275e74f045b41506167d420099022da7181c8d787170ea41e4a11a0b10b7a16f6237daecb15370
languageName: node
linkType: hard
"entities@npm:^2.0.0": "entities@npm:^2.0.0":
version: 2.2.0 version: 2.2.0
resolution: "entities@npm:2.2.0" resolution: "entities@npm:2.2.0"
@@ -7893,6 +7952,19 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"expect@npm:^29.0.0":
version: 29.7.0
resolution: "expect@npm:29.7.0"
dependencies:
"@jest/expect-utils": "npm:^29.7.0"
jest-get-type: "npm:^29.6.3"
jest-matcher-utils: "npm:^29.7.0"
jest-message-util: "npm:^29.7.0"
jest-util: "npm:^29.7.0"
checksum: 10c0/2eddeace66e68b8d8ee5f7be57f3014b19770caaf6815c7a08d131821da527fb8c8cb7b3dcd7c883d2d3d8d184206a4268984618032d1e4b16dc8d6596475d41
languageName: node
linkType: hard
"exponential-backoff@npm:^3.1.1": "exponential-backoff@npm:^3.1.1":
version: 3.1.1 version: 3.1.1
resolution: "exponential-backoff@npm:3.1.1" resolution: "exponential-backoff@npm:3.1.1"
@@ -7967,7 +8039,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": "fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.2":
version: 3.3.2 version: 3.3.2
resolution: "fast-glob@npm:3.3.2" resolution: "fast-glob@npm:3.3.2"
dependencies: dependencies:
@@ -9278,7 +9350,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"http-status-codes@npm:^2.2.0": "http-status-codes@npm:^2.2.0, http-status-codes@npm:^2.3.0":
version: 2.3.0 version: 2.3.0
resolution: "http-status-codes@npm:2.3.0" resolution: "http-status-codes@npm:2.3.0"
checksum: 10c0/c2412188929e8eed6623eef468c62d0c3c082919c03e9b74fd79cfd060d11783dba44603e38a3cee52d26563fe32005913eaf6120aa8ba907da1238f3eaad5fe checksum: 10c0/c2412188929e8eed6623eef468c62d0c3c082919c03e9b74fd79cfd060d11783dba44603e38a3cee52d26563fe32005913eaf6120aa8ba907da1238f3eaad5fe
@@ -9404,6 +9476,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ignore@npm:^5.1.8":
version: 5.3.2
resolution: "ignore@npm:5.3.2"
checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337
languageName: node
linkType: hard
"immer@npm:^9.0.21, immer@npm:^9.0.7": "immer@npm:^9.0.21, immer@npm:^9.0.7":
version: 9.0.21 version: 9.0.21
resolution: "immer@npm:9.0.21" resolution: "immer@npm:9.0.21"
@@ -10300,6 +10379,18 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"jest-diff@npm:^29.7.0":
version: 29.7.0
resolution: "jest-diff@npm:29.7.0"
dependencies:
chalk: "npm:^4.0.0"
diff-sequences: "npm:^29.6.3"
jest-get-type: "npm:^29.6.3"
pretty-format: "npm:^29.7.0"
checksum: 10c0/89a4a7f182590f56f526443dde69acefb1f2f0c9e59253c61d319569856c4931eae66b8a3790c443f529267a0ddba5ba80431c585deed81827032b2b2a1fc999
languageName: node
linkType: hard
"jest-docblock@npm:^27.5.1": "jest-docblock@npm:^27.5.1":
version: 27.5.1 version: 27.5.1
resolution: "jest-docblock@npm:27.5.1" resolution: "jest-docblock@npm:27.5.1"
@@ -10358,6 +10449,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"jest-get-type@npm:^29.6.3":
version: 29.6.3
resolution: "jest-get-type@npm:29.6.3"
checksum: 10c0/552e7a97a983d3c2d4e412a44eb7de0430ff773dd99f7500962c268d6dfbfa431d7d08f919c9d960530e5f7f78eb47f267ad9b318265e5092b3ff9ede0db7c2b
languageName: node
linkType: hard
"jest-haste-map@npm:^27.5.1": "jest-haste-map@npm:^27.5.1":
version: 27.5.1 version: 27.5.1
resolution: "jest-haste-map@npm:27.5.1" resolution: "jest-haste-map@npm:27.5.1"
@@ -10429,6 +10527,18 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"jest-matcher-utils@npm:^29.7.0":
version: 29.7.0
resolution: "jest-matcher-utils@npm:29.7.0"
dependencies:
chalk: "npm:^4.0.0"
jest-diff: "npm:^29.7.0"
jest-get-type: "npm:^29.6.3"
pretty-format: "npm:^29.7.0"
checksum: 10c0/0d0e70b28fa5c7d4dce701dc1f46ae0922102aadc24ed45d594dd9b7ae0a8a6ef8b216718d1ab79e451291217e05d4d49a82666e1a3cc2b428b75cd9c933244e
languageName: node
linkType: hard
"jest-message-util@npm:^27.5.1": "jest-message-util@npm:^27.5.1":
version: 27.5.1 version: 27.5.1
resolution: "jest-message-util@npm:27.5.1" resolution: "jest-message-util@npm:27.5.1"
@@ -10463,6 +10573,23 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"jest-message-util@npm:^29.7.0":
version: 29.7.0
resolution: "jest-message-util@npm:29.7.0"
dependencies:
"@babel/code-frame": "npm:^7.12.13"
"@jest/types": "npm:^29.6.3"
"@types/stack-utils": "npm:^2.0.0"
chalk: "npm:^4.0.0"
graceful-fs: "npm:^4.2.9"
micromatch: "npm:^4.0.4"
pretty-format: "npm:^29.7.0"
slash: "npm:^3.0.0"
stack-utils: "npm:^2.0.3"
checksum: 10c0/850ae35477f59f3e6f27efac5215f706296e2104af39232bb14e5403e067992afb5c015e87a9243ec4d9df38525ef1ca663af9f2f4766aa116f127247008bd22
languageName: node
linkType: hard
"jest-mock@npm:^27.5.1": "jest-mock@npm:^27.5.1":
version: 27.5.1 version: 27.5.1
resolution: "jest-mock@npm:27.5.1" resolution: "jest-mock@npm:27.5.1"
@@ -10655,6 +10782,20 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"jest-util@npm:^29.7.0":
version: 29.7.0
resolution: "jest-util@npm:29.7.0"
dependencies:
"@jest/types": "npm:^29.6.3"
"@types/node": "npm:*"
chalk: "npm:^4.0.0"
ci-info: "npm:^3.2.0"
graceful-fs: "npm:^4.2.9"
picomatch: "npm:^2.2.3"
checksum: 10c0/bc55a8f49fdbb8f51baf31d2a4f312fb66c9db1483b82f602c9c990e659cdd7ec529c8e916d5a89452ecbcfae4949b21b40a7a59d4ffc0cd813a973ab08c8150
languageName: node
linkType: hard
"jest-validate@npm:^27.5.1": "jest-validate@npm:^27.5.1":
version: 27.5.1 version: 27.5.1
resolution: "jest-validate@npm:27.5.1" resolution: "jest-validate@npm:27.5.1"
@@ -10777,6 +10918,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"jiti@npm:^1.21.6":
version: 1.21.6
resolution: "jiti@npm:1.21.6"
bin:
jiti: bin/jiti.js
checksum: 10c0/05b9ed58cd30d0c3ccd3c98209339e74f50abd9a17e716f65db46b6a35812103f6bde6e134be7124d01745586bca8cc5dae1d0d952267c3ebe55171949c32e56
languageName: node
linkType: hard
"js-md4@npm:^0.3.2": "js-md4@npm:^0.3.2":
version: 0.3.2 version: 0.3.2
resolution: "js-md4@npm:0.3.2" resolution: "js-md4@npm:0.3.2"
@@ -10939,7 +11089,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"json5@npm:^2.1.2, json5@npm:^2.1.3, json5@npm:^2.2.0, json5@npm:^2.2.2, json5@npm:^2.2.3": "json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.2, json5@npm:^2.2.3":
version: 2.2.3 version: 2.2.3
resolution: "json5@npm:2.2.3" resolution: "json5@npm:2.2.3"
bin: bin:
@@ -11069,6 +11219,36 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"knip@npm:^5.27.2":
version: 5.27.2
resolution: "knip@npm:5.27.2"
dependencies:
"@nodelib/fs.walk": "npm:1.2.8"
"@snyk/github-codeowners": "npm:1.1.0"
easy-table: "npm:1.2.0"
enhanced-resolve: "npm:^5.17.1"
fast-glob: "npm:^3.3.2"
jiti: "npm:^1.21.6"
js-yaml: "npm:^4.1.0"
minimist: "npm:^1.2.8"
picocolors: "npm:^1.0.0"
picomatch: "npm:^4.0.1"
pretty-ms: "npm:^9.0.0"
smol-toml: "npm:^1.1.4"
strip-json-comments: "npm:5.0.1"
summary: "npm:2.1.0"
zod: "npm:^3.22.4"
zod-validation-error: "npm:^3.0.3"
peerDependencies:
"@types/node": ">=18"
typescript: ">=5.0.4"
bin:
knip: bin/knip.js
knip-bun: bin/knip-bun.js
checksum: 10c0/24bc334edbd705cfd0d78dc66517d806161974b45f707555ddc88887772022bc949dca84b06f42573a8fd49ede206f7611e6753349a9f98086fe29ee15ca3f5e
languageName: node
linkType: hard
"language-subtag-registry@npm:^0.3.20": "language-subtag-registry@npm:^0.3.20":
version: 0.3.23 version: 0.3.23
resolution: "language-subtag-registry@npm:0.3.23" resolution: "language-subtag-registry@npm:0.3.23"
@@ -12042,7 +12222,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"minimist@npm:^1.1.0, minimist@npm:^1.2.0, minimist@npm:^1.2.6": "minimist@npm:^1.1.0, minimist@npm:^1.2.0, minimist@npm:^1.2.6, minimist@npm:^1.2.8":
version: 1.2.8 version: 1.2.8
resolution: "minimist@npm:1.2.8" resolution: "minimist@npm:1.2.8"
checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6
@@ -12166,7 +12346,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": "mkdirp@npm:^1.0.3":
version: 1.0.4 version: 1.0.4
resolution: "mkdirp@npm:1.0.4" resolution: "mkdirp@npm:1.0.4"
bin: bin:
@@ -12860,6 +13040,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"parse-ms@npm:^4.0.0":
version: 4.0.0
resolution: "parse-ms@npm:4.0.0"
checksum: 10c0/a7900f4f1ebac24cbf5e9708c16fb2fd482517fad353aecd7aefb8c2ba2f85ce017913ccb8925d231770404780df46244ea6fec598b3bde6490882358b4d2d16
languageName: node
linkType: hard
"parse-numeric-range@npm:^1.3.0": "parse-numeric-range@npm:^1.3.0":
version: 1.3.0 version: 1.3.0
resolution: "parse-numeric-range@npm:1.3.0" resolution: "parse-numeric-range@npm:1.3.0"
@@ -12914,13 +13101,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"path-browserify@npm:^1.0.1":
version: 1.0.1
resolution: "path-browserify@npm:1.0.1"
checksum: 10c0/8b8c3fd5c66bd340272180590ae4ff139769e9ab79522e2eb82e3d571a89b8117c04147f65ad066dccfb42fcad902e5b7d794b3d35e0fd840491a8ddbedf8c66
languageName: node
linkType: hard
"path-exists@npm:^3.0.0": "path-exists@npm:^3.0.0":
version: 3.0.0 version: 3.0.0
resolution: "path-exists@npm:3.0.0" resolution: "path-exists@npm:3.0.0"
@@ -13037,6 +13217,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"picomatch@npm:^4.0.1":
version: 4.0.2
resolution: "picomatch@npm:4.0.2"
checksum: 10c0/7c51f3ad2bb42c776f49ebf964c644958158be30d0a510efd5a395e8d49cb5acfed5b82c0c5b365523ce18e6ab85013c9ebe574f60305892ec3fa8eee8304ccc
languageName: node
linkType: hard
"pify@npm:^2.0.0, pify@npm:^2.2.0, pify@npm:^2.3.0": "pify@npm:^2.0.0, pify@npm:^2.2.0, pify@npm:^2.3.0":
version: 2.3.0 version: 2.3.0
resolution: "pify@npm:2.3.0" resolution: "pify@npm:2.3.0"
@@ -14040,7 +14227,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"pretty-format@npm:^29.7.0": "pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0":
version: 29.7.0 version: 29.7.0
resolution: "pretty-format@npm:29.7.0" resolution: "pretty-format@npm:29.7.0"
dependencies: dependencies:
@@ -14058,6 +14245,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"pretty-ms@npm:^9.0.0":
version: 9.1.0
resolution: "pretty-ms@npm:9.1.0"
dependencies:
parse-ms: "npm:^4.0.0"
checksum: 10c0/fd111aad8800a04dfd654e6016da69bdaa6fc6a4c280f8e727cffd8b5960558e94942f1a94d4aa6e4d179561a0fbb0366a9ebe0ccefbbb0f8ff853b129cdefb9
languageName: node
linkType: hard
"proc-log@npm:^3.0.0": "proc-log@npm:^3.0.0":
version: 3.0.0 version: 3.0.0
resolution: "proc-log@npm:3.0.0" resolution: "proc-log@npm:3.0.0"
@@ -15740,6 +15936,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"smol-toml@npm:^1.1.4":
version: 1.3.0
resolution: "smol-toml@npm:1.3.0"
checksum: 10c0/442b4d033236ff6dd05bf91d57695fd9070a8221af080a5b2782cb2d9fad8bc31f698c61de5308a351907c1200202ba3ee51d52c5704f5349149e7c374f5fe90
languageName: node
linkType: hard
"sockjs@npm:^0.3.24": "sockjs@npm:^0.3.24":
version: 0.3.24 version: 0.3.24
resolution: "sockjs@npm:0.3.24" resolution: "sockjs@npm:0.3.24"
@@ -16199,6 +16402,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"strip-json-comments@npm:5.0.1":
version: 5.0.1
resolution: "strip-json-comments@npm:5.0.1"
checksum: 10c0/c9d9d55a0167c57aa688df3aa20628cf6f46f0344038f189eaa9d159978e80b2bfa6da541a40d83f7bde8a3554596259bf6b70578b2172356536a0e3fa5a0982
languageName: node
linkType: hard
"strip-json-comments@npm:^3.1.1": "strip-json-comments@npm:^3.1.1":
version: 3.1.1 version: 3.1.1
resolution: "strip-json-comments@npm:3.1.1" resolution: "strip-json-comments@npm:3.1.1"
@@ -16283,6 +16493,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"summary@npm:2.1.0":
version: 2.1.0
resolution: "summary@npm:2.1.0"
checksum: 10c0/2743c1f940fb303c496ef1b085e654704a6c16872957b6b76648c34bd32c8f0b7a3c5ec4e0f8bfb71dcb8473e34d172fef31026b85562af589cf220aa901698d
languageName: node
linkType: hard
"superagent@npm:^9.0.2": "superagent@npm:^9.0.2":
version: 9.0.2 version: 9.0.2
resolution: "superagent@npm:9.0.2" resolution: "superagent@npm:9.0.2"
@@ -16979,13 +17196,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"true-myth@npm:^4.1.0":
version: 4.1.1
resolution: "true-myth@npm:4.1.1"
checksum: 10c0/ac83ac82f969129d5f002dcc489b86e28e59ee4149641b341b0176e9407786823c83702fe4b9ae9c0f9593f29a98c931ee175789d33e884f99c47e9c16e80adb
languageName: node
linkType: hard
"truncate-utf8-bytes@npm:^1.0.0": "truncate-utf8-bytes@npm:^1.0.0":
version: 1.0.2 version: 1.0.2
resolution: "truncate-utf8-bytes@npm:1.0.2" resolution: "truncate-utf8-bytes@npm:1.0.2"
@@ -17009,32 +17219,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ts-morph@npm:^13.0.1":
version: 13.0.3
resolution: "ts-morph@npm:13.0.3"
dependencies:
"@ts-morph/common": "npm:~0.12.3"
code-block-writer: "npm:^11.0.0"
checksum: 10c0/9d7fa1a29be3996b209e19d3e0c80eacd088afa76cd7c12b4b3d8a6a08d282d5f17e01cedf8bd841ad549a5df6580b876ea10597b3273e2bb49b85ffa2044d99
languageName: node
linkType: hard
"ts-prune@npm:^0.10.3":
version: 0.10.3
resolution: "ts-prune@npm:0.10.3"
dependencies:
commander: "npm:^6.2.1"
cosmiconfig: "npm:^7.0.1"
json5: "npm:^2.1.3"
lodash: "npm:^4.17.21"
true-myth: "npm:^4.1.0"
ts-morph: "npm:^13.0.1"
bin:
ts-prune: lib/index.js
checksum: 10c0/fecb609e4c1f207a23f8d82946cd654242a818ca28d078cebf7b8408f0b20c2245e1482019745117b7ae0e015b76aaba8d7382cd5429ee9fa48829253981b448
languageName: node
linkType: hard
"tsconfig-paths@npm:^3.15.0": "tsconfig-paths@npm:^3.15.0":
version: 3.15.0 version: 3.15.0
resolution: "tsconfig-paths@npm:3.15.0" resolution: "tsconfig-paths@npm:3.15.0"
@@ -17807,6 +17991,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"wcwidth@npm:^1.0.1":
version: 1.0.1
resolution: "wcwidth@npm:1.0.1"
dependencies:
defaults: "npm:^1.0.3"
checksum: 10c0/5b61ca583a95e2dd85d7078400190efd452e05751a64accb8c06ce4db65d7e0b0cde9917d705e826a2e05cc2548f61efde115ffa374c3e436d04be45c889e5b4
languageName: node
linkType: hard
"web-app@workspace:.": "web-app@workspace:.":
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "web-app@workspace:." resolution: "web-app@workspace:."
@@ -17814,6 +18007,7 @@ __metadata:
"@babel/plugin-proposal-private-property-in-object": "npm:^7.21.11" "@babel/plugin-proposal-private-property-in-object": "npm:^7.21.11"
"@playwright/test": "npm:^1.45.2" "@playwright/test": "npm:^1.45.2"
"@reduxjs/toolkit": "npm:^1.9.7" "@reduxjs/toolkit": "npm:^1.9.7"
"@types/jest": "npm:^29.5.12"
"@types/lodash": "npm:^4.17.7" "@types/lodash": "npm:^4.17.7"
"@types/luxon": "npm:^3.4.2" "@types/luxon": "npm:^3.4.2"
"@types/node": "npm:20.14.11" "@types/node": "npm:20.14.11"
@@ -17828,8 +18022,11 @@ __metadata:
"@types/superagent": "npm:^4.1.24" "@types/superagent": "npm:^4.1.24"
"@types/webpack-env": "npm:^1.18.5" "@types/webpack-env": "npm:^1.18.5"
babel-plugin-istanbul: "npm:^6.1.1" babel-plugin-istanbul: "npm:^6.1.1"
clsx: "npm:^2.1.1"
customize-cra: "npm:^1.0.0" customize-cra: "npm:^1.0.0"
http-status-codes: "npm:^2.3.0"
kbar: "npm:^0.1.0-beta.45" kbar: "npm:^0.1.0-beta.45"
knip: "npm:^5.27.2"
local-storage-fallback: "npm:^4.1.2" local-storage-fallback: "npm:^4.1.2"
lodash: "npm:^4.17.21" lodash: "npm:^4.17.21"
luxon: "npm:^3.4.4" luxon: "npm:^3.4.4"
@@ -17858,7 +18055,6 @@ __metadata:
superagent: "npm:^9.0.2" superagent: "npm:^9.0.2"
testcafe: "npm:3.6.2" testcafe: "npm:3.6.2"
tinycolor2: "npm:^1.6.0" tinycolor2: "npm:^1.6.0"
ts-prune: "npm:^0.10.3"
typescript: "npm:^5.5.3" typescript: "npm:^5.5.3"
languageName: unknown languageName: unknown
linkType: soft linkType: soft
@@ -18676,6 +18872,22 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"zod-validation-error@npm:^3.0.3":
version: 3.3.1
resolution: "zod-validation-error@npm:3.3.1"
peerDependencies:
zod: ^3.18.0
checksum: 10c0/53869a8478f42cd38f51e159431fe7af9e0b456e8078c6d9d906adb212753788defa9c8bd7374e9ecd4a688b6736fcfa091aebac65054328b8cfdecce9395d8e
languageName: node
linkType: hard
"zod@npm:^3.22.4":
version: 3.23.8
resolution: "zod@npm:3.23.8"
checksum: 10c0/8f14c87d6b1b53c944c25ce7a28616896319d95bc46a9660fe441adc0ed0a81253b02b5abdaeffedbeb23bdd25a0bf1c29d2c12dd919aef6447652dd295e3e69
languageName: node
linkType: hard
"zwitch@npm:^2.0.0, zwitch@npm:^2.0.4": "zwitch@npm:^2.0.0, zwitch@npm:^2.0.4":
version: 2.0.4 version: 2.0.4
resolution: "zwitch@npm:2.0.4" resolution: "zwitch@npm:2.0.4"