├── .nvmrc ├── public └── favicon.ico ├── pages ├── index │ ├── +pageStarted.ts │ ├── +Page.tsx │ └── model.ts ├── example │ └── @id │ │ ├── +pageStarted.ts │ │ ├── +data.ts │ │ ├── +Page.tsx │ │ └── model.ts ├── +Wrapper.tsx └── _error │ └── +Page.tsx ├── .babelrc ├── src ├── shared │ ├── init │ │ └── index.ts │ └── routing │ │ ├── link.tsx │ │ └── index.ts ├── vite-env.d.ts └── vike.d.ts ├── .github ├── workflows │ ├── release-drafter.yml │ └── publish.yml └── release-drafter.yml ├── server ├── directory-root.ts ├── config.ts ├── tsconfig.json ├── index.ts └── server.ts ├── renderer ├── +onBeforeRenderClient.ts ├── types.ts ├── +config.ts └── +onBeforeRender.ts ├── .prettierrc ├── vite.config.ts ├── tsconfig.json ├── LICENSE ├── package.json ├── .gitignore ├── README.md └── pnpm-lock.yaml /.nvmrc: -------------------------------------------------------------------------------- 1 | v20 2 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/effector/vike-react-template/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /pages/index/+pageStarted.ts: -------------------------------------------------------------------------------- 1 | import { createPageStart } from "~/shared/init"; 2 | 3 | export const pageStarted = createPageStart(); 4 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | [ 4 | "effector/babel-plugin", 5 | { 6 | "addNames": true 7 | } 8 | ] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /pages/example/@id/+pageStarted.ts: -------------------------------------------------------------------------------- 1 | import { createPageStart } from "~/shared/init"; 2 | 3 | import type { data } from "./+data"; 4 | 5 | export const pageStarted = createPageStart>>(); 6 | -------------------------------------------------------------------------------- /src/shared/init/index.ts: -------------------------------------------------------------------------------- 1 | import { createEvent } from "effector"; 2 | 3 | export const appStarted = createEvent(); 4 | 5 | export function createPageStart() { 6 | const pageStarted = createEvent<{ params: Record; data: T }>(); 7 | return pageStarted; 8 | } 9 | -------------------------------------------------------------------------------- /pages/example/@id/+data.ts: -------------------------------------------------------------------------------- 1 | import type { PageContextServer } from "vike/types"; 2 | 3 | export async function data(pageContext: PageContextServer) { 4 | const { routeParams } = pageContext; 5 | const { id } = routeParams; 6 | 7 | return { 8 | sampleData: { id: id ?? "" }, 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | interface ImportMetaEnv { 5 | // Define your env variables here. Example: 6 | // readonly PUBLIC_ENV__SOME_URL: string; 7 | } 8 | 9 | interface ImportMeta { 10 | readonly env: ImportMetaEnv; 11 | } 12 | -------------------------------------------------------------------------------- /.github/workflows/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name: Release Drafter 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | workflow_dispatch: 8 | 9 | jobs: 10 | update_release_draft: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: release-drafter/release-drafter@v5 14 | env: 15 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 16 | -------------------------------------------------------------------------------- /server/directory-root.ts: -------------------------------------------------------------------------------- 1 | // https://stackoverflow.com/questions/46745014/alternative-for-dirname-in-node-when-using-the-experimental-modules-flag/50052194#50052194 2 | import { dirname, resolve } from "node:path"; 3 | import { fileURLToPath } from "node:url"; 4 | 5 | const __dirname = dirname(fileURLToPath(import.meta.url)); 6 | export const directoryRoot = resolve(`${__dirname}/..`); 7 | -------------------------------------------------------------------------------- /server/config.ts: -------------------------------------------------------------------------------- 1 | export const CONFIG = { 2 | get NODE_ENV() { 3 | return globalThis.process.env.NODE_ENV; 4 | }, 5 | 6 | get SERVER_PORT() { 7 | return Number.parseInt(globalThis.process.env.SERVER_PORT ?? "3000", 10); 8 | }, 9 | 10 | get PUBLIC_HOST() { 11 | return globalThis.process.env.PUBLIC_HOST ?? `http://localhost:${CONFIG.SERVER_PORT}`; 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /pages/example/@id/+Page.tsx: -------------------------------------------------------------------------------- 1 | import { useUnit } from "effector-react"; 2 | import { Link } from "~/shared/routing"; 3 | 4 | import { $id } from "./model"; 5 | 6 | export function Page() { 7 | const id = useUnit($id); 8 | 9 | return ( 10 |
11 |

Example

12 |

Read parameter from route: {id}

13 | Go home 14 |
15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /pages/+Wrapper.tsx: -------------------------------------------------------------------------------- 1 | import type React from "react"; 2 | 3 | import { fork } from "effector"; 4 | import { Provider } from "effector-react"; 5 | import { usePageContext } from "vike-react/usePageContext"; 6 | 7 | export default function WrapperEffector({ children }: { children: React.ReactNode }) { 8 | const { scopeValues } = usePageContext(); 9 | 10 | return {children}; 11 | } 12 | -------------------------------------------------------------------------------- /pages/index/+Page.tsx: -------------------------------------------------------------------------------- 1 | import { useUnit } from "effector-react"; 2 | import { Link } from "~/shared/routing"; 3 | 4 | import { $random } from "./model"; 5 | 6 | export default function PageHome() { 7 | const random = useUnit($random); 8 | 9 | return ( 10 |
11 |

Hello World

12 |

Random from server: {random}

13 | Go to /example/{random} 14 |
15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /renderer/+onBeforeRenderClient.ts: -------------------------------------------------------------------------------- 1 | import { fork } from "effector"; 2 | 3 | // https://vike.dev/onBeforeRenderClient 4 | export function onBeforeRenderClient(pageContext: Vike.PageContext) { 5 | // https://vike.dev/pageContext 6 | if (!("scope" in pageContext)) { 7 | return { 8 | pageContext: { 9 | // https://effector.dev/en/api/effector/fork/ 10 | scope: fork({ values: pageContext.scopeValues }), 11 | }, 12 | }; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /pages/index/model.ts: -------------------------------------------------------------------------------- 1 | import { createEffect, createStore, sample } from "effector"; 2 | 3 | import { pageStarted } from "./+pageStarted"; 4 | 5 | const randomFx = createEffect(({ message }: { message: string }) => { 6 | const number = Math.round(Math.random() * 1000); 7 | return number; 8 | }); 9 | 10 | export const $random = createStore(0); 11 | 12 | sample({ 13 | clock: pageStarted, 14 | fn: () => ({ message: "home page started" }), 15 | target: randomFx, 16 | }); 17 | 18 | $random.on(randomFx.doneData, (_, text) => text); 19 | -------------------------------------------------------------------------------- /server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | // Make IDEs complain about missing file extension .js in import paths. 4 | // Alternatively, we could always set "module" to "Node16" and add the file extension .js to import paths everywhere. 5 | "compilerOptions": { 6 | // "module": "NodeNext", 7 | // "moduleResolution": "NodeNext", 8 | 9 | "module": "ESNext", 10 | "moduleResolution": "Bundler", 11 | 12 | "outDir": "../dist/cli", 13 | "noEmit": false 14 | }, 15 | "include": ["."] 16 | } 17 | -------------------------------------------------------------------------------- /src/shared/routing/link.tsx: -------------------------------------------------------------------------------- 1 | import type React from "react"; 2 | 3 | import { usePageContext } from "vike-react/usePageContext"; 4 | 5 | export function Link({ href, children }: { href: string; children: React.ReactNode }) { 6 | const pageContext = usePageContext(); 7 | const { urlPathname } = pageContext; 8 | const isActive = href === "/" ? urlPathname === href : urlPathname.startsWith(href); 9 | return ( 10 | 11 | {children} 12 | 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": true, 6 | "trailingComma": "all", 7 | "bracketSpacing": true, 8 | "plugins": ["@trivago/prettier-plugin-sort-imports"], 9 | "importOrderGroupNamespaceSpecifiers": true, 10 | "importOrderParserPlugins": ["typescript", "jsx"], 11 | "importOrderSortSpecifiers": true, 12 | "importOrderSeparation": true, 13 | "importOrder": [ 14 | "^node:(.*)", 15 | "^react", 16 | "", 17 | "^@(.*).css$", 18 | "^[./]" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /renderer/types.ts: -------------------------------------------------------------------------------- 1 | import type { EventCallable, Scope } from "effector"; 2 | 3 | // https://vike.dev/pageContext#typescript 4 | declare global { 5 | namespace Vike { 6 | interface PageContext { 7 | config: { 8 | pageStarted?: EventCallable<{ params: Record; data: unknown }>; 9 | }; 10 | 11 | // https://effector.dev/en/api/effector/scope/ 12 | scope?: Scope; 13 | scopeValues?: Record; 14 | } 15 | } 16 | } 17 | 18 | // Tell TypeScript this file isn't an ambient module 19 | export {}; 20 | -------------------------------------------------------------------------------- /src/vike.d.ts: -------------------------------------------------------------------------------- 1 | declare global { 2 | /** Refine Vike types. */ 3 | namespace Vike { 4 | /** Extend and/or refine the `PageContext` type (`import type { PageContext } from 'vike/types'`). 5 | * 6 | * For example: 7 | * - You can refine the type of `PageContext['Page']`. 8 | * - You can define the type of custom `pageContext` values such as `pageContext.user`, see https://vike.dev/pageContext#custom 9 | * 10 | * https://vike.dev/pageContext#typescript 11 | */ 12 | interface PageContext {} 13 | } 14 | } 15 | 16 | export {}; 17 | -------------------------------------------------------------------------------- /pages/example/@id/model.ts: -------------------------------------------------------------------------------- 1 | import { createStore, sample } from "effector"; 2 | import { redirectTo } from "~/shared/routing"; 3 | 4 | import { pageStarted } from "./+pageStarted"; 5 | 6 | export const $id = createStore(""); 7 | 8 | const dataInitialized = sample({ 9 | clock: pageStarted, 10 | fn: ({ data }) => data, 11 | }); 12 | 13 | sample({ 14 | clock: dataInitialized, 15 | filter: ({ sampleData: { id } }) => id === "10", 16 | target: redirectTo("/"), 17 | }); 18 | 19 | sample({ 20 | clock: dataInitialized, 21 | fn: ({ sampleData: { id } }) => id, 22 | target: $id, 23 | }); 24 | -------------------------------------------------------------------------------- /renderer/+config.ts: -------------------------------------------------------------------------------- 1 | import vikeReact from "vike-react/config"; 2 | import type { Config } from "vike/types"; 3 | 4 | // https://vike.dev/config 5 | export default { 6 | // https://vike.dev/clientRouting 7 | clientRouting: true, 8 | 9 | // https://vike.dev/passToClient 10 | passToClient: ["scopeValues"], 11 | 12 | // https://vike.dev/meta 13 | meta: { 14 | pageStarted: { 15 | env: { client: true, server: true }, 16 | }, 17 | // https://effector.dev/en/api/effector/scope/ 18 | scope: { 19 | env: { client: true, server: true }, 20 | }, 21 | }, 22 | 23 | // https://vike.dev/extends 24 | extends: [vikeReact], 25 | 26 | // https://vike.dev/hydrationCanBeAborted 27 | hydrationCanBeAborted: true, 28 | } satisfies Config; 29 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { dirname, resolve } from "node:path"; 2 | import { fileURLToPath } from "node:url"; 3 | 4 | import react from "@vitejs/plugin-react"; 5 | import vike from "vike/plugin"; 6 | import { defineConfig } from "vite"; 7 | import svgr from "vite-plugin-svgr"; 8 | 9 | const __filename = fileURLToPath(import.meta.url); 10 | const __dirname = dirname(__filename); 11 | 12 | export default defineConfig({ 13 | ssr: { noExternal: ["effector-factorio"] }, 14 | build: { minify: false }, 15 | plugins: [ 16 | react({ 17 | babel: { babelrc: true, plugins: ["@babel/plugin-syntax-import-attributes"] }, 18 | }), 19 | vike({ 20 | redirects: {}, 21 | }), 22 | svgr({ 23 | svgrOptions: {}, 24 | }), 25 | ], 26 | define: {}, 27 | resolve: { 28 | alias: { 29 | "~": resolve(__dirname, "src"), 30 | }, 31 | }, 32 | }); 33 | -------------------------------------------------------------------------------- /server/index.ts: -------------------------------------------------------------------------------- 1 | import "dotenv/config"; 2 | 3 | import { CONFIG } from "./config.js"; 4 | import { createServer } from "./server.js"; 5 | 6 | const isProduction = CONFIG.NODE_ENV === "production"; 7 | const server = await createServer(isProduction); 8 | console.log("Server routes:\r\n", server.printRoutes()); 9 | 10 | const listenHost = await server.listen({ host: "0.0.0.0", port: CONFIG.SERVER_PORT }); 11 | console.info(`Server listening at ${listenHost}`); 12 | 13 | // Listen to typical SIGINT and SIGTERM signals 14 | // so that we can gracefully close the server 15 | // and enable rolling update strategy. 16 | process.on("SIGINT", async () => { 17 | console.info(`\r\nReceived signal: SIGNING. Waiting for connections to close...`); 18 | await server.close(); 19 | process.exit(0); 20 | }); 21 | 22 | process.on("SIGTERM", async () => { 23 | console.info(`\r\nReceived signal: SIGTERM. Killing immediately...`); 24 | process.exit(0); 25 | }); 26 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "module": "ESNext", 5 | "target": "ES2020", 6 | // Doesn't apply to server/, see ts-node config down below and server/tsconfig.json 7 | "moduleResolution": "Bundler", 8 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 9 | "types": ["vite/client", "node"], 10 | "jsx": "react-jsx", 11 | "skipLibCheck": true, 12 | "esModuleInterop": true, 13 | "baseUrl": ".", 14 | "allowJs": true, 15 | "noEmit": true, 16 | "noUncheckedIndexedAccess": true, 17 | // "moduleDetection": "force", 18 | "verbatimModuleSyntax": true, 19 | 20 | "paths": { 21 | "~/*": ["src/*"] 22 | } 23 | }, 24 | "ts-node": { 25 | "transpileOnly": true, 26 | "esm": true, 27 | "compilerOptions": { 28 | "module": "ES2022", 29 | "moduleResolution": "Bundler" 30 | } 31 | }, 32 | "include": ["src", "pages", "renderer"], 33 | "exclude": ["dist"] 34 | } 35 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | categories: 2 | - title: '⚠️ Breaking changes' 3 | label: 'BREAKING CHANGES' 4 | 5 | - title: '🚀 Features' 6 | labels: 7 | - 'feature' 8 | - 'enhancement' 9 | 10 | - title: '🐛 Bug Fixes' 11 | labels: 12 | - 'fix' 13 | - 'bugfix' 14 | - 'bug' 15 | 16 | - title: '🧰 Maintenance' 17 | labels: 18 | - 'chore' 19 | - 'dependencies' 20 | 21 | - title: '📚 Documentation' 22 | label: 'documentation' 23 | 24 | - title: '🧪 Tests' 25 | label: 'tests' 26 | 27 | - title: '🏎 Optimizations' 28 | label: 'optimizations' 29 | 30 | version-resolver: 31 | major: 32 | labels: 33 | - 'BREAKING CHANGES' 34 | minor: 35 | labels: 36 | - 'feature' 37 | - 'enhancement' 38 | patch: 39 | labels: 40 | - 'fix' 41 | default: patch 42 | 43 | name-template: 'v$RESOLVED_VERSION' 44 | tag-template: 'v$RESOLVED_VERSION' 45 | 46 | change-template: '- $TITLE #$NUMBER (@$AUTHOR)' 47 | template: | 48 | $CHANGES 49 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Effector Team 4 | Copyright (c) 2024 Sergey Sova 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /renderer/+onBeforeRender.ts: -------------------------------------------------------------------------------- 1 | import { allSettled, fork, serialize } from "effector"; 2 | import { redirect } from "vike/abort"; 3 | import type { OnBeforeRenderAsync } from "vike/types"; 4 | import { appStarted } from "~/shared/init"; 5 | import { $redirectTo } from "~/shared/routing"; 6 | 7 | // https://vike.dev/onBeforeRender 8 | export const onBeforeRender: OnBeforeRenderAsync = async (pageContext) => { 9 | // https://vike.dev/pageContext 10 | const { pageStarted } = pageContext.config; 11 | 12 | // https://effector.dev/en/api/effector/fork/ 13 | const scope = fork(); 14 | 15 | // https://effector.dev/en/api/effector/allsettled/#methods-allSettled-unit-scope-params 16 | await allSettled(appStarted, { scope }); 17 | 18 | if (pageStarted) { 19 | await allSettled(pageStarted, { scope, params: { params: pageContext.routeParams, data: pageContext.data } }); 20 | } 21 | 22 | // https://effector.dev/en/api/effector/scope/#methods-getState 23 | const redirectTo = scope.getState($redirectTo); 24 | if (redirectTo) { 25 | // https://vike.dev/redirect 26 | throw redirect(redirectTo); 27 | } 28 | 29 | return { 30 | pageContext: { 31 | scope, 32 | // https://effector.dev/en/api/effector/serialize 33 | scopeValues: serialize(scope), 34 | }, 35 | }; 36 | }; 37 | -------------------------------------------------------------------------------- /src/shared/routing/index.ts: -------------------------------------------------------------------------------- 1 | import { createEffect, createEvent, createStore, sample } from "effector"; 2 | 3 | export { Link } from "./link"; 4 | 5 | export const $redirectTo = createStore(null, { 6 | // This store should not be passed from server to browser 7 | // Because we have different routing system on server and browser. 8 | serialize: "ignore", 9 | }); 10 | 11 | export const performRedirect = createEvent(); 12 | 13 | export function redirectTo(path: string) { 14 | const redirector = createEvent(); 15 | 16 | sample({ 17 | clock: redirector, 18 | fn: () => path, 19 | target: performRedirect, 20 | }); 21 | 22 | return redirector; 23 | } 24 | 25 | sample({ 26 | clock: performRedirect, 27 | target: $redirectTo, 28 | }); 29 | 30 | /** 31 | * The handler is replaced in renderer/+onRenderClient.ts 32 | * On the browser we need to replace it into null, to prevent double navigation. 33 | * But on server we're assuming that after logic is done, 34 | * store with redirect is filled if redirect is needed. 35 | */ 36 | export const clientNavigateFx = createEffect((path: string) => path); 37 | 38 | sample({ 39 | clock: $redirectTo, 40 | filter: Boolean, 41 | target: clientNavigateFx, 42 | }); 43 | 44 | sample({ 45 | clock: clientNavigateFx.doneData, 46 | target: $redirectTo, 47 | }); 48 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish CI 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | jobs: 8 | publish-to-npm: 9 | runs-on: ubuntu-22.04 10 | steps: 11 | - name: 🛎️ Checkout 12 | uses: actions/checkout@v4 13 | 14 | - name: 📦 Setup pnpm 15 | uses: pnpm/action-setup@v3 16 | 17 | - name: 🐧 Use Node.js v20.x 18 | uses: actions/setup-node@v4 19 | with: 20 | node-version: v20.x 21 | cache: 'pnpm' 22 | 23 | - name: 🔍 Install dependencies 24 | run: pnpm install 25 | 26 | - name: 🔧 Build package 27 | run: pnpm build 28 | 29 | - name: 🧪 Test 30 | run: pnpm test 31 | env: 32 | CI: true 33 | 34 | - name: 🔦 Extract version 35 | id: version 36 | uses: olegtarasov/get-tag@v2.1 37 | with: 38 | tagRegex: 'v(.*)' 39 | 40 | - name: 🥤 Set version from release 41 | uses: reedyuk/npm-version@1.1.1 42 | with: 43 | version: ${{ steps.version.outputs.tag }} 44 | git-tag-version: false 45 | # package: 'dist/' 46 | 47 | - name: 📝 Create NPM config 48 | # working-directory: './dist/' 49 | run: npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN 50 | env: 51 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 52 | 53 | - name: 🚀 Publish package 54 | # working-directory: './dist/' 55 | run: npm publish 56 | -------------------------------------------------------------------------------- /pages/_error/+Page.tsx: -------------------------------------------------------------------------------- 1 | import { usePageContext } from "vike-react/usePageContext"; 2 | 3 | /* Or: 4 | import { usePageContext } from 'vike-vue/usePageContext' 5 | import { usePageContext } from 'vike-solid/usePageContext' 6 | */ 7 | 8 | export function Page() { 9 | const pageContext = usePageContext(); 10 | 11 | let msg: string; // Message shown to the user 12 | const { abortReason, abortStatusCode } = pageContext; 13 | if (typeof abortReason === "string") { 14 | // Handle `throw render(abortStatusCode, `You cannot access ${someCustomMessage}`)` 15 | msg = abortReason; 16 | } else if (abortReason?.notAdmin) { 17 | // Handle `throw render(403, { notAdmin: true })` 18 | msg = "You cannot access this page because you aren't an administrator."; 19 | } else if (abortStatusCode === 403) { 20 | // Handle `throw render(403)` 21 | msg = "You cannot access this page because you don't have enough privileges."; 22 | } else if (abortStatusCode === 401) { 23 | // Handle `throw render(401)` 24 | msg = "You cannot access this page because you aren't logged in. Please log in."; 25 | } else { 26 | // Fallback error message 27 | msg = pageContext.is404 28 | ? "This page doesn't exist." 29 | : "Something went wrong. Sincere apologies. Try again (later)."; 30 | } 31 | 32 | return

{msg}

; 33 | } 34 | 35 | // When using TypeScript you can define the type of `abortReason` 36 | declare global { 37 | namespace Vike { 38 | interface PageContext { 39 | abortReason?: string | { notAdmin: true }; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@effector/vike-react-template", 3 | "private": true, 4 | "version": "23.0.0", 5 | "description": "Template for quickly starting a SSR Node.js application with vite, react, effector, and fastify", 6 | "packageManager": "pnpm@9.7.1+sha256.46f1bbc8f8020aa9869568c387198f1a813f21fb44c82f400e7d1dbde6c70b40", 7 | "scripts": { 8 | "dev": "node --no-warnings --loader ts-node/esm server/index.ts", 9 | "start": "cross-env NODE_ENV=production pnpm run server", 10 | "server": "node ./dist/cli/index", 11 | "build": "vite build && tsc -p server", 12 | "test": "echo \"Error: no test specified\" && exit 1", 13 | "lint": "eslint . --max-warnings 0", 14 | "format": "prettier --write '*'" 15 | }, 16 | "repository": "https://github.com/effector/vike-react-template", 17 | "type": "module", 18 | "keywords": [ 19 | "react", 20 | "typescript", 21 | "vite", 22 | "vike", 23 | "effector", 24 | "fastify", 25 | "starter", 26 | "boilerplate", 27 | "template" 28 | ], 29 | "author": "Sergey Sova (https://sova.sh)", 30 | "license": "MIT", 31 | "engines": { 32 | "node": ">=18.6.0" 33 | }, 34 | "dependencies": { 35 | "@effector/reflect": "^9.2.0", 36 | "@fastify/accepts": "^4.3.0", 37 | "@fastify/compress": "^7.0.3", 38 | "@fastify/cookie": "^9.3.1", 39 | "@fastify/cors": "^9.0.1", 40 | "@fastify/early-hints": "^1.0.1", 41 | "@fastify/helmet": "^11.1.1", 42 | "@fastify/rate-limit": "^9.1.0", 43 | "@fastify/static": "^7.0.4", 44 | "compression": "^1.7.4", 45 | "dotenv": "^16.4.5", 46 | "effector": "^23.2.2", 47 | "effector-factorio": "^1.3.0", 48 | "effector-react": "^23.2.1", 49 | "fastify": "^4.28.1", 50 | "patronum": "^2.2.0", 51 | "pino": "^9.3.2", 52 | "react": "^18.3.1", 53 | "react-dom": "^18.3.1", 54 | "vike": "0.4.184", 55 | "vike-react": "^0.5.2", 56 | "zod": "^3.23.8" 57 | }, 58 | "devDependencies": { 59 | "@babel/parser": "^7.25.3", 60 | "@babel/plugin-syntax-import-attributes": "^7.24.7", 61 | "@trivago/prettier-plugin-sort-imports": "^4.3.0", 62 | "@types/compression": "^1.7.5", 63 | "@types/node": "^22.3.0", 64 | "@types/react": "^18.3.3", 65 | "@types/react-dom": "^18.3.0", 66 | "@vitejs/plugin-react": "^4.3.1", 67 | "cross-env": "^7.0.3", 68 | "pino-pretty": "^11.2.2", 69 | "prettier": "^3.3.3", 70 | "ts-node": "^10.9.2", 71 | "typescript": "^5.5.4", 72 | "vite": "^5.4.1", 73 | "vite-plugin-svgr": "^4.2.0" 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.toptal.com/developers/gitignore/api/node,linux,macos 3 | # Edit at https://www.toptal.com/developers/gitignore?templates=node,linux,macos 4 | 5 | ### Linux ### 6 | *~ 7 | 8 | # temporary files which can be created if a process still has a handle open of a deleted file 9 | .fuse_hidden* 10 | 11 | # KDE directory preferences 12 | .directory 13 | 14 | # Linux trash folder which might appear on any partition or disk 15 | .Trash-* 16 | 17 | # .nfs files are created when an open file is removed but is still being accessed 18 | .nfs* 19 | 20 | ### macOS ### 21 | # General 22 | .DS_Store 23 | .AppleDouble 24 | .LSOverride 25 | 26 | # Icon must end with two \r 27 | Icon 28 | 29 | 30 | # Thumbnails 31 | ._* 32 | 33 | # Files that might appear in the root of a volume 34 | .DocumentRevisions-V100 35 | .fseventsd 36 | .Spotlight-V100 37 | .TemporaryItems 38 | .Trashes 39 | .VolumeIcon.icns 40 | .com.apple.timemachine.donotpresent 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | 49 | ### macOS Patch ### 50 | # iCloud generated files 51 | *.icloud 52 | 53 | ### Node ### 54 | # Logs 55 | logs 56 | *.log 57 | npm-debug.log* 58 | yarn-debug.log* 59 | yarn-error.log* 60 | lerna-debug.log* 61 | .pnpm-debug.log* 62 | 63 | # Diagnostic reports (https://nodejs.org/api/report.html) 64 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 65 | 66 | # Runtime data 67 | pids 68 | *.pid 69 | *.seed 70 | *.pid.lock 71 | 72 | # Directory for instrumented libs generated by jscoverage/JSCover 73 | lib-cov 74 | 75 | # Coverage directory used by tools like istanbul 76 | coverage 77 | *.lcov 78 | 79 | # nyc test coverage 80 | .nyc_output 81 | 82 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 83 | .grunt 84 | 85 | # Bower dependency directory (https://bower.io/) 86 | bower_components 87 | 88 | # node-waf configuration 89 | .lock-wscript 90 | 91 | # Compiled binary addons (https://nodejs.org/api/addons.html) 92 | build/Release 93 | 94 | # Dependency directories 95 | node_modules/ 96 | jspm_packages/ 97 | 98 | # Snowpack dependency directory (https://snowpack.dev/) 99 | web_modules/ 100 | 101 | # TypeScript cache 102 | *.tsbuildinfo 103 | 104 | # Optional npm cache directory 105 | .npm 106 | 107 | # Optional eslint cache 108 | .eslintcache 109 | 110 | # Optional stylelint cache 111 | .stylelintcache 112 | 113 | # Microbundle cache 114 | .rpt2_cache/ 115 | .rts2_cache_cjs/ 116 | .rts2_cache_es/ 117 | .rts2_cache_umd/ 118 | 119 | # Optional REPL history 120 | .node_repl_history 121 | 122 | # Output of 'npm pack' 123 | *.tgz 124 | 125 | # Yarn Integrity file 126 | .yarn-integrity 127 | 128 | # dotenv environment variable files 129 | .env 130 | .env.development.local 131 | .env.test.local 132 | .env.production.local 133 | .env.local 134 | 135 | # parcel-bundler cache (https://parceljs.org/) 136 | .cache 137 | .parcel-cache 138 | 139 | # Next.js build output 140 | .next 141 | out 142 | 143 | # Nuxt.js build / generate output 144 | .nuxt 145 | dist 146 | 147 | # Gatsby files 148 | .cache/ 149 | # Comment in the public line in if your project uses Gatsby and not Next.js 150 | # https://nextjs.org/blog/next-9-1#public-directory-support 151 | # public 152 | 153 | # vuepress build output 154 | .vuepress/dist 155 | 156 | # vuepress v2.x temp and cache directory 157 | .temp 158 | 159 | # Docusaurus cache and generated files 160 | .docusaurus 161 | 162 | # Serverless directories 163 | .serverless/ 164 | 165 | # FuseBox cache 166 | .fusebox/ 167 | 168 | # DynamoDB Local files 169 | .dynamodb/ 170 | 171 | # TernJS port file 172 | .tern-port 173 | 174 | # Stores VSCode versions used for testing VSCode extensions 175 | .vscode-test 176 | 177 | # yarn v2 178 | .yarn/cache 179 | .yarn/unplugged 180 | .yarn/build-state.yml 181 | .yarn/install-state.gz 182 | .pnp.* 183 | 184 | ### Node Patch ### 185 | # Serverless Webpack directories 186 | .webpack/ 187 | 188 | # Optional stylelint cache 189 | 190 | # SvelteKit build / generate output 191 | .svelte-kit 192 | 193 | # End of https://www.toptal.com/developers/gitignore/api/node,linux,macos 194 | 195 | dist 196 | -------------------------------------------------------------------------------- /server/server.ts: -------------------------------------------------------------------------------- 1 | import path from "node:path"; 2 | 3 | import type { CookieSerializeOptions } from "@fastify/cookie"; 4 | import "dotenv/config"; 5 | import fastify from "fastify"; 6 | import type { FastifyReply, FastifyRequest } from "fastify"; 7 | import { renderPage } from "vike/server"; 8 | 9 | import { CONFIG } from "./config.js"; 10 | import { directoryRoot } from "./directory-root.js"; 11 | 12 | export async function createServer(isProduction: boolean) { 13 | const app = fastify({ 14 | trustProxy: true, 15 | logger: isProduction 16 | ? true 17 | : { 18 | level: "warn", 19 | transport: { 20 | target: "pino-pretty", 21 | }, 22 | }, 23 | }); 24 | 25 | await app.register(import("@fastify/compress"), { global: true }); 26 | 27 | await app.register(import("@fastify/early-hints"), { 28 | // indicates if the plugin should log warnings if invalid values are supplied as early hints 29 | warn: true, 30 | }); 31 | 32 | // Vite integration 33 | if (isProduction) { 34 | await app.register(import("@fastify/cors"), { 35 | origin: CONFIG.PUBLIC_HOST, 36 | methods: ["HEAD", "GET", "POST", "PUT", "PATCH", "DELETE"], 37 | }); 38 | 39 | await app.register(import("@fastify/accepts")); 40 | 41 | await app.register(import("@fastify/cookie")); 42 | 43 | await app.register(import("@fastify/helmet"), { contentSecurityPolicy: false }); 44 | 45 | // In production, we need to serve our static assets ourselves. 46 | // (In dev, Vite's middleware serves our static assets.) 47 | await app.register(import("@fastify/static"), { 48 | root: path.join(directoryRoot, "client", "assets"), 49 | prefix: "/assets/", 50 | }); 51 | 52 | await app.register(import("@fastify/rate-limit"), { 53 | max: 100, 54 | timeWindow: "1 minute", 55 | }); 56 | } else { 57 | // We instantiate Vite's development server and integrate its middleware to our server. 58 | // ⚠️ We instantiate it only in development. (It isn't needed in production and it 59 | // would unnecessarily bloat our production server.) 60 | const vite = await import("vite"); 61 | const viteServer = await vite.createServer({ 62 | root: directoryRoot, 63 | server: { middlewareMode: true }, 64 | logLevel: "error", 65 | }); 66 | 67 | app.addHook("onRequest", async (request, reply) => { 68 | const next = () => 69 | new Promise((resolve) => { 70 | viteServer.middlewares(request.raw, reply.raw, () => resolve()); 71 | }); 72 | await next(); 73 | }); 74 | } // !isProduction 75 | 76 | // Any custom middlewares here. Like API middlewares, etc. 77 | 78 | // Vike middleware. It should always be our last middleware 79 | // (because it's a catch-all middleware superseding any middleware placed after it). 80 | app.get("*", async (request, reply) => { 81 | // Accessor reads, sets, and removes cookies. 82 | const cookies = createCookiesAccessor(request, reply); 83 | 84 | // The page context is passed to renderer/+onRenderHtml.tsx 85 | const pageContextInit = { 86 | urlOriginal: `${request.protocol}://${request.hostname}${request.url}`, 87 | cookies, 88 | }; 89 | 90 | const pageContext = await renderPage(pageContextInit); 91 | 92 | if (pageContext.errorWhileRendering) { 93 | app.log.error({ errorWhileRendering: pageContext.errorWhileRendering }, "Error while rendering page"); 94 | return reply.status(500).send("Error while rendering page"); 95 | // Install error tracking here, see https://vike.dev/errors 96 | } 97 | 98 | const { httpResponse } = pageContext; 99 | if (!httpResponse) { 100 | // TODO: here we could render a 404 page 101 | return reply.callNotFound(); 102 | } 103 | 104 | const { statusCode, headers, earlyHints } = httpResponse; 105 | 106 | // Write hints before sending the response 107 | await reply.writeEarlyHints({ Link: earlyHints.map((hint) => hint.earlyHintLink) }); 108 | 109 | headers.forEach(([name, value]) => reply.header(name, value)); 110 | 111 | reply.status(statusCode).send(httpResponse.body); 112 | 113 | // see https://vike.dev/streaming 114 | // https://www.npmjs.com/package/react-streaming 115 | return reply; 116 | }); 117 | 118 | return app; 119 | } 120 | 121 | function createCookiesAccessor(request: FastifyRequest, reply: FastifyReply) { 122 | return { 123 | get(name: string): string | undefined { 124 | return request.cookies[name]; 125 | }, 126 | set(name: string, value: string, options: CookieSerializeOptions) { 127 | reply.setCookie(name, value, options); 128 | }, 129 | remove(name: string, options: CookieSerializeOptions) { 130 | reply.clearCookie(name, options); 131 | }, 132 | }; 133 | } 134 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Effector SSR Vike Application Template 2 | 3 | This project is a template for quickly starting a Server-Side Rendering (SSR) Node.js application, combining a powerful set of vite, react, effector, and fastify. 4 | 5 | ## Features 6 | 7 | - **File-system routing** implemented by Vike; 8 | - **Effector** to cover state management cases; 9 | - **React.js** to use the giant ecosystem of UI components; 10 | 11 | ## Used Tools 12 | 13 | - **TypeScript**: v5 with [ts-node](https://npmjs.com/ts-node) 14 | - **React**: v18 15 | - **Vite**: v5 with [vite-plugin-svgr](https://npmjs.com/vite-plugin-svgr), [@vitejs/plugin-react](https://npmjs.com/@vitejs/plugin-react) 16 | - **Vike**: v0.4 with [vike-react](https://npmjs.com/vike-react) and few hooks in ./renderer 17 | - **Fastify**: v4 with [cookie](https://npmjs.com/cookie), [cors](https://npmjs.com/cors), [early-hints](https://npmjs.com/early-hints), [helmet](https://npmjs.com/helmet), [rate-limit](https://npmjs.com/rate-limit), more. 18 | - **Effector**: v23 with [patronum](https://npmjs.com/patronum), [reflect](https://npmjs.com/@effector/reflect), [factorio](https://npmjs.com/effector-factorio) 19 | - **Zod**: v3 20 | - **SVGR**: as [vite-plugin-svgr](https://npmjs.com/vite-plugin-svgr) v4 21 | - **Prettier**: v3 with [plugin-sort-imports](@trivago/prettier-plugin-sort-imports) by trivago 22 | 23 | ## Requirements 24 | 25 | - Node.js 18.6+ 26 | - corepack enabled (but can be used without) 27 | 28 | ## Use this template 29 | 30 | 0. Press "Use this template" to create a copy of repository. 31 | 32 | 1. Clone your repository: 33 | 34 | ```bash 35 | git clone https://github.com/effector/vike-react-template my-app 36 | # OR 37 | gh repo clone effector/vike-react-template my-app 38 | ``` 39 | 40 | 2. Navigate to the project directory: 41 | 42 | ```bash 43 | cd my-app 44 | ``` 45 | 46 | 3. Install package manager and dependencies: 47 | 48 | ```bash 49 | corepack enable 50 | corepack prepare 51 | pnpm install 52 | ``` 53 | 54 | ## Usage 55 | 56 | 1. Run in development mode: 57 | 58 | ```bash 59 | pnpm dev 60 | ``` 61 | 62 | 2. Build for production: 63 | 64 | ```bash 65 | pnpm build 66 | ``` 67 | 68 | 3. Run production version: 69 | 70 | ```bash 71 | pnpm start 72 | ``` 73 | 74 | ## Project Structure 75 | 76 | Strongly recommend to carefully **review each file** in this repository, before using it in production. 77 | 78 | This project inherites [Vike project structure](https://vike.dev/file-structure): 79 | 80 | dist/ 81 | pages/ 82 | public/ 83 | renderer/ 84 | server/ 85 | src/ 86 | 87 | - `dist` contains result of `pnpm build`, it is production build; 88 | - `pages` is a Vike's [filesystem routing](https://vike.dev/routing#filesystem-routing); 89 | - `public` is a [static files directory](https://vike.dev/static-directory#public); 90 | - `renderer` is a react + effector [integration hooks](https://vike.dev/file-structure#renderer); 91 | - `server` is a fastify server, builds with `tsc`, runs with `ts-node`; 92 | - `src` is a [FSD](https://feature-sliced.design) basis, with code imported into `pages`, and `renderer`; 93 | 94 | ### `pages/` 95 | 96 | #### `pages/+Wrapper.tsx` 97 | 98 | It is a data provider for logic uses effector. 99 | 100 | #### `pages/+Layout.tsx` 101 | 102 | To wrap up components with some layout use [`+Layout.tsx`](https://vike.dev/Layout). 103 | 104 | Also, you can [nest multiple layouts](https://vike.dev/Layout#nested-layouts). 105 | 106 | #### `pages/index/+pageStarted.ts` 107 | 108 | This vike hook describes what event Vike should call on server when page logic can be started. 109 | 110 | Usually looks like this: 111 | 112 | ```ts 113 | import { createPageStart } from "~/shared/init"; 114 | 115 | export const pageStarted = createPageStart(); 116 | 117 | // pageStarted has type: 118 | pageStarted: EventCallable<{ 119 | params: Record; 120 | data: void; 121 | }>; 122 | ``` 123 | 124 | `params` looks like `{ id: "foo" }` for route `pages/example/@id` and pathname `/example/foo`. 125 | 126 | | Url | Route | `params` | 127 | | ------------ | ----------------- | --------------- | 128 | | / | pages/index | `{}` | 129 | | /example/100 | pages/example/@id | `{ id: "100" }` | 130 | 131 | #### `pages/index/+Page.tsx` 132 | 133 | This is a page component. It can import `model.ts` and all from src using `~/` alias. 134 | 135 | Use `export default` and named functions: 136 | 137 | ```tsx 138 | export default function PageHome() { 139 | return

Hello World

; 140 | } 141 | ``` 142 | 143 | #### `pages/index/model.ts` 144 | 145 | This is a logic file written in effector. It can import `+pageStarted.ts` and all from src using `~/` alias. 146 | 147 | ```ts 148 | import { createEffect, sample } from "effector"; 149 | 150 | import { pageStarted } from "./+pageStarted"; 151 | 152 | const helloFx = createEffect((name: string) => { 153 | console.info(`Hello ${name}`); 154 | }); 155 | 156 | sample({ 157 | clock: pageStarted, 158 | fn: () => "World", 159 | target: helloFx, 160 | }); 161 | ``` 162 | 163 | When user opened http://localhost:3000, `pageStarted` fired, then sample with `clock: pageStarted` reacts and triggers `helloFx` with `"World"` argument. 164 | 165 | In our dynamic and event driven kind of environment, this is the powerful way to describe logic. 166 | **Without needing to deal with React**, Hooks, Rerenders, StrictMode, Next.js, etc. 167 | 168 | ### `pages/example/@id` 169 | 170 | Let's talk about data loading. 171 | 172 | You can always use simple `createEffect` to load data in Browser, just react on user actions, not `pageStarted` nor `appStarted`. 173 | 174 | Until, you read [Data Fetching article](https://vike.dev/data-fetching) from Vike.dev. It will works until [Client-Side Routing](https://vike.dev/client-routing). 175 | Vike has `+data.ts` hook to fetch data on client and server navigation. 176 | 177 | > In case of refetch data using triggering some event on client side, or changing filters in user interface consider making client navigation with query parameters. 178 | 179 | #### `pages/example/@id/+data.ts` 180 | 181 | Declare your data fetcher. Name of the exported function must be `data`. Use this as starting point: 182 | 183 | ```ts 184 | import type { PageContextServer } from "vike/types"; 185 | 186 | export async function data(pageContext: PageContextServer) { 187 | const { routeParams } = pageContext; 188 | const { id } = routeParams; 189 | 190 | // await api.someItems.getById(id) 191 | 192 | return { 193 | sampleData: { id: id ?? "" }, 194 | }; 195 | } 196 | ``` 197 | 198 | Consider placing all reusable API requests into `src/shared/api`. 199 | Using barrel file pattern is optional but very useful. 200 | 201 | #### `pages/example/@id/+pageStarted.ts` 202 | 203 | In case of data loading, hook pageStarted should be modified: 204 | 205 | ```ts 206 | import { createPageStart } from "~/shared/init"; 207 | 208 | import type { data } from "./+data"; 209 | 210 | export const pageStarted = createPageStart>>(); 211 | ``` 212 | 213 | You need just bind resulting type of your `data` loader function. Vike passes result of `data()` call into `pageStarted` like `{ params: { id }, data }`. 214 | 215 | #### `pages/example/@id/model.ts` 216 | 217 | So, you can access data from `model` like this: 218 | 219 | ```ts 220 | import { createStore, sample } from "effector"; 221 | 222 | import { pageStarted } from "./+pageStarted"; 223 | 224 | sample({ 225 | clock: pageStarted, 226 | fn: ({ data, params: { id } }) => data, 227 | target: insertHereAnyUnit, 228 | }); 229 | // you can actually use `source, filter` in sample 230 | ``` 231 | 232 | ### `pages/_error` 233 | 234 | Component created as `pages/_error/+Page.tsx` is used to show [error page](https://vike.dev/error-page). 235 | 236 | ### `renderer/` 237 | 238 | Here described exact integration of vike, react, and effector. 239 | You may need to read this before changing: 240 | 241 | - [Vike Hooks](https://vike.dev/hooks); 242 | - [Build Your Own Framework](https://vike.dev/build-your-own-framework) on top of Vike; 243 | - Don't be shy, read source files, it has links to documentation; 244 | 245 | ### `server/` 246 | 247 | #### `server/config.ts` 248 | 249 | Contains resolvers of configuration variables. 250 | 251 | ```ts 252 | export const CONFIG = { 253 | get SERVER_PORT() { 254 | return Number.parseInt(globalThis.process.env.SERVER_PORT ?? "3000", 10); 255 | }, 256 | }; 257 | ``` 258 | 259 | > This is the only way it works on Cloudflare Workers. If you have a better solution please [Leave an issue](https://github.com/effector/vike-react-template/issues). 260 | 261 | #### `server/directory-root.ts` 262 | 263 | Declares project root directory, to resolve static assets from. 264 | 265 | #### `server/index.ts` 266 | 267 | Creates instance of `server/server`, handles signals SIGINT, SIGTERM. 268 | 269 | #### `server/server.ts` 270 | 271 | Creates fastify instance, configures plugins, read cookies, renders using vike/server. 272 | 273 | You can modify any part of this and any other files. Please, explore documentation before. 274 | 275 | #### `server/tsconfig.json` 276 | 277 | Used here to describe different environment for files in this directory. 278 | 279 | It builds for production with `tsc -p server`. It runs for development with `ts-node` ESM-loader. 280 | 281 | There is no hot reload in `server/` directory. Restart manually after changing these files. 282 | 283 | ### `src/` 284 | 285 | Consider using [Feature-Sliced Design](https://feature-sliced.design/) structuring this directory. 286 | 287 | #### `src/vike.d.ts` 288 | 289 | Handles [`pageContext` typings](https://vike.dev/pageContext#typescript). 290 | 291 | #### `src/vite-env.d.ts` 292 | 293 | Handles [Vite client types](https://vitejs.dev/guide/features.html#client-types). 294 | 295 | ## Customization 296 | 297 | > What kind of customizations needs to be described? integration with supabase? [Leave an issue](https://github.com/effector/vike-react-template/issues). 298 | 299 | ### Use different Package Manager 300 | 301 | First of all, delete `pnpm-lock.yaml`, dist, and node_modules: 302 | 303 | ```bash 304 | rm pnpm-lock.yaml 305 | rm -rf node_modules dist 306 | ``` 307 | 308 | #### Node.js v18.x: 309 | 310 | Set exact version into `packageManager` field of `package.json`: 311 | 312 | ```json 313 | // package.json 314 | { 315 | "packageManager": "npm@10.8.2" // "yarn@3.8.4", 316 | } 317 | ``` 318 | 319 | Save and navigate to your terminal into the project directory: 320 | 321 | ```bash 322 | # Enable corepack for your shell 323 | corepack enable 324 | 325 | # Install package manager for your project 326 | corepack prepare 327 | 328 | # Install dependencies 329 | npm install 330 | ``` 331 | 332 | #### Node.js v20+: 333 | 334 | Node.js v20 has different version of corepack, so we can use `corepack use`. 335 | 336 | ```bash 337 | # Enable corepack for your shell 338 | corepack enable 339 | 340 | # Install package manager for your project 341 | corepack use npm@latest # yarn@3 342 | 343 | # Install dependencies 344 | npm install 345 | 346 | # Check packageManager field in package.json 347 | jq .packageManager package.json 348 | #> "yarn@3.8.4+sha256.1ee0e26fb669143425371ab8727fe4c5841640a2fd944863a8e8c28be966aca2" 349 | # It's OK 350 | ``` 351 | 352 | ## Supported OS and Node.js 353 | 354 | This template has been tested on: 355 | 356 | - macOS Sonoma 14.5, Node.js v20.10.0 357 | 358 | ## Contributing 359 | 360 | We welcome contributions to the project! Please read our contribution guidelines before submitting a pull request. 361 | 362 | ## License 363 | 364 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. 365 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@effector/reflect': 12 | specifier: ^9.2.0 13 | version: 9.2.0(effector-react@23.2.1(effector@23.2.2)(react@18.3.1))(effector@23.2.2)(react@18.3.1) 14 | '@fastify/accepts': 15 | specifier: ^4.3.0 16 | version: 4.3.0 17 | '@fastify/compress': 18 | specifier: ^7.0.3 19 | version: 7.0.3 20 | '@fastify/cookie': 21 | specifier: ^9.3.1 22 | version: 9.3.1 23 | '@fastify/cors': 24 | specifier: ^9.0.1 25 | version: 9.0.1 26 | '@fastify/early-hints': 27 | specifier: ^1.0.1 28 | version: 1.0.1 29 | '@fastify/helmet': 30 | specifier: ^11.1.1 31 | version: 11.1.1 32 | '@fastify/rate-limit': 33 | specifier: ^9.1.0 34 | version: 9.1.0 35 | '@fastify/static': 36 | specifier: ^7.0.4 37 | version: 7.0.4 38 | compression: 39 | specifier: ^1.7.4 40 | version: 1.7.4 41 | dotenv: 42 | specifier: ^16.4.5 43 | version: 16.4.5 44 | effector: 45 | specifier: ^23.2.2 46 | version: 23.2.2 47 | effector-factorio: 48 | specifier: ^1.3.0 49 | version: 1.3.0(effector@23.2.2)(react@18.3.1) 50 | effector-react: 51 | specifier: ^23.2.1 52 | version: 23.2.1(effector@23.2.2)(react@18.3.1) 53 | fastify: 54 | specifier: ^4.28.1 55 | version: 4.28.1 56 | patronum: 57 | specifier: ^2.2.0 58 | version: 2.2.0(effector@23.2.2) 59 | pino: 60 | specifier: ^9.3.2 61 | version: 9.3.2 62 | react: 63 | specifier: ^18.3.1 64 | version: 18.3.1 65 | react-dom: 66 | specifier: ^18.3.1 67 | version: 18.3.1(react@18.3.1) 68 | vike: 69 | specifier: 0.4.184 70 | version: 0.4.184(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.1(@types/node@22.3.0)) 71 | vike-react: 72 | specifier: ^0.5.2 73 | version: 0.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.184(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.1(@types/node@22.3.0))) 74 | zod: 75 | specifier: ^3.23.8 76 | version: 3.23.8 77 | devDependencies: 78 | '@babel/parser': 79 | specifier: ^7.25.3 80 | version: 7.25.3 81 | '@babel/plugin-syntax-import-attributes': 82 | specifier: ^7.24.7 83 | version: 7.24.7(@babel/core@7.25.2) 84 | '@trivago/prettier-plugin-sort-imports': 85 | specifier: ^4.3.0 86 | version: 4.3.0(prettier@3.3.3) 87 | '@types/compression': 88 | specifier: ^1.7.5 89 | version: 1.7.5 90 | '@types/node': 91 | specifier: ^22.3.0 92 | version: 22.3.0 93 | '@types/react': 94 | specifier: ^18.3.3 95 | version: 18.3.3 96 | '@types/react-dom': 97 | specifier: ^18.3.0 98 | version: 18.3.0 99 | '@vitejs/plugin-react': 100 | specifier: ^4.3.1 101 | version: 4.3.1(vite@5.4.1(@types/node@22.3.0)) 102 | cross-env: 103 | specifier: ^7.0.3 104 | version: 7.0.3 105 | pino-pretty: 106 | specifier: ^11.2.2 107 | version: 11.2.2 108 | prettier: 109 | specifier: ^3.3.3 110 | version: 3.3.3 111 | ts-node: 112 | specifier: ^10.9.2 113 | version: 10.9.2(@types/node@22.3.0)(typescript@5.5.4) 114 | typescript: 115 | specifier: ^5.5.4 116 | version: 5.5.4 117 | vite: 118 | specifier: ^5.4.1 119 | version: 5.4.1(@types/node@22.3.0) 120 | vite-plugin-svgr: 121 | specifier: ^4.2.0 122 | version: 4.2.0(rollup@4.20.0)(typescript@5.5.4)(vite@5.4.1(@types/node@22.3.0)) 123 | 124 | packages: 125 | 126 | '@ampproject/remapping@2.3.0': 127 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 128 | engines: {node: '>=6.0.0'} 129 | 130 | '@babel/code-frame@7.24.7': 131 | resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} 132 | engines: {node: '>=6.9.0'} 133 | 134 | '@babel/compat-data@7.25.2': 135 | resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} 136 | engines: {node: '>=6.9.0'} 137 | 138 | '@babel/core@7.25.2': 139 | resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} 140 | engines: {node: '>=6.9.0'} 141 | 142 | '@babel/generator@7.17.7': 143 | resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} 144 | engines: {node: '>=6.9.0'} 145 | 146 | '@babel/generator@7.25.0': 147 | resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} 148 | engines: {node: '>=6.9.0'} 149 | 150 | '@babel/helper-compilation-targets@7.25.2': 151 | resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} 152 | engines: {node: '>=6.9.0'} 153 | 154 | '@babel/helper-environment-visitor@7.24.7': 155 | resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} 156 | engines: {node: '>=6.9.0'} 157 | 158 | '@babel/helper-function-name@7.24.7': 159 | resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} 160 | engines: {node: '>=6.9.0'} 161 | 162 | '@babel/helper-hoist-variables@7.24.7': 163 | resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} 164 | engines: {node: '>=6.9.0'} 165 | 166 | '@babel/helper-module-imports@7.24.7': 167 | resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} 168 | engines: {node: '>=6.9.0'} 169 | 170 | '@babel/helper-module-transforms@7.25.2': 171 | resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} 172 | engines: {node: '>=6.9.0'} 173 | peerDependencies: 174 | '@babel/core': ^7.0.0 175 | 176 | '@babel/helper-plugin-utils@7.24.8': 177 | resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} 178 | engines: {node: '>=6.9.0'} 179 | 180 | '@babel/helper-simple-access@7.24.7': 181 | resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} 182 | engines: {node: '>=6.9.0'} 183 | 184 | '@babel/helper-split-export-declaration@7.24.7': 185 | resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} 186 | engines: {node: '>=6.9.0'} 187 | 188 | '@babel/helper-string-parser@7.24.8': 189 | resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} 190 | engines: {node: '>=6.9.0'} 191 | 192 | '@babel/helper-validator-identifier@7.24.7': 193 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} 194 | engines: {node: '>=6.9.0'} 195 | 196 | '@babel/helper-validator-option@7.24.8': 197 | resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} 198 | engines: {node: '>=6.9.0'} 199 | 200 | '@babel/helpers@7.25.0': 201 | resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} 202 | engines: {node: '>=6.9.0'} 203 | 204 | '@babel/highlight@7.24.7': 205 | resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} 206 | engines: {node: '>=6.9.0'} 207 | 208 | '@babel/parser@7.25.3': 209 | resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} 210 | engines: {node: '>=6.0.0'} 211 | hasBin: true 212 | 213 | '@babel/plugin-syntax-import-attributes@7.24.7': 214 | resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} 215 | engines: {node: '>=6.9.0'} 216 | peerDependencies: 217 | '@babel/core': ^7.0.0-0 218 | 219 | '@babel/plugin-transform-react-jsx-self@7.24.7': 220 | resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} 221 | engines: {node: '>=6.9.0'} 222 | peerDependencies: 223 | '@babel/core': ^7.0.0-0 224 | 225 | '@babel/plugin-transform-react-jsx-source@7.24.7': 226 | resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} 227 | engines: {node: '>=6.9.0'} 228 | peerDependencies: 229 | '@babel/core': ^7.0.0-0 230 | 231 | '@babel/template@7.25.0': 232 | resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} 233 | engines: {node: '>=6.9.0'} 234 | 235 | '@babel/traverse@7.23.2': 236 | resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} 237 | engines: {node: '>=6.9.0'} 238 | 239 | '@babel/traverse@7.25.3': 240 | resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} 241 | engines: {node: '>=6.9.0'} 242 | 243 | '@babel/types@7.17.0': 244 | resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} 245 | engines: {node: '>=6.9.0'} 246 | 247 | '@babel/types@7.25.2': 248 | resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} 249 | engines: {node: '>=6.9.0'} 250 | 251 | '@brillout/import@0.2.3': 252 | resolution: {integrity: sha512-1T8WlD75eeFSMrptGy8jiLHmfHgMmSjWvLOIUvHmSVZt+6k0eQqYUoK4KbmE4T9pVLIfxvZSOm2D68VEqKRHRw==} 253 | 254 | '@brillout/json-serializer@0.5.13': 255 | resolution: {integrity: sha512-9FpmgpuoSISw6fAPVB2qwW1dGAADN28YbWpfwOErfcZxpBH4lsnejuY89qcivInnWXYJvyyPwghCuOTbtuaYFg==} 256 | 257 | '@brillout/picocolors@1.0.14': 258 | resolution: {integrity: sha512-XhyZY3/FUh56mDuLIjv5kN9qy+oQj7A/d2uQ6cJJ4uVv55+velua3abcrM5WIvs2RHZGA3EE7S9FWo+TjF10ew==} 259 | 260 | '@brillout/require-shim@0.1.2': 261 | resolution: {integrity: sha512-3I4LRHnVZXoSAsEoni5mosq9l6eiJED58d9V954W4CIZ88AUfYBanWGBGbJG3NztaRTpFHEA6wB3Hn93BmmJdg==} 262 | 263 | '@brillout/vite-plugin-server-entry@0.4.7': 264 | resolution: {integrity: sha512-G/wHFx/JdFUA9kPSPDT0nIJH1wmgIwUIY27RL4N6EaHeaXgN4zSCBZTNvvKHyojvMxMw825m4vE0VksHXLyOng==} 265 | 266 | '@cspotcode/source-map-support@0.8.1': 267 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 268 | engines: {node: '>=12'} 269 | 270 | '@effector/reflect@9.2.0': 271 | resolution: {integrity: sha512-jumgC1Ztl28gRmhLei2TX3bF0p1sD/LhAWHWggbmiNcZnpX4K6odTITrFLSu4wKkyP+AX9QpF/wiqLi0njDP1A==} 272 | peerDependencies: 273 | effector: ^23.1.0 274 | effector-react: ^23.1.0 275 | react: '>=16.8.0 <19.0.0' 276 | 277 | '@esbuild/aix-ppc64@0.19.12': 278 | resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} 279 | engines: {node: '>=12'} 280 | cpu: [ppc64] 281 | os: [aix] 282 | 283 | '@esbuild/aix-ppc64@0.21.5': 284 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 285 | engines: {node: '>=12'} 286 | cpu: [ppc64] 287 | os: [aix] 288 | 289 | '@esbuild/android-arm64@0.19.12': 290 | resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} 291 | engines: {node: '>=12'} 292 | cpu: [arm64] 293 | os: [android] 294 | 295 | '@esbuild/android-arm64@0.21.5': 296 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 297 | engines: {node: '>=12'} 298 | cpu: [arm64] 299 | os: [android] 300 | 301 | '@esbuild/android-arm@0.19.12': 302 | resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} 303 | engines: {node: '>=12'} 304 | cpu: [arm] 305 | os: [android] 306 | 307 | '@esbuild/android-arm@0.21.5': 308 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 309 | engines: {node: '>=12'} 310 | cpu: [arm] 311 | os: [android] 312 | 313 | '@esbuild/android-x64@0.19.12': 314 | resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} 315 | engines: {node: '>=12'} 316 | cpu: [x64] 317 | os: [android] 318 | 319 | '@esbuild/android-x64@0.21.5': 320 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 321 | engines: {node: '>=12'} 322 | cpu: [x64] 323 | os: [android] 324 | 325 | '@esbuild/darwin-arm64@0.19.12': 326 | resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} 327 | engines: {node: '>=12'} 328 | cpu: [arm64] 329 | os: [darwin] 330 | 331 | '@esbuild/darwin-arm64@0.21.5': 332 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 333 | engines: {node: '>=12'} 334 | cpu: [arm64] 335 | os: [darwin] 336 | 337 | '@esbuild/darwin-x64@0.19.12': 338 | resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} 339 | engines: {node: '>=12'} 340 | cpu: [x64] 341 | os: [darwin] 342 | 343 | '@esbuild/darwin-x64@0.21.5': 344 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 345 | engines: {node: '>=12'} 346 | cpu: [x64] 347 | os: [darwin] 348 | 349 | '@esbuild/freebsd-arm64@0.19.12': 350 | resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} 351 | engines: {node: '>=12'} 352 | cpu: [arm64] 353 | os: [freebsd] 354 | 355 | '@esbuild/freebsd-arm64@0.21.5': 356 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 357 | engines: {node: '>=12'} 358 | cpu: [arm64] 359 | os: [freebsd] 360 | 361 | '@esbuild/freebsd-x64@0.19.12': 362 | resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} 363 | engines: {node: '>=12'} 364 | cpu: [x64] 365 | os: [freebsd] 366 | 367 | '@esbuild/freebsd-x64@0.21.5': 368 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 369 | engines: {node: '>=12'} 370 | cpu: [x64] 371 | os: [freebsd] 372 | 373 | '@esbuild/linux-arm64@0.19.12': 374 | resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} 375 | engines: {node: '>=12'} 376 | cpu: [arm64] 377 | os: [linux] 378 | 379 | '@esbuild/linux-arm64@0.21.5': 380 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 381 | engines: {node: '>=12'} 382 | cpu: [arm64] 383 | os: [linux] 384 | 385 | '@esbuild/linux-arm@0.19.12': 386 | resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} 387 | engines: {node: '>=12'} 388 | cpu: [arm] 389 | os: [linux] 390 | 391 | '@esbuild/linux-arm@0.21.5': 392 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 393 | engines: {node: '>=12'} 394 | cpu: [arm] 395 | os: [linux] 396 | 397 | '@esbuild/linux-ia32@0.19.12': 398 | resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} 399 | engines: {node: '>=12'} 400 | cpu: [ia32] 401 | os: [linux] 402 | 403 | '@esbuild/linux-ia32@0.21.5': 404 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 405 | engines: {node: '>=12'} 406 | cpu: [ia32] 407 | os: [linux] 408 | 409 | '@esbuild/linux-loong64@0.19.12': 410 | resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} 411 | engines: {node: '>=12'} 412 | cpu: [loong64] 413 | os: [linux] 414 | 415 | '@esbuild/linux-loong64@0.21.5': 416 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 417 | engines: {node: '>=12'} 418 | cpu: [loong64] 419 | os: [linux] 420 | 421 | '@esbuild/linux-mips64el@0.19.12': 422 | resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} 423 | engines: {node: '>=12'} 424 | cpu: [mips64el] 425 | os: [linux] 426 | 427 | '@esbuild/linux-mips64el@0.21.5': 428 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 429 | engines: {node: '>=12'} 430 | cpu: [mips64el] 431 | os: [linux] 432 | 433 | '@esbuild/linux-ppc64@0.19.12': 434 | resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} 435 | engines: {node: '>=12'} 436 | cpu: [ppc64] 437 | os: [linux] 438 | 439 | '@esbuild/linux-ppc64@0.21.5': 440 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 441 | engines: {node: '>=12'} 442 | cpu: [ppc64] 443 | os: [linux] 444 | 445 | '@esbuild/linux-riscv64@0.19.12': 446 | resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} 447 | engines: {node: '>=12'} 448 | cpu: [riscv64] 449 | os: [linux] 450 | 451 | '@esbuild/linux-riscv64@0.21.5': 452 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 453 | engines: {node: '>=12'} 454 | cpu: [riscv64] 455 | os: [linux] 456 | 457 | '@esbuild/linux-s390x@0.19.12': 458 | resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} 459 | engines: {node: '>=12'} 460 | cpu: [s390x] 461 | os: [linux] 462 | 463 | '@esbuild/linux-s390x@0.21.5': 464 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 465 | engines: {node: '>=12'} 466 | cpu: [s390x] 467 | os: [linux] 468 | 469 | '@esbuild/linux-x64@0.19.12': 470 | resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} 471 | engines: {node: '>=12'} 472 | cpu: [x64] 473 | os: [linux] 474 | 475 | '@esbuild/linux-x64@0.21.5': 476 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 477 | engines: {node: '>=12'} 478 | cpu: [x64] 479 | os: [linux] 480 | 481 | '@esbuild/netbsd-x64@0.19.12': 482 | resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} 483 | engines: {node: '>=12'} 484 | cpu: [x64] 485 | os: [netbsd] 486 | 487 | '@esbuild/netbsd-x64@0.21.5': 488 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 489 | engines: {node: '>=12'} 490 | cpu: [x64] 491 | os: [netbsd] 492 | 493 | '@esbuild/openbsd-x64@0.19.12': 494 | resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} 495 | engines: {node: '>=12'} 496 | cpu: [x64] 497 | os: [openbsd] 498 | 499 | '@esbuild/openbsd-x64@0.21.5': 500 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 501 | engines: {node: '>=12'} 502 | cpu: [x64] 503 | os: [openbsd] 504 | 505 | '@esbuild/sunos-x64@0.19.12': 506 | resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} 507 | engines: {node: '>=12'} 508 | cpu: [x64] 509 | os: [sunos] 510 | 511 | '@esbuild/sunos-x64@0.21.5': 512 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 513 | engines: {node: '>=12'} 514 | cpu: [x64] 515 | os: [sunos] 516 | 517 | '@esbuild/win32-arm64@0.19.12': 518 | resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} 519 | engines: {node: '>=12'} 520 | cpu: [arm64] 521 | os: [win32] 522 | 523 | '@esbuild/win32-arm64@0.21.5': 524 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 525 | engines: {node: '>=12'} 526 | cpu: [arm64] 527 | os: [win32] 528 | 529 | '@esbuild/win32-ia32@0.19.12': 530 | resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} 531 | engines: {node: '>=12'} 532 | cpu: [ia32] 533 | os: [win32] 534 | 535 | '@esbuild/win32-ia32@0.21.5': 536 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 537 | engines: {node: '>=12'} 538 | cpu: [ia32] 539 | os: [win32] 540 | 541 | '@esbuild/win32-x64@0.19.12': 542 | resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} 543 | engines: {node: '>=12'} 544 | cpu: [x64] 545 | os: [win32] 546 | 547 | '@esbuild/win32-x64@0.21.5': 548 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 549 | engines: {node: '>=12'} 550 | cpu: [x64] 551 | os: [win32] 552 | 553 | '@fastify/accept-negotiator@1.1.0': 554 | resolution: {integrity: sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==} 555 | engines: {node: '>=14'} 556 | 557 | '@fastify/accepts@4.3.0': 558 | resolution: {integrity: sha512-QK4FoqXdwwPmaPOLL6NrxsyaXVvdviYVoS6ltHyOLdFlUyREIaMykHQIp+x0aJz9hB3B3n/Ht6QRdvBeGkptGQ==} 559 | 560 | '@fastify/ajv-compiler@3.6.0': 561 | resolution: {integrity: sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==} 562 | 563 | '@fastify/compress@7.0.3': 564 | resolution: {integrity: sha512-xa9fo5/DgK1s0bkS6xrYgNn8HmofO5tJvbCDk8QuXshSgLd2cFZANv1ox/Qv7zswS7JroHwTlCVv/XGTVO98tg==} 565 | 566 | '@fastify/cookie@9.3.1': 567 | resolution: {integrity: sha512-h1NAEhB266+ZbZ0e9qUE6NnNR07i7DnNXWG9VbbZ8uC6O/hxHpl+Zoe5sw1yfdZ2U6XhToUGDnzQtWJdCaPwfg==} 568 | 569 | '@fastify/cors@9.0.1': 570 | resolution: {integrity: sha512-YY9Ho3ovI+QHIL2hW+9X4XqQjXLjJqsU+sMV/xFsxZkE8p3GNnYVFpoOxF7SsP5ZL76gwvbo3V9L+FIekBGU4Q==} 571 | 572 | '@fastify/early-hints@1.0.1': 573 | resolution: {integrity: sha512-wtxJhz3cEf87MpIQzpxwu0g/ShwIr3/wDI8a3KUBDbpQkMjYNX9i+RM5JyM7m+WJGSSl3OvwxAsUp6br7Mk5lA==} 574 | 575 | '@fastify/error@3.4.1': 576 | resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==} 577 | 578 | '@fastify/fast-json-stringify-compiler@4.3.0': 579 | resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} 580 | 581 | '@fastify/helmet@11.1.1': 582 | resolution: {integrity: sha512-pjJxjk6SLEimITWadtYIXt6wBMfFC1I6OQyH/jYVCqSAn36sgAIFjeNiibHtifjCd+e25442pObis3Rjtame6A==} 583 | 584 | '@fastify/merge-json-schemas@0.1.1': 585 | resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} 586 | 587 | '@fastify/rate-limit@9.1.0': 588 | resolution: {integrity: sha512-h5dZWCkuZXN0PxwqaFQLxeln8/LNwQwH9popywmDCFdKfgpi4b/HoMH1lluy6P+30CG9yzzpSpwTCIPNB9T1JA==} 589 | 590 | '@fastify/send@2.1.0': 591 | resolution: {integrity: sha512-yNYiY6sDkexoJR0D8IDy3aRP3+L4wdqCpvx5WP+VtEU58sn7USmKynBzDQex5X42Zzvw2gNzzYgP90UfWShLFA==} 592 | 593 | '@fastify/static@7.0.4': 594 | resolution: {integrity: sha512-p2uKtaf8BMOZWLs6wu+Ihg7bWNBdjNgCwDza4MJtTqg+5ovKmcbgbR9Xs5/smZ1YISfzKOCNYmZV8LaCj+eJ1Q==} 595 | 596 | '@isaacs/cliui@8.0.2': 597 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 598 | engines: {node: '>=12'} 599 | 600 | '@jridgewell/gen-mapping@0.3.5': 601 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 602 | engines: {node: '>=6.0.0'} 603 | 604 | '@jridgewell/resolve-uri@3.1.2': 605 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 606 | engines: {node: '>=6.0.0'} 607 | 608 | '@jridgewell/set-array@1.2.1': 609 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 610 | engines: {node: '>=6.0.0'} 611 | 612 | '@jridgewell/sourcemap-codec@1.5.0': 613 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 614 | 615 | '@jridgewell/trace-mapping@0.3.25': 616 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 617 | 618 | '@jridgewell/trace-mapping@0.3.9': 619 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 620 | 621 | '@lukeed/ms@2.0.2': 622 | resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==} 623 | engines: {node: '>=8'} 624 | 625 | '@nodelib/fs.scandir@2.1.5': 626 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 627 | engines: {node: '>= 8'} 628 | 629 | '@nodelib/fs.stat@2.0.5': 630 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 631 | engines: {node: '>= 8'} 632 | 633 | '@nodelib/fs.walk@1.2.8': 634 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 635 | engines: {node: '>= 8'} 636 | 637 | '@pkgjs/parseargs@0.11.0': 638 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 639 | engines: {node: '>=14'} 640 | 641 | '@polka/url@1.0.0-next.25': 642 | resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} 643 | 644 | '@rollup/pluginutils@5.1.0': 645 | resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} 646 | engines: {node: '>=14.0.0'} 647 | peerDependencies: 648 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 649 | peerDependenciesMeta: 650 | rollup: 651 | optional: true 652 | 653 | '@rollup/rollup-android-arm-eabi@4.20.0': 654 | resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} 655 | cpu: [arm] 656 | os: [android] 657 | 658 | '@rollup/rollup-android-arm64@4.20.0': 659 | resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} 660 | cpu: [arm64] 661 | os: [android] 662 | 663 | '@rollup/rollup-darwin-arm64@4.20.0': 664 | resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} 665 | cpu: [arm64] 666 | os: [darwin] 667 | 668 | '@rollup/rollup-darwin-x64@4.20.0': 669 | resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} 670 | cpu: [x64] 671 | os: [darwin] 672 | 673 | '@rollup/rollup-linux-arm-gnueabihf@4.20.0': 674 | resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} 675 | cpu: [arm] 676 | os: [linux] 677 | 678 | '@rollup/rollup-linux-arm-musleabihf@4.20.0': 679 | resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} 680 | cpu: [arm] 681 | os: [linux] 682 | 683 | '@rollup/rollup-linux-arm64-gnu@4.20.0': 684 | resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} 685 | cpu: [arm64] 686 | os: [linux] 687 | 688 | '@rollup/rollup-linux-arm64-musl@4.20.0': 689 | resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} 690 | cpu: [arm64] 691 | os: [linux] 692 | 693 | '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': 694 | resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} 695 | cpu: [ppc64] 696 | os: [linux] 697 | 698 | '@rollup/rollup-linux-riscv64-gnu@4.20.0': 699 | resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} 700 | cpu: [riscv64] 701 | os: [linux] 702 | 703 | '@rollup/rollup-linux-s390x-gnu@4.20.0': 704 | resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} 705 | cpu: [s390x] 706 | os: [linux] 707 | 708 | '@rollup/rollup-linux-x64-gnu@4.20.0': 709 | resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} 710 | cpu: [x64] 711 | os: [linux] 712 | 713 | '@rollup/rollup-linux-x64-musl@4.20.0': 714 | resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} 715 | cpu: [x64] 716 | os: [linux] 717 | 718 | '@rollup/rollup-win32-arm64-msvc@4.20.0': 719 | resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} 720 | cpu: [arm64] 721 | os: [win32] 722 | 723 | '@rollup/rollup-win32-ia32-msvc@4.20.0': 724 | resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} 725 | cpu: [ia32] 726 | os: [win32] 727 | 728 | '@rollup/rollup-win32-x64-msvc@4.20.0': 729 | resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} 730 | cpu: [x64] 731 | os: [win32] 732 | 733 | '@svgr/babel-plugin-add-jsx-attribute@8.0.0': 734 | resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} 735 | engines: {node: '>=14'} 736 | peerDependencies: 737 | '@babel/core': ^7.0.0-0 738 | 739 | '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': 740 | resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} 741 | engines: {node: '>=14'} 742 | peerDependencies: 743 | '@babel/core': ^7.0.0-0 744 | 745 | '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': 746 | resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} 747 | engines: {node: '>=14'} 748 | peerDependencies: 749 | '@babel/core': ^7.0.0-0 750 | 751 | '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': 752 | resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} 753 | engines: {node: '>=14'} 754 | peerDependencies: 755 | '@babel/core': ^7.0.0-0 756 | 757 | '@svgr/babel-plugin-svg-dynamic-title@8.0.0': 758 | resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} 759 | engines: {node: '>=14'} 760 | peerDependencies: 761 | '@babel/core': ^7.0.0-0 762 | 763 | '@svgr/babel-plugin-svg-em-dimensions@8.0.0': 764 | resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} 765 | engines: {node: '>=14'} 766 | peerDependencies: 767 | '@babel/core': ^7.0.0-0 768 | 769 | '@svgr/babel-plugin-transform-react-native-svg@8.1.0': 770 | resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} 771 | engines: {node: '>=14'} 772 | peerDependencies: 773 | '@babel/core': ^7.0.0-0 774 | 775 | '@svgr/babel-plugin-transform-svg-component@8.0.0': 776 | resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} 777 | engines: {node: '>=12'} 778 | peerDependencies: 779 | '@babel/core': ^7.0.0-0 780 | 781 | '@svgr/babel-preset@8.1.0': 782 | resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} 783 | engines: {node: '>=14'} 784 | peerDependencies: 785 | '@babel/core': ^7.0.0-0 786 | 787 | '@svgr/core@8.1.0': 788 | resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} 789 | engines: {node: '>=14'} 790 | 791 | '@svgr/hast-util-to-babel-ast@8.0.0': 792 | resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} 793 | engines: {node: '>=14'} 794 | 795 | '@svgr/plugin-jsx@8.1.0': 796 | resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} 797 | engines: {node: '>=14'} 798 | peerDependencies: 799 | '@svgr/core': '*' 800 | 801 | '@trivago/prettier-plugin-sort-imports@4.3.0': 802 | resolution: {integrity: sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==} 803 | peerDependencies: 804 | '@vue/compiler-sfc': 3.x 805 | prettier: 2.x - 3.x 806 | peerDependenciesMeta: 807 | '@vue/compiler-sfc': 808 | optional: true 809 | 810 | '@tsconfig/node10@1.0.11': 811 | resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} 812 | 813 | '@tsconfig/node12@1.0.11': 814 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 815 | 816 | '@tsconfig/node14@1.0.3': 817 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 818 | 819 | '@tsconfig/node16@1.0.4': 820 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} 821 | 822 | '@types/babel__core@7.20.5': 823 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 824 | 825 | '@types/babel__generator@7.6.8': 826 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 827 | 828 | '@types/babel__template@7.4.4': 829 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 830 | 831 | '@types/babel__traverse@7.20.6': 832 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} 833 | 834 | '@types/body-parser@1.19.5': 835 | resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} 836 | 837 | '@types/compression@1.7.5': 838 | resolution: {integrity: sha512-AAQvK5pxMpaT+nDvhHrsBhLSYG5yQdtkaJE1WYieSNY2mVFKAgmU4ks65rkZD5oqnGCFLyQpUr1CqI4DmUMyDg==} 839 | 840 | '@types/connect@3.4.38': 841 | resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} 842 | 843 | '@types/estree@1.0.5': 844 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 845 | 846 | '@types/express-serve-static-core@4.19.5': 847 | resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} 848 | 849 | '@types/express@4.17.21': 850 | resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} 851 | 852 | '@types/http-errors@2.0.4': 853 | resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} 854 | 855 | '@types/mime@1.3.5': 856 | resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} 857 | 858 | '@types/node@22.3.0': 859 | resolution: {integrity: sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==} 860 | 861 | '@types/prop-types@15.7.12': 862 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 863 | 864 | '@types/qs@6.9.15': 865 | resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} 866 | 867 | '@types/range-parser@1.2.7': 868 | resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} 869 | 870 | '@types/react-dom@18.3.0': 871 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} 872 | 873 | '@types/react@18.3.3': 874 | resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} 875 | 876 | '@types/send@0.17.4': 877 | resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} 878 | 879 | '@types/serve-static@1.15.7': 880 | resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} 881 | 882 | '@vitejs/plugin-react@4.3.1': 883 | resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} 884 | engines: {node: ^14.18.0 || >=16.0.0} 885 | peerDependencies: 886 | vite: ^4.2.0 || ^5.0.0 887 | 888 | abort-controller@3.0.0: 889 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 890 | engines: {node: '>=6.5'} 891 | 892 | abstract-logging@2.0.1: 893 | resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} 894 | 895 | accepts@1.3.8: 896 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 897 | engines: {node: '>= 0.6'} 898 | 899 | acorn-walk@8.3.3: 900 | resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} 901 | engines: {node: '>=0.4.0'} 902 | 903 | acorn@8.12.1: 904 | resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} 905 | engines: {node: '>=0.4.0'} 906 | hasBin: true 907 | 908 | ajv-formats@2.1.1: 909 | resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} 910 | peerDependencies: 911 | ajv: ^8.0.0 912 | peerDependenciesMeta: 913 | ajv: 914 | optional: true 915 | 916 | ajv-formats@3.0.1: 917 | resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} 918 | peerDependencies: 919 | ajv: ^8.0.0 920 | peerDependenciesMeta: 921 | ajv: 922 | optional: true 923 | 924 | ajv@8.17.1: 925 | resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} 926 | 927 | ansi-regex@5.0.1: 928 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 929 | engines: {node: '>=8'} 930 | 931 | ansi-regex@6.0.1: 932 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 933 | engines: {node: '>=12'} 934 | 935 | ansi-styles@3.2.1: 936 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 937 | engines: {node: '>=4'} 938 | 939 | ansi-styles@4.3.0: 940 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 941 | engines: {node: '>=8'} 942 | 943 | ansi-styles@6.2.1: 944 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 945 | engines: {node: '>=12'} 946 | 947 | arg@4.1.3: 948 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 949 | 950 | argparse@2.0.1: 951 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 952 | 953 | atomic-sleep@1.0.0: 954 | resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 955 | engines: {node: '>=8.0.0'} 956 | 957 | avvio@8.4.0: 958 | resolution: {integrity: sha512-CDSwaxINFy59iNwhYnkvALBwZiTydGkOecZyPkqBpABYR1KqGEsET0VOOYDwtleZSUIdeY36DC2bSZ24CO1igA==} 959 | 960 | balanced-match@1.0.2: 961 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 962 | 963 | base64-js@1.5.1: 964 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 965 | 966 | brace-expansion@2.0.1: 967 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 968 | 969 | braces@3.0.3: 970 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 971 | engines: {node: '>=8'} 972 | 973 | browserslist@4.23.3: 974 | resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} 975 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 976 | hasBin: true 977 | 978 | buffer-from@1.1.2: 979 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 980 | 981 | buffer@6.0.3: 982 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 983 | 984 | bytes@3.0.0: 985 | resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} 986 | engines: {node: '>= 0.8'} 987 | 988 | cac@6.7.14: 989 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 990 | engines: {node: '>=8'} 991 | 992 | callsites@3.1.0: 993 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 994 | engines: {node: '>=6'} 995 | 996 | camelcase@6.3.0: 997 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 998 | engines: {node: '>=10'} 999 | 1000 | caniuse-lite@1.0.30001651: 1001 | resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} 1002 | 1003 | chalk@2.4.2: 1004 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1005 | engines: {node: '>=4'} 1006 | 1007 | color-convert@1.9.3: 1008 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1009 | 1010 | color-convert@2.0.1: 1011 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1012 | engines: {node: '>=7.0.0'} 1013 | 1014 | color-name@1.1.3: 1015 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1016 | 1017 | color-name@1.1.4: 1018 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1019 | 1020 | colorette@2.0.20: 1021 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 1022 | 1023 | compressible@2.0.18: 1024 | resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} 1025 | engines: {node: '>= 0.6'} 1026 | 1027 | compression@1.7.4: 1028 | resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} 1029 | engines: {node: '>= 0.8.0'} 1030 | 1031 | content-disposition@0.5.4: 1032 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 1033 | engines: {node: '>= 0.6'} 1034 | 1035 | convert-source-map@2.0.0: 1036 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1037 | 1038 | cookie-signature@1.2.1: 1039 | resolution: {integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==} 1040 | engines: {node: '>=6.6.0'} 1041 | 1042 | cookie@0.6.0: 1043 | resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 1044 | engines: {node: '>= 0.6'} 1045 | 1046 | core-util-is@1.0.3: 1047 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 1048 | 1049 | cosmiconfig@8.3.6: 1050 | resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} 1051 | engines: {node: '>=14'} 1052 | peerDependencies: 1053 | typescript: '>=4.9.5' 1054 | peerDependenciesMeta: 1055 | typescript: 1056 | optional: true 1057 | 1058 | create-require@1.1.1: 1059 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 1060 | 1061 | cross-env@7.0.3: 1062 | resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} 1063 | engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} 1064 | hasBin: true 1065 | 1066 | cross-spawn@7.0.3: 1067 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1068 | engines: {node: '>= 8'} 1069 | 1070 | csstype@3.1.3: 1071 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1072 | 1073 | dateformat@4.6.3: 1074 | resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} 1075 | 1076 | debug@2.6.9: 1077 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 1078 | peerDependencies: 1079 | supports-color: '*' 1080 | peerDependenciesMeta: 1081 | supports-color: 1082 | optional: true 1083 | 1084 | debug@4.3.6: 1085 | resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} 1086 | engines: {node: '>=6.0'} 1087 | peerDependencies: 1088 | supports-color: '*' 1089 | peerDependenciesMeta: 1090 | supports-color: 1091 | optional: true 1092 | 1093 | depd@2.0.0: 1094 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 1095 | engines: {node: '>= 0.8'} 1096 | 1097 | diff@4.0.2: 1098 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 1099 | engines: {node: '>=0.3.1'} 1100 | 1101 | dot-case@3.0.4: 1102 | resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} 1103 | 1104 | dotenv@16.4.5: 1105 | resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} 1106 | engines: {node: '>=12'} 1107 | 1108 | duplexify@3.7.1: 1109 | resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} 1110 | 1111 | duplexify@4.1.3: 1112 | resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} 1113 | 1114 | eastasianwidth@0.2.0: 1115 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1116 | 1117 | effector-factorio@1.3.0: 1118 | resolution: {integrity: sha512-KYz4AoHjyEZlzGmoNJaf1qzZn8zbYs5OQB78HjX8zdGxCwvNTRasA7ETcgmebbu+2l4je6nnf6fnczTB4o45mg==} 1119 | engines: {node: '>=10'} 1120 | peerDependencies: 1121 | effector: ^22 || ^23 1122 | react: '>=16.14.0' 1123 | solid-js: ~1.4.8 1124 | peerDependenciesMeta: 1125 | solid-js: 1126 | optional: true 1127 | 1128 | effector-react@23.2.1: 1129 | resolution: {integrity: sha512-eyjHm095xgrDNe8wtF60w5AjaF+j4Z6XP/DxW8RvlCK4twQT5mkAbIBJxA7BXKLL74RpySai8QmjVBurzapBCw==} 1130 | engines: {node: '>=11.0.0'} 1131 | peerDependencies: 1132 | effector: ^23.0.0 1133 | react: '>=16.8.0 <19.0.0' 1134 | 1135 | effector@23.2.2: 1136 | resolution: {integrity: sha512-gzwATi9pgZQx0TNhM2LESmoUpEO+vhibLZPCvVzi7spMvKFwKnfJV2PFj4xqNFFSC35TXaznx30ne62dCQ6ZRQ==} 1137 | engines: {node: '>=11.0.0'} 1138 | 1139 | electron-to-chromium@1.5.8: 1140 | resolution: {integrity: sha512-4Nx0gP2tPNBLTrFxBMHpkQbtn2hidPVr/+/FTtcCiBYTucqc70zRyVZiOLj17Ui3wTO7SQ1/N+hkHYzJjBzt6A==} 1141 | 1142 | emoji-regex@8.0.0: 1143 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1144 | 1145 | emoji-regex@9.2.2: 1146 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1147 | 1148 | end-of-stream@1.4.4: 1149 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1150 | 1151 | entities@4.5.0: 1152 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1153 | engines: {node: '>=0.12'} 1154 | 1155 | error-ex@1.3.2: 1156 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1157 | 1158 | es-module-lexer@1.5.4: 1159 | resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} 1160 | 1161 | esbuild@0.19.12: 1162 | resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} 1163 | engines: {node: '>=12'} 1164 | hasBin: true 1165 | 1166 | esbuild@0.21.5: 1167 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 1168 | engines: {node: '>=12'} 1169 | hasBin: true 1170 | 1171 | escalade@3.1.2: 1172 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 1173 | engines: {node: '>=6'} 1174 | 1175 | escape-html@1.0.3: 1176 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 1177 | 1178 | escape-string-regexp@1.0.5: 1179 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1180 | engines: {node: '>=0.8.0'} 1181 | 1182 | estree-walker@2.0.2: 1183 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1184 | 1185 | event-target-shim@5.0.1: 1186 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 1187 | engines: {node: '>=6'} 1188 | 1189 | events@3.3.0: 1190 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 1191 | engines: {node: '>=0.8.x'} 1192 | 1193 | fast-content-type-parse@1.1.0: 1194 | resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} 1195 | 1196 | fast-copy@3.0.2: 1197 | resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} 1198 | 1199 | fast-decode-uri-component@1.0.1: 1200 | resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} 1201 | 1202 | fast-deep-equal@3.1.3: 1203 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1204 | 1205 | fast-glob@3.3.2: 1206 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1207 | engines: {node: '>=8.6.0'} 1208 | 1209 | fast-json-stringify@5.16.1: 1210 | resolution: {integrity: sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==} 1211 | 1212 | fast-querystring@1.1.2: 1213 | resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} 1214 | 1215 | fast-redact@3.5.0: 1216 | resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} 1217 | engines: {node: '>=6'} 1218 | 1219 | fast-safe-stringify@2.1.1: 1220 | resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} 1221 | 1222 | fast-uri@2.4.0: 1223 | resolution: {integrity: sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==} 1224 | 1225 | fast-uri@3.0.1: 1226 | resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} 1227 | 1228 | fastify-plugin@4.5.1: 1229 | resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} 1230 | 1231 | fastify@4.28.1: 1232 | resolution: {integrity: sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==} 1233 | 1234 | fastq@1.17.1: 1235 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1236 | 1237 | fill-range@7.1.1: 1238 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1239 | engines: {node: '>=8'} 1240 | 1241 | find-my-way@8.2.0: 1242 | resolution: {integrity: sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==} 1243 | engines: {node: '>=14'} 1244 | 1245 | foreground-child@3.3.0: 1246 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 1247 | engines: {node: '>=14'} 1248 | 1249 | forwarded@0.2.0: 1250 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 1251 | engines: {node: '>= 0.6'} 1252 | 1253 | fsevents@2.3.3: 1254 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1255 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1256 | os: [darwin] 1257 | 1258 | gensync@1.0.0-beta.2: 1259 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1260 | engines: {node: '>=6.9.0'} 1261 | 1262 | glob-parent@5.1.2: 1263 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1264 | engines: {node: '>= 6'} 1265 | 1266 | glob@10.4.5: 1267 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 1268 | hasBin: true 1269 | 1270 | globals@11.12.0: 1271 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1272 | engines: {node: '>=4'} 1273 | 1274 | has-flag@3.0.0: 1275 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1276 | engines: {node: '>=4'} 1277 | 1278 | helmet@7.1.0: 1279 | resolution: {integrity: sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg==} 1280 | engines: {node: '>=16.0.0'} 1281 | 1282 | help-me@5.0.0: 1283 | resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} 1284 | 1285 | http-errors@2.0.0: 1286 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 1287 | engines: {node: '>= 0.8'} 1288 | 1289 | ieee754@1.2.1: 1290 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 1291 | 1292 | import-fresh@3.3.0: 1293 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1294 | engines: {node: '>=6'} 1295 | 1296 | inherits@2.0.4: 1297 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1298 | 1299 | ipaddr.js@1.9.1: 1300 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 1301 | engines: {node: '>= 0.10'} 1302 | 1303 | is-arrayish@0.2.1: 1304 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1305 | 1306 | is-extglob@2.1.1: 1307 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1308 | engines: {node: '>=0.10.0'} 1309 | 1310 | is-fullwidth-code-point@3.0.0: 1311 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1312 | engines: {node: '>=8'} 1313 | 1314 | is-glob@4.0.3: 1315 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1316 | engines: {node: '>=0.10.0'} 1317 | 1318 | is-number@7.0.0: 1319 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1320 | engines: {node: '>=0.12.0'} 1321 | 1322 | isarray@1.0.0: 1323 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 1324 | 1325 | isbot-fast@1.2.0: 1326 | resolution: {integrity: sha512-twjuQzy2gKMDVfKGQyQqrx6Uy4opu/fiVUTTpdqtFsd7OQijIp5oXvb27n5EemYXaijh5fomndJt/SPRLsEdSg==} 1327 | engines: {node: '>=6.0.0'} 1328 | 1329 | isexe@2.0.0: 1330 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1331 | 1332 | jackspeak@3.4.3: 1333 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1334 | 1335 | javascript-natural-sort@0.7.1: 1336 | resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} 1337 | 1338 | joycon@3.1.1: 1339 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1340 | engines: {node: '>=10'} 1341 | 1342 | js-tokens@4.0.0: 1343 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1344 | 1345 | js-yaml@4.1.0: 1346 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1347 | hasBin: true 1348 | 1349 | jsesc@2.5.2: 1350 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1351 | engines: {node: '>=4'} 1352 | hasBin: true 1353 | 1354 | json-parse-even-better-errors@2.3.1: 1355 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1356 | 1357 | json-schema-ref-resolver@1.0.1: 1358 | resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} 1359 | 1360 | json-schema-traverse@1.0.0: 1361 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1362 | 1363 | json5@2.2.3: 1364 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1365 | engines: {node: '>=6'} 1366 | hasBin: true 1367 | 1368 | light-my-request@5.13.0: 1369 | resolution: {integrity: sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==} 1370 | 1371 | lines-and-columns@1.2.4: 1372 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1373 | 1374 | lodash@4.17.21: 1375 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1376 | 1377 | loose-envify@1.4.0: 1378 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1379 | hasBin: true 1380 | 1381 | lower-case@2.0.2: 1382 | resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} 1383 | 1384 | lru-cache@10.4.3: 1385 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1386 | 1387 | lru-cache@5.1.1: 1388 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1389 | 1390 | make-error@1.3.6: 1391 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1392 | 1393 | merge2@1.4.1: 1394 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1395 | engines: {node: '>= 8'} 1396 | 1397 | micromatch@4.0.7: 1398 | resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} 1399 | engines: {node: '>=8.6'} 1400 | 1401 | mime-db@1.52.0: 1402 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1403 | engines: {node: '>= 0.6'} 1404 | 1405 | mime-db@1.53.0: 1406 | resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} 1407 | engines: {node: '>= 0.6'} 1408 | 1409 | mime-types@2.1.35: 1410 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1411 | engines: {node: '>= 0.6'} 1412 | 1413 | mime@3.0.0: 1414 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 1415 | engines: {node: '>=10.0.0'} 1416 | hasBin: true 1417 | 1418 | minimatch@9.0.5: 1419 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1420 | engines: {node: '>=16 || 14 >=14.17'} 1421 | 1422 | minimist@1.2.8: 1423 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1424 | 1425 | minipass@7.1.2: 1426 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1427 | engines: {node: '>=16 || 14 >=14.17'} 1428 | 1429 | mnemonist@0.39.6: 1430 | resolution: {integrity: sha512-A/0v5Z59y63US00cRSLiloEIw3t5G+MiKz4BhX21FI+YBJXBOGW0ohFxTxO08dsOYlzxo87T7vGfZKYp2bcAWA==} 1431 | 1432 | mrmime@2.0.0: 1433 | resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} 1434 | engines: {node: '>=10'} 1435 | 1436 | ms@2.0.0: 1437 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1438 | 1439 | ms@2.1.2: 1440 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1441 | 1442 | nanoid@3.3.7: 1443 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1444 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1445 | hasBin: true 1446 | 1447 | negotiator@0.6.3: 1448 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 1449 | engines: {node: '>= 0.6'} 1450 | 1451 | no-case@3.0.4: 1452 | resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} 1453 | 1454 | node-releases@2.0.18: 1455 | resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} 1456 | 1457 | obliterator@2.0.4: 1458 | resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} 1459 | 1460 | on-exit-leak-free@2.1.2: 1461 | resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} 1462 | engines: {node: '>=14.0.0'} 1463 | 1464 | on-headers@1.0.2: 1465 | resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} 1466 | engines: {node: '>= 0.8'} 1467 | 1468 | once@1.4.0: 1469 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1470 | 1471 | package-json-from-dist@1.0.0: 1472 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} 1473 | 1474 | parent-module@1.0.1: 1475 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1476 | engines: {node: '>=6'} 1477 | 1478 | parse-json@5.2.0: 1479 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1480 | engines: {node: '>=8'} 1481 | 1482 | path-key@3.1.1: 1483 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1484 | engines: {node: '>=8'} 1485 | 1486 | path-scurry@1.11.1: 1487 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1488 | engines: {node: '>=16 || 14 >=14.18'} 1489 | 1490 | path-type@4.0.0: 1491 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1492 | engines: {node: '>=8'} 1493 | 1494 | patronum@2.2.0: 1495 | resolution: {integrity: sha512-Idsb5swd+2UI1NuBlHJuVA4WlaUeEluZJxGAZ9obCViuEf4pP68bij3f1sZCM/vqqWPsbHclYweDNt/sWu0O1g==} 1496 | peerDependencies: 1497 | effector: ^23 1498 | 1499 | peek-stream@1.1.3: 1500 | resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} 1501 | 1502 | picocolors@1.0.1: 1503 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 1504 | 1505 | picomatch@2.3.1: 1506 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1507 | engines: {node: '>=8.6'} 1508 | 1509 | pino-abstract-transport@1.2.0: 1510 | resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} 1511 | 1512 | pino-pretty@11.2.2: 1513 | resolution: {integrity: sha512-2FnyGir8nAJAqD3srROdrF1J5BIcMT4nwj7hHSc60El6Uxlym00UbCCd8pYIterstVBFlMyF1yFV8XdGIPbj4A==} 1514 | hasBin: true 1515 | 1516 | pino-std-serializers@7.0.0: 1517 | resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} 1518 | 1519 | pino@9.3.2: 1520 | resolution: {integrity: sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==} 1521 | hasBin: true 1522 | 1523 | postcss@8.4.41: 1524 | resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} 1525 | engines: {node: ^10 || ^12 || >=14} 1526 | 1527 | prettier@3.3.3: 1528 | resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} 1529 | engines: {node: '>=14'} 1530 | hasBin: true 1531 | 1532 | process-nextick-args@2.0.1: 1533 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 1534 | 1535 | process-warning@2.3.2: 1536 | resolution: {integrity: sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==} 1537 | 1538 | process-warning@3.0.0: 1539 | resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} 1540 | 1541 | process-warning@4.0.0: 1542 | resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} 1543 | 1544 | process@0.11.10: 1545 | resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 1546 | engines: {node: '>= 0.6.0'} 1547 | 1548 | proxy-addr@2.0.7: 1549 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1550 | engines: {node: '>= 0.10'} 1551 | 1552 | pump@3.0.0: 1553 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 1554 | 1555 | pumpify@2.0.1: 1556 | resolution: {integrity: sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==} 1557 | 1558 | queue-microtask@1.2.3: 1559 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1560 | 1561 | quick-format-unescaped@4.0.4: 1562 | resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} 1563 | 1564 | react-dom@18.3.1: 1565 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 1566 | peerDependencies: 1567 | react: ^18.3.1 1568 | 1569 | react-refresh@0.14.2: 1570 | resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} 1571 | engines: {node: '>=0.10.0'} 1572 | 1573 | react-streaming@0.3.43: 1574 | resolution: {integrity: sha512-ULRCEEJu9bhMiupIR96dmE7i1j1+y7K/InE5uuF3AcP0iFFzsqdKLltGqB72ktOhfwn++iyWnzh1PHnKqR/xNw==} 1575 | peerDependencies: 1576 | react: '>=18' 1577 | react-dom: '>=18' 1578 | 1579 | react@18.3.1: 1580 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 1581 | engines: {node: '>=0.10.0'} 1582 | 1583 | readable-stream@2.3.8: 1584 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 1585 | 1586 | readable-stream@3.6.2: 1587 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 1588 | engines: {node: '>= 6'} 1589 | 1590 | readable-stream@4.5.2: 1591 | resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} 1592 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1593 | 1594 | real-require@0.2.0: 1595 | resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 1596 | engines: {node: '>= 12.13.0'} 1597 | 1598 | require-from-string@2.0.2: 1599 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1600 | engines: {node: '>=0.10.0'} 1601 | 1602 | resolve-from@4.0.0: 1603 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1604 | engines: {node: '>=4'} 1605 | 1606 | ret@0.4.3: 1607 | resolution: {integrity: sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==} 1608 | engines: {node: '>=10'} 1609 | 1610 | reusify@1.0.4: 1611 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1612 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1613 | 1614 | rfdc@1.4.1: 1615 | resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} 1616 | 1617 | rollup@4.20.0: 1618 | resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} 1619 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1620 | hasBin: true 1621 | 1622 | run-parallel@1.2.0: 1623 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1624 | 1625 | safe-buffer@5.1.2: 1626 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1627 | 1628 | safe-buffer@5.2.1: 1629 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1630 | 1631 | safe-regex2@3.1.0: 1632 | resolution: {integrity: sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==} 1633 | 1634 | safe-stable-stringify@2.4.3: 1635 | resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} 1636 | engines: {node: '>=10'} 1637 | 1638 | scheduler@0.23.2: 1639 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 1640 | 1641 | secure-json-parse@2.7.0: 1642 | resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} 1643 | 1644 | semver@6.3.1: 1645 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1646 | hasBin: true 1647 | 1648 | semver@7.6.3: 1649 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1650 | engines: {node: '>=10'} 1651 | hasBin: true 1652 | 1653 | set-cookie-parser@2.7.0: 1654 | resolution: {integrity: sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==} 1655 | 1656 | setprototypeof@1.2.0: 1657 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1658 | 1659 | shebang-command@2.0.0: 1660 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1661 | engines: {node: '>=8'} 1662 | 1663 | shebang-regex@3.0.0: 1664 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1665 | engines: {node: '>=8'} 1666 | 1667 | signal-exit@4.1.0: 1668 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1669 | engines: {node: '>=14'} 1670 | 1671 | sirv@2.0.4: 1672 | resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} 1673 | engines: {node: '>= 10'} 1674 | 1675 | snake-case@3.0.4: 1676 | resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} 1677 | 1678 | sonic-boom@4.0.1: 1679 | resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==} 1680 | 1681 | source-map-js@1.2.0: 1682 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1683 | engines: {node: '>=0.10.0'} 1684 | 1685 | source-map-support@0.5.21: 1686 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1687 | 1688 | source-map@0.5.7: 1689 | resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} 1690 | engines: {node: '>=0.10.0'} 1691 | 1692 | source-map@0.6.1: 1693 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1694 | engines: {node: '>=0.10.0'} 1695 | 1696 | split2@4.2.0: 1697 | resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 1698 | engines: {node: '>= 10.x'} 1699 | 1700 | statuses@2.0.1: 1701 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1702 | engines: {node: '>= 0.8'} 1703 | 1704 | stream-shift@1.0.3: 1705 | resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} 1706 | 1707 | string-width@4.2.3: 1708 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1709 | engines: {node: '>=8'} 1710 | 1711 | string-width@5.1.2: 1712 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1713 | engines: {node: '>=12'} 1714 | 1715 | string_decoder@1.1.1: 1716 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 1717 | 1718 | string_decoder@1.3.0: 1719 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1720 | 1721 | strip-ansi@6.0.1: 1722 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1723 | engines: {node: '>=8'} 1724 | 1725 | strip-ansi@7.1.0: 1726 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1727 | engines: {node: '>=12'} 1728 | 1729 | strip-json-comments@3.1.1: 1730 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1731 | engines: {node: '>=8'} 1732 | 1733 | supports-color@5.5.0: 1734 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1735 | engines: {node: '>=4'} 1736 | 1737 | svg-parser@2.0.4: 1738 | resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} 1739 | 1740 | thread-stream@3.1.0: 1741 | resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} 1742 | 1743 | through2@2.0.5: 1744 | resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} 1745 | 1746 | to-fast-properties@2.0.0: 1747 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1748 | engines: {node: '>=4'} 1749 | 1750 | to-regex-range@5.0.1: 1751 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1752 | engines: {node: '>=8.0'} 1753 | 1754 | toad-cache@3.7.0: 1755 | resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==} 1756 | engines: {node: '>=12'} 1757 | 1758 | toidentifier@1.0.1: 1759 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 1760 | engines: {node: '>=0.6'} 1761 | 1762 | totalist@3.0.1: 1763 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1764 | engines: {node: '>=6'} 1765 | 1766 | ts-node@10.9.2: 1767 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} 1768 | hasBin: true 1769 | peerDependencies: 1770 | '@swc/core': '>=1.2.50' 1771 | '@swc/wasm': '>=1.2.50' 1772 | '@types/node': '*' 1773 | typescript: '>=2.7' 1774 | peerDependenciesMeta: 1775 | '@swc/core': 1776 | optional: true 1777 | '@swc/wasm': 1778 | optional: true 1779 | 1780 | tslib@2.6.3: 1781 | resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} 1782 | 1783 | typescript@5.5.4: 1784 | resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} 1785 | engines: {node: '>=14.17'} 1786 | hasBin: true 1787 | 1788 | undici-types@6.18.2: 1789 | resolution: {integrity: sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==} 1790 | 1791 | update-browserslist-db@1.1.0: 1792 | resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} 1793 | hasBin: true 1794 | peerDependencies: 1795 | browserslist: '>= 4.21.0' 1796 | 1797 | use-sync-external-store@1.2.2: 1798 | resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} 1799 | peerDependencies: 1800 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1801 | 1802 | util-deprecate@1.0.2: 1803 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1804 | 1805 | v8-compile-cache-lib@3.0.1: 1806 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 1807 | 1808 | vary@1.1.2: 1809 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 1810 | engines: {node: '>= 0.8'} 1811 | 1812 | vike-react@0.5.2: 1813 | resolution: {integrity: sha512-4RYVErGtm2wM9VhGL5HWQRG20DuXnCHH8rLrsx8MbdQ++Od06gCk/3RN5IcB3xASnvzejgmryS9FlzuaTrsAqg==} 1814 | peerDependencies: 1815 | react: '>=18.0.0' 1816 | react-dom: '>=18.0.0' 1817 | vike: '>=0.4.182' 1818 | 1819 | vike@0.4.184: 1820 | resolution: {integrity: sha512-dgoM3R4onTYm4+vTRl73+W1L1R6ryE8F9AxCCpmWdNh2KMzqMNwuMYH/9vX6AOte48l+TIGAWbcdAkZBAuU41w==} 1821 | engines: {node: '>=18.0.0'} 1822 | hasBin: true 1823 | peerDependencies: 1824 | react-streaming: '>=0.3.42' 1825 | vite: '>=5.1.0' 1826 | peerDependenciesMeta: 1827 | react-streaming: 1828 | optional: true 1829 | 1830 | vite-plugin-svgr@4.2.0: 1831 | resolution: {integrity: sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA==} 1832 | peerDependencies: 1833 | vite: ^2.6.0 || 3 || 4 || 5 1834 | 1835 | vite@5.4.1: 1836 | resolution: {integrity: sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==} 1837 | engines: {node: ^18.0.0 || >=20.0.0} 1838 | hasBin: true 1839 | peerDependencies: 1840 | '@types/node': ^18.0.0 || >=20.0.0 1841 | less: '*' 1842 | lightningcss: ^1.21.0 1843 | sass: '*' 1844 | sass-embedded: '*' 1845 | stylus: '*' 1846 | sugarss: '*' 1847 | terser: ^5.4.0 1848 | peerDependenciesMeta: 1849 | '@types/node': 1850 | optional: true 1851 | less: 1852 | optional: true 1853 | lightningcss: 1854 | optional: true 1855 | sass: 1856 | optional: true 1857 | sass-embedded: 1858 | optional: true 1859 | stylus: 1860 | optional: true 1861 | sugarss: 1862 | optional: true 1863 | terser: 1864 | optional: true 1865 | 1866 | which@2.0.2: 1867 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1868 | engines: {node: '>= 8'} 1869 | hasBin: true 1870 | 1871 | wrap-ansi@7.0.0: 1872 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1873 | engines: {node: '>=10'} 1874 | 1875 | wrap-ansi@8.1.0: 1876 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1877 | engines: {node: '>=12'} 1878 | 1879 | wrappy@1.0.2: 1880 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1881 | 1882 | xtend@4.0.2: 1883 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 1884 | engines: {node: '>=0.4'} 1885 | 1886 | yallist@3.1.1: 1887 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1888 | 1889 | yn@3.1.1: 1890 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 1891 | engines: {node: '>=6'} 1892 | 1893 | zod@3.23.8: 1894 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 1895 | 1896 | snapshots: 1897 | 1898 | '@ampproject/remapping@2.3.0': 1899 | dependencies: 1900 | '@jridgewell/gen-mapping': 0.3.5 1901 | '@jridgewell/trace-mapping': 0.3.25 1902 | 1903 | '@babel/code-frame@7.24.7': 1904 | dependencies: 1905 | '@babel/highlight': 7.24.7 1906 | picocolors: 1.0.1 1907 | 1908 | '@babel/compat-data@7.25.2': {} 1909 | 1910 | '@babel/core@7.25.2': 1911 | dependencies: 1912 | '@ampproject/remapping': 2.3.0 1913 | '@babel/code-frame': 7.24.7 1914 | '@babel/generator': 7.25.0 1915 | '@babel/helper-compilation-targets': 7.25.2 1916 | '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) 1917 | '@babel/helpers': 7.25.0 1918 | '@babel/parser': 7.25.3 1919 | '@babel/template': 7.25.0 1920 | '@babel/traverse': 7.25.3 1921 | '@babel/types': 7.25.2 1922 | convert-source-map: 2.0.0 1923 | debug: 4.3.6 1924 | gensync: 1.0.0-beta.2 1925 | json5: 2.2.3 1926 | semver: 6.3.1 1927 | transitivePeerDependencies: 1928 | - supports-color 1929 | 1930 | '@babel/generator@7.17.7': 1931 | dependencies: 1932 | '@babel/types': 7.17.0 1933 | jsesc: 2.5.2 1934 | source-map: 0.5.7 1935 | 1936 | '@babel/generator@7.25.0': 1937 | dependencies: 1938 | '@babel/types': 7.25.2 1939 | '@jridgewell/gen-mapping': 0.3.5 1940 | '@jridgewell/trace-mapping': 0.3.25 1941 | jsesc: 2.5.2 1942 | 1943 | '@babel/helper-compilation-targets@7.25.2': 1944 | dependencies: 1945 | '@babel/compat-data': 7.25.2 1946 | '@babel/helper-validator-option': 7.24.8 1947 | browserslist: 4.23.3 1948 | lru-cache: 5.1.1 1949 | semver: 6.3.1 1950 | 1951 | '@babel/helper-environment-visitor@7.24.7': 1952 | dependencies: 1953 | '@babel/types': 7.25.2 1954 | 1955 | '@babel/helper-function-name@7.24.7': 1956 | dependencies: 1957 | '@babel/template': 7.25.0 1958 | '@babel/types': 7.25.2 1959 | 1960 | '@babel/helper-hoist-variables@7.24.7': 1961 | dependencies: 1962 | '@babel/types': 7.25.2 1963 | 1964 | '@babel/helper-module-imports@7.24.7': 1965 | dependencies: 1966 | '@babel/traverse': 7.25.3 1967 | '@babel/types': 7.25.2 1968 | transitivePeerDependencies: 1969 | - supports-color 1970 | 1971 | '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': 1972 | dependencies: 1973 | '@babel/core': 7.25.2 1974 | '@babel/helper-module-imports': 7.24.7 1975 | '@babel/helper-simple-access': 7.24.7 1976 | '@babel/helper-validator-identifier': 7.24.7 1977 | '@babel/traverse': 7.25.3 1978 | transitivePeerDependencies: 1979 | - supports-color 1980 | 1981 | '@babel/helper-plugin-utils@7.24.8': {} 1982 | 1983 | '@babel/helper-simple-access@7.24.7': 1984 | dependencies: 1985 | '@babel/traverse': 7.25.3 1986 | '@babel/types': 7.25.2 1987 | transitivePeerDependencies: 1988 | - supports-color 1989 | 1990 | '@babel/helper-split-export-declaration@7.24.7': 1991 | dependencies: 1992 | '@babel/types': 7.25.2 1993 | 1994 | '@babel/helper-string-parser@7.24.8': {} 1995 | 1996 | '@babel/helper-validator-identifier@7.24.7': {} 1997 | 1998 | '@babel/helper-validator-option@7.24.8': {} 1999 | 2000 | '@babel/helpers@7.25.0': 2001 | dependencies: 2002 | '@babel/template': 7.25.0 2003 | '@babel/types': 7.25.2 2004 | 2005 | '@babel/highlight@7.24.7': 2006 | dependencies: 2007 | '@babel/helper-validator-identifier': 7.24.7 2008 | chalk: 2.4.2 2009 | js-tokens: 4.0.0 2010 | picocolors: 1.0.1 2011 | 2012 | '@babel/parser@7.25.3': 2013 | dependencies: 2014 | '@babel/types': 7.25.2 2015 | 2016 | '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': 2017 | dependencies: 2018 | '@babel/core': 7.25.2 2019 | '@babel/helper-plugin-utils': 7.24.8 2020 | 2021 | '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)': 2022 | dependencies: 2023 | '@babel/core': 7.25.2 2024 | '@babel/helper-plugin-utils': 7.24.8 2025 | 2026 | '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)': 2027 | dependencies: 2028 | '@babel/core': 7.25.2 2029 | '@babel/helper-plugin-utils': 7.24.8 2030 | 2031 | '@babel/template@7.25.0': 2032 | dependencies: 2033 | '@babel/code-frame': 7.24.7 2034 | '@babel/parser': 7.25.3 2035 | '@babel/types': 7.25.2 2036 | 2037 | '@babel/traverse@7.23.2': 2038 | dependencies: 2039 | '@babel/code-frame': 7.24.7 2040 | '@babel/generator': 7.25.0 2041 | '@babel/helper-environment-visitor': 7.24.7 2042 | '@babel/helper-function-name': 7.24.7 2043 | '@babel/helper-hoist-variables': 7.24.7 2044 | '@babel/helper-split-export-declaration': 7.24.7 2045 | '@babel/parser': 7.25.3 2046 | '@babel/types': 7.25.2 2047 | debug: 4.3.6 2048 | globals: 11.12.0 2049 | transitivePeerDependencies: 2050 | - supports-color 2051 | 2052 | '@babel/traverse@7.25.3': 2053 | dependencies: 2054 | '@babel/code-frame': 7.24.7 2055 | '@babel/generator': 7.25.0 2056 | '@babel/parser': 7.25.3 2057 | '@babel/template': 7.25.0 2058 | '@babel/types': 7.25.2 2059 | debug: 4.3.6 2060 | globals: 11.12.0 2061 | transitivePeerDependencies: 2062 | - supports-color 2063 | 2064 | '@babel/types@7.17.0': 2065 | dependencies: 2066 | '@babel/helper-validator-identifier': 7.24.7 2067 | to-fast-properties: 2.0.0 2068 | 2069 | '@babel/types@7.25.2': 2070 | dependencies: 2071 | '@babel/helper-string-parser': 7.24.8 2072 | '@babel/helper-validator-identifier': 7.24.7 2073 | to-fast-properties: 2.0.0 2074 | 2075 | '@brillout/import@0.2.3': {} 2076 | 2077 | '@brillout/json-serializer@0.5.13': {} 2078 | 2079 | '@brillout/picocolors@1.0.14': {} 2080 | 2081 | '@brillout/require-shim@0.1.2': {} 2082 | 2083 | '@brillout/vite-plugin-server-entry@0.4.7': 2084 | dependencies: 2085 | '@brillout/import': 0.2.3 2086 | 2087 | '@cspotcode/source-map-support@0.8.1': 2088 | dependencies: 2089 | '@jridgewell/trace-mapping': 0.3.9 2090 | 2091 | '@effector/reflect@9.2.0(effector-react@23.2.1(effector@23.2.2)(react@18.3.1))(effector@23.2.2)(react@18.3.1)': 2092 | dependencies: 2093 | effector: 23.2.2 2094 | effector-react: 23.2.1(effector@23.2.2)(react@18.3.1) 2095 | react: 18.3.1 2096 | 2097 | '@esbuild/aix-ppc64@0.19.12': 2098 | optional: true 2099 | 2100 | '@esbuild/aix-ppc64@0.21.5': 2101 | optional: true 2102 | 2103 | '@esbuild/android-arm64@0.19.12': 2104 | optional: true 2105 | 2106 | '@esbuild/android-arm64@0.21.5': 2107 | optional: true 2108 | 2109 | '@esbuild/android-arm@0.19.12': 2110 | optional: true 2111 | 2112 | '@esbuild/android-arm@0.21.5': 2113 | optional: true 2114 | 2115 | '@esbuild/android-x64@0.19.12': 2116 | optional: true 2117 | 2118 | '@esbuild/android-x64@0.21.5': 2119 | optional: true 2120 | 2121 | '@esbuild/darwin-arm64@0.19.12': 2122 | optional: true 2123 | 2124 | '@esbuild/darwin-arm64@0.21.5': 2125 | optional: true 2126 | 2127 | '@esbuild/darwin-x64@0.19.12': 2128 | optional: true 2129 | 2130 | '@esbuild/darwin-x64@0.21.5': 2131 | optional: true 2132 | 2133 | '@esbuild/freebsd-arm64@0.19.12': 2134 | optional: true 2135 | 2136 | '@esbuild/freebsd-arm64@0.21.5': 2137 | optional: true 2138 | 2139 | '@esbuild/freebsd-x64@0.19.12': 2140 | optional: true 2141 | 2142 | '@esbuild/freebsd-x64@0.21.5': 2143 | optional: true 2144 | 2145 | '@esbuild/linux-arm64@0.19.12': 2146 | optional: true 2147 | 2148 | '@esbuild/linux-arm64@0.21.5': 2149 | optional: true 2150 | 2151 | '@esbuild/linux-arm@0.19.12': 2152 | optional: true 2153 | 2154 | '@esbuild/linux-arm@0.21.5': 2155 | optional: true 2156 | 2157 | '@esbuild/linux-ia32@0.19.12': 2158 | optional: true 2159 | 2160 | '@esbuild/linux-ia32@0.21.5': 2161 | optional: true 2162 | 2163 | '@esbuild/linux-loong64@0.19.12': 2164 | optional: true 2165 | 2166 | '@esbuild/linux-loong64@0.21.5': 2167 | optional: true 2168 | 2169 | '@esbuild/linux-mips64el@0.19.12': 2170 | optional: true 2171 | 2172 | '@esbuild/linux-mips64el@0.21.5': 2173 | optional: true 2174 | 2175 | '@esbuild/linux-ppc64@0.19.12': 2176 | optional: true 2177 | 2178 | '@esbuild/linux-ppc64@0.21.5': 2179 | optional: true 2180 | 2181 | '@esbuild/linux-riscv64@0.19.12': 2182 | optional: true 2183 | 2184 | '@esbuild/linux-riscv64@0.21.5': 2185 | optional: true 2186 | 2187 | '@esbuild/linux-s390x@0.19.12': 2188 | optional: true 2189 | 2190 | '@esbuild/linux-s390x@0.21.5': 2191 | optional: true 2192 | 2193 | '@esbuild/linux-x64@0.19.12': 2194 | optional: true 2195 | 2196 | '@esbuild/linux-x64@0.21.5': 2197 | optional: true 2198 | 2199 | '@esbuild/netbsd-x64@0.19.12': 2200 | optional: true 2201 | 2202 | '@esbuild/netbsd-x64@0.21.5': 2203 | optional: true 2204 | 2205 | '@esbuild/openbsd-x64@0.19.12': 2206 | optional: true 2207 | 2208 | '@esbuild/openbsd-x64@0.21.5': 2209 | optional: true 2210 | 2211 | '@esbuild/sunos-x64@0.19.12': 2212 | optional: true 2213 | 2214 | '@esbuild/sunos-x64@0.21.5': 2215 | optional: true 2216 | 2217 | '@esbuild/win32-arm64@0.19.12': 2218 | optional: true 2219 | 2220 | '@esbuild/win32-arm64@0.21.5': 2221 | optional: true 2222 | 2223 | '@esbuild/win32-ia32@0.19.12': 2224 | optional: true 2225 | 2226 | '@esbuild/win32-ia32@0.21.5': 2227 | optional: true 2228 | 2229 | '@esbuild/win32-x64@0.19.12': 2230 | optional: true 2231 | 2232 | '@esbuild/win32-x64@0.21.5': 2233 | optional: true 2234 | 2235 | '@fastify/accept-negotiator@1.1.0': {} 2236 | 2237 | '@fastify/accepts@4.3.0': 2238 | dependencies: 2239 | accepts: 1.3.8 2240 | fastify-plugin: 4.5.1 2241 | 2242 | '@fastify/ajv-compiler@3.6.0': 2243 | dependencies: 2244 | ajv: 8.17.1 2245 | ajv-formats: 2.1.1(ajv@8.17.1) 2246 | fast-uri: 2.4.0 2247 | 2248 | '@fastify/compress@7.0.3': 2249 | dependencies: 2250 | '@fastify/accept-negotiator': 1.1.0 2251 | fastify-plugin: 4.5.1 2252 | mime-db: 1.53.0 2253 | minipass: 7.1.2 2254 | peek-stream: 1.1.3 2255 | pump: 3.0.0 2256 | pumpify: 2.0.1 2257 | readable-stream: 4.5.2 2258 | 2259 | '@fastify/cookie@9.3.1': 2260 | dependencies: 2261 | cookie-signature: 1.2.1 2262 | fastify-plugin: 4.5.1 2263 | 2264 | '@fastify/cors@9.0.1': 2265 | dependencies: 2266 | fastify-plugin: 4.5.1 2267 | mnemonist: 0.39.6 2268 | 2269 | '@fastify/early-hints@1.0.1': 2270 | dependencies: 2271 | fastify-plugin: 4.5.1 2272 | process-warning: 2.3.2 2273 | 2274 | '@fastify/error@3.4.1': {} 2275 | 2276 | '@fastify/fast-json-stringify-compiler@4.3.0': 2277 | dependencies: 2278 | fast-json-stringify: 5.16.1 2279 | 2280 | '@fastify/helmet@11.1.1': 2281 | dependencies: 2282 | fastify-plugin: 4.5.1 2283 | helmet: 7.1.0 2284 | 2285 | '@fastify/merge-json-schemas@0.1.1': 2286 | dependencies: 2287 | fast-deep-equal: 3.1.3 2288 | 2289 | '@fastify/rate-limit@9.1.0': 2290 | dependencies: 2291 | '@lukeed/ms': 2.0.2 2292 | fastify-plugin: 4.5.1 2293 | toad-cache: 3.7.0 2294 | 2295 | '@fastify/send@2.1.0': 2296 | dependencies: 2297 | '@lukeed/ms': 2.0.2 2298 | escape-html: 1.0.3 2299 | fast-decode-uri-component: 1.0.1 2300 | http-errors: 2.0.0 2301 | mime: 3.0.0 2302 | 2303 | '@fastify/static@7.0.4': 2304 | dependencies: 2305 | '@fastify/accept-negotiator': 1.1.0 2306 | '@fastify/send': 2.1.0 2307 | content-disposition: 0.5.4 2308 | fastify-plugin: 4.5.1 2309 | fastq: 1.17.1 2310 | glob: 10.4.5 2311 | 2312 | '@isaacs/cliui@8.0.2': 2313 | dependencies: 2314 | string-width: 5.1.2 2315 | string-width-cjs: string-width@4.2.3 2316 | strip-ansi: 7.1.0 2317 | strip-ansi-cjs: strip-ansi@6.0.1 2318 | wrap-ansi: 8.1.0 2319 | wrap-ansi-cjs: wrap-ansi@7.0.0 2320 | 2321 | '@jridgewell/gen-mapping@0.3.5': 2322 | dependencies: 2323 | '@jridgewell/set-array': 1.2.1 2324 | '@jridgewell/sourcemap-codec': 1.5.0 2325 | '@jridgewell/trace-mapping': 0.3.25 2326 | 2327 | '@jridgewell/resolve-uri@3.1.2': {} 2328 | 2329 | '@jridgewell/set-array@1.2.1': {} 2330 | 2331 | '@jridgewell/sourcemap-codec@1.5.0': {} 2332 | 2333 | '@jridgewell/trace-mapping@0.3.25': 2334 | dependencies: 2335 | '@jridgewell/resolve-uri': 3.1.2 2336 | '@jridgewell/sourcemap-codec': 1.5.0 2337 | 2338 | '@jridgewell/trace-mapping@0.3.9': 2339 | dependencies: 2340 | '@jridgewell/resolve-uri': 3.1.2 2341 | '@jridgewell/sourcemap-codec': 1.5.0 2342 | 2343 | '@lukeed/ms@2.0.2': {} 2344 | 2345 | '@nodelib/fs.scandir@2.1.5': 2346 | dependencies: 2347 | '@nodelib/fs.stat': 2.0.5 2348 | run-parallel: 1.2.0 2349 | 2350 | '@nodelib/fs.stat@2.0.5': {} 2351 | 2352 | '@nodelib/fs.walk@1.2.8': 2353 | dependencies: 2354 | '@nodelib/fs.scandir': 2.1.5 2355 | fastq: 1.17.1 2356 | 2357 | '@pkgjs/parseargs@0.11.0': 2358 | optional: true 2359 | 2360 | '@polka/url@1.0.0-next.25': {} 2361 | 2362 | '@rollup/pluginutils@5.1.0(rollup@4.20.0)': 2363 | dependencies: 2364 | '@types/estree': 1.0.5 2365 | estree-walker: 2.0.2 2366 | picomatch: 2.3.1 2367 | optionalDependencies: 2368 | rollup: 4.20.0 2369 | 2370 | '@rollup/rollup-android-arm-eabi@4.20.0': 2371 | optional: true 2372 | 2373 | '@rollup/rollup-android-arm64@4.20.0': 2374 | optional: true 2375 | 2376 | '@rollup/rollup-darwin-arm64@4.20.0': 2377 | optional: true 2378 | 2379 | '@rollup/rollup-darwin-x64@4.20.0': 2380 | optional: true 2381 | 2382 | '@rollup/rollup-linux-arm-gnueabihf@4.20.0': 2383 | optional: true 2384 | 2385 | '@rollup/rollup-linux-arm-musleabihf@4.20.0': 2386 | optional: true 2387 | 2388 | '@rollup/rollup-linux-arm64-gnu@4.20.0': 2389 | optional: true 2390 | 2391 | '@rollup/rollup-linux-arm64-musl@4.20.0': 2392 | optional: true 2393 | 2394 | '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': 2395 | optional: true 2396 | 2397 | '@rollup/rollup-linux-riscv64-gnu@4.20.0': 2398 | optional: true 2399 | 2400 | '@rollup/rollup-linux-s390x-gnu@4.20.0': 2401 | optional: true 2402 | 2403 | '@rollup/rollup-linux-x64-gnu@4.20.0': 2404 | optional: true 2405 | 2406 | '@rollup/rollup-linux-x64-musl@4.20.0': 2407 | optional: true 2408 | 2409 | '@rollup/rollup-win32-arm64-msvc@4.20.0': 2410 | optional: true 2411 | 2412 | '@rollup/rollup-win32-ia32-msvc@4.20.0': 2413 | optional: true 2414 | 2415 | '@rollup/rollup-win32-x64-msvc@4.20.0': 2416 | optional: true 2417 | 2418 | '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.25.2)': 2419 | dependencies: 2420 | '@babel/core': 7.25.2 2421 | 2422 | '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.25.2)': 2423 | dependencies: 2424 | '@babel/core': 7.25.2 2425 | 2426 | '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.25.2)': 2427 | dependencies: 2428 | '@babel/core': 7.25.2 2429 | 2430 | '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.25.2)': 2431 | dependencies: 2432 | '@babel/core': 7.25.2 2433 | 2434 | '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.25.2)': 2435 | dependencies: 2436 | '@babel/core': 7.25.2 2437 | 2438 | '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.25.2)': 2439 | dependencies: 2440 | '@babel/core': 7.25.2 2441 | 2442 | '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.25.2)': 2443 | dependencies: 2444 | '@babel/core': 7.25.2 2445 | 2446 | '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.25.2)': 2447 | dependencies: 2448 | '@babel/core': 7.25.2 2449 | 2450 | '@svgr/babel-preset@8.1.0(@babel/core@7.25.2)': 2451 | dependencies: 2452 | '@babel/core': 7.25.2 2453 | '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.25.2) 2454 | '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.25.2) 2455 | '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.25.2) 2456 | '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.25.2) 2457 | '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.25.2) 2458 | '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.25.2) 2459 | '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.25.2) 2460 | '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.25.2) 2461 | 2462 | '@svgr/core@8.1.0(typescript@5.5.4)': 2463 | dependencies: 2464 | '@babel/core': 7.25.2 2465 | '@svgr/babel-preset': 8.1.0(@babel/core@7.25.2) 2466 | camelcase: 6.3.0 2467 | cosmiconfig: 8.3.6(typescript@5.5.4) 2468 | snake-case: 3.0.4 2469 | transitivePeerDependencies: 2470 | - supports-color 2471 | - typescript 2472 | 2473 | '@svgr/hast-util-to-babel-ast@8.0.0': 2474 | dependencies: 2475 | '@babel/types': 7.25.2 2476 | entities: 4.5.0 2477 | 2478 | '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.5.4))': 2479 | dependencies: 2480 | '@babel/core': 7.25.2 2481 | '@svgr/babel-preset': 8.1.0(@babel/core@7.25.2) 2482 | '@svgr/core': 8.1.0(typescript@5.5.4) 2483 | '@svgr/hast-util-to-babel-ast': 8.0.0 2484 | svg-parser: 2.0.4 2485 | transitivePeerDependencies: 2486 | - supports-color 2487 | 2488 | '@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.3.3)': 2489 | dependencies: 2490 | '@babel/generator': 7.17.7 2491 | '@babel/parser': 7.25.3 2492 | '@babel/traverse': 7.23.2 2493 | '@babel/types': 7.17.0 2494 | javascript-natural-sort: 0.7.1 2495 | lodash: 4.17.21 2496 | prettier: 3.3.3 2497 | transitivePeerDependencies: 2498 | - supports-color 2499 | 2500 | '@tsconfig/node10@1.0.11': {} 2501 | 2502 | '@tsconfig/node12@1.0.11': {} 2503 | 2504 | '@tsconfig/node14@1.0.3': {} 2505 | 2506 | '@tsconfig/node16@1.0.4': {} 2507 | 2508 | '@types/babel__core@7.20.5': 2509 | dependencies: 2510 | '@babel/parser': 7.25.3 2511 | '@babel/types': 7.25.2 2512 | '@types/babel__generator': 7.6.8 2513 | '@types/babel__template': 7.4.4 2514 | '@types/babel__traverse': 7.20.6 2515 | 2516 | '@types/babel__generator@7.6.8': 2517 | dependencies: 2518 | '@babel/types': 7.25.2 2519 | 2520 | '@types/babel__template@7.4.4': 2521 | dependencies: 2522 | '@babel/parser': 7.25.3 2523 | '@babel/types': 7.25.2 2524 | 2525 | '@types/babel__traverse@7.20.6': 2526 | dependencies: 2527 | '@babel/types': 7.25.2 2528 | 2529 | '@types/body-parser@1.19.5': 2530 | dependencies: 2531 | '@types/connect': 3.4.38 2532 | '@types/node': 22.3.0 2533 | 2534 | '@types/compression@1.7.5': 2535 | dependencies: 2536 | '@types/express': 4.17.21 2537 | 2538 | '@types/connect@3.4.38': 2539 | dependencies: 2540 | '@types/node': 22.3.0 2541 | 2542 | '@types/estree@1.0.5': {} 2543 | 2544 | '@types/express-serve-static-core@4.19.5': 2545 | dependencies: 2546 | '@types/node': 22.3.0 2547 | '@types/qs': 6.9.15 2548 | '@types/range-parser': 1.2.7 2549 | '@types/send': 0.17.4 2550 | 2551 | '@types/express@4.17.21': 2552 | dependencies: 2553 | '@types/body-parser': 1.19.5 2554 | '@types/express-serve-static-core': 4.19.5 2555 | '@types/qs': 6.9.15 2556 | '@types/serve-static': 1.15.7 2557 | 2558 | '@types/http-errors@2.0.4': {} 2559 | 2560 | '@types/mime@1.3.5': {} 2561 | 2562 | '@types/node@22.3.0': 2563 | dependencies: 2564 | undici-types: 6.18.2 2565 | 2566 | '@types/prop-types@15.7.12': {} 2567 | 2568 | '@types/qs@6.9.15': {} 2569 | 2570 | '@types/range-parser@1.2.7': {} 2571 | 2572 | '@types/react-dom@18.3.0': 2573 | dependencies: 2574 | '@types/react': 18.3.3 2575 | 2576 | '@types/react@18.3.3': 2577 | dependencies: 2578 | '@types/prop-types': 15.7.12 2579 | csstype: 3.1.3 2580 | 2581 | '@types/send@0.17.4': 2582 | dependencies: 2583 | '@types/mime': 1.3.5 2584 | '@types/node': 22.3.0 2585 | 2586 | '@types/serve-static@1.15.7': 2587 | dependencies: 2588 | '@types/http-errors': 2.0.4 2589 | '@types/node': 22.3.0 2590 | '@types/send': 0.17.4 2591 | 2592 | '@vitejs/plugin-react@4.3.1(vite@5.4.1(@types/node@22.3.0))': 2593 | dependencies: 2594 | '@babel/core': 7.25.2 2595 | '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) 2596 | '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) 2597 | '@types/babel__core': 7.20.5 2598 | react-refresh: 0.14.2 2599 | vite: 5.4.1(@types/node@22.3.0) 2600 | transitivePeerDependencies: 2601 | - supports-color 2602 | 2603 | abort-controller@3.0.0: 2604 | dependencies: 2605 | event-target-shim: 5.0.1 2606 | 2607 | abstract-logging@2.0.1: {} 2608 | 2609 | accepts@1.3.8: 2610 | dependencies: 2611 | mime-types: 2.1.35 2612 | negotiator: 0.6.3 2613 | 2614 | acorn-walk@8.3.3: 2615 | dependencies: 2616 | acorn: 8.12.1 2617 | 2618 | acorn@8.12.1: {} 2619 | 2620 | ajv-formats@2.1.1(ajv@8.17.1): 2621 | optionalDependencies: 2622 | ajv: 8.17.1 2623 | 2624 | ajv-formats@3.0.1(ajv@8.17.1): 2625 | optionalDependencies: 2626 | ajv: 8.17.1 2627 | 2628 | ajv@8.17.1: 2629 | dependencies: 2630 | fast-deep-equal: 3.1.3 2631 | fast-uri: 3.0.1 2632 | json-schema-traverse: 1.0.0 2633 | require-from-string: 2.0.2 2634 | 2635 | ansi-regex@5.0.1: {} 2636 | 2637 | ansi-regex@6.0.1: {} 2638 | 2639 | ansi-styles@3.2.1: 2640 | dependencies: 2641 | color-convert: 1.9.3 2642 | 2643 | ansi-styles@4.3.0: 2644 | dependencies: 2645 | color-convert: 2.0.1 2646 | 2647 | ansi-styles@6.2.1: {} 2648 | 2649 | arg@4.1.3: {} 2650 | 2651 | argparse@2.0.1: {} 2652 | 2653 | atomic-sleep@1.0.0: {} 2654 | 2655 | avvio@8.4.0: 2656 | dependencies: 2657 | '@fastify/error': 3.4.1 2658 | fastq: 1.17.1 2659 | 2660 | balanced-match@1.0.2: {} 2661 | 2662 | base64-js@1.5.1: {} 2663 | 2664 | brace-expansion@2.0.1: 2665 | dependencies: 2666 | balanced-match: 1.0.2 2667 | 2668 | braces@3.0.3: 2669 | dependencies: 2670 | fill-range: 7.1.1 2671 | 2672 | browserslist@4.23.3: 2673 | dependencies: 2674 | caniuse-lite: 1.0.30001651 2675 | electron-to-chromium: 1.5.8 2676 | node-releases: 2.0.18 2677 | update-browserslist-db: 1.1.0(browserslist@4.23.3) 2678 | 2679 | buffer-from@1.1.2: {} 2680 | 2681 | buffer@6.0.3: 2682 | dependencies: 2683 | base64-js: 1.5.1 2684 | ieee754: 1.2.1 2685 | 2686 | bytes@3.0.0: {} 2687 | 2688 | cac@6.7.14: {} 2689 | 2690 | callsites@3.1.0: {} 2691 | 2692 | camelcase@6.3.0: {} 2693 | 2694 | caniuse-lite@1.0.30001651: {} 2695 | 2696 | chalk@2.4.2: 2697 | dependencies: 2698 | ansi-styles: 3.2.1 2699 | escape-string-regexp: 1.0.5 2700 | supports-color: 5.5.0 2701 | 2702 | color-convert@1.9.3: 2703 | dependencies: 2704 | color-name: 1.1.3 2705 | 2706 | color-convert@2.0.1: 2707 | dependencies: 2708 | color-name: 1.1.4 2709 | 2710 | color-name@1.1.3: {} 2711 | 2712 | color-name@1.1.4: {} 2713 | 2714 | colorette@2.0.20: {} 2715 | 2716 | compressible@2.0.18: 2717 | dependencies: 2718 | mime-db: 1.53.0 2719 | 2720 | compression@1.7.4: 2721 | dependencies: 2722 | accepts: 1.3.8 2723 | bytes: 3.0.0 2724 | compressible: 2.0.18 2725 | debug: 2.6.9 2726 | on-headers: 1.0.2 2727 | safe-buffer: 5.1.2 2728 | vary: 1.1.2 2729 | transitivePeerDependencies: 2730 | - supports-color 2731 | 2732 | content-disposition@0.5.4: 2733 | dependencies: 2734 | safe-buffer: 5.2.1 2735 | 2736 | convert-source-map@2.0.0: {} 2737 | 2738 | cookie-signature@1.2.1: {} 2739 | 2740 | cookie@0.6.0: {} 2741 | 2742 | core-util-is@1.0.3: {} 2743 | 2744 | cosmiconfig@8.3.6(typescript@5.5.4): 2745 | dependencies: 2746 | import-fresh: 3.3.0 2747 | js-yaml: 4.1.0 2748 | parse-json: 5.2.0 2749 | path-type: 4.0.0 2750 | optionalDependencies: 2751 | typescript: 5.5.4 2752 | 2753 | create-require@1.1.1: {} 2754 | 2755 | cross-env@7.0.3: 2756 | dependencies: 2757 | cross-spawn: 7.0.3 2758 | 2759 | cross-spawn@7.0.3: 2760 | dependencies: 2761 | path-key: 3.1.1 2762 | shebang-command: 2.0.0 2763 | which: 2.0.2 2764 | 2765 | csstype@3.1.3: {} 2766 | 2767 | dateformat@4.6.3: {} 2768 | 2769 | debug@2.6.9: 2770 | dependencies: 2771 | ms: 2.0.0 2772 | 2773 | debug@4.3.6: 2774 | dependencies: 2775 | ms: 2.1.2 2776 | 2777 | depd@2.0.0: {} 2778 | 2779 | diff@4.0.2: {} 2780 | 2781 | dot-case@3.0.4: 2782 | dependencies: 2783 | no-case: 3.0.4 2784 | tslib: 2.6.3 2785 | 2786 | dotenv@16.4.5: {} 2787 | 2788 | duplexify@3.7.1: 2789 | dependencies: 2790 | end-of-stream: 1.4.4 2791 | inherits: 2.0.4 2792 | readable-stream: 2.3.8 2793 | stream-shift: 1.0.3 2794 | 2795 | duplexify@4.1.3: 2796 | dependencies: 2797 | end-of-stream: 1.4.4 2798 | inherits: 2.0.4 2799 | readable-stream: 3.6.2 2800 | stream-shift: 1.0.3 2801 | 2802 | eastasianwidth@0.2.0: {} 2803 | 2804 | effector-factorio@1.3.0(effector@23.2.2)(react@18.3.1): 2805 | dependencies: 2806 | effector: 23.2.2 2807 | react: 18.3.1 2808 | 2809 | effector-react@23.2.1(effector@23.2.2)(react@18.3.1): 2810 | dependencies: 2811 | effector: 23.2.2 2812 | react: 18.3.1 2813 | use-sync-external-store: 1.2.2(react@18.3.1) 2814 | 2815 | effector@23.2.2: {} 2816 | 2817 | electron-to-chromium@1.5.8: {} 2818 | 2819 | emoji-regex@8.0.0: {} 2820 | 2821 | emoji-regex@9.2.2: {} 2822 | 2823 | end-of-stream@1.4.4: 2824 | dependencies: 2825 | once: 1.4.0 2826 | 2827 | entities@4.5.0: {} 2828 | 2829 | error-ex@1.3.2: 2830 | dependencies: 2831 | is-arrayish: 0.2.1 2832 | 2833 | es-module-lexer@1.5.4: {} 2834 | 2835 | esbuild@0.19.12: 2836 | optionalDependencies: 2837 | '@esbuild/aix-ppc64': 0.19.12 2838 | '@esbuild/android-arm': 0.19.12 2839 | '@esbuild/android-arm64': 0.19.12 2840 | '@esbuild/android-x64': 0.19.12 2841 | '@esbuild/darwin-arm64': 0.19.12 2842 | '@esbuild/darwin-x64': 0.19.12 2843 | '@esbuild/freebsd-arm64': 0.19.12 2844 | '@esbuild/freebsd-x64': 0.19.12 2845 | '@esbuild/linux-arm': 0.19.12 2846 | '@esbuild/linux-arm64': 0.19.12 2847 | '@esbuild/linux-ia32': 0.19.12 2848 | '@esbuild/linux-loong64': 0.19.12 2849 | '@esbuild/linux-mips64el': 0.19.12 2850 | '@esbuild/linux-ppc64': 0.19.12 2851 | '@esbuild/linux-riscv64': 0.19.12 2852 | '@esbuild/linux-s390x': 0.19.12 2853 | '@esbuild/linux-x64': 0.19.12 2854 | '@esbuild/netbsd-x64': 0.19.12 2855 | '@esbuild/openbsd-x64': 0.19.12 2856 | '@esbuild/sunos-x64': 0.19.12 2857 | '@esbuild/win32-arm64': 0.19.12 2858 | '@esbuild/win32-ia32': 0.19.12 2859 | '@esbuild/win32-x64': 0.19.12 2860 | 2861 | esbuild@0.21.5: 2862 | optionalDependencies: 2863 | '@esbuild/aix-ppc64': 0.21.5 2864 | '@esbuild/android-arm': 0.21.5 2865 | '@esbuild/android-arm64': 0.21.5 2866 | '@esbuild/android-x64': 0.21.5 2867 | '@esbuild/darwin-arm64': 0.21.5 2868 | '@esbuild/darwin-x64': 0.21.5 2869 | '@esbuild/freebsd-arm64': 0.21.5 2870 | '@esbuild/freebsd-x64': 0.21.5 2871 | '@esbuild/linux-arm': 0.21.5 2872 | '@esbuild/linux-arm64': 0.21.5 2873 | '@esbuild/linux-ia32': 0.21.5 2874 | '@esbuild/linux-loong64': 0.21.5 2875 | '@esbuild/linux-mips64el': 0.21.5 2876 | '@esbuild/linux-ppc64': 0.21.5 2877 | '@esbuild/linux-riscv64': 0.21.5 2878 | '@esbuild/linux-s390x': 0.21.5 2879 | '@esbuild/linux-x64': 0.21.5 2880 | '@esbuild/netbsd-x64': 0.21.5 2881 | '@esbuild/openbsd-x64': 0.21.5 2882 | '@esbuild/sunos-x64': 0.21.5 2883 | '@esbuild/win32-arm64': 0.21.5 2884 | '@esbuild/win32-ia32': 0.21.5 2885 | '@esbuild/win32-x64': 0.21.5 2886 | 2887 | escalade@3.1.2: {} 2888 | 2889 | escape-html@1.0.3: {} 2890 | 2891 | escape-string-regexp@1.0.5: {} 2892 | 2893 | estree-walker@2.0.2: {} 2894 | 2895 | event-target-shim@5.0.1: {} 2896 | 2897 | events@3.3.0: {} 2898 | 2899 | fast-content-type-parse@1.1.0: {} 2900 | 2901 | fast-copy@3.0.2: {} 2902 | 2903 | fast-decode-uri-component@1.0.1: {} 2904 | 2905 | fast-deep-equal@3.1.3: {} 2906 | 2907 | fast-glob@3.3.2: 2908 | dependencies: 2909 | '@nodelib/fs.stat': 2.0.5 2910 | '@nodelib/fs.walk': 1.2.8 2911 | glob-parent: 5.1.2 2912 | merge2: 1.4.1 2913 | micromatch: 4.0.7 2914 | 2915 | fast-json-stringify@5.16.1: 2916 | dependencies: 2917 | '@fastify/merge-json-schemas': 0.1.1 2918 | ajv: 8.17.1 2919 | ajv-formats: 3.0.1(ajv@8.17.1) 2920 | fast-deep-equal: 3.1.3 2921 | fast-uri: 2.4.0 2922 | json-schema-ref-resolver: 1.0.1 2923 | rfdc: 1.4.1 2924 | 2925 | fast-querystring@1.1.2: 2926 | dependencies: 2927 | fast-decode-uri-component: 1.0.1 2928 | 2929 | fast-redact@3.5.0: {} 2930 | 2931 | fast-safe-stringify@2.1.1: {} 2932 | 2933 | fast-uri@2.4.0: {} 2934 | 2935 | fast-uri@3.0.1: {} 2936 | 2937 | fastify-plugin@4.5.1: {} 2938 | 2939 | fastify@4.28.1: 2940 | dependencies: 2941 | '@fastify/ajv-compiler': 3.6.0 2942 | '@fastify/error': 3.4.1 2943 | '@fastify/fast-json-stringify-compiler': 4.3.0 2944 | abstract-logging: 2.0.1 2945 | avvio: 8.4.0 2946 | fast-content-type-parse: 1.1.0 2947 | fast-json-stringify: 5.16.1 2948 | find-my-way: 8.2.0 2949 | light-my-request: 5.13.0 2950 | pino: 9.3.2 2951 | process-warning: 3.0.0 2952 | proxy-addr: 2.0.7 2953 | rfdc: 1.4.1 2954 | secure-json-parse: 2.7.0 2955 | semver: 7.6.3 2956 | toad-cache: 3.7.0 2957 | 2958 | fastq@1.17.1: 2959 | dependencies: 2960 | reusify: 1.0.4 2961 | 2962 | fill-range@7.1.1: 2963 | dependencies: 2964 | to-regex-range: 5.0.1 2965 | 2966 | find-my-way@8.2.0: 2967 | dependencies: 2968 | fast-deep-equal: 3.1.3 2969 | fast-querystring: 1.1.2 2970 | safe-regex2: 3.1.0 2971 | 2972 | foreground-child@3.3.0: 2973 | dependencies: 2974 | cross-spawn: 7.0.3 2975 | signal-exit: 4.1.0 2976 | 2977 | forwarded@0.2.0: {} 2978 | 2979 | fsevents@2.3.3: 2980 | optional: true 2981 | 2982 | gensync@1.0.0-beta.2: {} 2983 | 2984 | glob-parent@5.1.2: 2985 | dependencies: 2986 | is-glob: 4.0.3 2987 | 2988 | glob@10.4.5: 2989 | dependencies: 2990 | foreground-child: 3.3.0 2991 | jackspeak: 3.4.3 2992 | minimatch: 9.0.5 2993 | minipass: 7.1.2 2994 | package-json-from-dist: 1.0.0 2995 | path-scurry: 1.11.1 2996 | 2997 | globals@11.12.0: {} 2998 | 2999 | has-flag@3.0.0: {} 3000 | 3001 | helmet@7.1.0: {} 3002 | 3003 | help-me@5.0.0: {} 3004 | 3005 | http-errors@2.0.0: 3006 | dependencies: 3007 | depd: 2.0.0 3008 | inherits: 2.0.4 3009 | setprototypeof: 1.2.0 3010 | statuses: 2.0.1 3011 | toidentifier: 1.0.1 3012 | 3013 | ieee754@1.2.1: {} 3014 | 3015 | import-fresh@3.3.0: 3016 | dependencies: 3017 | parent-module: 1.0.1 3018 | resolve-from: 4.0.0 3019 | 3020 | inherits@2.0.4: {} 3021 | 3022 | ipaddr.js@1.9.1: {} 3023 | 3024 | is-arrayish@0.2.1: {} 3025 | 3026 | is-extglob@2.1.1: {} 3027 | 3028 | is-fullwidth-code-point@3.0.0: {} 3029 | 3030 | is-glob@4.0.3: 3031 | dependencies: 3032 | is-extglob: 2.1.1 3033 | 3034 | is-number@7.0.0: {} 3035 | 3036 | isarray@1.0.0: {} 3037 | 3038 | isbot-fast@1.2.0: {} 3039 | 3040 | isexe@2.0.0: {} 3041 | 3042 | jackspeak@3.4.3: 3043 | dependencies: 3044 | '@isaacs/cliui': 8.0.2 3045 | optionalDependencies: 3046 | '@pkgjs/parseargs': 0.11.0 3047 | 3048 | javascript-natural-sort@0.7.1: {} 3049 | 3050 | joycon@3.1.1: {} 3051 | 3052 | js-tokens@4.0.0: {} 3053 | 3054 | js-yaml@4.1.0: 3055 | dependencies: 3056 | argparse: 2.0.1 3057 | 3058 | jsesc@2.5.2: {} 3059 | 3060 | json-parse-even-better-errors@2.3.1: {} 3061 | 3062 | json-schema-ref-resolver@1.0.1: 3063 | dependencies: 3064 | fast-deep-equal: 3.1.3 3065 | 3066 | json-schema-traverse@1.0.0: {} 3067 | 3068 | json5@2.2.3: {} 3069 | 3070 | light-my-request@5.13.0: 3071 | dependencies: 3072 | cookie: 0.6.0 3073 | process-warning: 3.0.0 3074 | set-cookie-parser: 2.7.0 3075 | 3076 | lines-and-columns@1.2.4: {} 3077 | 3078 | lodash@4.17.21: {} 3079 | 3080 | loose-envify@1.4.0: 3081 | dependencies: 3082 | js-tokens: 4.0.0 3083 | 3084 | lower-case@2.0.2: 3085 | dependencies: 3086 | tslib: 2.6.3 3087 | 3088 | lru-cache@10.4.3: {} 3089 | 3090 | lru-cache@5.1.1: 3091 | dependencies: 3092 | yallist: 3.1.1 3093 | 3094 | make-error@1.3.6: {} 3095 | 3096 | merge2@1.4.1: {} 3097 | 3098 | micromatch@4.0.7: 3099 | dependencies: 3100 | braces: 3.0.3 3101 | picomatch: 2.3.1 3102 | 3103 | mime-db@1.52.0: {} 3104 | 3105 | mime-db@1.53.0: {} 3106 | 3107 | mime-types@2.1.35: 3108 | dependencies: 3109 | mime-db: 1.52.0 3110 | 3111 | mime@3.0.0: {} 3112 | 3113 | minimatch@9.0.5: 3114 | dependencies: 3115 | brace-expansion: 2.0.1 3116 | 3117 | minimist@1.2.8: {} 3118 | 3119 | minipass@7.1.2: {} 3120 | 3121 | mnemonist@0.39.6: 3122 | dependencies: 3123 | obliterator: 2.0.4 3124 | 3125 | mrmime@2.0.0: {} 3126 | 3127 | ms@2.0.0: {} 3128 | 3129 | ms@2.1.2: {} 3130 | 3131 | nanoid@3.3.7: {} 3132 | 3133 | negotiator@0.6.3: {} 3134 | 3135 | no-case@3.0.4: 3136 | dependencies: 3137 | lower-case: 2.0.2 3138 | tslib: 2.6.3 3139 | 3140 | node-releases@2.0.18: {} 3141 | 3142 | obliterator@2.0.4: {} 3143 | 3144 | on-exit-leak-free@2.1.2: {} 3145 | 3146 | on-headers@1.0.2: {} 3147 | 3148 | once@1.4.0: 3149 | dependencies: 3150 | wrappy: 1.0.2 3151 | 3152 | package-json-from-dist@1.0.0: {} 3153 | 3154 | parent-module@1.0.1: 3155 | dependencies: 3156 | callsites: 3.1.0 3157 | 3158 | parse-json@5.2.0: 3159 | dependencies: 3160 | '@babel/code-frame': 7.24.7 3161 | error-ex: 1.3.2 3162 | json-parse-even-better-errors: 2.3.1 3163 | lines-and-columns: 1.2.4 3164 | 3165 | path-key@3.1.1: {} 3166 | 3167 | path-scurry@1.11.1: 3168 | dependencies: 3169 | lru-cache: 10.4.3 3170 | minipass: 7.1.2 3171 | 3172 | path-type@4.0.0: {} 3173 | 3174 | patronum@2.2.0(effector@23.2.2): 3175 | dependencies: 3176 | effector: 23.2.2 3177 | 3178 | peek-stream@1.1.3: 3179 | dependencies: 3180 | buffer-from: 1.1.2 3181 | duplexify: 3.7.1 3182 | through2: 2.0.5 3183 | 3184 | picocolors@1.0.1: {} 3185 | 3186 | picomatch@2.3.1: {} 3187 | 3188 | pino-abstract-transport@1.2.0: 3189 | dependencies: 3190 | readable-stream: 4.5.2 3191 | split2: 4.2.0 3192 | 3193 | pino-pretty@11.2.2: 3194 | dependencies: 3195 | colorette: 2.0.20 3196 | dateformat: 4.6.3 3197 | fast-copy: 3.0.2 3198 | fast-safe-stringify: 2.1.1 3199 | help-me: 5.0.0 3200 | joycon: 3.1.1 3201 | minimist: 1.2.8 3202 | on-exit-leak-free: 2.1.2 3203 | pino-abstract-transport: 1.2.0 3204 | pump: 3.0.0 3205 | readable-stream: 4.5.2 3206 | secure-json-parse: 2.7.0 3207 | sonic-boom: 4.0.1 3208 | strip-json-comments: 3.1.1 3209 | 3210 | pino-std-serializers@7.0.0: {} 3211 | 3212 | pino@9.3.2: 3213 | dependencies: 3214 | atomic-sleep: 1.0.0 3215 | fast-redact: 3.5.0 3216 | on-exit-leak-free: 2.1.2 3217 | pino-abstract-transport: 1.2.0 3218 | pino-std-serializers: 7.0.0 3219 | process-warning: 4.0.0 3220 | quick-format-unescaped: 4.0.4 3221 | real-require: 0.2.0 3222 | safe-stable-stringify: 2.4.3 3223 | sonic-boom: 4.0.1 3224 | thread-stream: 3.1.0 3225 | 3226 | postcss@8.4.41: 3227 | dependencies: 3228 | nanoid: 3.3.7 3229 | picocolors: 1.0.1 3230 | source-map-js: 1.2.0 3231 | 3232 | prettier@3.3.3: {} 3233 | 3234 | process-nextick-args@2.0.1: {} 3235 | 3236 | process-warning@2.3.2: {} 3237 | 3238 | process-warning@3.0.0: {} 3239 | 3240 | process-warning@4.0.0: {} 3241 | 3242 | process@0.11.10: {} 3243 | 3244 | proxy-addr@2.0.7: 3245 | dependencies: 3246 | forwarded: 0.2.0 3247 | ipaddr.js: 1.9.1 3248 | 3249 | pump@3.0.0: 3250 | dependencies: 3251 | end-of-stream: 1.4.4 3252 | once: 1.4.0 3253 | 3254 | pumpify@2.0.1: 3255 | dependencies: 3256 | duplexify: 4.1.3 3257 | inherits: 2.0.4 3258 | pump: 3.0.0 3259 | 3260 | queue-microtask@1.2.3: {} 3261 | 3262 | quick-format-unescaped@4.0.4: {} 3263 | 3264 | react-dom@18.3.1(react@18.3.1): 3265 | dependencies: 3266 | loose-envify: 1.4.0 3267 | react: 18.3.1 3268 | scheduler: 0.23.2 3269 | 3270 | react-refresh@0.14.2: {} 3271 | 3272 | react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 3273 | dependencies: 3274 | '@brillout/import': 0.2.3 3275 | '@brillout/json-serializer': 0.5.13 3276 | '@brillout/picocolors': 1.0.14 3277 | isbot-fast: 1.2.0 3278 | react: 18.3.1 3279 | react-dom: 18.3.1(react@18.3.1) 3280 | 3281 | react@18.3.1: 3282 | dependencies: 3283 | loose-envify: 1.4.0 3284 | 3285 | readable-stream@2.3.8: 3286 | dependencies: 3287 | core-util-is: 1.0.3 3288 | inherits: 2.0.4 3289 | isarray: 1.0.0 3290 | process-nextick-args: 2.0.1 3291 | safe-buffer: 5.1.2 3292 | string_decoder: 1.1.1 3293 | util-deprecate: 1.0.2 3294 | 3295 | readable-stream@3.6.2: 3296 | dependencies: 3297 | inherits: 2.0.4 3298 | string_decoder: 1.3.0 3299 | util-deprecate: 1.0.2 3300 | 3301 | readable-stream@4.5.2: 3302 | dependencies: 3303 | abort-controller: 3.0.0 3304 | buffer: 6.0.3 3305 | events: 3.3.0 3306 | process: 0.11.10 3307 | string_decoder: 1.3.0 3308 | 3309 | real-require@0.2.0: {} 3310 | 3311 | require-from-string@2.0.2: {} 3312 | 3313 | resolve-from@4.0.0: {} 3314 | 3315 | ret@0.4.3: {} 3316 | 3317 | reusify@1.0.4: {} 3318 | 3319 | rfdc@1.4.1: {} 3320 | 3321 | rollup@4.20.0: 3322 | dependencies: 3323 | '@types/estree': 1.0.5 3324 | optionalDependencies: 3325 | '@rollup/rollup-android-arm-eabi': 4.20.0 3326 | '@rollup/rollup-android-arm64': 4.20.0 3327 | '@rollup/rollup-darwin-arm64': 4.20.0 3328 | '@rollup/rollup-darwin-x64': 4.20.0 3329 | '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 3330 | '@rollup/rollup-linux-arm-musleabihf': 4.20.0 3331 | '@rollup/rollup-linux-arm64-gnu': 4.20.0 3332 | '@rollup/rollup-linux-arm64-musl': 4.20.0 3333 | '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 3334 | '@rollup/rollup-linux-riscv64-gnu': 4.20.0 3335 | '@rollup/rollup-linux-s390x-gnu': 4.20.0 3336 | '@rollup/rollup-linux-x64-gnu': 4.20.0 3337 | '@rollup/rollup-linux-x64-musl': 4.20.0 3338 | '@rollup/rollup-win32-arm64-msvc': 4.20.0 3339 | '@rollup/rollup-win32-ia32-msvc': 4.20.0 3340 | '@rollup/rollup-win32-x64-msvc': 4.20.0 3341 | fsevents: 2.3.3 3342 | 3343 | run-parallel@1.2.0: 3344 | dependencies: 3345 | queue-microtask: 1.2.3 3346 | 3347 | safe-buffer@5.1.2: {} 3348 | 3349 | safe-buffer@5.2.1: {} 3350 | 3351 | safe-regex2@3.1.0: 3352 | dependencies: 3353 | ret: 0.4.3 3354 | 3355 | safe-stable-stringify@2.4.3: {} 3356 | 3357 | scheduler@0.23.2: 3358 | dependencies: 3359 | loose-envify: 1.4.0 3360 | 3361 | secure-json-parse@2.7.0: {} 3362 | 3363 | semver@6.3.1: {} 3364 | 3365 | semver@7.6.3: {} 3366 | 3367 | set-cookie-parser@2.7.0: {} 3368 | 3369 | setprototypeof@1.2.0: {} 3370 | 3371 | shebang-command@2.0.0: 3372 | dependencies: 3373 | shebang-regex: 3.0.0 3374 | 3375 | shebang-regex@3.0.0: {} 3376 | 3377 | signal-exit@4.1.0: {} 3378 | 3379 | sirv@2.0.4: 3380 | dependencies: 3381 | '@polka/url': 1.0.0-next.25 3382 | mrmime: 2.0.0 3383 | totalist: 3.0.1 3384 | 3385 | snake-case@3.0.4: 3386 | dependencies: 3387 | dot-case: 3.0.4 3388 | tslib: 2.6.3 3389 | 3390 | sonic-boom@4.0.1: 3391 | dependencies: 3392 | atomic-sleep: 1.0.0 3393 | 3394 | source-map-js@1.2.0: {} 3395 | 3396 | source-map-support@0.5.21: 3397 | dependencies: 3398 | buffer-from: 1.1.2 3399 | source-map: 0.6.1 3400 | 3401 | source-map@0.5.7: {} 3402 | 3403 | source-map@0.6.1: {} 3404 | 3405 | split2@4.2.0: {} 3406 | 3407 | statuses@2.0.1: {} 3408 | 3409 | stream-shift@1.0.3: {} 3410 | 3411 | string-width@4.2.3: 3412 | dependencies: 3413 | emoji-regex: 8.0.0 3414 | is-fullwidth-code-point: 3.0.0 3415 | strip-ansi: 6.0.1 3416 | 3417 | string-width@5.1.2: 3418 | dependencies: 3419 | eastasianwidth: 0.2.0 3420 | emoji-regex: 9.2.2 3421 | strip-ansi: 7.1.0 3422 | 3423 | string_decoder@1.1.1: 3424 | dependencies: 3425 | safe-buffer: 5.1.2 3426 | 3427 | string_decoder@1.3.0: 3428 | dependencies: 3429 | safe-buffer: 5.2.1 3430 | 3431 | strip-ansi@6.0.1: 3432 | dependencies: 3433 | ansi-regex: 5.0.1 3434 | 3435 | strip-ansi@7.1.0: 3436 | dependencies: 3437 | ansi-regex: 6.0.1 3438 | 3439 | strip-json-comments@3.1.1: {} 3440 | 3441 | supports-color@5.5.0: 3442 | dependencies: 3443 | has-flag: 3.0.0 3444 | 3445 | svg-parser@2.0.4: {} 3446 | 3447 | thread-stream@3.1.0: 3448 | dependencies: 3449 | real-require: 0.2.0 3450 | 3451 | through2@2.0.5: 3452 | dependencies: 3453 | readable-stream: 2.3.8 3454 | xtend: 4.0.2 3455 | 3456 | to-fast-properties@2.0.0: {} 3457 | 3458 | to-regex-range@5.0.1: 3459 | dependencies: 3460 | is-number: 7.0.0 3461 | 3462 | toad-cache@3.7.0: {} 3463 | 3464 | toidentifier@1.0.1: {} 3465 | 3466 | totalist@3.0.1: {} 3467 | 3468 | ts-node@10.9.2(@types/node@22.3.0)(typescript@5.5.4): 3469 | dependencies: 3470 | '@cspotcode/source-map-support': 0.8.1 3471 | '@tsconfig/node10': 1.0.11 3472 | '@tsconfig/node12': 1.0.11 3473 | '@tsconfig/node14': 1.0.3 3474 | '@tsconfig/node16': 1.0.4 3475 | '@types/node': 22.3.0 3476 | acorn: 8.12.1 3477 | acorn-walk: 8.3.3 3478 | arg: 4.1.3 3479 | create-require: 1.1.1 3480 | diff: 4.0.2 3481 | make-error: 1.3.6 3482 | typescript: 5.5.4 3483 | v8-compile-cache-lib: 3.0.1 3484 | yn: 3.1.1 3485 | 3486 | tslib@2.6.3: {} 3487 | 3488 | typescript@5.5.4: {} 3489 | 3490 | undici-types@6.18.2: {} 3491 | 3492 | update-browserslist-db@1.1.0(browserslist@4.23.3): 3493 | dependencies: 3494 | browserslist: 4.23.3 3495 | escalade: 3.1.2 3496 | picocolors: 1.0.1 3497 | 3498 | use-sync-external-store@1.2.2(react@18.3.1): 3499 | dependencies: 3500 | react: 18.3.1 3501 | 3502 | util-deprecate@1.0.2: {} 3503 | 3504 | v8-compile-cache-lib@3.0.1: {} 3505 | 3506 | vary@1.1.2: {} 3507 | 3508 | vike-react@0.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.184(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.1(@types/node@22.3.0))): 3509 | dependencies: 3510 | react: 18.3.1 3511 | react-dom: 18.3.1(react@18.3.1) 3512 | react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3513 | vike: 0.4.184(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.1(@types/node@22.3.0)) 3514 | 3515 | vike@0.4.184(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.1(@types/node@22.3.0)): 3516 | dependencies: 3517 | '@brillout/import': 0.2.3 3518 | '@brillout/json-serializer': 0.5.13 3519 | '@brillout/picocolors': 1.0.14 3520 | '@brillout/require-shim': 0.1.2 3521 | '@brillout/vite-plugin-server-entry': 0.4.7 3522 | acorn: 8.12.1 3523 | cac: 6.7.14 3524 | es-module-lexer: 1.5.4 3525 | esbuild: 0.19.12 3526 | fast-glob: 3.3.2 3527 | semver: 7.6.3 3528 | sirv: 2.0.4 3529 | source-map-support: 0.5.21 3530 | vite: 5.4.1(@types/node@22.3.0) 3531 | optionalDependencies: 3532 | react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3533 | 3534 | vite-plugin-svgr@4.2.0(rollup@4.20.0)(typescript@5.5.4)(vite@5.4.1(@types/node@22.3.0)): 3535 | dependencies: 3536 | '@rollup/pluginutils': 5.1.0(rollup@4.20.0) 3537 | '@svgr/core': 8.1.0(typescript@5.5.4) 3538 | '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.5.4)) 3539 | vite: 5.4.1(@types/node@22.3.0) 3540 | transitivePeerDependencies: 3541 | - rollup 3542 | - supports-color 3543 | - typescript 3544 | 3545 | vite@5.4.1(@types/node@22.3.0): 3546 | dependencies: 3547 | esbuild: 0.21.5 3548 | postcss: 8.4.41 3549 | rollup: 4.20.0 3550 | optionalDependencies: 3551 | '@types/node': 22.3.0 3552 | fsevents: 2.3.3 3553 | 3554 | which@2.0.2: 3555 | dependencies: 3556 | isexe: 2.0.0 3557 | 3558 | wrap-ansi@7.0.0: 3559 | dependencies: 3560 | ansi-styles: 4.3.0 3561 | string-width: 4.2.3 3562 | strip-ansi: 6.0.1 3563 | 3564 | wrap-ansi@8.1.0: 3565 | dependencies: 3566 | ansi-styles: 6.2.1 3567 | string-width: 5.1.2 3568 | strip-ansi: 7.1.0 3569 | 3570 | wrappy@1.0.2: {} 3571 | 3572 | xtend@4.0.2: {} 3573 | 3574 | yallist@3.1.1: {} 3575 | 3576 | yn@3.1.1: {} 3577 | 3578 | zod@3.23.8: {} 3579 | --------------------------------------------------------------------------------