diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 000000000..be174b2b8
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "[yaml]": {
+ "editor.formatOnSave": false
+ }
+}
\ No newline at end of file
diff --git a/docs/isupipe.yaml b/docs/isupipe.yaml
index 93f099a4d..9ba4f5ec8 100644
--- a/docs/isupipe.yaml
+++ b/docs/isupipe.yaml
@@ -11,7 +11,7 @@ paths:
parameters: []
get:
summary: ""
- operationid: get-tag
+ operationId: get-tag
responses:
"200":
$ref: "#/components/responses/GetTag"
@@ -73,6 +73,17 @@ paths:
description: ユーザ登録
requestBody:
$ref: "#/components/requestBodies/PostUser"
+ /user/me:
+ get:
+ summary:
+ operationId: get-user-me
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/User"
"/users/{username}":
parameters:
- schema:
@@ -177,7 +188,7 @@ paths:
responses:
"200":
$ref: "#/components/responses/GetLivestream"
- operationId: "get-livestream-:livestreamid"
+ operationId: "get-livestream-_livestreamid"
description: ライブストリーム視聴画面の情報取得
"/livestream/{livestreamid}/moderate":
parameters:
@@ -218,7 +229,7 @@ paths:
get:
summary: Your GET endpoint
tags: []
- operationId: "get-livestream-:livestreamid-livecomment"
+ operationId: "get-livestream-_livestreamid-livecomment"
description: 当該ライブストリームのライブコメント取得
responses:
"200":
@@ -303,7 +314,7 @@ paths:
get:
summary: Your GET endpoint
tags: []
- operationId: "get-livestream-:livestreamid-reaction"
+ operationId: "get-livestream-_livestreamid-reaction"
description: 当該ライブストリームのリアクション取得
responses:
"200":
@@ -358,7 +369,9 @@ paths:
responses:
"200":
$ref: "#/components/responses/GetLivestreamStatistics"
- operationId: "get-livestream-:livestreamid-statistics"
+ "404":
+ description: Not Found
+ operationId: "get-livestream-_livestreamid-statistics"
description: ライブストリームの統計情報取得
/livestream/reservation:
post:
@@ -707,12 +720,16 @@ components:
end_at: 0
responses:
GetTag:
+ description: Example response
content:
application/json:
schema:
- type: array
- items:
- $ref: "#/components/schemas/Tag"
+ type: object
+ properties:
+ tags:
+ type: array
+ items:
+ $ref: "#/components/schemas/Tag"
GetUser:
description: Example response
content:
@@ -744,7 +761,7 @@ components:
content:
application/json:
schema:
- $ref: "#/components/schemas/LivestreamView"
+ $ref: "#/components/schemas/Livestream"
GetLivestreamStatistics:
description: Example response
content:
diff --git a/frontend/.eslintrc.yml b/frontend/.eslintrc.yml
new file mode 100644
index 000000000..47b7118fd
--- /dev/null
+++ b/frontend/.eslintrc.yml
@@ -0,0 +1,42 @@
+env:
+ browser: true
+ es6: true
+extends:
+ - 'eslint:recommended'
+ - 'plugin:react/recommended'
+ - 'plugin:@typescript-eslint/eslint-recommended'
+ - 'plugin:import/recommended'
+ - 'plugin:import/errors'
+ - 'plugin:import/warnings'
+globals:
+ Atomics: readonly
+ SharedArrayBuffer: readonly
+parser: '@typescript-eslint/parser'
+parserOptions:
+ ecmaFeatures:
+ jsx: true
+ ecmaVersion: 2018
+ sourceType: module
+plugins:
+ - react
+ - '@typescript-eslint'
+ - 'react-hooks'
+rules:
+ import/order: # https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/order.md
+ - 'warn'
+ - alphabetize: { order: asc, caseInsensitive: true }
+ newlines-between: never
+ pathGroups:
+ - { pattern: '~/**', group: 'parent' }
+ - { pattern: 'react', group: 'parent', position: 'before' }
+ import/no-unresolved: 0
+ 'no-unused-vars': 'off'
+ '@typescript-eslint/no-unused-vars': ['error']
+ '@typescript-eslint/explicit-module-boundary-types': ['error']
+ 'react/jsx-curly-brace-presence': 'error'
+ 'react-hooks/rules-of-hooks': 'error'
+ 'arrow-body-style': ['error', 'as-needed']
+ 'dot-notation': 'error'
+settings:
+ react:
+ version: 'detect'
diff --git a/frontend/.gitattributes b/frontend/.gitattributes
new file mode 100644
index 000000000..8964ebdbc
--- /dev/null
+++ b/frontend/.gitattributes
@@ -0,0 +1,4 @@
+.yarn/* linguist-generated=true
+yarn.lock linguist-generated=true
+src/api/apiClient.ts linguist-generated=true
+src/api/types.ts linguist-generated=true
diff --git a/frontend/.gitignore b/frontend/.gitignore
new file mode 100644
index 000000000..6ba436721
--- /dev/null
+++ b/frontend/.gitignore
@@ -0,0 +1,26 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+/.yarn/cache
+/.yarn/install-state.gz
diff --git a/frontend/.prettierignore b/frontend/.prettierignore
new file mode 100644
index 000000000..882759c9e
--- /dev/null
+++ b/frontend/.prettierignore
@@ -0,0 +1,3 @@
+.yarn
+node_modules
+/dist/
diff --git a/frontend/.prettierrc.json b/frontend/.prettierrc.json
new file mode 100644
index 000000000..544138be4
--- /dev/null
+++ b/frontend/.prettierrc.json
@@ -0,0 +1,3 @@
+{
+ "singleQuote": true
+}
diff --git a/frontend/.vscode/settings.json b/frontend/.vscode/settings.json
new file mode 100644
index 000000000..b8de2bdd0
--- /dev/null
+++ b/frontend/.vscode/settings.json
@@ -0,0 +1,8 @@
+{
+ "editor.codeActionsOnSave": {
+ "source.fixAll": true
+ },
+ "editor.formatOnSave": true,
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "files.insertFinalNewline": true
+}
diff --git a/frontend/.yarnrc.yml b/frontend/.yarnrc.yml
new file mode 100644
index 000000000..3186f3f07
--- /dev/null
+++ b/frontend/.yarnrc.yml
@@ -0,0 +1 @@
+nodeLinker: node-modules
diff --git a/frontend/index.html b/frontend/index.html
new file mode 100644
index 000000000..b0b9dc02d
--- /dev/null
+++ b/frontend/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+ ISUCON13
+
+
+
+
+
+
diff --git a/frontend/package.json b/frontend/package.json
new file mode 100644
index 000000000..d571fd8ad
--- /dev/null
+++ b/frontend/package.json
@@ -0,0 +1,64 @@
+{
+ "name": "vite-project",
+ "private": true,
+ "version": "0.0.0",
+ "packageManager": "yarn@3.2.2",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview",
+ "lint": "eslint --ext .jsx,.js,.tsx,.ts src/",
+ "format": "prettier --write --ignore-unknown .",
+ "format:ci": "prettier --check --ignore-unknown .",
+ "test": "vitest --config ./vitest.config.ts",
+ "test:ci": "yarn test run",
+ "generate-api-client": "ts-node -P scripts/openapi/tsconfig.build.json scripts/openapi/generate-api-client.ts"
+ },
+ "dependencies": {
+ "@emoji-mart/data": "^1.1.2",
+ "@emoji-mart/react": "^1.1.1",
+ "@emotion/react": "^11.11.1",
+ "@emotion/styled": "^11.11.0",
+ "@hookform/resolvers": "^3.3.1",
+ "@mui/joy": "^5.0.0-beta.11",
+ "@react-stately/toast": "^3.0.0-beta.1",
+ "d3-format": "^3.1.0",
+ "date-fns": "^2.30.0",
+ "dayjs": "^1.11.9",
+ "emoji-mart": "^5.5.2",
+ "events": "^3.3.0",
+ "focus-visible": "^5.2.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "react-hook-form": "^7.46.1",
+ "react-hooks-global-state": "^2.1.0",
+ "react-icons": "^4.11.0",
+ "react-router-dom": "^6.15.0",
+ "swr": "^2.2.2",
+ "zod": "^3.22.2"
+ },
+ "devDependencies": {
+ "@himenon/openapi-typescript-code-generator": "^0.27.1",
+ "@types/d3-format": "^3.0.1",
+ "@types/react": "^18.2.21",
+ "@types/react-dom": "^18.2.7",
+ "@types/react-router-dom": "^5.3.3",
+ "@typescript-eslint/eslint-plugin": "^6.7.0",
+ "@typescript-eslint/parser": "^6.7.0",
+ "@vitejs/plugin-react": "^4.0.4",
+ "cross-env": "^7.0.3",
+ "eslint": "^8.49.0",
+ "eslint-plugin-import": "^2.28.1",
+ "eslint-plugin-react": "^7.33.2",
+ "eslint-plugin-react-hooks": "^4.6.0",
+ "prettier": "^3.0.3",
+ "ts-node": "^10.9.1",
+ "typescript": "^5.2.2",
+ "vite": "^4.4.9",
+ "vite-plugin-pages": "^0.31.0",
+ "vitest": "^0.34.4"
+ },
+ "readme": "ERROR: No README data found!",
+ "_id": "vite-project@0.0.0"
+}
diff --git a/frontend/scripts/openapi/generate-api-client.ts b/frontend/scripts/openapi/generate-api-client.ts
new file mode 100644
index 000000000..8d13a34f2
--- /dev/null
+++ b/frontend/scripts/openapi/generate-api-client.ts
@@ -0,0 +1,37 @@
+import * as fs from 'fs';
+import * as path from 'path';
+import { CodeGenerator } from '@himenon/openapi-typescript-code-generator';
+import * as Templates from '@himenon/openapi-typescript-code-generator/templates';
+
+const main = () => {
+ const codeGenerator = new CodeGenerator(
+ path.join(__dirname, '../../../docs/isupipe.yaml'),
+ );
+
+ const apiClientGeneratorTemplate = {
+ generator: Templates.ClassApiClient.generator,
+ option: {},
+ };
+
+ const typeDefCode = codeGenerator.generateTypeDefinition();
+ const apiClientCode = codeGenerator.generateCode([
+ {
+ generator: () => [
+ `import { Schemas, RequestBodies, Responses } from "./types";`,
+ ],
+ },
+ codeGenerator.getAdditionalTypeDefinitionCustomCodeGenerator(),
+ apiClientGeneratorTemplate,
+ ]);
+
+ fs.writeFileSync(__dirname + '/../../src/api/types.ts', typeDefCode, {
+ encoding: 'utf-8',
+ });
+ fs.writeFileSync(__dirname + '/../../src/api/apiClient.ts', apiClientCode, {
+ encoding: 'utf-8',
+ });
+
+ console.log('Generate API Client');
+};
+
+main();
diff --git a/frontend/scripts/openapi/package.json b/frontend/scripts/openapi/package.json
new file mode 100644
index 000000000..09b5c1ff2
--- /dev/null
+++ b/frontend/scripts/openapi/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "openapi",
+ "private": true,
+ "version": "0.0.0",
+ "packageManager": "yarn@3.2.2"
+}
diff --git a/frontend/scripts/openapi/tsconfig.build.json b/frontend/scripts/openapi/tsconfig.build.json
new file mode 100644
index 000000000..91c532b8a
--- /dev/null
+++ b/frontend/scripts/openapi/tsconfig.build.json
@@ -0,0 +1,10 @@
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "module": "CommonJS",
+ "types": ["node"],
+ "declaration": false,
+ "noEmit": false
+ },
+ "include": ["./*"]
+}
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
new file mode 100644
index 000000000..f616b2572
--- /dev/null
+++ b/frontend/src/App.tsx
@@ -0,0 +1,44 @@
+import { CssVarsProvider } from '@mui/joy/styles';
+import React, { Suspense } from 'react';
+import { useRoutes } from 'react-router-dom';
+import { SWRConfig } from 'swr';
+import { HTTPError } from './api/client';
+import { Layout } from './components/layout/Layout';
+import { LoginModal } from './components/layout/loginmodal';
+import routes from '~react-pages';
+import 'focus-visible/dist/focus-visible';
+
+export function App(): React.ReactElement {
+ const routeContent = useRoutes(routes);
+ const [isOpenReLoginModal, setIsOpenReLoginModal] = React.useState(false);
+
+ return (
+
+ {
+ if (error instanceof HTTPError) {
+ switch (error.response.status) {
+ case 401:
+ case 403:
+ setIsOpenReLoginModal(true);
+ break;
+ }
+ }
+ },
+ }}
+ >
+
+ setIsOpenReLoginModal(false)}
+ />
+ Loading...}>{routeContent}
+
+
+
+ );
+}
diff --git a/frontend/src/api/apiClient.ts b/frontend/src/api/apiClient.ts
new file mode 100644
index 000000000..a9a005923
--- /dev/null
+++ b/frontend/src/api/apiClient.ts
@@ -0,0 +1,741 @@
+//
+// Generated by @himenon/openapi-typescript-code-generator v0.27.1
+//
+// OpenApi : 3.1.0
+//
+//
+
+import { Schemas, RequestBodies, Responses } from './types';
+export type Response$get$tag$Status$200 = Responses.GetTag.Content;
+export type RequestBody$post$login = RequestBodies.Login.Content;
+export interface Response$get$users$Status$200 {
+ 'application/json': Schemas.User[];
+}
+export type RequestBody$post$user = RequestBodies.PostUser.Content;
+export interface Response$post$user$Status$201 {
+ 'application/json': Schemas.User;
+}
+export interface Response$get$user$me$Status$200 {
+ 'application/json': Schemas.User;
+}
+export interface Parameter$get$users$username {
+ username: string;
+ /** セッションID */
+ SESSIONID?: string;
+}
+export type Response$get$users$username$Status$200 = Responses.GetUser.Content;
+export interface Parameter$get$theme {
+ /** セッションID */
+ SESSIONID?: string;
+}
+export type Response$get$theme$Status$200 = Responses.GetUserTheme.Content;
+export interface Parameter$get$users$statistics {
+ username: string;
+ /** セッションID */
+ SESSIONID?: string;
+}
+export type Response$get$users$statistics$Status$200 =
+ Responses.GetUserStatistics.Content;
+export interface Parameter$get$livestream {
+ /** 検索に使用するタグの名前 */
+ tag?: string;
+}
+export type Response$get$livestream$Status$200 =
+ Responses.GetLivestreams.Content;
+export interface Parameter$get$livestream$_livestreamid {
+ livestreamid: string;
+}
+export type Response$get$livestream$_livestreamid$Status$200 =
+ Responses.GetLivestream.Content;
+export interface Parameter$post$livestream$livestreamid$moderate {
+ livestreamid: string;
+}
+export type RequestBody$post$livestream$livestreamid$moderate =
+ RequestBodies.PostLivestreamModerate.Content;
+export interface Response$post$livestream$livestreamid$moderate$Status$201 {
+ 'application/json': {
+ word_id?: number;
+ };
+}
+export interface Parameter$get$livestream$_livestreamid$livecomment {
+ livestreamid: string;
+}
+export interface Response$get$livestream$_livestreamid$livecomment$Status$200 {
+ 'application/json': Schemas.Livecomment[];
+}
+export interface Parameter$post$livestream$livestreamid$livecomment {
+ livestreamid: string;
+ /** application/json */
+ 'Content-Type'?: string;
+}
+export type RequestBody$post$livestream$livestreamid$livecomment =
+ RequestBodies.PostLivecomment.Content;
+export interface Response$post$livestream$livestreamid$livecomment$Status$201 {
+ 'application/json': Schemas.Livecomment;
+}
+export interface Parameter$post$livestream$livestreamid$enter {
+ livestreamid: string;
+}
+export interface Parameter$delete$livestream$livestreamid$enter {
+ livestreamid: string;
+}
+export interface Parameter$get$livestream$_livestreamid$reaction {
+ livestreamid: string;
+}
+export interface Response$get$livestream$_livestreamid$reaction$Status$200 {
+ 'application/json': Schemas.Reaction[];
+}
+export interface Parameter$post$livestream$livestreamid$reaction {
+ livestreamid: string;
+ /** application/json */
+ 'Content-Type'?: string;
+}
+export type RequestBody$post$livestream$livestreamid$reaction =
+ RequestBodies.PostReaction.Content;
+export interface Response$post$livestream$livestreamid$reaction$Status$201 {
+ 'application/json': Schemas.Reaction;
+}
+export interface Parameter$get$livestream$_livestreamid$statistics {
+ livestreamid: string;
+}
+export type Response$get$livestream$_livestreamid$statistics$Status$200 =
+ Responses.GetLivestreamStatistics.Content;
+export type RequestBody$post$livestream$reservation =
+ RequestBodies.ReserveLivestream.Content;
+export interface Response$post$livestream$reservation$Status$201 {
+ 'application/json': Schemas.Livestream;
+}
+export interface Parameter$get$livecomment$livecommentid$reports {
+ livestreamid: string;
+}
+export interface Response$get$livecomment$livecommentid$reports$Status$200 {
+ 'application/json': Schemas.LivecommentReport[];
+}
+export interface Parameter$post$livecomment$livecommentid$report {
+ livecommentid: string;
+ livestreamid: string;
+}
+export interface Response$post$livecomment$livecommentid$report$Status$201 {
+ 'application/json': Schemas.LivecommentReport;
+}
+export type ResponseContentType$get$tag = keyof Response$get$tag$Status$200;
+export type RequestContentType$post$login = keyof RequestBody$post$login;
+export interface Params$post$login {
+ requestBody: RequestBody$post$login['application/json'];
+}
+export type ResponseContentType$get$users = keyof Response$get$users$Status$200;
+export type RequestContentType$post$user = keyof RequestBody$post$user;
+export type ResponseContentType$post$user = keyof Response$post$user$Status$201;
+export interface Params$post$user {
+ requestBody: RequestBody$post$user['application/json'];
+}
+export type ResponseContentType$get$user$me =
+ keyof Response$get$user$me$Status$200;
+export type ResponseContentType$get$users$username =
+ keyof Response$get$users$username$Status$200;
+export interface Params$get$users$username {
+ parameter: Parameter$get$users$username;
+}
+export type ResponseContentType$get$theme = keyof Response$get$theme$Status$200;
+export interface Params$get$theme {
+ parameter: Parameter$get$theme;
+}
+export type ResponseContentType$get$users$statistics =
+ keyof Response$get$users$statistics$Status$200;
+export interface Params$get$users$statistics {
+ parameter: Parameter$get$users$statistics;
+}
+export type ResponseContentType$get$livestream =
+ keyof Response$get$livestream$Status$200;
+export interface Params$get$livestream {
+ parameter: Parameter$get$livestream;
+}
+export type ResponseContentType$get$livestream$_livestreamid =
+ keyof Response$get$livestream$_livestreamid$Status$200;
+export interface Params$get$livestream$_livestreamid {
+ parameter: Parameter$get$livestream$_livestreamid;
+}
+export type RequestContentType$post$livestream$livestreamid$moderate =
+ keyof RequestBody$post$livestream$livestreamid$moderate;
+export type ResponseContentType$post$livestream$livestreamid$moderate =
+ keyof Response$post$livestream$livestreamid$moderate$Status$201;
+export interface Params$post$livestream$livestreamid$moderate {
+ parameter: Parameter$post$livestream$livestreamid$moderate;
+ requestBody: RequestBody$post$livestream$livestreamid$moderate['application/json'];
+}
+export type ResponseContentType$get$livestream$_livestreamid$livecomment =
+ keyof Response$get$livestream$_livestreamid$livecomment$Status$200;
+export interface Params$get$livestream$_livestreamid$livecomment {
+ parameter: Parameter$get$livestream$_livestreamid$livecomment;
+}
+export type RequestContentType$post$livestream$livestreamid$livecomment =
+ keyof RequestBody$post$livestream$livestreamid$livecomment;
+export type ResponseContentType$post$livestream$livestreamid$livecomment =
+ keyof Response$post$livestream$livestreamid$livecomment$Status$201;
+export interface Params$post$livestream$livestreamid$livecomment {
+ parameter: Parameter$post$livestream$livestreamid$livecomment;
+ requestBody: RequestBody$post$livestream$livestreamid$livecomment['application/json'];
+}
+export interface Params$post$livestream$livestreamid$enter {
+ parameter: Parameter$post$livestream$livestreamid$enter;
+}
+export interface Params$delete$livestream$livestreamid$enter {
+ parameter: Parameter$delete$livestream$livestreamid$enter;
+}
+export type ResponseContentType$get$livestream$_livestreamid$reaction =
+ keyof Response$get$livestream$_livestreamid$reaction$Status$200;
+export interface Params$get$livestream$_livestreamid$reaction {
+ parameter: Parameter$get$livestream$_livestreamid$reaction;
+}
+export type RequestContentType$post$livestream$livestreamid$reaction =
+ keyof RequestBody$post$livestream$livestreamid$reaction;
+export type ResponseContentType$post$livestream$livestreamid$reaction =
+ keyof Response$post$livestream$livestreamid$reaction$Status$201;
+export interface Params$post$livestream$livestreamid$reaction {
+ parameter: Parameter$post$livestream$livestreamid$reaction;
+ requestBody: RequestBody$post$livestream$livestreamid$reaction['application/json'];
+}
+export type ResponseContentType$get$livestream$_livestreamid$statistics =
+ keyof Response$get$livestream$_livestreamid$statistics$Status$200;
+export interface Params$get$livestream$_livestreamid$statistics {
+ parameter: Parameter$get$livestream$_livestreamid$statistics;
+}
+export type RequestContentType$post$livestream$reservation =
+ keyof RequestBody$post$livestream$reservation;
+export type ResponseContentType$post$livestream$reservation =
+ keyof Response$post$livestream$reservation$Status$201;
+export interface Params$post$livestream$reservation {
+ requestBody: RequestBody$post$livestream$reservation['application/json'];
+}
+export type ResponseContentType$get$livecomment$livecommentid$reports =
+ keyof Response$get$livecomment$livecommentid$reports$Status$200;
+export interface Params$get$livecomment$livecommentid$reports {
+ parameter: Parameter$get$livecomment$livecommentid$reports;
+}
+export type ResponseContentType$post$livecomment$livecommentid$report =
+ keyof Response$post$livecomment$livecommentid$report$Status$201;
+export interface Params$post$livecomment$livecommentid$report {
+ parameter: Parameter$post$livecomment$livecommentid$report;
+}
+export type HttpMethod =
+ | 'GET'
+ | 'PUT'
+ | 'POST'
+ | 'DELETE'
+ | 'OPTIONS'
+ | 'HEAD'
+ | 'PATCH'
+ | 'TRACE';
+export interface ObjectLike {
+ [key: string]: any;
+}
+export interface QueryParameter {
+ value: any;
+ style?: 'form' | 'spaceDelimited' | 'pipeDelimited' | 'deepObject';
+ explode: boolean;
+}
+export interface QueryParameters {
+ [key: string]: QueryParameter;
+}
+export type SuccessResponses =
+ | Response$get$tag$Status$200
+ | Response$get$users$Status$200
+ | Response$post$user$Status$201
+ | Response$get$user$me$Status$200
+ | Response$get$users$username$Status$200
+ | Response$get$theme$Status$200
+ | Response$get$users$statistics$Status$200
+ | Response$get$livestream$Status$200
+ | Response$get$livestream$_livestreamid$Status$200
+ | Response$post$livestream$livestreamid$moderate$Status$201
+ | Response$get$livestream$_livestreamid$livecomment$Status$200
+ | Response$post$livestream$livestreamid$livecomment$Status$201
+ | Response$get$livestream$_livestreamid$reaction$Status$200
+ | Response$post$livestream$livestreamid$reaction$Status$201
+ | Response$get$livestream$_livestreamid$statistics$Status$200
+ | Response$post$livestream$reservation$Status$201
+ | Response$get$livecomment$livecommentid$reports$Status$200
+ | Response$post$livecomment$livecommentid$report$Status$201;
+export namespace ErrorResponse {
+ export type get$tag = void;
+ export type post$login = void;
+ export type get$users = void;
+ export type post$user = void;
+ export type get$user$me = void;
+ export type get$users$username = void;
+ export type get$theme = void;
+ export type get$users$statistics = void;
+ export type get$livestream = void;
+ export type get$livestream$_livestreamid = void;
+ export type post$livestream$livestreamid$moderate = void;
+ export type get$livestream$_livestreamid$livecomment = void;
+ export type post$livestream$livestreamid$livecomment = void;
+ export type post$livestream$livestreamid$enter = void;
+ export type delete$livestream$livestreamid$enter = void;
+ export type get$livestream$_livestreamid$reaction = void;
+ export type post$livestream$livestreamid$reaction = void;
+ export type get$livestream$_livestreamid$statistics = void;
+ export type post$livestream$reservation = void;
+ export type get$livecomment$livecommentid$reports = void;
+ export type post$livecomment$livecommentid$report = void;
+}
+export interface Encoding {
+ readonly contentType?: string;
+ headers?: Record;
+ readonly style?: 'form' | 'spaceDelimited' | 'pipeDelimited' | 'deepObject';
+ readonly explode?: boolean;
+ readonly allowReserved?: boolean;
+}
+export interface RequestArgs {
+ readonly httpMethod: HttpMethod;
+ readonly url: string;
+ headers: ObjectLike | any;
+ requestBody?: ObjectLike | any;
+ requestBodyEncoding?: Record;
+ queryParameters?: QueryParameters | undefined;
+}
+export interface ApiClient {
+ request: (
+ requestArgs: RequestArgs,
+ options?: RequestOption,
+ ) => Promise;
+}
+export class Client {
+ private baseUrl: string;
+ constructor(
+ private apiClient: ApiClient,
+ baseUrl: string,
+ ) {
+ this.baseUrl = baseUrl.replace(/\/$/, '');
+ }
+ /** サービスで提供されているタグの一覧取得 */
+ public async get$tag(
+ option?: RequestOption,
+ ): Promise {
+ const url = this.baseUrl + `/tag`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /** ログイン */
+ public async post$login(
+ params: Params$post$login,
+ option?: RequestOption,
+ ): Promise {
+ const url = this.baseUrl + `/login`;
+ const headers = {
+ 'Content-Type': 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'POST',
+ url,
+ headers,
+ requestBody: params.requestBody,
+ },
+ option,
+ );
+ }
+ public async get$users(
+ option?: RequestOption,
+ ): Promise {
+ const url = this.baseUrl + `/user`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /**
+ * Create New User
+ * ユーザ登録
+ */
+ public async post$user(
+ params: Params$post$user,
+ option?: RequestOption,
+ ): Promise {
+ const url = this.baseUrl + `/user`;
+ const headers = {
+ 'Content-Type': 'application/json',
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'POST',
+ url,
+ headers,
+ requestBody: params.requestBody,
+ },
+ option,
+ );
+ }
+ public async get$user$me(
+ option?: RequestOption,
+ ): Promise {
+ const url = this.baseUrl + `/user/me`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /** ユーザプロフィール取得 */
+ public async get$users$username(
+ params: Params$get$users$username,
+ option?: RequestOption,
+ ): Promise {
+ const url = this.baseUrl + `/users/${params.parameter.username}`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /** 配信者のテーマ取得 */
+ public async get$theme(
+ params: Params$get$theme,
+ option?: RequestOption,
+ ): Promise {
+ const url = this.baseUrl + `/theme`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /** ユーザの配信に関する統計情報取得 */
+ public async get$users$statistics(
+ params: Params$get$users$statistics,
+ option?: RequestOption,
+ ): Promise {
+ const url = this.baseUrl + `/users/${params.parameter.username}/statistics`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /**
+ * Your GET endpoint
+ * ライブストリームの情報取得エンドポイント
+ */
+ public async get$livestream(
+ params: Params$get$livestream,
+ option?: RequestOption,
+ ): Promise {
+ const url = this.baseUrl + `/livestream`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ const queryParameters: QueryParameters = {
+ tag: { value: params.parameter.tag, explode: false },
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ queryParameters: queryParameters,
+ },
+ option,
+ );
+ }
+ /**
+ * Your GET endpoint
+ * ライブストリーム視聴画面の情報取得
+ */
+ public async get$livestream$_livestreamid(
+ params: Params$get$livestream$_livestreamid,
+ option?: RequestOption,
+ ): Promise<
+ Response$get$livestream$_livestreamid$Status$200['application/json']
+ > {
+ const url = this.baseUrl + `/livestream/${params.parameter.livestreamid}`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /** 配信者がNGワードを登録するエンドポイント */
+ public async post$livestream$livestreamid$moderate(
+ params: Params$post$livestream$livestreamid$moderate,
+ option?: RequestOption,
+ ): Promise<
+ Response$post$livestream$livestreamid$moderate$Status$201['application/json']
+ > {
+ const url =
+ this.baseUrl + `/livestream/${params.parameter.livestreamid}/moderate`;
+ const headers = {
+ 'Content-Type': 'application/json',
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'POST',
+ url,
+ headers,
+ requestBody: params.requestBody,
+ },
+ option,
+ );
+ }
+ /**
+ * Your GET endpoint
+ * 当該ライブストリームのライブコメント取得
+ */
+ public async get$livestream$_livestreamid$livecomment(
+ params: Params$get$livestream$_livestreamid$livecomment,
+ option?: RequestOption,
+ ): Promise<
+ Response$get$livestream$_livestreamid$livecomment$Status$200['application/json']
+ > {
+ const url =
+ this.baseUrl + `/livestream/${params.parameter.livestreamid}/livecomment`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /** ライブストリームに対するライブコメント投稿 */
+ public async post$livestream$livestreamid$livecomment(
+ params: Params$post$livestream$livestreamid$livecomment,
+ option?: RequestOption,
+ ): Promise<
+ Response$post$livestream$livestreamid$livecomment$Status$201['application/json']
+ > {
+ const url =
+ this.baseUrl + `/livestream/${params.parameter.livestreamid}/livecomment`;
+ const headers = {
+ 'Content-Type': params.parameter['Content-Type'],
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'POST',
+ url,
+ headers,
+ requestBody: params.requestBody,
+ },
+ option,
+ );
+ }
+ /** 配信の視聴開始 */
+ public async post$livestream$livestreamid$enter(
+ params: Params$post$livestream$livestreamid$enter,
+ option?: RequestOption,
+ ): Promise {
+ const url =
+ this.baseUrl + `/livestream/${params.parameter.livestreamid}/enter`;
+ const headers = {};
+ return this.apiClient.request(
+ {
+ httpMethod: 'POST',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /** 配信の視聴終了 */
+ public async delete$livestream$livestreamid$enter(
+ params: Params$delete$livestream$livestreamid$enter,
+ option?: RequestOption,
+ ): Promise {
+ const url =
+ this.baseUrl + `/livestream/${params.parameter.livestreamid}/enter`;
+ const headers = {};
+ return this.apiClient.request(
+ {
+ httpMethod: 'DELETE',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /**
+ * Your GET endpoint
+ * 当該ライブストリームのリアクション取得
+ */
+ public async get$livestream$_livestreamid$reaction(
+ params: Params$get$livestream$_livestreamid$reaction,
+ option?: RequestOption,
+ ): Promise<
+ Response$get$livestream$_livestreamid$reaction$Status$200['application/json']
+ > {
+ const url =
+ this.baseUrl + `/livestream/${params.parameter.livestreamid}/reaction`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ /** リアクション投稿 */
+ public async post$livestream$livestreamid$reaction(
+ params: Params$post$livestream$livestreamid$reaction,
+ option?: RequestOption,
+ ): Promise<
+ Response$post$livestream$livestreamid$reaction$Status$201['application/json']
+ > {
+ const url =
+ this.baseUrl + `/livestream/${params.parameter.livestreamid}/reaction`;
+ const headers = {
+ 'Content-Type': params.parameter['Content-Type'],
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'POST',
+ url,
+ headers,
+ requestBody: params.requestBody,
+ },
+ option,
+ );
+ }
+ /**
+ * Your GET endpoint
+ * ライブストリームの統計情報取得
+ */
+ public async get$livestream$_livestreamid$statistics(
+ params: Params$get$livestream$_livestreamid$statistics,
+ option?: RequestOption,
+ ): Promise<
+ Response$get$livestream$_livestreamid$statistics$Status$200['application/json']
+ > {
+ const url =
+ this.baseUrl + `/livestream/${params.parameter.livestreamid}/statistics`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ public async post$livestream$reservation(
+ params: Params$post$livestream$reservation,
+ option?: RequestOption,
+ ): Promise<
+ Response$post$livestream$reservation$Status$201['application/json']
+ > {
+ const url = this.baseUrl + `/livestream/reservation`;
+ const headers = {
+ 'Content-Type': 'application/json',
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'POST',
+ url,
+ headers,
+ requestBody: params.requestBody,
+ },
+ option,
+ );
+ }
+ public async get$livecomment$livecommentid$reports(
+ params: Params$get$livecomment$livecommentid$reports,
+ option?: RequestOption,
+ ): Promise<
+ Response$get$livecomment$livecommentid$reports$Status$200['application/json']
+ > {
+ const url =
+ this.baseUrl + `/livestream/${params.parameter.livestreamid}/report`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'GET',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+ public async post$livecomment$livecommentid$report(
+ params: Params$post$livecomment$livecommentid$report,
+ option?: RequestOption,
+ ): Promise<
+ Response$post$livecomment$livecommentid$report$Status$201['application/json']
+ > {
+ const url =
+ this.baseUrl +
+ `/livestream/${params.parameter.livestreamid}/livecomment/${params.parameter.livecommentid}/report`;
+ const headers = {
+ Accept: 'application/json',
+ };
+ return this.apiClient.request(
+ {
+ httpMethod: 'POST',
+ url,
+ headers,
+ },
+ option,
+ );
+ }
+}
diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts
new file mode 100644
index 000000000..827d148fc
--- /dev/null
+++ b/frontend/src/api/client.ts
@@ -0,0 +1,77 @@
+import {
+ ApiClient as ApiClientGenerated,
+ Client,
+ QueryParameters,
+ RequestArgs,
+} from '~/api/apiClient';
+
+export class HTTPError extends Error {
+ constructor(public response: Response) {
+ super(`HTTP Error: ${response.status} ${response.statusText}`);
+
+ if ((Error as any).captureStackTrace) {
+ (Error as any).captureStackTrace(this, this.constructor);
+ }
+
+ Object.setPrototypeOf(this, new.target.prototype);
+ }
+}
+
+export interface RequestOption {
+ timeout?: number;
+}
+
+export function decodeParams(
+ params: QueryParameters | undefined,
+): string | undefined {
+ if (!params) {
+ return;
+ }
+
+ const param = new URLSearchParams();
+ for (const key in params) {
+ const value = params[key].value;
+ if (value === undefined || value === null) {
+ continue; // ignore undefined/null field
+ }
+ param.set(key, value);
+ }
+ return param.toString();
+}
+
+const apiClientImpl: ApiClientGenerated = {
+ request: async (requestArgs: RequestArgs): Promise => {
+ const query = decodeParams(requestArgs.queryParameters);
+ const origin = apiOrigin(window.location.origin);
+ const requestUrl = `${origin}${
+ query ? requestArgs.url + '?' + query : requestArgs.url
+ }`;
+ const response = await fetch(requestUrl, {
+ body: JSON.stringify(requestArgs.requestBody),
+ headers: {
+ ...requestArgs.headers,
+ },
+ method: requestArgs.httpMethod,
+ });
+
+ if (!response.ok) {
+ throw new HTTPError(response);
+ }
+
+ if (response.headers.get('Content-Type')?.includes('application/json')) {
+ return await response.json();
+ } else {
+ return response.text();
+ }
+ },
+};
+
+export function apiOrigin(origin: string): string {
+ if (origin.includes('localhost')) {
+ return origin;
+ }
+ return origin;
+}
+
+export const apiClient = new Client(apiClientImpl, '/api/');
+export type ApiClient = typeof apiClient;
diff --git a/frontend/src/api/hooks.tsx b/frontend/src/api/hooks.tsx
new file mode 100644
index 000000000..c1883bb92
--- /dev/null
+++ b/frontend/src/api/hooks.tsx
@@ -0,0 +1,75 @@
+/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
+
+import useSWR, { type SWRConfiguration } from 'swr';
+import { Parameter$get$livestream } from './apiClient';
+import { HTTPError, apiClient } from './client';
+
+export function useUserMe(config?: SWRConfiguration) {
+ return useSWR(
+ `/user/me`,
+ async () => {
+ try {
+ return await apiClient.get$user$me({});
+ } catch (e) {
+ if (e instanceof HTTPError) {
+ switch (e.response.status) {
+ case 403:
+ return null;
+ case 401:
+ return null;
+ }
+ }
+ throw e;
+ }
+ },
+ config,
+ );
+}
+
+export function useLiveStreams(params: Parameter$get$livestream) {
+ return useSWR(`/livestream?${encodeParam(params)}`, () =>
+ apiClient.get$livestream({
+ parameter: params,
+ }),
+ );
+}
+
+export function useLiveStream(id: string | null) {
+ return useSWR(id && `/livestream/${id}/`, () =>
+ apiClient.get$livestream$_livestreamid({
+ parameter: {
+ livestreamid: id ?? '',
+ },
+ }),
+ );
+}
+
+export function useLiveStreamComment(id: string | null) {
+ return useSWR(id && `/livestream/${id}/livecomment`, () =>
+ apiClient.get$livestream$_livestreamid$livecomment({
+ parameter: {
+ livestreamid: id ?? '',
+ },
+ }),
+ );
+}
+
+export function useLiveStreamReaction(id: string | null) {
+ return useSWR(id && `/livestream/${id}/reaction`, () =>
+ apiClient.get$livestream$_livestreamid$reaction({
+ parameter: {
+ livestreamid: id ?? '',
+ },
+ }),
+ );
+}
+
+export function useTags() {
+ return useSWR('/tags', () => apiClient.get$tag());
+}
+
+function encodeParam(params: Object): string {
+ const p = Object.entries(params);
+ p.sort(([key1], [key2]) => key1.localeCompare(key2));
+ return p.map(([key, value]) => `${key}=${value}`).join('&');
+}
diff --git a/frontend/src/api/types.ts b/frontend/src/api/types.ts
new file mode 100644
index 000000000..cf6f220b0
--- /dev/null
+++ b/frontend/src/api/types.ts
@@ -0,0 +1,178 @@
+//
+// Generated by @himenon/openapi-typescript-code-generator v0.27.1
+//
+// OpenApi : 3.1.0
+//
+//
+
+export namespace Schemas {
+ export type Theme = any;
+ export type Tag = any;
+ export type Reaction = any;
+ export interface User {
+ /** Unique identifier for the given user. */
+ id: number;
+ name: string;
+ display_name: string;
+ description: string;
+ created_at?: number;
+ updated_at?: number;
+ is_popular: boolean;
+ theme: Schemas.Theme;
+ }
+ export interface Livestream {
+ id?: number;
+ owner?: Schemas.User;
+ tags?: Schemas.Tag[];
+ title?: string;
+ description?: string;
+ playlist_url?: string;
+ thumbnail_url?: string;
+ start_at?: number;
+ end_at?: number;
+ created_at?: number;
+ updated_at?: number;
+ }
+ /** 上位チャットの投稿 */
+ export interface Livecomment {
+ id?: number;
+ user?: Schemas.User;
+ livestream?: Schemas.Livestream;
+ comment?: string;
+ tip?: number;
+ created_at?: number;
+ updated_at?: number;
+ }
+ export interface LivestreamStatistics {
+ most_tip_ranking?: {
+ tip_rank?: number;
+ total_tip?: number;
+ }[];
+ most_posted_reaction_ranking?: {
+ reaction_rank?: number;
+ total_reaction?: number;
+ emoji_name?: string;
+ }[];
+ }
+ export interface UserStatistics {
+ tip_rank_by_livestream?: {
+ [key: string]: string;
+ };
+ }
+ export interface LivecommentReport {
+ id?: number;
+ reporter?: Schemas.User;
+ livecomment?: Schemas.Livecomment;
+ created_at?: number;
+ updated_at?: number;
+ }
+}
+export namespace Responses {
+ /** Example response */
+ export namespace GetTag {
+ export interface Content {
+ 'application/json': {
+ tags?: Schemas.Tag[];
+ };
+ }
+ }
+ /** Example response */
+ export namespace GetUser {
+ export interface Content {
+ 'application/json': Schemas.User;
+ }
+ }
+ /** Example response */
+ export namespace GetUserTheme {
+ export interface Content {
+ 'application/json': Schemas.Theme;
+ }
+ }
+ /** Example response */
+ export namespace GetUserStatistics {
+ export interface Content {
+ 'application/json': Schemas.UserStatistics;
+ }
+ }
+ /** Example response */
+ export namespace GetLivestreams {
+ export interface Content {
+ 'application/json': Schemas.Livestream[];
+ }
+ }
+ /** Example response */
+ export namespace GetLivestream {
+ export interface Content {
+ 'application/json': Schemas.Livestream;
+ }
+ }
+ /** Example response */
+ export namespace GetLivestreamStatistics {
+ export interface Content {
+ 'application/json': Schemas.LivestreamStatistics;
+ }
+ }
+ /** Example response */
+ export namespace GetLivecomments {
+ export interface Content {
+ 'application/json': Schemas.Livecomment[];
+ }
+ }
+}
+export namespace RequestBodies {
+ export namespace PostLivestreamModerate {
+ export interface Content {
+ 'application/json': {
+ ng_word?: string;
+ };
+ }
+ }
+ export namespace PostUser {
+ export interface Content {
+ 'application/json': {
+ name?: string;
+ display_name?: string;
+ description?: string;
+ password?: string;
+ theme?: {
+ dark_mode?: boolean;
+ };
+ };
+ }
+ }
+ export namespace Login {
+ export interface Content {
+ 'application/json': {
+ username?: string;
+ password?: string;
+ };
+ }
+ }
+ export namespace PostReaction {
+ export interface Content {
+ 'application/json': {
+ emoji_name?: string;
+ };
+ }
+ }
+ export namespace PostLivecomment {
+ export interface Content {
+ 'application/json': {
+ comment?: string;
+ tip?: number;
+ };
+ }
+ }
+ export namespace ReserveLivestream {
+ export interface Content {
+ 'application/json': {
+ tags?: number[];
+ title?: string;
+ description?: string;
+ collaborators?: number[];
+ start_at?: number;
+ end_at?: number;
+ };
+ }
+ }
+}
diff --git a/frontend/src/components/console/newlive.tsx b/frontend/src/components/console/newlive.tsx
new file mode 100644
index 000000000..3b510821e
--- /dev/null
+++ b/frontend/src/components/console/newlive.tsx
@@ -0,0 +1,54 @@
+import Button from '@mui/joy/Button';
+import DialogContent from '@mui/joy/DialogContent';
+import DialogTitle from '@mui/joy/DialogTitle';
+import FormControl from '@mui/joy/FormControl';
+import FormLabel from '@mui/joy/FormLabel';
+import Input from '@mui/joy/Input';
+import Modal from '@mui/joy/Modal';
+import ModalDialog from '@mui/joy/ModalDialog';
+import Stack from '@mui/joy/Stack';
+import Textarea from '@mui/joy/Textarea';
+import React from 'react';
+
+export interface NewLiveDialogProps {
+ isOpen: boolean;
+ onClose: () => void;
+}
+export function NewLiveDialog(props: NewLiveDialogProps): React.ReactElement {
+ return (
+ <>
+
+
+ 予約配信の作成
+ 配信内容を入力してください。
+
+
+
+ >
+ );
+}
diff --git a/frontend/src/components/layout/Layout.tsx b/frontend/src/components/layout/Layout.tsx
new file mode 100644
index 000000000..cad41b4a3
--- /dev/null
+++ b/frontend/src/components/layout/Layout.tsx
@@ -0,0 +1,144 @@
+import { Global } from '@emotion/react';
+import styled from '@emotion/styled';
+import { Typography } from '@mui/joy';
+import Autocomplete from '@mui/joy/Autocomplete';
+import Dropdown from '@mui/joy/Dropdown';
+import Menu from '@mui/joy/Menu';
+import MenuButton from '@mui/joy/MenuButton';
+import MenuItem from '@mui/joy/MenuItem';
+import Stack from '@mui/joy/Stack';
+import { useColorScheme } from '@mui/joy/styles';
+import React from 'react';
+import {
+ MdChair,
+ MdOutlineDarkMode,
+ MdDarkMode,
+ MdSearch,
+} from 'react-icons/md';
+import { Link, useNavigate } from 'react-router-dom';
+import { Toast } from '../toast/toast';
+import { useTags, useUserMe } from '~/api/hooks';
+
+interface LayoutProps {
+ children: React.ReactNode;
+}
+export function Layout(props: LayoutProps): React.ReactElement {
+ const colorScheme = useColorScheme();
+ const mode = colorScheme.systemMode ?? colorScheme.mode;
+ const navigate = useNavigate();
+
+ function onChange(e: React.SyntheticEvent, value: string | null): void {
+ if (value) {
+ navigate({
+ pathname: '/search',
+ search: `?q=${value}`,
+ });
+ } else {
+ navigate('/');
+ }
+ }
+
+ const tags = useTags();
+ const userMe = useUserMe();
+
+ return (
+
+
+
`1px solid ${t.vars.palette.background.level1}`,
+ position: 'fixed',
+ top: 0,
+ left: 0,
+ right: 0,
+ zIndex: 100,
+ backgroundColor: mode === 'light' ? 'white' : 'black',
+ }}
+ >
+
+
+
+ ISUTUBE
+
+
+
+ tag.name) ?? []}
+ startDecorator={}
+ onChange={onChange}
+ loading={tags.isLoading}
+ />
+
+
+
+
+
+ {mode === 'light' ? (
+
+ ) : (
+
+ )}
+
+
+
+
+
+
+
+ {userMe.data ? userMe.data.name : '未ログイン'}
+
+
+
+
+
+
+
{props.children}
+
+
+ );
+}
+
+const LogoLink = styled(Link)`
+ display: flex;
+ align-items: flex-end;
+ text-decoration: none;
+ svg {
+ margin-right: 0.2rem;
+ color: #ff0000;
+ }
+`;
diff --git a/frontend/src/components/layout/loginmodal.tsx b/frontend/src/components/layout/loginmodal.tsx
new file mode 100644
index 000000000..3ce341e48
--- /dev/null
+++ b/frontend/src/components/layout/loginmodal.tsx
@@ -0,0 +1,45 @@
+import Box from '@mui/joy/Box';
+import Button from '@mui/joy/Button';
+import DialogContent from '@mui/joy/DialogContent';
+import DialogTitle from '@mui/joy/DialogTitle';
+import Modal from '@mui/joy/Modal';
+import ModalDialog from '@mui/joy/ModalDialog';
+import React from 'react';
+import { Link, useLocation } from 'react-router-dom';
+
+export interface LoginModalProps {
+ isOpen: boolean;
+ onClose: () => void;
+}
+export function LoginModal(props: LoginModalProps): React.ReactElement {
+ const location = useLocation();
+
+ switch (location.pathname) {
+ case '/account/login':
+ case '/account/signup':
+ // not show login modal in login page and signup page
+ return <>>;
+ }
+
+ return (
+ <>
+
+
+ ログインが必要です
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/frontend/src/components/reaction/reaction.tsx b/frontend/src/components/reaction/reaction.tsx
new file mode 100644
index 000000000..448ed0a73
--- /dev/null
+++ b/frontend/src/components/reaction/reaction.tsx
@@ -0,0 +1,125 @@
+import { keyframes } from '@emotion/react';
+import styled from '@emotion/styled';
+import React from 'react';
+
+export interface ReactionProps {
+ children: React.ReactNode;
+ onFinished?: () => void;
+}
+export const Reaction = React.memo(function Reaction(
+ props: ReactionProps,
+): React.ReactNode {
+ const elem = React.useRef(null);
+ const [isFinished, setIsFinished] = React.useState(false);
+
+ const startPos = React.useMemo(() => {
+ const offset = 15;
+ return Math.random() * offset - offset / 2;
+ }, []);
+ const endPos = React.useMemo(() => {
+ const offset = 30;
+ return Math.random() * offset - offset / 2;
+ }, []);
+ const rotation = React.useMemo(() => {
+ const offset = 30;
+ return Math.random() * offset - offset / 2;
+ }, []);
+
+ React.useEffect(() => {
+ const e = elem.current;
+ if (e) {
+ const handler = () => {
+ setIsFinished(true);
+ props.onFinished?.();
+ };
+ e.addEventListener('animationend', handler);
+ return () => e.removeEventListener('animationend', handler);
+ }
+ }, [props.onFinished]);
+
+ if (isFinished) {
+ return null;
+ }
+ return (
+
+ {props.children}
+
+ );
+});
+
+declare global {
+ namespace JSX {
+ interface IntrinsicElements {
+ 'em-emoji': any;
+ }
+ }
+}
+
+const shortcoes = [':+1:', ':heart:', ':clap:', ':tada:', ':smile:'];
+export function RandomReactions(): React.ReactElement {
+ const [reactions, setReactions] = React.useState([]);
+ const count = React.useRef(0);
+ React.useEffect(() => {
+ const timer = setInterval(() => {
+ setReactions((prev) =>
+ [
+ ...prev,
+
+
+ ,
+ ].slice(-50),
+ );
+ }, 300);
+ return () => clearInterval(timer);
+ }, []);
+ return {reactions};
+}
+
+export interface Reaction {
+ id: string;
+ shortcodes: string;
+}
+export interface ReactionViewProps {
+ reactions: Reaction[];
+ onFinished?(id: string): void;
+}
+export function ReactionView({
+ reactions,
+ onFinished,
+}: ReactionViewProps): React.ReactElement {
+ return (
+ <>
+ {reactions.map((r) => (
+ onFinished?.(r.id)}>
+
+
+ ))}
+ >
+ );
+}
+
+const RandomReactionsWrapper = styled.div`
+ position: absolute;
+`;
+
+const floatAnimation = (rotate: number, end: number) => keyframes`
+ 0% {
+ transform: translateY(0);
+ opacity: 1;
+ }
+ 100% {
+ transform: translateY(-100px) translateX(${end}px) rotate(${rotate}deg) scale(0.5);
+ opacity: 0;
+ }
+`;
+
+const Emoji = styled.span<{ rotate: number; end: number }>`
+ font-size: 24px;
+ position: absolute;
+ bottom: 0;
+ opacity: 0;
+ animation: ${(props) => floatAnimation(props.rotate, props.end)} 3s linear;
+`;
diff --git a/frontend/src/components/toast/toast.tsx b/frontend/src/components/toast/toast.tsx
new file mode 100644
index 000000000..8b9532084
--- /dev/null
+++ b/frontend/src/components/toast/toast.tsx
@@ -0,0 +1,79 @@
+import Alert, { type AlertProps } from '@mui/joy/Alert';
+import Stack from '@mui/joy/Stack';
+import Typography from '@mui/joy/Typography';
+import {
+ ToastQueue,
+ type ToastState,
+ useToastQueue,
+ type QueuedToast,
+} from '@react-stately/toast';
+import React from 'react';
+
+export const toastQueue = new ToastQueue({
+ maxVisibleToasts: 5,
+});
+
+export interface ToastItem {
+ type: 'info' | 'success' | 'warning' | 'error';
+ title: string;
+ message: string;
+}
+
+export function useGlobalToastQueue(): ToastState {
+ return useToastQueue(toastQueue);
+}
+
+export function Toast(): React.ReactElement {
+ const state = useGlobalToastQueue();
+
+ return (
+
+ {state.visibleToasts.map((toast) => (
+
+ ))}
+
+ );
+}
+
+export function ToastItem({
+ toast,
+}: {
+ toast: QueuedToast;
+}): React.ReactElement {
+ React.useEffect(() => {
+ if (!toast.timer || !toast.timeout) {
+ return;
+ }
+ toast.timer.reset(toast.timeout);
+ return () => {
+ toast.timer?.pause();
+ };
+ });
+ return (
+
+
+
{toast.content.title}
+
+ {toast.content.message}
+
+
+
+ );
+}
+
+function colorMap(type: ToastItem['type']): AlertProps['color'] {
+ switch (type) {
+ case 'info':
+ return 'neutral';
+ case 'success':
+ return 'success';
+ case 'warning':
+ return 'warning';
+ case 'error':
+ return 'danger';
+ }
+}
diff --git a/frontend/src/components/video/comment.tsx b/frontend/src/components/video/comment.tsx
new file mode 100644
index 000000000..2ce9fef59
--- /dev/null
+++ b/frontend/src/components/video/comment.tsx
@@ -0,0 +1,533 @@
+import { Emoji } from '@emoji-mart/data';
+import Picker from '@emoji-mart/react';
+import styled from '@emotion/styled';
+import { Typography } from '@mui/joy';
+import Avatar from '@mui/joy/Avatar';
+import Button from '@mui/joy/Button';
+import ButtonGroup from '@mui/joy/ButtonGroup';
+import Card from '@mui/joy/Card';
+import CardContent from '@mui/joy/CardContent';
+import CardOverflow from '@mui/joy/CardOverflow';
+import IconButton from '@mui/joy/IconButton';
+import Input from '@mui/joy/Input';
+import Skeleton from '@mui/joy/Skeleton';
+import Slider from '@mui/joy/Slider';
+import Stack from '@mui/joy/Stack';
+import React from 'react';
+import { Controller, useForm } from 'react-hook-form';
+import { AiFillHeart, AiOutlineClose } from 'react-icons/ai';
+import { HiCurrencyYen } from 'react-icons/hi2';
+import { apiClient } from '~/api/client';
+import { useLiveStreamComment, useLiveStreamReaction } from '~/api/hooks';
+import { Schemas } from '~/api/types';
+import {
+ RandomReactions,
+ Reaction,
+ ReactionView,
+} from '~/components/reaction/reaction';
+
+const chipTable = [100, 200, 500, 1000, 2000, 5000, 10000, 20000];
+
+export function chipColor(price: number): [string, boolean] {
+ // blue
+ if (price < 200) return ['#33d', true];
+ // light blue
+ if (price < 500) return ['#0dd', false];
+ // green
+ if (price < 1000) return ['#4c4', false];
+ // yellow
+ if (price < 2000) return ['#fb0', true];
+ // orange
+ if (price < 5000) return ['#f80', true];
+ // magenta
+ if (price < 10000) return ['#d0d', true];
+ // red
+ return ['#f00', true];
+}
+
+// interface LiveComment {
+// id: string;
+// userName: string;
+// text: string;
+// chip?: number;
+// }
+
+export interface LiveCommentProps {
+ type: 'real' | 'random'; // real: 実際のAPIコールを伴う, random: ランダムコメントでのデモ
+ livestream_id: number;
+ is_loading?: boolean;
+}
+
+export default function LiveComment(
+ props: LiveCommentProps,
+): React.ReactElement {
+ const [commentMode, setCommentMode] = React.useState<
+ 'normal' | 'chip' | 'emoji'
+ >('normal');
+ const [chipAmount, setChipAmount] = React.useState(2000);
+
+ const [localLiveComments, setLocalLiveComments] = React.useState<
+ Schemas.Livecomment[]
+ >([]);
+ const remoteLiveComment = useLiveStreamComment(
+ props.type === 'real' ? props.livestream_id.toString() : null,
+ );
+ const liveComments: Schemas.Livecomment[] =
+ props.type === 'real' ? remoteLiveComment.data ?? [] : localLiveComments;
+
+ const counterRef = React.useRef(0);
+ React.useEffect(() => {
+ if (props.type === 'real') {
+ let timer: number | undefined = undefined;
+ const cb = async () => {
+ await Promise.all([
+ remoteLiveComment.mutate(),
+ remoteReaction.mutate(),
+ ]);
+ timer = setTimeout(cb, 3000); // fetch interval
+ };
+ cb();
+ return () => {
+ if (timer) {
+ clearTimeout(timer);
+ }
+ };
+ } else {
+ const timer = setInterval(() => {
+ counterRef.current++;
+ let tip: number | undefined;
+ if (Math.random() < 0.1) {
+ tip = chipTable[Math.floor(Math.random() * chipTable.length)];
+ }
+ setLocalLiveComments((comments) => {
+ const newList = [
+ ...comments,
+ {
+ id: counterRef.current,
+ user: {
+ id: counterRef.current,
+ name: `user-${counterRef.current}`,
+ display_name: `ユーザー名${counterRef.current}`,
+ description: '',
+ is_popular: false,
+ theme: '',
+ },
+ comment: `メッセージ${counterRef.current}`,
+ tip: tip,
+ } satisfies Schemas.Livecomment,
+ ];
+ if (newList.length > 40) {
+ return newList.splice(-30);
+ } else {
+ return newList;
+ }
+ });
+ }, 300);
+ return () => clearInterval(timer);
+ }
+ }, [props.type]);
+
+ const commentsRef = React.useRef(null);
+ React.useLayoutEffect(() => {
+ if (commentsRef.current) {
+ commentsRef.current.scrollTop = commentsRef.current.scrollHeight;
+ }
+ }, [liveComments]);
+
+ const form = useForm<{ normalComment: string; tipComment: string }>({
+ defaultValues: {
+ normalComment: '',
+ tipComment: '',
+ },
+ });
+ const [isSubmitting, setIsSubmitting] = React.useState(false);
+ const submitNormal = React.useCallback(async () => {
+ if (props.type === 'real') {
+ const comment = form.getValues('normalComment');
+ setIsSubmitting(true);
+ try {
+ await apiClient.post$livestream$livestreamid$livecomment({
+ parameter: {
+ livestreamid: props.livestream_id.toString(),
+ },
+ requestBody: {
+ comment: comment,
+ },
+ });
+ remoteLiveComment.mutate();
+ form.setValue('normalComment', '');
+ } finally {
+ setIsSubmitting(false);
+ }
+ } else {
+ const comment = form.getValues('normalComment');
+ setLocalLiveComments((comments) => {
+ counterRef.current++;
+ return [
+ ...comments,
+ {
+ id: counterRef.current,
+ user: {
+ id: counterRef.current,
+ name: `user-${counterRef.current}`,
+ display_name: `ユーザー名${counterRef.current}`,
+ description: '',
+ is_popular: false,
+ theme: '',
+ },
+ comment: comment,
+ tip: undefined,
+ } satisfies Schemas.Livecomment,
+ ];
+ });
+ form.setValue('normalComment', '');
+ }
+ }, [form, props.type]);
+
+ const submitTip = React.useCallback(async () => {
+ if (props.type === 'real') {
+ const comment = form.getValues('tipComment');
+ setIsSubmitting(true);
+ try {
+ await apiClient.post$livestream$livestreamid$livecomment({
+ parameter: {
+ livestreamid: props.livestream_id.toString(),
+ },
+ requestBody: {
+ comment: comment,
+ tip: chipAmount,
+ },
+ });
+ remoteLiveComment.mutate();
+ form.setValue('tipComment', '');
+ } finally {
+ setIsSubmitting(false);
+ }
+ } else {
+ const comment = form.getValues('tipComment');
+ setLocalLiveComments((comments) => {
+ counterRef.current++;
+ return [
+ ...comments,
+ {
+ id: counterRef.current,
+ user: {
+ id: counterRef.current,
+ name: `user-${counterRef.current}`,
+ display_name: `ユーザー名${counterRef.current}`,
+ description: '',
+ is_popular: false,
+ theme: '',
+ },
+ comment: comment,
+ tip: chipAmount,
+ } satisfies Schemas.Livecomment,
+ ];
+ });
+ form.setValue('tipComment', '');
+ }
+ }, [form, props.type, chipAmount]);
+
+ const remoteReaction = useLiveStreamReaction(
+ props.type === 'real' ? props.livestream_id.toString() : null,
+ );
+ const reactions: Reaction[] =
+ remoteReaction.data?.map(
+ (r) => ({ id: r.id, shortcodes: r.emoji_name }) satisfies Reaction,
+ ) ?? [];
+ const onEmojiSelect = React.useCallback(
+ async (emoji: Emoji & { shortcodes: string }) => {
+ if (props.type === 'real') {
+ await apiClient.post$livestream$livestreamid$reaction({
+ parameter: {
+ livestreamid: props.livestream_id.toString(),
+ },
+ requestBody: {
+ emoji_name: emoji.shortcodes,
+ },
+ });
+ await remoteReaction.mutate();
+ }
+ },
+ [],
+ );
+
+ return (
+ <>
+
+
+ `1px solid ${t.vars.palette.neutral.outlinedBorder}`,
+ py: 1,
+ }}
+ >
+ Chat
+
+
+
+ {props.is_loading ||
+ (props.type === 'real' && remoteLiveComment.isLoading) ? (
+ <>
+
+
+
+ >
+ ) : (
+ liveComments.map((comment) => (
+
+ ))
+ )}
+
+
+ {commentMode !== 'chip' && (
+
+ setCommentMode((mode) =>
+ mode === 'emoji' ? 'normal' : 'emoji',
+ )
+ }
+ >
+ {commentMode === 'emoji' ? (
+
+ ) : (
+
+ )}
+
+ )}
+ {props.type === 'real' ? (
+
+ ) : (
+
+ )}
+
+
+
+ `1px solid ${t.vars.palette.neutral.outlinedBorder}`,
+ py: 1,
+ overflow: 'hidden',
+ }}
+ >
+ {commentMode === 'emoji' && (
+
+
+
+ )}
+ {commentMode === 'normal' && (
+ <>
+
+
+ submitNormal()}
+ loading={isSubmitting}
+ >
+ 送信
+
+ }
+ placeholder="チャット…"
+ sx={{ flexGrow: 1, ml: 2, mr: 1 }}
+ />
+
+
+ >
+ )}
+ {commentMode === 'chip' && (
+ <>
+
+
+ チップを送る
+
+ (
+ field.onChange(text)}
+ amount={chipAmount}
+ isEditable
+ />
+ )}
+ />
+ chipTable[x] ?? 0}
+ valueLabelDisplay="auto"
+ value={chipTable.indexOf(chipAmount)}
+ onChange={(e, v) => setChipAmount(chipTable[v as number])}
+ />
+
+
+
+
+
+ >
+ )}
+
+
+ >
+ );
+}
+
+const PickerWrapper = styled.div`
+ & > div {
+ margin: -12px -15px -9px;
+ }
+ & > div > em-emoji-picker {
+ width: 100%;
+ height: 300px;
+ }
+`;
+
+interface CommentProps {
+ comment: Schemas.Livecomment;
+}
+const Comment = React.memo(function Comment({
+ comment,
+}: CommentProps): React.ReactElement {
+ return comment.tip ? (
+
+ ) : (
+
+
+
+
+ {comment.user?.display_name ?? ''}
+
+
+ {comment.comment ?? ''}
+
+
+
+ //
+ //
+ // {comment.userName}
+ //
+ // {comment.text}
+ //
+ //
+ );
+});
+
+const CommentWrapper = styled.div`
+ position: relative;
+`;
+
+interface TipCommentProps {
+ amount: number;
+ text: string;
+ isEditable?: boolean;
+ onChange?(text: string): void;
+}
+function TipComment(props: TipCommentProps): React.ReactElement {
+ const color = chipColor(props.amount);
+ return (
+
+
+
+
+ ユーザー名
+
+
+ {props.amount} ISU
+
+
+ {props.isEditable ? (
+ props.onChange?.(e.target.value)}
+ />
+ ) : (
+
+ {props.text}
+
+ )}
+
+ );
+}
diff --git a/frontend/src/components/video/thumbnail.tsx b/frontend/src/components/video/thumbnail.tsx
new file mode 100644
index 000000000..09d9e54ee
--- /dev/null
+++ b/frontend/src/components/video/thumbnail.tsx
@@ -0,0 +1,52 @@
+import { Typography } from '@mui/joy';
+import AspectRatio from '@mui/joy/AspectRatio';
+import Avatar from '@mui/joy/Avatar';
+import Stack from '@mui/joy/Stack';
+import formatDistanceToNow from 'date-fns/formatDistanceToNow';
+import { ja } from 'date-fns/locale';
+import React from 'react';
+import { Link } from 'react-router-dom';
+import { Schemas } from '~/api/types';
+
+export interface VideoThumbnailProps {
+ liveSteram: Schemas.Livestream;
+}
+export function VideoThumbnail({
+ liveSteram,
+}: VideoThumbnailProps): React.ReactElement {
+ const date = React.useMemo(
+ () =>
+ liveSteram.created_at
+ ? formatDistanceToNow(liveSteram.created_at * 1000, {
+ addSuffix: true,
+ locale: ja,
+ })
+ : 'unkown',
+ [liveSteram.created_at],
+ );
+
+ return (
+
+
+
+
+
+
+
+ {liveSteram.title}
+
+
+ {liveSteram.owner?.name}
+
+ {liveSteram.viewers_count}人視聴・{date}
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/src/index.css b/frontend/src/index.css
new file mode 100644
index 000000000..ec2585e8c
--- /dev/null
+++ b/frontend/src/index.css
@@ -0,0 +1,13 @@
+body {
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
+ 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+ sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+code {
+ font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
+ monospace;
+}
diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx
new file mode 100644
index 000000000..36d6c30c4
--- /dev/null
+++ b/frontend/src/main.tsx
@@ -0,0 +1,18 @@
+// import emojiData from '@emoji-mart/data';
+import emojiData from '@emoji-mart/data/sets/14/twitter.json';
+import { init as emojiInit } from 'emoji-mart';
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+import { BrowserRouter } from 'react-router-dom';
+import { App } from '~/App';
+import '~/index.css';
+
+emojiInit({ data: emojiData });
+
+ReactDOM.createRoot(document.getElementById('root')!).render(
+
+
+
+
+ ,
+);
diff --git a/frontend/src/pages/account/login.tsx b/frontend/src/pages/account/login.tsx
new file mode 100644
index 000000000..522ff5f7d
--- /dev/null
+++ b/frontend/src/pages/account/login.tsx
@@ -0,0 +1,86 @@
+import Button from '@mui/joy/Button';
+import Divider from '@mui/joy/Divider';
+import FormControl from '@mui/joy/FormControl';
+import FormLabel from '@mui/joy/FormLabel';
+import Input from '@mui/joy/Input';
+import Stack from '@mui/joy/Stack';
+import React from 'react';
+import { useForm } from 'react-hook-form';
+import { Link, useNavigate } from 'react-router-dom';
+import { apiClient } from '~/api/client';
+import { useUserMe } from '~/api/hooks';
+import { useGlobalToastQueue } from '~/components/toast/toast';
+
+interface FormValues {
+ username: string;
+ password: string;
+}
+
+export default function AccountPage(): React.ReactElement {
+ const form = useForm();
+ const toast = useGlobalToastQueue();
+ const navigate = useNavigate();
+
+ const userMe = useUserMe({
+ revalidateIfStale: false,
+ revalidateOnFocus: false,
+ revalidateOnMount: false,
+ revalidateOnReconnect: false,
+ });
+
+ const onSubmit = async (data: FormValues) => {
+ try {
+ const res = await apiClient.post$login({
+ requestBody: {
+ username: data.username,
+ password: data.password,
+ },
+ });
+ console.log(res);
+ toast.add(
+ {
+ type: 'success',
+ title: 'Login Success',
+ message: 'ログインに成功しました',
+ },
+ { timeout: 3000 },
+ );
+ await Promise.all([userMe.mutate()]);
+ navigate('/');
+ } catch (e) {
+ console.warn(e);
+ toast.add(
+ {
+ type: 'error',
+ title: 'Login Failed',
+ message: 'ログインに失敗しました',
+ },
+ { timeout: 3000 },
+ );
+ }
+ };
+
+ return (
+
+ );
+}
diff --git a/frontend/src/pages/account/signup.tsx b/frontend/src/pages/account/signup.tsx
new file mode 100644
index 000000000..b4cc85ae6
--- /dev/null
+++ b/frontend/src/pages/account/signup.tsx
@@ -0,0 +1,60 @@
+import Button from '@mui/joy/Button';
+import Divider from '@mui/joy/Divider';
+import FormControl from '@mui/joy/FormControl';
+import FormLabel from '@mui/joy/FormLabel';
+import Input from '@mui/joy/Input';
+import Stack from '@mui/joy/Stack';
+import React from 'react';
+import { useForm } from 'react-hook-form';
+import { apiClient } from '~/api/client';
+
+interface FormValues {
+ name: string;
+ display_name: string;
+ description: string;
+ password: string;
+}
+
+export default function SignupPage(): React.ReactElement {
+ const form = useForm();
+
+ const onSubmit = async (data: FormValues) => {
+ console.log(data);
+ const res = await apiClient.post$user({
+ requestBody: {
+ name: data.name,
+ display_name: data.display_name,
+ description: data.description,
+ password: data.password,
+ },
+ });
+ console.log(res);
+ };
+
+ return (
+
+ );
+}
diff --git a/frontend/src/pages/console/index.tsx b/frontend/src/pages/console/index.tsx
new file mode 100644
index 000000000..45f2310ed
--- /dev/null
+++ b/frontend/src/pages/console/index.tsx
@@ -0,0 +1,107 @@
+import styled from '@emotion/styled';
+import { Typography } from '@mui/joy';
+import AspectRatio from '@mui/joy/AspectRatio';
+import Avatar from '@mui/joy/Avatar';
+import Button from '@mui/joy/Button';
+import Card from '@mui/joy/Card';
+import Grid from '@mui/joy/Grid';
+import Stack from '@mui/joy/Stack';
+import React from 'react';
+import { Link } from 'react-router-dom';
+import { Schemas } from '~/api/types';
+import { NewLiveDialog } from '~/components/console/newlive';
+
+export default function StreamerConsolePage(): React.ReactElement {
+ const [open, setOpen] = React.useState(false);
+
+ return (
+ <>
+ setOpen(false)} />
+
+
+ 配信一覧
+
+
+
+
+
+ {Array(10)
+ .fill(0)
+ .map((_, index) => (
+
+
+
+ ))}
+
+
+
+ >
+ );
+}
+
+const Container = styled.div`
+ width: 1000px;
+ margin: 0 auto;
+`;
+
+interface LiveItemProps {
+ liveSteram: Schemas.Livestream;
+}
+function LiveItem(props: LiveItemProps): React.ReactElement {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ {props.liveSteram.title}
+
+
+ 1234人視聴・12分前
+
+
+ 開始 2023-10-10 12:23
+ 終了 2023-10-10 12:23
+
+
+
+
+
+
+
+
+
+ user
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/src/pages/console/live/[id].tsx b/frontend/src/pages/console/live/[id].tsx
new file mode 100644
index 000000000..e296cef88
--- /dev/null
+++ b/frontend/src/pages/console/live/[id].tsx
@@ -0,0 +1,93 @@
+import { Typography } from '@mui/joy';
+import AspectRatio from '@mui/joy/AspectRatio';
+import Avatar from '@mui/joy/Avatar';
+import Button from '@mui/joy/Button';
+import Card from '@mui/joy/Card';
+import List from '@mui/joy/List';
+import ListItem from '@mui/joy/ListItem';
+import ListItemButton from '@mui/joy/ListItemButton';
+import Sheet from '@mui/joy/Sheet';
+import Stack from '@mui/joy/Stack';
+import React from 'react';
+import { AiOutlinePlus } from 'react-icons/ai';
+import { Link } from 'react-router-dom';
+import LiveComment from '~/components/video/comment';
+
+export default function WatchPage(): React.ReactElement {
+ return (
+
+
+
+
+
+
+
+ 動画タイトル
+
+
+
+
+
+
+ チャンネル名
+
+
+
+ チャンネル登録者数1234人
+
+
+
+
+
+
+
+
+
+ 1,234人が視聴中
+ 2時間前にライブ配信開始
+
+ {`説明文\n2行目\n三行目`}
+
+
+
+
+
+
+
+
+ NG Word
+ }
+ sx={{ ml: 'auto' }}
+ >
+ 追加
+
+
+
+
+
+ item
+
+
+ item
+
+
+ item
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/src/pages/index.tsx b/frontend/src/pages/index.tsx
new file mode 100644
index 000000000..5e7cc093a
--- /dev/null
+++ b/frontend/src/pages/index.tsx
@@ -0,0 +1,122 @@
+import { Typography } from '@mui/joy';
+import Button from '@mui/joy/Button';
+import Divider from '@mui/joy/Divider';
+import Grid from '@mui/joy/Grid';
+import Stack from '@mui/joy/Stack';
+import React from 'react';
+import { BiSolidVideoRecording } from 'react-icons/bi';
+import {
+ BsFillHouseDoorFill,
+ BsCollectionPlay,
+ BsClockHistory,
+ BsCircleFill,
+} from 'react-icons/bs';
+import { MdManageHistory } from 'react-icons/md';
+import { Link } from 'react-router-dom';
+import { useLiveStreams } from '~/api/hooks';
+import { VideoThumbnail } from '~/components/video/thumbnail';
+
+export default function IndexPage(): React.ReactElement {
+ const liveSterams = useLiveStreams({
+ tag: 'ライブ配信', // TODO Remove
+ });
+
+ return (
+
+
+
+ }>
+ ホーム
+
+ }>
+ 登録チャンネル
+
+ }
+ {...{ to: '/console' }}
+ >
+ 管理画面
+
+
+ }>
+ 再生履歴
+
+ }>
+ ライブ履歴
+
+
+
+ 登録チャンネル
+
+ {Array(10)
+ .fill(0)
+ .map((_, i) => (
+ }
+ >
+ {`チャンネル ${i + 1}`}
+
+ ))}
+
+
+
+
+ {liveSterams.data?.map((stream, index) => (
+
+
+
+ ))}
+
+
+
+ );
+}
+
+function SidebarButton(
+ props: Parameters[0],
+): React.ReactElement {
+ const p = {
+ component: Link,
+ };
+ return (
+ <>
+
+ >
+ );
+}
diff --git a/frontend/src/pages/search.tsx b/frontend/src/pages/search.tsx
new file mode 100644
index 000000000..80d8116ef
--- /dev/null
+++ b/frontend/src/pages/search.tsx
@@ -0,0 +1,49 @@
+import styled from '@emotion/styled';
+import { Typography } from '@mui/joy';
+import Grid from '@mui/joy/Grid';
+import Stack from '@mui/joy/Stack';
+import React from 'react';
+import { useSearchParams } from 'react-router-dom';
+import { useLiveStreams } from '~/api/hooks';
+import { VideoThumbnail } from '~/components/video/thumbnail';
+
+export default function SearchResultPage(): React.ReactElement {
+ // get query
+ const [searchParams] = useSearchParams();
+ const tag = searchParams.get('q');
+
+ const liveSterams = useLiveStreams({
+ tag: tag ?? '',
+ });
+
+ return (
+ <>
+
+
+
+ 検索結果 {tag}
+
+
+
+ {liveSterams.data?.map((stream, index) => (
+
+
+
+ ))}
+
+
+
+ >
+ );
+}
+
+const Container = styled.div`
+ width: 1200px;
+ margin: 0 auto;
+`;
diff --git a/frontend/src/pages/user.tsx b/frontend/src/pages/user.tsx
new file mode 100644
index 000000000..f6e6e07a1
--- /dev/null
+++ b/frontend/src/pages/user.tsx
@@ -0,0 +1,56 @@
+import styled from '@emotion/styled';
+import { Typography } from '@mui/joy';
+import AspectRatio from '@mui/joy/AspectRatio';
+import Grid from '@mui/joy/Grid';
+import Stack from '@mui/joy/Stack';
+import React from 'react';
+import { VideoThumbnail } from '~/components/video/thumbnail';
+
+export default function UserPage(): React.ReactElement {
+ return (
+
+
+
+
+
+
+
+ ユーザー名
+
+ 登録日: 2021/01/01
+
+ チャンネル登録者数: 1234人
+
+
+ 説明文
+
+
+
+
+
+ {Array(10)
+ .fill(0)
+ .map((_, index) => (
+
+
+
+ ))}
+
+
+
+ );
+}
+
+const Container = styled.div`
+ width: 1000px;
+ margin: 0 auto;
+`;
diff --git a/frontend/src/pages/watch/[id].tsx b/frontend/src/pages/watch/[id].tsx
new file mode 100644
index 000000000..faa498b28
--- /dev/null
+++ b/frontend/src/pages/watch/[id].tsx
@@ -0,0 +1,111 @@
+import { Typography } from '@mui/joy';
+import AspectRatio from '@mui/joy/AspectRatio';
+import Avatar from '@mui/joy/Avatar';
+import Card from '@mui/joy/Card';
+import Divider from '@mui/joy/Divider';
+import Skeleton from '@mui/joy/Skeleton';
+import Stack from '@mui/joy/Stack';
+import React from 'react';
+import { Link, useParams } from 'react-router-dom';
+import { useLiveStream } from '~/api/hooks';
+import LiveComment from '~/components/video/comment';
+
+export default function WatchPage(): React.ReactElement {
+ const { id } = useParams();
+ const liveStream = useLiveStream(id ?? null);
+ const idNum = id ? parseInt(id) : null;
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ {liveStream.data?.title}
+
+
+
+
+
+ {liveStream.data === undefined ? (
+
+ ) : (
+
+
+ {liveStream.data?.owner?.display_name}
+
+
+ )}
+
+ チャンネル登録者数****人
+
+
+ {/*
+
+
*/}
+
+
+
+ {liveStream.data === undefined ? (
+
+ ) : (
+
+ {liveStream.data?.viewers_count}人が視聴中
+
+ )}
+
+ ****時間前にライブ配信開始
+
+
+
+ {liveStream.data?.description}
+
+
+
+ {liveStream.data?.owner?.description}
+
+
+
+
+ Related Live
+
+ {Array(5)
+ .fill(0)
+ .map((_, i) => (
+
+
+
+
+
+
+
+ 動画タイトル{i + 1}
+
+ チャンネル名
+ 1,234人が視聴中
+
+
+
+ ))}
+
+
+
+
+ );
+}
diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts
new file mode 100644
index 000000000..f07ec82ef
--- /dev/null
+++ b/frontend/src/vite-env.d.ts
@@ -0,0 +1,2 @@
+///
+///
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
new file mode 100644
index 000000000..f93b281bb
--- /dev/null
+++ b/frontend/tsconfig.json
@@ -0,0 +1,30 @@
+{
+ "compilerOptions": {
+ "baseUrl": "./",
+ "paths": {
+ "~/*": ["src/*"]
+ },
+ "typeRoots": ["src/@types"],
+ "target": "ESNext",
+ "useDefineForClassFields": true,
+ "lib": ["DOM", "DOM.Iterable", "ESNext"],
+ "allowJs": false,
+ "skipLibCheck": true,
+ "esModuleInterop": false,
+ "allowSyntheticDefaultImports": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "module": "ESNext",
+ "moduleResolution": "Node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react-jsx"
+ },
+ "include": ["src"],
+ "references": [
+ {
+ "path": "./tsconfig.node.json"
+ }
+ ]
+}
diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json
new file mode 100644
index 000000000..996fd4a3d
--- /dev/null
+++ b/frontend/tsconfig.node.json
@@ -0,0 +1,12 @@
+{
+ "compilerOptions": {
+ "baseUrl": "./",
+ "paths": {
+ "~/*": ["src/*"]
+ },
+ "composite": true,
+ "module": "esnext",
+ "moduleResolution": "node"
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts
new file mode 100644
index 000000000..4af19a51e
--- /dev/null
+++ b/frontend/vite.config.ts
@@ -0,0 +1,26 @@
+import react from '@vitejs/plugin-react';
+import { defineConfig } from 'vite';
+import Pages from 'vite-plugin-pages';
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [react(), Pages({})],
+ server: {
+ port: 4000,
+ proxy: {
+ '/api': {
+ target: 'http://localhost:12345',
+ changeOrigin: true,
+ rewrite: (path) => path.replace(/^\/api/, ''),
+ },
+ },
+ },
+ resolve: {
+ alias: [
+ {
+ find: '~/',
+ replacement: '/src/',
+ },
+ ],
+ },
+});
diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts
new file mode 100644
index 000000000..5f3d0f375
--- /dev/null
+++ b/frontend/vitest.config.ts
@@ -0,0 +1,12 @@
+import { defineConfig } from 'vitest/config';
+
+export default defineConfig({
+ resolve: {
+ alias: [
+ {
+ find: '~/',
+ replacement: '/src/',
+ },
+ ],
+ },
+});
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
new file mode 100644
index 000000000..9858c0864
--- /dev/null
+++ b/frontend/yarn.lock
@@ -0,0 +1,5877 @@
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 6
+ cacheKey: 8
+
+"@aashutoshrathi/word-wrap@npm:^1.2.3":
+ version: 1.2.6
+ resolution: "@aashutoshrathi/word-wrap@npm:1.2.6"
+ checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd
+ languageName: node
+ linkType: hard
+
+"@ampproject/remapping@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "@ampproject/remapping@npm:2.2.1"
+ dependencies:
+ "@jridgewell/gen-mapping": ^0.3.0
+ "@jridgewell/trace-mapping": ^0.3.9
+ checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079
+ languageName: node
+ linkType: hard
+
+"@babel/code-frame@npm:^7.0.0":
+ version: 7.16.7
+ resolution: "@babel/code-frame@npm:7.16.7"
+ dependencies:
+ "@babel/highlight": ^7.16.7
+ checksum: db2f7faa31bc2c9cf63197b481b30ea57147a5fc1a6fab60e5d6c02cdfbf6de8e17b5121f99917b3dabb5eeb572da078312e70697415940383efc140d4e0808b
+ languageName: node
+ linkType: hard
+
+"@babel/code-frame@npm:^7.22.13":
+ version: 7.22.13
+ resolution: "@babel/code-frame@npm:7.22.13"
+ dependencies:
+ "@babel/highlight": ^7.22.13
+ chalk: ^2.4.2
+ checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058
+ languageName: node
+ linkType: hard
+
+"@babel/compat-data@npm:^7.22.9":
+ version: 7.22.9
+ resolution: "@babel/compat-data@npm:7.22.9"
+ checksum: bed77d9044ce948b4327b30dd0de0779fa9f3a7ed1f2d31638714ed00229fa71fc4d1617ae0eb1fad419338d3658d0e9a5a083297451e09e73e078d0347ff808
+ languageName: node
+ linkType: hard
+
+"@babel/core@npm:^7.22.9":
+ version: 7.22.17
+ resolution: "@babel/core@npm:7.22.17"
+ dependencies:
+ "@ampproject/remapping": ^2.2.0
+ "@babel/code-frame": ^7.22.13
+ "@babel/generator": ^7.22.15
+ "@babel/helper-compilation-targets": ^7.22.15
+ "@babel/helper-module-transforms": ^7.22.17
+ "@babel/helpers": ^7.22.15
+ "@babel/parser": ^7.22.16
+ "@babel/template": ^7.22.15
+ "@babel/traverse": ^7.22.17
+ "@babel/types": ^7.22.17
+ convert-source-map: ^1.7.0
+ debug: ^4.1.0
+ gensync: ^1.0.0-beta.2
+ json5: ^2.2.3
+ semver: ^6.3.1
+ checksum: 355216a342d1b3952d7c040dd4c99ecef6b3501ba99a713703c1fec1ae73bc92a48a0c1234562bdbb4fd334b2e452f5a6c3bb282f0e613fa89e1518c91d1aea1
+ languageName: node
+ linkType: hard
+
+"@babel/generator@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/generator@npm:7.22.15"
+ dependencies:
+ "@babel/types": ^7.22.15
+ "@jridgewell/gen-mapping": ^0.3.2
+ "@jridgewell/trace-mapping": ^0.3.17
+ jsesc: ^2.5.1
+ checksum: 5b2a3ccdc3634f6ea86e0a442722bcd430238369432d31f15b428a4ee8013c2f4f917b5b135bf4fc1d0a3e2f87f10fd4ce5d07955ecc2d3b9400a05c2a481374
+ languageName: node
+ linkType: hard
+
+"@babel/helper-compilation-targets@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/helper-compilation-targets@npm:7.22.15"
+ dependencies:
+ "@babel/compat-data": ^7.22.9
+ "@babel/helper-validator-option": ^7.22.15
+ browserslist: ^4.21.9
+ lru-cache: ^5.1.1
+ semver: ^6.3.1
+ checksum: ce85196769e091ae54dd39e4a80c2a9df1793da8588e335c383d536d54f06baf648d0a08fc873044f226398c4ded15c4ae9120ee18e7dfd7c639a68e3cdc9980
+ languageName: node
+ linkType: hard
+
+"@babel/helper-environment-visitor@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-environment-visitor@npm:7.22.5"
+ checksum: 248532077d732a34cd0844eb7b078ff917c3a8ec81a7f133593f71a860a582f05b60f818dc5049c2212e5baa12289c27889a4b81d56ef409b4863db49646c4b1
+ languageName: node
+ linkType: hard
+
+"@babel/helper-function-name@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-function-name@npm:7.22.5"
+ dependencies:
+ "@babel/template": ^7.22.5
+ "@babel/types": ^7.22.5
+ checksum: 6b1f6ce1b1f4e513bf2c8385a557ea0dd7fa37971b9002ad19268ca4384bbe90c09681fe4c076013f33deabc63a53b341ed91e792de741b4b35e01c00238177a
+ languageName: node
+ linkType: hard
+
+"@babel/helper-hoist-variables@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-hoist-variables@npm:7.22.5"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc
+ languageName: node
+ linkType: hard
+
+"@babel/helper-module-imports@npm:^7.16.7":
+ version: 7.16.7
+ resolution: "@babel/helper-module-imports@npm:7.16.7"
+ dependencies:
+ "@babel/types": ^7.16.7
+ checksum: ddd2c4a600a2e9a4fee192ab92bf35a627c5461dbab4af31b903d9ba4d6b6e59e0ff3499fde4e2e9a0eebe24906f00b636f8b4d9bd72ff24d50e6618215c3212
+ languageName: node
+ linkType: hard
+
+"@babel/helper-module-imports@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/helper-module-imports@npm:7.22.15"
+ dependencies:
+ "@babel/types": ^7.22.15
+ checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702
+ languageName: node
+ linkType: hard
+
+"@babel/helper-module-transforms@npm:^7.22.17":
+ version: 7.22.17
+ resolution: "@babel/helper-module-transforms@npm:7.22.17"
+ dependencies:
+ "@babel/helper-environment-visitor": ^7.22.5
+ "@babel/helper-module-imports": ^7.22.15
+ "@babel/helper-simple-access": ^7.22.5
+ "@babel/helper-split-export-declaration": ^7.22.6
+ "@babel/helper-validator-identifier": ^7.22.15
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 458021c74093e66179765fcc9d1c1cb694f7bdf98656f23486901d35636495c38aab4661547fac2142e13d887987d1ea30cc9fe42968376a51a99bcd207b4989
+ languageName: node
+ linkType: hard
+
+"@babel/helper-plugin-utils@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-plugin-utils@npm:7.22.5"
+ checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5
+ languageName: node
+ linkType: hard
+
+"@babel/helper-simple-access@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-simple-access@npm:7.22.5"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2
+ languageName: node
+ linkType: hard
+
+"@babel/helper-split-export-declaration@npm:^7.22.6":
+ version: 7.22.6
+ resolution: "@babel/helper-split-export-declaration@npm:7.22.6"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921
+ languageName: node
+ linkType: hard
+
+"@babel/helper-string-parser@npm:^7.18.10":
+ version: 7.18.10
+ resolution: "@babel/helper-string-parser@npm:7.18.10"
+ checksum: d554a4393365b624916b5c00a4cc21c990c6617e7f3fe30be7d9731f107f12c33229a7a3db9d829bfa110d2eb9f04790745d421640e3bd245bb412dc0ea123c1
+ languageName: node
+ linkType: hard
+
+"@babel/helper-string-parser@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-string-parser@npm:7.22.5"
+ checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-identifier@npm:^7.16.7":
+ version: 7.16.7
+ resolution: "@babel/helper-validator-identifier@npm:7.16.7"
+ checksum: dbb3db9d184343152520a209b5684f5e0ed416109cde82b428ca9c759c29b10c7450657785a8b5c5256aa74acc6da491c1f0cf6b784939f7931ef82982051b69
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-identifier@npm:^7.18.6":
+ version: 7.18.6
+ resolution: "@babel/helper-validator-identifier@npm:7.18.6"
+ checksum: e295254d616bbe26e48c196a198476ab4d42a73b90478c9842536cf910ead887f5af6b5c4df544d3052a25ccb3614866fa808dc1e3a5a4291acd444e243c0648
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-identifier@npm:^7.22.15, @babel/helper-validator-identifier@npm:^7.22.5":
+ version: 7.22.15
+ resolution: "@babel/helper-validator-identifier@npm:7.22.15"
+ checksum: eb0bee4bda664c0959924bc1ad5611eacfce806f46612202dd164fef1df8fef1a11682a1e7615288987100e9fb304982b6e2a4ff07ffe842ab8765b95ed1118c
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-option@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/helper-validator-option@npm:7.22.15"
+ checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d
+ languageName: node
+ linkType: hard
+
+"@babel/helpers@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/helpers@npm:7.22.15"
+ dependencies:
+ "@babel/template": ^7.22.15
+ "@babel/traverse": ^7.22.15
+ "@babel/types": ^7.22.15
+ checksum: 49f61a93cbae4df3328bda67af5db743fead659ae4242571226c3596b7df78546189cdf991fed1eca33b559de8abf396a90a001f474a1bab351418f07b7ae6ef
+ languageName: node
+ linkType: hard
+
+"@babel/highlight@npm:^7.16.7":
+ version: 7.17.12
+ resolution: "@babel/highlight@npm:7.17.12"
+ dependencies:
+ "@babel/helper-validator-identifier": ^7.16.7
+ chalk: ^2.0.0
+ js-tokens: ^4.0.0
+ checksum: 841a11aa353113bcce662b47085085a379251bf8b09054e37e1e082da1bf0d59355a556192a6b5e9ee98e8ee6f1f2831ac42510633c5e7043e3744dda2d6b9d6
+ languageName: node
+ linkType: hard
+
+"@babel/highlight@npm:^7.22.13":
+ version: 7.22.13
+ resolution: "@babel/highlight@npm:7.22.13"
+ dependencies:
+ "@babel/helper-validator-identifier": ^7.22.5
+ chalk: ^2.4.2
+ js-tokens: ^4.0.0
+ checksum: 7266d2bff8aa8fc78eb65b6e92a8211e12897a731126a282d2f9bb50d8fcaa4c1b02af2284f990ac7e3ab8d892d448a2cab8f5ed0ea8a90bce2c025b11ebe802
+ languageName: node
+ linkType: hard
+
+"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.22.16":
+ version: 7.22.16
+ resolution: "@babel/parser@npm:7.22.16"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 944c756b5bdeb07b9fec16ecef6b3c61aff9d4c4b924abadcf01afa1840a740b8e2357ae00482b5b37daad6d2bfd848c947f27ad65138d687b6fdc924bc59edd
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx-self@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/plugin-transform-react-jsx-self@npm:7.22.5"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 671eebfabd14a0c7d6ae805fff7e289dfdb7ba984bb100ea2ef6dad1d6a665ebbb09199ab2e64fca7bc78bd0fdc80ca897b07996cf215fafc32c67bc564309af
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx-source@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/plugin-transform-react-jsx-source@npm:7.22.5"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 4ca2bd62ca14f8bbdcda9139f3f799e1c1c1bae504b67c1ca9bca142c53d81926d1a2b811f66a625f20999b2d352131053d886601f1ba3c1e9378c104d884277
+ languageName: node
+ linkType: hard
+
+"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3":
+ version: 7.22.15
+ resolution: "@babel/runtime@npm:7.22.15"
+ dependencies:
+ regenerator-runtime: ^0.14.0
+ checksum: 793296df1e41599a935a3d77ec01eb6088410d3fd4dbe4e92f06c6b7bb2f8355024e6d78621a3a35f44e0e23b0b59107f23d585384df4f3123256a1e1492040e
+ languageName: node
+ linkType: hard
+
+"@babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.1":
+ version: 7.23.2
+ resolution: "@babel/runtime@npm:7.23.2"
+ dependencies:
+ regenerator-runtime: ^0.14.0
+ checksum: 6c4df4839ec75ca10175f636d6362f91df8a3137f86b38f6cd3a4c90668a0fe8e9281d320958f4fbd43b394988958585a17c3aab2a4ea6bf7316b22916a371fb
+ languageName: node
+ linkType: hard
+
+"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5":
+ version: 7.22.15
+ resolution: "@babel/template@npm:7.22.15"
+ dependencies:
+ "@babel/code-frame": ^7.22.13
+ "@babel/parser": ^7.22.15
+ "@babel/types": ^7.22.15
+ checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd
+ languageName: node
+ linkType: hard
+
+"@babel/traverse@npm:^7.22.15, @babel/traverse@npm:^7.22.17":
+ version: 7.22.17
+ resolution: "@babel/traverse@npm:7.22.17"
+ dependencies:
+ "@babel/code-frame": ^7.22.13
+ "@babel/generator": ^7.22.15
+ "@babel/helper-environment-visitor": ^7.22.5
+ "@babel/helper-function-name": ^7.22.5
+ "@babel/helper-hoist-variables": ^7.22.5
+ "@babel/helper-split-export-declaration": ^7.22.6
+ "@babel/parser": ^7.22.16
+ "@babel/types": ^7.22.17
+ debug: ^4.1.0
+ globals: ^11.1.0
+ checksum: 1153ca166a0a9b3fddf67f7f7c8c5b4f88aa2c2c00261ff2fc8424a63bc93250ed3fd08b04bd526ad19e797aeb6f22161120646a570cbfe5ff2a5d2f5d28af01
+ languageName: node
+ linkType: hard
+
+"@babel/types@npm:^7.16.7":
+ version: 7.18.4
+ resolution: "@babel/types@npm:7.18.4"
+ dependencies:
+ "@babel/helper-validator-identifier": ^7.16.7
+ to-fast-properties: ^2.0.0
+ checksum: 85df59beb99c1b95e9e41590442f2ffa1e5b1b558d025489db40c9f7c906bd03a17da26c3ec486e5800e80af27c42ca7eee9506d9212ab17766d2d68d30fbf52
+ languageName: node
+ linkType: hard
+
+"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.17, @babel/types@npm:^7.22.5":
+ version: 7.22.17
+ resolution: "@babel/types@npm:7.22.17"
+ dependencies:
+ "@babel/helper-string-parser": ^7.22.5
+ "@babel/helper-validator-identifier": ^7.22.15
+ to-fast-properties: ^2.0.0
+ checksum: 7382220f6eb2548f2c867a98916c3aa8a6063498d5372e5d21d8d184ba354033defb72aeba5858c1b2b42177058b896a34a7dcbae5eccd47fb0104721efa909d
+ languageName: node
+ linkType: hard
+
+"@babel/types@npm:^7.8.3":
+ version: 7.18.10
+ resolution: "@babel/types@npm:7.18.10"
+ dependencies:
+ "@babel/helper-string-parser": ^7.18.10
+ "@babel/helper-validator-identifier": ^7.18.6
+ to-fast-properties: ^2.0.0
+ checksum: 11632c9b106e54021937a6498138014ebc9ad6c327a07b2af3ba8700773945aba4055fd136431cbe3a500d0f363cbf9c68eb4d6d38229897c5de9d06e14c85e8
+ languageName: node
+ linkType: hard
+
+"@cspotcode/source-map-support@npm:^0.8.0":
+ version: 0.8.1
+ resolution: "@cspotcode/source-map-support@npm:0.8.1"
+ dependencies:
+ "@jridgewell/trace-mapping": 0.3.9
+ checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa
+ languageName: node
+ linkType: hard
+
+"@emoji-mart/data@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "@emoji-mart/data@npm:1.1.2"
+ checksum: 1216ac85e05bddfebaccd79710b70d5a4efd68ca6eef632c94ce9688c288de5f2ba2e98a694c024568e9eb2d1cd63e7a5e3c4a2979e10aa2d501b019ee2f1fda
+ languageName: node
+ linkType: hard
+
+"@emoji-mart/react@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "@emoji-mart/react@npm:1.1.1"
+ peerDependencies:
+ emoji-mart: ^5.2
+ react: ^16.8 || ^17 || ^18
+ checksum: def4dddaa01ce88c396510d84d1878b881fe0f9c484a836a50e3db784a91ab98edf94816cff503b4d1cab7b00400a01c87e32d19dee2d950f64ef9243f79101e
+ languageName: node
+ linkType: hard
+
+"@emotion/babel-plugin@npm:^11.11.0":
+ version: 11.11.0
+ resolution: "@emotion/babel-plugin@npm:11.11.0"
+ dependencies:
+ "@babel/helper-module-imports": ^7.16.7
+ "@babel/runtime": ^7.18.3
+ "@emotion/hash": ^0.9.1
+ "@emotion/memoize": ^0.8.1
+ "@emotion/serialize": ^1.1.2
+ babel-plugin-macros: ^3.1.0
+ convert-source-map: ^1.5.0
+ escape-string-regexp: ^4.0.0
+ find-root: ^1.1.0
+ source-map: ^0.5.7
+ stylis: 4.2.0
+ checksum: 6b363edccc10290f7a23242c06f88e451b5feb2ab94152b18bb8883033db5934fb0e421e2d67d09907c13837c21218a3ac28c51707778a54d6cd3706c0c2f3f9
+ languageName: node
+ linkType: hard
+
+"@emotion/cache@npm:^11.11.0":
+ version: 11.11.0
+ resolution: "@emotion/cache@npm:11.11.0"
+ dependencies:
+ "@emotion/memoize": ^0.8.1
+ "@emotion/sheet": ^1.2.2
+ "@emotion/utils": ^1.2.1
+ "@emotion/weak-memoize": ^0.3.1
+ stylis: 4.2.0
+ checksum: 8eb1dc22beaa20c21a2e04c284d5a2630a018a9d51fb190e52de348c8d27f4e8ca4bbab003d68b4f6cd9cc1c569ca747a997797e0f76d6c734a660dc29decf08
+ languageName: node
+ linkType: hard
+
+"@emotion/hash@npm:^0.9.1":
+ version: 0.9.1
+ resolution: "@emotion/hash@npm:0.9.1"
+ checksum: 716e17e48bf9047bf9383982c071de49f2615310fb4e986738931776f5a823bc1f29c84501abe0d3df91a3803c80122d24e28b57351bca9e01356ebb33d89876
+ languageName: node
+ linkType: hard
+
+"@emotion/is-prop-valid@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "@emotion/is-prop-valid@npm:1.2.1"
+ dependencies:
+ "@emotion/memoize": ^0.8.1
+ checksum: 8f42dc573a3fad79b021479becb639b8fe3b60bdd1081a775d32388bca418ee53074c7602a4c845c5f75fa6831eb1cbdc4d208cc0299f57014ed3a02abcad16a
+ languageName: node
+ linkType: hard
+
+"@emotion/memoize@npm:^0.8.1":
+ version: 0.8.1
+ resolution: "@emotion/memoize@npm:0.8.1"
+ checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0
+ languageName: node
+ linkType: hard
+
+"@emotion/react@npm:^11.11.1":
+ version: 11.11.1
+ resolution: "@emotion/react@npm:11.11.1"
+ dependencies:
+ "@babel/runtime": ^7.18.3
+ "@emotion/babel-plugin": ^11.11.0
+ "@emotion/cache": ^11.11.0
+ "@emotion/serialize": ^1.1.2
+ "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1
+ "@emotion/utils": ^1.2.1
+ "@emotion/weak-memoize": ^0.3.1
+ hoist-non-react-statics: ^3.3.1
+ peerDependencies:
+ react: ">=16.8.0"
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: aec3c36650f5f0d3d4445ff44d73dd88712b1609645b6af3e6d08049cfbc51f1785fe13dea1a1d4ab1b0800d68f2339ab11e459687180362b1ef98863155aae5
+ languageName: node
+ linkType: hard
+
+"@emotion/serialize@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "@emotion/serialize@npm:1.1.2"
+ dependencies:
+ "@emotion/hash": ^0.9.1
+ "@emotion/memoize": ^0.8.1
+ "@emotion/unitless": ^0.8.1
+ "@emotion/utils": ^1.2.1
+ csstype: ^3.0.2
+ checksum: 413c352e657f1b5e27ea6437b3ef7dcc3860669b7ae17fd5c18bfbd44e033af1acc56b64d252284a813ca4f3b3e1b0841c42d3fb08e02d2df56fd3cd63d72986
+ languageName: node
+ linkType: hard
+
+"@emotion/sheet@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "@emotion/sheet@npm:1.2.2"
+ checksum: d973273c9c15f1c291ca2269728bf044bd3e92a67bca87943fa9ec6c3cd2b034f9a6bfe95ef1b5d983351d128c75b547b43ff196a00a3875f7e1d269793cecfe
+ languageName: node
+ linkType: hard
+
+"@emotion/styled@npm:^11.11.0":
+ version: 11.11.0
+ resolution: "@emotion/styled@npm:11.11.0"
+ dependencies:
+ "@babel/runtime": ^7.18.3
+ "@emotion/babel-plugin": ^11.11.0
+ "@emotion/is-prop-valid": ^1.2.1
+ "@emotion/serialize": ^1.1.2
+ "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1
+ "@emotion/utils": ^1.2.1
+ peerDependencies:
+ "@emotion/react": ^11.0.0-rc.0
+ react: ">=16.8.0"
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 904f641aad3892c65d7d6c0808b036dae1e6d6dad4861c1c7dc0baa59977047c6cad220691206eba7b4059f1a1c6e6c1ef4ebb8c829089e280fa0f2164a01e6b
+ languageName: node
+ linkType: hard
+
+"@emotion/unitless@npm:^0.8.1":
+ version: 0.8.1
+ resolution: "@emotion/unitless@npm:0.8.1"
+ checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88
+ languageName: node
+ linkType: hard
+
+"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1"
+ peerDependencies:
+ react: ">=16.8.0"
+ checksum: 700b6e5bbb37a9231f203bb3af11295eed01d73b2293abece0bc2a2237015e944d7b5114d4887ad9a79776504aa51ed2a8b0ddbc117c54495dd01a6b22f93786
+ languageName: node
+ linkType: hard
+
+"@emotion/utils@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "@emotion/utils@npm:1.2.1"
+ checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73
+ languageName: node
+ linkType: hard
+
+"@emotion/weak-memoize@npm:^0.3.1":
+ version: 0.3.1
+ resolution: "@emotion/weak-memoize@npm:0.3.1"
+ checksum: b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-arm64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/android-arm64@npm:0.18.20"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-arm@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/android-arm@npm:0.18.20"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-x64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/android-x64@npm:0.18.20"
+ conditions: os=android & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/darwin-arm64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/darwin-arm64@npm:0.18.20"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/darwin-x64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/darwin-x64@npm:0.18.20"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/freebsd-arm64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/freebsd-arm64@npm:0.18.20"
+ conditions: os=freebsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/freebsd-x64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/freebsd-x64@npm:0.18.20"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-arm64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/linux-arm64@npm:0.18.20"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-arm@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/linux-arm@npm:0.18.20"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-ia32@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/linux-ia32@npm:0.18.20"
+ conditions: os=linux & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-loong64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/linux-loong64@npm:0.18.20"
+ conditions: os=linux & cpu=loong64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-mips64el@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/linux-mips64el@npm:0.18.20"
+ conditions: os=linux & cpu=mips64el
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-ppc64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/linux-ppc64@npm:0.18.20"
+ conditions: os=linux & cpu=ppc64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-riscv64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/linux-riscv64@npm:0.18.20"
+ conditions: os=linux & cpu=riscv64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-s390x@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/linux-s390x@npm:0.18.20"
+ conditions: os=linux & cpu=s390x
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-x64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/linux-x64@npm:0.18.20"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/netbsd-x64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/netbsd-x64@npm:0.18.20"
+ conditions: os=netbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/openbsd-x64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/openbsd-x64@npm:0.18.20"
+ conditions: os=openbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/sunos-x64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/sunos-x64@npm:0.18.20"
+ conditions: os=sunos & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-arm64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/win32-arm64@npm:0.18.20"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-ia32@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/win32-ia32@npm:0.18.20"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-x64@npm:0.18.20":
+ version: 0.18.20
+ resolution: "@esbuild/win32-x64@npm:0.18.20"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
+ version: 4.4.0
+ resolution: "@eslint-community/eslint-utils@npm:4.4.0"
+ dependencies:
+ eslint-visitor-keys: ^3.3.0
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+ checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22
+ languageName: node
+ linkType: hard
+
+"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1":
+ version: 4.8.1
+ resolution: "@eslint-community/regexpp@npm:4.8.1"
+ checksum: 82d62c845ef42b810f268cfdc84d803a2da01735fb52e902fd34bdc09f92464a094fd8e4802839874b000b2f73f67c972859e813ba705233515d3e954f234bf2
+ languageName: node
+ linkType: hard
+
+"@eslint/eslintrc@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "@eslint/eslintrc@npm:2.1.2"
+ dependencies:
+ ajv: ^6.12.4
+ debug: ^4.3.2
+ espree: ^9.6.0
+ globals: ^13.19.0
+ ignore: ^5.2.0
+ import-fresh: ^3.2.1
+ js-yaml: ^4.1.0
+ minimatch: ^3.1.2
+ strip-json-comments: ^3.1.1
+ checksum: bc742a1e3b361f06fedb4afb6bf32cbd27171292ef7924f61c62f2aed73048367bcc7ac68f98c06d4245cd3fabc43270f844e3c1699936d4734b3ac5398814a7
+ languageName: node
+ linkType: hard
+
+"@eslint/js@npm:8.49.0":
+ version: 8.49.0
+ resolution: "@eslint/js@npm:8.49.0"
+ checksum: a6601807c8aeeefe866926ad92ed98007c034a735af20ff709009e39ad1337474243d47908500a3bde04e37bfba16bcf1d3452417f962e1345bc8756edd6b830
+ languageName: node
+ linkType: hard
+
+"@floating-ui/core@npm:^1.4.1":
+ version: 1.4.1
+ resolution: "@floating-ui/core@npm:1.4.1"
+ dependencies:
+ "@floating-ui/utils": ^0.1.1
+ checksum: be4ab864fe17eeba5e205bd554c264b9a4895a57c573661bbf638357fa3108677fed7ba3269ec15b4da90e29274c9b626d5a15414e8d1fe691e210d02a03695c
+ languageName: node
+ linkType: hard
+
+"@floating-ui/dom@npm:^1.5.1":
+ version: 1.5.2
+ resolution: "@floating-ui/dom@npm:1.5.2"
+ dependencies:
+ "@floating-ui/core": ^1.4.1
+ "@floating-ui/utils": ^0.1.1
+ checksum: 3c71eed50bb22cec8f1f31750ad3d42b3b7b4b29dc6e4351100ff05a62445a5404abb71c733320f8376a8c5e78852e1cfba1b81e22bfc4ca0728f50ca8998dc5
+ languageName: node
+ linkType: hard
+
+"@floating-ui/react-dom@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "@floating-ui/react-dom@npm:2.0.2"
+ dependencies:
+ "@floating-ui/dom": ^1.5.1
+ peerDependencies:
+ react: ">=16.8.0"
+ react-dom: ">=16.8.0"
+ checksum: 4797e1f7a19c1e531ed0d578ccdcbe58970743e5a480ba30424857fc953063f36d481f8c5d69248a8f1d521b739e94bf5e1ffb35506400dea3d914f166ed2f7f
+ languageName: node
+ linkType: hard
+
+"@floating-ui/utils@npm:^0.1.1":
+ version: 0.1.2
+ resolution: "@floating-ui/utils@npm:0.1.2"
+ checksum: 3e29fd3c69be2d27bb95ebe54129a6a29ea2d8112b2cbb568168cf2f1e787e6ed6305d743598469476bec28122b7ea3ea4b54a1a2d59d30dc4b4307391472299
+ languageName: node
+ linkType: hard
+
+"@gar/promisify@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "@gar/promisify@npm:1.1.3"
+ checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1
+ languageName: node
+ linkType: hard
+
+"@himenon/openapi-typescript-code-generator@npm:^0.27.1":
+ version: 0.27.1
+ resolution: "@himenon/openapi-typescript-code-generator@npm:0.27.1"
+ dependencies:
+ "@himenon/path-oriented-data-structure": 0.2.1
+ "@types/json-schema": 7.0.11
+ ajv: 8.11.2
+ dot-prop: 6.0.1
+ js-yaml: 4.1.0
+ checksum: ff3ce61fcf1c0158bcccbc19e4936cbcf7c9a612b1edac3950028ec2d6f8d33f8f754b93e0daed64cf231035117c2a853e9d5b9bc15db65beeca63eb9a07ac81
+ languageName: node
+ linkType: hard
+
+"@himenon/path-oriented-data-structure@npm:0.2.1":
+ version: 0.2.1
+ resolution: "@himenon/path-oriented-data-structure@npm:0.2.1"
+ checksum: aec63aa8946f657f1b30fb18cf9daec5ed68e9ad1bdaf730a7382c2c4129adf1fc9246fdc295ff885aec51c505a3d696346ac60e54347f49fdc49f0015c71b87
+ languageName: node
+ linkType: hard
+
+"@hookform/resolvers@npm:^3.3.1":
+ version: 3.3.1
+ resolution: "@hookform/resolvers@npm:3.3.1"
+ peerDependencies:
+ react-hook-form: ^7.0.0
+ checksum: 1ddc250a8d6769fb11b03110b586677b03463276dda1cdfd0225ab94f46d422868f74b01bef85f785010cc3d836f0669d6b6c0ed752cae532d2badf3537b1e72
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/config-array@npm:^0.11.11":
+ version: 0.11.11
+ resolution: "@humanwhocodes/config-array@npm:0.11.11"
+ dependencies:
+ "@humanwhocodes/object-schema": ^1.2.1
+ debug: ^4.1.1
+ minimatch: ^3.0.5
+ checksum: db84507375ab77b8ffdd24f498a5b49ad6b64391d30dd2ac56885501d03964d29637e05b1ed5aefa09d57ac667e28028bc22d2da872bfcd619652fbdb5f4ca19
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/module-importer@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@humanwhocodes/module-importer@npm:1.0.1"
+ checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/object-schema@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "@humanwhocodes/object-schema@npm:1.2.1"
+ checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1
+ languageName: node
+ linkType: hard
+
+"@jest/schemas@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/schemas@npm:29.6.3"
+ dependencies:
+ "@sinclair/typebox": ^0.27.8
+ checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93
+ languageName: node
+ linkType: hard
+
+"@jridgewell/gen-mapping@npm:^0.3.0":
+ version: 0.3.1
+ resolution: "@jridgewell/gen-mapping@npm:0.3.1"
+ dependencies:
+ "@jridgewell/set-array": ^1.0.0
+ "@jridgewell/sourcemap-codec": ^1.4.10
+ "@jridgewell/trace-mapping": ^0.3.9
+ checksum: e9e7bb3335dea9e60872089761d4e8e089597360cdb1af90370e9d53b7d67232c1e0a3ab65fbfef4fc785745193fbc56bff9f3a6cab6c6ce3f15e12b4191f86b
+ languageName: node
+ linkType: hard
+
+"@jridgewell/gen-mapping@npm:^0.3.2":
+ version: 0.3.3
+ resolution: "@jridgewell/gen-mapping@npm:0.3.3"
+ dependencies:
+ "@jridgewell/set-array": ^1.0.1
+ "@jridgewell/sourcemap-codec": ^1.4.10
+ "@jridgewell/trace-mapping": ^0.3.9
+ checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab
+ languageName: node
+ linkType: hard
+
+"@jridgewell/resolve-uri@npm:^3.0.3":
+ version: 3.0.7
+ resolution: "@jridgewell/resolve-uri@npm:3.0.7"
+ checksum: 94f454f4cef8f0acaad85745fd3ca6cd0d62ef731cf9f952ecb89b8b2ce5e20998cd52be31311cedc5fa5b28b1708a15f3ad9df0fe1447ee4f42959b036c4b5b
+ languageName: node
+ linkType: hard
+
+"@jridgewell/resolve-uri@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "@jridgewell/resolve-uri@npm:3.1.1"
+ checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653
+ languageName: node
+ linkType: hard
+
+"@jridgewell/set-array@npm:^1.0.0":
+ version: 1.1.1
+ resolution: "@jridgewell/set-array@npm:1.1.1"
+ checksum: cc5d91e0381c347e3edee4ca90b3c292df9e6e55f29acbe0dd97de8651b4730e9ab761406fd572effa79972a0edc55647b627f8c72315e276d959508853d9bf2
+ languageName: node
+ linkType: hard
+
+"@jridgewell/set-array@npm:^1.0.1":
+ version: 1.1.2
+ resolution: "@jridgewell/set-array@npm:1.1.2"
+ checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e
+ languageName: node
+ linkType: hard
+
+"@jridgewell/sourcemap-codec@npm:^1.4.10":
+ version: 1.4.13
+ resolution: "@jridgewell/sourcemap-codec@npm:1.4.13"
+ checksum: f14449096f60a5f921262322fef65ce0bbbfb778080b3b20212080bcefdeba621c43a58c27065bd536ecb4cc767b18eb9c45f15b6b98a4970139572b60603a1c
+ languageName: node
+ linkType: hard
+
+"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15":
+ version: 1.4.15
+ resolution: "@jridgewell/sourcemap-codec@npm:1.4.15"
+ checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:0.3.9":
+ version: 0.3.9
+ resolution: "@jridgewell/trace-mapping@npm:0.3.9"
+ dependencies:
+ "@jridgewell/resolve-uri": ^3.0.3
+ "@jridgewell/sourcemap-codec": ^1.4.10
+ checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.17":
+ version: 0.3.19
+ resolution: "@jridgewell/trace-mapping@npm:0.3.19"
+ dependencies:
+ "@jridgewell/resolve-uri": ^3.1.0
+ "@jridgewell/sourcemap-codec": ^1.4.14
+ checksum: 956a6f0f6fec060fb48c6bf1f5ec2064e13cd38c8be3873877d4b92b4a27ba58289a34071752671262a3e3c202abcc3fa2aac64d8447b4b0fa1ba3c9047f1c20
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.9":
+ version: 0.3.13
+ resolution: "@jridgewell/trace-mapping@npm:0.3.13"
+ dependencies:
+ "@jridgewell/resolve-uri": ^3.0.3
+ "@jridgewell/sourcemap-codec": ^1.4.10
+ checksum: e38254e830472248ca10a6ed1ae75af5e8514f0680245a5e7b53bc3c030fd8691d4d3115d80595b45d3badead68269769ed47ecbbdd67db1343a11f05700e75a
+ languageName: node
+ linkType: hard
+
+"@mui/base@npm:5.0.0-beta.20":
+ version: 5.0.0-beta.20
+ resolution: "@mui/base@npm:5.0.0-beta.20"
+ dependencies:
+ "@babel/runtime": ^7.23.1
+ "@floating-ui/react-dom": ^2.0.2
+ "@mui/types": ^7.2.6
+ "@mui/utils": ^5.14.13
+ "@popperjs/core": ^2.11.8
+ clsx: ^2.0.0
+ prop-types: ^15.8.1
+ peerDependencies:
+ "@types/react": ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ react-dom: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: a9a27b15b0723dd91b4bb87ad3a76c4101535788387ee75bbf0798205bfa7e6343f5c6600b7beb112837f2e9ddaec714cead17d836377002429843739a4f277f
+ languageName: node
+ linkType: hard
+
+"@mui/core-downloads-tracker@npm:^5.14.14":
+ version: 5.14.14
+ resolution: "@mui/core-downloads-tracker@npm:5.14.14"
+ checksum: 93a1f16141e3ef4ef63985079dabf6b6196b8f7581f2d71338fca5c00e5834bcecb65ee0ad6a20fc61bbdce33a55b3f02d18c37e1c9937106d65d67b6fa25acd
+ languageName: node
+ linkType: hard
+
+"@mui/joy@npm:^5.0.0-beta.11":
+ version: 5.0.0-beta.11
+ resolution: "@mui/joy@npm:5.0.0-beta.11"
+ dependencies:
+ "@babel/runtime": ^7.23.1
+ "@mui/base": 5.0.0-beta.20
+ "@mui/core-downloads-tracker": ^5.14.14
+ "@mui/system": ^5.14.14
+ "@mui/types": ^7.2.6
+ "@mui/utils": ^5.14.13
+ clsx: ^2.0.0
+ prop-types: ^15.8.1
+ peerDependencies:
+ "@emotion/react": ^11.5.0
+ "@emotion/styled": ^11.3.0
+ "@types/react": ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ react-dom: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@emotion/react":
+ optional: true
+ "@emotion/styled":
+ optional: true
+ "@types/react":
+ optional: true
+ checksum: c4b24b1a11432b8f59d93ff7fcdf5977d9ad3419b91d0c8f2ddc8e2a66f1f4ae4eef615bcf2be04a4e952ea651b7c8f91be0536f7cc0cbec50a997c9448f934f
+ languageName: node
+ linkType: hard
+
+"@mui/private-theming@npm:^5.14.14":
+ version: 5.14.14
+ resolution: "@mui/private-theming@npm:5.14.14"
+ dependencies:
+ "@babel/runtime": ^7.23.1
+ "@mui/utils": ^5.14.13
+ prop-types: ^15.8.1
+ peerDependencies:
+ "@types/react": ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: c6ed9b757f908c3d3e6d210e11afab35d67ba9d63278546568ae6b811a5f6703150a099edccc729933be17dd33c518bab1318b3cccc5c0c96bf6af00ecdbdb1d
+ languageName: node
+ linkType: hard
+
+"@mui/styled-engine@npm:^5.14.13":
+ version: 5.14.14
+ resolution: "@mui/styled-engine@npm:5.14.14"
+ dependencies:
+ "@babel/runtime": ^7.23.1
+ "@emotion/cache": ^11.11.0
+ csstype: ^3.1.2
+ prop-types: ^15.8.1
+ peerDependencies:
+ "@emotion/react": ^11.4.1
+ "@emotion/styled": ^11.3.0
+ react: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@emotion/react":
+ optional: true
+ "@emotion/styled":
+ optional: true
+ checksum: fc5694c92546a1b2025965219865971e651e37cda5cf2e2ab8a5e4653a7d2a36ae861e93bcd095855348a66e78f3a4ac5cf5d9eff0b87a48506f3d485ae2d42d
+ languageName: node
+ linkType: hard
+
+"@mui/system@npm:^5.14.14":
+ version: 5.14.14
+ resolution: "@mui/system@npm:5.14.14"
+ dependencies:
+ "@babel/runtime": ^7.23.1
+ "@mui/private-theming": ^5.14.14
+ "@mui/styled-engine": ^5.14.13
+ "@mui/types": ^7.2.6
+ "@mui/utils": ^5.14.13
+ clsx: ^2.0.0
+ csstype: ^3.1.2
+ prop-types: ^15.8.1
+ peerDependencies:
+ "@emotion/react": ^11.5.0
+ "@emotion/styled": ^11.3.0
+ "@types/react": ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@emotion/react":
+ optional: true
+ "@emotion/styled":
+ optional: true
+ "@types/react":
+ optional: true
+ checksum: e5f41d52bec630bd1549ad5c40cb8ced2beee6324a326ec587aab4716b5ffc2fc88327d148b4edb200ba0f2b12611af2207b54bd4aa745abb7fc1e9a653a9240
+ languageName: node
+ linkType: hard
+
+"@mui/types@npm:^7.2.6":
+ version: 7.2.6
+ resolution: "@mui/types@npm:7.2.6"
+ peerDependencies:
+ "@types/react": ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: eb92f9c2fa5df048bcf182a611131bee2799ce1de64acfca12855f349d0b69f5f92c953b7e6c4e341e1df48f0e86f1329ed0251be4835ed194f53342827bd576
+ languageName: node
+ linkType: hard
+
+"@mui/utils@npm:^5.14.13":
+ version: 5.14.14
+ resolution: "@mui/utils@npm:5.14.14"
+ dependencies:
+ "@babel/runtime": ^7.23.1
+ "@types/prop-types": ^15.7.7
+ prop-types: ^15.8.1
+ react-is: ^18.2.0
+ peerDependencies:
+ "@types/react": ^17.0.0 || ^18.0.0
+ react: ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: b13afa9fd7503d9e22d68ab9d6bcaf38bcf02b8c18a8b175b5c0bf082a386b34a631abe4b22fd86f2cc55edf0173fec80953a4ebe810117167fd38d32c1d3d80
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.scandir@npm:2.1.5":
+ version: 2.1.5
+ resolution: "@nodelib/fs.scandir@npm:2.1.5"
+ dependencies:
+ "@nodelib/fs.stat": 2.0.5
+ run-parallel: ^1.1.9
+ checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
+ version: 2.0.5
+ resolution: "@nodelib/fs.stat@npm:2.0.5"
+ checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8":
+ version: 1.2.8
+ resolution: "@nodelib/fs.walk@npm:1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir": 2.1.5
+ fastq: ^1.6.0
+ checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53
+ languageName: node
+ linkType: hard
+
+"@npmcli/fs@npm:^2.1.0":
+ version: 2.1.1
+ resolution: "@npmcli/fs@npm:2.1.1"
+ dependencies:
+ "@gar/promisify": ^1.1.3
+ semver: ^7.3.5
+ checksum: 4944a0545d38d3e6e29780eeb3cd4be6059c1e9627509d2c9ced635c53b852d28b37cdc615a2adf815b51ab8673adb6507e370401a20a7e90c8a6dc4fac02389
+ languageName: node
+ linkType: hard
+
+"@npmcli/move-file@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@npmcli/move-file@npm:2.0.0"
+ dependencies:
+ mkdirp: ^1.0.4
+ rimraf: ^3.0.2
+ checksum: 1388777b507b0c592d53f41b9d182e1a8de7763bc625fc07999b8edbc22325f074e5b3ec90af79c89d6987fdb2325bc66d59f483258543c14a43661621f841b0
+ languageName: node
+ linkType: hard
+
+"@popperjs/core@npm:^2.11.8":
+ version: 2.11.8
+ resolution: "@popperjs/core@npm:2.11.8"
+ checksum: e5c69fdebf52a4012f6a1f14817ca8e9599cb1be73dd1387e1785e2ed5e5f0862ff817f420a87c7fc532add1f88a12e25aeb010ffcbdc98eace3d55ce2139cf0
+ languageName: node
+ linkType: hard
+
+"@react-stately/toast@npm:^3.0.0-beta.1":
+ version: 3.0.0-nightly.4194
+ resolution: "@react-stately/toast@npm:3.0.0-nightly.4194"
+ dependencies:
+ "@swc/helpers": ^0.5.0
+ use-sync-external-store: ^1.2.0
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
+ checksum: f4287dfa8be3e7e64701571e8044dc258875ce1c5cc65af4ba7721350ad860962fa9b3423c9c8f78334682174d02f04c7a380ebad326cbcea4dfe2c7ea63b6cb
+ languageName: node
+ linkType: hard
+
+"@remix-run/router@npm:1.8.0":
+ version: 1.8.0
+ resolution: "@remix-run/router@npm:1.8.0"
+ checksum: f754f02d3b4fc86791b88acf16065000609e2324b9436027844a76831c7107c0994067cb83abdd6093c282bd518a5c89b5e02aead585782978586e3a04534428
+ languageName: node
+ linkType: hard
+
+"@sinclair/typebox@npm:^0.27.8":
+ version: 0.27.8
+ resolution: "@sinclair/typebox@npm:0.27.8"
+ checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1
+ languageName: node
+ linkType: hard
+
+"@swc/helpers@npm:^0.5.0":
+ version: 0.5.2
+ resolution: "@swc/helpers@npm:0.5.2"
+ dependencies:
+ tslib: ^2.4.0
+ checksum: 51d7e3d8bd56818c49d6bfbd715f0dbeedc13cf723af41166e45c03e37f109336bbcb57a1f2020f4015957721aeb21e1a7fff281233d797ff7d3dd1f447fa258
+ languageName: node
+ linkType: hard
+
+"@tootallnate/once@npm:2":
+ version: 2.0.0
+ resolution: "@tootallnate/once@npm:2.0.0"
+ checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8
+ languageName: node
+ linkType: hard
+
+"@tsconfig/node10@npm:^1.0.7":
+ version: 1.0.9
+ resolution: "@tsconfig/node10@npm:1.0.9"
+ checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df
+ languageName: node
+ linkType: hard
+
+"@tsconfig/node12@npm:^1.0.7":
+ version: 1.0.11
+ resolution: "@tsconfig/node12@npm:1.0.11"
+ checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a
+ languageName: node
+ linkType: hard
+
+"@tsconfig/node14@npm:^1.0.0":
+ version: 1.0.3
+ resolution: "@tsconfig/node14@npm:1.0.3"
+ checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d
+ languageName: node
+ linkType: hard
+
+"@tsconfig/node16@npm:^1.0.2":
+ version: 1.0.3
+ resolution: "@tsconfig/node16@npm:1.0.3"
+ checksum: 3a8b657dd047495b7ad23437d6afd20297ce90380ff0bdee93fc7d39a900dbd8d9e26e53ff6b465e7967ce2adf0b218782590ce9013285121e6a5928fbd6819f
+ languageName: node
+ linkType: hard
+
+"@types/chai-subset@npm:^1.3.3":
+ version: 1.3.3
+ resolution: "@types/chai-subset@npm:1.3.3"
+ dependencies:
+ "@types/chai": "*"
+ checksum: 4481da7345022995f5a105e6683744f7203d2c3d19cfe88d8e17274d045722948abf55e0adfd97709e0f043dade37a4d4e98cd4c660e2e8a14f23e6ecf79418f
+ languageName: node
+ linkType: hard
+
+"@types/chai@npm:*":
+ version: 4.3.1
+ resolution: "@types/chai@npm:4.3.1"
+ checksum: 2ee246b76c469cd620a7a1876a73bc597074361b67d547b4bd96a0c1adb43597ede2d8589ab626192e14349d83cbb646cc11e2c179eeeb43ff11596de94d82c4
+ languageName: node
+ linkType: hard
+
+"@types/chai@npm:^4.3.5":
+ version: 4.3.6
+ resolution: "@types/chai@npm:4.3.6"
+ checksum: 32a6c18bf53fb3dbd89d1bfcadb1c6fd45cc0007c34e436393cc37a0a5a556f9e6a21d1e8dd71674c40cc36589d2f30bf4d9369d7787021e54d6e997b0d7300a
+ languageName: node
+ linkType: hard
+
+"@types/d3-format@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "@types/d3-format@npm:3.0.1"
+ checksum: 6819fae7e7c3fce1e44cd56e9b6d8ea5508f708cb7a42793edf82ff914b120bf6cddc35208b1b33ec82615ab82b843c284709f9cea5c3fe1ea5f012106b3d32c
+ languageName: node
+ linkType: hard
+
+"@types/debug@npm:^4.1.8":
+ version: 4.1.8
+ resolution: "@types/debug@npm:4.1.8"
+ dependencies:
+ "@types/ms": "*"
+ checksum: a9a9bb40a199e9724aa944e139a7659173a9b274798ea7efbc277cb084bc37d32fc4c00877c3496fac4fed70a23243d284adb75c00b5fdabb38a22154d18e5df
+ languageName: node
+ linkType: hard
+
+"@types/history@npm:^4.7.11":
+ version: 4.7.11
+ resolution: "@types/history@npm:4.7.11"
+ checksum: c92e2ba407dcab0581a9afdf98f533aa41b61a71133420a6d92b1ca9839f741ab1f9395b17454ba5b88cb86020b70b22d74a1950ccfbdfd9beeaa5459fdc3464
+ languageName: node
+ linkType: hard
+
+"@types/json-schema@npm:7.0.11":
+ version: 7.0.11
+ resolution: "@types/json-schema@npm:7.0.11"
+ checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d
+ languageName: node
+ linkType: hard
+
+"@types/json-schema@npm:^7.0.12":
+ version: 7.0.12
+ resolution: "@types/json-schema@npm:7.0.12"
+ checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293
+ languageName: node
+ linkType: hard
+
+"@types/json5@npm:^0.0.29":
+ version: 0.0.29
+ resolution: "@types/json5@npm:0.0.29"
+ checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac
+ languageName: node
+ linkType: hard
+
+"@types/ms@npm:*":
+ version: 0.7.31
+ resolution: "@types/ms@npm:0.7.31"
+ checksum: daadd354aedde024cce6f5aa873fefe7b71b22cd0e28632a69e8b677aeb48ae8caa1c60e5919bb781df040d116b01cb4316335167a3fc0ef6a63fa3614c0f6da
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:*":
+ version: 18.0.1
+ resolution: "@types/node@npm:18.0.1"
+ checksum: be14b251c54cc2b4ca78ac6eadf2fe5e831e487f2e17848f21d576295945b538271dcc674d0bba582b3f8d95b84f6826e99b6ba4710c76f165a8bdd4d4f0618e
+ languageName: node
+ linkType: hard
+
+"@types/parse-json@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "@types/parse-json@npm:4.0.0"
+ checksum: fd6bce2b674b6efc3db4c7c3d336bd70c90838e8439de639b909ce22f3720d21344f52427f1d9e57b265fcb7f6c018699b99e5e0c208a1a4823014269a6bf35b
+ languageName: node
+ linkType: hard
+
+"@types/prop-types@npm:*":
+ version: 15.7.5
+ resolution: "@types/prop-types@npm:15.7.5"
+ checksum: 5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980
+ languageName: node
+ linkType: hard
+
+"@types/prop-types@npm:^15.7.7":
+ version: 15.7.9
+ resolution: "@types/prop-types@npm:15.7.9"
+ checksum: c7591d3ff7593e243908a07e1d3e2bb6e8879008af5800d8378115a90d0fdf669a1cae72a6d7f69e59c4fa7bb4c8ed61f6ebc1c520fe110c6f2b03ac02414072
+ languageName: node
+ linkType: hard
+
+"@types/react-dom@npm:^18.2.7":
+ version: 18.2.7
+ resolution: "@types/react-dom@npm:18.2.7"
+ dependencies:
+ "@types/react": "*"
+ checksum: e02ea908289a7ad26053308248d2b87f6aeafd73d0e2de2a3d435947bcea0422599016ffd1c3e38ff36c42f5e1c87c7417f05b0a157e48649e4a02f21727d54f
+ languageName: node
+ linkType: hard
+
+"@types/react-router-dom@npm:^5.3.3":
+ version: 5.3.3
+ resolution: "@types/react-router-dom@npm:5.3.3"
+ dependencies:
+ "@types/history": ^4.7.11
+ "@types/react": "*"
+ "@types/react-router": "*"
+ checksum: 28c4ea48909803c414bf5a08502acbb8ba414669b4b43bb51297c05fe5addc4df0b8fd00e0a9d1e3535ec4073ef38aaafac2c4a2b95b787167d113bc059beff3
+ languageName: node
+ linkType: hard
+
+"@types/react-router@npm:*":
+ version: 5.1.18
+ resolution: "@types/react-router@npm:5.1.18"
+ dependencies:
+ "@types/history": ^4.7.11
+ "@types/react": "*"
+ checksum: f08b37ee822f9f9ff904ffd0778fe2bb7c717ed3ee311610382ee024d02a35169bd3301ecde863cac21aae8fdee919501e8ea22bad0260c02c10cfbdba5c71be
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:*":
+ version: 18.0.14
+ resolution: "@types/react@npm:18.0.14"
+ dependencies:
+ "@types/prop-types": "*"
+ "@types/scheduler": "*"
+ csstype: ^3.0.2
+ checksum: 608eb57a383eedc54c79949673e5e8314f6b0c61542bff58721c8c47a18c23e2832e77c656050c2c2c004b62cf25582136c7c56fe1b6263a285c065fae31dbcf
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:^18.2.21":
+ version: 18.2.21
+ resolution: "@types/react@npm:18.2.21"
+ dependencies:
+ "@types/prop-types": "*"
+ "@types/scheduler": "*"
+ csstype: ^3.0.2
+ checksum: ffed203bfe7aad772b8286f7953305c9181ac3a8f27d3f5400fbbc2a8e27ca8e5bbff818ee014f39ca0d19d2b3bb154e5bdbec7e232c6f80b59069375aa78349
+ languageName: node
+ linkType: hard
+
+"@types/scheduler@npm:*":
+ version: 0.16.2
+ resolution: "@types/scheduler@npm:0.16.2"
+ checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc
+ languageName: node
+ linkType: hard
+
+"@types/semver@npm:^7.5.0":
+ version: 7.5.1
+ resolution: "@types/semver@npm:7.5.1"
+ checksum: 2fffe938c7ac168711f245a16e1856a3578d77161ca17e29a05c3e02c7be3e9c5beefa29a3350f6c1bd982fb70aa28cc52e4845eb7d36246bcdc0377170d584d
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/eslint-plugin@npm:^6.7.0":
+ version: 6.7.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:6.7.0"
+ dependencies:
+ "@eslint-community/regexpp": ^4.5.1
+ "@typescript-eslint/scope-manager": 6.7.0
+ "@typescript-eslint/type-utils": 6.7.0
+ "@typescript-eslint/utils": 6.7.0
+ "@typescript-eslint/visitor-keys": 6.7.0
+ debug: ^4.3.4
+ graphemer: ^1.4.0
+ ignore: ^5.2.4
+ natural-compare: ^1.4.0
+ semver: ^7.5.4
+ ts-api-utils: ^1.0.1
+ peerDependencies:
+ "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha
+ eslint: ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 48393749c5c1f67acf71795551c6065586198530006189c48636e32caea4d1285624c16c047164f9d29055e26c4f90fca964c5a2b5c0e9b6d9ed87acd74ca0d6
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/parser@npm:^6.7.0":
+ version: 6.7.0
+ resolution: "@typescript-eslint/parser@npm:6.7.0"
+ dependencies:
+ "@typescript-eslint/scope-manager": 6.7.0
+ "@typescript-eslint/types": 6.7.0
+ "@typescript-eslint/typescript-estree": 6.7.0
+ "@typescript-eslint/visitor-keys": 6.7.0
+ debug: ^4.3.4
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 21d52a49abf78a3b037261c01f1f4d2d550919ddc906ebb058db3410a706457ac3a7d082716328ce98a6741d4e77c945b71ff386d9047c5a2e5beef23e14ab45
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/scope-manager@npm:6.7.0":
+ version: 6.7.0
+ resolution: "@typescript-eslint/scope-manager@npm:6.7.0"
+ dependencies:
+ "@typescript-eslint/types": 6.7.0
+ "@typescript-eslint/visitor-keys": 6.7.0
+ checksum: f6ea33c647783d53d98938bd5d3fc94c9a5ebc83bd64cf379215863921dd1c57e66c33af7948d6ac1884623e1917a3b42565e6d02e1fd7adfbce4b3424a2382e
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/type-utils@npm:6.7.0":
+ version: 6.7.0
+ resolution: "@typescript-eslint/type-utils@npm:6.7.0"
+ dependencies:
+ "@typescript-eslint/typescript-estree": 6.7.0
+ "@typescript-eslint/utils": 6.7.0
+ debug: ^4.3.4
+ ts-api-utils: ^1.0.1
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 15ae33a6981721f83b2ac612a7597a4fcb2d9d9bfedce54707e5228bec2774fd99ba54ffce89924ae36b61488c7b6c0c2165a6d361be5cd4cefebefad8b02a01
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/types@npm:6.7.0":
+ version: 6.7.0
+ resolution: "@typescript-eslint/types@npm:6.7.0"
+ checksum: fb76031432a009813d559b1cc63091eb5434279012cdb98de62fcd556910663c6a1b506e0a77c4f86e223a5e2c00e76a2d1d2170802c75168008d19a52a51fca
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/typescript-estree@npm:6.7.0":
+ version: 6.7.0
+ resolution: "@typescript-eslint/typescript-estree@npm:6.7.0"
+ dependencies:
+ "@typescript-eslint/types": 6.7.0
+ "@typescript-eslint/visitor-keys": 6.7.0
+ debug: ^4.3.4
+ globby: ^11.1.0
+ is-glob: ^4.0.3
+ semver: ^7.5.4
+ ts-api-utils: ^1.0.1
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 9bd57910085f0dd97d7083e0468c34e0753d20d36d3ffaa4ba111f13cc4986743374f5aed928e645ea982cf2ed9a8141598bee41393cad0abee001f0842ad117
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/utils@npm:6.7.0":
+ version: 6.7.0
+ resolution: "@typescript-eslint/utils@npm:6.7.0"
+ dependencies:
+ "@eslint-community/eslint-utils": ^4.4.0
+ "@types/json-schema": ^7.0.12
+ "@types/semver": ^7.5.0
+ "@typescript-eslint/scope-manager": 6.7.0
+ "@typescript-eslint/types": 6.7.0
+ "@typescript-eslint/typescript-estree": 6.7.0
+ semver: ^7.5.4
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ checksum: b2a2857ec856d1752e77c2a274a12513372311c300f9ec57ed7bf7411eb9ea34b85a8e7810a5c48fff0e3966b71d63d77e38c5c7bca1d5c004bede5638619a00
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/visitor-keys@npm:6.7.0":
+ version: 6.7.0
+ resolution: "@typescript-eslint/visitor-keys@npm:6.7.0"
+ dependencies:
+ "@typescript-eslint/types": 6.7.0
+ eslint-visitor-keys: ^3.4.1
+ checksum: cd85722d26ccfa23a76e5cb5aa0229f89eb3c4f1ed87d71a0f902db15f420f3f3e94cbd16dc711039f611ac60b1e7d0fee9ee78c48c88310a5f1926a2bc8778e
+ languageName: node
+ linkType: hard
+
+"@vitejs/plugin-react@npm:^4.0.4":
+ version: 4.0.4
+ resolution: "@vitejs/plugin-react@npm:4.0.4"
+ dependencies:
+ "@babel/core": ^7.22.9
+ "@babel/plugin-transform-react-jsx-self": ^7.22.5
+ "@babel/plugin-transform-react-jsx-source": ^7.22.5
+ react-refresh: ^0.14.0
+ peerDependencies:
+ vite: ^4.2.0
+ checksum: ec25400dc7c5fce914122d1f57de0fbaff9216addb8cd6187308ad2c7a3d3b73ea3a6f2dd0a8c7ec5e90e56b37046fe90d3e0ec285a9446e73695cb174377f84
+ languageName: node
+ linkType: hard
+
+"@vitest/expect@npm:0.34.4":
+ version: 0.34.4
+ resolution: "@vitest/expect@npm:0.34.4"
+ dependencies:
+ "@vitest/spy": 0.34.4
+ "@vitest/utils": 0.34.4
+ chai: ^4.3.7
+ checksum: eb51e73f703ed6a916516ab45068a8c44d715d4eabb8bbae7bfe1d3707131d5ac62c9e70130d5075ad7d0a19da0a0e8e994bc8579e185d229f6e8adaf1235f6f
+ languageName: node
+ linkType: hard
+
+"@vitest/runner@npm:0.34.4":
+ version: 0.34.4
+ resolution: "@vitest/runner@npm:0.34.4"
+ dependencies:
+ "@vitest/utils": 0.34.4
+ p-limit: ^4.0.0
+ pathe: ^1.1.1
+ checksum: b0188ea197baa5d0e554483963b37f80796cae5db3b1d733752b1fd1bf1eb21e391305144f9ce27e31d8661a61ad947e903e0e081a71f23e6c63ae2cd0671d3f
+ languageName: node
+ linkType: hard
+
+"@vitest/snapshot@npm:0.34.4":
+ version: 0.34.4
+ resolution: "@vitest/snapshot@npm:0.34.4"
+ dependencies:
+ magic-string: ^0.30.1
+ pathe: ^1.1.1
+ pretty-format: ^29.5.0
+ checksum: 3c9335bff752848d867692f69f2ea4ff439265b5ae751e33b43b0e410c4ccdad9890ce0f6ce8fa79d0146c86cc6d905a9f2d1fe574f3e5d9caf7ed2c78e7051f
+ languageName: node
+ linkType: hard
+
+"@vitest/spy@npm:0.34.4":
+ version: 0.34.4
+ resolution: "@vitest/spy@npm:0.34.4"
+ dependencies:
+ tinyspy: ^2.1.1
+ checksum: 84e29920b5ecfd4623bb1a644872fcfdc6ce23e3e25e46a5932599880f179b85ffb5d5e84c39b820c26717ccb4038a9e311e5ab2376f2da28308d7062b1a15fc
+ languageName: node
+ linkType: hard
+
+"@vitest/utils@npm:0.34.4":
+ version: 0.34.4
+ resolution: "@vitest/utils@npm:0.34.4"
+ dependencies:
+ diff-sequences: ^29.4.3
+ loupe: ^2.3.6
+ pretty-format: ^29.5.0
+ checksum: 5ec5e9d6de14fff0520a61843f54a90690c10c0cd8d54439d4e9f5ac1508aa27d2c4b78ab332c222ca3199999f0d006cf938fe1a0c63c317c297af12983c5499
+ languageName: node
+ linkType: hard
+
+"abbrev@npm:1":
+ version: 1.1.1
+ resolution: "abbrev@npm:1.1.1"
+ checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17
+ languageName: node
+ linkType: hard
+
+"acorn-jsx@npm:^5.3.2":
+ version: 5.3.2
+ resolution: "acorn-jsx@npm:5.3.2"
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950
+ languageName: node
+ linkType: hard
+
+"acorn-walk@npm:^8.1.1, acorn-walk@npm:^8.2.0":
+ version: 8.2.0
+ resolution: "acorn-walk@npm:8.2.0"
+ checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^8.10.0, acorn@npm:^8.9.0":
+ version: 8.10.0
+ resolution: "acorn@npm:8.10.0"
+ bin:
+ acorn: bin/acorn
+ checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^8.4.1":
+ version: 8.8.0
+ resolution: "acorn@npm:8.8.0"
+ bin:
+ acorn: bin/acorn
+ checksum: 7270ca82b242eafe5687a11fea6e088c960af712683756abf0791b68855ea9cace3057bd5e998ffcef50c944810c1e0ca1da526d02b32110e13c722aa959afdc
+ languageName: node
+ linkType: hard
+
+"agent-base@npm:6, agent-base@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "agent-base@npm:6.0.2"
+ dependencies:
+ debug: 4
+ checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d
+ languageName: node
+ linkType: hard
+
+"agentkeepalive@npm:^4.2.1":
+ version: 4.2.1
+ resolution: "agentkeepalive@npm:4.2.1"
+ dependencies:
+ debug: ^4.1.0
+ depd: ^1.1.2
+ humanize-ms: ^1.2.1
+ checksum: 39cb49ed8cf217fd6da058a92828a0a84e0b74c35550f82ee0a10e1ee403c4b78ade7948be2279b188b7a7303f5d396ea2738b134731e464bf28de00a4f72a18
+ languageName: node
+ linkType: hard
+
+"aggregate-error@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "aggregate-error@npm:3.1.0"
+ dependencies:
+ clean-stack: ^2.0.0
+ indent-string: ^4.0.0
+ checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79
+ languageName: node
+ linkType: hard
+
+"ajv@npm:8.11.2":
+ version: 8.11.2
+ resolution: "ajv@npm:8.11.2"
+ dependencies:
+ fast-deep-equal: ^3.1.1
+ json-schema-traverse: ^1.0.0
+ require-from-string: ^2.0.2
+ uri-js: ^4.2.2
+ checksum: 53435bf79ee7d1eabba8085962dba4c08d08593334b304db7772887f0b7beebc1b3d957432f7437ed4b60e53b5d966a57b439869890209c50fed610459999e3e
+ languageName: node
+ linkType: hard
+
+"ajv@npm:^6.12.4":
+ version: 6.12.6
+ resolution: "ajv@npm:6.12.6"
+ dependencies:
+ fast-deep-equal: ^3.1.1
+ fast-json-stable-stringify: ^2.0.0
+ json-schema-traverse: ^0.4.1
+ uri-js: ^4.2.2
+ checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "ansi-regex@npm:5.0.1"
+ checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^3.2.1":
+ version: 3.2.1
+ resolution: "ansi-styles@npm:3.2.1"
+ dependencies:
+ color-convert: ^1.9.0
+ checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^4.1.0":
+ version: 4.3.0
+ resolution: "ansi-styles@npm:4.3.0"
+ dependencies:
+ color-convert: ^2.0.1
+ checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^5.0.0":
+ version: 5.2.0
+ resolution: "ansi-styles@npm:5.2.0"
+ checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469
+ languageName: node
+ linkType: hard
+
+"aproba@npm:^1.0.3 || ^2.0.0":
+ version: 2.0.0
+ resolution: "aproba@npm:2.0.0"
+ checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24
+ languageName: node
+ linkType: hard
+
+"are-we-there-yet@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "are-we-there-yet@npm:3.0.1"
+ dependencies:
+ delegates: ^1.0.0
+ readable-stream: ^3.6.0
+ checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83
+ languageName: node
+ linkType: hard
+
+"arg@npm:^4.1.0":
+ version: 4.1.3
+ resolution: "arg@npm:4.1.3"
+ checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "argparse@npm:2.0.1"
+ checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced
+ languageName: node
+ linkType: hard
+
+"array-buffer-byte-length@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "array-buffer-byte-length@npm:1.0.0"
+ dependencies:
+ call-bind: ^1.0.2
+ is-array-buffer: ^3.0.1
+ checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3
+ languageName: node
+ linkType: hard
+
+"array-includes@npm:^3.1.4":
+ version: 3.1.5
+ resolution: "array-includes@npm:3.1.5"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.1.4
+ es-abstract: ^1.19.5
+ get-intrinsic: ^1.1.1
+ is-string: ^1.0.7
+ checksum: f6f24d834179604656b7bec3e047251d5cc87e9e87fab7c175c61af48e80e75acd296017abcde21fb52292ab6a2a449ab2ee37213ee48c8709f004d75983f9c5
+ languageName: node
+ linkType: hard
+
+"array-includes@npm:^3.1.6":
+ version: 3.1.7
+ resolution: "array-includes@npm:3.1.7"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ get-intrinsic: ^1.2.1
+ is-string: ^1.0.7
+ checksum: 06f9e4598fac12a919f7c59a3f04f010ea07f0b7f0585465ed12ef528a60e45f374e79d1bddbb34cdd4338357d00023ddbd0ac18b0be36964f5e726e8965d7fc
+ languageName: node
+ linkType: hard
+
+"array-union@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "array-union@npm:2.1.0"
+ checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d
+ languageName: node
+ linkType: hard
+
+"array.prototype.findlastindex@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "array.prototype.findlastindex@npm:1.2.3"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ es-shim-unscopables: ^1.0.0
+ get-intrinsic: ^1.2.1
+ checksum: 31f35d7b370c84db56484618132041a9af401b338f51899c2e78ef7690fbba5909ee7ca3c59a7192085b328cc0c68c6fd1f6d1553db01a689a589ae510f3966e
+ languageName: node
+ linkType: hard
+
+"array.prototype.flat@npm:^1.3.1":
+ version: 1.3.2
+ resolution: "array.prototype.flat@npm:1.3.2"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ es-shim-unscopables: ^1.0.0
+ checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b
+ languageName: node
+ linkType: hard
+
+"array.prototype.flatmap@npm:^1.3.1":
+ version: 1.3.2
+ resolution: "array.prototype.flatmap@npm:1.3.2"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ es-shim-unscopables: ^1.0.0
+ checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3
+ languageName: node
+ linkType: hard
+
+"array.prototype.tosorted@npm:^1.1.1":
+ version: 1.1.2
+ resolution: "array.prototype.tosorted@npm:1.1.2"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ es-shim-unscopables: ^1.0.0
+ get-intrinsic: ^1.2.1
+ checksum: 3607a7d6b117f0ffa6f4012457b7af0d47d38cf05e01d50e09682fd2fb782a66093a5e5fbbdbad77c8c824794a9d892a51844041641f719ad41e3a974f0764de
+ languageName: node
+ linkType: hard
+
+"arraybuffer.prototype.slice@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "arraybuffer.prototype.slice@npm:1.0.2"
+ dependencies:
+ array-buffer-byte-length: ^1.0.0
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ get-intrinsic: ^1.2.1
+ is-array-buffer: ^3.0.2
+ is-shared-array-buffer: ^1.0.2
+ checksum: c200faf437786f5b2c80d4564ff5481c886a16dee642ef02abdc7306c7edd523d1f01d1dd12b769c7eb42ac9bc53874510db19a92a2c035c0f6696172aafa5d3
+ languageName: node
+ linkType: hard
+
+"assertion-error@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "assertion-error@npm:1.1.0"
+ checksum: fd9429d3a3d4fd61782eb3962ae76b6d08aa7383123fca0596020013b3ebd6647891a85b05ce821c47d1471ed1271f00b0545cf6a4326cf2fc91efcc3b0fbecf
+ languageName: node
+ linkType: hard
+
+"asynciterator.prototype@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "asynciterator.prototype@npm:1.0.0"
+ dependencies:
+ has-symbols: ^1.0.3
+ checksum: e8ebfd9493ac651cf9b4165e9d64030b3da1d17181bb1963627b59e240cdaf021d9b59d44b827dc1dde4e22387ec04c2d0f8720cf58a1c282e34e40cc12721b3
+ languageName: node
+ linkType: hard
+
+"available-typed-arrays@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "available-typed-arrays@npm:1.0.5"
+ checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a
+ languageName: node
+ linkType: hard
+
+"babel-plugin-macros@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "babel-plugin-macros@npm:3.1.0"
+ dependencies:
+ "@babel/runtime": ^7.12.5
+ cosmiconfig: ^7.0.0
+ resolve: ^1.19.0
+ checksum: 765de4abebd3e4688ebdfbff8571ddc8cd8061f839bb6c3e550b0344a4027b04c60491f843296ce3f3379fb356cc873d57a9ee6694262547eb822c14a25be9a6
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+ version: 1.1.11
+ resolution: "brace-expansion@npm:1.1.11"
+ dependencies:
+ balanced-match: ^1.0.0
+ concat-map: 0.0.1
+ checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "brace-expansion@npm:2.0.1"
+ dependencies:
+ balanced-match: ^1.0.0
+ checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "braces@npm:3.0.2"
+ dependencies:
+ fill-range: ^7.0.1
+ checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459
+ languageName: node
+ linkType: hard
+
+"browserslist@npm:^4.21.9":
+ version: 4.21.10
+ resolution: "browserslist@npm:4.21.10"
+ dependencies:
+ caniuse-lite: ^1.0.30001517
+ electron-to-chromium: ^1.4.477
+ node-releases: ^2.0.13
+ update-browserslist-db: ^1.0.11
+ bin:
+ browserslist: cli.js
+ checksum: 1e27c0f111a35d1dd0e8fc2c61781b0daefabc2c9471b0b10537ce54843014bceb2a1ce4571af1a82b2bf1e6e6e05d38865916689a158f03bc2c7a4ec2577db8
+ languageName: node
+ linkType: hard
+
+"cac@npm:^6.7.14":
+ version: 6.7.14
+ resolution: "cac@npm:6.7.14"
+ checksum: 45a2496a9443abbe7f52a49b22fbe51b1905eff46e03fd5e6c98e3f85077be3f8949685a1849b1a9cd2bc3e5567dfebcf64f01ce01847baf918f1b37c839791a
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^16.1.0":
+ version: 16.1.1
+ resolution: "cacache@npm:16.1.1"
+ dependencies:
+ "@npmcli/fs": ^2.1.0
+ "@npmcli/move-file": ^2.0.0
+ chownr: ^2.0.0
+ fs-minipass: ^2.1.0
+ glob: ^8.0.1
+ infer-owner: ^1.0.4
+ lru-cache: ^7.7.1
+ minipass: ^3.1.6
+ minipass-collect: ^1.0.2
+ minipass-flush: ^1.0.5
+ minipass-pipeline: ^1.2.4
+ mkdirp: ^1.0.4
+ p-map: ^4.0.0
+ promise-inflight: ^1.0.1
+ rimraf: ^3.0.2
+ ssri: ^9.0.0
+ tar: ^6.1.11
+ unique-filename: ^1.1.1
+ checksum: 488524617008b793f0249b0c4ea2c330c710ca997921376e15650cc2415a8054491ae2dee9f01382c2015602c0641f3f977faf2fa7361aa33d2637dcfb03907a
+ languageName: node
+ linkType: hard
+
+"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "call-bind@npm:1.0.2"
+ dependencies:
+ function-bind: ^1.1.1
+ get-intrinsic: ^1.0.2
+ checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0
+ languageName: node
+ linkType: hard
+
+"callsites@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "callsites@npm:3.1.0"
+ checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3
+ languageName: node
+ linkType: hard
+
+"caniuse-lite@npm:^1.0.30001517":
+ version: 1.0.30001533
+ resolution: "caniuse-lite@npm:1.0.30001533"
+ checksum: 1ffb2d69f817ee5f13351cb01c26a98ac61515809a6ce355305df3fbc6de6391a58466c1dcad1f322231b1ddc59bdda9bc52b9480cac100c3ff2f5782e859eb1
+ languageName: node
+ linkType: hard
+
+"chai@npm:^4.3.7":
+ version: 4.3.8
+ resolution: "chai@npm:4.3.8"
+ dependencies:
+ assertion-error: ^1.1.0
+ check-error: ^1.0.2
+ deep-eql: ^4.1.2
+ get-func-name: ^2.0.0
+ loupe: ^2.3.1
+ pathval: ^1.1.1
+ type-detect: ^4.0.5
+ checksum: 29e0984ed13308319cadc35437c8ef0a3e271544d226c991bf7e3b6d771bf89707321669e11d05e362bc0ad0bd26585079b989d1032f3c106e3bb95d7f079cce
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^2.0.0, chalk@npm:^2.4.2":
+ version: 2.4.2
+ resolution: "chalk@npm:2.4.2"
+ dependencies:
+ ansi-styles: ^3.2.1
+ escape-string-regexp: ^1.0.5
+ supports-color: ^5.3.0
+ checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^4.0.0":
+ version: 4.1.2
+ resolution: "chalk@npm:4.1.2"
+ dependencies:
+ ansi-styles: ^4.1.0
+ supports-color: ^7.1.0
+ checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc
+ languageName: node
+ linkType: hard
+
+"check-error@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "check-error@npm:1.0.2"
+ checksum: d9d106504404b8addd1ee3f63f8c0eaa7cd962a1a28eb9c519b1c4a1dc7098be38007fc0060f045ee00f075fbb7a2a4f42abcf61d68323677e11ab98dc16042e
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "chownr@npm:2.0.0"
+ checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f
+ languageName: node
+ linkType: hard
+
+"clean-stack@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "clean-stack@npm:2.2.0"
+ checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68
+ languageName: node
+ linkType: hard
+
+"client-only@npm:^0.0.1":
+ version: 0.0.1
+ resolution: "client-only@npm:0.0.1"
+ checksum: 0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8
+ languageName: node
+ linkType: hard
+
+"clsx@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "clsx@npm:2.0.0"
+ checksum: a2cfb2351b254611acf92faa0daf15220f4cd648bdf96ce369d729813b85336993871a4bf6978ddea2b81b5a130478339c20d9d0b5c6fc287e5147f0c059276e
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^1.9.0":
+ version: 1.9.3
+ resolution: "color-convert@npm:1.9.3"
+ dependencies:
+ color-name: 1.1.3
+ checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "color-convert@npm:2.0.1"
+ dependencies:
+ color-name: ~1.1.4
+ checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336
+ languageName: node
+ linkType: hard
+
+"color-name@npm:1.1.3":
+ version: 1.1.3
+ resolution: "color-name@npm:1.1.3"
+ checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d
+ languageName: node
+ linkType: hard
+
+"color-name@npm:~1.1.4":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610
+ languageName: node
+ linkType: hard
+
+"color-support@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "color-support@npm:1.1.3"
+ bin:
+ color-support: bin.js
+ checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b
+ languageName: node
+ linkType: hard
+
+"concat-map@npm:0.0.1":
+ version: 0.0.1
+ resolution: "concat-map@npm:0.0.1"
+ checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af
+ languageName: node
+ linkType: hard
+
+"console-control-strings@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "console-control-strings@npm:1.1.0"
+ checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed
+ languageName: node
+ linkType: hard
+
+"convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.7.0":
+ version: 1.8.0
+ resolution: "convert-source-map@npm:1.8.0"
+ dependencies:
+ safe-buffer: ~5.1.1
+ checksum: 985d974a2d33e1a2543ada51c93e1ba2f73eaed608dc39f229afc78f71dcc4c8b7d7c684aa647e3c6a3a204027444d69e53e169ce94e8d1fa8d7dee80c9c8fed
+ languageName: node
+ linkType: hard
+
+"cosmiconfig@npm:^7.0.0":
+ version: 7.1.0
+ resolution: "cosmiconfig@npm:7.1.0"
+ dependencies:
+ "@types/parse-json": ^4.0.0
+ import-fresh: ^3.2.1
+ parse-json: ^5.0.0
+ path-type: ^4.0.0
+ yaml: ^1.10.0
+ checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f
+ languageName: node
+ linkType: hard
+
+"create-require@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "create-require@npm:1.1.1"
+ checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff
+ languageName: node
+ linkType: hard
+
+"cross-env@npm:^7.0.3":
+ version: 7.0.3
+ resolution: "cross-env@npm:7.0.3"
+ dependencies:
+ cross-spawn: ^7.0.1
+ bin:
+ cross-env: src/bin/cross-env.js
+ cross-env-shell: src/bin/cross-env-shell.js
+ checksum: 26f2f3ea2ab32617f57effb70d329c2070d2f5630adc800985d8b30b56e8bf7f5f439dd3a0358b79cee6f930afc23cf8e23515f17ccfb30092c6b62c6b630a79
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2":
+ version: 7.0.3
+ resolution: "cross-spawn@npm:7.0.3"
+ dependencies:
+ path-key: ^3.1.0
+ shebang-command: ^2.0.0
+ which: ^2.0.1
+ checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52
+ languageName: node
+ linkType: hard
+
+"csstype@npm:^3.0.2":
+ version: 3.1.0
+ resolution: "csstype@npm:3.1.0"
+ checksum: 644e986cefab86525f0b674a06889cfdbb1f117e5b7d1ce0fc55b0423ecc58807a1ea42ecc75c4f18999d14fc42d1d255f84662a45003a52bb5840e977eb2ffd
+ languageName: node
+ linkType: hard
+
+"csstype@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "csstype@npm:3.1.2"
+ checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5
+ languageName: node
+ linkType: hard
+
+"d3-format@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "d3-format@npm:3.1.0"
+ checksum: f345ec3b8ad3cab19bff5dead395bd9f5590628eb97a389b1dd89f0b204c7c4fc1d9520f13231c2c7cf14b7c9a8cf10f8ef15bde2befbab41454a569bd706ca2
+ languageName: node
+ linkType: hard
+
+"date-fns@npm:^2.30.0":
+ version: 2.30.0
+ resolution: "date-fns@npm:2.30.0"
+ dependencies:
+ "@babel/runtime": ^7.21.0
+ checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4
+ languageName: node
+ linkType: hard
+
+"dayjs@npm:^1.11.9":
+ version: 1.11.9
+ resolution: "dayjs@npm:1.11.9"
+ checksum: a4844d83dc87f921348bb9b1b93af851c51e6f71fa259604809cfe1b49d1230e6b0212dab44d1cb01994c096ad3a77ea1cf18fa55154da6efcc9d3610526ac38
+ languageName: node
+ linkType: hard
+
+"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
+ version: 4.3.4
+ resolution: "debug@npm:4.3.4"
+ dependencies:
+ ms: 2.1.2
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708
+ languageName: node
+ linkType: hard
+
+"debug@npm:^3.2.7":
+ version: 3.2.7
+ resolution: "debug@npm:3.2.7"
+ dependencies:
+ ms: ^2.1.1
+ checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c
+ languageName: node
+ linkType: hard
+
+"deep-eql@npm:^4.1.2":
+ version: 4.1.3
+ resolution: "deep-eql@npm:4.1.3"
+ dependencies:
+ type-detect: ^4.0.0
+ checksum: 7f6d30cb41c713973dc07eaadded848b2ab0b835e518a88b91bea72f34e08c4c71d167a722a6f302d3a6108f05afd8e6d7650689a84d5d29ec7fe6220420397f
+ languageName: node
+ linkType: hard
+
+"deep-equal@npm:^2.2.1":
+ version: 2.2.2
+ resolution: "deep-equal@npm:2.2.2"
+ dependencies:
+ array-buffer-byte-length: ^1.0.0
+ call-bind: ^1.0.2
+ es-get-iterator: ^1.1.3
+ get-intrinsic: ^1.2.1
+ is-arguments: ^1.1.1
+ is-array-buffer: ^3.0.2
+ is-date-object: ^1.0.5
+ is-regex: ^1.1.4
+ is-shared-array-buffer: ^1.0.2
+ isarray: ^2.0.5
+ object-is: ^1.1.5
+ object-keys: ^1.1.1
+ object.assign: ^4.1.4
+ regexp.prototype.flags: ^1.5.0
+ side-channel: ^1.0.4
+ which-boxed-primitive: ^1.0.2
+ which-collection: ^1.0.1
+ which-typed-array: ^1.1.9
+ checksum: eb61c35157b6ecb96a5359b507b083fbff8ddb4c86a78a781ee38485f77a667465e45d63ee2ebd8a00e86d94c80e499906900cd82c2debb400237e1662cd5397
+ languageName: node
+ linkType: hard
+
+"deep-is@npm:^0.1.3":
+ version: 0.1.4
+ resolution: "deep-is@npm:0.1.4"
+ checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804
+ languageName: node
+ linkType: hard
+
+"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "define-properties@npm:1.1.4"
+ dependencies:
+ has-property-descriptors: ^1.0.0
+ object-keys: ^1.1.1
+ checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b
+ languageName: node
+ linkType: hard
+
+"define-properties@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "define-properties@npm:1.2.0"
+ dependencies:
+ has-property-descriptors: ^1.0.0
+ object-keys: ^1.1.1
+ checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6
+ languageName: node
+ linkType: hard
+
+"delegates@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "delegates@npm:1.0.0"
+ checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd
+ languageName: node
+ linkType: hard
+
+"depd@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "depd@npm:1.1.2"
+ checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9
+ languageName: node
+ linkType: hard
+
+"diff-sequences@npm:^29.4.3":
+ version: 29.6.3
+ resolution: "diff-sequences@npm:29.6.3"
+ checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa
+ languageName: node
+ linkType: hard
+
+"diff@npm:^4.0.1":
+ version: 4.0.2
+ resolution: "diff@npm:4.0.2"
+ checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d
+ languageName: node
+ linkType: hard
+
+"dir-glob@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "dir-glob@npm:3.0.1"
+ dependencies:
+ path-type: ^4.0.0
+ checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "doctrine@npm:2.1.0"
+ dependencies:
+ esutils: ^2.0.2
+ checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "doctrine@npm:3.0.0"
+ dependencies:
+ esutils: ^2.0.2
+ checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce
+ languageName: node
+ linkType: hard
+
+"dot-prop@npm:6.0.1":
+ version: 6.0.1
+ resolution: "dot-prop@npm:6.0.1"
+ dependencies:
+ is-obj: ^2.0.0
+ checksum: 0f47600a4b93e1dc37261da4e6909652c008832a5d3684b5bf9a9a0d3f4c67ea949a86dceed9b72f5733ed8e8e6383cc5958df3bbd0799ee317fd181f2ece700
+ languageName: node
+ linkType: hard
+
+"electron-to-chromium@npm:^1.4.477":
+ version: 1.4.515
+ resolution: "electron-to-chromium@npm:1.4.515"
+ checksum: ac5e901f0c39bd5bff52e8d8a4243c5b0c0abb4366df96c56480902ddcd2ce74e3fe389171092a887fd09c0444fb47951351cf0d2ae530c251716bd8ed57111f
+ languageName: node
+ linkType: hard
+
+"emoji-mart@npm:^5.5.2":
+ version: 5.5.2
+ resolution: "emoji-mart@npm:5.5.2"
+ checksum: a9d8db731443581baebafbcb8494086e9d02b1475ddee9901fc657a7e8f08c14594a810605a3abe8d52627b75f5d78ea19adf3166fb0f38cea174694f86635f9
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "emoji-regex@npm:8.0.0"
+ checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192
+ languageName: node
+ linkType: hard
+
+"encoding@npm:^0.1.13":
+ version: 0.1.13
+ resolution: "encoding@npm:0.1.13"
+ dependencies:
+ iconv-lite: ^0.6.2
+ checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f
+ languageName: node
+ linkType: hard
+
+"env-paths@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "env-paths@npm:2.2.1"
+ checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e
+ languageName: node
+ linkType: hard
+
+"err-code@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "err-code@npm:2.0.3"
+ checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54
+ languageName: node
+ linkType: hard
+
+"error-ex@npm:^1.3.1":
+ version: 1.3.2
+ resolution: "error-ex@npm:1.3.2"
+ dependencies:
+ is-arrayish: ^0.2.1
+ checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001
+ languageName: node
+ linkType: hard
+
+"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.5":
+ version: 1.20.1
+ resolution: "es-abstract@npm:1.20.1"
+ dependencies:
+ call-bind: ^1.0.2
+ es-to-primitive: ^1.2.1
+ function-bind: ^1.1.1
+ function.prototype.name: ^1.1.5
+ get-intrinsic: ^1.1.1
+ get-symbol-description: ^1.0.0
+ has: ^1.0.3
+ has-property-descriptors: ^1.0.0
+ has-symbols: ^1.0.3
+ internal-slot: ^1.0.3
+ is-callable: ^1.2.4
+ is-negative-zero: ^2.0.2
+ is-regex: ^1.1.4
+ is-shared-array-buffer: ^1.0.2
+ is-string: ^1.0.7
+ is-weakref: ^1.0.2
+ object-inspect: ^1.12.0
+ object-keys: ^1.1.1
+ object.assign: ^4.1.2
+ regexp.prototype.flags: ^1.4.3
+ string.prototype.trimend: ^1.0.5
+ string.prototype.trimstart: ^1.0.5
+ unbox-primitive: ^1.0.2
+ checksum: 28da27ae0ed9c76df7ee8ef5c278df79dcfdb554415faf7068bb7c58f8ba8e2a16bfb59e586844be6429ab4c302ca7748979d48442224cb1140b051866d74b7f
+ languageName: node
+ linkType: hard
+
+"es-abstract@npm:^1.22.1":
+ version: 1.22.1
+ resolution: "es-abstract@npm:1.22.1"
+ dependencies:
+ array-buffer-byte-length: ^1.0.0
+ arraybuffer.prototype.slice: ^1.0.1
+ available-typed-arrays: ^1.0.5
+ call-bind: ^1.0.2
+ es-set-tostringtag: ^2.0.1
+ es-to-primitive: ^1.2.1
+ function.prototype.name: ^1.1.5
+ get-intrinsic: ^1.2.1
+ get-symbol-description: ^1.0.0
+ globalthis: ^1.0.3
+ gopd: ^1.0.1
+ has: ^1.0.3
+ has-property-descriptors: ^1.0.0
+ has-proto: ^1.0.1
+ has-symbols: ^1.0.3
+ internal-slot: ^1.0.5
+ is-array-buffer: ^3.0.2
+ is-callable: ^1.2.7
+ is-negative-zero: ^2.0.2
+ is-regex: ^1.1.4
+ is-shared-array-buffer: ^1.0.2
+ is-string: ^1.0.7
+ is-typed-array: ^1.1.10
+ is-weakref: ^1.0.2
+ object-inspect: ^1.12.3
+ object-keys: ^1.1.1
+ object.assign: ^4.1.4
+ regexp.prototype.flags: ^1.5.0
+ safe-array-concat: ^1.0.0
+ safe-regex-test: ^1.0.0
+ string.prototype.trim: ^1.2.7
+ string.prototype.trimend: ^1.0.6
+ string.prototype.trimstart: ^1.0.6
+ typed-array-buffer: ^1.0.0
+ typed-array-byte-length: ^1.0.0
+ typed-array-byte-offset: ^1.0.0
+ typed-array-length: ^1.0.4
+ unbox-primitive: ^1.0.2
+ which-typed-array: ^1.1.10
+ checksum: 614e2c1c3717cb8d30b6128ef12ea110e06fd7d75ad77091ca1c5dbfb00da130e62e4bbbbbdda190eada098a22b27fe0f99ae5a1171dac2c8663b1e8be8a3a9b
+ languageName: node
+ linkType: hard
+
+"es-get-iterator@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "es-get-iterator@npm:1.1.3"
+ dependencies:
+ call-bind: ^1.0.2
+ get-intrinsic: ^1.1.3
+ has-symbols: ^1.0.3
+ is-arguments: ^1.1.1
+ is-map: ^2.0.2
+ is-set: ^2.0.2
+ is-string: ^1.0.7
+ isarray: ^2.0.5
+ stop-iteration-iterator: ^1.0.0
+ checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d
+ languageName: node
+ linkType: hard
+
+"es-iterator-helpers@npm:^1.0.12":
+ version: 1.0.14
+ resolution: "es-iterator-helpers@npm:1.0.14"
+ dependencies:
+ asynciterator.prototype: ^1.0.0
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ es-set-tostringtag: ^2.0.1
+ function-bind: ^1.1.1
+ get-intrinsic: ^1.2.1
+ globalthis: ^1.0.3
+ has-property-descriptors: ^1.0.0
+ has-proto: ^1.0.1
+ has-symbols: ^1.0.3
+ internal-slot: ^1.0.5
+ iterator.prototype: ^1.1.0
+ safe-array-concat: ^1.0.0
+ checksum: 484ca398389d5e259855e2d848573233985a7e7a4126c5de62c8a554174495aea47320ae1d2b55b757ece62ac1cb8455532aa61fd123fe4e01d0567eb2d7adfa
+ languageName: node
+ linkType: hard
+
+"es-set-tostringtag@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "es-set-tostringtag@npm:2.0.1"
+ dependencies:
+ get-intrinsic: ^1.1.3
+ has: ^1.0.3
+ has-tostringtag: ^1.0.0
+ checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884
+ languageName: node
+ linkType: hard
+
+"es-shim-unscopables@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-shim-unscopables@npm:1.0.0"
+ dependencies:
+ has: ^1.0.3
+ checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1
+ languageName: node
+ linkType: hard
+
+"es-to-primitive@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "es-to-primitive@npm:1.2.1"
+ dependencies:
+ is-callable: ^1.1.4
+ is-date-object: ^1.0.1
+ is-symbol: ^1.0.2
+ checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed
+ languageName: node
+ linkType: hard
+
+"esbuild@npm:^0.18.10":
+ version: 0.18.20
+ resolution: "esbuild@npm:0.18.20"
+ dependencies:
+ "@esbuild/android-arm": 0.18.20
+ "@esbuild/android-arm64": 0.18.20
+ "@esbuild/android-x64": 0.18.20
+ "@esbuild/darwin-arm64": 0.18.20
+ "@esbuild/darwin-x64": 0.18.20
+ "@esbuild/freebsd-arm64": 0.18.20
+ "@esbuild/freebsd-x64": 0.18.20
+ "@esbuild/linux-arm": 0.18.20
+ "@esbuild/linux-arm64": 0.18.20
+ "@esbuild/linux-ia32": 0.18.20
+ "@esbuild/linux-loong64": 0.18.20
+ "@esbuild/linux-mips64el": 0.18.20
+ "@esbuild/linux-ppc64": 0.18.20
+ "@esbuild/linux-riscv64": 0.18.20
+ "@esbuild/linux-s390x": 0.18.20
+ "@esbuild/linux-x64": 0.18.20
+ "@esbuild/netbsd-x64": 0.18.20
+ "@esbuild/openbsd-x64": 0.18.20
+ "@esbuild/sunos-x64": 0.18.20
+ "@esbuild/win32-arm64": 0.18.20
+ "@esbuild/win32-ia32": 0.18.20
+ "@esbuild/win32-x64": 0.18.20
+ dependenciesMeta:
+ "@esbuild/android-arm":
+ optional: true
+ "@esbuild/android-arm64":
+ optional: true
+ "@esbuild/android-x64":
+ optional: true
+ "@esbuild/darwin-arm64":
+ optional: true
+ "@esbuild/darwin-x64":
+ optional: true
+ "@esbuild/freebsd-arm64":
+ optional: true
+ "@esbuild/freebsd-x64":
+ optional: true
+ "@esbuild/linux-arm":
+ optional: true
+ "@esbuild/linux-arm64":
+ optional: true
+ "@esbuild/linux-ia32":
+ optional: true
+ "@esbuild/linux-loong64":
+ optional: true
+ "@esbuild/linux-mips64el":
+ optional: true
+ "@esbuild/linux-ppc64":
+ optional: true
+ "@esbuild/linux-riscv64":
+ optional: true
+ "@esbuild/linux-s390x":
+ optional: true
+ "@esbuild/linux-x64":
+ optional: true
+ "@esbuild/netbsd-x64":
+ optional: true
+ "@esbuild/openbsd-x64":
+ optional: true
+ "@esbuild/sunos-x64":
+ optional: true
+ "@esbuild/win32-arm64":
+ optional: true
+ "@esbuild/win32-ia32":
+ optional: true
+ "@esbuild/win32-x64":
+ optional: true
+ bin:
+ esbuild: bin/esbuild
+ checksum: 5d253614e50cdb6ec22095afd0c414f15688e7278a7eb4f3720a6dd1306b0909cf431e7b9437a90d065a31b1c57be60130f63fe3e8d0083b588571f31ee6ec7b
+ languageName: node
+ linkType: hard
+
+"escalade@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "escalade@npm:3.1.1"
+ checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "escape-string-regexp@npm:1.0.5"
+ checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "escape-string-regexp@npm:4.0.0"
+ checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5
+ languageName: node
+ linkType: hard
+
+"eslint-import-resolver-node@npm:^0.3.7":
+ version: 0.3.9
+ resolution: "eslint-import-resolver-node@npm:0.3.9"
+ dependencies:
+ debug: ^3.2.7
+ is-core-module: ^2.13.0
+ resolve: ^1.22.4
+ checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22
+ languageName: node
+ linkType: hard
+
+"eslint-module-utils@npm:^2.8.0":
+ version: 2.8.0
+ resolution: "eslint-module-utils@npm:2.8.0"
+ dependencies:
+ debug: ^3.2.7
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ checksum: 74c6dfea7641ebcfe174be61168541a11a14aa8d72e515f5f09af55cd0d0862686104b0524aa4b8e0ce66418a44aa38a94d2588743db5fd07a6b49ffd16921d2
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-import@npm:^2.28.1":
+ version: 2.28.1
+ resolution: "eslint-plugin-import@npm:2.28.1"
+ dependencies:
+ array-includes: ^3.1.6
+ array.prototype.findlastindex: ^1.2.2
+ array.prototype.flat: ^1.3.1
+ array.prototype.flatmap: ^1.3.1
+ debug: ^3.2.7
+ doctrine: ^2.1.0
+ eslint-import-resolver-node: ^0.3.7
+ eslint-module-utils: ^2.8.0
+ has: ^1.0.3
+ is-core-module: ^2.13.0
+ is-glob: ^4.0.3
+ minimatch: ^3.1.2
+ object.fromentries: ^2.0.6
+ object.groupby: ^1.0.0
+ object.values: ^1.1.6
+ semver: ^6.3.1
+ tsconfig-paths: ^3.14.2
+ peerDependencies:
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ checksum: e8ae6dd8f06d8adf685f9c1cfd46ac9e053e344a05c4090767e83b63a85c8421ada389807a39e73c643b9bff156715c122e89778169110ed68d6428e12607edf
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-hooks@npm:^4.6.0":
+ version: 4.6.0
+ resolution: "eslint-plugin-react-hooks@npm:4.6.0"
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ checksum: 23001801f14c1d16bf0a837ca7970d9dd94e7b560384b41db378b49b6e32dc43d6e2790de1bd737a652a86f81a08d6a91f402525061b47719328f586a57e86c3
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react@npm:^7.33.2":
+ version: 7.33.2
+ resolution: "eslint-plugin-react@npm:7.33.2"
+ dependencies:
+ array-includes: ^3.1.6
+ array.prototype.flatmap: ^1.3.1
+ array.prototype.tosorted: ^1.1.1
+ doctrine: ^2.1.0
+ es-iterator-helpers: ^1.0.12
+ estraverse: ^5.3.0
+ jsx-ast-utils: ^2.4.1 || ^3.0.0
+ minimatch: ^3.1.2
+ object.entries: ^1.1.6
+ object.fromentries: ^2.0.6
+ object.hasown: ^1.1.2
+ object.values: ^1.1.6
+ prop-types: ^15.8.1
+ resolve: ^2.0.0-next.4
+ semver: ^6.3.1
+ string.prototype.matchall: ^4.0.8
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ checksum: b4c3d76390b0ae6b6f9fed78170604cc2c04b48e6778a637db339e8e3911ec9ef22510b0ae77c429698151d0f1b245f282177f384105b6830e7b29b9c9b26610
+ languageName: node
+ linkType: hard
+
+"eslint-scope@npm:^7.2.2":
+ version: 7.2.2
+ resolution: "eslint-scope@npm:7.2.2"
+ dependencies:
+ esrecurse: ^4.3.0
+ estraverse: ^5.2.0
+ checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^3.3.0":
+ version: 3.3.0
+ resolution: "eslint-visitor-keys@npm:3.3.0"
+ checksum: d59e68a7c5a6d0146526b0eec16ce87fbf97fe46b8281e0d41384224375c4e52f5ffb9e16d48f4ea50785cde93f766b0c898e31ab89978d88b0e1720fbfb7808
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3":
+ version: 3.4.3
+ resolution: "eslint-visitor-keys@npm:3.4.3"
+ checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60
+ languageName: node
+ linkType: hard
+
+"eslint@npm:^8.49.0":
+ version: 8.49.0
+ resolution: "eslint@npm:8.49.0"
+ dependencies:
+ "@eslint-community/eslint-utils": ^4.2.0
+ "@eslint-community/regexpp": ^4.6.1
+ "@eslint/eslintrc": ^2.1.2
+ "@eslint/js": 8.49.0
+ "@humanwhocodes/config-array": ^0.11.11
+ "@humanwhocodes/module-importer": ^1.0.1
+ "@nodelib/fs.walk": ^1.2.8
+ ajv: ^6.12.4
+ chalk: ^4.0.0
+ cross-spawn: ^7.0.2
+ debug: ^4.3.2
+ doctrine: ^3.0.0
+ escape-string-regexp: ^4.0.0
+ eslint-scope: ^7.2.2
+ eslint-visitor-keys: ^3.4.3
+ espree: ^9.6.1
+ esquery: ^1.4.2
+ esutils: ^2.0.2
+ fast-deep-equal: ^3.1.3
+ file-entry-cache: ^6.0.1
+ find-up: ^5.0.0
+ glob-parent: ^6.0.2
+ globals: ^13.19.0
+ graphemer: ^1.4.0
+ ignore: ^5.2.0
+ imurmurhash: ^0.1.4
+ is-glob: ^4.0.0
+ is-path-inside: ^3.0.3
+ js-yaml: ^4.1.0
+ json-stable-stringify-without-jsonify: ^1.0.1
+ levn: ^0.4.1
+ lodash.merge: ^4.6.2
+ minimatch: ^3.1.2
+ natural-compare: ^1.4.0
+ optionator: ^0.9.3
+ strip-ansi: ^6.0.1
+ text-table: ^0.2.0
+ bin:
+ eslint: bin/eslint.js
+ checksum: 4dfe257e1e42da2f9da872b05aaaf99b0f5aa022c1a91eee8f2af1ab72651b596366320c575ccd4e0469f7b4c97aff5bb85ae3323ebd6a293c3faef4028b0d81
+ languageName: node
+ linkType: hard
+
+"espree@npm:^9.6.0, espree@npm:^9.6.1":
+ version: 9.6.1
+ resolution: "espree@npm:9.6.1"
+ dependencies:
+ acorn: ^8.9.0
+ acorn-jsx: ^5.3.2
+ eslint-visitor-keys: ^3.4.1
+ checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9
+ languageName: node
+ linkType: hard
+
+"esprima-extract-comments@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "esprima-extract-comments@npm:1.1.0"
+ dependencies:
+ esprima: ^4.0.0
+ checksum: 8d64b08b951a901bf0206b7a66ddd9498f9d00f8341aece5ca5e73efb65549e2ecb6c2d2b35c5432e77c743dd8c243ae43baf8d33128b8055d3ef5efbc18d5f3
+ languageName: node
+ linkType: hard
+
+"esprima@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "esprima@npm:4.0.1"
+ bin:
+ esparse: ./bin/esparse.js
+ esvalidate: ./bin/esvalidate.js
+ checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628
+ languageName: node
+ linkType: hard
+
+"esquery@npm:^1.4.2":
+ version: 1.5.0
+ resolution: "esquery@npm:1.5.0"
+ dependencies:
+ estraverse: ^5.1.0
+ checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900
+ languageName: node
+ linkType: hard
+
+"esrecurse@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "esrecurse@npm:4.3.0"
+ dependencies:
+ estraverse: ^5.2.0
+ checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0":
+ version: 5.3.0
+ resolution: "estraverse@npm:5.3.0"
+ checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b
+ languageName: node
+ linkType: hard
+
+"esutils@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "esutils@npm:2.0.3"
+ checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87
+ languageName: node
+ linkType: hard
+
+"events@npm:^3.3.0":
+ version: 3.3.0
+ resolution: "events@npm:3.3.0"
+ checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780
+ languageName: node
+ linkType: hard
+
+"extract-comments@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "extract-comments@npm:1.1.0"
+ dependencies:
+ esprima-extract-comments: ^1.1.0
+ parse-code-context: ^1.0.0
+ checksum: 2ea4faf33260ba43e7c73e7752f06fc781ec972b8cd9da06a19282a602a395f58ef43368eb77cc2bbdcc8187ecb46f0a62eee6a0482cb449726f251668c9a986
+ languageName: node
+ linkType: hard
+
+"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
+ version: 3.1.3
+ resolution: "fast-deep-equal@npm:3.1.3"
+ checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d
+ languageName: node
+ linkType: hard
+
+"fast-glob@npm:^3.2.12":
+ version: 3.3.1
+ resolution: "fast-glob@npm:3.3.1"
+ dependencies:
+ "@nodelib/fs.stat": ^2.0.2
+ "@nodelib/fs.walk": ^1.2.3
+ glob-parent: ^5.1.2
+ merge2: ^1.3.0
+ micromatch: ^4.0.4
+ checksum: b6f3add6403e02cf3a798bfbb1183d0f6da2afd368f27456010c0bc1f9640aea308243d4cb2c0ab142f618276e65ecb8be1661d7c62a7b4e5ba774b9ce5432e5
+ languageName: node
+ linkType: hard
+
+"fast-glob@npm:^3.2.9":
+ version: 3.2.11
+ resolution: "fast-glob@npm:3.2.11"
+ dependencies:
+ "@nodelib/fs.stat": ^2.0.2
+ "@nodelib/fs.walk": ^1.2.3
+ glob-parent: ^5.1.2
+ merge2: ^1.3.0
+ micromatch: ^4.0.4
+ checksum: f473105324a7780a20c06de842e15ddbb41d3cb7e71d1e4fe6e8373204f22245d54f5ab9e2061e6a1c613047345954d29b022e0e76f5c28b1df9858179a0e6d7
+ languageName: node
+ linkType: hard
+
+"fast-json-stable-stringify@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "fast-json-stable-stringify@npm:2.1.0"
+ checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb
+ languageName: node
+ linkType: hard
+
+"fast-levenshtein@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "fast-levenshtein@npm:2.0.6"
+ checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c
+ languageName: node
+ linkType: hard
+
+"fastq@npm:^1.6.0":
+ version: 1.13.0
+ resolution: "fastq@npm:1.13.0"
+ dependencies:
+ reusify: ^1.0.4
+ checksum: 32cf15c29afe622af187d12fc9cd93e160a0cb7c31a3bb6ace86b7dea3b28e7b72acde89c882663f307b2184e14782c6c664fa315973c03626c7d4bff070bb0b
+ languageName: node
+ linkType: hard
+
+"file-entry-cache@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "file-entry-cache@npm:6.0.1"
+ dependencies:
+ flat-cache: ^3.0.4
+ checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "fill-range@npm:7.0.1"
+ dependencies:
+ to-regex-range: ^5.0.1
+ checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917
+ languageName: node
+ linkType: hard
+
+"find-root@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "find-root@npm:1.1.0"
+ checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "find-up@npm:5.0.0"
+ dependencies:
+ locate-path: ^6.0.0
+ path-exists: ^4.0.0
+ checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095
+ languageName: node
+ linkType: hard
+
+"flat-cache@npm:^3.0.4":
+ version: 3.0.4
+ resolution: "flat-cache@npm:3.0.4"
+ dependencies:
+ flatted: ^3.1.0
+ rimraf: ^3.0.2
+ checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365
+ languageName: node
+ linkType: hard
+
+"flatted@npm:^3.1.0":
+ version: 3.2.5
+ resolution: "flatted@npm:3.2.5"
+ checksum: 3c436e9695ccca29620b4be5671dd72e5dd0a7500e0856611b7ca9bd8169f177f408c3b9abfa78dfe1493ee2d873e2c119080a8a9bee4e1a186a9e60ca6c89f1
+ languageName: node
+ linkType: hard
+
+"focus-visible@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "focus-visible@npm:5.2.0"
+ checksum: 876f646ef453680d3d34e9f9b23961527ffd5ccaed8690f423d4fbfa37ff023d98a490972bc1387850e37ec2e44958c81f6096ef95b67462e5c4b5404cf1dbb9
+ languageName: node
+ linkType: hard
+
+"for-each@npm:^0.3.3":
+ version: 0.3.3
+ resolution: "for-each@npm:0.3.3"
+ dependencies:
+ is-callable: ^1.1.3
+ checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "fs-minipass@npm:2.1.0"
+ dependencies:
+ minipass: ^3.0.0
+ checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1
+ languageName: node
+ linkType: hard
+
+"fs.realpath@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "fs.realpath@npm:1.0.0"
+ checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0
+ languageName: node
+ linkType: hard
+
+"fsevents@npm:~2.3.2":
+ version: 2.3.2
+ resolution: "fsevents@npm:2.3.2"
+ dependencies:
+ node-gyp: latest
+ checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"fsevents@patch:fsevents@~2.3.2#~builtin":
+ version: 2.3.2
+ resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7"
+ dependencies:
+ node-gyp: latest
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"function-bind@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "function-bind@npm:1.1.1"
+ checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a
+ languageName: node
+ linkType: hard
+
+"function.prototype.name@npm:^1.1.5":
+ version: 1.1.5
+ resolution: "function.prototype.name@npm:1.1.5"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.1.3
+ es-abstract: ^1.19.0
+ functions-have-names: ^1.2.2
+ checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27
+ languageName: node
+ linkType: hard
+
+"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3":
+ version: 1.2.3
+ resolution: "functions-have-names@npm:1.2.3"
+ checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5
+ languageName: node
+ linkType: hard
+
+"gauge@npm:^4.0.3":
+ version: 4.0.4
+ resolution: "gauge@npm:4.0.4"
+ dependencies:
+ aproba: ^1.0.3 || ^2.0.0
+ color-support: ^1.1.3
+ console-control-strings: ^1.1.0
+ has-unicode: ^2.0.1
+ signal-exit: ^3.0.7
+ string-width: ^4.2.3
+ strip-ansi: ^6.0.1
+ wide-align: ^1.1.5
+ checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d
+ languageName: node
+ linkType: hard
+
+"gensync@npm:^1.0.0-beta.2":
+ version: 1.0.0-beta.2
+ resolution: "gensync@npm:1.0.0-beta.2"
+ checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec
+ languageName: node
+ linkType: hard
+
+"get-func-name@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "get-func-name@npm:2.0.0"
+ checksum: 8d82e69f3e7fab9e27c547945dfe5cc0c57fc0adf08ce135dddb01081d75684a03e7a0487466f478872b341d52ac763ae49e660d01ab83741f74932085f693c3
+ languageName: node
+ linkType: hard
+
+"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1":
+ version: 1.1.2
+ resolution: "get-intrinsic@npm:1.1.2"
+ dependencies:
+ function-bind: ^1.1.1
+ has: ^1.0.3
+ has-symbols: ^1.0.3
+ checksum: 252f45491f2ba88ebf5b38018020c7cc3279de54b1d67ffb70c0cdf1dfa8ab31cd56467b5d117a8b4275b7a4dde91f86766b163a17a850f036528a7b2faafb2b
+ languageName: node
+ linkType: hard
+
+"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "get-intrinsic@npm:1.2.1"
+ dependencies:
+ function-bind: ^1.1.1
+ has: ^1.0.3
+ has-proto: ^1.0.1
+ has-symbols: ^1.0.3
+ checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f
+ languageName: node
+ linkType: hard
+
+"get-symbol-description@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "get-symbol-description@npm:1.0.0"
+ dependencies:
+ call-bind: ^1.0.2
+ get-intrinsic: ^1.1.1
+ checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "glob-parent@npm:5.1.2"
+ dependencies:
+ is-glob: ^4.0.1
+ checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "glob-parent@npm:6.0.2"
+ dependencies:
+ is-glob: ^4.0.3
+ checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8
+ languageName: node
+ linkType: hard
+
+"glob@npm:^7.1.3, glob@npm:^7.1.4":
+ version: 7.2.3
+ resolution: "glob@npm:7.2.3"
+ dependencies:
+ fs.realpath: ^1.0.0
+ inflight: ^1.0.4
+ inherits: 2
+ minimatch: ^3.1.1
+ once: ^1.3.0
+ path-is-absolute: ^1.0.0
+ checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133
+ languageName: node
+ linkType: hard
+
+"glob@npm:^8.0.1":
+ version: 8.0.3
+ resolution: "glob@npm:8.0.3"
+ dependencies:
+ fs.realpath: ^1.0.0
+ inflight: ^1.0.4
+ inherits: 2
+ minimatch: ^5.0.1
+ once: ^1.3.0
+ checksum: 50bcdea19d8e79d8de5f460b1939ffc2b3299eac28deb502093fdca22a78efebc03e66bf54f0abc3d3d07d8134d19a32850288b7440d77e072aa55f9d33b18c5
+ languageName: node
+ linkType: hard
+
+"globals@npm:^11.1.0":
+ version: 11.12.0
+ resolution: "globals@npm:11.12.0"
+ checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e
+ languageName: node
+ linkType: hard
+
+"globals@npm:^13.19.0":
+ version: 13.21.0
+ resolution: "globals@npm:13.21.0"
+ dependencies:
+ type-fest: ^0.20.2
+ checksum: 86c92ca8a04efd864c10852cd9abb1ebe6d447dcc72936783e66eaba1087d7dba5c9c3421a48d6ca722c319378754dbcc3f3f732dbe47592d7de908edf58a773
+ languageName: node
+ linkType: hard
+
+"globalthis@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "globalthis@npm:1.0.3"
+ dependencies:
+ define-properties: ^1.1.3
+ checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998
+ languageName: node
+ linkType: hard
+
+"globby@npm:^11.1.0":
+ version: 11.1.0
+ resolution: "globby@npm:11.1.0"
+ dependencies:
+ array-union: ^2.1.0
+ dir-glob: ^3.0.1
+ fast-glob: ^3.2.9
+ ignore: ^5.2.0
+ merge2: ^1.4.1
+ slash: ^3.0.0
+ checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6
+ languageName: node
+ linkType: hard
+
+"gopd@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "gopd@npm:1.0.1"
+ dependencies:
+ get-intrinsic: ^1.1.3
+ checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.2.6":
+ version: 4.2.10
+ resolution: "graceful-fs@npm:4.2.10"
+ checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da
+ languageName: node
+ linkType: hard
+
+"graphemer@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "graphemer@npm:1.4.0"
+ checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673
+ languageName: node
+ linkType: hard
+
+"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-bigints@npm:1.0.2"
+ checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "has-flag@npm:3.0.0"
+ checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "has-flag@npm:4.0.0"
+ checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad
+ languageName: node
+ linkType: hard
+
+"has-property-descriptors@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "has-property-descriptors@npm:1.0.0"
+ dependencies:
+ get-intrinsic: ^1.1.1
+ checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb
+ languageName: node
+ linkType: hard
+
+"has-proto@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "has-proto@npm:1.0.1"
+ checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e
+ languageName: node
+ linkType: hard
+
+"has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has-symbols@npm:1.0.3"
+ checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410
+ languageName: node
+ linkType: hard
+
+"has-tostringtag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "has-tostringtag@npm:1.0.0"
+ dependencies:
+ has-symbols: ^1.0.2
+ checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c
+ languageName: node
+ linkType: hard
+
+"has-unicode@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "has-unicode@npm:2.0.1"
+ checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400
+ languageName: node
+ linkType: hard
+
+"has@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has@npm:1.0.3"
+ dependencies:
+ function-bind: ^1.1.1
+ checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792
+ languageName: node
+ linkType: hard
+
+"hoist-non-react-statics@npm:^3.3.1":
+ version: 3.3.2
+ resolution: "hoist-non-react-statics@npm:3.3.2"
+ dependencies:
+ react-is: ^16.7.0
+ checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8
+ languageName: node
+ linkType: hard
+
+"http-cache-semantics@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "http-cache-semantics@npm:4.1.0"
+ checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42
+ languageName: node
+ linkType: hard
+
+"http-proxy-agent@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "http-proxy-agent@npm:5.0.0"
+ dependencies:
+ "@tootallnate/once": 2
+ agent-base: 6
+ debug: 4
+ checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786
+ languageName: node
+ linkType: hard
+
+"https-proxy-agent@npm:^5.0.0":
+ version: 5.0.1
+ resolution: "https-proxy-agent@npm:5.0.1"
+ dependencies:
+ agent-base: 6
+ debug: 4
+ checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765
+ languageName: node
+ linkType: hard
+
+"humanize-ms@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "humanize-ms@npm:1.2.1"
+ dependencies:
+ ms: ^2.0.0
+ checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:^0.6.2":
+ version: 0.6.3
+ resolution: "iconv-lite@npm:0.6.3"
+ dependencies:
+ safer-buffer: ">= 2.1.2 < 3.0.0"
+ checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf
+ languageName: node
+ linkType: hard
+
+"ignore@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "ignore@npm:5.2.0"
+ checksum: 6b1f926792d614f64c6c83da3a1f9c83f6196c2839aa41e1e32dd7b8d174cef2e329d75caabb62cb61ce9dc432f75e67d07d122a037312db7caa73166a1bdb77
+ languageName: node
+ linkType: hard
+
+"ignore@npm:^5.2.4":
+ version: 5.2.4
+ resolution: "ignore@npm:5.2.4"
+ checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef
+ languageName: node
+ linkType: hard
+
+"import-fresh@npm:^3.2.1":
+ version: 3.3.0
+ resolution: "import-fresh@npm:3.3.0"
+ dependencies:
+ parent-module: ^1.0.0
+ resolve-from: ^4.0.0
+ checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa
+ languageName: node
+ linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7
+ languageName: node
+ linkType: hard
+
+"indent-string@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "indent-string@npm:4.0.0"
+ checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612
+ languageName: node
+ linkType: hard
+
+"infer-owner@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "infer-owner@npm:1.0.4"
+ checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89
+ languageName: node
+ linkType: hard
+
+"inflight@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "inflight@npm:1.0.6"
+ dependencies:
+ once: ^1.3.0
+ wrappy: 1
+ checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2, inherits@npm:^2.0.3":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1
+ languageName: node
+ linkType: hard
+
+"internal-slot@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "internal-slot@npm:1.0.3"
+ dependencies:
+ get-intrinsic: ^1.1.0
+ has: ^1.0.3
+ side-channel: ^1.0.4
+ checksum: 1944f92e981e47aebc98a88ff0db579fd90543d937806104d0b96557b10c1f170c51fb777b97740a8b6ddeec585fca8c39ae99fd08a8e058dfc8ab70937238bf
+ languageName: node
+ linkType: hard
+
+"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "internal-slot@npm:1.0.5"
+ dependencies:
+ get-intrinsic: ^1.2.0
+ has: ^1.0.3
+ side-channel: ^1.0.4
+ checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a
+ languageName: node
+ linkType: hard
+
+"ip@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "ip@npm:2.0.0"
+ checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349
+ languageName: node
+ linkType: hard
+
+"is-arguments@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "is-arguments@npm:1.1.1"
+ dependencies:
+ call-bind: ^1.0.2
+ has-tostringtag: ^1.0.0
+ checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27
+ languageName: node
+ linkType: hard
+
+"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "is-array-buffer@npm:3.0.2"
+ dependencies:
+ call-bind: ^1.0.2
+ get-intrinsic: ^1.2.0
+ is-typed-array: ^1.1.10
+ checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14
+ languageName: node
+ linkType: hard
+
+"is-arrayish@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "is-arrayish@npm:0.2.1"
+ checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f
+ languageName: node
+ linkType: hard
+
+"is-async-function@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is-async-function@npm:2.0.0"
+ dependencies:
+ has-tostringtag: ^1.0.0
+ checksum: e3471d95e6c014bf37cad8a93f2f4b6aac962178e0a5041e8903147166964fdc1c5c1d2ef87e86d77322c370ca18f2ea004fa7420581fa747bcaf7c223069dbd
+ languageName: node
+ linkType: hard
+
+"is-bigint@npm:^1.0.1":
+ version: 1.0.4
+ resolution: "is-bigint@npm:1.0.4"
+ dependencies:
+ has-bigints: ^1.0.1
+ checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666
+ languageName: node
+ linkType: hard
+
+"is-boolean-object@npm:^1.1.0":
+ version: 1.1.2
+ resolution: "is-boolean-object@npm:1.1.2"
+ dependencies:
+ call-bind: ^1.0.2
+ has-tostringtag: ^1.0.0
+ checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222
+ languageName: node
+ linkType: hard
+
+"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "is-callable@npm:1.2.4"
+ checksum: 1a28d57dc435797dae04b173b65d6d1e77d4f16276e9eff973f994eadcfdc30a017e6a597f092752a083c1103cceb56c91e3dadc6692fedb9898dfaba701575f
+ languageName: node
+ linkType: hard
+
+"is-callable@npm:^1.2.7":
+ version: 1.2.7
+ resolution: "is-callable@npm:1.2.7"
+ checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.13.0":
+ version: 2.13.0
+ resolution: "is-core-module@npm:2.13.0"
+ dependencies:
+ has: ^1.0.3
+ checksum: 053ab101fb390bfeb2333360fd131387bed54e476b26860dc7f5a700bbf34a0ec4454f7c8c4d43e8a0030957e4b3db6e16d35e1890ea6fb654c833095e040355
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.9.0":
+ version: 2.9.0
+ resolution: "is-core-module@npm:2.9.0"
+ dependencies:
+ has: ^1.0.3
+ checksum: b27034318b4b462f1c8f1dfb1b32baecd651d891a4e2d1922135daeff4141dfced2b82b07aef83ef54275c4a3526aa38da859223664d0868ca24182badb784ce
+ languageName: node
+ linkType: hard
+
+"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "is-date-object@npm:1.0.5"
+ dependencies:
+ has-tostringtag: ^1.0.0
+ checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc
+ languageName: node
+ linkType: hard
+
+"is-extglob@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "is-extglob@npm:2.1.1"
+ checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85
+ languageName: node
+ linkType: hard
+
+"is-finalizationregistry@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-finalizationregistry@npm:1.0.2"
+ dependencies:
+ call-bind: ^1.0.2
+ checksum: 4f243a8e06228cd45bdab8608d2cb7abfc20f6f0189c8ac21ea8d603f1f196eabd531ce0bb8e08cbab047e9845ef2c191a3761c9a17ad5cabf8b35499c4ad35d
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-fullwidth-code-point@npm:3.0.0"
+ checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348
+ languageName: node
+ linkType: hard
+
+"is-generator-function@npm:^1.0.10":
+ version: 1.0.10
+ resolution: "is-generator-function@npm:1.0.10"
+ dependencies:
+ has-tostringtag: ^1.0.0
+ checksum: d54644e7dbaccef15ceb1e5d91d680eb5068c9ee9f9eb0a9e04173eb5542c9b51b5ab52c5537f5703e48d5fddfd376817c1ca07a84a407b7115b769d4bdde72b
+ languageName: node
+ linkType: hard
+
+"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3":
+ version: 4.0.3
+ resolution: "is-glob@npm:4.0.3"
+ dependencies:
+ is-extglob: ^2.1.1
+ checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4
+ languageName: node
+ linkType: hard
+
+"is-lambda@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-lambda@npm:1.0.1"
+ checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35
+ languageName: node
+ linkType: hard
+
+"is-map@npm:^2.0.1, is-map@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "is-map@npm:2.0.2"
+ checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728
+ languageName: node
+ linkType: hard
+
+"is-negative-zero@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "is-negative-zero@npm:2.0.2"
+ checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a
+ languageName: node
+ linkType: hard
+
+"is-number-object@npm:^1.0.4":
+ version: 1.0.7
+ resolution: "is-number-object@npm:1.0.7"
+ dependencies:
+ has-tostringtag: ^1.0.0
+ checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7
+ languageName: node
+ linkType: hard
+
+"is-number@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "is-number@npm:7.0.0"
+ checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a
+ languageName: node
+ linkType: hard
+
+"is-obj@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is-obj@npm:2.0.0"
+ checksum: c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08
+ languageName: node
+ linkType: hard
+
+"is-path-inside@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "is-path-inside@npm:3.0.3"
+ checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9
+ languageName: node
+ linkType: hard
+
+"is-regex@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "is-regex@npm:1.1.4"
+ dependencies:
+ call-bind: ^1.0.2
+ has-tostringtag: ^1.0.0
+ checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652
+ languageName: node
+ linkType: hard
+
+"is-set@npm:^2.0.1, is-set@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "is-set@npm:2.0.2"
+ checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57
+ languageName: node
+ linkType: hard
+
+"is-shared-array-buffer@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-shared-array-buffer@npm:1.0.2"
+ dependencies:
+ call-bind: ^1.0.2
+ checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a
+ languageName: node
+ linkType: hard
+
+"is-string@npm:^1.0.5, is-string@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "is-string@npm:1.0.7"
+ dependencies:
+ has-tostringtag: ^1.0.0
+ checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989
+ languageName: node
+ linkType: hard
+
+"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "is-symbol@npm:1.0.4"
+ dependencies:
+ has-symbols: ^1.0.2
+ checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510
+ languageName: node
+ linkType: hard
+
+"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9":
+ version: 1.1.12
+ resolution: "is-typed-array@npm:1.1.12"
+ dependencies:
+ which-typed-array: ^1.1.11
+ checksum: 4c89c4a3be07186caddadf92197b17fda663a9d259ea0d44a85f171558270d36059d1c386d34a12cba22dfade5aba497ce22778e866adc9406098c8fc4771796
+ languageName: node
+ linkType: hard
+
+"is-weakmap@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "is-weakmap@npm:2.0.1"
+ checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6
+ languageName: node
+ linkType: hard
+
+"is-weakref@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-weakref@npm:1.0.2"
+ dependencies:
+ call-bind: ^1.0.2
+ checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de
+ languageName: node
+ linkType: hard
+
+"is-weakset@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "is-weakset@npm:2.0.2"
+ dependencies:
+ call-bind: ^1.0.2
+ get-intrinsic: ^1.1.1
+ checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367
+ languageName: node
+ linkType: hard
+
+"isarray@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "isarray@npm:2.0.5"
+ checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62
+ languageName: node
+ linkType: hard
+
+"iterator.prototype@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "iterator.prototype@npm:1.1.1"
+ dependencies:
+ define-properties: ^1.2.0
+ get-intrinsic: ^1.2.1
+ has-symbols: ^1.0.3
+ reflect.getprototypeof: ^1.0.3
+ checksum: 2807469a39e280ff25ed95f8f84197b870a12fae2b15cb8779bbb0d12bc0e648be4d6277bedb6f4ae05d3fc94f05a29f90c018335003f27045582cf5455248df
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "js-tokens@npm:4.0.0"
+ checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:4.1.0, js-yaml@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "js-yaml@npm:4.1.0"
+ dependencies:
+ argparse: ^2.0.1
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a
+ languageName: node
+ linkType: hard
+
+"jsesc@npm:^2.5.1":
+ version: 2.5.2
+ resolution: "jsesc@npm:2.5.2"
+ bin:
+ jsesc: bin/jsesc
+ checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d
+ languageName: node
+ linkType: hard
+
+"json-parse-even-better-errors@npm:^2.3.0":
+ version: 2.3.1
+ resolution: "json-parse-even-better-errors@npm:2.3.1"
+ checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f
+ languageName: node
+ linkType: hard
+
+"json-schema-traverse@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "json-schema-traverse@npm:0.4.1"
+ checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b
+ languageName: node
+ linkType: hard
+
+"json-schema-traverse@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "json-schema-traverse@npm:1.0.0"
+ checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad
+ languageName: node
+ linkType: hard
+
+"json-stable-stringify-without-jsonify@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
+ checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215
+ languageName: node
+ linkType: hard
+
+"json5@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "json5@npm:1.0.2"
+ dependencies:
+ minimist: ^1.2.0
+ bin:
+ json5: lib/cli.js
+ checksum: 866458a8c58a95a49bef3adba929c625e82532bcff1fe93f01d29cb02cac7c3fe1f4b79951b7792c2da9de0b32871a8401a6e3c5b36778ad852bf5b8a61165d7
+ languageName: node
+ linkType: hard
+
+"json5@npm:^2.2.3":
+ version: 2.2.3
+ resolution: "json5@npm:2.2.3"
+ bin:
+ json5: lib/cli.js
+ checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349
+ languageName: node
+ linkType: hard
+
+"jsonc-parser@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "jsonc-parser@npm:3.2.0"
+ checksum: 946dd9a5f326b745aa326d48a7257e3f4a4b62c5e98ec8e49fa2bdd8d96cef7e6febf1399f5c7016114fd1f68a1c62c6138826d5d90bc650448e3cf0951c53c7
+ languageName: node
+ linkType: hard
+
+"jsx-ast-utils@npm:^2.4.1 || ^3.0.0":
+ version: 3.3.0
+ resolution: "jsx-ast-utils@npm:3.3.0"
+ dependencies:
+ array-includes: ^3.1.4
+ object.assign: ^4.1.2
+ checksum: e3c0667e8979c70600fb0456b19f0ec194994c953678ac2772a819d8d5740df2ed751e49e4f1db7869bf63251585a93b18acd42ef02269fe41cb23941d0d4950
+ languageName: node
+ linkType: hard
+
+"levn@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "levn@npm:0.4.1"
+ dependencies:
+ prelude-ls: ^1.2.1
+ type-check: ~0.4.0
+ checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4
+ languageName: node
+ linkType: hard
+
+"lines-and-columns@npm:^1.1.6":
+ version: 1.2.4
+ resolution: "lines-and-columns@npm:1.2.4"
+ checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5
+ languageName: node
+ linkType: hard
+
+"local-pkg@npm:^0.4.3":
+ version: 0.4.3
+ resolution: "local-pkg@npm:0.4.3"
+ checksum: 7825aca531dd6afa3a3712a0208697aa4a5cd009065f32e3fb732aafcc42ed11f277b5ac67229222e96f4def55197171cdf3d5522d0381b489d2e5547b407d55
+ languageName: node
+ linkType: hard
+
+"locate-path@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "locate-path@npm:6.0.0"
+ dependencies:
+ p-locate: ^5.0.0
+ checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a
+ languageName: node
+ linkType: hard
+
+"lodash.merge@npm:^4.6.2":
+ version: 4.6.2
+ resolution: "lodash.merge@npm:4.6.2"
+ checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005
+ languageName: node
+ linkType: hard
+
+"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "loose-envify@npm:1.4.0"
+ dependencies:
+ js-tokens: ^3.0.0 || ^4.0.0
+ bin:
+ loose-envify: cli.js
+ checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4
+ languageName: node
+ linkType: hard
+
+"loupe@npm:^2.3.1":
+ version: 2.3.4
+ resolution: "loupe@npm:2.3.4"
+ dependencies:
+ get-func-name: ^2.0.0
+ checksum: 5af91db61aa18530f1749a64735ee194ac263e65e9f4d1562bf3036c591f1baa948289c193e0e34c7b5e2c1b75d3c1dc4fce87f5edb3cee10b0c0df46bc9ffb3
+ languageName: node
+ linkType: hard
+
+"loupe@npm:^2.3.6":
+ version: 2.3.6
+ resolution: "loupe@npm:2.3.6"
+ dependencies:
+ get-func-name: ^2.0.0
+ checksum: cc83f1b124a1df7384601d72d8d1f5fe95fd7a8185469fec48bb2e4027e45243949e7a013e8d91051a138451ff0552310c32aa9786e60b6a30d1e801bdc2163f
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^5.1.1":
+ version: 5.1.1
+ resolution: "lru-cache@npm:5.1.1"
+ dependencies:
+ yallist: ^3.0.2
+ checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "lru-cache@npm:6.0.0"
+ dependencies:
+ yallist: ^4.0.0
+ checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^7.7.1":
+ version: 7.13.2
+ resolution: "lru-cache@npm:7.13.2"
+ checksum: dfed24e52bae95edf490d0f28f4f14552319ac7e7dc37ae0b84a72e084949233821b33227271abe81d8361ac079810f9d171a706f316cfdeda135012e4311015
+ languageName: node
+ linkType: hard
+
+"magic-string@npm:^0.30.1":
+ version: 0.30.3
+ resolution: "magic-string@npm:0.30.3"
+ dependencies:
+ "@jridgewell/sourcemap-codec": ^1.4.15
+ checksum: a5a9ddf9bd3bf49a2de1048bf358464f1bda7b3cc1311550f4a0ba8f81a4070e25445d53a5ee28850161336f1bff3cf28aa3320c6b4aeff45ce3e689f300b2f3
+ languageName: node
+ linkType: hard
+
+"make-error@npm:^1.1.1":
+ version: 1.3.6
+ resolution: "make-error@npm:1.3.6"
+ checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402
+ languageName: node
+ linkType: hard
+
+"make-fetch-happen@npm:^10.0.3":
+ version: 10.2.0
+ resolution: "make-fetch-happen@npm:10.2.0"
+ dependencies:
+ agentkeepalive: ^4.2.1
+ cacache: ^16.1.0
+ http-cache-semantics: ^4.1.0
+ http-proxy-agent: ^5.0.0
+ https-proxy-agent: ^5.0.0
+ is-lambda: ^1.0.1
+ lru-cache: ^7.7.1
+ minipass: ^3.1.6
+ minipass-collect: ^1.0.2
+ minipass-fetch: ^2.0.3
+ minipass-flush: ^1.0.5
+ minipass-pipeline: ^1.2.4
+ negotiator: ^0.6.3
+ promise-retry: ^2.0.1
+ socks-proxy-agent: ^7.0.0
+ ssri: ^9.0.0
+ checksum: 2f6c294179972f56fab40fd8618f07841e06550692bb78f6da16e7afaa9dca78c345b08cf44a77a8907ef3948e4dc77e93eb7492b8381f1217d7ac057a7522f8
+ languageName: node
+ linkType: hard
+
+"merge2@npm:^1.3.0, merge2@npm:^1.4.1":
+ version: 1.4.1
+ resolution: "merge2@npm:1.4.1"
+ checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.4":
+ version: 4.0.5
+ resolution: "micromatch@npm:4.0.5"
+ dependencies:
+ braces: ^3.0.2
+ picomatch: ^2.3.1
+ checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "minimatch@npm:3.1.2"
+ dependencies:
+ brace-expansion: ^1.1.7
+ checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^5.0.1":
+ version: 5.1.0
+ resolution: "minimatch@npm:5.1.0"
+ dependencies:
+ brace-expansion: ^2.0.1
+ checksum: 15ce53d31a06361e8b7a629501b5c75491bc2b59712d53e802b1987121d91b433d73fcc5be92974fde66b2b51d8fb28d75a9ae900d249feb792bb1ba2a4f0a90
+ languageName: node
+ linkType: hard
+
+"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
+ version: 1.2.6
+ resolution: "minimist@npm:1.2.6"
+ checksum: d15428cd1e11eb14e1233bcfb88ae07ed7a147de251441d61158619dfb32c4d7e9061d09cab4825fdee18ecd6fce323228c8c47b5ba7cd20af378ca4048fb3fb
+ languageName: node
+ linkType: hard
+
+"minipass-collect@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "minipass-collect@npm:1.0.2"
+ dependencies:
+ minipass: ^3.0.0
+ checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10
+ languageName: node
+ linkType: hard
+
+"minipass-fetch@npm:^2.0.3":
+ version: 2.1.0
+ resolution: "minipass-fetch@npm:2.1.0"
+ dependencies:
+ encoding: ^0.1.13
+ minipass: ^3.1.6
+ minipass-sized: ^1.0.3
+ minizlib: ^2.1.2
+ dependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 1334732859a3f7959ed22589bafd9c40384b885aebb5932328071c33f86b3eb181d54c86919675d1825ab5f1c8e4f328878c863873258d113c29d79a4b0c9c9f
+ languageName: node
+ linkType: hard
+
+"minipass-flush@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "minipass-flush@npm:1.0.5"
+ dependencies:
+ minipass: ^3.0.0
+ checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf
+ languageName: node
+ linkType: hard
+
+"minipass-pipeline@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "minipass-pipeline@npm:1.2.4"
+ dependencies:
+ minipass: ^3.0.0
+ checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b
+ languageName: node
+ linkType: hard
+
+"minipass-sized@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "minipass-sized@npm:1.0.3"
+ dependencies:
+ minipass: ^3.0.0
+ checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6":
+ version: 3.3.5
+ resolution: "minipass@npm:3.3.5"
+ dependencies:
+ yallist: ^4.0.0
+ checksum: f89f02bcaa0e0e4bb4c44ec796008e69fbca62db0aba6ead1bc57d25bdaefdf42102130f4f9ecb7d9c6b6cd35ff7b0c7b97d001d3435da8e629fb68af3aea57e
+ languageName: node
+ linkType: hard
+
+"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "minizlib@npm:2.1.2"
+ dependencies:
+ minipass: ^3.0.0
+ yallist: ^4.0.0
+ checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "mkdirp@npm:1.0.4"
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f
+ languageName: node
+ linkType: hard
+
+"mlly@npm:^1.2.0, mlly@npm:^1.4.0":
+ version: 1.4.2
+ resolution: "mlly@npm:1.4.2"
+ dependencies:
+ acorn: ^8.10.0
+ pathe: ^1.1.1
+ pkg-types: ^1.0.3
+ ufo: ^1.3.0
+ checksum: ad0813eca133e59ac03b356b87deea57da96083dce7dda58a8eeb2dce92b7cc2315bedd9268f3ff8e98effe1867ddb1307486d4c5cd8be162daa8e0fa0a98ed4
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.1.2":
+ version: 2.1.2
+ resolution: "ms@npm:2.1.2"
+ checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f
+ languageName: node
+ linkType: hard
+
+"ms@npm:^2.0.0, ms@npm:^2.1.1":
+ version: 2.1.3
+ resolution: "ms@npm:2.1.3"
+ checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
+ languageName: node
+ linkType: hard
+
+"nanoid@npm:^3.3.6":
+ version: 3.3.6
+ resolution: "nanoid@npm:3.3.6"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3
+ languageName: node
+ linkType: hard
+
+"natural-compare@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "natural-compare@npm:1.4.0"
+ checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:^0.6.3":
+ version: 0.6.3
+ resolution: "negotiator@npm:0.6.3"
+ checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9
+ languageName: node
+ linkType: hard
+
+"node-gyp@npm:latest":
+ version: 9.1.0
+ resolution: "node-gyp@npm:9.1.0"
+ dependencies:
+ env-paths: ^2.2.0
+ glob: ^7.1.4
+ graceful-fs: ^4.2.6
+ make-fetch-happen: ^10.0.3
+ nopt: ^5.0.0
+ npmlog: ^6.0.0
+ rimraf: ^3.0.2
+ semver: ^7.3.5
+ tar: ^6.1.2
+ which: ^2.0.2
+ bin:
+ node-gyp: bin/node-gyp.js
+ checksum: 1437fa4a879b5b9010604128e8da8609b57c66034262087539ee04a8b764b8436af2be01bab66f8fc729a3adba2dcc21b10a32b9f552696c3fa8cd657d134fc4
+ languageName: node
+ linkType: hard
+
+"node-releases@npm:^2.0.13":
+ version: 2.0.13
+ resolution: "node-releases@npm:2.0.13"
+ checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3
+ languageName: node
+ linkType: hard
+
+"nopt@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "nopt@npm:5.0.0"
+ dependencies:
+ abbrev: 1
+ bin:
+ nopt: bin/nopt.js
+ checksum: d35fdec187269503843924e0114c0c6533fb54bbf1620d0f28b4b60ba01712d6687f62565c55cc20a504eff0fbe5c63e22340c3fad549ad40469ffb611b04f2f
+ languageName: node
+ linkType: hard
+
+"npmlog@npm:^6.0.0":
+ version: 6.0.2
+ resolution: "npmlog@npm:6.0.2"
+ dependencies:
+ are-we-there-yet: ^3.0.0
+ console-control-strings: ^1.1.0
+ gauge: ^4.0.3
+ set-blocking: ^2.0.0
+ checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a
+ languageName: node
+ linkType: hard
+
+"object-assign@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "object-assign@npm:4.1.1"
+ checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
+ languageName: node
+ linkType: hard
+
+"object-inspect@npm:^1.12.0, object-inspect@npm:^1.9.0":
+ version: 1.12.2
+ resolution: "object-inspect@npm:1.12.2"
+ checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2
+ languageName: node
+ linkType: hard
+
+"object-inspect@npm:^1.12.3":
+ version: 1.12.3
+ resolution: "object-inspect@npm:1.12.3"
+ checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db
+ languageName: node
+ linkType: hard
+
+"object-is@npm:^1.1.5":
+ version: 1.1.5
+ resolution: "object-is@npm:1.1.5"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.1.3
+ checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe
+ languageName: node
+ linkType: hard
+
+"object-keys@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "object-keys@npm:1.1.1"
+ checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a
+ languageName: node
+ linkType: hard
+
+"object.assign@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "object.assign@npm:4.1.2"
+ dependencies:
+ call-bind: ^1.0.0
+ define-properties: ^1.1.3
+ has-symbols: ^1.0.1
+ object-keys: ^1.1.1
+ checksum: d621d832ed7b16ac74027adb87196804a500d80d9aca536fccb7ba48d33a7e9306a75f94c1d29cbfa324bc091bfc530bc24789568efdaee6a47fcfa298993814
+ languageName: node
+ linkType: hard
+
+"object.assign@npm:^4.1.4":
+ version: 4.1.4
+ resolution: "object.assign@npm:4.1.4"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.1.4
+ has-symbols: ^1.0.3
+ object-keys: ^1.1.1
+ checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864
+ languageName: node
+ linkType: hard
+
+"object.entries@npm:^1.1.6":
+ version: 1.1.7
+ resolution: "object.entries@npm:1.1.7"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ checksum: da287d434e7e32989586cd734382364ba826a2527f2bc82e6acbf9f9bfafa35d51018b66ec02543ffdfa2a5ba4af2b6f1ca6e588c65030cb4fd9c67d6ced594c
+ languageName: node
+ linkType: hard
+
+"object.fromentries@npm:^2.0.6":
+ version: 2.0.7
+ resolution: "object.fromentries@npm:2.0.7"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ checksum: 7341ce246e248b39a431b87a9ddd331ff52a454deb79afebc95609f94b1f8238966cf21f52188f2a353f0fdf83294f32f1ebf1f7826aae915ebad21fd0678065
+ languageName: node
+ linkType: hard
+
+"object.groupby@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "object.groupby@npm:1.0.1"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ get-intrinsic: ^1.2.1
+ checksum: d7959d6eaaba358b1608066fc67ac97f23ce6f573dc8fc661f68c52be165266fcb02937076aedb0e42722fdda0bdc0bbf74778196ac04868178888e9fd3b78b5
+ languageName: node
+ linkType: hard
+
+"object.hasown@npm:^1.1.2":
+ version: 1.1.3
+ resolution: "object.hasown@npm:1.1.3"
+ dependencies:
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ checksum: 76bc17356f6124542fb47e5d0e78d531eafa4bba3fc2d6fc4b1a8ce8b6878912366c0d99f37ce5c84ada8fd79df7aa6ea1214fddf721f43e093ad2df51f27da1
+ languageName: node
+ linkType: hard
+
+"object.values@npm:^1.1.6":
+ version: 1.1.7
+ resolution: "object.values@npm:1.1.7"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ checksum: f3e4ae4f21eb1cc7cebb6ce036d4c67b36e1c750428d7b7623c56a0db90edced63d08af8a316d81dfb7c41a3a5fa81b05b7cc9426e98d7da986b1682460f0777
+ languageName: node
+ linkType: hard
+
+"once@npm:^1.3.0":
+ version: 1.4.0
+ resolution: "once@npm:1.4.0"
+ dependencies:
+ wrappy: 1
+ checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68
+ languageName: node
+ linkType: hard
+
+"optionator@npm:^0.9.3":
+ version: 0.9.3
+ resolution: "optionator@npm:0.9.3"
+ dependencies:
+ "@aashutoshrathi/word-wrap": ^1.2.3
+ deep-is: ^0.1.3
+ fast-levenshtein: ^2.0.6
+ levn: ^0.4.1
+ prelude-ls: ^1.2.1
+ type-check: ^0.4.0
+ checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^3.0.2":
+ version: 3.1.0
+ resolution: "p-limit@npm:3.1.0"
+ dependencies:
+ yocto-queue: ^0.1.0
+ checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "p-limit@npm:4.0.0"
+ dependencies:
+ yocto-queue: ^1.0.0
+ checksum: 01d9d70695187788f984226e16c903475ec6a947ee7b21948d6f597bed788e3112cc7ec2e171c1d37125057a5f45f3da21d8653e04a3a793589e12e9e80e756b
+ languageName: node
+ linkType: hard
+
+"p-locate@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "p-locate@npm:5.0.0"
+ dependencies:
+ p-limit: ^3.0.2
+ checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3
+ languageName: node
+ linkType: hard
+
+"p-map@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "p-map@npm:4.0.0"
+ dependencies:
+ aggregate-error: ^3.0.0
+ checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c
+ languageName: node
+ linkType: hard
+
+"parent-module@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "parent-module@npm:1.0.1"
+ dependencies:
+ callsites: ^3.0.0
+ checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff
+ languageName: node
+ linkType: hard
+
+"parse-code-context@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "parse-code-context@npm:1.0.0"
+ checksum: d49785bd70d60ab4bd4ca432c9b77b42fa607921c6aee577643d5458234cf47abc5771cac2b1f21f8a18a498140b3d039bd1a24e612bc4e485d761d2e85b6088
+ languageName: node
+ linkType: hard
+
+"parse-json@npm:^5.0.0":
+ version: 5.2.0
+ resolution: "parse-json@npm:5.2.0"
+ dependencies:
+ "@babel/code-frame": ^7.0.0
+ error-ex: ^1.3.1
+ json-parse-even-better-errors: ^2.3.0
+ lines-and-columns: ^1.1.6
+ checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-exists@npm:4.0.0"
+ checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1
+ languageName: node
+ linkType: hard
+
+"path-is-absolute@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "path-is-absolute@npm:1.0.1"
+ checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "path-key@npm:3.1.1"
+ checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020
+ languageName: node
+ linkType: hard
+
+"path-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a
+ languageName: node
+ linkType: hard
+
+"path-type@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-type@npm:4.0.0"
+ checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45
+ languageName: node
+ linkType: hard
+
+"pathe@npm:^1.1.0, pathe@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "pathe@npm:1.1.1"
+ checksum: 34ab3da2e5aa832ebc6a330ffe3f73d7ba8aec6e899b53b8ec4f4018de08e40742802deb12cf5add9c73b7bf719b62c0778246bd376ca62b0fb23e0dde44b759
+ languageName: node
+ linkType: hard
+
+"pathval@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "pathval@npm:1.1.1"
+ checksum: 090e3147716647fb7fb5b4b8c8e5b55e5d0a6086d085b6cd23f3d3c01fcf0ff56fd3cc22f2f4a033bd2e46ed55d61ed8379e123b42afe7d531a2a5fc8bb556d6
+ languageName: node
+ linkType: hard
+
+"picocolors@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "picocolors@npm:1.0.0"
+ checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "picomatch@npm:2.3.1"
+ checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf
+ languageName: node
+ linkType: hard
+
+"pkg-types@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "pkg-types@npm:1.0.3"
+ dependencies:
+ jsonc-parser: ^3.2.0
+ mlly: ^1.2.0
+ pathe: ^1.1.0
+ checksum: 4b305c834b912ddcc8a0fe77530c0b0321fe340396f84cbb87aecdbc126606f47f2178f23b8639e71a4870f9631c7217aef52ffed0ae17ea2dbbe7e43d116a6e
+ languageName: node
+ linkType: hard
+
+"postcss@npm:^8.4.27":
+ version: 8.4.29
+ resolution: "postcss@npm:8.4.29"
+ dependencies:
+ nanoid: ^3.3.6
+ picocolors: ^1.0.0
+ source-map-js: ^1.0.2
+ checksum: dd6daa25e781db9ae5b651d9b7bfde0ec6e60e86a37da69a18eb4773d5ddd51e28fc4ff054fbdc04636a31462e6bf09a1e50986f69ac52b10d46b7457cd36d12
+ languageName: node
+ linkType: hard
+
+"prelude-ls@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "prelude-ls@npm:1.2.1"
+ checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a
+ languageName: node
+ linkType: hard
+
+"prettier@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "prettier@npm:3.0.3"
+ bin:
+ prettier: bin/prettier.cjs
+ checksum: e10b9af02b281f6c617362ebd2571b1d7fc9fb8a3bd17e371754428cda992e5e8d8b7a046e8f7d3e2da1dcd21aa001e2e3c797402ebb6111b5cd19609dd228e0
+ languageName: node
+ linkType: hard
+
+"pretty-format@npm:^29.5.0":
+ version: 29.7.0
+ resolution: "pretty-format@npm:29.7.0"
+ dependencies:
+ "@jest/schemas": ^29.6.3
+ ansi-styles: ^5.0.0
+ react-is: ^18.0.0
+ checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6
+ languageName: node
+ linkType: hard
+
+"promise-inflight@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "promise-inflight@npm:1.0.1"
+ checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981
+ languageName: node
+ linkType: hard
+
+"promise-retry@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "promise-retry@npm:2.0.1"
+ dependencies:
+ err-code: ^2.0.2
+ retry: ^0.12.0
+ checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429
+ languageName: node
+ linkType: hard
+
+"prop-types@npm:^15.8.1":
+ version: 15.8.1
+ resolution: "prop-types@npm:15.8.1"
+ dependencies:
+ loose-envify: ^1.4.0
+ object-assign: ^4.1.1
+ react-is: ^16.13.1
+ checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459
+ languageName: node
+ linkType: hard
+
+"punycode@npm:^2.1.0":
+ version: 2.1.1
+ resolution: "punycode@npm:2.1.1"
+ checksum: 823bf443c6dd14f669984dea25757b37993f67e8d94698996064035edd43bed8a5a17a9f12e439c2b35df1078c6bec05a6c86e336209eb1061e8025c481168e8
+ languageName: node
+ linkType: hard
+
+"queue-microtask@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "queue-microtask@npm:1.2.3"
+ checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4
+ languageName: node
+ linkType: hard
+
+"react-dom@npm:^18.2.0":
+ version: 18.2.0
+ resolution: "react-dom@npm:18.2.0"
+ dependencies:
+ loose-envify: ^1.1.0
+ scheduler: ^0.23.0
+ peerDependencies:
+ react: ^18.2.0
+ checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc
+ languageName: node
+ linkType: hard
+
+"react-hook-form@npm:^7.46.1":
+ version: 7.46.1
+ resolution: "react-hook-form@npm:7.46.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17 || ^18
+ checksum: 9c11ba454ce5b2a16e7499f2ca710e0c0cff227f39689b8e7985902f27f99bfc7a2c49f145ef228528764cf8286bf6101fc8a0f5094ce652eb31cab1684518d1
+ languageName: node
+ linkType: hard
+
+"react-hooks-global-state@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "react-hooks-global-state@npm:2.1.0"
+ dependencies:
+ zustand: 4.0.0
+ peerDependencies:
+ react: ">=16.8.0"
+ checksum: 43e08b617fec1d6418eb47843d917dd9767f09ede8a3e54695d8071c6042572337d2f0403ce845ff0eaad0f65cb88f11d40e5886665e3eb61ab40878d1f4b566
+ languageName: node
+ linkType: hard
+
+"react-icons@npm:^4.11.0":
+ version: 4.11.0
+ resolution: "react-icons@npm:4.11.0"
+ peerDependencies:
+ react: "*"
+ checksum: 7b8b80bbe2dabcc54b6c2129b7761a04b19caebe24389adc7683478ef41212b9ca0b53c63abcc06b3c01b94c84855ec5142b4c357e19c4aaaad9a4db23a3c485
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^16.13.1, react-is@npm:^16.7.0":
+ version: 16.13.1
+ resolution: "react-is@npm:16.13.1"
+ checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^18.0.0, react-is@npm:^18.2.0":
+ version: 18.2.0
+ resolution: "react-is@npm:18.2.0"
+ checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e
+ languageName: node
+ linkType: hard
+
+"react-refresh@npm:^0.14.0":
+ version: 0.14.0
+ resolution: "react-refresh@npm:0.14.0"
+ checksum: dc69fa8c993df512f42dd0f1b604978ae89bd747c0ed5ec595c0cc50d535fb2696619ccd98ae28775cc01d0a7c146a532f0f7fb81dc22e1977c242a4912312f4
+ languageName: node
+ linkType: hard
+
+"react-router-dom@npm:^6.15.0":
+ version: 6.15.0
+ resolution: "react-router-dom@npm:6.15.0"
+ dependencies:
+ "@remix-run/router": 1.8.0
+ react-router: 6.15.0
+ peerDependencies:
+ react: ">=16.8"
+ react-dom: ">=16.8"
+ checksum: 95301837e293654f00934de6a4bdb27bfb06f613503e4cce7a93f19384793729832e7479d50faf3b9457d149014d4df40a3ee3a5193d7e3a3caadb7aaa6ec0f9
+ languageName: node
+ linkType: hard
+
+"react-router@npm:6.15.0":
+ version: 6.15.0
+ resolution: "react-router@npm:6.15.0"
+ dependencies:
+ "@remix-run/router": 1.8.0
+ peerDependencies:
+ react: ">=16.8"
+ checksum: 345b29277e13997f2625f0037f537eaf1955bb9f44ebfea80dd3ff83fc06273f7b64e1be944bfc75945fd2af5af917874133a8a93ed5ecaca523be8f045ae166
+ languageName: node
+ linkType: hard
+
+"react@npm:^18.2.0":
+ version: 18.2.0
+ resolution: "react@npm:18.2.0"
+ dependencies:
+ loose-envify: ^1.1.0
+ checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:^3.6.0":
+ version: 3.6.0
+ resolution: "readable-stream@npm:3.6.0"
+ dependencies:
+ inherits: ^2.0.3
+ string_decoder: ^1.1.1
+ util-deprecate: ^1.0.1
+ checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8
+ languageName: node
+ linkType: hard
+
+"reflect.getprototypeof@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "reflect.getprototypeof@npm:1.0.4"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ get-intrinsic: ^1.2.1
+ globalthis: ^1.0.3
+ which-builtin-type: ^1.1.3
+ checksum: 16e2361988dbdd23274b53fb2b1b9cefeab876c3941a2543b4cadac6f989e3db3957b07a44aac46cfceb3e06e2871785ec2aac992d824f76292f3b5ee87f66f2
+ languageName: node
+ linkType: hard
+
+"regenerator-runtime@npm:^0.14.0":
+ version: 0.14.0
+ resolution: "regenerator-runtime@npm:0.14.0"
+ checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3
+ languageName: node
+ linkType: hard
+
+"regexp.prototype.flags@npm:^1.4.3":
+ version: 1.4.3
+ resolution: "regexp.prototype.flags@npm:1.4.3"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.1.3
+ functions-have-names: ^1.2.2
+ checksum: 51228bae732592adb3ededd5e15426be25f289e9c4ef15212f4da73f4ec3919b6140806374b8894036a86020d054a8d2657d3fee6bb9b4d35d8939c20030b7a6
+ languageName: node
+ linkType: hard
+
+"regexp.prototype.flags@npm:^1.5.0":
+ version: 1.5.0
+ resolution: "regexp.prototype.flags@npm:1.5.0"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ functions-have-names: ^1.2.3
+ checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4
+ languageName: node
+ linkType: hard
+
+"require-from-string@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "require-from-string@npm:2.0.2"
+ checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b
+ languageName: node
+ linkType: hard
+
+"resolve-from@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "resolve-from@npm:4.0.0"
+ checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.19.0, resolve@npm:^1.22.4":
+ version: 1.22.4
+ resolution: "resolve@npm:1.22.4"
+ dependencies:
+ is-core-module: ^2.13.0
+ path-parse: ^1.0.7
+ supports-preserve-symlinks-flag: ^1.0.0
+ bin:
+ resolve: bin/resolve
+ checksum: 23f25174c2736ce24c6d918910e0d1f89b6b38fefa07a995dff864acd7863d59a7f049e691f93b4b2ee29696303390d921552b6d1b841ed4a8101f517e1d0124
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^2.0.0-next.4":
+ version: 2.0.0-next.4
+ resolution: "resolve@npm:2.0.0-next.4"
+ dependencies:
+ is-core-module: ^2.9.0
+ path-parse: ^1.0.7
+ supports-preserve-symlinks-flag: ^1.0.0
+ bin:
+ resolve: bin/resolve
+ checksum: c438ac9a650f2030fd074219d7f12ceb983b475da2d89ad3d6dd05fbf6b7a0a8cd37d4d10b43cb1f632bc19f22246ab7f36ebda54d84a29bfb2910a0680906d3
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin":
+ version: 1.22.4
+ resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=07638b"
+ dependencies:
+ is-core-module: ^2.13.0
+ path-parse: ^1.0.7
+ supports-preserve-symlinks-flag: ^1.0.0
+ bin:
+ resolve: bin/resolve
+ checksum: c45f2545fdc4d21883861b032789e20aa67a2f2692f68da320cc84d5724cd02f2923766c5354b3210897e88f1a7b3d6d2c7c22faeead8eed7078e4c783a444bc
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@^2.0.0-next.4#~builtin":
+ version: 2.0.0-next.4
+ resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin::version=2.0.0-next.4&hash=07638b"
+ dependencies:
+ is-core-module: ^2.9.0
+ path-parse: ^1.0.7
+ supports-preserve-symlinks-flag: ^1.0.0
+ bin:
+ resolve: bin/resolve
+ checksum: 4bf9f4f8a458607af90518ff73c67a4bc1a38b5a23fef2bb0ccbd45e8be89820a1639b637b0ba377eb2be9eedfb1739a84cde24fe4cd670c8207d8fea922b011
+ languageName: node
+ linkType: hard
+
+"retry@npm:^0.12.0":
+ version: 0.12.0
+ resolution: "retry@npm:0.12.0"
+ checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c
+ languageName: node
+ linkType: hard
+
+"reusify@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "reusify@npm:1.0.4"
+ checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "rimraf@npm:3.0.2"
+ dependencies:
+ glob: ^7.1.3
+ bin:
+ rimraf: bin.js
+ checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0
+ languageName: node
+ linkType: hard
+
+"rollup@npm:^3.27.1, rollup@npm:^3.28.0":
+ version: 3.29.1
+ resolution: "rollup@npm:3.29.1"
+ dependencies:
+ fsevents: ~2.3.2
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ bin:
+ rollup: dist/bin/rollup
+ checksum: eb92dbb83842f46782257c93e864dd12e9eef72eb98485a70a08026e50f7b557cfff7da71f677a4bd62906e597cc99284bf152b876f814a95b61f5a618a0f43e
+ languageName: node
+ linkType: hard
+
+"run-parallel@npm:^1.1.9":
+ version: 1.2.0
+ resolution: "run-parallel@npm:1.2.0"
+ dependencies:
+ queue-microtask: ^1.2.2
+ checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d
+ languageName: node
+ linkType: hard
+
+"safe-array-concat@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "safe-array-concat@npm:1.0.1"
+ dependencies:
+ call-bind: ^1.0.2
+ get-intrinsic: ^1.2.1
+ has-symbols: ^1.0.3
+ isarray: ^2.0.5
+ checksum: 001ecf1d8af398251cbfabaf30ed66e3855127fbceee178179524b24160b49d15442f94ed6c0db0b2e796da76bb05b73bf3cc241490ec9c2b741b41d33058581
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:~5.1.1":
+ version: 5.1.2
+ resolution: "safe-buffer@npm:5.1.2"
+ checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:~5.2.0":
+ version: 5.2.1
+ resolution: "safe-buffer@npm:5.2.1"
+ checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491
+ languageName: node
+ linkType: hard
+
+"safe-regex-test@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "safe-regex-test@npm:1.0.0"
+ dependencies:
+ call-bind: ^1.0.2
+ get-intrinsic: ^1.1.3
+ is-regex: ^1.1.4
+ checksum: bc566d8beb8b43c01b94e67de3f070fd2781685e835959bbbaaec91cc53381145ca91f69bd837ce6ec244817afa0a5e974fc4e40a2957f0aca68ac3add1ddd34
+ languageName: node
+ linkType: hard
+
+"safer-buffer@npm:>= 2.1.2 < 3.0.0":
+ version: 2.1.2
+ resolution: "safer-buffer@npm:2.1.2"
+ checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0
+ languageName: node
+ linkType: hard
+
+"scheduler@npm:^0.23.0":
+ version: 0.23.0
+ resolution: "scheduler@npm:0.23.0"
+ dependencies:
+ loose-envify: ^1.1.0
+ checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a
+ languageName: node
+ linkType: hard
+
+"semver@npm:^6.3.1":
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
+ bin:
+ semver: bin/semver.js
+ checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.5":
+ version: 7.3.7
+ resolution: "semver@npm:7.3.7"
+ dependencies:
+ lru-cache: ^6.0.0
+ bin:
+ semver: bin/semver.js
+ checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.5.4":
+ version: 7.5.4
+ resolution: "semver@npm:7.5.4"
+ dependencies:
+ lru-cache: ^6.0.0
+ bin:
+ semver: bin/semver.js
+ checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3
+ languageName: node
+ linkType: hard
+
+"set-blocking@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "set-blocking@npm:2.0.0"
+ checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "shebang-command@npm:2.0.0"
+ dependencies:
+ shebang-regex: ^3.0.0
+ checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "shebang-regex@npm:3.0.0"
+ checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222
+ languageName: node
+ linkType: hard
+
+"side-channel@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "side-channel@npm:1.0.4"
+ dependencies:
+ call-bind: ^1.0.0
+ get-intrinsic: ^1.0.2
+ object-inspect: ^1.9.0
+ checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245
+ languageName: node
+ linkType: hard
+
+"siginfo@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "siginfo@npm:2.0.0"
+ checksum: 8aa5a98640ca09fe00d74416eca97551b3e42991614a3d1b824b115fc1401543650914f651ab1311518177e4d297e80b953f4cd4cd7ea1eabe824e8f2091de01
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^3.0.7":
+ version: 3.0.7
+ resolution: "signal-exit@npm:3.0.7"
+ checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318
+ languageName: node
+ linkType: hard
+
+"slash@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "slash@npm:3.0.0"
+ checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c
+ languageName: node
+ linkType: hard
+
+"smart-buffer@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "smart-buffer@npm:4.2.0"
+ checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b
+ languageName: node
+ linkType: hard
+
+"socks-proxy-agent@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "socks-proxy-agent@npm:7.0.0"
+ dependencies:
+ agent-base: ^6.0.2
+ debug: ^4.3.3
+ socks: ^2.6.2
+ checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846
+ languageName: node
+ linkType: hard
+
+"socks@npm:^2.6.2":
+ version: 2.7.0
+ resolution: "socks@npm:2.7.0"
+ dependencies:
+ ip: ^2.0.0
+ smart-buffer: ^4.2.0
+ checksum: 0b5d94e2b3c11e7937b40fc5dac1e80d8b92a330e68c51f1d271ce6980c70adca42a3f8cd47c4a5769956bada074823b53374f2dc5f2ea5c2121b222dec6eadf
+ languageName: node
+ linkType: hard
+
+"source-map-js@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "source-map-js@npm:1.0.2"
+ checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.5.7":
+ version: 0.5.7
+ resolution: "source-map@npm:0.5.7"
+ checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^9.0.0":
+ version: 9.0.1
+ resolution: "ssri@npm:9.0.1"
+ dependencies:
+ minipass: ^3.1.1
+ checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb
+ languageName: node
+ linkType: hard
+
+"stackback@npm:0.0.2":
+ version: 0.0.2
+ resolution: "stackback@npm:0.0.2"
+ checksum: 2d4dc4e64e2db796de4a3c856d5943daccdfa3dd092e452a1ce059c81e9a9c29e0b9badba91b43ef0d5ff5c04ee62feb3bcc559a804e16faf447bac2d883aa99
+ languageName: node
+ linkType: hard
+
+"std-env@npm:^3.3.3":
+ version: 3.4.3
+ resolution: "std-env@npm:3.4.3"
+ checksum: bef186fb2baddda31911234b1e58fa18f181eb6930616aaec3b54f6d5db65f2da5daaa5f3b326b98445a7d50ca81d6fe8809ab4ebab85ecbe4a802f1b40921bf
+ languageName: node
+ linkType: hard
+
+"stop-iteration-iterator@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "stop-iteration-iterator@npm:1.0.0"
+ dependencies:
+ internal-slot: ^1.0.4
+ checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.2.3":
+ version: 4.2.3
+ resolution: "string-width@npm:4.2.3"
+ dependencies:
+ emoji-regex: ^8.0.0
+ is-fullwidth-code-point: ^3.0.0
+ strip-ansi: ^6.0.1
+ checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb
+ languageName: node
+ linkType: hard
+
+"string.prototype.matchall@npm:^4.0.8":
+ version: 4.0.9
+ resolution: "string.prototype.matchall@npm:4.0.9"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ get-intrinsic: ^1.2.1
+ has-symbols: ^1.0.3
+ internal-slot: ^1.0.5
+ regexp.prototype.flags: ^1.5.0
+ side-channel: ^1.0.4
+ checksum: a68a9914755ec8c9b9129d6fb70603d78b839a1ca4a907e601fcb860109cecfbd1884e8b38989885f9c825c1c2015ff5b1ed9ddac7c8d040e4e4b3c9bc4ed5ed
+ languageName: node
+ linkType: hard
+
+"string.prototype.trim@npm:^1.2.7":
+ version: 1.2.8
+ resolution: "string.prototype.trim@npm:1.2.8"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimend@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "string.prototype.trimend@npm:1.0.5"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.1.4
+ es-abstract: ^1.19.5
+ checksum: d44f543833112f57224e79182debadc9f4f3bf9d48a0414d6f0cbd2a86f2b3e8c0ca1f95c3f8e5b32ae83e91554d79d932fc746b411895f03f93d89ed3dfb6bc
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimend@npm:^1.0.6":
+ version: 1.0.7
+ resolution: "string.prototype.trimend@npm:1.0.7"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimstart@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "string.prototype.trimstart@npm:1.0.5"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.1.4
+ es-abstract: ^1.19.5
+ checksum: a4857c5399ad709d159a77371eeaa8f9cc284469a0b5e1bfe405de16f1fd4166a8ea6f4180e55032f348d1b679b1599fd4301fbc7a8b72bdb3e795e43f7b1048
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimstart@npm:^1.0.6":
+ version: 1.0.7
+ resolution: "string.prototype.trimstart@npm:1.0.7"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ checksum: 13d0c2cb0d5ff9e926fa0bec559158b062eed2b68cd5be777ffba782c96b2b492944e47057274e064549b94dd27cf81f48b27a31fee8af5b574cff253e7eb613
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:^1.1.1":
+ version: 1.3.0
+ resolution: "string_decoder@npm:1.3.0"
+ dependencies:
+ safe-buffer: ~5.2.0
+ checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "strip-ansi@npm:6.0.1"
+ dependencies:
+ ansi-regex: ^5.0.1
+ checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c
+ languageName: node
+ linkType: hard
+
+"strip-bom@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-bom@npm:3.0.0"
+ checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b
+ languageName: node
+ linkType: hard
+
+"strip-json-comments@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "strip-json-comments@npm:3.1.1"
+ checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443
+ languageName: node
+ linkType: hard
+
+"strip-literal@npm:^1.0.1":
+ version: 1.3.0
+ resolution: "strip-literal@npm:1.3.0"
+ dependencies:
+ acorn: ^8.10.0
+ checksum: f5fa7e289df8ebe82e90091fd393974faf8871be087ca50114327506519323cf15f2f8fee6ebe68b5e58bfc795269cae8bdc7cb5a83e27b02b3fe953f37b0a89
+ languageName: node
+ linkType: hard
+
+"stylis@npm:4.2.0":
+ version: 4.2.0
+ resolution: "stylis@npm:4.2.0"
+ checksum: 0eb6cc1b866dc17a6037d0a82ac7fa877eba6a757443e79e7c4f35bacedbf6421fadcab4363b39667b43355cbaaa570a3cde850f776498e5450f32ed2f9b7584
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^5.3.0":
+ version: 5.5.0
+ resolution: "supports-color@npm:5.5.0"
+ dependencies:
+ has-flag: ^3.0.0
+ checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^7.1.0":
+ version: 7.2.0
+ resolution: "supports-color@npm:7.2.0"
+ dependencies:
+ has-flag: ^4.0.0
+ checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a
+ languageName: node
+ linkType: hard
+
+"supports-preserve-symlinks-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
+ checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae
+ languageName: node
+ linkType: hard
+
+"swr@npm:^2.2.2":
+ version: 2.2.2
+ resolution: "swr@npm:2.2.2"
+ dependencies:
+ client-only: ^0.0.1
+ use-sync-external-store: ^1.2.0
+ peerDependencies:
+ react: ^16.11.0 || ^17.0.0 || ^18.0.0
+ checksum: afb3d4824f7631bc3a045483f4e4beb5ca9bfa82b64690b3d1133cdf0666ad8e4a9a879657fac5b34dbf19ea9a1503cf92c9bde972f3d40cefe434c73bd9627a
+ languageName: node
+ linkType: hard
+
+"tar@npm:^6.1.11, tar@npm:^6.1.2":
+ version: 6.1.11
+ resolution: "tar@npm:6.1.11"
+ dependencies:
+ chownr: ^2.0.0
+ fs-minipass: ^2.0.0
+ minipass: ^3.0.0
+ minizlib: ^2.1.1
+ mkdirp: ^1.0.3
+ yallist: ^4.0.0
+ checksum: a04c07bb9e2d8f46776517d4618f2406fb977a74d914ad98b264fc3db0fe8224da5bec11e5f8902c5b9bcb8ace22d95fbe3c7b36b8593b7dfc8391a25898f32f
+ languageName: node
+ linkType: hard
+
+"text-table@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "text-table@npm:0.2.0"
+ checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a
+ languageName: node
+ linkType: hard
+
+"tinybench@npm:^2.5.0":
+ version: 2.5.1
+ resolution: "tinybench@npm:2.5.1"
+ checksum: 6d98526c00b68b50ab0a37590b3cc6713b96fee7dd6756a2a77bab071ed1b4a4fc54e7b11e28b35ec2f761c6a806c2befa95f10acf2fee111c49327b6fc3386f
+ languageName: node
+ linkType: hard
+
+"tinypool@npm:^0.7.0":
+ version: 0.7.0
+ resolution: "tinypool@npm:0.7.0"
+ checksum: fdcccd5c750574fce51f8801a877f8284e145d12b79cd5f2d72bfbddfe20c895e915555bc848e122bb6aa968098e7ac4fe1e8e88104904d518dc01cccd18a510
+ languageName: node
+ linkType: hard
+
+"tinyspy@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "tinyspy@npm:2.1.1"
+ checksum: cfe669803a7f11ca912742b84c18dcc4ceecaa7661c69bc5eb608a8a802d541c48aba220df8929f6c8cd09892ad37cb5ba5958ddbbb57940e91d04681d3cee73
+ languageName: node
+ linkType: hard
+
+"to-fast-properties@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "to-fast-properties@npm:2.0.0"
+ checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168
+ languageName: node
+ linkType: hard
+
+"to-regex-range@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "to-regex-range@npm:5.0.1"
+ dependencies:
+ is-number: ^7.0.0
+ checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed
+ languageName: node
+ linkType: hard
+
+"ts-api-utils@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "ts-api-utils@npm:1.0.3"
+ peerDependencies:
+ typescript: ">=4.2.0"
+ checksum: 441cc4489d65fd515ae6b0f4eb8690057add6f3b6a63a36073753547fb6ce0c9ea0e0530220a0b282b0eec535f52c4dfc315d35f8a4c9a91c0def0707a714ca6
+ languageName: node
+ linkType: hard
+
+"ts-node@npm:^10.9.1":
+ version: 10.9.1
+ resolution: "ts-node@npm:10.9.1"
+ dependencies:
+ "@cspotcode/source-map-support": ^0.8.0
+ "@tsconfig/node10": ^1.0.7
+ "@tsconfig/node12": ^1.0.7
+ "@tsconfig/node14": ^1.0.0
+ "@tsconfig/node16": ^1.0.2
+ acorn: ^8.4.1
+ acorn-walk: ^8.1.1
+ arg: ^4.1.0
+ create-require: ^1.1.0
+ diff: ^4.0.1
+ make-error: ^1.1.1
+ v8-compile-cache-lib: ^3.0.1
+ yn: 3.1.1
+ peerDependencies:
+ "@swc/core": ">=1.2.50"
+ "@swc/wasm": ">=1.2.50"
+ "@types/node": "*"
+ typescript: ">=2.7"
+ peerDependenciesMeta:
+ "@swc/core":
+ optional: true
+ "@swc/wasm":
+ optional: true
+ bin:
+ ts-node: dist/bin.js
+ ts-node-cwd: dist/bin-cwd.js
+ ts-node-esm: dist/bin-esm.js
+ ts-node-script: dist/bin-script.js
+ ts-node-transpile-only: dist/bin-transpile.js
+ ts-script: dist/bin-script-deprecated.js
+ checksum: 090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35
+ languageName: node
+ linkType: hard
+
+"tsconfig-paths@npm:^3.14.2":
+ version: 3.14.2
+ resolution: "tsconfig-paths@npm:3.14.2"
+ dependencies:
+ "@types/json5": ^0.0.29
+ json5: ^1.0.2
+ minimist: ^1.2.6
+ strip-bom: ^3.0.0
+ checksum: a6162eaa1aed680537f93621b82399c7856afd10ec299867b13a0675e981acac4e0ec00896860480efc59fc10fd0b16fdc928c0b885865b52be62cadac692447
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.4.0":
+ version: 2.6.2
+ resolution: "tslib@npm:2.6.2"
+ checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad
+ languageName: node
+ linkType: hard
+
+"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
+ version: 0.4.0
+ resolution: "type-check@npm:0.4.0"
+ dependencies:
+ prelude-ls: ^1.2.1
+ checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a
+ languageName: node
+ linkType: hard
+
+"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5":
+ version: 4.0.8
+ resolution: "type-detect@npm:4.0.8"
+ checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.20.2":
+ version: 0.20.2
+ resolution: "type-fest@npm:0.20.2"
+ checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73
+ languageName: node
+ linkType: hard
+
+"typed-array-buffer@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "typed-array-buffer@npm:1.0.0"
+ dependencies:
+ call-bind: ^1.0.2
+ get-intrinsic: ^1.2.1
+ is-typed-array: ^1.1.10
+ checksum: 3e0281c79b2a40cd97fe715db803884301993f4e8c18e8d79d75fd18f796e8cd203310fec8c7fdb5e6c09bedf0af4f6ab8b75eb3d3a85da69328f28a80456bd3
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-length@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "typed-array-byte-length@npm:1.0.0"
+ dependencies:
+ call-bind: ^1.0.2
+ for-each: ^0.3.3
+ has-proto: ^1.0.1
+ is-typed-array: ^1.1.10
+ checksum: b03db16458322b263d87a702ff25388293f1356326c8a678d7515767ef563ef80e1e67ce648b821ec13178dd628eb2afdc19f97001ceae7a31acf674c849af94
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-offset@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "typed-array-byte-offset@npm:1.0.0"
+ dependencies:
+ available-typed-arrays: ^1.0.5
+ call-bind: ^1.0.2
+ for-each: ^0.3.3
+ has-proto: ^1.0.1
+ is-typed-array: ^1.1.10
+ checksum: 04f6f02d0e9a948a95fbfe0d5a70b002191fae0b8fe0fe3130a9b2336f043daf7a3dda56a31333c35a067a97e13f539949ab261ca0f3692c41603a46a94e960b
+ languageName: node
+ linkType: hard
+
+"typed-array-length@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "typed-array-length@npm:1.0.4"
+ dependencies:
+ call-bind: ^1.0.2
+ for-each: ^0.3.3
+ is-typed-array: ^1.1.9
+ checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956
+ languageName: node
+ linkType: hard
+
+"typescript@npm:^5.2.2":
+ version: 5.2.2
+ resolution: "typescript@npm:5.2.2"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 7912821dac4d962d315c36800fe387cdc0a6298dba7ec171b350b4a6e988b51d7b8f051317786db1094bd7431d526b648aba7da8236607febb26cf5b871d2d3c
+ languageName: node
+ linkType: hard
+
+"typescript@patch:typescript@^5.2.2#~builtin":
+ version: 5.2.2
+ resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=f456af"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 07106822b4305de3f22835cbba949a2b35451cad50888759b6818421290ff95d522b38ef7919e70fb381c5fe9c1c643d7dea22c8b31652a717ddbd57b7f4d554
+ languageName: node
+ linkType: hard
+
+"ufo@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "ufo@npm:1.3.0"
+ checksum: 01f0be86cd5c205ad1b49ebea985e000a4542c503ee75398302b0f5e4b9a6d9cd8e77af2dc614ab7bea08805fdfd9a85191fb3b5ee3df383cb936cf65e9db30d
+ languageName: node
+ linkType: hard
+
+"unbox-primitive@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "unbox-primitive@npm:1.0.2"
+ dependencies:
+ call-bind: ^1.0.2
+ has-bigints: ^1.0.2
+ has-symbols: ^1.0.3
+ which-boxed-primitive: ^1.0.2
+ checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9
+ languageName: node
+ linkType: hard
+
+"unique-filename@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "unique-filename@npm:1.1.1"
+ dependencies:
+ unique-slug: ^2.0.0
+ checksum: cf4998c9228cc7647ba7814e255dec51be43673903897b1786eff2ac2d670f54d4d733357eb08dea969aa5e6875d0e1bd391d668fbdb5a179744e7c7551a6f80
+ languageName: node
+ linkType: hard
+
+"unique-slug@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "unique-slug@npm:2.0.2"
+ dependencies:
+ imurmurhash: ^0.1.4
+ checksum: 5b6876a645da08d505dedb970d1571f6cebdf87044cb6b740c8dbb24f0d6e1dc8bdbf46825fd09f994d7cf50760e6f6e063cfa197d51c5902c00a861702eb75a
+ languageName: node
+ linkType: hard
+
+"update-browserslist-db@npm:^1.0.11":
+ version: 1.0.11
+ resolution: "update-browserslist-db@npm:1.0.11"
+ dependencies:
+ escalade: ^3.1.1
+ picocolors: ^1.0.0
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+ bin:
+ update-browserslist-db: cli.js
+ checksum: b98327518f9a345c7cad5437afae4d2ae7d865f9779554baf2a200fdf4bac4969076b679b1115434bd6557376bdd37ca7583d0f9b8f8e302d7d4cc1e91b5f231
+ languageName: node
+ linkType: hard
+
+"uri-js@npm:^4.2.2":
+ version: 4.4.1
+ resolution: "uri-js@npm:4.4.1"
+ dependencies:
+ punycode: ^2.1.0
+ checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633
+ languageName: node
+ linkType: hard
+
+"use-sync-external-store@npm:1.2.0, use-sync-external-store@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "use-sync-external-store@npm:1.2.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 5c639e0f8da3521d605f59ce5be9e094ca772bd44a4ce7322b055a6f58eeed8dda3c94cabd90c7a41fb6fa852210092008afe48f7038792fd47501f33299116a
+ languageName: node
+ linkType: hard
+
+"util-deprecate@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "util-deprecate@npm:1.0.2"
+ checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2
+ languageName: node
+ linkType: hard
+
+"v8-compile-cache-lib@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "v8-compile-cache-lib@npm:3.0.1"
+ checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0
+ languageName: node
+ linkType: hard
+
+"vite-node@npm:0.34.4":
+ version: 0.34.4
+ resolution: "vite-node@npm:0.34.4"
+ dependencies:
+ cac: ^6.7.14
+ debug: ^4.3.4
+ mlly: ^1.4.0
+ pathe: ^1.1.1
+ picocolors: ^1.0.0
+ vite: ^3.0.0 || ^4.0.0
+ bin:
+ vite-node: vite-node.mjs
+ checksum: bcbba2f920e119aabe0a9e2d55f4f34e06651c09cc986f7caecb2e35acecf88137aa21c8bf6e0213cb9f011a5c8fd1487ce0d76cd604981b3af84fb7c8a59ab0
+ languageName: node
+ linkType: hard
+
+"vite-plugin-pages@npm:^0.31.0":
+ version: 0.31.0
+ resolution: "vite-plugin-pages@npm:0.31.0"
+ dependencies:
+ "@types/debug": ^4.1.8
+ debug: ^4.3.4
+ deep-equal: ^2.2.1
+ extract-comments: ^1.1.0
+ fast-glob: ^3.2.12
+ json5: ^2.2.3
+ local-pkg: ^0.4.3
+ picocolors: ^1.0.0
+ yaml: ^2.3.1
+ peerDependencies:
+ "@vue/compiler-sfc": ^2.7.0 || ^3.0.0
+ vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0
+ peerDependenciesMeta:
+ "@vue/compiler-sfc":
+ optional: true
+ checksum: b9b1a5fadf3e28e80f121e6b6bc33b15e4b27b15fc4d4976a2630affc2988ea15960d4568090ef953d809b771113d5051c7c20d443a95369af8eebc40db40e02
+ languageName: node
+ linkType: hard
+
+"vite-project@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "vite-project@workspace:."
+ dependencies:
+ "@emoji-mart/data": ^1.1.2
+ "@emoji-mart/react": ^1.1.1
+ "@emotion/react": ^11.11.1
+ "@emotion/styled": ^11.11.0
+ "@himenon/openapi-typescript-code-generator": ^0.27.1
+ "@hookform/resolvers": ^3.3.1
+ "@mui/joy": ^5.0.0-beta.11
+ "@react-stately/toast": ^3.0.0-beta.1
+ "@types/d3-format": ^3.0.1
+ "@types/react": ^18.2.21
+ "@types/react-dom": ^18.2.7
+ "@types/react-router-dom": ^5.3.3
+ "@typescript-eslint/eslint-plugin": ^6.7.0
+ "@typescript-eslint/parser": ^6.7.0
+ "@vitejs/plugin-react": ^4.0.4
+ cross-env: ^7.0.3
+ d3-format: ^3.1.0
+ date-fns: ^2.30.0
+ dayjs: ^1.11.9
+ emoji-mart: ^5.5.2
+ eslint: ^8.49.0
+ eslint-plugin-import: ^2.28.1
+ eslint-plugin-react: ^7.33.2
+ eslint-plugin-react-hooks: ^4.6.0
+ events: ^3.3.0
+ focus-visible: ^5.2.0
+ prettier: ^3.0.3
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ react-hook-form: ^7.46.1
+ react-hooks-global-state: ^2.1.0
+ react-icons: ^4.11.0
+ react-router-dom: ^6.15.0
+ swr: ^2.2.2
+ ts-node: ^10.9.1
+ typescript: ^5.2.2
+ vite: ^4.4.9
+ vite-plugin-pages: ^0.31.0
+ vitest: ^0.34.4
+ zod: ^3.22.2
+ languageName: unknown
+ linkType: soft
+
+"vite@npm:^3.0.0 || ^4.0.0, vite@npm:^4.4.9":
+ version: 4.4.9
+ resolution: "vite@npm:4.4.9"
+ dependencies:
+ esbuild: ^0.18.10
+ fsevents: ~2.3.2
+ postcss: ^8.4.27
+ rollup: ^3.27.1
+ peerDependencies:
+ "@types/node": ">= 14"
+ less: "*"
+ lightningcss: ^1.21.0
+ sass: "*"
+ stylus: "*"
+ sugarss: "*"
+ terser: ^5.4.0
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ bin:
+ vite: bin/vite.js
+ checksum: c511024ceae39c68c7dbf2ac4381ee655cd7bb62cf43867a14798bc835d3320b8fa7867a336143c30825c191c1fb4e9aa3348fce831ab617e96203080d3d2908
+ languageName: node
+ linkType: hard
+
+"vite@npm:^3.1.0 || ^4.0.0 || ^5.0.0-0":
+ version: 5.0.0-beta.1
+ resolution: "vite@npm:5.0.0-beta.1"
+ dependencies:
+ esbuild: ^0.18.10
+ fsevents: ~2.3.2
+ postcss: ^8.4.27
+ rollup: ^3.28.0
+ peerDependencies:
+ "@types/node": ^18.0.0 || >=20.0.0
+ less: "*"
+ lightningcss: ^1.21.0
+ sass: "*"
+ stylus: "*"
+ sugarss: "*"
+ terser: ^5.4.0
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ bin:
+ vite: bin/vite.js
+ checksum: 428530b51bee6a7fceeb60953c276a264e01698c8fa68132e3aa83c4394d727f19018af8e7ce538655620fb74ff73f50fd2792e4442b89696457f95a38c4ada6
+ languageName: node
+ linkType: hard
+
+"vitest@npm:^0.34.4":
+ version: 0.34.4
+ resolution: "vitest@npm:0.34.4"
+ dependencies:
+ "@types/chai": ^4.3.5
+ "@types/chai-subset": ^1.3.3
+ "@types/node": "*"
+ "@vitest/expect": 0.34.4
+ "@vitest/runner": 0.34.4
+ "@vitest/snapshot": 0.34.4
+ "@vitest/spy": 0.34.4
+ "@vitest/utils": 0.34.4
+ acorn: ^8.9.0
+ acorn-walk: ^8.2.0
+ cac: ^6.7.14
+ chai: ^4.3.7
+ debug: ^4.3.4
+ local-pkg: ^0.4.3
+ magic-string: ^0.30.1
+ pathe: ^1.1.1
+ picocolors: ^1.0.0
+ std-env: ^3.3.3
+ strip-literal: ^1.0.1
+ tinybench: ^2.5.0
+ tinypool: ^0.7.0
+ vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0
+ vite-node: 0.34.4
+ why-is-node-running: ^2.2.2
+ peerDependencies:
+ "@edge-runtime/vm": "*"
+ "@vitest/browser": "*"
+ "@vitest/ui": "*"
+ happy-dom: "*"
+ jsdom: "*"
+ playwright: "*"
+ safaridriver: "*"
+ webdriverio: "*"
+ peerDependenciesMeta:
+ "@edge-runtime/vm":
+ optional: true
+ "@vitest/browser":
+ optional: true
+ "@vitest/ui":
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+ playwright:
+ optional: true
+ safaridriver:
+ optional: true
+ webdriverio:
+ optional: true
+ bin:
+ vitest: vitest.mjs
+ checksum: 7ac214cfebb5e7170cef645dddc7ed28d4cb3cb0c8b168f4b7d4087ee5cb30a6b7737d50119f8bbd38c6966e5b9ca942af33265bdb04bc12908c881418df9896
+ languageName: node
+ linkType: hard
+
+"which-boxed-primitive@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "which-boxed-primitive@npm:1.0.2"
+ dependencies:
+ is-bigint: ^1.0.1
+ is-boolean-object: ^1.1.0
+ is-number-object: ^1.0.4
+ is-string: ^1.0.5
+ is-symbol: ^1.0.3
+ checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e
+ languageName: node
+ linkType: hard
+
+"which-builtin-type@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "which-builtin-type@npm:1.1.3"
+ dependencies:
+ function.prototype.name: ^1.1.5
+ has-tostringtag: ^1.0.0
+ is-async-function: ^2.0.0
+ is-date-object: ^1.0.5
+ is-finalizationregistry: ^1.0.2
+ is-generator-function: ^1.0.10
+ is-regex: ^1.1.4
+ is-weakref: ^1.0.2
+ isarray: ^2.0.5
+ which-boxed-primitive: ^1.0.2
+ which-collection: ^1.0.1
+ which-typed-array: ^1.1.9
+ checksum: 43730f7d8660ff9e33d1d3f9f9451c4784265ee7bf222babc35e61674a11a08e1c2925019d6c03154fcaaca4541df43abe35d2720843b9b4cbcebdcc31408f36
+ languageName: node
+ linkType: hard
+
+"which-collection@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "which-collection@npm:1.0.1"
+ dependencies:
+ is-map: ^2.0.1
+ is-set: ^2.0.1
+ is-weakmap: ^2.0.1
+ is-weakset: ^2.0.1
+ checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c
+ languageName: node
+ linkType: hard
+
+"which-typed-array@npm:^1.1.10, which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.9":
+ version: 1.1.11
+ resolution: "which-typed-array@npm:1.1.11"
+ dependencies:
+ available-typed-arrays: ^1.0.5
+ call-bind: ^1.0.2
+ for-each: ^0.3.3
+ gopd: ^1.0.1
+ has-tostringtag: ^1.0.0
+ checksum: 711ffc8ef891ca6597b19539075ec3e08bb9b4c2ca1f78887e3c07a977ab91ac1421940505a197758fb5939aa9524976d0a5bbcac34d07ed6faa75cedbb17206
+ languageName: node
+ linkType: hard
+
+"which@npm:^2.0.1, which@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "which@npm:2.0.2"
+ dependencies:
+ isexe: ^2.0.0
+ bin:
+ node-which: ./bin/node-which
+ checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1
+ languageName: node
+ linkType: hard
+
+"why-is-node-running@npm:^2.2.2":
+ version: 2.2.2
+ resolution: "why-is-node-running@npm:2.2.2"
+ dependencies:
+ siginfo: ^2.0.0
+ stackback: 0.0.2
+ bin:
+ why-is-node-running: cli.js
+ checksum: 50820428f6a82dfc3cbce661570bcae9b658723217359b6037b67e495255409b4c8bc7931745f5c175df71210450464517cab32b2f7458ac9c40b4925065200a
+ languageName: node
+ linkType: hard
+
+"wide-align@npm:^1.1.5":
+ version: 1.1.5
+ resolution: "wide-align@npm:1.1.5"
+ dependencies:
+ string-width: ^1.0.2 || 2 || 3 || 4
+ checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3
+ languageName: node
+ linkType: hard
+
+"wrappy@npm:1":
+ version: 1.0.2
+ resolution: "wrappy@npm:1.0.2"
+ checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^3.0.2":
+ version: 3.1.1
+ resolution: "yallist@npm:3.1.1"
+ checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "yallist@npm:4.0.0"
+ checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5
+ languageName: node
+ linkType: hard
+
+"yaml@npm:^1.10.0":
+ version: 1.10.2
+ resolution: "yaml@npm:1.10.2"
+ checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f
+ languageName: node
+ linkType: hard
+
+"yaml@npm:^2.3.1":
+ version: 2.3.2
+ resolution: "yaml@npm:2.3.2"
+ checksum: acd80cc24df12c808c6dec8a0176d404ef9e6f08ad8786f746ecc9d8974968c53c6e8a67fdfabcc5f99f3dc59b6bb0994b95646ff03d18e9b1dcd59eccc02146
+ languageName: node
+ linkType: hard
+
+"yn@npm:3.1.1":
+ version: 3.1.1
+ resolution: "yn@npm:3.1.1"
+ checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6
+ languageName: node
+ linkType: hard
+
+"yocto-queue@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "yocto-queue@npm:0.1.0"
+ checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700
+ languageName: node
+ linkType: hard
+
+"yocto-queue@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "yocto-queue@npm:1.0.0"
+ checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801
+ languageName: node
+ linkType: hard
+
+"zod@npm:^3.22.2":
+ version: 3.22.2
+ resolution: "zod@npm:3.22.2"
+ checksum: 231e2180c8eabb56e88680d80baff5cf6cbe6d64df3c44c50ebe52f73081ecd0229b1c7215b9552537f537a36d9e36afac2737ddd86dc14e3519bdbc777e82b9
+ languageName: node
+ linkType: hard
+
+"zustand@npm:4.0.0":
+ version: 4.0.0
+ resolution: "zustand@npm:4.0.0"
+ dependencies:
+ use-sync-external-store: 1.2.0
+ peerDependencies:
+ immer: ">=9.0"
+ react: ">=16.8"
+ peerDependenciesMeta:
+ immer:
+ optional: true
+ react:
+ optional: true
+ checksum: b8ae5971dff79a1007d46f9a6bfa39ed5cc5b101a877eeec069ebdb6c8285ec8e3463e40cfa7c0f1507a41f43fe26ffb44b556063cb70ac03bccf1ea6e0f69d6
+ languageName: node
+ linkType: hard