From 2f98d699e4b94b82f780128b27185e49b2566909 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 10:19:08 +0900 Subject: [PATCH 01/72] chore: integrate remix vite (wip) --- app/db/knexfile.server.ts | 3 + app/entry.client.tsx | 1 + app/misc/entry-hattip.ts | 8 +- app/server/document.tsx | 1 - app/utils/loader-utils.server.ts | 4 +- package.json | 15 +- ...__dev@0.0.0-nightly-bf2feb9-20231111.patch | 13 + pnpm-lock.yaml | 2451 +++-------------- tsconfig.json | 8 +- vite.config.ts | 21 +- 10 files changed, 429 insertions(+), 2096 deletions(-) create mode 100644 patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch diff --git a/app/db/knexfile.server.ts b/app/db/knexfile.server.ts index 1eaf11984b..17085ce214 100644 --- a/app/db/knexfile.server.ts +++ b/app/db/knexfile.server.ts @@ -1,7 +1,10 @@ import path from "node:path"; +import { fileURLToPath } from "node:url"; import type { Knex } from "knex"; import { initializeConfigServer, serverConfig } from "../utils/config"; +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + export default function knexfile() { initializeConfigServer(); diff --git a/app/entry.client.tsx b/app/entry.client.tsx index ef73989176..85a7faf058 100644 --- a/app/entry.client.tsx +++ b/app/entry.client.tsx @@ -1,3 +1,4 @@ +import "virtual:uno.css"; import { tinyassert } from "@hiogawa/utils"; import { RemixBrowser } from "@remix-run/react"; import { hydrateRoot } from "react-dom/client"; diff --git a/app/misc/entry-hattip.ts b/app/misc/entry-hattip.ts index 3b1deae3cd..acd7c1210c 100644 --- a/app/misc/entry-hattip.ts +++ b/app/misc/entry-hattip.ts @@ -3,7 +3,6 @@ import { once } from "@hiogawa/utils"; import { createLoggerHandler } from "@hiogawa/utils-hattip"; import { SpanKind } from "@opentelemetry/api"; import { SemanticAttributes } from "@opentelemetry/semantic-conventions"; -import * as build from "@remix-run/dev/server-build"; import { createRequestHandler } from "@remix-run/server-runtime"; import { requestContextHandler } from "../server/request-context"; import { rpcHandler } from "../trpc/server"; @@ -11,6 +10,10 @@ import { pathToRegExp } from "../utils/misc"; import { traceAsync } from "../utils/opentelemetry-utils"; import { initializeServer } from "./initialize-server"; +// @ts-ignore isort-ignore +import * as remixViteBuild from "virtual:server-entry"; +const build = remixViteBuild as typeof import("@remix-run/dev/server-build"); + // based on https://github.com/hi-ogawa/vite-fullstack-example/blob/92649f99b041820ec86650c99cfcd49a72e79f71/src/server/hattip.ts#L16-L28 export function createHattipEntry() { @@ -29,8 +32,7 @@ export function createHattipEntry() { // function createRemixHandler(): RequestHandler { - const mode = - process.env.NODE_ENV === "production" ? "production" : "development"; + const mode = import.meta.env.DEV ? "development" : "production"; const remixHandler = createRequestHandler(build, mode); return (ctx) => remixHandler(ctx.request); } diff --git a/app/server/document.tsx b/app/server/document.tsx index 217c3084a6..7a3bc3c1a7 100644 --- a/app/server/document.tsx +++ b/app/server/document.tsx @@ -19,7 +19,6 @@ export function renderToDocument(ssrHtml: string) { content="width=device-width, height=device-height, initial-scale=1.0" /> - unknown) { // make it partial for slight convenience of unit test - return async (args?: Partial) => { + return async (args?: Partial) => { ctx_get().params = args?.params ?? {}; const res = await loader(); return res instanceof Response ? res : json(JSON_EXTRA.serialize(res)); diff --git a/package.json b/package.json index 04c1d7e1d0..136d1933ab 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "scripts": { + "dev2": "vite", "dev": "pnpm dev-pre && run-p dev:*", "dev-pre": "pnpm build:css", "dev-e2e": "export NODE_ENV=test && pnpm dev-pre && PORT=3001 pnpm dev:remix", @@ -61,9 +62,8 @@ "@opentelemetry/api": "^1.7.0", "@opentelemetry/sdk-node": "^0.39.1", "@opentelemetry/semantic-conventions": "^1.18.1", - "@remix-run/node": "1.15.0", - "@remix-run/react": "1.15.0", - "@remix-run/server-runtime": "1.15.0", + "@remix-run/react": "0.0.0-nightly-bf2feb9-20231111", + "@remix-run/server-runtime": "0.0.0-nightly-bf2feb9-20231111", "@remix-run/v1-route-convention": "^0.1.4", "@tanstack/react-query": "^4.36.1", "@tanstack/react-query-devtools": "^4.36.1", @@ -86,9 +86,10 @@ "@hiogawa/tiny-form": "0.0.1-pre.10", "@hiogawa/unocss-preset-antd": "2.2.1-pre.7", "@hiogawa/utils-node": "0.0.1-pre.5", + "@hiogawa/vite-import-dev-server": "^0.0.1", "@iconify-json/ri": "^1.1.12", "@playwright/test": "^1.39.0", - "@remix-run/dev": "1.15.0", + "@remix-run/dev": "0.0.0-nightly-bf2feb9-20231111", "@tsconfig/strictest": "^2.0.2", "@types/cookie": "^0.5.4", "@types/express": "^4.17.21", @@ -98,6 +99,7 @@ "@types/showdown": "^2.0.4", "@unocss/cli": "^0.52.7", "@unocss/reset": "^0.52.7", + "@vavite/connect": "^3.0.0", "@vitejs/plugin-react": "^4.1.1", "@vitest/coverage-v8": "^0.34.6", "c8": "^8.0.1", @@ -122,9 +124,8 @@ }, "pnpm": { "patchedDependencies": { - "@remix-run/dev@1.15.0": "patches/@remix-run__dev@1.15.0.patch", - "@remix-run/node@1.15.0": "patches/@remix-run__node@1.15.0.patch", - "@opentelemetry/sdk-node@0.39.1": "patches/@opentelemetry__sdk-node@0.39.1.patch" + "@opentelemetry/sdk-node@0.39.1": "patches/@opentelemetry__sdk-node@0.39.1.patch", + "@remix-run/dev@0.0.0-nightly-bf2feb9-20231111": "patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch" } } } diff --git a/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch b/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch new file mode 100644 index 0000000000..7068c9592b --- /dev/null +++ b/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch @@ -0,0 +1,13 @@ +diff --git a/dist/vite/plugin.js b/dist/vite/plugin.js +index 4d7d30ef9079e2acf0b9317a9b8245467f232149..577b1df11f5a1496c618d85fb25b7dc8579bae12 100644 +--- a/dist/vite/plugin.js ++++ b/dist/vite/plugin.js +@@ -23,7 +23,7 @@ var pick = require('lodash/pick'); + var pc = require('picocolors'); + var config = require('../config.js'); + var invariant = require('../invariant.js'); +-var adapter = require('./node/adapter.js'); ++// var adapter = require('./node/adapter.js'); + var styles = require('./styles.js'); + var vmod = require('./vmod.js'); + var removeExports = require('./remove-exports.js'); \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d08c2b530d..de3b461b3e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,12 +8,9 @@ patchedDependencies: '@opentelemetry/sdk-node@0.39.1': hash: opznjwpbsym5sugb4owpkabxrq path: patches/@opentelemetry__sdk-node@0.39.1.patch - '@remix-run/dev@1.15.0': - hash: 4co2c6th53fewqy5s2o3pj4nnu - path: patches/@remix-run__dev@1.15.0.patch - '@remix-run/node@1.15.0': - hash: z6mxtllsu73w4y6xnddlyl6j6y - path: patches/@remix-run__node@1.15.0.patch + '@remix-run/dev@0.0.0-nightly-bf2feb9-20231111': + hash: atxaral2ohmomrcvz2mcbc433m + path: patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch dependencies: '@floating-ui/react': @@ -79,18 +76,15 @@ dependencies: '@opentelemetry/semantic-conventions': specifier: ^1.18.1 version: 1.18.1 - '@remix-run/node': - specifier: 1.15.0 - version: 1.15.0(patch_hash=z6mxtllsu73w4y6xnddlyl6j6y) '@remix-run/react': - specifier: 1.15.0 - version: 1.15.0(react-dom@18.2.0)(react@18.2.0) + specifier: 0.0.0-nightly-bf2feb9-20231111 + version: 0.0.0-nightly-bf2feb9-20231111(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) '@remix-run/server-runtime': - specifier: 1.15.0 - version: 1.15.0 + specifier: 0.0.0-nightly-bf2feb9-20231111 + version: 0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2) '@remix-run/v1-route-convention': specifier: ^0.1.4 - version: 0.1.4(@remix-run/dev@1.15.0) + version: 0.1.4(@remix-run/dev@0.0.0-nightly-bf2feb9-20231111) '@tanstack/react-query': specifier: ^4.36.1 version: 4.36.1(react-dom@18.2.0)(react@18.2.0) @@ -150,6 +144,9 @@ devDependencies: '@hiogawa/utils-node': specifier: 0.0.1-pre.5 version: 0.0.1-pre.5 + '@hiogawa/vite-import-dev-server': + specifier: ^0.0.1 + version: 0.0.1(vite@4.5.0) '@iconify-json/ri': specifier: ^1.1.12 version: 1.1.12 @@ -157,8 +154,8 @@ devDependencies: specifier: ^1.39.0 version: 1.39.0 '@remix-run/dev': - specifier: 1.15.0 - version: 1.15.0(patch_hash=4co2c6th53fewqy5s2o3pj4nnu)(@types/node@18.18.9) + specifier: 0.0.0-nightly-bf2feb9-20231111 + version: 0.0.0-nightly-bf2feb9-20231111(patch_hash=atxaral2ohmomrcvz2mcbc433m)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) '@tsconfig/strictest': specifier: ^2.0.2 version: 2.0.2 @@ -186,6 +183,9 @@ devDependencies: '@unocss/reset': specifier: ^0.52.7 version: 0.52.7 + '@vavite/connect': + specifier: ^3.0.0 + version: 3.0.0(vite@4.5.0) '@vitejs/plugin-react': specifier: ^4.1.1 version: 4.1.1(vite@4.5.0) @@ -309,858 +309,153 @@ packages: dependencies: '@babel/types': 7.23.3 - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.3 - /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.23.3 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.22.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.3): - resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.3 - - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.3 - - /@babel/helper-member-expression-to-functions@7.23.0: - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.3 - - /@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.3 - - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.3 - - /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.3): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3): - resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.3 - - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.3 - - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.3 - - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} - engines: {node: '>=6.9.0'} - - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.22.15 - '@babel/types': 7.23.3 - - /@babel/helpers@7.23.2: - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 - transitivePeerDependencies: - - supports-color - - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - - /@babel/parser@7.23.3: - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.3 - - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) - - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.3): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.3): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) - - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-class-static-block@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) - - /@babel/plugin-transform-classes@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.15 - - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-dynamic-import@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) - - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-export-namespace-from@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) - - /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/compat-data': 7.23.3 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3): + resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-nullish-coalescing-operator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==} + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/template': 7.22.15 + '@babel/types': 7.23.3 - /@babel/plugin-transform-numeric-separator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==} + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/types': 7.23.3 - /@babel/plugin-transform-object-rest-spread@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==} + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) + '@babel/types': 7.23.3 - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/types': 7.23.3 - /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==} + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 - /@babel/plugin-transform-optional-chaining@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==} + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/types': 7.23.3 - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 - /@babel/plugin-transform-private-property-in-object@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==} + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) + '@babel/types': 7.23.3 - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.3 - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true + '@babel/types': 7.23.3 - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.2 - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} + /@babel/helpers@7.23.2: + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@babel/parser@7.23.3: + resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} + engines: {node: '>=6.0.0'} + hasBin: true dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.3 - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} + /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1168,8 +463,8 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1177,156 +472,57 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-typescript@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==} + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/preset-env@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==} + /@babel/plugin-transform-typescript@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.3) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-async-generator-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-dynamic-import': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-export-namespace-from': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-json-strings': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-logical-assignment-operators': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-numeric-separator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-object-rest-spread': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-optional-catch-binding': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-private-property-in-object': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.3) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.3) - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) - babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.3) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) - core-js-compat: 3.33.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.3): - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.23.3 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.3 - esutils: 2.0.3 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) /@babel/preset-typescript@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} @@ -1341,9 +537,6 @@ packages: '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - /@babel/runtime@7.23.2: resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} engines: {node: '>=6.9.0'} @@ -1397,23 +590,6 @@ packages: /@emotion/hash@0.9.1: resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} - /@esbuild-plugins/node-modules-polyfill@0.1.4(esbuild@0.16.3): - resolution: {integrity: sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==} - peerDependencies: - esbuild: '*' - dependencies: - esbuild: 0.16.3 - escape-string-regexp: 4.0.0 - rollup-plugin-node-polyfills: 0.2.1 - - /@esbuild/android-arm64@0.16.3: - resolution: {integrity: sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - /@esbuild/android-arm64@0.17.19: resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -1439,14 +615,6 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm@0.16.3: - resolution: {integrity: sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - /@esbuild/android-arm@0.17.19: resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -1472,14 +640,6 @@ packages: requiresBuild: true optional: true - /@esbuild/android-x64@0.16.3: - resolution: {integrity: sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - optional: true - /@esbuild/android-x64@0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -1505,14 +665,6 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.16.3: - resolution: {integrity: sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - /@esbuild/darwin-arm64@0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -1531,17 +683,9 @@ packages: optional: true /@esbuild/darwin-arm64@0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/darwin-x64@0.16.3: - resolution: {integrity: sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==} + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm64] os: [darwin] requiresBuild: true optional: true @@ -1571,14 +715,6 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.16.3: - resolution: {integrity: sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - optional: true - /@esbuild/freebsd-arm64@0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -1604,14 +740,6 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.16.3: - resolution: {integrity: sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - optional: true - /@esbuild/freebsd-x64@0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -1637,14 +765,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm64@0.16.3: - resolution: {integrity: sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-arm64@0.17.19: resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -1670,14 +790,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm@0.16.3: - resolution: {integrity: sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-arm@0.17.19: resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -1703,14 +815,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ia32@0.16.3: - resolution: {integrity: sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-ia32@0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -1736,14 +840,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-loong64@0.16.3: - resolution: {integrity: sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-loong64@0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -1769,14 +865,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.16.3: - resolution: {integrity: sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-mips64el@0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -1802,14 +890,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.16.3: - resolution: {integrity: sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-ppc64@0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -1835,14 +915,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.16.3: - resolution: {integrity: sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-riscv64@0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -1868,14 +940,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-s390x@0.16.3: - resolution: {integrity: sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-s390x@0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -1901,14 +965,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-x64@0.16.3: - resolution: {integrity: sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-x64@0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -1934,14 +990,6 @@ packages: requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.16.3: - resolution: {integrity: sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - optional: true - /@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -1967,14 +1015,6 @@ packages: requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.16.3: - resolution: {integrity: sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - optional: true - /@esbuild/openbsd-x64@0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -2000,14 +1040,6 @@ packages: requiresBuild: true optional: true - /@esbuild/sunos-x64@0.16.3: - resolution: {integrity: sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - optional: true - /@esbuild/sunos-x64@0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -2033,14 +1065,6 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-arm64@0.16.3: - resolution: {integrity: sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - /@esbuild/win32-arm64@0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -2066,14 +1090,6 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-ia32@0.16.3: - resolution: {integrity: sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - /@esbuild/win32-ia32@0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -2099,14 +1115,6 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-x64@0.16.3: - resolution: {integrity: sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - /@esbuild/win32-x64@0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -2132,6 +1140,10 @@ packages: requiresBuild: true optional: true + /@fastify/busboy@2.0.0: + resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} + engines: {node: '>=14'} + /@floating-ui/core@1.5.0: resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} dependencies: @@ -2243,6 +1255,7 @@ packages: /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + dev: true /@grpc/grpc-js@1.9.9: resolution: {integrity: sha512-vQ1qwi/Kiyprt+uhb1+rHMpyk4CVRMTGNUGGPRGS7pLNfWkdCHrGEnT6T3/JyC2VZgoOX/X1KwdoU0WYQAeYcQ==} @@ -2434,6 +1447,14 @@ packages: resolution: {integrity: sha512-9RnMKYYp0BAK4xsRl9V9gxH6J4wQWL9hzFLfREAWiiB6let0csGruGvmXAFu8RKfhG7/0h6xkpg/TrCO1+RsYg==} dev: false + /@hiogawa/vite-import-dev-server@0.0.1(vite@4.5.0): + resolution: {integrity: sha512-E/OyLULlz+iNideyhbaKwg/n498WdWD7/tIT1VJAj3moVWNXBfoJMpKRc8BwmcQ8fFOWd7/DnLbS2KvxsNxeeg==} + peerDependencies: + vite: '*' + dependencies: + vite: 4.5.0(@types/node@18.18.9) + dev: true + /@iconify-json/ri@1.1.12: resolution: {integrity: sha512-s5VsyMWYuUuTB5bATJRoDQKGqo6W0dsxvOBrJI/P2H9QI7IAaAWl8zHxseSjoUGG6AwZwWwDMW9YPULPt+vA6w==} dependencies: @@ -2467,7 +1488,6 @@ packages: strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true /@istanbuljs/schema@0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} @@ -2514,16 +1534,44 @@ packages: tslib: 2.6.2 dev: false + /@jspm/core@2.0.1: + resolution: {integrity: sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw==} + + /@mdx-js/mdx@2.3.0: + resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} + dependencies: + '@types/estree-jsx': 1.0.3 + '@types/mdx': 2.0.10 + estree-util-build-jsx: 2.2.2 + estree-util-is-identifier-name: 2.1.0 + estree-util-to-js: 1.2.0 + estree-walker: 3.0.3 + hast-util-to-estree: 2.3.3 + markdown-extensions: 1.1.1 + periscopic: 3.1.0 + remark-mdx: 2.3.0 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + unified: 10.1.2 + unist-util-position-from-estree: 1.1.2 + unist-util-stringify-position: 3.0.3 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 + dev: true /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} + dev: true /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} @@ -2531,12 +1579,7 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - - /@npmcli/fs@1.1.1: - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.5.4 + dev: true /@npmcli/fs@2.1.2: resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} @@ -2551,7 +1594,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: semver: 7.5.4 - dev: true /@npmcli/git@4.1.0: resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} @@ -2567,7 +1609,6 @@ packages: which: 3.0.1 transitivePeerDependencies: - bluebird - dev: true /@npmcli/installed-package-contents@2.0.2: resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} @@ -2578,14 +1619,6 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true - /@npmcli/move-file@1.1.2: - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - /@npmcli/move-file@2.0.1: resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -2600,18 +1633,25 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /@npmcli/package-json@2.0.0: - resolution: {integrity: sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /@npmcli/package-json@4.0.1: + resolution: {integrity: sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - json-parse-even-better-errors: 2.3.1 + '@npmcli/git': 4.1.0 + glob: 10.3.10 + hosted-git-info: 6.1.1 + json-parse-even-better-errors: 3.0.0 + normalize-package-data: 5.0.0 + proc-log: 3.0.0 + semver: 7.5.4 + transitivePeerDependencies: + - bluebird /@npmcli/promise-spawn@6.0.2: resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: which: 3.0.1 - dev: true /@npmcli/run-script@6.0.2: resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} @@ -2913,7 +1953,6 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true - dev: true optional: true /@playwright/test@1.39.0: @@ -2992,69 +2031,80 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: false - /@remix-run/dev@1.15.0(patch_hash=4co2c6th53fewqy5s2o3pj4nnu)(@types/node@18.18.9): - resolution: {integrity: sha512-BsE1GN6WM9PhN+agZi4TqUIuYzoHYZrufEdXLg3ZEYxWXqvtRKUNfhsYSDlEhrW+D5fyVQhJrs61wQ83sEXHLQ==} - engines: {node: '>=14'} + /@remix-run/dev@0.0.0-nightly-bf2feb9-20231111(patch_hash=atxaral2ohmomrcvz2mcbc433m)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0): + resolution: {integrity: sha512-gweHjZur8cMVfGMl2Ek51lkll/NGVJlWcDHkTg20rQ9PDzSqQQJYsUsVAcVu23xW2YkTN0BeGVILWbmPPC7/DQ==} + engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@remix-run/serve': ^1.15.0 + '@remix-run/serve': ^0.0.0-nightly-bf2feb9-20231111 + typescript: ^5.1.0 + vite: ^4.4.9 peerDependenciesMeta: '@remix-run/serve': optional: true + typescript: + optional: true + vite: + optional: true dependencies: '@babel/core': 7.23.3 '@babel/generator': 7.23.3 '@babel/parser': 7.23.3 + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.3) '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) - '@babel/preset-env': 7.23.3(@babel/core@7.23.3) '@babel/preset-typescript': 7.23.3(@babel/core@7.23.3) '@babel/traverse': 7.23.3 '@babel/types': 7.23.3 - '@esbuild-plugins/node-modules-polyfill': 0.1.4(esbuild@0.16.3) - '@npmcli/package-json': 2.0.0 - '@remix-run/server-runtime': 1.15.0 + '@mdx-js/mdx': 2.3.0 + '@npmcli/package-json': 4.0.1 + '@remix-run/node': 0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2) + '@remix-run/router': 1.11.0 + '@remix-run/server-runtime': 0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2) + '@types/mdx': 2.0.10 '@vanilla-extract/integration': 6.2.3(@types/node@18.18.9) arg: 5.0.2 - cacache: 15.3.0 + cacache: 17.1.4 chalk: 4.1.2 chokidar: 3.5.3 + cross-spawn: 7.0.3 dotenv: 16.3.1 - esbuild: 0.16.3 + es-module-lexer: 1.4.1 + esbuild: 0.17.6 + esbuild-plugins-node-modules-polyfill: 1.6.1(esbuild@0.17.6) execa: 5.1.1 exit-hook: 2.2.1 express: 4.18.2 - fast-glob: 3.2.11 fs-extra: 10.1.0 get-port: 5.1.1 - glob-to-regexp: 0.4.1 gunzip-maybe: 1.4.2 - inquirer: 8.2.6 jsesc: 3.0.2 json5: 2.2.3 lodash: 4.17.21 lodash.debounce: 4.0.8 - lru-cache: 7.18.3 - minimatch: 3.1.2 + minimatch: 9.0.3 node-fetch: 2.7.0 ora: 5.4.1 + parse-multipart-data: 1.5.0 + picocolors: 1.0.0 + picomatch: 2.3.1 + pidtree: 0.6.0 postcss: 8.4.31 postcss-discard-duplicates: 5.1.0(postcss@8.4.31) postcss-load-config: 4.0.1(postcss@8.4.31) postcss-modules: 6.0.0(postcss@8.4.31) - prettier: 2.7.1 + prettier: 2.8.8 pretty-ms: 7.0.1 - proxy-agent: 5.0.0 react-refresh: 0.14.0 - recast: 0.21.5 remark-frontmatter: 4.0.1 remark-mdx-frontmatter: 1.1.1 semver: 7.5.4 - sort-package-json: 1.57.0 + set-cookie-parser: 2.6.0 tar-fs: 2.1.1 tsconfig-paths: 4.2.0 + typescript: 5.2.2 + undici: 5.27.2 + vite: 4.5.0(@types/node@18.18.9) ws: 7.5.9 - xdm: 2.1.0 transitivePeerDependencies: - '@types/node' - bluebird @@ -3071,63 +2121,71 @@ packages: - utf-8-validate patched: true - /@remix-run/node@1.15.0(patch_hash=z6mxtllsu73w4y6xnddlyl6j6y): - resolution: {integrity: sha512-CS0p8T6A2KvMoAW5zzLA/BtNNCsv34A5RJoouJvXK9/o6MriAQ/YSugg6ldS5mec49neSep+CGeL1RS6tL+3NQ==} - engines: {node: '>=14'} + /@remix-run/node@0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2): + resolution: {integrity: sha512-CkJO1++GPwjD1up5jkh2mlmhOjrVSBgq9tW7Mjn2auYlW5dej8BNb2dyHvmWQLxVAUQV5lCa22P/ivG5n+0IXA==} + engines: {node: '>=18.0.0'} + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@remix-run/server-runtime': 1.15.0 + '@remix-run/server-runtime': 0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2) '@remix-run/web-fetch': 4.4.1 '@remix-run/web-file': 3.1.0 '@remix-run/web-stream': 1.1.0 '@web3-storage/multipart-parser': 1.0.0 - abort-controller: 3.0.0 cookie-signature: 1.2.1 source-map-support: 0.5.21 stream-slice: 0.1.2 - dev: false - patched: true + typescript: 5.2.2 - /@remix-run/react@1.15.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-S0RuIeHvQTqryCZ3KVl8EsIWCqL6/ky1/kmDpN2n5Pdjew2BLC6DX7OdrY1ZQjbzOMHAROsZlyaSSVXCItunag==} - engines: {node: '>=14'} + /@remix-run/react@0.0.0-nightly-bf2feb9-20231111(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): + resolution: {integrity: sha512-nQb5rsQm1mArB44/d7BAk9m61RymgQTFjms9ci2JyKtn4F6HbPWLt9AZxAlzQZs3vukIo4uCTo4d/GN/JHpmKQ==} + engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + react: ^18.0.0 + react-dom: ^18.0.0 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@remix-run/router': 1.5.0 + '@remix-run/router': 1.11.0 + '@remix-run/server-runtime': 0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router-dom: 6.10.0(react-dom@18.2.0)(react@18.2.0) - use-sync-external-store: 1.2.0(react@18.2.0) + react-router-dom: 6.18.0(react-dom@18.2.0)(react@18.2.0) + typescript: 5.2.2 dev: false /@remix-run/router@1.11.0: resolution: {integrity: sha512-BHdhcWgeiudl91HvVa2wxqZjSHbheSgIiDvxrF1VjFzBzpTtuDPkOdOi3Iqvc08kXtFkLjhbS+ML9aM8mJS+wQ==} engines: {node: '>=14.0.0'} - dev: false - /@remix-run/router@1.5.0: - resolution: {integrity: sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==} - engines: {node: '>=14'} - - /@remix-run/server-runtime@1.15.0: - resolution: {integrity: sha512-DL9xjHfYYrEcOq5VbhYtrjJUWo/nFQAT7Y+Np/oC55HokyU6cb2jGhl52nx96aAxKwaFCse5N90GeodFsRzX7w==} - engines: {node: '>=14'} + /@remix-run/server-runtime@0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2): + resolution: {integrity: sha512-uZtsCnEqY4eDFBEmVRcXLKMw5oCbXI91HBp0r0G22AoOyF7znHYLEaim67ilh4gwP+vuvDZzmEJdUWIqi5aUSw==} + engines: {node: '>=18.0.0'} + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@remix-run/router': 1.5.0 - '@types/cookie': 0.4.1 - '@types/react': 18.2.37 + '@remix-run/router': 1.11.0 + '@types/cookie': 0.5.4 '@web3-storage/multipart-parser': 1.0.0 - cookie: 0.4.2 + cookie: 0.5.0 set-cookie-parser: 2.6.0 source-map: 0.7.4 + typescript: 5.2.2 - /@remix-run/v1-route-convention@0.1.4(@remix-run/dev@1.15.0): + /@remix-run/v1-route-convention@0.1.4(@remix-run/dev@0.0.0-nightly-bf2feb9-20231111): resolution: {integrity: sha512-fVTr9YlNLWfaiM/6Y56sOtcY8x1bBJQHY0sDWO5+Z/vjJ2Ni7fe2fwrzs1jUFciMPXqBQdFGePnkuiYLz3cuUA==} peerDependencies: '@remix-run/dev': ^1.15.0 || ^2.0.0 dependencies: - '@remix-run/dev': 1.15.0(patch_hash=4co2c6th53fewqy5s2o3pj4nnu)(@types/node@18.18.9) + '@remix-run/dev': 0.0.0-nightly-bf2feb9-20231111(patch_hash=atxaral2ohmomrcvz2mcbc433m)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) minimatch: 7.4.6 dev: false @@ -3136,7 +2194,6 @@ packages: dependencies: '@remix-run/web-stream': 1.1.0 web-encoding: 1.1.5 - dev: false /@remix-run/web-fetch@4.4.1: resolution: {integrity: sha512-xMceEGn2kvfeWS91nHSOhEQHPGgjFnmDVpWFZrbWPVdiTByMZIn421/tdSF6Kd1RsNsY+5Iwt3JFEKZHAcMQHw==} @@ -3150,32 +2207,21 @@ packages: abort-controller: 3.0.0 data-uri-to-buffer: 3.0.1 mrmime: 1.0.1 - dev: false /@remix-run/web-file@3.1.0: resolution: {integrity: sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==} dependencies: '@remix-run/web-blob': 3.1.0 - dev: false /@remix-run/web-form-data@3.1.0: resolution: {integrity: sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==} dependencies: web-encoding: 1.1.5 - dev: false /@remix-run/web-stream@1.1.0: resolution: {integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==} dependencies: web-streams-polyfill: 3.2.1 - dev: false - - /@rollup/pluginutils@4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 /@rollup/pluginutils@5.0.5: resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} @@ -3228,21 +2274,11 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@sindresorhus/is@4.6.0: - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - /@sindresorhus/is@5.6.0: resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} dev: true - /@szmarczak/http-timer@4.0.6: - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - dependencies: - defer-to-connect: 2.0.1 - /@szmarczak/http-timer@5.0.1: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} @@ -3307,10 +2343,6 @@ packages: resolution: {integrity: sha512-jtkwqdP2rY2iCCDVAFuaNBH3fiEi29aTn2RhtIoky8DTTiCdc48plpHHreLwmv1PICJ4AJUUESaq3xa8fZH8+g==} dev: false - /@tootallnate/once@1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -3374,14 +2406,6 @@ packages: '@types/node': 18.18.9 dev: true - /@types/cacheable-request@6.0.3: - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - dependencies: - '@types/http-cache-semantics': 4.0.4 - '@types/keyv': 3.1.4 - '@types/node': 18.18.9 - '@types/responselike': 1.0.3 - /@types/chai-subset@1.3.5: resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} dependencies: @@ -3398,23 +2422,14 @@ packages: '@types/node': 18.18.9 dev: true - /@types/cookie@0.4.1: - resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} - /@types/cookie@0.5.4: resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} - dev: true /@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: '@types/ms': 0.7.34 - /@types/estree-jsx@0.0.1: - resolution: {integrity: sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A==} - dependencies: - '@types/estree': 1.0.5 - /@types/estree-jsx@1.0.3: resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==} dependencies: @@ -3441,12 +2456,6 @@ packages: '@types/serve-static': 1.15.5 dev: true - /@types/glob@7.2.0: - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 18.18.9 - /@types/hast@2.3.8: resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==} dependencies: @@ -3454,6 +2463,7 @@ packages: /@types/http-cache-semantics@4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + dev: true /@types/http-errors@2.0.4: resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} @@ -3463,18 +2473,13 @@ packages: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} dev: true - /@types/keyv@3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - dependencies: - '@types/node': 18.18.9 - /@types/mdast@3.0.15: resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} dependencies: '@types/unist': 2.0.10 - /@types/mdurl@1.0.5: - resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} + /@types/mdx@2.0.10: + resolution: {integrity: sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==} /@types/mime@1.3.5: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} @@ -3484,9 +2489,6 @@ packages: resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} dev: true - /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} @@ -3495,8 +2497,15 @@ packages: dependencies: undici-types: 5.26.5 + /@types/node@20.9.0: + resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} + dependencies: + undici-types: 5.26.5 + dev: true + /@types/prop-types@15.7.10: resolution: {integrity: sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==} + dev: true /@types/qs@6.9.10: resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} @@ -3516,16 +2525,13 @@ packages: resolution: {integrity: sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==} dependencies: '@types/prop-types': 15.7.10 - '@types/scheduler': 0.16.6 - csstype: 3.1.2 - - /@types/responselike@1.0.3: - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - dependencies: - '@types/node': 18.18.9 + '@types/scheduler': 0.16.6 + csstype: 3.1.2 + dev: true /@types/scheduler@0.16.6: resolution: {integrity: sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==} + dev: true /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -3789,6 +2795,15 @@ packages: /@vanilla-extract/private@1.0.3: resolution: {integrity: sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ==} + /@vavite/connect@3.0.0(vite@4.5.0): + resolution: {integrity: sha512-qTbxzuXlHiCHdeIa5PUaq3Xcj6mDAONZBzRCHY4NlHh0+9etG0Lb5yU2dwLdUvumqQaGKNljWMl5WCJ0pkOGEw==} + peerDependencies: + vite: ^2.8.1 || 3 || 4 + dependencies: + '@types/node': 20.9.0 + vite: 4.5.0(@types/node@18.18.9) + dev: true + /@vitejs/plugin-react@4.1.1(vite@4.5.0): resolution: {integrity: sha512-Jie2HERK+uh27e+ORXXwEP5h0Y2lS9T2PRGbfebiHGlwzDO0dEnd2aNtOR/qjBlPb1YgxwAONeblL1xqLikLag==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3870,7 +2885,6 @@ packages: /@zxing/text-encoding@0.9.0: resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} requiresBuild: true - dev: false optional: true /abbrev@1.1.1: @@ -3882,7 +2896,6 @@ packages: engines: {node: '>=6.5'} dependencies: event-target-shim: 5.0.1 - dev: false /accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} @@ -3901,6 +2914,7 @@ packages: /acorn-walk@8.3.0: resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} engines: {node: '>=0.4.0'} + dev: true /acorn@8.11.2: resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} @@ -3914,6 +2928,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true /agentkeepalive@4.5.0: resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} @@ -3939,12 +2954,6 @@ packages: resolution: {integrity: sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==} dev: false - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3952,7 +2961,6 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: true /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -3974,7 +2982,6 @@ packages: /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - dev: true /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -4028,6 +3035,7 @@ packages: /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + dev: true /array-uniq@1.0.3: resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} @@ -4051,18 +3059,6 @@ packages: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} - engines: {node: '>=4'} - dependencies: - tslib: 2.6.2 - - /ast-types@0.15.2: - resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==} - engines: {node: '>=4'} - dependencies: - tslib: 2.6.2 - /astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} hasBin: true @@ -4088,39 +3084,6 @@ packages: - debug dev: true - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.3): - resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.3): - resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) - core-js-compat: 3.33.2 - transitivePeerDependencies: - - supports-color - - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.3): - resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) - transitivePeerDependencies: - - supports-color - /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -4130,9 +3093,6 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - /bignumber.js@9.1.2: resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} dev: true @@ -4141,13 +3101,6 @@ packages: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - /bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - requiresBuild: true - dependencies: - file-uri-to-path: 1.0.0 - optional: true - /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -4193,6 +3146,7 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + dev: true /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} @@ -4243,7 +3197,6 @@ packages: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.5.4 - dev: true /bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} @@ -4272,31 +3225,6 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - /cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} - dependencies: - '@npmcli/fs': 1.1.1 - '@npmcli/move-file': 1.1.2 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 7.2.3 - infer-owner: 1.0.4 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 8.0.1 - tar: 6.2.0 - unique-filename: 1.1.1 - transitivePeerDependencies: - - bluebird - /cacache@16.1.3: resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -4339,11 +3267,6 @@ packages: ssri: 10.0.5 tar: 6.2.0 unique-filename: 3.0.0 - dev: true - - /cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} /cacheable-lookup@7.0.0: resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} @@ -4363,18 +3286,6 @@ packages: responselike: 3.0.0 dev: true - /cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: @@ -4390,6 +3301,9 @@ packages: /caniuse-lite@1.0.30001561: resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + /chai@4.3.10: resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} engines: {node: '>=4'} @@ -4435,9 +3349,6 @@ packages: /character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - /check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: @@ -4498,10 +3409,6 @@ packages: '@colors/colors': 1.5.0 dev: true - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -4510,11 +3417,6 @@ packages: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - /clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - dependencies: - mimic-response: 1.0.1 - /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -4579,6 +3481,7 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true /config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -4626,11 +3529,6 @@ packages: /cookie-signature@1.2.1: resolution: {integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==} engines: {node: '>=6.6.0'} - dev: false - - /cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} /cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} @@ -4643,11 +3541,6 @@ packages: is-what: 4.1.16 dev: false - /core-js-compat@3.33.2: - resolution: {integrity: sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==} - dependencies: - browserslist: 4.22.1 - /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -4705,15 +3598,6 @@ packages: resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} engines: {node: '>= 6'} - /deasync@0.1.29: - resolution: {integrity: sha512-EBtfUhVX23CE9GR6m+F8WPeImEE4hR/FW9RkK0PMl9V1t283s0elqsTD8EZjaKX28SY1BW2rYfCgNsAYdpamUw==} - engines: {node: '>=0.11.0'} - requiresBuild: true - dependencies: - bindings: 1.5.0 - node-addon-api: 1.7.2 - optional: true - /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -4745,6 +3629,7 @@ packages: engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 + dev: true /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} @@ -4758,9 +3643,6 @@ packages: engines: {node: '>=4.0.0'} dev: true - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /deep-object-diff@1.1.9: resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} @@ -4776,6 +3658,7 @@ packages: /defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} + dev: true /define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} @@ -4798,15 +3681,6 @@ packages: resolution: {integrity: sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==} dev: true - /degenerator@3.0.4: - resolution: {integrity: sha512-Z66uPeBfHZAHVmue3HPfyKu2Q0rC2cRxbTOsvmU/po5fvvcx27W4mIu9n0PUlQih4oUYvcG1BsbtVv8x7KDOSw==} - engines: {node: '>= 6'} - dependencies: - ast-types: 0.13.4 - escodegen: 1.14.3 - esprima: 4.0.1 - vm2: 3.9.19 - /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -4837,14 +3711,6 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - - /detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4859,6 +3725,7 @@ packages: engines: {node: '>=8'} dependencies: path-type: 4.0.0 + dev: true /dot-prop@6.0.1: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} @@ -4952,7 +3819,6 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true /echarts@5.4.3: resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==} @@ -4976,11 +3842,6 @@ packages: /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - - /emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} /encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} @@ -5011,7 +3872,6 @@ packages: /err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - dev: true /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -5071,6 +3931,9 @@ packages: which-typed-array: 1.1.13 dev: true + /es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + /es-set-tostringtag@2.0.2: resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} @@ -5089,6 +3952,17 @@ packages: is-symbol: 1.0.4 dev: true + /esbuild-plugins-node-modules-polyfill@1.6.1(esbuild@0.17.6): + resolution: {integrity: sha512-6sAwI24PV8W0zxeO+i4BS5zoQypS3SzEGwIdxpzpy65riRuK8apMw8PN0aKVLCTnLr0FgNIxUMRd9BsreBrtog==} + engines: {node: '>=14.0.0'} + peerDependencies: + esbuild: ^0.14.0 || ^0.15.0 || ^0.16.0 || ^0.17.0 || ^0.18.0 || ^0.19.0 + dependencies: + '@jspm/core': 2.0.1 + esbuild: 0.17.6 + local-pkg: 0.4.3 + resolve.exports: 2.0.2 + /esbuild-register@3.5.0(esbuild@0.17.19): resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} peerDependencies: @@ -5100,35 +3974,6 @@ packages: - supports-color dev: true - /esbuild@0.16.3: - resolution: {integrity: sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.16.3 - '@esbuild/android-arm64': 0.16.3 - '@esbuild/android-x64': 0.16.3 - '@esbuild/darwin-arm64': 0.16.3 - '@esbuild/darwin-x64': 0.16.3 - '@esbuild/freebsd-arm64': 0.16.3 - '@esbuild/freebsd-x64': 0.16.3 - '@esbuild/linux-arm': 0.16.3 - '@esbuild/linux-arm64': 0.16.3 - '@esbuild/linux-ia32': 0.16.3 - '@esbuild/linux-loong64': 0.16.3 - '@esbuild/linux-mips64el': 0.16.3 - '@esbuild/linux-ppc64': 0.16.3 - '@esbuild/linux-riscv64': 0.16.3 - '@esbuild/linux-s390x': 0.16.3 - '@esbuild/linux-x64': 0.16.3 - '@esbuild/netbsd-x64': 0.16.3 - '@esbuild/openbsd-x64': 0.16.3 - '@esbuild/sunos-x64': 0.16.3 - '@esbuild/win32-arm64': 0.16.3 - '@esbuild/win32-ia32': 0.16.3 - '@esbuild/win32-x64': 0.16.3 - /esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} @@ -5233,36 +4078,11 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - /escodegen@1.14.3: - resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} - engines: {node: '>=4.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 4.3.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 - /esm@3.2.25: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} engines: {node: '>=6'} dev: false - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - /estree-util-attach-comments@2.1.1: resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} dependencies: @@ -5281,6 +4101,13 @@ packages: /estree-util-is-identifier-name@2.1.0: resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} + /estree-util-to-js@1.2.0: + resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} + dependencies: + '@types/estree-jsx': 1.0.3 + astring: 1.8.6 + source-map: 0.7.4 + /estree-util-value-to-estree@1.3.0: resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==} engines: {node: '>=12.0.0'} @@ -5293,21 +4120,15 @@ packages: '@types/estree-jsx': 1.0.3 '@types/unist': 2.0.10 - /estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.5 - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - /etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} @@ -5322,7 +4143,6 @@ packages: /event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} - dev: false /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} @@ -5387,24 +4207,6 @@ packages: /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - - /fast-glob@3.2.11: - resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -5416,9 +4218,6 @@ packages: micromatch: 4.0.5 dev: true - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - /fast-memoize@2.5.2: resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} dev: true @@ -5434,27 +4233,13 @@ packages: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 + dev: true /fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} dependencies: format: 0.2.2 - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - - /file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - requiresBuild: true - optional: true - - /file-uri-to-path@2.0.0: - resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==} - engines: {node: '>= 6'} - /filename-reserved-regex@2.0.0: resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} engines: {node: '>=4'} @@ -5542,7 +4327,6 @@ packages: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - dev: true /form-data-encoder@2.1.4: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} @@ -5595,14 +4379,6 @@ packages: universalify: 2.0.1 dev: true - /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - /fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -5614,10 +4390,10 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.0.4 - dev: true /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} @@ -5634,13 +4410,6 @@ packages: requiresBuild: true optional: true - /ftp@0.3.10: - resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==} - engines: {node: '>=0.8.0'} - dependencies: - readable-stream: 1.1.14 - xregexp: 2.0.0 - /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -5717,12 +4486,6 @@ packages: engines: {node: '>=10'} dev: true - /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -5735,19 +4498,6 @@ packages: get-intrinsic: 1.2.2 dev: true - /get-uri@3.0.2: - resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 1.1.2 - data-uri-to-buffer: 3.0.1 - debug: 4.3.4 - file-uri-to-path: 2.0.0 - fs-extra: 8.1.0 - ftp: 0.3.10 - transitivePeerDependencies: - - supports-color - /getopts@2.3.0: resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} dev: false @@ -5766,18 +4516,12 @@ packages: globby: 6.1.0 dev: true - /git-hooks-list@1.0.3: - resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} - /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - /glob@10.3.10: resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} @@ -5788,7 +4532,6 @@ packages: minimatch: 9.0.3 minipass: 7.0.4 path-scurry: 1.10.1 - dev: true /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -5799,6 +4542,7 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -5829,19 +4573,6 @@ packages: define-properties: 1.2.1 dev: true - /globby@10.0.0: - resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==} - engines: {node: '>=8'} - dependencies: - '@types/glob': 7.2.0 - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.11 - glob: 7.2.3 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -5870,22 +4601,6 @@ packages: dependencies: get-intrinsic: 1.2.2 - /got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.3 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.4 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.1 - /got@12.6.1: resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} engines: {node: '>=14.16'} @@ -6036,7 +4751,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: lru-cache: 7.18.3 - dev: true /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -6044,6 +4758,7 @@ packages: /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: true /http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} @@ -6055,16 +4770,6 @@ packages: statuses: 2.0.1 toidentifier: 1.0.1 - /http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -6076,13 +4781,6 @@ packages: - supports-color dev: true - /http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - /http2-wrapper@2.2.1: resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} engines: {node: '>=10.19.0'} @@ -6099,6 +4797,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} @@ -6143,6 +4842,7 @@ packages: /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} + dev: true /import-lazy@4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} @@ -6159,12 +4859,14 @@ packages: /infer-owner@1.0.4: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + dev: true /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -6186,26 +4888,6 @@ packages: /inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - /inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - /internal-slot@1.0.6: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} @@ -6229,11 +4911,9 @@ packages: tslib: 2.6.2 dev: false - /ip@1.1.8: - resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} - /ip@2.0.0: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + dev: true /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -6254,7 +4934,6 @@ packages: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: false /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} @@ -6334,7 +5013,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: false /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} @@ -6396,10 +5074,6 @@ packages: engines: {node: '>=8'} dev: true - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - /is-plain-obj@3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} @@ -6479,9 +5153,6 @@ packages: engines: {node: '>=12'} dev: true - /isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -6532,7 +5203,6 @@ packages: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - dev: true /jaeger-client@3.19.0: resolution: {integrity: sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==} @@ -6570,10 +5240,6 @@ packages: resolution: {integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==} dev: false - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -6592,18 +5258,15 @@ packages: /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true /json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - /json-parse-even-better-errors@3.0.0: resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true /json-parse-helpfulerror@1.0.3: resolution: {integrity: sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==} @@ -6619,11 +5282,6 @@ packages: /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - optionalDependencies: - graceful-fs: 4.2.11 - /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -6644,6 +5302,7 @@ packages: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 + dev: true /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} @@ -6705,14 +5364,7 @@ packages: engines: {node: '>=14.16'} dependencies: package-json: 8.1.1 - dev: true - - /levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 + dev: true /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} @@ -6728,14 +5380,6 @@ packages: strip-bom: 3.0.0 dev: true - /loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 2.2.3 - /loader-utils@3.2.1: resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} engines: {node: '>= 12.13.0'} @@ -6743,7 +5387,6 @@ packages: /local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} - dev: true /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -6802,10 +5445,6 @@ packages: get-func-name: 2.0.2 dev: true - /lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - /lowercase-keys@3.0.0: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6816,7 +5455,6 @@ packages: engines: {node: 14 || >=16.14} dependencies: semver: 7.5.4 - dev: true /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -6838,11 +5476,6 @@ packages: engines: {node: '>=16.14'} dev: false - /magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - /magic-string@0.30.5: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} @@ -6959,24 +5592,32 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdx-jsx@1.2.0: - resolution: {integrity: sha512-5+ot/kfxYd3ChgEMwsMUO71oAfYjyRI3pADEK4I7xTmWLGQ8Y7ghm1CG36zUoUvDPxMlIYwQV/9DYHAUWdG4dA==} + /mdast-util-mdx-jsx@2.1.4: + resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} dependencies: - '@types/estree-jsx': 0.0.1 + '@types/estree-jsx': 1.0.3 + '@types/hast': 2.3.8 '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + ccount: 2.0.1 + mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 parse-entities: 4.0.1 stringify-entities: 4.0.3 unist-util-remove-position: 4.0.2 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 + transitivePeerDependencies: + - supports-color - /mdast-util-mdx@1.1.0: - resolution: {integrity: sha512-leKb9uG7laXdyFlTleYV4ZEaCpsxeU1LlkkR/xp35pgKrfV1Y0fNCuOw9vaRc2a9YDpH22wd145Wt7UY5yzeZw==} + /mdast-util-mdx@2.0.1: + resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} dependencies: + mdast-util-from-markdown: 1.3.1 mdast-util-mdx-expression: 1.3.2 - mdast-util-mdx-jsx: 1.2.0 + mdast-util-mdx-jsx: 2.1.4 mdast-util-mdxjs-esm: 1.3.1 + mdast-util-to-markdown: 1.5.0 transitivePeerDependencies: - supports-color @@ -6997,15 +5638,14 @@ packages: '@types/mdast': 3.0.15 unist-util-is: 5.2.1 - /mdast-util-to-hast@11.3.0: - resolution: {integrity: sha512-4o3Cli3hXPmm1LhB+6rqhfsIUBjnKFlIUZvudaermXB+4/KONdd/W4saWWkC+LBLbPMqhFSSTSRgafHsT5fVJw==} + /mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} dependencies: '@types/hast': 2.3.8 '@types/mdast': 3.0.15 - '@types/mdurl': 1.0.5 mdast-util-definitions: 5.1.2 - mdurl: 1.0.1 - unist-builder: 3.0.1 + micromark-util-sanitize-uri: 1.2.0 + trim-lines: 3.0.1 unist-util-generated: 2.0.1 unist-util-position: 4.0.4 unist-util-visit: 4.1.2 @@ -7031,9 +5671,6 @@ packages: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} dev: true - /mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} - /media-query-parser@2.0.2: resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} dependencies: @@ -7057,6 +5694,7 @@ packages: /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + dev: true /methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -7310,6 +5948,7 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 + dev: true /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -7330,13 +5969,10 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - /mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} + dev: true /mimic-response@4.0.0: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} @@ -7347,6 +5983,7 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: true /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} @@ -7367,7 +6004,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - dev: true /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -7439,7 +6075,6 @@ packages: /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} - dev: true /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -7489,9 +6124,6 @@ packages: /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - /mysql2@3.6.3: resolution: {integrity: sha512-qYd/1CDuW1KYZjD4tzg2O8YS3X/UWuGH8ZMHyMeggMTXL3yOdMisbwZ5SNkHzDGlZXKYLAvV8tMrEH+NUMz3fw==} engines: {node: '>= 8.0'} @@ -7522,19 +6154,10 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} - /netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} - engines: {node: '>= 0.4.0'} - /nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true - /node-addon-api@1.7.2: - resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} - requiresBuild: true - optional: true - /node-fetch-native@1.4.1: resolution: {integrity: sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==} @@ -7613,16 +6236,11 @@ packages: is-core-module: 2.13.1 semver: 7.5.4 validate-npm-package-license: 3.0.4 - dev: true /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - /normalize-url@8.0.0: resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} engines: {node: '>=14.16'} @@ -7682,12 +6300,10 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: semver: 7.5.4 - dev: true /npm-normalize-package-bin@3.0.1: resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true /npm-package-arg@10.1.0: resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} @@ -7697,7 +6313,6 @@ packages: proc-log: 3.0.0 semver: 7.5.4 validate-npm-package-name: 5.0.0 - dev: true /npm-packlist@7.0.4: resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} @@ -7714,7 +6329,6 @@ packages: npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 semver: 7.5.4 - dev: true /npm-registry-fetch@14.0.5: resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} @@ -7816,17 +6430,6 @@ packages: engines: {node: '>=0.10'} dev: false - /optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.5 - /ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} @@ -7841,17 +6444,9 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - /outdent@0.8.0: resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} - /p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - /p-cancelable@3.0.0: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} engines: {node: '>=12.20'} @@ -7901,30 +6496,6 @@ packages: engines: {node: '>=6'} dev: true - /pac-proxy-agent@5.0.0: - resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==} - engines: {node: '>= 8'} - dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.3.4 - get-uri: 3.0.2 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - pac-resolver: 5.0.1 - raw-body: 2.5.2 - socks-proxy-agent: 5.0.1 - transitivePeerDependencies: - - supports-color - - /pac-resolver@5.0.1: - resolution: {integrity: sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==} - engines: {node: '>= 8'} - dependencies: - degenerator: 3.0.4 - ip: 1.1.8 - netmask: 2.0.2 - /package-json@8.1.1: resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} @@ -7996,6 +6567,9 @@ packages: resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} engines: {node: '>=6'} + /parse-multipart-data@1.5.0: + resolution: {integrity: sha512-ck5zaMF0ydjGfejNMnlo5YU2oJ+pT+80Jb1y4ybanT27j+zbVP/jkYmCrUGsEln0Ox/hZmuvgy8Ra7AxbXP2Mw==} + /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -8007,6 +6581,7 @@ packages: /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} + dev: true /path-key@2.0.1: resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} @@ -8026,7 +6601,6 @@ packages: dependencies: lru-cache: 10.0.2 minipass: 7.0.4 - dev: true /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -8041,6 +6615,7 @@ packages: /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + dev: true /pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} @@ -8084,6 +6659,11 @@ packages: hasBin: true dev: true + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -8230,20 +6810,10 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 - /prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} - - /prettier@2.7.1: - resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} - engines: {node: '>=10.13.0'} - hasBin: true - /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true - dev: true /pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} @@ -8263,7 +6833,6 @@ packages: /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -8292,7 +6861,6 @@ packages: dependencies: err-code: 2.0.3 retry: 0.12.0 - dev: true /prompts-ncu@3.0.0: resolution: {integrity: sha512-qyz9UxZ5MlPKWVhWrCmSZ1ahm2GVYdjLb8og2sg0IPth1KRuhcggHGuijz0e41dkx35p1t1q3GRISGH7QGALFA==} @@ -8335,24 +6903,6 @@ packages: forwarded: 0.2.0 ipaddr.js: 1.9.1 - /proxy-agent@5.0.0: - resolution: {integrity: sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==} - engines: {node: '>= 8'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - lru-cache: 5.1.1 - pac-proxy-agent: 5.0.0 - proxy-from-env: 1.1.0 - socks-proxy-agent: 5.0.1 - transitivePeerDependencies: - - supports-color - - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - /pump@2.0.1: resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} dependencies: @@ -8392,10 +6942,12 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true /quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} + dev: true /range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} @@ -8410,15 +6962,6 @@ packages: iconv-lite: 0.4.24 unpipe: 1.0.0 - /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - /rc-config-loader@4.1.3: resolution: {integrity: sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==} dependencies: @@ -8458,19 +7001,6 @@ packages: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} - /react-router-dom@6.10.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@remix-run/router': 1.5.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router: 6.10.0(react@18.2.0) - dev: false - /react-router-dom@6.18.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Ubrue4+Ercc/BoDkFQfc6og5zRQ4A8YxSO3Knsne+eRbZ+IepAsK249XBH/XaFuOYOYr3L3r13CXTLvYt5JDjw==} engines: {node: '>=14.0.0'} @@ -8484,16 +7014,6 @@ packages: react-router: 6.18.0(react@18.2.0) dev: false - /react-router@6.10.0(react@18.2.0): - resolution: {integrity: sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - dependencies: - '@remix-run/router': 1.5.0 - react: 18.2.0 - dev: false - /react-router@6.18.0(react@18.2.0): resolution: {integrity: sha512-vk2y7Dsy8wI02eRRaRmOs9g2o+aE72YCx5q9VasT1N9v+lrdB79tIqrjMfByHiY5+6aYkH2rUa5X839nwWGPDg==} engines: {node: '>=14.0.0'} @@ -8537,14 +7057,6 @@ packages: path-type: 3.0.0 dev: true - /readable-stream@1.1.14: - resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 0.0.1 - string_decoder: 0.10.31 - /readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: @@ -8570,15 +7082,6 @@ packages: dependencies: picomatch: 2.3.1 - /recast@0.21.5: - resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} - engines: {node: '>= 4'} - dependencies: - ast-types: 0.15.2 - esprima: 4.0.1 - source-map: 0.6.1 - tslib: 2.6.2 - /rechoir@0.8.0: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} engines: {node: '>= 10.13.0'} @@ -8586,23 +7089,9 @@ packages: resolve: 1.22.8 dev: false - /regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - dependencies: - '@babel/runtime': 7.23.2 - /regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} @@ -8612,17 +7101,6 @@ packages: set-function-name: 2.0.1 dev: true - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - /registry-auth-token@5.0.2: resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} engines: {node: '>=14'} @@ -8637,12 +7115,6 @@ packages: rc: 1.2.8 dev: true - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - dependencies: - jsesc: 0.5.0 - /remark-frontmatter@4.0.1: resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} dependencies: @@ -8660,6 +7132,14 @@ packages: js-yaml: 4.1.0 toml: 3.0.0 + /remark-mdx@2.3.0: + resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==} + dependencies: + mdast-util-mdx: 2.0.1 + micromark-extension-mdxjs: 1.0.1 + transitivePeerDependencies: + - supports-color + /remark-parse@10.0.2: resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} dependencies: @@ -8669,12 +7149,12 @@ packages: transitivePeerDependencies: - supports-color - /remark-rehype@9.1.0: - resolution: {integrity: sha512-oLa6YmgAYg19zb0ZrBACh40hpBLteYROaPLhBXzLgjqyHQrN+gVP9N/FJvfzuNNuzCutktkroXEZBrxAxKhh7Q==} + /remark-rehype@10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} dependencies: '@types/hast': 2.3.8 '@types/mdast': 3.0.15 - mdast-util-to-hast: 11.3.0 + mdast-util-to-hast: 12.3.0 unified: 10.1.2 /remote-git-tags@3.0.0: @@ -8711,12 +7191,17 @@ packages: /resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + dev: true /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} dev: false + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -8725,11 +7210,6 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - dependencies: - lowercase-keys: 2.0.0 - /responselike@3.0.0: resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} engines: {node: '>=14.16'} @@ -8747,17 +7227,18 @@ packages: /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - dev: true /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.3 + dev: true /rimraf@5.0.5: resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} @@ -8767,24 +7248,6 @@ packages: glob: 10.3.10 dev: true - /rollup-plugin-inject@3.0.2: - resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. - dependencies: - estree-walker: 0.6.1 - magic-string: 0.25.9 - rollup-pluginutils: 2.8.2 - - /rollup-plugin-node-polyfills@0.2.1: - resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} - dependencies: - rollup-plugin-inject: 3.0.2 - - /rollup-pluginutils@2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - dependencies: - estree-walker: 0.6.1 - /rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -8792,19 +7255,11 @@ packages: optionalDependencies: fsevents: 2.3.3 - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.6.2 + dev: true /sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} @@ -8989,7 +7444,6 @@ packages: /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - dev: true /sigstore@1.9.0: resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} @@ -9021,20 +7475,12 @@ packages: /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + dev: true /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - - /socks-proxy-agent@5.0.1: - resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - socks: 2.7.1 - transitivePeerDependencies: - - supports-color + dev: true /socks-proxy-agent@7.0.0: resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} @@ -9053,20 +7499,7 @@ packages: dependencies: ip: 2.0.0 smart-buffer: 4.2.0 - - /sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - - /sort-package-json@1.57.0: - resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==} - hasBin: true - dependencies: - detect-indent: 6.1.0 - detect-newline: 3.1.0 - git-hooks-list: 1.0.3 - globby: 10.0.0 - is-plain-obj: 2.1.0 - sort-object-keys: 1.1.3 + dev: true /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} @@ -9086,10 +7519,6 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - /sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - /space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -9105,22 +7534,18 @@ packages: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.16 - dev: true /spdx-exceptions@2.3.0: resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.16 - dev: true /spdx-license-ids@3.0.16: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} - dev: true /sqlstring@2.3.3: resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} @@ -9132,13 +7557,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.0.4 - dev: true - - /ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 /ssri@9.0.1: resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} @@ -9164,7 +7582,6 @@ packages: /stream-slice@0.1.2: resolution: {integrity: sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==} - dev: false /string-hash@1.1.3: resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} @@ -9188,7 +7605,6 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - dev: true /string.prototype.padend@3.1.5: resolution: {integrity: sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==} @@ -9224,9 +7640,6 @@ packages: es-abstract: 1.22.3 dev: true - /string_decoder@0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} - /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -9254,7 +7667,6 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - dev: true /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} @@ -9382,9 +7794,6 @@ packages: readable-stream: 2.3.8 xtend: 4.0.2 - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - /tildify@2.0.0: resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} engines: {node: '>=8'} @@ -9404,12 +7813,6 @@ packages: engines: {node: '>=14.0.0'} dev: true - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -9435,6 +7838,9 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + /trim-repeated@1.0.0: resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} engines: {node: '>=0.10.0'} @@ -9459,6 +7865,7 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false /tuf-js@1.1.7: resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} @@ -9471,21 +7878,11 @@ packages: - supports-color dev: true - /type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} dev: true - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - /type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} @@ -9576,24 +7973,11 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + /undici@5.27.2: + resolution: {integrity: sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==} + engines: {node: '>=14.0'} dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} + '@fastify/busboy': 2.0.0 /unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} @@ -9606,11 +7990,6 @@ packages: trough: 2.1.0 vfile: 5.3.7 - /unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} - dependencies: - unique-slug: 2.0.2 - /unique-filename@2.0.1: resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -9623,12 +8002,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: unique-slug: 4.0.0 - dev: true - - /unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} - dependencies: - imurmurhash: 0.1.4 /unique-slug@3.0.0: resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} @@ -9642,7 +8015,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 - dev: true /unique-string@3.0.0: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} @@ -9651,11 +8023,6 @@ packages: crypto-random-string: 4.0.0 dev: true - /unist-builder@3.0.1: - resolution: {integrity: sha512-gnpOw7DIpCA0vpr6NqdPvTWnlPTApCTRzr+38E6hCWx3rz/cjo83SsKIlS1Z+L5ttScQ2AwutNnb8+tAvpb6qQ==} - dependencies: - '@types/unist': 2.0.10 - /unist-util-generated@2.0.1: resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} @@ -9698,10 +8065,6 @@ packages: unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 - /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -9804,7 +8167,6 @@ packages: is-generator-function: 1.0.10 is-typed-array: 1.1.12 which-typed-array: 1.1.13 - dev: false /utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} @@ -9839,14 +8201,12 @@ packages: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - dev: true /validate-npm-package-name@5.0.0: resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: builtins: 5.0.1 - dev: true /vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} @@ -10012,15 +8372,6 @@ packages: - terser dev: true - /vm2@3.9.19: - resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==} - engines: {node: '>=6.0'} - deprecated: The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm. - hasBin: true - dependencies: - acorn: 8.11.2 - acorn-walk: 8.3.0 - /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: @@ -10032,12 +8383,10 @@ packages: util: 0.12.5 optionalDependencies: '@zxing/text-encoding': 0.9.0 - dev: false /web-streams-polyfill@3.2.1: resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} engines: {node: '>= 8'} - dev: false /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -10105,7 +8454,6 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true /why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} @@ -10129,18 +8477,6 @@ packages: string-width: 5.1.2 dev: true - /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -10156,7 +8492,6 @@ packages: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - dev: true /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -10187,42 +8522,10 @@ packages: engines: {node: '>=12'} dev: true - /xdm@2.1.0: - resolution: {integrity: sha512-3LxxbxKcRogYY7cQSMy1tUuU1zKNK9YPqMT7/S0r7Cz2QpyF8O9yFySGD7caOZt+LWUOQioOIX+6ZzCoBCpcAA==} - dependencies: - '@rollup/pluginutils': 4.2.1 - '@types/estree-jsx': 0.0.1 - astring: 1.8.6 - estree-util-build-jsx: 2.2.2 - estree-util-is-identifier-name: 2.1.0 - estree-walker: 3.0.3 - got: 11.8.6 - hast-util-to-estree: 2.3.3 - loader-utils: 2.0.4 - markdown-extensions: 1.1.1 - mdast-util-mdx: 1.1.0 - micromark-extension-mdxjs: 1.0.1 - periscopic: 3.1.0 - remark-parse: 10.0.2 - remark-rehype: 9.1.0 - source-map: 0.7.4 - unified: 10.1.2 - unist-util-position-from-estree: 1.1.2 - unist-util-stringify-position: 3.0.3 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - optionalDependencies: - deasync: 0.1.29 - transitivePeerDependencies: - - supports-color - /xorshift@1.2.0: resolution: {integrity: sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==} dev: false - /xregexp@2.0.0: - resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} - /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} diff --git a/tsconfig.json b/tsconfig.json index 8692107ee8..e1ef2fd479 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,10 +8,10 @@ "checkJs": false, "noEmit": true, "moduleResolution": "Node", - "module": "CommonJS", - "target": "ES2021", - "lib": ["ES2021", "DOM"], - "types": [], + "module": "ESNext", + "target": "ESNext", + "lib": ["ESNext", "DOM"], + "types": ["vite/client"], "jsx": "react-jsx" } } diff --git a/vite.config.ts b/vite.config.ts index cfdbec4edd..a8c292af08 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,14 +1,25 @@ -import { themeScriptPlugin } from "@hiogawa/theme-script/dist/vite"; -import react from "@vitejs/plugin-react"; +import { importDevServerPlugin } from "@hiogawa/vite-import-dev-server"; +import { unstable_vitePlugin as remix } from "@remix-run/dev"; +import { createRoutesFromFolders } from "@remix-run/v1-route-convention"; +import { vaviteConnect } from "@vavite/connect"; import unocss from "unocss/vite"; import { defineConfig } from "vite"; export default defineConfig({ plugins: [ unocss(), - react(), - themeScriptPlugin({ storageKey: "ytsub:theme" }), + importDevServerPlugin(), + vaviteConnect({ + standalone: false, + serveClientAssetsInDev: true, + handlerEntry: "./app/misc/entry-express.ts", + }), + remix({ + routes: (defineRoutes) => + createRoutesFromFolders(defineRoutes, { + ignoredFilePatterns: ["**/*.test.*"], + }) as any, + }), ], clearScreen: false, - publicDir: false, }); From 60052025b0e135ff6349c46c2dda176a5b0fcbb5 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 10:42:22 +0900 Subject: [PATCH 02/72] fix: workaround uno.css infinite update --- app/entry.client.tsx | 1 - app/root.tsx | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/app/entry.client.tsx b/app/entry.client.tsx index 85a7faf058..ef73989176 100644 --- a/app/entry.client.tsx +++ b/app/entry.client.tsx @@ -1,4 +1,3 @@ -import "virtual:uno.css"; import { tinyassert } from "@hiogawa/utils"; import { RemixBrowser } from "@remix-run/react"; import { hydrateRoot } from "react-dom/client"; diff --git a/app/root.tsx b/app/root.tsx index 7e7aaf8584..beb397fed0 100644 --- a/app/root.tsx +++ b/app/root.tsx @@ -1,3 +1,4 @@ +import "virtual:uno.css"; import { FloatingTree } from "@floating-ui/react"; import { useTinyForm } from "@hiogawa/tiny-form/dist/react"; import { useTinyProgress } from "@hiogawa/tiny-progress/dist/react"; From 048925e4d73f33113f075f16aab44c1478b5741d Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 10:44:27 +0900 Subject: [PATCH 03/72] fix: workaround "handle" skip HMR --- ...ix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch | 13 +++++++++++-- pnpm-lock.yaml | 8 ++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch b/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch index 7068c9592b..c8c2808f6c 100644 --- a/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch +++ b/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch @@ -1,5 +1,5 @@ diff --git a/dist/vite/plugin.js b/dist/vite/plugin.js -index 4d7d30ef9079e2acf0b9317a9b8245467f232149..577b1df11f5a1496c618d85fb25b7dc8579bae12 100644 +index 4d7d30ef9079e2acf0b9317a9b8245467f232149..78f11127fb72dc1ef0bd6fd5453ab4b934228cac 100644 --- a/dist/vite/plugin.js +++ b/dist/vite/plugin.js @@ -23,7 +23,7 @@ var pick = require('lodash/pick'); @@ -10,4 +10,13 @@ index 4d7d30ef9079e2acf0b9317a9b8245467f232149..577b1df11f5a1496c618d85fb25b7dc8 +// var adapter = require('./node/adapter.js'); var styles = require('./styles.js'); var vmod = require('./vmod.js'); - var removeExports = require('./remove-exports.js'); \ No newline at end of file + var removeExports = require('./remove-exports.js'); +@@ -704,7 +704,7 @@ const remixVitePlugin = (options = {}) => { + }; + function addRefreshWrapper(pluginConfig, code, id) { + let isRoute = getRoute(pluginConfig, id); +- let acceptExports = isRoute ? ["meta", "links", "shouldRevalidate"] : []; ++ let acceptExports = isRoute ? ["meta", "links", "shouldRevalidate", "handle"] : []; + return REACT_REFRESH_HEADER.replace("__SOURCE__", JSON.stringify(id)) + code + REACT_REFRESH_FOOTER.replace("__SOURCE__", JSON.stringify(id)).replace("__ACCEPT_EXPORTS__", JSON.stringify(acceptExports)); + } + const REACT_REFRESH_HEADER = ` \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index de3b461b3e..c521c11f9b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ patchedDependencies: hash: opznjwpbsym5sugb4owpkabxrq path: patches/@opentelemetry__sdk-node@0.39.1.patch '@remix-run/dev@0.0.0-nightly-bf2feb9-20231111': - hash: atxaral2ohmomrcvz2mcbc433m + hash: u3we46khw2a2bzuz56c5dl3wjm path: patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch dependencies: @@ -155,7 +155,7 @@ devDependencies: version: 1.39.0 '@remix-run/dev': specifier: 0.0.0-nightly-bf2feb9-20231111 - version: 0.0.0-nightly-bf2feb9-20231111(patch_hash=atxaral2ohmomrcvz2mcbc433m)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) + version: 0.0.0-nightly-bf2feb9-20231111(patch_hash=u3we46khw2a2bzuz56c5dl3wjm)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) '@tsconfig/strictest': specifier: ^2.0.2 version: 2.0.2 @@ -2031,7 +2031,7 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: false - /@remix-run/dev@0.0.0-nightly-bf2feb9-20231111(patch_hash=atxaral2ohmomrcvz2mcbc433m)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0): + /@remix-run/dev@0.0.0-nightly-bf2feb9-20231111(patch_hash=u3we46khw2a2bzuz56c5dl3wjm)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0): resolution: {integrity: sha512-gweHjZur8cMVfGMl2Ek51lkll/NGVJlWcDHkTg20rQ9PDzSqQQJYsUsVAcVu23xW2YkTN0BeGVILWbmPPC7/DQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -2185,7 +2185,7 @@ packages: peerDependencies: '@remix-run/dev': ^1.15.0 || ^2.0.0 dependencies: - '@remix-run/dev': 0.0.0-nightly-bf2feb9-20231111(patch_hash=atxaral2ohmomrcvz2mcbc433m)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) + '@remix-run/dev': 0.0.0-nightly-bf2feb9-20231111(patch_hash=u3we46khw2a2bzuz56c5dl3wjm)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) minimatch: 7.4.6 dev: false From 8883f0eae8bbd251901bbfc24733393b1d0ac66d Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 10:53:09 +0900 Subject: [PATCH 04/72] chore: tweak script --- package.json | 9 +++------ vite.config.ts | 3 +++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 136d1933ab..68d5fe22d9 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,8 @@ { "scripts": { - "dev2": "vite", - "dev": "pnpm dev-pre && run-p dev:*", - "dev-pre": "pnpm build:css", - "dev-e2e": "export NODE_ENV=test && pnpm dev-pre && PORT=3001 pnpm dev:remix", - "dev-ui": "vite --host", - "dev:remix": "NODE_OPTIONS='--enable-source-maps' remix dev", + "dev": "run-p dev:*", + "dev:remix": "vite dev", + "dev-e2e": "export NODE_ENV=test && PORT=3001 pnpm dev:remix", "dev-coverage:remix": "c8 -o coverage/e2e-server -r text -r html --exclude build --exclude-after-remap node_modules/.bin/remix dev", "tsc": "tsc -b", "dev:tsc": "pnpm tsc --watch --preserveWatchOutput", diff --git a/vite.config.ts b/vite.config.ts index a8c292af08..794ec0e71c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -22,4 +22,7 @@ export default defineConfig({ }), ], clearScreen: false, + server: { + port: Number(process.env.PORT ?? "3000"), + }, }); From 2d23d28ce5a4462416e3f8feab3181c97f9b022e Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 10:59:53 +0900 Subject: [PATCH 05/72] fix: fix FOUC --- app/entry.server.tsx | 4 ++-- app/server/document.tsx | 14 +++++++++++++- package.json | 2 -- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/entry.server.tsx b/app/entry.server.tsx index 8fcd8a6e5a..6587267ffc 100644 --- a/app/entry.server.tsx +++ b/app/entry.server.tsx @@ -4,7 +4,7 @@ import { renderToString } from "react-dom/server"; import { renderToDocument } from "./server/document"; import { wrapTraceAsyncSimple } from "./utils/opentelemetry-utils"; -const handleDocumentRequest: HandleDocumentRequestFunction = ( +const handleDocumentRequest: HandleDocumentRequestFunction = async ( request, responseStatusCode, responseHeaders, @@ -14,7 +14,7 @@ const handleDocumentRequest: HandleDocumentRequestFunction = ( const ssrHtml = renderToString( ); - const documentHtml = renderToDocument(ssrHtml); + const documentHtml = await renderToDocument(ssrHtml); responseHeaders.set("content-type", "text/html"); return new Response(documentHtml, { status: responseStatusCode, diff --git a/app/server/document.tsx b/app/server/document.tsx index 7a3bc3c1a7..bdc5acc1e0 100644 --- a/app/server/document.tsx +++ b/app/server/document.tsx @@ -1,10 +1,21 @@ import { generateThemeScript } from "@hiogawa/theme-script"; +import { tinyassert } from "@hiogawa/utils"; +import { viteDevServer } from "@hiogawa/vite-import-dev-server/runtime"; import { injectPublicConfigScript, publicConfig } from "../utils/config-public"; // since we don't currently use remix's or convention, // we can render static document html only on server, which is probably common ssr practice. -export function renderToDocument(ssrHtml: string) { +export async function renderToDocument(ssrHtml: string) { + // inject CSS to prevent FOUC during dev + // since vite/unocss will inject css on client via javascript + let style = ""; + if (import.meta.env.DEV) { + tinyassert(viteDevServer); + const unocss = await viteDevServer.ssrLoadModule("virtual:uno.css"); + style = ``; + } + // syntax highlight by https://github.com/mjbvz/vscode-comment-tagged-templates/ return /* html */ ` @@ -31,6 +42,7 @@ export function renderToDocument(ssrHtml: string) { height: 100%; } + ${style} ${generateThemeScript({ storageKey: "ytsub:theme" })} ${injectPublicConfigScript()} diff --git a/package.json b/package.json index 68d5fe22d9..4b97bfc849 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,6 @@ "dev-coverage:remix": "c8 -o coverage/e2e-server -r text -r html --exclude build --exclude-after-remap node_modules/.bin/remix dev", "tsc": "tsc -b", "dev:tsc": "pnpm tsc --watch --preserveWatchOutput", - "build:css": "unocss 'app/**/*.tsx' --out-file ./build/css/index.css", - "dev:css": "pnpm build:css --watch", "lint": "run-s lint:*", "lint-check": "run-s lint-check:*", "lint:isort": "pnpm lint-check:isort --fix", From 49bc14aa33a35f5c4067ed65d87d39ce0cbf8d82 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 11:01:46 +0900 Subject: [PATCH 06/72] chore: comment --- app/server/document.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/server/document.tsx b/app/server/document.tsx index bdc5acc1e0..082f45b0ac 100644 --- a/app/server/document.tsx +++ b/app/server/document.tsx @@ -7,8 +7,10 @@ import { injectPublicConfigScript, publicConfig } from "../utils/config-public"; // we can render static document html only on server, which is probably common ssr practice. export async function renderToDocument(ssrHtml: string) { - // inject CSS to prevent FOUC during dev - // since vite/unocss will inject css on client via javascript + // inject CSS to quickly workaround FOUC during dev + // since vite/unocss will inject css on client via javascript later. + // this would essentially create a duplicate style, + // but that's not usually a problem for utility-class based styling. let style = ""; if (import.meta.env.DEV) { tinyassert(viteDevServer); From 5ee678f37508eebc713f7223d2a10f82e2841600 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 11:10:45 +0900 Subject: [PATCH 07/72] chore: disable remix plugin on vitest --- vite.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vite.config.ts b/vite.config.ts index 794ec0e71c..7b79bd9f8f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -14,7 +14,7 @@ export default defineConfig({ serveClientAssetsInDev: true, handlerEntry: "./app/misc/entry-express.ts", }), - remix({ + !process.env.VITEST && remix({ routes: (defineRoutes) => createRoutesFromFolders(defineRoutes, { ignoredFilePatterns: ["**/*.test.*"], From 5b7802d723902967ecbcaffac89f894e2870abd9 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 11:14:07 +0900 Subject: [PATCH 08/72] chore: workaround knexfile dirname --- app/db/knexfile.server.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/db/knexfile.server.ts b/app/db/knexfile.server.ts index 17085ce214..bbff557d0a 100644 --- a/app/db/knexfile.server.ts +++ b/app/db/knexfile.server.ts @@ -3,7 +3,7 @@ import { fileURLToPath } from "node:url"; import type { Knex } from "knex"; import { initializeConfigServer, serverConfig } from "../utils/config"; -const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const dirname = path.dirname(fileURLToPath(import.meta.url)); export default function knexfile() { initializeConfigServer(); @@ -21,8 +21,8 @@ export default function knexfile() { timezone: "+00:00", // planetscale and development mysql image have UTC localtime }, migrations: { - directory: path.join(__dirname, "migrations"), - stub: path.join(__dirname, "__migration-stub.ts"), + directory: path.join(dirname, "migrations"), + stub: path.join(dirname, "__migration-stub.ts"), }, } satisfies Knex.Config; } From c865b95c82391a0f90d549141b6026c7dcbc3c0a Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 11:38:15 +0900 Subject: [PATCH 09/72] chore: update build script --- .gitignore | 1 + misc/vercel/build.sh | 29 +++++++++++++++-------------- package.json | 4 +++- vite.config.ts | 4 +++- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index a9ea4fcc40..f107f51cd5 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /.env.production.sh /coverage /test-results +dist diff --git a/misc/vercel/build.sh b/misc/vercel/build.sh index 03a0c8a1cb..3f94f96940 100644 --- a/misc/vercel/build.sh +++ b/misc/vercel/build.sh @@ -17,28 +17,29 @@ set -eu -o pipefail # index.js = (remix-outdir)/server/index.js # +this_dir="$(dirname "${BASH_SOURCE[0]}")" + # cleanup -rm -rf build/remix/production -rm -rf build/css rm -rf .vercel/output -mkdir -p .vercel/output/functions/index.func +mkdir -p .vercel/output -# css -pnpm build:css +mkdir -p .vercel/output/functions/index.func -# remix build with custom server entry -NODE_ENV=production BUILD_VERCEL=1 npx remix build +# serverless +mkdir -p .vercel/output/functions/index.func +cp "$this_dir/.vc-config.json" .vercel/output/functions/index.func/.vc-config.json +npx esbuild dist/server/index.js \ + --outfile=.vercel/output/functions/index.func/index.js \ + --metafile=dist/server/esbuild-metafile.json \ + --bundle --minify --format=esm --platform=node \ + --external:node:async_hooks # config.json -cp misc/vercel/config.json .vercel/output/config.json +cp "$this_dir/config.json" .vercel/output/config.json # static -cp -r ./build/remix/production/public .vercel/output/static -cp ./public/* .vercel/output/static - -# serverless -cp build/remix/production/server/index.js .vercel/output/functions/index.func -cp misc/vercel/.vc-config.json .vercel/output/functions/index.func/.vc-config.json +mkdir -p .vercel/output/static +cp -r dist/client/assets .vercel/output/static/assets # output server size echo "* Serverless files" diff --git a/package.json b/package.json index 4b97bfc849..de66fdea7c 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,9 @@ "test-coverage": "NODE_ENV=test vitest --run --coverage", "test-e2e": "NODE_ENV=test playwright test", "test-e2e-coverage": "bash scripts/test-e2e-coverage.sh", - "build": "bash misc/vercel/build.sh", + "build": "pnpm run --seq /^build:/", + "build:vite": "vite build && vite build --ssr", + "build:vercel": "bash misc/vercel/build.sh", "release": "vercel deploy --prebuilt .", "release-production": "vercel deploy --prebuilt . --prod", "cli": "node --require esbuild-register app/misc/cli.ts", diff --git a/vite.config.ts b/vite.config.ts index 7b79bd9f8f..9edbe26adf 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -6,6 +6,7 @@ import unocss from "unocss/vite"; import { defineConfig } from "vite"; export default defineConfig({ + clearScreen: false, plugins: [ unocss(), importDevServerPlugin(), @@ -15,13 +16,14 @@ export default defineConfig({ handlerEntry: "./app/misc/entry-express.ts", }), !process.env.VITEST && remix({ + serverBuildPath: `dist/server/index.js`, + assetsBuildDirectory: `dist/client`, routes: (defineRoutes) => createRoutesFromFolders(defineRoutes, { ignoredFilePatterns: ["**/*.test.*"], }) as any, }), ], - clearScreen: false, server: { port: Number(process.env.PORT ?? "3000"), }, From ceaf48a6517ba4b5824636c62b09589c2bffd071 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 11:52:55 +0900 Subject: [PATCH 10/72] fix: more build workaround --- .prettierignore | 1 + app/db/knexfile.server.ts | 6 +++-- misc/vercel/build.sh | 2 +- package.json | 2 ++ vite.config.ts | 48 ++++++++++++++++++++++++++++++--------- 5 files changed, 45 insertions(+), 14 deletions(-) diff --git a/.prettierignore b/.prettierignore index 2a679b736b..1f95c167f4 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,3 +8,4 @@ /misc/ytsub-v2/data-v2.json /coverage .vercel +dist diff --git a/app/db/knexfile.server.ts b/app/db/knexfile.server.ts index bbff557d0a..3e57a7d161 100644 --- a/app/db/knexfile.server.ts +++ b/app/db/knexfile.server.ts @@ -3,11 +3,13 @@ import { fileURLToPath } from "node:url"; import type { Knex } from "knex"; import { initializeConfigServer, serverConfig } from "../utils/config"; -const dirname = path.dirname(fileURLToPath(import.meta.url)); - export default function knexfile() { initializeConfigServer(); + // this is used only locally + // so having import.meta.url is okay even if we deploy cjs app on vercel + const dirname = path.dirname(fileURLToPath(import.meta.url)); + return { client: "mysql2", connection: { diff --git a/misc/vercel/build.sh b/misc/vercel/build.sh index 3f94f96940..f83284c7ef 100644 --- a/misc/vercel/build.sh +++ b/misc/vercel/build.sh @@ -31,7 +31,7 @@ cp "$this_dir/.vc-config.json" .vercel/output/functions/index.func/.vc-config.js npx esbuild dist/server/index.js \ --outfile=.vercel/output/functions/index.func/index.js \ --metafile=dist/server/esbuild-metafile.json \ - --bundle --minify --format=esm --platform=node \ + --bundle --format=cjs --platform=node \ --external:node:async_hooks # config.json diff --git a/package.json b/package.json index de66fdea7c..5450bde378 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,6 @@ { + "name": "@hiogawa/ytsub", + "private": true, "scripts": { "dev": "run-p dev:*", "dev:remix": "vite dev", diff --git a/vite.config.ts b/vite.config.ts index 9edbe26adf..78682019d4 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,26 +5,52 @@ import { vaviteConnect } from "@vavite/connect"; import unocss from "unocss/vite"; import { defineConfig } from "vite"; -export default defineConfig({ +export default defineConfig((env) => ({ clearScreen: false, plugins: [ unocss(), - importDevServerPlugin(), + + // need to workaround remix's double plugin loading issue + // https://github.com/remix-run/remix/pull/7911 + // https://github.com/hi-ogawa/vite-plugins/issues/112 + env.command === "serve" && importDevServerPlugin(), + + // run our own middleware via vavite before remix vaviteConnect({ standalone: false, serveClientAssetsInDev: true, handlerEntry: "./app/misc/entry-express.ts", }), - !process.env.VITEST && remix({ - serverBuildPath: `dist/server/index.js`, - assetsBuildDirectory: `dist/client`, - routes: (defineRoutes) => - createRoutesFromFolders(defineRoutes, { - ignoredFilePatterns: ["**/*.test.*"], - }) as any, - }), + + // skip remix on vitest + !process.env.VITEST && + remix({ + serverBuildPath: `dist/server/index.js`, + assetsBuildDirectory: `dist/client`, + routes: (defineRoutes) => + createRoutesFromFolders(defineRoutes, { + ignoredFilePatterns: ["**/*.test.*"], + }) as any, + }), + + // since remix overwrites ssr build output of vavite, + // we overwrite it back with extra plugin. + { + name: "overwrite-remix-server-entry", + config(config, env) { + if (env.command === "build" && config.build?.ssr) { + return { + build: { + rollupOptions: { + input: "./app/misc/entry-express.ts", + }, + }, + }; + } + }, + }, ], server: { port: Number(process.env.PORT ?? "3000"), }, -}); +})); From c3563698f42bb6a109bf08407f37f9eccfc38e62 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 12:38:26 +0900 Subject: [PATCH 11/72] chore: workaround cjs --- app/db/knexfile.server.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/db/knexfile.server.ts b/app/db/knexfile.server.ts index 3e57a7d161..193b8edc56 100644 --- a/app/db/knexfile.server.ts +++ b/app/db/knexfile.server.ts @@ -6,9 +6,12 @@ import { initializeConfigServer, serverConfig } from "../utils/config"; export default function knexfile() { initializeConfigServer(); - // this is used only locally + // "migrations" is only for local cli // so having import.meta.url is okay even if we deploy cjs app on vercel - const dirname = path.dirname(fileURLToPath(import.meta.url)); + // TODO: refactor later + const dirname = import.meta.url + ? path.dirname(fileURLToPath(import.meta.url)) + : ""; return { client: "mysql2", From 2371adf40eb59bd2bacdaaa6210b6199d3746837 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 13:07:38 +0900 Subject: [PATCH 12/72] chore: struggle assets dir (wip) --- misc/vercel/build.sh | 4 ++-- vite.config.ts | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/misc/vercel/build.sh b/misc/vercel/build.sh index f83284c7ef..f23d30837d 100644 --- a/misc/vercel/build.sh +++ b/misc/vercel/build.sh @@ -38,8 +38,8 @@ npx esbuild dist/server/index.js \ cp "$this_dir/config.json" .vercel/output/config.json # static -mkdir -p .vercel/output/static -cp -r dist/client/assets .vercel/output/static/assets +cp -r dist/client .vercel/output/static +cp ./public/* .vercel/output/static # output server size echo "* Serverless files" diff --git a/vite.config.ts b/vite.config.ts index 78682019d4..1135d7748b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -26,7 +26,7 @@ export default defineConfig((env) => ({ !process.env.VITEST && remix({ serverBuildPath: `dist/server/index.js`, - assetsBuildDirectory: `dist/client`, + assetsBuildDirectory: `dist/client/build`, routes: (defineRoutes) => createRoutesFromFolders(defineRoutes, { ignoredFilePatterns: ["**/*.test.*"], @@ -53,4 +53,7 @@ export default defineConfig((env) => ({ server: { port: Number(process.env.PORT ?? "3000"), }, + // we manually copy it like before + // (also remix's default public directory treatment might be a bit off?) + publicDir: env.command === "build" ? false : undefined })); From a16bfb2a91c2ed5b730054acc05aaf9f4c4f727f Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 13:10:59 +0900 Subject: [PATCH 13/72] chore: lint --- vite.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vite.config.ts b/vite.config.ts index 1135d7748b..6bfe7f5243 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -55,5 +55,5 @@ export default defineConfig((env) => ({ }, // we manually copy it like before // (also remix's default public directory treatment might be a bit off?) - publicDir: env.command === "build" ? false : undefined + publicDir: env.command === "build" ? false : undefined, })); From 1fab0df2d07a31b314133b66be19e784403fb537 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 13:15:04 +0900 Subject: [PATCH 14/72] chore: disable coverage for e2e temporary --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dab24da6fb..863036ab50 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,7 +62,9 @@ jobs: - if: steps.cache-playwright.outputs.cache-hit != 'true' run: npx playwright install --with-deps - run: make docker/up db/reset/test db/seed-download - - run: pnpm test-e2e-coverage --retries=3 + # TODO: fix coverage + # - run: pnpm test-e2e-coverage --retries=3 + - run: pnpm test-e2e --retries=3 - run: rm -rf coverage/e2e-client/tmp coverage/e2e-server/tmp - uses: actions/upload-artifact@v3 with: From 7cfcd10374a585c6ac77af8a2811ebe7017070fd Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 14:27:16 +0900 Subject: [PATCH 15/72] fix: inject css manually for prod --- app/entry.server.tsx | 21 ++++++++++++++++++++- app/server/document.tsx | 15 +-------------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/app/entry.server.tsx b/app/entry.server.tsx index 6587267ffc..9c26fa5963 100644 --- a/app/entry.server.tsx +++ b/app/entry.server.tsx @@ -3,6 +3,8 @@ import type { HandleDocumentRequestFunction } from "@remix-run/server-runtime"; import { renderToString } from "react-dom/server"; import { renderToDocument } from "./server/document"; import { wrapTraceAsyncSimple } from "./utils/opentelemetry-utils"; +import { tinyassert } from "@hiogawa/utils"; +import { viteDevServer } from "@hiogawa/vite-import-dev-server/runtime"; const handleDocumentRequest: HandleDocumentRequestFunction = async ( request, @@ -14,7 +16,24 @@ const handleDocumentRequest: HandleDocumentRequestFunction = async ( const ssrHtml = renderToString( ); - const documentHtml = await renderToDocument(ssrHtml); + + let style: string + if (import.meta.env.DEV) { + // inject CSS to quickly workaround FOUC during dev + // since vite/unocss will inject css on client via javascript later. + // this would essentially create a duplicate style, + // but that's not usually a problem for utility-class based styling. + tinyassert(viteDevServer); + const unocss = await viteDevServer.ssrLoadModule("virtual:uno.css"); + style = ``; + } else { + // since we don't use , we have to inject unocss output manually. + const root = remixContext.manifest.routes["root"]; + tinyassert(root && root.css && root.css[0]); + style = ``; + } + + const documentHtml = await renderToDocument(ssrHtml, style); responseHeaders.set("content-type", "text/html"); return new Response(documentHtml, { status: responseStatusCode, diff --git a/app/server/document.tsx b/app/server/document.tsx index 082f45b0ac..2053b1edeb 100644 --- a/app/server/document.tsx +++ b/app/server/document.tsx @@ -1,23 +1,10 @@ import { generateThemeScript } from "@hiogawa/theme-script"; -import { tinyassert } from "@hiogawa/utils"; -import { viteDevServer } from "@hiogawa/vite-import-dev-server/runtime"; import { injectPublicConfigScript, publicConfig } from "../utils/config-public"; // since we don't currently use remix's or convention, // we can render static document html only on server, which is probably common ssr practice. -export async function renderToDocument(ssrHtml: string) { - // inject CSS to quickly workaround FOUC during dev - // since vite/unocss will inject css on client via javascript later. - // this would essentially create a duplicate style, - // but that's not usually a problem for utility-class based styling. - let style = ""; - if (import.meta.env.DEV) { - tinyassert(viteDevServer); - const unocss = await viteDevServer.ssrLoadModule("virtual:uno.css"); - style = ``; - } - +export async function renderToDocument(ssrHtml: string, style: string) { // syntax highlight by https://github.com/mjbvz/vscode-comment-tagged-templates/ return /* html */ ` From 20cff612656cbd0d3d7601a698c1f26010f58bed Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 14:31:32 +0900 Subject: [PATCH 16/72] refactor: simplify knexfile --- app/db/knexfile.server.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/app/db/knexfile.server.ts b/app/db/knexfile.server.ts index 193b8edc56..05882a8501 100644 --- a/app/db/knexfile.server.ts +++ b/app/db/knexfile.server.ts @@ -1,18 +1,9 @@ -import path from "node:path"; -import { fileURLToPath } from "node:url"; import type { Knex } from "knex"; import { initializeConfigServer, serverConfig } from "../utils/config"; export default function knexfile() { initializeConfigServer(); - // "migrations" is only for local cli - // so having import.meta.url is okay even if we deploy cjs app on vercel - // TODO: refactor later - const dirname = import.meta.url - ? path.dirname(fileURLToPath(import.meta.url)) - : ""; - return { client: "mysql2", connection: { @@ -26,8 +17,8 @@ export default function knexfile() { timezone: "+00:00", // planetscale and development mysql image have UTC localtime }, migrations: { - directory: path.join(dirname, "migrations"), - stub: path.join(dirname, "__migration-stub.ts"), + directory: "migrations", + stub: "__migration-stub.ts", }, } satisfies Knex.Config; } From ed834d4739755540fbe39682dad0b65214585475 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 14:33:48 +0900 Subject: [PATCH 17/72] chore: lint --- app/entry.server.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/entry.server.tsx b/app/entry.server.tsx index 9c26fa5963..6f92ca4d91 100644 --- a/app/entry.server.tsx +++ b/app/entry.server.tsx @@ -1,10 +1,10 @@ +import { tinyassert } from "@hiogawa/utils"; +import { viteDevServer } from "@hiogawa/vite-import-dev-server/runtime"; import { RemixServer } from "@remix-run/react"; import type { HandleDocumentRequestFunction } from "@remix-run/server-runtime"; import { renderToString } from "react-dom/server"; import { renderToDocument } from "./server/document"; import { wrapTraceAsyncSimple } from "./utils/opentelemetry-utils"; -import { tinyassert } from "@hiogawa/utils"; -import { viteDevServer } from "@hiogawa/vite-import-dev-server/runtime"; const handleDocumentRequest: HandleDocumentRequestFunction = async ( request, @@ -17,7 +17,7 @@ const handleDocumentRequest: HandleDocumentRequestFunction = async ( ); - let style: string + let style: string; if (import.meta.env.DEV) { // inject CSS to quickly workaround FOUC during dev // since vite/unocss will inject css on client via javascript later. From e317128ab24f0763b41b58cdfa04266ca00c5707 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 15:20:21 +0900 Subject: [PATCH 18/72] chore: one more knexfile workaround --- app/db/drizzle-client.server.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/db/drizzle-client.server.ts b/app/db/drizzle-client.server.ts index 6b25b5f9db..39f4907438 100644 --- a/app/db/drizzle-client.server.ts +++ b/app/db/drizzle-client.server.ts @@ -322,8 +322,7 @@ export async function dbGetMigrationStatus() { const rows = await db.select().from(T.knex_migrations); const fs = await import("fs"); - const config = knexfile(); - let files = await fs.promises.readdir(config.migrations.directory); + let files = await fs.promises.readdir("app/db/migrations"); files = files.filter((f) => f.match(/\.(js|ts)$/)); files.sort(); From ed50bced4ed5c2041f8340157bf45b044bb7b465 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 15:42:58 +0900 Subject: [PATCH 19/72] fix: patch `skipEnvCheck` --- package.json | 2 +- ...emix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch | 11 ++++++++++- pnpm-lock.yaml | 8 ++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5450bde378..15646749ec 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "scripts": { "dev": "run-p dev:*", "dev:remix": "vite dev", - "dev-e2e": "export NODE_ENV=test && PORT=3001 pnpm dev:remix", + "dev-e2e": "NODE_ENV=test PORT=3001 pnpm dev:remix", "dev-coverage:remix": "c8 -o coverage/e2e-server -r text -r html --exclude build --exclude-after-remap node_modules/.bin/remix dev", "tsc": "tsc -b", "dev:tsc": "pnpm tsc --watch --preserveWatchOutput", diff --git a/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch b/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch index c8c2808f6c..e2bd219f53 100644 --- a/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch +++ b/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch @@ -1,5 +1,5 @@ diff --git a/dist/vite/plugin.js b/dist/vite/plugin.js -index 4d7d30ef9079e2acf0b9317a9b8245467f232149..78f11127fb72dc1ef0bd6fd5453ab4b934228cac 100644 +index 4d7d30ef9079e2acf0b9317a9b8245467f232149..b437ac3a61f3bf0a8d9dae4b6819a3d91459c7cd 100644 --- a/dist/vite/plugin.js +++ b/dist/vite/plugin.js @@ -23,7 +23,7 @@ var pick = require('lodash/pick'); @@ -11,6 +11,15 @@ index 4d7d30ef9079e2acf0b9317a9b8245467f232149..78f11127fb72dc1ef0bd6fd5453ab4b9 var styles = require('./styles.js'); var vmod = require('./vmod.js'); var removeExports = require('./remove-exports.js'); +@@ -657,7 +657,7 @@ const remixVitePlugin = (options = {}) => { + allowAwaitOutsideFunction: true, + plugins: ["jsx", "typescript"] + }, +- plugins: [require("react-refresh/babel")], ++ plugins: [[require("react-refresh/babel"), { skipEnvCheck: true }]], + sourceMaps: true + }); + if (result === null) return; @@ -704,7 +704,7 @@ const remixVitePlugin = (options = {}) => { }; function addRefreshWrapper(pluginConfig, code, id) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c521c11f9b..eed7ce7ea7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ patchedDependencies: hash: opznjwpbsym5sugb4owpkabxrq path: patches/@opentelemetry__sdk-node@0.39.1.patch '@remix-run/dev@0.0.0-nightly-bf2feb9-20231111': - hash: u3we46khw2a2bzuz56c5dl3wjm + hash: eiptxwlwoaixlx6sz4q63sskam path: patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch dependencies: @@ -155,7 +155,7 @@ devDependencies: version: 1.39.0 '@remix-run/dev': specifier: 0.0.0-nightly-bf2feb9-20231111 - version: 0.0.0-nightly-bf2feb9-20231111(patch_hash=u3we46khw2a2bzuz56c5dl3wjm)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) + version: 0.0.0-nightly-bf2feb9-20231111(patch_hash=eiptxwlwoaixlx6sz4q63sskam)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) '@tsconfig/strictest': specifier: ^2.0.2 version: 2.0.2 @@ -2031,7 +2031,7 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: false - /@remix-run/dev@0.0.0-nightly-bf2feb9-20231111(patch_hash=u3we46khw2a2bzuz56c5dl3wjm)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0): + /@remix-run/dev@0.0.0-nightly-bf2feb9-20231111(patch_hash=eiptxwlwoaixlx6sz4q63sskam)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0): resolution: {integrity: sha512-gweHjZur8cMVfGMl2Ek51lkll/NGVJlWcDHkTg20rQ9PDzSqQQJYsUsVAcVu23xW2YkTN0BeGVILWbmPPC7/DQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -2185,7 +2185,7 @@ packages: peerDependencies: '@remix-run/dev': ^1.15.0 || ^2.0.0 dependencies: - '@remix-run/dev': 0.0.0-nightly-bf2feb9-20231111(patch_hash=u3we46khw2a2bzuz56c5dl3wjm)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) + '@remix-run/dev': 0.0.0-nightly-bf2feb9-20231111(patch_hash=eiptxwlwoaixlx6sz4q63sskam)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) minimatch: 7.4.6 dev: false From 6a36933576c5b4f2c6516d890b0fff2f7fbc57b6 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 12 Nov 2023 16:46:32 +0900 Subject: [PATCH 20/72] test: waitForHydration for e2e --- app/e2e/auth.test.ts | 20 +++++++++++++++++++- app/e2e/helper.ts | 4 ++++ app/entry.client.tsx | 1 + 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/e2e/auth.test.ts b/app/e2e/auth.test.ts index e3e3cdda9a..c24069bb7e 100644 --- a/app/e2e/auth.test.ts +++ b/app/e2e/auth.test.ts @@ -3,7 +3,7 @@ import { Page, expect } from "@playwright/test"; import { E, T, db } from "../db/drizzle-client.server"; import type { Email } from "../utils/email-utils"; import { test } from "./coverage"; -import { useUserE2E } from "./helper"; +import { useUserE2E, waitForHydration } from "./helper"; test("/users/register success", async ({ page }) => { await page.goto("/"); @@ -15,6 +15,7 @@ test("/users/register success", async ({ page }) => { // navigate to register await page.locator("data-test=signin-form >> text=Register").click(); await expect(page).toHaveURL("/users/register"); + await waitForHydration(page); // submit form // prettier-ignore @@ -33,6 +34,8 @@ test("/users/register success", async ({ page }) => { test("/users/register error", async ({ page }) => { await page.goto("/users/register"); + await waitForHydration(page); + await page.getByLabel("Username").fill("hello"); await page.getByLabel("Password", { exact: true }).fill("hi"); await page.getByLabel("Password confirmation").fill("hi"); @@ -57,6 +60,7 @@ test.describe("/users/signin", () => { // navigate to signin await page.locator("header >> data-test=login-icon").click(); await expect(page).toHaveURL("/users/signin"); + await waitForHydration(page); // submit form await page.locator('input[name="username"]').fill(user.data.username); @@ -79,6 +83,8 @@ test.describe("/users/signin", () => { test("invalid credentials", async ({ page }) => { await page.goto("/users/signin"); + await waitForHydration(page); + await page.getByLabel("Username").fill(user.data.username); await page.getByLabel("Password").fill("asdfjkl;asdf-wrong"); await page.getByRole("button", { name: "Sign in" }).click(); @@ -94,6 +100,7 @@ test.describe("/users/me", () => { test("with-session", async ({ page }) => { await user.signin(page); await page.goto("/users/me"); + await waitForHydration(page); // check user data is loaded await expect(page.locator("data-test=me-username")).toHaveValue( @@ -143,6 +150,7 @@ test.describe("/users/signout", () => { test("basic", async ({ page }) => { await signin(page); await page.goto("/"); + await waitForHydration(page); // Signout from top menu await page.locator('[data-test="user-menu"]').click(); @@ -159,6 +167,7 @@ test.describe("change email", () => { test("basic", async ({ page }) => { await user.signin(page); await page.goto("/users/me"); + await waitForHydration(page); const newEmail = "change-email@dummy.local"; await page.getByRole("button", { name: "Change email" }).click(); @@ -226,6 +235,8 @@ test.describe("reset password", () => { // trigger reset password from account await user.signin(page); await page.goto("/users/me"); + await waitForHydration(page); + await page.getByRole("button", { name: "Reset password" }).click(); await page .getByText("Please check your email to reset your password") @@ -237,6 +248,8 @@ test.describe("reset password", () => { // submit new password const newPassword = "asdfjkl;"; await page.goto(url); + await waitForHydration(page); + await page.getByLabel("Password", { exact: true }).fill(newPassword); await page.getByLabel("Password confirmation").fill(newPassword); await page.getByRole("button", { name: "Submit" }).click(); @@ -244,6 +257,8 @@ test.describe("reset password", () => { // cannot use a same link await page.goto(url); + await waitForHydration(page); + await page.getByLabel("Password", { exact: true }).fill(newPassword); await page.getByLabel("Password confirmation").fill(newPassword); await page.getByRole("button", { name: "Submit" }).click(); @@ -253,6 +268,7 @@ test.describe("reset password", () => { test("forgot password", async ({ page }) => { // submit email from "forgot password" page await page.goto("/users/signin"); + await waitForHydration(page); await page.getByRole("link", { name: "Forgot your password?" }).click(); await page.getByLabel("Email").fill(userEmail); await page.getByRole("button", { name: "Submit" }).click(); @@ -266,6 +282,7 @@ test.describe("reset password", () => { // submit new password const newPassword = "12345678"; await page.goto(url); + await waitForHydration(page); await page.getByLabel("Password", { exact: true }).fill(newPassword); await page.getByLabel("Password confirmation").fill(newPassword); await page.getByRole("button", { name: "Submit" }).click(); @@ -273,6 +290,7 @@ test.describe("reset password", () => { // login with new password await page.locator('[data-test="login-icon"]').click(); + await waitForHydration(page); await page.getByLabel("Username").fill(user.data.username); await page.getByLabel("Password").fill(newPassword); await page.getByRole("button", { name: "Sign in" }).click(); diff --git a/app/e2e/helper.ts b/app/e2e/helper.ts index 0cfbfcd970..c4dcd61f2b 100644 --- a/app/e2e/helper.ts +++ b/app/e2e/helper.ts @@ -47,3 +47,7 @@ export function useUserE2E( }, }; } + +export async function waitForHydration(page: Page) { + await page.locator("#root.hydrated").waitFor({ state: "attached" }); +} diff --git a/app/entry.client.tsx b/app/entry.client.tsx index ef73989176..7506535ca3 100644 --- a/app/entry.client.tsx +++ b/app/entry.client.tsx @@ -10,6 +10,7 @@ function main() { const el = document.getElementById("root"); tinyassert(el); hydrateRoot(el, ); + el.classList.add("hydrated"); } main(); From 96a210f07f00658899d1354d94d28682dc8fdac8 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Fri, 17 Nov 2023 16:57:39 +0900 Subject: [PATCH 21/72] refactor: use copyPublicDir = false --- vite.config.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 6bfe7f5243..71c33f7118 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -53,7 +53,8 @@ export default defineConfig((env) => ({ server: { port: Number(process.env.PORT ?? "3000"), }, - // we manually copy it like before - // (also remix's default public directory treatment might be a bit off?) - publicDir: env.command === "build" ? false : undefined, + // to be fixed by https://github.com/remix-run/remix/pull/8039 + build: { + copyPublicDir: false, + } })); From 833bc14bf9df2a51fe593fdbd50e1dfe5878d9d7 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 19 Nov 2023 12:14:44 +0900 Subject: [PATCH 22/72] chore(deps): remix 2.3.0 and vite 5.0.0 --- package.json | 10 +- patches/@remix-run__dev@2.3.0.patch | 14 + pnpm-lock.yaml | 487 ++++++++++++++++++++++++---- vite.config.ts | 4 - 4 files changed, 450 insertions(+), 65 deletions(-) create mode 100644 patches/@remix-run__dev@2.3.0.patch diff --git a/package.json b/package.json index 15646749ec..52f7faf43f 100644 --- a/package.json +++ b/package.json @@ -61,8 +61,8 @@ "@opentelemetry/api": "^1.7.0", "@opentelemetry/sdk-node": "^0.39.1", "@opentelemetry/semantic-conventions": "^1.18.1", - "@remix-run/react": "0.0.0-nightly-bf2feb9-20231111", - "@remix-run/server-runtime": "0.0.0-nightly-bf2feb9-20231111", + "@remix-run/react": "2.3.0", + "@remix-run/server-runtime": "2.3.0", "@remix-run/v1-route-convention": "^0.1.4", "@tanstack/react-query": "^4.36.1", "@tanstack/react-query-devtools": "^4.36.1", @@ -88,7 +88,7 @@ "@hiogawa/vite-import-dev-server": "^0.0.1", "@iconify-json/ri": "^1.1.12", "@playwright/test": "^1.39.0", - "@remix-run/dev": "0.0.0-nightly-bf2feb9-20231111", + "@remix-run/dev": "2.3.0", "@tsconfig/strictest": "^2.0.2", "@types/cookie": "^0.5.4", "@types/express": "^4.17.21", @@ -115,7 +115,7 @@ "showdown": "^2.1.0", "typescript": "^5.2.2", "unocss": "^0.52.7", - "vite": "^4.5.0", + "vite": "^5.0.0", "vitest": "^0.34.6" }, "volta": { @@ -124,7 +124,7 @@ "pnpm": { "patchedDependencies": { "@opentelemetry/sdk-node@0.39.1": "patches/@opentelemetry__sdk-node@0.39.1.patch", - "@remix-run/dev@0.0.0-nightly-bf2feb9-20231111": "patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch" + "@remix-run/dev@2.3.0": "patches/@remix-run__dev@2.3.0.patch" } } } diff --git a/patches/@remix-run__dev@2.3.0.patch b/patches/@remix-run__dev@2.3.0.patch new file mode 100644 index 0000000000..29e3695e80 --- /dev/null +++ b/patches/@remix-run__dev@2.3.0.patch @@ -0,0 +1,14 @@ +diff --git a/dist/vite/node/adapter.js b/dist/vite/node/adapter.js +index c6f7097c1257ff59652836db54426030120881de..d49d41b9e185275692be312dc26390a2cf4ec9f6 100644 +--- a/dist/vite/node/adapter.js ++++ b/dist/vite/node/adapter.js +@@ -25,7 +25,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau + var multipart__default = /*#__PURE__*/_interopDefaultLegacy(multipart); + + // @ts-nocheck +-node.installGlobals(); ++// imcompatibility with hattip on nodejs? ++// node.installGlobals(); + function nodeToWeb(nodeStream) { + let destroyed = false; + let listeners = {}; \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eed7ce7ea7..fa34b8a294 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,9 +8,9 @@ patchedDependencies: '@opentelemetry/sdk-node@0.39.1': hash: opznjwpbsym5sugb4owpkabxrq path: patches/@opentelemetry__sdk-node@0.39.1.patch - '@remix-run/dev@0.0.0-nightly-bf2feb9-20231111': - hash: eiptxwlwoaixlx6sz4q63sskam - path: patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch + '@remix-run/dev@2.3.0': + hash: ys3nbokiadjhvnx4tcwx3zf4ce + path: patches/@remix-run__dev@2.3.0.patch dependencies: '@floating-ui/react': @@ -36,7 +36,7 @@ dependencies: version: 0.1.1-pre.3 '@hiogawa/theme-script': specifier: 0.0.4-pre.3 - version: 0.0.4-pre.3(vite@4.5.0) + version: 0.0.4-pre.3(vite@5.0.0) '@hiogawa/tiny-jwt': specifier: 0.2.8-pre.2 version: 0.2.8-pre.2 @@ -77,14 +77,14 @@ dependencies: specifier: ^1.18.1 version: 1.18.1 '@remix-run/react': - specifier: 0.0.0-nightly-bf2feb9-20231111 - version: 0.0.0-nightly-bf2feb9-20231111(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) + specifier: 2.3.0 + version: 2.3.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) '@remix-run/server-runtime': - specifier: 0.0.0-nightly-bf2feb9-20231111 - version: 0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2) + specifier: 2.3.0 + version: 2.3.0(typescript@5.2.2) '@remix-run/v1-route-convention': specifier: ^0.1.4 - version: 0.1.4(@remix-run/dev@0.0.0-nightly-bf2feb9-20231111) + version: 0.1.4(@remix-run/dev@2.3.0) '@tanstack/react-query': specifier: ^4.36.1 version: 4.36.1(react-dom@18.2.0)(react@18.2.0) @@ -146,7 +146,7 @@ devDependencies: version: 0.0.1-pre.5 '@hiogawa/vite-import-dev-server': specifier: ^0.0.1 - version: 0.0.1(vite@4.5.0) + version: 0.0.1(vite@5.0.0) '@iconify-json/ri': specifier: ^1.1.12 version: 1.1.12 @@ -154,8 +154,8 @@ devDependencies: specifier: ^1.39.0 version: 1.39.0 '@remix-run/dev': - specifier: 0.0.0-nightly-bf2feb9-20231111 - version: 0.0.0-nightly-bf2feb9-20231111(patch_hash=eiptxwlwoaixlx6sz4q63sskam)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) + specifier: 2.3.0 + version: 2.3.0(patch_hash=ys3nbokiadjhvnx4tcwx3zf4ce)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) '@tsconfig/strictest': specifier: ^2.0.2 version: 2.0.2 @@ -185,10 +185,10 @@ devDependencies: version: 0.52.7 '@vavite/connect': specifier: ^3.0.0 - version: 3.0.0(vite@4.5.0) + version: 3.0.0(vite@5.0.0) '@vitejs/plugin-react': specifier: ^4.1.1 - version: 4.1.1(vite@4.5.0) + version: 4.1.1(vite@5.0.0) '@vitest/coverage-v8': specifier: ^0.34.6 version: 0.34.6(vitest@0.34.6) @@ -233,10 +233,10 @@ devDependencies: version: 5.2.2 unocss: specifier: ^0.52.7 - version: 0.52.7(postcss@8.4.31)(vite@4.5.0) + version: 0.52.7(postcss@8.4.31)(vite@5.0.0) vite: - specifier: ^4.5.0 - version: 4.5.0(@types/node@18.18.9) + specifier: ^5.0.0 + version: 5.0.0(@types/node@18.18.9) vitest: specifier: ^0.34.6 version: 0.34.6(happy-dom@9.20.3) @@ -615,6 +615,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.19.5: + resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-arm@0.17.19: resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -640,6 +648,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.19.5: + resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-x64@0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -665,6 +681,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.19.5: + resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/darwin-arm64@0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -690,6 +714,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.19.5: + resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/darwin-x64@0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -715,6 +747,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.19.5: + resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/freebsd-arm64@0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -740,6 +780,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.19.5: + resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/freebsd-x64@0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -765,6 +813,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.19.5: + resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/linux-arm64@0.17.19: resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -790,6 +846,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.19.5: + resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-arm@0.17.19: resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -815,6 +879,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.19.5: + resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ia32@0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -840,6 +912,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.19.5: + resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-loong64@0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -865,6 +945,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.19.5: + resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-mips64el@0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -890,6 +978,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.19.5: + resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ppc64@0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -915,6 +1011,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.19.5: + resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-riscv64@0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -940,6 +1044,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.19.5: + resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-s390x@0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -965,6 +1077,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.19.5: + resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-x64@0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -990,6 +1110,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.19.5: + resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -1015,6 +1143,14 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.19.5: + resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + /@esbuild/openbsd-x64@0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -1040,6 +1176,14 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.19.5: + resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + /@esbuild/sunos-x64@0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -1065,6 +1209,14 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.19.5: + resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + /@esbuild/win32-arm64@0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -1090,6 +1242,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.19.5: + resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-ia32@0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -1115,6 +1275,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.19.5: + resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-x64@0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -1140,6 +1308,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-x64@0.19.5: + resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@fastify/busboy@2.0.0: resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} engines: {node: '>=14'} @@ -1340,7 +1516,7 @@ packages: optional: true dev: false - /@hiogawa/theme-script@0.0.4-pre.3(vite@4.5.0): + /@hiogawa/theme-script@0.0.4-pre.3(vite@5.0.0): resolution: {integrity: sha512-2uxVhemdAMUFE/OaUcaTT2QeZsXnxtnF/CLNs+CcrlgwaUXXfsnXUTvUZCz8MTmxzzz4Vp5hfAyi4pp58XHJCQ==} peerDependencies: vite: '*' @@ -1348,7 +1524,7 @@ packages: vite: optional: true dependencies: - vite: 4.5.0(@types/node@18.18.9) + vite: 5.0.0(@types/node@18.18.9) dev: false /@hiogawa/tiny-cli@0.0.4-pre.1: @@ -1424,7 +1600,7 @@ packages: peerDependencies: unocss: '*' dependencies: - unocss: 0.52.7(postcss@8.4.31)(vite@4.5.0) + unocss: 0.52.7(postcss@8.4.31)(vite@5.0.0) dev: true /@hiogawa/utils-hattip@0.0.1-pre.1: @@ -1447,12 +1623,12 @@ packages: resolution: {integrity: sha512-9RnMKYYp0BAK4xsRl9V9gxH6J4wQWL9hzFLfREAWiiB6let0csGruGvmXAFu8RKfhG7/0h6xkpg/TrCO1+RsYg==} dev: false - /@hiogawa/vite-import-dev-server@0.0.1(vite@4.5.0): + /@hiogawa/vite-import-dev-server@0.0.1(vite@5.0.0): resolution: {integrity: sha512-E/OyLULlz+iNideyhbaKwg/n498WdWD7/tIT1VJAj3moVWNXBfoJMpKRc8BwmcQ8fFOWd7/DnLbS2KvxsNxeeg==} peerDependencies: vite: '*' dependencies: - vite: 4.5.0(@types/node@18.18.9) + vite: 5.0.0(@types/node@18.18.9) dev: true /@iconify-json/ri@1.1.12: @@ -2031,14 +2207,14 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: false - /@remix-run/dev@0.0.0-nightly-bf2feb9-20231111(patch_hash=eiptxwlwoaixlx6sz4q63sskam)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0): - resolution: {integrity: sha512-gweHjZur8cMVfGMl2Ek51lkll/NGVJlWcDHkTg20rQ9PDzSqQQJYsUsVAcVu23xW2YkTN0BeGVILWbmPPC7/DQ==} + /@remix-run/dev@2.3.0(patch_hash=ys3nbokiadjhvnx4tcwx3zf4ce)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0): + resolution: {integrity: sha512-Eno0XHyIKo5GyzN4OAwNkgkyl4H1mLWbqeVUA8T5HmVDj+8qJLIcYeayS2BmA1KYAHJBiy5ufAGi2MpaXMjKww==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@remix-run/serve': ^0.0.0-nightly-bf2feb9-20231111 + '@remix-run/serve': ^2.3.0 typescript: ^5.1.0 - vite: ^4.4.9 + vite: ^4.4.9 || ^5.0.0 peerDependenciesMeta: '@remix-run/serve': optional: true @@ -2057,9 +2233,9 @@ packages: '@babel/types': 7.23.3 '@mdx-js/mdx': 2.3.0 '@npmcli/package-json': 4.0.1 - '@remix-run/node': 0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2) - '@remix-run/router': 1.11.0 - '@remix-run/server-runtime': 0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2) + '@remix-run/node': 2.3.0(typescript@5.2.2) + '@remix-run/router': 1.12.0-pre.0 + '@remix-run/server-runtime': 2.3.0(typescript@5.2.2) '@types/mdx': 2.0.10 '@vanilla-extract/integration': 6.2.3(@types/node@18.18.9) arg: 5.0.2 @@ -2103,7 +2279,7 @@ packages: tsconfig-paths: 4.2.0 typescript: 5.2.2 undici: 5.27.2 - vite: 4.5.0(@types/node@18.18.9) + vite: 5.0.0(@types/node@18.18.9) ws: 7.5.9 transitivePeerDependencies: - '@types/node' @@ -2121,8 +2297,8 @@ packages: - utf-8-validate patched: true - /@remix-run/node@0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2): - resolution: {integrity: sha512-CkJO1++GPwjD1up5jkh2mlmhOjrVSBgq9tW7Mjn2auYlW5dej8BNb2dyHvmWQLxVAUQV5lCa22P/ivG5n+0IXA==} + /@remix-run/node@2.3.0(typescript@5.2.2): + resolution: {integrity: sha512-WQybWc1EWPLMD/btDtchVrhoLvz/ek6MB0gr2cV2N3Sxgn1VaJmpsN3+sUA5lK8vR2S/kOmGun2Ut3tKi8TKHg==} engines: {node: '>=18.0.0'} peerDependencies: typescript: ^5.1.0 @@ -2130,7 +2306,7 @@ packages: typescript: optional: true dependencies: - '@remix-run/server-runtime': 0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2) + '@remix-run/server-runtime': 2.3.0(typescript@5.2.2) '@remix-run/web-fetch': 4.4.1 '@remix-run/web-file': 3.1.0 '@remix-run/web-stream': 1.1.0 @@ -2140,8 +2316,8 @@ packages: stream-slice: 0.1.2 typescript: 5.2.2 - /@remix-run/react@0.0.0-nightly-bf2feb9-20231111(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): - resolution: {integrity: sha512-nQb5rsQm1mArB44/d7BAk9m61RymgQTFjms9ci2JyKtn4F6HbPWLt9AZxAlzQZs3vukIo4uCTo4d/GN/JHpmKQ==} + /@remix-run/react@2.3.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): + resolution: {integrity: sha512-8sLgNw0wbNx0Gir0CKCqJVlQ8ipKMvTfUAY/sra/jiAkUSztz1HuGXNTV+4yrP9786puiMp9mB+bJqD32SAEPg==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0.0 @@ -2151,20 +2327,29 @@ packages: typescript: optional: true dependencies: - '@remix-run/router': 1.11.0 - '@remix-run/server-runtime': 0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2) + '@remix-run/router': 1.12.0 + '@remix-run/server-runtime': 2.3.0(typescript@5.2.2) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router-dom: 6.18.0(react-dom@18.2.0)(react@18.2.0) + react-router-dom: 6.19.0(react-dom@18.2.0)(react@18.2.0) typescript: 5.2.2 dev: false /@remix-run/router@1.11.0: resolution: {integrity: sha512-BHdhcWgeiudl91HvVa2wxqZjSHbheSgIiDvxrF1VjFzBzpTtuDPkOdOi3Iqvc08kXtFkLjhbS+ML9aM8mJS+wQ==} engines: {node: '>=14.0.0'} + dev: false + + /@remix-run/router@1.12.0: + resolution: {integrity: sha512-2hXv036Bux90e1GXTWSMfNzfDDK8LA8JYEWfyHxzvwdp6GyoWEovKc9cotb3KCKmkdwsIBuFGX7ScTWyiHv7Eg==} + engines: {node: '>=14.0.0'} - /@remix-run/server-runtime@0.0.0-nightly-bf2feb9-20231111(typescript@5.2.2): - resolution: {integrity: sha512-uZtsCnEqY4eDFBEmVRcXLKMw5oCbXI91HBp0r0G22AoOyF7znHYLEaim67ilh4gwP+vuvDZzmEJdUWIqi5aUSw==} + /@remix-run/router@1.12.0-pre.0: + resolution: {integrity: sha512-+bBn9KqD2AC0pttSGydVFOZSsT0NqQ1+rGFwMTx9dRANk6oGxrPbKTDxLLikocscGzSL5przvcK4Uxfq8yU7BQ==} + engines: {node: '>=14.0.0'} + + /@remix-run/server-runtime@2.3.0(typescript@5.2.2): + resolution: {integrity: sha512-9BiRK7VPm5nt/aOlRmeROXWA8HKgqjvQy+f9NNpqvf3jj62EUl0h4eUdyqRj6nNh44I+0XUBG7ZQ2xXTrGJATw==} engines: {node: '>=18.0.0'} peerDependencies: typescript: ^5.1.0 @@ -2172,7 +2357,7 @@ packages: typescript: optional: true dependencies: - '@remix-run/router': 1.11.0 + '@remix-run/router': 1.12.0 '@types/cookie': 0.5.4 '@web3-storage/multipart-parser': 1.0.0 cookie: 0.5.0 @@ -2180,12 +2365,12 @@ packages: source-map: 0.7.4 typescript: 5.2.2 - /@remix-run/v1-route-convention@0.1.4(@remix-run/dev@0.0.0-nightly-bf2feb9-20231111): + /@remix-run/v1-route-convention@0.1.4(@remix-run/dev@2.3.0): resolution: {integrity: sha512-fVTr9YlNLWfaiM/6Y56sOtcY8x1bBJQHY0sDWO5+Z/vjJ2Ni7fe2fwrzs1jUFciMPXqBQdFGePnkuiYLz3cuUA==} peerDependencies: '@remix-run/dev': ^1.15.0 || ^2.0.0 dependencies: - '@remix-run/dev': 0.0.0-nightly-bf2feb9-20231111(patch_hash=eiptxwlwoaixlx6sz4q63sskam)(@types/node@18.18.9)(typescript@5.2.2)(vite@4.5.0) + '@remix-run/dev': 2.3.0(patch_hash=ys3nbokiadjhvnx4tcwx3zf4ce)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) minimatch: 7.4.6 dev: false @@ -2237,6 +2422,90 @@ packages: picomatch: 2.3.1 dev: true + /@rollup/rollup-android-arm-eabi@4.5.0: + resolution: {integrity: sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA==} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-android-arm64@4.5.0: + resolution: {integrity: sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w==} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-arm64@4.5.0: + resolution: {integrity: sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-x64@4.5.0: + resolution: {integrity: sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.5.0: + resolution: {integrity: sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.5.0: + resolution: {integrity: sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.5.0: + resolution: {integrity: sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.5.0: + resolution: {integrity: sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.5.0: + resolution: {integrity: sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.5.0: + resolution: {integrity: sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.5.0: + resolution: {integrity: sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA==} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.5.0: + resolution: {integrity: sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w==} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@sigstore/bundle@1.1.0: resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2555,12 +2824,12 @@ packages: /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - /@unocss/astro@0.52.7(vite@4.5.0): + /@unocss/astro@0.52.7(vite@5.0.0): resolution: {integrity: sha512-jGm3sVB6AU3A1vXJskCdG2kUw1aRdg2fV60nILCBiRmj7SIlbMTXEHrz864AaleGVnxTiV7oGL4P1DfDJ3tQSA==} dependencies: '@unocss/core': 0.52.7 '@unocss/reset': 0.52.7 - '@unocss/vite': 0.52.7(vite@4.5.0) + '@unocss/vite': 0.52.7(vite@5.0.0) transitivePeerDependencies: - rollup - vite @@ -2724,7 +2993,7 @@ packages: '@unocss/core': 0.52.7 dev: true - /@unocss/vite@0.52.7(vite@4.5.0): + /@unocss/vite@0.52.7(vite@5.0.0): resolution: {integrity: sha512-Hn1u6/uPP2q0s5gfwA7KQFtclviEUrEKnEa3l1kFJA3S/tHXYjwQkzbDQObQzolVAXyzIhf1cQ8e1tEMyHm1qg==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 @@ -2739,7 +3008,7 @@ packages: chokidar: 3.5.3 fast-glob: 3.3.2 magic-string: 0.30.5 - vite: 4.5.0(@types/node@18.18.9) + vite: 5.0.0(@types/node@18.18.9) transitivePeerDependencies: - rollup dev: true @@ -2795,16 +3064,16 @@ packages: /@vanilla-extract/private@1.0.3: resolution: {integrity: sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ==} - /@vavite/connect@3.0.0(vite@4.5.0): + /@vavite/connect@3.0.0(vite@5.0.0): resolution: {integrity: sha512-qTbxzuXlHiCHdeIa5PUaq3Xcj6mDAONZBzRCHY4NlHh0+9etG0Lb5yU2dwLdUvumqQaGKNljWMl5WCJ0pkOGEw==} peerDependencies: vite: ^2.8.1 || 3 || 4 dependencies: '@types/node': 20.9.0 - vite: 4.5.0(@types/node@18.18.9) + vite: 5.0.0(@types/node@18.18.9) dev: true - /@vitejs/plugin-react@4.1.1(vite@4.5.0): + /@vitejs/plugin-react@4.1.1(vite@5.0.0): resolution: {integrity: sha512-Jie2HERK+uh27e+ORXXwEP5h0Y2lS9T2PRGbfebiHGlwzDO0dEnd2aNtOR/qjBlPb1YgxwAONeblL1xqLikLag==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2815,7 +3084,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.3) '@types/babel__core': 7.20.4 react-refresh: 0.14.0 - vite: 4.5.0(@types/node@18.18.9) + vite: 5.0.0(@types/node@18.18.9) transitivePeerDependencies: - supports-color dev: true @@ -4062,6 +4331,35 @@ packages: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + /esbuild@0.19.5: + resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.5 + '@esbuild/android-arm64': 0.19.5 + '@esbuild/android-x64': 0.19.5 + '@esbuild/darwin-arm64': 0.19.5 + '@esbuild/darwin-x64': 0.19.5 + '@esbuild/freebsd-arm64': 0.19.5 + '@esbuild/freebsd-x64': 0.19.5 + '@esbuild/linux-arm': 0.19.5 + '@esbuild/linux-arm64': 0.19.5 + '@esbuild/linux-ia32': 0.19.5 + '@esbuild/linux-loong64': 0.19.5 + '@esbuild/linux-mips64el': 0.19.5 + '@esbuild/linux-ppc64': 0.19.5 + '@esbuild/linux-riscv64': 0.19.5 + '@esbuild/linux-s390x': 0.19.5 + '@esbuild/linux-x64': 0.19.5 + '@esbuild/netbsd-x64': 0.19.5 + '@esbuild/openbsd-x64': 0.19.5 + '@esbuild/sunos-x64': 0.19.5 + '@esbuild/win32-arm64': 0.19.5 + '@esbuild/win32-ia32': 0.19.5 + '@esbuild/win32-x64': 0.19.5 + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -7014,6 +7312,19 @@ packages: react-router: 6.18.0(react@18.2.0) dev: false + /react-router-dom@6.19.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-N6dWlcgL2w0U5HZUUqU2wlmOrSb3ighJmtQ438SWbhB1yuLTXQ8yyTBMK3BSvVjp7gBtKurT554nCtMOgxCZmQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.12.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.19.0(react@18.2.0) + dev: false + /react-router@6.18.0(react@18.2.0): resolution: {integrity: sha512-vk2y7Dsy8wI02eRRaRmOs9g2o+aE72YCx5q9VasT1N9v+lrdB79tIqrjMfByHiY5+6aYkH2rUa5X839nwWGPDg==} engines: {node: '>=14.0.0'} @@ -7024,6 +7335,16 @@ packages: react: 18.2.0 dev: false + /react-router@6.19.0(react@18.2.0): + resolution: {integrity: sha512-0W63PKCZ7+OuQd7Tm+RbkI8kCLmn4GPjDbX61tWljPxWgqTKlEpeQUwPkT1DRjYhF8KSihK0hQpmhU4uxVMcdw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.12.0 + react: 18.2.0 + dev: false + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -7255,6 +7576,25 @@ packages: optionalDependencies: fsevents: 2.3.3 + /rollup@4.5.0: + resolution: {integrity: sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.5.0 + '@rollup/rollup-android-arm64': 4.5.0 + '@rollup/rollup-darwin-arm64': 4.5.0 + '@rollup/rollup-darwin-x64': 4.5.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.5.0 + '@rollup/rollup-linux-arm64-gnu': 4.5.0 + '@rollup/rollup-linux-arm64-musl': 4.5.0 + '@rollup/rollup-linux-x64-gnu': 4.5.0 + '@rollup/rollup-linux-x64-musl': 4.5.0 + '@rollup/rollup-win32-arm64-msvc': 4.5.0 + '@rollup/rollup-win32-ia32-msvc': 4.5.0 + '@rollup/rollup-win32-x64-msvc': 4.5.0 + fsevents: 2.3.3 + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -8069,7 +8409,7 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - /unocss@0.52.7(postcss@8.4.31)(vite@4.5.0): + /unocss@0.52.7(postcss@8.4.31)(vite@5.0.0): resolution: {integrity: sha512-c35lqmzWqnQH0hW2IE1owac2qfGOvNAhrIrLV2+pNmc2MDWq8WMjIEuWo8G+OS5JqFQY3ZBlE61q2x/tHPlujQ==} engines: {node: '>=14'} peerDependencies: @@ -8078,7 +8418,7 @@ packages: '@unocss/webpack': optional: true dependencies: - '@unocss/astro': 0.52.7(vite@4.5.0) + '@unocss/astro': 0.52.7(vite@5.0.0) '@unocss/cli': 0.52.7 '@unocss/core': 0.52.7 '@unocss/extractor-arbitrary-variants': 0.52.7 @@ -8097,7 +8437,7 @@ packages: '@unocss/transformer-compile-class': 0.52.7 '@unocss/transformer-directives': 0.52.7 '@unocss/transformer-variant-group': 0.52.7 - '@unocss/vite': 0.52.7(vite@4.5.0) + '@unocss/vite': 0.52.7(vite@5.0.0) transitivePeerDependencies: - postcss - rollup @@ -8259,7 +8599,7 @@ packages: mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.5.0(@types/node@18.18.9) + vite: 5.0.0(@types/node@18.18.9) transitivePeerDependencies: - '@types/node' - less @@ -8306,6 +8646,41 @@ packages: optionalDependencies: fsevents: 2.3.3 + /vite@5.0.0(@types/node@18.18.9): + resolution: {integrity: sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.18.9 + esbuild: 0.19.5 + postcss: 8.4.31 + rollup: 4.5.0 + optionalDependencies: + fsevents: 2.3.3 + /vitest@0.34.6(happy-dom@9.20.3): resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} @@ -8359,7 +8734,7 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.7.0 - vite: 4.5.0(@types/node@18.18.9) + vite: 5.0.0(@types/node@18.18.9) vite-node: 0.34.6(@types/node@18.18.9) why-is-node-running: 2.2.2 transitivePeerDependencies: diff --git a/vite.config.ts b/vite.config.ts index 71c33f7118..bfbab8b8f3 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -53,8 +53,4 @@ export default defineConfig((env) => ({ server: { port: Number(process.env.PORT ?? "3000"), }, - // to be fixed by https://github.com/remix-run/remix/pull/8039 - build: { - copyPublicDir: false, - } })); From ea752c2a6e2f9c844c7e7e42c6139cdf5e379dd7 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 19 Nov 2023 12:16:01 +0900 Subject: [PATCH 23/72] chore: remove unused --- ...__dev@0.0.0-nightly-bf2feb9-20231111.patch | 31 ------- patches/@remix-run__dev@1.15.0.patch | 90 ------------------- patches/@remix-run__node@1.15.0.patch | 13 --- remix.config.js | 23 ----- 4 files changed, 157 deletions(-) delete mode 100644 patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch delete mode 100644 patches/@remix-run__dev@1.15.0.patch delete mode 100644 patches/@remix-run__node@1.15.0.patch delete mode 100644 remix.config.js diff --git a/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch b/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch deleted file mode 100644 index e2bd219f53..0000000000 --- a/patches/@remix-run__dev@0.0.0-nightly-bf2feb9-20231111.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/dist/vite/plugin.js b/dist/vite/plugin.js -index 4d7d30ef9079e2acf0b9317a9b8245467f232149..b437ac3a61f3bf0a8d9dae4b6819a3d91459c7cd 100644 ---- a/dist/vite/plugin.js -+++ b/dist/vite/plugin.js -@@ -23,7 +23,7 @@ var pick = require('lodash/pick'); - var pc = require('picocolors'); - var config = require('../config.js'); - var invariant = require('../invariant.js'); --var adapter = require('./node/adapter.js'); -+// var adapter = require('./node/adapter.js'); - var styles = require('./styles.js'); - var vmod = require('./vmod.js'); - var removeExports = require('./remove-exports.js'); -@@ -657,7 +657,7 @@ const remixVitePlugin = (options = {}) => { - allowAwaitOutsideFunction: true, - plugins: ["jsx", "typescript"] - }, -- plugins: [require("react-refresh/babel")], -+ plugins: [[require("react-refresh/babel"), { skipEnvCheck: true }]], - sourceMaps: true - }); - if (result === null) return; -@@ -704,7 +704,7 @@ const remixVitePlugin = (options = {}) => { - }; - function addRefreshWrapper(pluginConfig, code, id) { - let isRoute = getRoute(pluginConfig, id); -- let acceptExports = isRoute ? ["meta", "links", "shouldRevalidate"] : []; -+ let acceptExports = isRoute ? ["meta", "links", "shouldRevalidate", "handle"] : []; - return REACT_REFRESH_HEADER.replace("__SOURCE__", JSON.stringify(id)) + code + REACT_REFRESH_FOOTER.replace("__SOURCE__", JSON.stringify(id)).replace("__ACCEPT_EXPORTS__", JSON.stringify(acceptExports)); - } - const REACT_REFRESH_HEADER = ` \ No newline at end of file diff --git a/patches/@remix-run__dev@1.15.0.patch b/patches/@remix-run__dev@1.15.0.patch deleted file mode 100644 index 2e10bae8f3..0000000000 --- a/patches/@remix-run__dev@1.15.0.patch +++ /dev/null @@ -1,90 +0,0 @@ -diff --git a/dist/compiler/compileBrowser.js b/dist/compiler/compileBrowser.js -index 97d71b6ecc8b641e9408301eedf372e5e2e62e1d..b37348a279cd18f26085ab7b233663d5b509080a 100644 ---- a/dist/compiler/compileBrowser.js -+++ b/dist/compiler/compileBrowser.js -@@ -141,6 +141,8 @@ const createEsbuildConfig = (build, config, options, onLoader) => { - })); - } - } -+ plugins.unshift(...(globalThis.__esbuildPluginsCommon ?? [])); -+ plugins.unshift(...(globalThis.__esbuildPluginsBrowser ?? [])); - return { - entryPoints, - outdir: config.assetsBuildDirectory, -diff --git a/dist/compiler/compilerServer.js b/dist/compiler/compilerServer.js -index e478a879768cd6d54b9f42676715db034996f4bc..9abc3c72b8f315cb673477a22300b9430529f72b 100644 ---- a/dist/compiler/compilerServer.js -+++ b/dist/compiler/compilerServer.js -@@ -89,6 +89,8 @@ const createEsbuildConfig = (config, assetsManifestChannel, options) => { - if (config.serverPlatform !== "node") { - plugins.unshift(nodeModulesPolyfill.NodeModulesPolyfillPlugin()); - } -+ plugins.unshift(...(globalThis.__esbuildPluginsCommon ?? [])); -+ plugins.unshift(...(globalThis.__esbuildPluginsServer ?? [])); - return { - absWorkingDir: config.rootDirectory, - stdin, -diff --git a/dist/config.js b/dist/config.js -index 4127eef2a81df8ea28f6c71f3f98d614dd31ef46..76e6a8d0df63498a8a690af476d66072ff198e94 100644 ---- a/dist/config.js -+++ b/dist/config.js -@@ -243,7 +243,7 @@ async function readConfig(remixRoot, serverMode = serverModes.ServerMode.Product - tsconfigPath = rootJsConfig; - } - if (tsconfigPath) { -- writeConfigDefaults.writeConfigDefaults(tsconfigPath); -+ // writeConfigDefaults.writeConfigDefaults(tsconfigPath); - } - let future = { - unstable_cssModules: ((_appConfig$future5 = appConfig.future) === null || _appConfig$future5 === void 0 ? void 0 : _appConfig$future5.unstable_cssModules) === true, -diff --git a/dist/devServer/serve.js b/dist/devServer/serve.js -index f51422abcb9ccf72399c97d5b391871e54daf0c0..c4fe59497faa7a1aa847cea57ca9c69a55f07386 100644 ---- a/dist/devServer/serve.js -+++ b/dist/devServer/serve.js -@@ -37,14 +37,16 @@ function tryImport(packageName) { - } - } - async function serve(config, mode, portPreference) { -- if (config.serverEntryPoint) { -- throw new Error("remix dev is not supported for custom servers."); -- } -- let { -- createApp -- } = tryImport("@remix-run/serve" -- // eslint-disable-next-line @typescript-eslint/consistent-type-imports -- ); -+ // (patch) use express.static and custom dev entry -+ -+ // if (config.serverEntryPoint) { -+ // throw new Error("remix dev is not supported for custom servers."); -+ // } -+ // let { -+ // createApp -+ // } = tryImport("@remix-run/serve" -+ // // eslint-disable-next-line @typescript-eslint/consistent-type-imports -+ // ); - // eslint-disable-next-line @typescript-eslint/consistent-type-imports - let express = tryImport("express"); - await env.loadEnv(config.rootDirectory); -@@ -53,11 +55,20 @@ async function serve(config, mode, portPreference) { - }); - let app = express(); - app.disable("x-powered-by"); -+ app.use( -+ config.publicPath, -+ express.static(config.assetsBuildDirectory, { -+ immutable: true, -+ maxAge: "1y", -+ }) -+ ); -+ app.use(express.static("public")); - app.use((_, __, next) => { - purgeAppRequireCache(config.serverBuildPath); - next(); - }); -- app.use(createApp(config.serverBuildPath, mode, config.publicPath, config.assetsBuildDirectory)); -+ app.use((req, res, next) => require(config.serverBuildPath).default(req, res, next)); -+ // app.use(createApp(config.serverBuildPath, mode, config.publicPath, config.assetsBuildDirectory)); - let dispose = await liveReload.liveReload(config); - let server; - let onListen = () => { \ No newline at end of file diff --git a/patches/@remix-run__node@1.15.0.patch b/patches/@remix-run__node@1.15.0.patch deleted file mode 100644 index 5f5facce5e..0000000000 --- a/patches/@remix-run__node@1.15.0.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/dist/index.js b/dist/index.js -index 07e6f6cb0776411bb6751ebe6dfd6fd9b4216c6a..2e1ea824afbf5c8b973bfe22bae26e0a90baeb67 100644 ---- a/dist/index.js -+++ b/dist/index.js -@@ -27,7 +27,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau - - var sourceMapSupport__default = /*#__PURE__*/_interopDefaultLegacy(sourceMapSupport); - --sourceMapSupport__default["default"].install(); -+// sourceMapSupport__default["default"].install(); - - Object.defineProperty(exports, 'AbortController', { - enumerable: true, \ No newline at end of file diff --git a/remix.config.js b/remix.config.js deleted file mode 100644 index 8e08ebca30..0000000000 --- a/remix.config.js +++ /dev/null @@ -1,23 +0,0 @@ -const env = process.env.NODE_ENV ?? "development"; - -/** @type {import('@remix-run/dev').AppConfig} */ -// prettier-ignore -module.exports = { - serverBuildPath: `build/remix/${env}/server/index.js`, - assetsBuildDirectory: `build/remix/${env}/public/build`, - server: "./app/misc/entry-express.ts", - serverDependenciesToBundle: process.env.BUILD_VERCEL ? "all" : [ - /@hattip/, /@js-temporal/, /node-fetch-native/ - ], - future: { - v2_meta: true, - v2_errorBoundary: true, - v2_normalizeFormMethod: true, - v2_routeConvention: true, - }, - routes: (defineRoutes) => - require("@remix-run/v1-route-convention").createRoutesFromFolders( - defineRoutes, - { ignoredFilePatterns: ["**/*.test.*"] } - ), -}; From fc7664a59bd72591bb907a85c9bbaf383ee3832a Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 19 Nov 2023 12:22:44 +0900 Subject: [PATCH 24/72] chore: remove obsolete workaround --- vite.config.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index bfbab8b8f3..0d0b945b11 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -9,11 +9,7 @@ export default defineConfig((env) => ({ clearScreen: false, plugins: [ unocss(), - - // need to workaround remix's double plugin loading issue - // https://github.com/remix-run/remix/pull/7911 - // https://github.com/hi-ogawa/vite-plugins/issues/112 - env.command === "serve" && importDevServerPlugin(), + importDevServerPlugin(), // run our own middleware via vavite before remix vaviteConnect({ From 0a940b23d003ce61a2ca48d0a4b80badcd4ba1c7 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 19 Nov 2023 12:25:46 +0900 Subject: [PATCH 25/72] ci: add waitForHydration to e2e --- app/e2e/basic.test.ts | 2 ++ app/e2e/bookmarks.test.ts | 8 +++++++- app/e2e/decks.test.ts | 7 ++++++- app/e2e/videos.test.ts | 10 +++++++++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/e2e/basic.test.ts b/app/e2e/basic.test.ts index 02a673c89f..2058061852 100644 --- a/app/e2e/basic.test.ts +++ b/app/e2e/basic.test.ts @@ -1,5 +1,6 @@ import { expect } from "@playwright/test"; import { test } from "./coverage"; +import { waitForHydration } from "./helper"; test("title", async ({ page }) => { await page.goto("/"); @@ -8,6 +9,7 @@ test("title", async ({ page }) => { test("theme", async ({ page }) => { await page.goto("/"); + await waitForHydration(page); await page.getByTestId("Navbar-drawer-button").click(); await page diff --git a/app/e2e/bookmarks.test.ts b/app/e2e/bookmarks.test.ts index d14fd81028..aeb67d8bda 100644 --- a/app/e2e/bookmarks.test.ts +++ b/app/e2e/bookmarks.test.ts @@ -1,6 +1,6 @@ import { importSeed } from "../misc/seed-utils"; import { test } from "./coverage"; -import { useUserE2E } from "./helper"; +import { useUserE2E, waitForHydration } from "./helper"; test.describe("bookmarks", () => { const user = useUserE2E(test, { seed: __filename }); @@ -13,6 +13,7 @@ test.describe("bookmarks", () => { test("load-more", async ({ page }) => { await user.signin(page); await page.goto("/bookmarks"); + await waitForHydration(page); await page.getByRole("button", { name: "Load more" }).click(); await page.getByText("오늘 재밌게 촬영한 것 같습니다").click(); }); @@ -20,6 +21,7 @@ test.describe("bookmarks", () => { test("search", async ({ page }) => { await user.signin(page); await page.goto("/bookmarks"); + await waitForHydration(page); await page.getByPlaceholder("Search text...").fill("진짜"); await page.getByPlaceholder("Search text...").press("Enter"); await page.getByText("진짜 힘든데").click(); @@ -28,6 +30,7 @@ test.describe("bookmarks", () => { test("MiniPlayer", async ({ page }) => { await user.signin(page); await page.goto("/bookmarks"); + await waitForHydration(page); await page.getByText("케플러 대박 기원").click(); await page.locator(".i-ri-upload-line").click(); await page.getByText("감사합니당~").click(); @@ -36,6 +39,7 @@ test.describe("bookmarks", () => { test("goToLastBookmark", async ({ page }) => { await user.signin(page); await page.goto("/videos"); + await waitForHydration(page); await page .getByRole("link", { name: "(ENG) 떡잎부터 남다른 케플러 갓기시절👼🏻 짱플러의 육아난이도는?! [이게될까? - 멜론 스테이션 EP44]", @@ -53,6 +57,7 @@ test.describe("/bookmarks/history-chart", () => { test("requires login", async ({ page }) => { await page.goto("/bookmarks/history-chart"); + await waitForHydration(page); await page.getByText("Signin required").click(); await page.waitForURL("/users/signin"); }); @@ -61,6 +66,7 @@ test.describe("/bookmarks/history-chart", () => { test("basic", async ({ page }) => { await userHook.signin(page); await page.goto("/bookmarks/history-chart"); + await waitForHydration(page); await page.getByText("this week").click(); await page.getByRole('button').nth(3).click(); await page.waitForURL(`/bookmarks/history-chart?page=1`); diff --git a/app/e2e/decks.test.ts b/app/e2e/decks.test.ts index 7a29236696..7dbf1ddfb4 100644 --- a/app/e2e/decks.test.ts +++ b/app/e2e/decks.test.ts @@ -1,7 +1,7 @@ import { expect } from "@playwright/test"; import { DEFAULT_SEED_FILE, importSeed } from "../misc/seed-utils"; import { test } from "./coverage"; -import { useUserE2E } from "./helper"; +import { useUserE2E, waitForHydration } from "./helper"; test.describe("decks-empty", () => { const user = useUserE2E(test, { seed: __filename }); @@ -9,6 +9,7 @@ test.describe("decks-empty", () => { test("decks => new-deck => edit-deck => delete-deck", async ({ page }) => { await user.signin(page); await page.goto("/decks"); + await waitForHydration(page); // navigate to new deck page await page.locator('[data-test="new-deck-link"]').click(); @@ -60,6 +61,7 @@ test.describe("decks-seed", () => { await user.signin(page); await page.goto("/videos"); + await waitForHydration(page); // show add to deck modal await page @@ -79,6 +81,7 @@ test.describe("decks-seed", () => { test("show-deck => pagination => deck-history", async ({ page }) => { await user.signin(page); await page.goto("/decks"); + await waitForHydration(page); // nagivate to "/decks/$id" await page.locator('[data-test="deck-menu-popover-reference"]').click(); @@ -152,6 +155,7 @@ test.describe("decks-seed", () => { test("practice", async ({ page }) => { await user.signin(page); await page.goto("/decks"); + await waitForHydration(page); await page.getByRole("link", { name: "Korean" }).click(); await page.getByText("Progress").click(); await page.getByText("0 | 139").click(); @@ -165,6 +169,7 @@ test.describe("decks-import-export", () => { test("basic", async ({ page }) => { await user.signin(page); await page.goto("/decks"); + await waitForHydration(page); // import await page.locator(".i-ri-file-upload-line").click(); diff --git a/app/e2e/videos.test.ts b/app/e2e/videos.test.ts index 3c3f8c4469..d6c7d6a40f 100644 --- a/app/e2e/videos.test.ts +++ b/app/e2e/videos.test.ts @@ -3,7 +3,7 @@ import { expect } from "@playwright/test"; import { E, T, db } from "../db/drizzle-client.server"; import { importSeed } from "../misc/seed-utils"; import { test } from "./coverage"; -import { useUserE2E } from "./helper"; +import { useUserE2E, waitForHydration } from "./helper"; test.describe("videos-signed-in", () => { const user = useUserE2E(test, { @@ -18,6 +18,7 @@ test.describe("videos-signed-in", () => { // input video url in "/" // await page.goto("/"); + await waitForHydration(page); await page.getByTestId("Navbar-drawer-button").click(); await page.getByPlaceholder("Enter Video ID or URL").fill("https://www.youtube.com/watch?v=4gXmClk8rKI"); await page.getByPlaceholder("Enter Video ID or URL").press("Enter"); @@ -110,6 +111,7 @@ test.describe("videos-signed-in", () => { test("anonymouse: / => /videos/new => /videos/id", async ({ page }) => { await page.goto("/"); + await waitForHydration(page); // input videoId await page.getByTestId("Navbar-drawer-button").click(); @@ -141,6 +143,7 @@ test("anonymouse: / => /videos/new => /videos/id", async ({ page }) => { test("captions-editor-basic", async ({ page }) => { await page.goto("/"); + await waitForHydration(page); // input videoId await page.getByTestId("Navbar-drawer-button").click(); @@ -207,6 +210,7 @@ test("captions-editor-basic", async ({ page }) => { test("captions-editor-auto-save", async ({ page }) => { // PAXXWORD (NMIXX) https://www.youtube.com/watch?v=lH_n29wkT_4 await page.goto("/caption-editor/watch?v=lH_n29wkT_4"); + await waitForHydration(page); // import with manual + download await page.getByRole("button", { name: "Import" }).click(); @@ -258,6 +262,7 @@ test("captions-editor-auto-save", async ({ page }) => { test("invalid videoId input", async ({ page }) => { await page.goto("/"); + await waitForHydration(page); await page.getByTestId("Navbar-drawer-button").click(); await page.getByPlaceholder("Enter Video ID or URL").click(); await page @@ -280,6 +285,7 @@ test.describe("video playback rate", () => { test("basic", async ({ page }) => { await userHook.signin(page); await page.goto("/videos"); + await waitForHydration(page); await page .getByRole("link", { name: "fromis_9 (프로미스나인) 'DM' Official MV" }) .click(); @@ -301,6 +307,7 @@ test.describe("videos deletion", () => { test("error", async ({ page }) => { await userHook.signin(page); await page.goto("/videos"); + await waitForHydration(page); await page .locator('[data-test="video-component-popover-button"]') .nth(0) @@ -318,6 +325,7 @@ test.describe("videos deletion", () => { test.describe("videos new form", () => { test("reset form state", async ({ page }) => { await page.goto("/"); + await waitForHydration(page); // 1st navigation await page.getByTestId("Navbar-drawer-button").click(); From 8c423396b6fbc147ed5ba6857649bd23dbc24389 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 19 Nov 2023 12:52:27 +0900 Subject: [PATCH 26/72] test: more waitForHydration --- app/e2e/auth.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/e2e/auth.test.ts b/app/e2e/auth.test.ts index c24069bb7e..a5ef27b493 100644 --- a/app/e2e/auth.test.ts +++ b/app/e2e/auth.test.ts @@ -7,6 +7,7 @@ import { useUserE2E, waitForHydration } from "./helper"; test("/users/register success", async ({ page }) => { await page.goto("/"); + await waitForHydration(page); // navigate to signin await page.locator("header >> data-test=login-icon").click(); From 08581ebe572e9b4960d43b4083905eca84be3356 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 19 Nov 2023 13:06:20 +0900 Subject: [PATCH 27/72] test: more ci struggle --- app/e2e/auth.test.ts | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/app/e2e/auth.test.ts b/app/e2e/auth.test.ts index a5ef27b493..25a5ecf535 100644 --- a/app/e2e/auth.test.ts +++ b/app/e2e/auth.test.ts @@ -6,16 +6,7 @@ import { test } from "./coverage"; import { useUserE2E, waitForHydration } from "./helper"; test("/users/register success", async ({ page }) => { - await page.goto("/"); - await waitForHydration(page); - - // navigate to signin - await page.locator("header >> data-test=login-icon").click(); - await expect(page).toHaveURL("/users/signin"); - - // navigate to register - await page.locator("data-test=signin-form >> text=Register").click(); - await expect(page).toHaveURL("/users/register"); + await page.goto("/users/register"); await waitForHydration(page); // submit form From 0ac381f74b02be049f78df2b0dce551f3aac7e2b Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 19 Nov 2023 13:22:04 +0900 Subject: [PATCH 28/72] ci: disable coverage --- .github/workflows/ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 863036ab50..7027966cdf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -114,10 +114,11 @@ jobs: with: name: coverage-unit path: coverage/unit - - uses: actions/download-artifact@v3 - with: - name: coverage-e2e-server - path: coverage/e2e-server + # TODO + # - uses: actions/download-artifact@v3 + # with: + # name: coverage-e2e-server + # path: coverage/e2e-server - name: publish report run: | # run gh-pages From 0217c8af3148ec6a591ab290b8669c70444efb26 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 19 Nov 2023 13:22:22 +0900 Subject: [PATCH 29/72] chore: esm --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 52f7faf43f..cbd79a3280 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "@hiogawa/ytsub", "private": true, + "type": "module", "scripts": { "dev": "run-p dev:*", "dev:remix": "vite dev", From f5f61d42d50331d8553ea8a395d61391acc75f51 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 19 Nov 2023 13:22:54 +0900 Subject: [PATCH 30/72] Revert "chore: esm" This reverts commit 0217c8af3148ec6a591ab290b8669c70444efb26. --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index cbd79a3280..52f7faf43f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,6 @@ { "name": "@hiogawa/ytsub", "private": true, - "type": "module", "scripts": { "dev": "run-p dev:*", "dev:remix": "vite dev", From f376d430b7b7399cea6f694e052d19c12fb635c3 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 19 Nov 2023 13:41:55 +0900 Subject: [PATCH 31/72] chore(deps): update react-query (TODO: this should be done in a separate PR) --- app/components/caption-editor.tsx | 4 +- app/root.tsx | 4 +- app/routes/bookmarks/history-chart.tsx | 4 +- app/routes/bookmarks/index.tsx | 13 +++-- app/routes/decks/$id/edit.tsx | 8 +-- app/routes/decks/$id/history-graph.tsx | 4 +- app/routes/decks/$id/history.tsx | 9 ++- app/routes/decks/$id/practice.tsx | 23 +++++--- app/routes/decks/import.tsx | 20 +++---- app/routes/decks/new.tsx | 4 +- app/routes/users/me.tsx | 12 ++-- app/routes/users/password-new.tsx | 4 +- app/routes/users/password-reset.tsx | 4 +- app/routes/users/register.tsx | 4 +- app/routes/users/signin.tsx | 4 +- app/routes/videos/$id.tsx | 6 +- app/routes/videos/index.tsx | 4 +- app/routes/videos/new.tsx | 8 +-- app/utils/current-user.ts | 2 +- app/utils/react-query-utils.tsx | 2 +- app/utils/youtube.ts | 16 +++--- package.json | 4 +- pnpm-lock.yaml | 77 +++++++------------------- vite.config.ts | 14 +++++ 24 files changed, 121 insertions(+), 133 deletions(-) diff --git a/app/components/caption-editor.tsx b/app/components/caption-editor.tsx index a084de61a3..dcf3a4554c 100644 --- a/app/components/caption-editor.tsx +++ b/app/components/caption-editor.tsx @@ -476,9 +476,9 @@ function ImportModalForm(props: { diff --git a/app/root.tsx b/app/root.tsx index beb397fed0..3cd7cd4405 100644 --- a/app/root.tsx +++ b/app/root.tsx @@ -324,12 +324,12 @@ function SignoutComponent() { @@ -131,9 +131,9 @@ function DefaultComponentInner() { diff --git a/app/routes/decks/new.tsx b/app/routes/decks/new.tsx index 94f12fcde5..cee871407a 100644 --- a/app/routes/decks/new.tsx +++ b/app/routes/decks/new.tsx @@ -74,9 +74,9 @@ export default function DefaultComponent() { type="submit" className={cls( "antd-btn antd-btn-primary p-1", - newDeckMutation.isLoading && "antd-btn-loading" + newDeckMutation.isPending && "antd-btn-loading" )} - disabled={newDeckMutation.isLoading || newDeckMutation.isSuccess} + disabled={newDeckMutation.isPending || newDeckMutation.isSuccess} > Create diff --git a/app/routes/users/me.tsx b/app/routes/users/me.tsx index e3c8b30102..834fc49ab0 100644 --- a/app/routes/users/me.tsx +++ b/app/routes/users/me.tsx @@ -153,9 +153,9 @@ export default function DefaultComponent() { type="submit" className={cls( "antd-btn antd-btn-primary p-1 flex justify-center items-center", - updateMutation.isLoading && "antd-btn-loading" + updateMutation.isPending && "antd-btn-loading" )} - disabled={updateMutation.isLoading || !form.isDirty} + disabled={updateMutation.isPending || !form.isDirty} > Save @@ -174,10 +174,10 @@ export default function DefaultComponent() { diff --git a/app/routes/users/password-new.tsx b/app/routes/users/password-new.tsx index f18bdbf9bb..074d2843a4 100644 --- a/app/routes/users/password-new.tsx +++ b/app/routes/users/password-new.tsx @@ -66,9 +66,9 @@ export default function Page() { type="submit" className={cls( "antd-btn antd-btn-primary p-1 flex justify-center items-center", - mutation.isLoading && "antd-btn-loading" + mutation.isPending && "antd-btn-loading" )} - disabled={mutation.isLoading || mutation.isSuccess} + disabled={mutation.isPending || mutation.isSuccess} > Submit diff --git a/app/routes/users/password-reset.tsx b/app/routes/users/password-reset.tsx index 7a4d7f158e..2b9cf0c300 100644 --- a/app/routes/users/password-reset.tsx +++ b/app/routes/users/password-reset.tsx @@ -56,10 +56,10 @@ export default function Page() { type="submit" className={cls( "antd-btn antd-btn-primary p-1 flex justify-center items-center", - mutation.isLoading && "antd-btn-loading" + mutation.isPending && "antd-btn-loading" )} disabled={ - mutation.isLoading || + mutation.isPending || mutation.isSuccess || !turnstile.query.isSuccess } diff --git a/app/routes/users/register.tsx b/app/routes/users/register.tsx index 5381633db4..a6f8557555 100644 --- a/app/routes/users/register.tsx +++ b/app/routes/users/register.tsx @@ -92,11 +92,11 @@ export default function DefaultComponent() { type="submit" className={cls( "antd-btn antd-btn-primary p-1", - registerMutation.isLoading && "antd-btn-loading" + registerMutation.isPending && "antd-btn-loading" )} disabled={ !turnstile.query.isSuccess || - registerMutation.isLoading || + registerMutation.isPending || registerMutation.isSuccess } > diff --git a/app/routes/users/signin.tsx b/app/routes/users/signin.tsx index 4e382ea5b3..6d3aa3c1f2 100644 --- a/app/routes/users/signin.tsx +++ b/app/routes/users/signin.tsx @@ -78,9 +78,9 @@ export default function DefaultComponent() { type="submit" className={cls( "antd-btn antd-btn-primary p-1", - signinMutation.isLoading && "antd-btn-loading" + signinMutation.isPending && "antd-btn-loading" )} - disabled={signinMutation.isLoading || signinMutation.isSuccess} + disabled={signinMutation.isPending || signinMutation.isSuccess} > Sign in diff --git a/app/routes/videos/$id.tsx b/app/routes/videos/$id.tsx index 7ed3fa2d99..1b05dd6586 100644 --- a/app/routes/videos/$id.tsx +++ b/app/routes/videos/$id.tsx @@ -333,7 +333,7 @@ function PageComponent({ currentUser && currentUser.id === video.userId && ( { lastBookmarkQuery.mutate({ videoId: video.id }); diff --git a/app/routes/videos/index.tsx b/app/routes/videos/index.tsx index 420e339e52..57759983e0 100644 --- a/app/routes/videos/index.tsx +++ b/app/routes/videos/index.tsx @@ -91,7 +91,7 @@ function VideoComponentExtra({ key={video.id} video={video} bookmarkEntriesCount={video.bookmarkEntriesCount} - isLoading={deleteVideoMutation.isLoading} + isLoading={deleteVideoMutation.isPending} actions={ currentUser && currentUser.id === video.userId && @@ -176,7 +176,7 @@ function AddToDeckComponent({ newPracticeEntryMutation.mutate({ videoId, deckId: deck.id }); } - const isLoading = decksQuery.isLoading || newPracticeEntryMutation.isLoading; + const isLoading = decksQuery.isLoading || newPracticeEntryMutation.isPending; return (
Save and Play @@ -253,9 +253,9 @@ function AdvancedModeForm({ videoId }: { videoId: string }) { type="submit" className={cls( "antd-btn antd-btn-primary p-1", - createMutation.isLoading && "antd-btn-loading" + createMutation.isPending && "antd-btn-loading" )} - disabled={createMutation.isLoading || createMutation.isSuccess} + disabled={createMutation.isPending || createMutation.isSuccess} > Save and Play diff --git a/app/utils/current-user.ts b/app/utils/current-user.ts index b36af5c2b4..f8e6276b13 100644 --- a/app/utils/current-user.ts +++ b/app/utils/current-user.ts @@ -15,7 +15,7 @@ export function useCurrentUser() { queryKey, queryFn: () => none() ?? null, // tanstack query rejects `undefined` staleTime: Infinity, - cacheTime: Infinity, + gcTime: Infinity, }); return query.data; } diff --git a/app/utils/react-query-utils.tsx b/app/utils/react-query-utils.tsx index 51507d7430..aa9be3b059 100644 --- a/app/utils/react-query-utils.tsx +++ b/app/utils/react-query-utils.tsx @@ -57,7 +57,7 @@ function createQueryClient() { rpcClientQuery.videos_getCaptionEntries.queryKey, { staleTime: Infinity, - cacheTime: Infinity, + gcTime: Infinity, } ); diff --git a/app/utils/youtube.ts b/app/utils/youtube.ts index edc85a8230..9c36b6ae3c 100644 --- a/app/utils/youtube.ts +++ b/app/utils/youtube.ts @@ -458,15 +458,13 @@ export function usePlayerLoader( } }); - const mutation = useMutation( - (el: HTMLElement) => loadYoutubePlayer(el, playerOptions), - { - onSuccess: onReady, - onError: () => { - toast.error("Failed to initialize youtube player"); - }, - } - ); + const mutation = useMutation({ + mutationFn: (el: HTMLElement) => loadYoutubePlayer(el, playerOptions), + onSuccess: onReady, + onError: () => { + toast.error("Failed to initialize youtube player"); + }, + }); React.useEffect(() => { return () => mutation.data?.destroy(); diff --git a/package.json b/package.json index 52f7faf43f..2b8fac8bfc 100644 --- a/package.json +++ b/package.json @@ -64,8 +64,8 @@ "@remix-run/react": "2.3.0", "@remix-run/server-runtime": "2.3.0", "@remix-run/v1-route-convention": "^0.1.4", - "@tanstack/react-query": "^4.36.1", - "@tanstack/react-query-devtools": "^4.36.1", + "@tanstack/react-query": "^5.8.4", + "@tanstack/react-query-devtools": "^5.8.4", "@tanstack/react-virtual": "3.0.0-beta.54", "cookie": "^0.5.0", "drizzle-orm": "^0.26.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa34b8a294..c63dec558c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -86,11 +86,11 @@ dependencies: specifier: ^0.1.4 version: 0.1.4(@remix-run/dev@2.3.0) '@tanstack/react-query': - specifier: ^4.36.1 - version: 4.36.1(react-dom@18.2.0)(react@18.2.0) + specifier: ^5.8.4 + version: 5.8.4(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query-devtools': - specifier: ^4.36.1 - version: 4.36.1(@tanstack/react-query@4.36.1)(react-dom@18.2.0)(react@18.2.0) + specifier: ^5.8.4 + version: 5.8.4(@tanstack/react-query@5.8.4)(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-virtual': specifier: 3.0.0-beta.54 version: 3.0.0-beta.54(react@18.2.0) @@ -2555,37 +2555,32 @@ packages: defer-to-connect: 2.0.1 dev: true - /@tanstack/match-sorter-utils@8.8.4: - resolution: {integrity: sha512-rKH8LjZiszWEvmi01NR72QWZ8m4xmXre0OOwlRGnjU01Eqz/QnN+cqpty2PJ0efHblq09+KilvyR7lsbzmXVEw==} - engines: {node: '>=12'} - dependencies: - remove-accents: 0.4.2 + /@tanstack/query-core@5.8.3: + resolution: {integrity: sha512-SWFMFtcHfttLYif6pevnnMYnBvxKf3C+MHMH7bevyYfpXpTMsLB9O6nNGBdWSoPwnZRXFNyNeVZOw25Wmdasow==} dev: false - /@tanstack/query-core@4.36.1: - resolution: {integrity: sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==} + /@tanstack/query-devtools@5.8.4: + resolution: {integrity: sha512-F1dRbITNt9tMUoM9WCH8WQ2c54116hv52m/PKK8ZiN/pO2wGVzTZtKuLanF8pFpwmNchjIixcMw/a57HY5ivcw==} dev: false - /@tanstack/react-query-devtools@4.36.1(@tanstack/react-query@4.36.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-WYku83CKP3OevnYSG8Y/QO9g0rT75v1om5IvcWUwiUZJ4LanYGLVCZ8TdFG5jfsq4Ej/lu2wwDAULEUnRIMBSw==} + /@tanstack/react-query-devtools@5.8.4(@tanstack/react-query@5.8.4)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-mffs51FJqXU/5rwhbwv393DccL6et7uK2pRLwOcmMrWbPyW8vpxr9oidaghHX4cdVeP/7u5owW9yMpBhBAJfcQ==} peerDependencies: - '@tanstack/react-query': ^4.36.1 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@tanstack/react-query': ^5.8.4 + react: ^18.0.0 + react-dom: ^18.0.0 dependencies: - '@tanstack/match-sorter-utils': 8.8.4 - '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0) + '@tanstack/query-devtools': 5.8.4 + '@tanstack/react-query': 5.8.4(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - superjson: 1.13.3 - use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /@tanstack/react-query@4.36.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==} + /@tanstack/react-query@5.8.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CD+AkXzg8J72JrE6ocmuBEJfGzEzu/bzkD6sFXFDDB5yji9N20JofXZlN6n0+CaPJuIi+e4YLCbGsyPFKkfNQA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^18.0.0 + react-dom: ^18.0.0 react-native: '*' peerDependenciesMeta: react-dom: @@ -2593,10 +2588,9 @@ packages: react-native: optional: true dependencies: - '@tanstack/query-core': 4.36.1 + '@tanstack/query-core': 5.8.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - use-sync-external-store: 1.2.0(react@18.2.0) dev: false /@tanstack/react-virtual@3.0.0-beta.54(react@18.2.0): @@ -3803,13 +3797,6 @@ packages: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} - /copy-anything@3.0.5: - resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} - engines: {node: '>=12.13'} - dependencies: - is-what: 4.1.16 - dev: false - /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -5441,11 +5428,6 @@ packages: call-bind: 1.0.5 dev: true - /is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} - dev: false - /is-yarn-global@0.4.1: resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} engines: {node: '>=12'} @@ -7483,10 +7465,6 @@ packages: engines: {node: '>=8'} dev: true - /remove-accents@0.4.2: - resolution: {integrity: sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==} - dev: false - /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -8048,13 +8026,6 @@ packages: dependencies: inline-style-parser: 0.1.1 - /superjson@1.13.3: - resolution: {integrity: sha512-mJiVjfd2vokfDxsQPOwJ/PtanO87LhpYY88ubI5dUB1Ab58Txbyje3+jpm+/83R/fevaq/107NNhtYBLuoTrFg==} - engines: {node: '>=10'} - dependencies: - copy-anything: 3.0.5 - dev: false - /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -8488,14 +8459,6 @@ packages: resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} dev: true - /use-sync-external-store@1.2.0(react@18.2.0): - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} diff --git a/vite.config.ts b/vite.config.ts index 0d0b945b11..fc5642c610 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -49,4 +49,18 @@ export default defineConfig((env) => ({ server: { port: Number(process.env.PORT ?? "3000"), }, + build: { + rollupOptions: { + // silence warning by "use client" in react-query https://github.com/TanStack/query/pull/5161#issuecomment-1506683450 + onwarn(warning, defaultHandler) { + if ( + warning.code === "MODULE_LEVEL_DIRECTIVE" && + warning.message.includes(`"use client"`) + ) { + return; + } + defaultHandler(warning); + }, + }, + }, })); From 7219dfef5cbd93360552a23ea4def9553ad959bf Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 08:49:16 +0900 Subject: [PATCH 32/72] Revert "chore(deps): update react-query (TODO: this should be done in a separate PR)" This reverts commit f376d430b7b7399cea6f694e052d19c12fb635c3. --- app/components/caption-editor.tsx | 4 +- app/root.tsx | 4 +- app/routes/bookmarks/history-chart.tsx | 4 +- app/routes/bookmarks/index.tsx | 13 ++--- app/routes/decks/$id/edit.tsx | 8 +-- app/routes/decks/$id/history-graph.tsx | 4 +- app/routes/decks/$id/history.tsx | 9 +-- app/routes/decks/$id/practice.tsx | 23 +++----- app/routes/decks/import.tsx | 20 ++++--- app/routes/decks/new.tsx | 4 +- app/routes/users/me.tsx | 12 ++-- app/routes/users/password-new.tsx | 4 +- app/routes/users/password-reset.tsx | 4 +- app/routes/users/register.tsx | 4 +- app/routes/users/signin.tsx | 4 +- app/routes/videos/$id.tsx | 6 +- app/routes/videos/index.tsx | 4 +- app/routes/videos/new.tsx | 8 +-- app/utils/current-user.ts | 2 +- app/utils/react-query-utils.tsx | 2 +- app/utils/youtube.ts | 16 +++--- package.json | 4 +- pnpm-lock.yaml | 77 +++++++++++++++++++------- vite.config.ts | 14 ----- 24 files changed, 133 insertions(+), 121 deletions(-) diff --git a/app/components/caption-editor.tsx b/app/components/caption-editor.tsx index dcf3a4554c..a084de61a3 100644 --- a/app/components/caption-editor.tsx +++ b/app/components/caption-editor.tsx @@ -476,9 +476,9 @@ function ImportModalForm(props: { diff --git a/app/root.tsx b/app/root.tsx index 3cd7cd4405..beb397fed0 100644 --- a/app/root.tsx +++ b/app/root.tsx @@ -324,12 +324,12 @@ function SignoutComponent() { @@ -131,9 +131,9 @@ function DefaultComponentInner() { diff --git a/app/routes/decks/new.tsx b/app/routes/decks/new.tsx index cee871407a..94f12fcde5 100644 --- a/app/routes/decks/new.tsx +++ b/app/routes/decks/new.tsx @@ -74,9 +74,9 @@ export default function DefaultComponent() { type="submit" className={cls( "antd-btn antd-btn-primary p-1", - newDeckMutation.isPending && "antd-btn-loading" + newDeckMutation.isLoading && "antd-btn-loading" )} - disabled={newDeckMutation.isPending || newDeckMutation.isSuccess} + disabled={newDeckMutation.isLoading || newDeckMutation.isSuccess} > Create diff --git a/app/routes/users/me.tsx b/app/routes/users/me.tsx index 834fc49ab0..e3c8b30102 100644 --- a/app/routes/users/me.tsx +++ b/app/routes/users/me.tsx @@ -153,9 +153,9 @@ export default function DefaultComponent() { type="submit" className={cls( "antd-btn antd-btn-primary p-1 flex justify-center items-center", - updateMutation.isPending && "antd-btn-loading" + updateMutation.isLoading && "antd-btn-loading" )} - disabled={updateMutation.isPending || !form.isDirty} + disabled={updateMutation.isLoading || !form.isDirty} > Save @@ -174,10 +174,10 @@ export default function DefaultComponent() { diff --git a/app/routes/users/password-new.tsx b/app/routes/users/password-new.tsx index 074d2843a4..f18bdbf9bb 100644 --- a/app/routes/users/password-new.tsx +++ b/app/routes/users/password-new.tsx @@ -66,9 +66,9 @@ export default function Page() { type="submit" className={cls( "antd-btn antd-btn-primary p-1 flex justify-center items-center", - mutation.isPending && "antd-btn-loading" + mutation.isLoading && "antd-btn-loading" )} - disabled={mutation.isPending || mutation.isSuccess} + disabled={mutation.isLoading || mutation.isSuccess} > Submit diff --git a/app/routes/users/password-reset.tsx b/app/routes/users/password-reset.tsx index 2b9cf0c300..7a4d7f158e 100644 --- a/app/routes/users/password-reset.tsx +++ b/app/routes/users/password-reset.tsx @@ -56,10 +56,10 @@ export default function Page() { type="submit" className={cls( "antd-btn antd-btn-primary p-1 flex justify-center items-center", - mutation.isPending && "antd-btn-loading" + mutation.isLoading && "antd-btn-loading" )} disabled={ - mutation.isPending || + mutation.isLoading || mutation.isSuccess || !turnstile.query.isSuccess } diff --git a/app/routes/users/register.tsx b/app/routes/users/register.tsx index a6f8557555..5381633db4 100644 --- a/app/routes/users/register.tsx +++ b/app/routes/users/register.tsx @@ -92,11 +92,11 @@ export default function DefaultComponent() { type="submit" className={cls( "antd-btn antd-btn-primary p-1", - registerMutation.isPending && "antd-btn-loading" + registerMutation.isLoading && "antd-btn-loading" )} disabled={ !turnstile.query.isSuccess || - registerMutation.isPending || + registerMutation.isLoading || registerMutation.isSuccess } > diff --git a/app/routes/users/signin.tsx b/app/routes/users/signin.tsx index 6d3aa3c1f2..4e382ea5b3 100644 --- a/app/routes/users/signin.tsx +++ b/app/routes/users/signin.tsx @@ -78,9 +78,9 @@ export default function DefaultComponent() { type="submit" className={cls( "antd-btn antd-btn-primary p-1", - signinMutation.isPending && "antd-btn-loading" + signinMutation.isLoading && "antd-btn-loading" )} - disabled={signinMutation.isPending || signinMutation.isSuccess} + disabled={signinMutation.isLoading || signinMutation.isSuccess} > Sign in diff --git a/app/routes/videos/$id.tsx b/app/routes/videos/$id.tsx index 1b05dd6586..7ed3fa2d99 100644 --- a/app/routes/videos/$id.tsx +++ b/app/routes/videos/$id.tsx @@ -333,7 +333,7 @@ function PageComponent({ currentUser && currentUser.id === video.userId && ( { lastBookmarkQuery.mutate({ videoId: video.id }); diff --git a/app/routes/videos/index.tsx b/app/routes/videos/index.tsx index 57759983e0..420e339e52 100644 --- a/app/routes/videos/index.tsx +++ b/app/routes/videos/index.tsx @@ -91,7 +91,7 @@ function VideoComponentExtra({ key={video.id} video={video} bookmarkEntriesCount={video.bookmarkEntriesCount} - isLoading={deleteVideoMutation.isPending} + isLoading={deleteVideoMutation.isLoading} actions={ currentUser && currentUser.id === video.userId && @@ -176,7 +176,7 @@ function AddToDeckComponent({ newPracticeEntryMutation.mutate({ videoId, deckId: deck.id }); } - const isLoading = decksQuery.isLoading || newPracticeEntryMutation.isPending; + const isLoading = decksQuery.isLoading || newPracticeEntryMutation.isLoading; return (
Save and Play @@ -253,9 +253,9 @@ function AdvancedModeForm({ videoId }: { videoId: string }) { type="submit" className={cls( "antd-btn antd-btn-primary p-1", - createMutation.isPending && "antd-btn-loading" + createMutation.isLoading && "antd-btn-loading" )} - disabled={createMutation.isPending || createMutation.isSuccess} + disabled={createMutation.isLoading || createMutation.isSuccess} > Save and Play diff --git a/app/utils/current-user.ts b/app/utils/current-user.ts index f8e6276b13..b36af5c2b4 100644 --- a/app/utils/current-user.ts +++ b/app/utils/current-user.ts @@ -15,7 +15,7 @@ export function useCurrentUser() { queryKey, queryFn: () => none() ?? null, // tanstack query rejects `undefined` staleTime: Infinity, - gcTime: Infinity, + cacheTime: Infinity, }); return query.data; } diff --git a/app/utils/react-query-utils.tsx b/app/utils/react-query-utils.tsx index aa9be3b059..51507d7430 100644 --- a/app/utils/react-query-utils.tsx +++ b/app/utils/react-query-utils.tsx @@ -57,7 +57,7 @@ function createQueryClient() { rpcClientQuery.videos_getCaptionEntries.queryKey, { staleTime: Infinity, - gcTime: Infinity, + cacheTime: Infinity, } ); diff --git a/app/utils/youtube.ts b/app/utils/youtube.ts index 9c36b6ae3c..edc85a8230 100644 --- a/app/utils/youtube.ts +++ b/app/utils/youtube.ts @@ -458,13 +458,15 @@ export function usePlayerLoader( } }); - const mutation = useMutation({ - mutationFn: (el: HTMLElement) => loadYoutubePlayer(el, playerOptions), - onSuccess: onReady, - onError: () => { - toast.error("Failed to initialize youtube player"); - }, - }); + const mutation = useMutation( + (el: HTMLElement) => loadYoutubePlayer(el, playerOptions), + { + onSuccess: onReady, + onError: () => { + toast.error("Failed to initialize youtube player"); + }, + } + ); React.useEffect(() => { return () => mutation.data?.destroy(); diff --git a/package.json b/package.json index 2b8fac8bfc..52f7faf43f 100644 --- a/package.json +++ b/package.json @@ -64,8 +64,8 @@ "@remix-run/react": "2.3.0", "@remix-run/server-runtime": "2.3.0", "@remix-run/v1-route-convention": "^0.1.4", - "@tanstack/react-query": "^5.8.4", - "@tanstack/react-query-devtools": "^5.8.4", + "@tanstack/react-query": "^4.36.1", + "@tanstack/react-query-devtools": "^4.36.1", "@tanstack/react-virtual": "3.0.0-beta.54", "cookie": "^0.5.0", "drizzle-orm": "^0.26.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c63dec558c..fa34b8a294 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -86,11 +86,11 @@ dependencies: specifier: ^0.1.4 version: 0.1.4(@remix-run/dev@2.3.0) '@tanstack/react-query': - specifier: ^5.8.4 - version: 5.8.4(react-dom@18.2.0)(react@18.2.0) + specifier: ^4.36.1 + version: 4.36.1(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query-devtools': - specifier: ^5.8.4 - version: 5.8.4(@tanstack/react-query@5.8.4)(react-dom@18.2.0)(react@18.2.0) + specifier: ^4.36.1 + version: 4.36.1(@tanstack/react-query@4.36.1)(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-virtual': specifier: 3.0.0-beta.54 version: 3.0.0-beta.54(react@18.2.0) @@ -2555,32 +2555,37 @@ packages: defer-to-connect: 2.0.1 dev: true - /@tanstack/query-core@5.8.3: - resolution: {integrity: sha512-SWFMFtcHfttLYif6pevnnMYnBvxKf3C+MHMH7bevyYfpXpTMsLB9O6nNGBdWSoPwnZRXFNyNeVZOw25Wmdasow==} + /@tanstack/match-sorter-utils@8.8.4: + resolution: {integrity: sha512-rKH8LjZiszWEvmi01NR72QWZ8m4xmXre0OOwlRGnjU01Eqz/QnN+cqpty2PJ0efHblq09+KilvyR7lsbzmXVEw==} + engines: {node: '>=12'} + dependencies: + remove-accents: 0.4.2 dev: false - /@tanstack/query-devtools@5.8.4: - resolution: {integrity: sha512-F1dRbITNt9tMUoM9WCH8WQ2c54116hv52m/PKK8ZiN/pO2wGVzTZtKuLanF8pFpwmNchjIixcMw/a57HY5ivcw==} + /@tanstack/query-core@4.36.1: + resolution: {integrity: sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==} dev: false - /@tanstack/react-query-devtools@5.8.4(@tanstack/react-query@5.8.4)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-mffs51FJqXU/5rwhbwv393DccL6et7uK2pRLwOcmMrWbPyW8vpxr9oidaghHX4cdVeP/7u5owW9yMpBhBAJfcQ==} + /@tanstack/react-query-devtools@4.36.1(@tanstack/react-query@4.36.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-WYku83CKP3OevnYSG8Y/QO9g0rT75v1om5IvcWUwiUZJ4LanYGLVCZ8TdFG5jfsq4Ej/lu2wwDAULEUnRIMBSw==} peerDependencies: - '@tanstack/react-query': ^5.8.4 - react: ^18.0.0 - react-dom: ^18.0.0 + '@tanstack/react-query': ^4.36.1 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@tanstack/query-devtools': 5.8.4 - '@tanstack/react-query': 5.8.4(react-dom@18.2.0)(react@18.2.0) + '@tanstack/match-sorter-utils': 8.8.4 + '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + superjson: 1.13.3 + use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /@tanstack/react-query@5.8.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-CD+AkXzg8J72JrE6ocmuBEJfGzEzu/bzkD6sFXFDDB5yji9N20JofXZlN6n0+CaPJuIi+e4YLCbGsyPFKkfNQA==} + /@tanstack/react-query@4.36.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==} peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-native: '*' peerDependenciesMeta: react-dom: @@ -2588,9 +2593,10 @@ packages: react-native: optional: true dependencies: - '@tanstack/query-core': 5.8.3 + '@tanstack/query-core': 4.36.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.2.0(react@18.2.0) dev: false /@tanstack/react-virtual@3.0.0-beta.54(react@18.2.0): @@ -3797,6 +3803,13 @@ packages: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} + /copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + dependencies: + is-what: 4.1.16 + dev: false + /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -5428,6 +5441,11 @@ packages: call-bind: 1.0.5 dev: true + /is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + dev: false + /is-yarn-global@0.4.1: resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} engines: {node: '>=12'} @@ -7465,6 +7483,10 @@ packages: engines: {node: '>=8'} dev: true + /remove-accents@0.4.2: + resolution: {integrity: sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==} + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -8026,6 +8048,13 @@ packages: dependencies: inline-style-parser: 0.1.1 + /superjson@1.13.3: + resolution: {integrity: sha512-mJiVjfd2vokfDxsQPOwJ/PtanO87LhpYY88ubI5dUB1Ab58Txbyje3+jpm+/83R/fevaq/107NNhtYBLuoTrFg==} + engines: {node: '>=10'} + dependencies: + copy-anything: 3.0.5 + dev: false + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -8459,6 +8488,14 @@ packages: resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} dev: true + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} diff --git a/vite.config.ts b/vite.config.ts index fc5642c610..0d0b945b11 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -49,18 +49,4 @@ export default defineConfig((env) => ({ server: { port: Number(process.env.PORT ?? "3000"), }, - build: { - rollupOptions: { - // silence warning by "use client" in react-query https://github.com/TanStack/query/pull/5161#issuecomment-1506683450 - onwarn(warning, defaultHandler) { - if ( - warning.code === "MODULE_LEVEL_DIRECTIVE" && - warning.message.includes(`"use client"`) - ) { - return; - } - defaultHandler(warning); - }, - }, - }, })); From 198a2b3b07b2b659a9c93c9ee13e096c0d5c23f3 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 11:39:41 +0900 Subject: [PATCH 33/72] chore(deps): update unocss --- package.json | 4 +- pnpm-lock.yaml | 254 +++++++++++++++++++++++++++---------------------- 2 files changed, 139 insertions(+), 119 deletions(-) diff --git a/package.json b/package.json index 52f7faf43f..06cc9de867 100644 --- a/package.json +++ b/package.json @@ -96,8 +96,6 @@ "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", "@types/showdown": "^2.0.4", - "@unocss/cli": "^0.52.7", - "@unocss/reset": "^0.52.7", "@vavite/connect": "^3.0.0", "@vitejs/plugin-react": "^4.1.1", "@vitest/coverage-v8": "^0.34.6", @@ -114,7 +112,7 @@ "qrcode-terminal": "^0.12.0", "showdown": "^2.1.0", "typescript": "^5.2.2", - "unocss": "^0.52.7", + "unocss": "^0.57.6", "vite": "^5.0.0", "vitest": "^0.34.6" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa34b8a294..f819cc9248 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -140,7 +140,7 @@ devDependencies: version: 0.0.1-pre.10(react@18.2.0) '@hiogawa/unocss-preset-antd': specifier: 2.2.1-pre.7 - version: 2.2.1-pre.7(unocss@0.52.7) + version: 2.2.1-pre.7(unocss@0.57.6) '@hiogawa/utils-node': specifier: 0.0.1-pre.5 version: 0.0.1-pre.5 @@ -177,12 +177,6 @@ devDependencies: '@types/showdown': specifier: ^2.0.4 version: 2.0.4 - '@unocss/cli': - specifier: ^0.52.7 - version: 0.52.7 - '@unocss/reset': - specifier: ^0.52.7 - version: 0.52.7 '@vavite/connect': specifier: ^3.0.0 version: 3.0.0(vite@5.0.0) @@ -232,8 +226,8 @@ devDependencies: specifier: ^5.2.2 version: 5.2.2 unocss: - specifier: ^0.52.7 - version: 0.52.7(postcss@8.4.31)(vite@5.0.0) + specifier: ^0.57.6 + version: 0.57.6(postcss@8.4.31)(vite@5.0.0) vite: specifier: ^5.0.0 version: 5.0.0(@types/node@18.18.9) @@ -1595,12 +1589,12 @@ packages: react: 18.2.0 dev: false - /@hiogawa/unocss-preset-antd@2.2.1-pre.7(unocss@0.52.7): + /@hiogawa/unocss-preset-antd@2.2.1-pre.7(unocss@0.57.6): resolution: {integrity: sha512-gwY0T8FpFzvHE3I2bShDFKRFAlf1dxgAeaLkfGy7VpNkVr7NkrS3hIUb3An95zAjQWSvgP90t+p1e8AaFW8oXw==} peerDependencies: unocss: '*' dependencies: - unocss: 0.52.7(postcss@8.4.31)(vite@5.0.0) + unocss: 0.57.6(postcss@8.4.31)(vite@5.0.0) dev: true /@hiogawa/utils-hattip@0.0.1-pre.1: @@ -2824,27 +2818,32 @@ packages: /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - /@unocss/astro@0.52.7(vite@5.0.0): - resolution: {integrity: sha512-jGm3sVB6AU3A1vXJskCdG2kUw1aRdg2fV60nILCBiRmj7SIlbMTXEHrz864AaleGVnxTiV7oGL4P1DfDJ3tQSA==} + /@unocss/astro@0.57.6(vite@5.0.0): + resolution: {integrity: sha512-7NIGMg9ZHlWWeZoOFzruKQh6sz+wKtRN8ioiAOxIYVtULCoazfjhfzhiWcmyiHWVgrZ0TyUep/nz5cRumNBrQw==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + vite: + optional: true dependencies: - '@unocss/core': 0.52.7 - '@unocss/reset': 0.52.7 - '@unocss/vite': 0.52.7(vite@5.0.0) + '@unocss/core': 0.57.6 + '@unocss/reset': 0.57.6 + '@unocss/vite': 0.57.6(vite@5.0.0) + vite: 5.0.0(@types/node@18.18.9) transitivePeerDependencies: - rollup - - vite dev: true - /@unocss/cli@0.52.7: - resolution: {integrity: sha512-WC82yIMH6RH8W/0Gb26WEjNf/E8Rb1m6qywhtpuzwEYWmA8z6+uDvIaoXu8lhSpVeggQwjdzOXFe0++GRTcQ3Q==} + /@unocss/cli@0.57.6: + resolution: {integrity: sha512-s6/TghesVk+0bKPBJ86gk9FI6EO8Jc9GyJ1/qNOxR5Q3O+EttYsptHuicY4pZXGFWsU7AnD6ZziixQiPHJGamw==} engines: {node: '>=14'} hasBin: true dependencies: '@ampproject/remapping': 2.2.1 '@rollup/pluginutils': 5.0.5 - '@unocss/config': 0.52.7 - '@unocss/core': 0.52.7 - '@unocss/preset-uno': 0.52.7 + '@unocss/config': 0.57.6 + '@unocss/core': 0.57.6 + '@unocss/preset-uno': 0.57.6 cac: 6.7.14 chokidar: 3.5.3 colorette: 2.0.20 @@ -2857,154 +2856,174 @@ packages: - rollup dev: true - /@unocss/config@0.52.7: - resolution: {integrity: sha512-VKj4VnJR88EK0ikJnQbfslZfMCqdGu6LhnErs3x0HjQPVQU1oFsB1IM4ySGLaGhM4WcfZf05gzMzIav3kFyopg==} + /@unocss/config@0.57.6: + resolution: {integrity: sha512-ZPWS2ju430xhtS1ZFNcuNhosuBwk9iSQEnhej9n7Qem6sr5odTxx7FqExb2eG4rjMyOIlwSInv+krg39xAAibg==} engines: {node: '>=14'} dependencies: - '@unocss/core': 0.52.7 + '@unocss/core': 0.57.6 unconfig: 0.3.11 dev: true - /@unocss/core@0.52.7: - resolution: {integrity: sha512-dZonrlfu33SkUMsZXlsyYSM79tr2nLer/hBEU2ZaemRik2KchxIUNlZV6kX1f1k3m+gEtVQOyx1MImpgLS8PWg==} + /@unocss/core@0.57.6: + resolution: {integrity: sha512-rkqMX5Lyyl2u2PF2EMcH/QeFUAoiFeq5vnaGGYV2LVfTlDrEVx8CrNHlBmWr5fXrhyzXi366pK/ErJ2pepGiqg==} dev: true - /@unocss/extractor-arbitrary-variants@0.52.7: - resolution: {integrity: sha512-nJ4iE7nIRpoOIQfD8S58yG4qJd6AhVPEfEOf7ksX1u8xLf71rrBIojwraRXvv7aPqNdZiWvXdh/znpA/QC5b9w==} + /@unocss/extractor-arbitrary-variants@0.57.6: + resolution: {integrity: sha512-I4/JpdF/2x4BnG+O6RQFRmfsI0UAJ6ik8Usw4zx2CQIdfTYxRJ4eU52jo5l8cm+YdDrXuiARRAEj6G96qHU3RQ==} dependencies: - '@unocss/core': 0.52.7 + '@unocss/core': 0.57.6 dev: true - /@unocss/inspector@0.52.7: - resolution: {integrity: sha512-XuxoCerVpIw9XR1iO8PEPrCj+KLwEGLAziHedObnXkS5ANbHdd+eWXIPpsG8DbICdLGUDnalL7wfxB19X1S9AQ==} + /@unocss/inspector@0.57.6: + resolution: {integrity: sha512-rNc4zX08PLeGHBtg+qxCSfPxtKuu4M0skaI6JLnHAR74KaVtmL0cE3+9K2PZbzHEy0iSbPzZQij+YlQ71Ic7yA==} dependencies: + '@unocss/core': 0.57.6 + '@unocss/rule-utils': 0.57.6 gzip-size: 6.0.0 sirv: 2.0.3 dev: true - /@unocss/postcss@0.52.7(postcss@8.4.31): - resolution: {integrity: sha512-0yG7K8ie9gky7Y/oD29Jzpe4l92IgRPB2Fo9a7g2f4dGlKOuih5S+NsH3EO4WODrawntISyxVXMHsIydze2vAw==} + /@unocss/postcss@0.57.6(postcss@8.4.31): + resolution: {integrity: sha512-xpyr9OHZ59iYr/e0vGgqc4kDGJLbVAvysChfe2xCmfXf2hrqVWwcEYoeE3zW/6xnEDNxk6IQBml2xLjdS34haA==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 dependencies: - '@unocss/config': 0.52.7 - '@unocss/core': 0.52.7 + '@unocss/config': 0.57.6 + '@unocss/core': 0.57.6 + '@unocss/rule-utils': 0.57.6 css-tree: 2.3.1 fast-glob: 3.3.2 magic-string: 0.30.5 postcss: 8.4.31 dev: true - /@unocss/preset-attributify@0.52.7: - resolution: {integrity: sha512-rq3ntPbuwGTZO7ebQhsuaZjKCmkDPBNP7sX+lXhaOsIsIGM4JGmLTBNSZ03YUx6QVgYVbjO1MKv734AHNYG4/Q==} + /@unocss/preset-attributify@0.57.6: + resolution: {integrity: sha512-3SK7Gn98WkhfvXFALEGvhGLH3jEKXluOQ8LBMR1eewULtXzIAv/YDpqaGV0aOb8gjw16RHDBsScVM1s9mHy7Dw==} dependencies: - '@unocss/core': 0.52.7 + '@unocss/core': 0.57.6 dev: true - /@unocss/preset-icons@0.52.7: - resolution: {integrity: sha512-4M8V7dhNxA+XGRqz+mlmEtqHOnyXYuqFpc+3biqjhlJb4zirNgJ9ujEty0OWwrKhC8QKfxifVlTtHInfjQQkDA==} + /@unocss/preset-icons@0.57.6: + resolution: {integrity: sha512-VC08C0QQ9MEEpMAXa6ffyZi6p7IoJ3UrphUQKjkTz0fvWBZ8NnlTGrw65R75nv4Cxos+2erOvJAOyMG9z7/z3g==} dependencies: '@iconify/utils': 2.1.11 - '@unocss/core': 0.52.7 + '@unocss/core': 0.57.6 ofetch: 1.3.3 transitivePeerDependencies: - supports-color dev: true - /@unocss/preset-mini@0.52.7: - resolution: {integrity: sha512-c5VRzPwyAmIBWwz2ufEboYwHGiheG+V9SCmJJLHlu/gcW5KndFsxoeJPE6nOfXVmbx4AGq/rkzV35ZXtH8Iecw==} + /@unocss/preset-mini@0.57.6: + resolution: {integrity: sha512-oOrtP9Wbm5cjokx9o2j/LhwRFB39whVVU1DDXllHyC0TGCXUd6gpmKwg8mePWkWWv0iM7v8EufCU4xCfNmazxQ==} dependencies: - '@unocss/core': 0.52.7 - '@unocss/extractor-arbitrary-variants': 0.52.7 + '@unocss/core': 0.57.6 + '@unocss/extractor-arbitrary-variants': 0.57.6 + '@unocss/rule-utils': 0.57.6 dev: true - /@unocss/preset-tagify@0.52.7: - resolution: {integrity: sha512-Zoard/LvUT03buLkDAnFAsgUUDfqIrVXADQFqRN7uDkf5lXocqjp56IzHng1Py2EJY4RpqHx+Mixn0fBH45E4g==} + /@unocss/preset-tagify@0.57.6: + resolution: {integrity: sha512-o0nSjCshTTn0QhrJsJpPM5PWshpRMJH0vGSRSiSlkJ/hveRFQLwcf2fWNPI2wNTgX0P7pVCUtrda2XbCLnwVrg==} dependencies: - '@unocss/core': 0.52.7 + '@unocss/core': 0.57.6 dev: true - /@unocss/preset-typography@0.52.7: - resolution: {integrity: sha512-mx7NQm6ZEo1UTQX9ZIzhZePjIBb2PEw7VDg6rWAPzdMRYQ1PnetjVbGFK5IafKmgVD1PP43UUwqDo8P0bD/aOg==} + /@unocss/preset-typography@0.57.6: + resolution: {integrity: sha512-ETMmtxjJbc7VHfKprQD2wj92daQQQ5/oQFBtT7afbelcKTuTa/WfLeJkWdp7Fgf4qZGqAHYoZWYcyKTquxwojw==} dependencies: - '@unocss/core': 0.52.7 - '@unocss/preset-mini': 0.52.7 + '@unocss/core': 0.57.6 + '@unocss/preset-mini': 0.57.6 dev: true - /@unocss/preset-uno@0.52.7: - resolution: {integrity: sha512-J5royXxvaPvwRplZ2zwEcB1jJETp3dTA3sIezf9ydSNr4px3h6Ul6TxFDuJpBUWlx/cxP7aRWM0p9+e2ivdRkA==} + /@unocss/preset-uno@0.57.6: + resolution: {integrity: sha512-9OQiXA5+B876u7nv4bsJpDHNIvXyw+lKAYowCcKXB6YuVFHz10BFhv0EIgRkwoIiZ60oj0ng/MFrvj4LXH74ag==} dependencies: - '@unocss/core': 0.52.7 - '@unocss/preset-mini': 0.52.7 - '@unocss/preset-wind': 0.52.7 + '@unocss/core': 0.57.6 + '@unocss/preset-mini': 0.57.6 + '@unocss/preset-wind': 0.57.6 + '@unocss/rule-utils': 0.57.6 dev: true - /@unocss/preset-web-fonts@0.52.7: - resolution: {integrity: sha512-KnWpYPqRVqD1wu8pJMQVy+sMgrJKSqr5R0C1xMMT4u4TZk4fc2YWXox6UNw5WWWzdc1KzJ/k36wSPnq+jSjfDA==} + /@unocss/preset-web-fonts@0.57.6: + resolution: {integrity: sha512-IXCXQOm/RVbpuo6uHxlW+nYEgU4H4NRIl7lL7QDawEh3u5oY6s/JwOQZE0DQqulG9sfdXhH9e8gokcqfZdQy+g==} dependencies: - '@unocss/core': 0.52.7 + '@unocss/core': 0.57.6 ofetch: 1.3.3 dev: true - /@unocss/preset-wind@0.52.7: - resolution: {integrity: sha512-IT36cDftK7B+zDUElL4qdZZEj6iwknIpetXwuVvW/X8ljS/ocY/qfyjSX7C8k163FLAw7nTARFjW3xL066NsLw==} + /@unocss/preset-wind@0.57.6: + resolution: {integrity: sha512-RE5Qlm7PVlzDjqk6AxuJDZYWArpH1VGf6ikfcN5/DRqEXDpAx1F0WYprhs2l9GYa66jBaenSITJQS4xoR5+yHw==} dependencies: - '@unocss/core': 0.52.7 - '@unocss/preset-mini': 0.52.7 + '@unocss/core': 0.57.6 + '@unocss/preset-mini': 0.57.6 + '@unocss/rule-utils': 0.57.6 dev: true - /@unocss/reset@0.52.7: - resolution: {integrity: sha512-TJW2BaGGQoh0OSDd22Ti8bZ/Ds3YMGT8aBxNPkcyhesH4fCJeWK+rwsAc5g8CS/wp9OdLS8P4Jy9k2Yg/GfrVQ==} + /@unocss/reset@0.57.6: + resolution: {integrity: sha512-AUk/XSegAX91qhNpS82t3Cd1MuyOy8xgLzkU7iEDbU4EPh94/mOY/Ebj7AFGMGtOAe47AE6vTyAMRL3YglVuyQ==} + dev: true + + /@unocss/rule-utils@0.57.6: + resolution: {integrity: sha512-EHsSitEVdADh0SOs3MCioYXojgshlhMwo+zMthmXCQMBispOR70rVYUr8QqqyWBKLt948rbqCxVl3DIXrwYnxA==} + engines: {node: '>=14'} + dependencies: + '@unocss/core': 0.57.6 + magic-string: 0.30.5 dev: true - /@unocss/scope@0.52.7: - resolution: {integrity: sha512-J8QMwfbm+lCt3Lpt52NllnXbuICvH8+Njl/L65wN9TfE6gHk0StA5nrEOlOB79R1aOhnRaoqG4MkAvFXK/1dcQ==} + /@unocss/scope@0.57.6: + resolution: {integrity: sha512-0Zk0GZIwhu7yPBRFjaFjI2zBBFs9crQLe69xLeHfaTSbIYtbM7PI3gAmnGetljrI8njb/zMKf+gby8SaXAlf/w==} dev: true - /@unocss/transformer-attributify-jsx-babel@0.52.7: - resolution: {integrity: sha512-6O2wSmALwaY0gmo/6quIEEiB6mpE3HFRJU2FmDQny5PVBrDhKps72h1zeNkDA8wjxz8XizNBhPbH/Uzc1lnAVg==} + /@unocss/transformer-attributify-jsx-babel@0.57.6: + resolution: {integrity: sha512-Ki0R/vCH/xONd12PIo4+iC4u1pN4cs7HcdyX8P3yxJ92SV7u7awtTRAOgAvK8W59Wgh02WX8dHI8bNBmDouSAQ==} dependencies: - '@unocss/core': 0.52.7 + '@babel/core': 7.23.3 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.3) + '@unocss/core': 0.57.6 + transitivePeerDependencies: + - supports-color dev: true - /@unocss/transformer-attributify-jsx@0.52.7: - resolution: {integrity: sha512-5Wz4KCUB+ZnXKwvtyASoN0yH61GPMRyNfLP3tz/uel9H2lyfgIPSKFthPVY8dsUCEixT7oGiIvQCLqk6f3po3A==} + /@unocss/transformer-attributify-jsx@0.57.6: + resolution: {integrity: sha512-SwyCKMTPvsXsR3B0l8FoRT1gUhrmG3SCxoskUb/s64l6fdBlfM8h+H4kPiepRbp99E04xGG5tIxxaBTTMeA+Gg==} dependencies: - '@unocss/core': 0.52.7 + '@unocss/core': 0.57.6 dev: true - /@unocss/transformer-compile-class@0.52.7: - resolution: {integrity: sha512-4gHqzeLq+9Ehl+yxYtGNUWrYACxnNfeiHBXfix7VmRHsBWIRol0/81Shqplxm9JRhkQcbXzadogynOav5LQcBg==} + /@unocss/transformer-compile-class@0.57.6: + resolution: {integrity: sha512-IEpfuL4Kp+xJunr3GJ+qa5Xr4EOq3RTfmw1CDWsVrSb6pF7JgYSMahxc2knQ5SzgBQKTnW8vc2E0dHGOF+FIVQ==} dependencies: - '@unocss/core': 0.52.7 + '@unocss/core': 0.57.6 dev: true - /@unocss/transformer-directives@0.52.7: - resolution: {integrity: sha512-v68nQjeU/8I8aOIQC6prIk5GJi8SpkaFsdh9p1UPSkJPL3rYv0bBLIkYrwBcmaqKUOvzL5joN0Cueolq/+GtUw==} + /@unocss/transformer-directives@0.57.6: + resolution: {integrity: sha512-V0mdQuq08fvOrRHxKtwFTia3WtXqRqPiSxoZ0wBoOM05ChKUEc7/CdPv4FZNOtC0PvDi+BT5L3IQs35r6FZAiQ==} dependencies: - '@unocss/core': 0.52.7 + '@unocss/core': 0.57.6 + '@unocss/rule-utils': 0.57.6 css-tree: 2.3.1 dev: true - /@unocss/transformer-variant-group@0.52.7: - resolution: {integrity: sha512-pGqTfT1hax3F+yjs6n6r5loSIP/Dsm/NuEA5nwazTu4gmubiIBi11UjoK/pE/cFg9Z3yp6n9Lspo71yALJbpVg==} + /@unocss/transformer-variant-group@0.57.6: + resolution: {integrity: sha512-6W/fitUZdwluyndV2wU4gnU9ykY8P82W3IYt7koufPI8AtO4wJnYFQoxK6aAO+74aYoFbJ2Pr00rhWKwGmyOwQ==} dependencies: - '@unocss/core': 0.52.7 + '@unocss/core': 0.57.6 dev: true - /@unocss/vite@0.52.7(vite@5.0.0): - resolution: {integrity: sha512-Hn1u6/uPP2q0s5gfwA7KQFtclviEUrEKnEa3l1kFJA3S/tHXYjwQkzbDQObQzolVAXyzIhf1cQ8e1tEMyHm1qg==} + /@unocss/vite@0.57.6(vite@5.0.0): + resolution: {integrity: sha512-sVVKhFCYDFCR+In8HXJ5ddnD+OnFw/3BcLoV3aRvIloojkDCG8rUywxS67TNu40LBZ8E+emFMcreDCFpwqphDA==} peerDependencies: - vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 dependencies: '@ampproject/remapping': 2.2.1 '@rollup/pluginutils': 5.0.5 - '@unocss/config': 0.52.7 - '@unocss/core': 0.52.7 - '@unocss/inspector': 0.52.7 - '@unocss/scope': 0.52.7 - '@unocss/transformer-directives': 0.52.7 + '@unocss/config': 0.57.6 + '@unocss/core': 0.57.6 + '@unocss/inspector': 0.57.6 + '@unocss/scope': 0.57.6 + '@unocss/transformer-directives': 0.57.6 chokidar: 3.5.3 fast-glob: 3.3.2 magic-string: 0.30.5 @@ -8409,40 +8428,43 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - /unocss@0.52.7(postcss@8.4.31)(vite@5.0.0): - resolution: {integrity: sha512-c35lqmzWqnQH0hW2IE1owac2qfGOvNAhrIrLV2+pNmc2MDWq8WMjIEuWo8G+OS5JqFQY3ZBlE61q2x/tHPlujQ==} + /unocss@0.57.6(postcss@8.4.31)(vite@5.0.0): + resolution: {integrity: sha512-z3a4Z8lGRVawr2A/1U0FuP1M9tuT6bs2RcIJ6kLBz5FC/XlLTGtUek6sadrKA0IMq7RWkgDRhdt8xQV0lh6TaA==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 0.52.7 + '@unocss/webpack': 0.57.6 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: '@unocss/webpack': optional: true + vite: + optional: true dependencies: - '@unocss/astro': 0.52.7(vite@5.0.0) - '@unocss/cli': 0.52.7 - '@unocss/core': 0.52.7 - '@unocss/extractor-arbitrary-variants': 0.52.7 - '@unocss/postcss': 0.52.7(postcss@8.4.31) - '@unocss/preset-attributify': 0.52.7 - '@unocss/preset-icons': 0.52.7 - '@unocss/preset-mini': 0.52.7 - '@unocss/preset-tagify': 0.52.7 - '@unocss/preset-typography': 0.52.7 - '@unocss/preset-uno': 0.52.7 - '@unocss/preset-web-fonts': 0.52.7 - '@unocss/preset-wind': 0.52.7 - '@unocss/reset': 0.52.7 - '@unocss/transformer-attributify-jsx': 0.52.7 - '@unocss/transformer-attributify-jsx-babel': 0.52.7 - '@unocss/transformer-compile-class': 0.52.7 - '@unocss/transformer-directives': 0.52.7 - '@unocss/transformer-variant-group': 0.52.7 - '@unocss/vite': 0.52.7(vite@5.0.0) + '@unocss/astro': 0.57.6(vite@5.0.0) + '@unocss/cli': 0.57.6 + '@unocss/core': 0.57.6 + '@unocss/extractor-arbitrary-variants': 0.57.6 + '@unocss/postcss': 0.57.6(postcss@8.4.31) + '@unocss/preset-attributify': 0.57.6 + '@unocss/preset-icons': 0.57.6 + '@unocss/preset-mini': 0.57.6 + '@unocss/preset-tagify': 0.57.6 + '@unocss/preset-typography': 0.57.6 + '@unocss/preset-uno': 0.57.6 + '@unocss/preset-web-fonts': 0.57.6 + '@unocss/preset-wind': 0.57.6 + '@unocss/reset': 0.57.6 + '@unocss/transformer-attributify-jsx': 0.57.6 + '@unocss/transformer-attributify-jsx-babel': 0.57.6 + '@unocss/transformer-compile-class': 0.57.6 + '@unocss/transformer-directives': 0.57.6 + '@unocss/transformer-variant-group': 0.57.6 + '@unocss/vite': 0.57.6(vite@5.0.0) + vite: 5.0.0(@types/node@18.18.9) transitivePeerDependencies: - postcss - rollup - supports-color - - vite dev: true /unpipe@1.0.0: From 302e253ba4e3dbf848c8e05d51a401a973392d6e Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 11:41:22 +0900 Subject: [PATCH 34/72] chore: silence react-query "use client" warning --- vite.config.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vite.config.ts b/vite.config.ts index 0d0b945b11..fc5642c610 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -49,4 +49,18 @@ export default defineConfig((env) => ({ server: { port: Number(process.env.PORT ?? "3000"), }, + build: { + rollupOptions: { + // silence warning by "use client" in react-query https://github.com/TanStack/query/pull/5161#issuecomment-1506683450 + onwarn(warning, defaultHandler) { + if ( + warning.code === "MODULE_LEVEL_DIRECTIVE" && + warning.message.includes(`"use client"`) + ) { + return; + } + defaultHandler(warning); + }, + }, + }, })); From 8e0e87dd8be82704cf6d1d85c926c487ff891ded Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 11:42:07 +0900 Subject: [PATCH 35/72] chore: minify vercel serverless --- misc/vercel/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/vercel/build.sh b/misc/vercel/build.sh index f23d30837d..c1b5e98ef7 100644 --- a/misc/vercel/build.sh +++ b/misc/vercel/build.sh @@ -31,7 +31,7 @@ cp "$this_dir/.vc-config.json" .vercel/output/functions/index.func/.vc-config.js npx esbuild dist/server/index.js \ --outfile=.vercel/output/functions/index.func/index.js \ --metafile=dist/server/esbuild-metafile.json \ - --bundle --format=cjs --platform=node \ + --bundle --minify --format=cjs --platform=node \ --external:node:async_hooks # config.json From 5e6efb9311013a445eb2fc07fcc36f03f87b6de7 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 13:54:07 +0900 Subject: [PATCH 36/72] chore: add vite.config.ui.ts --- package.json | 1 + vite.config.ui.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 vite.config.ui.ts diff --git a/package.json b/package.json index 06cc9de867..7fd6630404 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "dev:remix": "vite dev", "dev-e2e": "NODE_ENV=test PORT=3001 pnpm dev:remix", "dev-coverage:remix": "c8 -o coverage/e2e-server -r text -r html --exclude build --exclude-after-remap node_modules/.bin/remix dev", + "dev-ui": "vite --config vite.config.ui.ts", "tsc": "tsc -b", "dev:tsc": "pnpm tsc --watch --preserveWatchOutput", "lint": "run-s lint:*", diff --git a/vite.config.ui.ts b/vite.config.ui.ts new file mode 100644 index 0000000000..ce75e96b6c --- /dev/null +++ b/vite.config.ui.ts @@ -0,0 +1,14 @@ +import { themeScriptPlugin } from "@hiogawa/theme-script/dist/vite"; +import react from "@vitejs/plugin-react"; +import unocss from "unocss/vite"; +import { defineConfig } from "vite"; + +export default defineConfig({ + clearScreen: false, + publicDir: false, + plugins: [ + unocss(), + react(), + themeScriptPlugin({ storageKey: "ytsub:theme" }), + ], +}); From 21dc1510dfbc9865e9346bf1ad5a26d8528ad304 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 14:01:46 +0900 Subject: [PATCH 37/72] chore: HMR for "handle" export --- patches/@remix-run__dev@2.3.0.patch | 15 ++++++++++++++- pnpm-lock.yaml | 8 ++++---- vite.config.ts | 4 ++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/patches/@remix-run__dev@2.3.0.patch b/patches/@remix-run__dev@2.3.0.patch index 29e3695e80..56c82fe400 100644 --- a/patches/@remix-run__dev@2.3.0.patch +++ b/patches/@remix-run__dev@2.3.0.patch @@ -11,4 +11,17 @@ index c6f7097c1257ff59652836db54426030120881de..d49d41b9e185275692be312dc26390a2 +// node.installGlobals(); function nodeToWeb(nodeStream) { let destroyed = false; - let listeners = {}; \ No newline at end of file + let listeners = {}; +diff --git a/dist/vite/plugin.js b/dist/vite/plugin.js +index 2a9bc7066ecd3819b9dd490d6a8cb543682cdbfa..61d5b8013ba54917005499dec70b098c342355e4 100644 +--- a/dist/vite/plugin.js ++++ b/dist/vite/plugin.js +@@ -782,7 +782,7 @@ const remixVitePlugin = (options = {}) => { + }; + function addRefreshWrapper(pluginConfig, code, id) { + let isRoute = getRoute(pluginConfig, id); +- let acceptExports = isRoute ? ["meta", "links", "shouldRevalidate"] : []; ++ let acceptExports = isRoute ? ["handle", "meta", "links", "shouldRevalidate"] : []; + return REACT_REFRESH_HEADER.replace("__SOURCE__", JSON.stringify(id)) + code + REACT_REFRESH_FOOTER.replace("__SOURCE__", JSON.stringify(id)).replace("__ACCEPT_EXPORTS__", JSON.stringify(acceptExports)); + } + const REACT_REFRESH_HEADER = ` \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f819cc9248..b0f36880bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ patchedDependencies: hash: opznjwpbsym5sugb4owpkabxrq path: patches/@opentelemetry__sdk-node@0.39.1.patch '@remix-run/dev@2.3.0': - hash: ys3nbokiadjhvnx4tcwx3zf4ce + hash: gu77icqc36paj4gv6k5b5xuyfu path: patches/@remix-run__dev@2.3.0.patch dependencies: @@ -155,7 +155,7 @@ devDependencies: version: 1.39.0 '@remix-run/dev': specifier: 2.3.0 - version: 2.3.0(patch_hash=ys3nbokiadjhvnx4tcwx3zf4ce)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) + version: 2.3.0(patch_hash=gu77icqc36paj4gv6k5b5xuyfu)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) '@tsconfig/strictest': specifier: ^2.0.2 version: 2.0.2 @@ -2201,7 +2201,7 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: false - /@remix-run/dev@2.3.0(patch_hash=ys3nbokiadjhvnx4tcwx3zf4ce)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0): + /@remix-run/dev@2.3.0(patch_hash=gu77icqc36paj4gv6k5b5xuyfu)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0): resolution: {integrity: sha512-Eno0XHyIKo5GyzN4OAwNkgkyl4H1mLWbqeVUA8T5HmVDj+8qJLIcYeayS2BmA1KYAHJBiy5ufAGi2MpaXMjKww==} engines: {node: '>=18.0.0'} hasBin: true @@ -2364,7 +2364,7 @@ packages: peerDependencies: '@remix-run/dev': ^1.15.0 || ^2.0.0 dependencies: - '@remix-run/dev': 2.3.0(patch_hash=ys3nbokiadjhvnx4tcwx3zf4ce)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) + '@remix-run/dev': 2.3.0(patch_hash=gu77icqc36paj4gv6k5b5xuyfu)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) minimatch: 7.4.6 dev: false diff --git a/vite.config.ts b/vite.config.ts index fc5642c610..163feb2b00 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,7 +5,7 @@ import { vaviteConnect } from "@vavite/connect"; import unocss from "unocss/vite"; import { defineConfig } from "vite"; -export default defineConfig((env) => ({ +export default defineConfig({ clearScreen: false, plugins: [ unocss(), @@ -63,4 +63,4 @@ export default defineConfig((env) => ({ }, }, }, -})); +}); From 0ac8ab732594bf4e95ed2c5c8ecbc19f5ef31993 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 14:25:54 +0900 Subject: [PATCH 38/72] refactor: remove __dirname --- app/db/drizzle-client.server.ts | 3 +-- app/db/knexfile.server.ts | 6 +++--- app/db/migrations/20230527023906_add-user-email.ts | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/db/drizzle-client.server.ts b/app/db/drizzle-client.server.ts index 6b25b5f9db..39f4907438 100644 --- a/app/db/drizzle-client.server.ts +++ b/app/db/drizzle-client.server.ts @@ -322,8 +322,7 @@ export async function dbGetMigrationStatus() { const rows = await db.select().from(T.knex_migrations); const fs = await import("fs"); - const config = knexfile(); - let files = await fs.promises.readdir(config.migrations.directory); + let files = await fs.promises.readdir("app/db/migrations"); files = files.filter((f) => f.match(/\.(js|ts)$/)); files.sort(); diff --git a/app/db/knexfile.server.ts b/app/db/knexfile.server.ts index 1eaf11984b..78ad2cbea1 100644 --- a/app/db/knexfile.server.ts +++ b/app/db/knexfile.server.ts @@ -1,4 +1,3 @@ -import path from "node:path"; import type { Knex } from "knex"; import { initializeConfigServer, serverConfig } from "../utils/config"; @@ -17,9 +16,10 @@ export default function knexfile() { multipleStatements: true, timezone: "+00:00", // planetscale and development mysql image have UTC localtime }, + // TODO: refactor out knexfile logic to local only migrations: { - directory: path.join(__dirname, "migrations"), - stub: path.join(__dirname, "__migration-stub.ts"), + directory: "migrations", + stub: "__migration-stub.ts", }, } satisfies Knex.Config; } diff --git a/app/db/migrations/20230527023906_add-user-email.ts b/app/db/migrations/20230527023906_add-user-email.ts index cb58a99ad2..19cafdcaff 100644 --- a/app/db/migrations/20230527023906_add-user-email.ts +++ b/app/db/migrations/20230527023906_add-user-email.ts @@ -4,7 +4,7 @@ import type { Knex } from "knex"; export async function up(knex: Knex) { await knex.raw( await fs.promises.readFile( - __dirname + "/raw/20230527023906_add-user-email/up.sql", + "app/db/migrations/raw/20230527023906_add-user-email/up.sql", "utf-8" ) ); @@ -13,7 +13,7 @@ export async function up(knex: Knex) { export async function down(knex: Knex) { await knex.raw( await fs.promises.readFile( - __dirname + "/raw/20230527023906_add-user-email/down.sql", + "app/db/migrations/raw/20230527023906_add-user-email/down.sql", "utf-8" ) ); From d40b421a18d66420bafb6a9cee8a0a816b76873c Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 14:29:01 +0900 Subject: [PATCH 39/72] fix: struggle with cwd --- app/db/migrations/20230527023906_add-user-email.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/db/migrations/20230527023906_add-user-email.ts b/app/db/migrations/20230527023906_add-user-email.ts index 19cafdcaff..16ac395ce5 100644 --- a/app/db/migrations/20230527023906_add-user-email.ts +++ b/app/db/migrations/20230527023906_add-user-email.ts @@ -4,7 +4,7 @@ import type { Knex } from "knex"; export async function up(knex: Knex) { await knex.raw( await fs.promises.readFile( - "app/db/migrations/raw/20230527023906_add-user-email/up.sql", + "raw/20230527023906_add-user-email/up.sql", "utf-8" ) ); @@ -13,7 +13,7 @@ export async function up(knex: Knex) { export async function down(knex: Knex) { await knex.raw( await fs.promises.readFile( - "app/db/migrations/raw/20230527023906_add-user-email/down.sql", + "raw/20230527023906_add-user-email/down.sql", "utf-8" ) ); From 0046d4ac74316859d4c2a9f3b78cf571a829bb07 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 14:33:42 +0900 Subject: [PATCH 40/72] chore: more struggle with knex cwd --- app/db/migrations/20230527023906_add-user-email.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/db/migrations/20230527023906_add-user-email.ts b/app/db/migrations/20230527023906_add-user-email.ts index 16ac395ce5..70344412f6 100644 --- a/app/db/migrations/20230527023906_add-user-email.ts +++ b/app/db/migrations/20230527023906_add-user-email.ts @@ -4,7 +4,7 @@ import type { Knex } from "knex"; export async function up(knex: Knex) { await knex.raw( await fs.promises.readFile( - "raw/20230527023906_add-user-email/up.sql", + "migrations/raw/20230527023906_add-user-email/up.sql", "utf-8" ) ); @@ -13,7 +13,7 @@ export async function up(knex: Knex) { export async function down(knex: Knex) { await knex.raw( await fs.promises.readFile( - "raw/20230527023906_add-user-email/down.sql", + "migrations/raw/20230527023906_add-user-email/down.sql", "utf-8" ) ); From b21bf55b007882bf6fab9e0bf826ce2276b18e1b Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 14:35:47 +0900 Subject: [PATCH 41/72] refactor: simplify db config and knexfile management --- app/db/config.ts | 15 +++++++++++++++ app/db/drizzle-client.server.ts | 5 ++--- app/db/knexfile.server.ts | 25 ------------------------- app/db/knexfile.ts | 16 ++++++++++++++++ package.json | 2 +- 5 files changed, 34 insertions(+), 29 deletions(-) create mode 100644 app/db/config.ts delete mode 100644 app/db/knexfile.server.ts create mode 100644 app/db/knexfile.ts diff --git a/app/db/config.ts b/app/db/config.ts new file mode 100644 index 0000000000..9f6d5810f2 --- /dev/null +++ b/app/db/config.ts @@ -0,0 +1,15 @@ +import { type ConnectionOptions } from "mysql2"; +import { serverConfig } from "../utils/config"; + +export function dbConfig() { + return { + host: serverConfig.APP_MYSQL_HOST, + port: serverConfig.APP_MYSQL_PORT, + user: serverConfig.APP_MYSQL_USER, + password: serverConfig.APP_MYSQL_PASSWORD, + database: serverConfig.APP_MYSQL_DATABASE, + ssl: serverConfig.APP_MYSQL_SSL ? {} : undefined, + multipleStatements: true, + timezone: "+00:00", // planetscale and development mysql image have UTC localtime + } satisfies ConnectionOptions; +} diff --git a/app/db/drizzle-client.server.ts b/app/db/drizzle-client.server.ts index 39f4907438..5340da65a7 100644 --- a/app/db/drizzle-client.server.ts +++ b/app/db/drizzle-client.server.ts @@ -17,7 +17,7 @@ import type { Connection } from "mysql2"; import { createConnection } from "mysql2/promise"; import { uninitialized } from "../utils/misc"; import type { PaginationMetadata, PaginationParams } from "../utils/pagination"; -import knexfile from "./knexfile.server"; +import { dbConfig } from "./config"; import type { DeckCache, PracticeActionType, PracticeQueueType } from "./types"; // @@ -353,8 +353,7 @@ export async function initializeDrizzleClient() { db = globalThis.__drizzleClient ??= await inner(); async function inner() { - const config = knexfile(); - const connection = await createConnection(config.connection); + const connection = await createConnection(dbConfig()); return drizzle(connection, { logger: process.env["DEBUG"]?.includes("drizzle"), // enable query logging by DEBUG=drizzle }); diff --git a/app/db/knexfile.server.ts b/app/db/knexfile.server.ts deleted file mode 100644 index 78ad2cbea1..0000000000 --- a/app/db/knexfile.server.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Knex } from "knex"; -import { initializeConfigServer, serverConfig } from "../utils/config"; - -export default function knexfile() { - initializeConfigServer(); - - return { - client: "mysql2", - connection: { - host: serverConfig.APP_MYSQL_HOST, - port: serverConfig.APP_MYSQL_PORT, - user: serverConfig.APP_MYSQL_USER, - password: serverConfig.APP_MYSQL_PASSWORD, - database: serverConfig.APP_MYSQL_DATABASE, - ssl: serverConfig.APP_MYSQL_SSL ? {} : undefined, - multipleStatements: true, - timezone: "+00:00", // planetscale and development mysql image have UTC localtime - }, - // TODO: refactor out knexfile logic to local only - migrations: { - directory: "migrations", - stub: "__migration-stub.ts", - }, - } satisfies Knex.Config; -} diff --git a/app/db/knexfile.ts b/app/db/knexfile.ts new file mode 100644 index 0000000000..1096ccafbd --- /dev/null +++ b/app/db/knexfile.ts @@ -0,0 +1,16 @@ +import type { Knex } from "knex"; +import { initializeConfigServer } from "../utils/config"; +import { dbConfig } from "./config"; + +export default function knexfile() { + initializeConfigServer(); + + return { + client: "mysql2", + connection: dbConfig(), + migrations: { + directory: "migrations", + stub: "__migration-stub.ts", + }, + } satisfies Knex.Config; +} diff --git a/package.json b/package.json index 04c1d7e1d0..95c4a350e2 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "console-staging": "pnpm dotenv-staging npm run console", "console-production": "pnpm dotenv-production npm run console", "skeema": "cd app/db/skeema && skeema", - "knex": "NODE_OPTIONS='-r esbuild-register' knex --knexfile app/db/knexfile.server.ts", + "knex": "NODE_OPTIONS='-r esbuild-register' knex --knexfile app/db/knexfile.ts", "knex-staging": "pnpm dotenv-staging pnpm knex", "knex-production": "pnpm dotenv-production pnpm knex", "dotenv-staging": "bash scripts/dotenv.sh .env.staging", From 7b235fe01823c69318deb691aeb338fb641ffb8a Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 20 Nov 2023 14:39:59 +0900 Subject: [PATCH 42/72] refactor: "require" => "import" --- app/entry.server.tsx | 4 ++-- app/server/document.tsx | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/entry.server.tsx b/app/entry.server.tsx index 8fcd8a6e5a..6587267ffc 100644 --- a/app/entry.server.tsx +++ b/app/entry.server.tsx @@ -4,7 +4,7 @@ import { renderToString } from "react-dom/server"; import { renderToDocument } from "./server/document"; import { wrapTraceAsyncSimple } from "./utils/opentelemetry-utils"; -const handleDocumentRequest: HandleDocumentRequestFunction = ( +const handleDocumentRequest: HandleDocumentRequestFunction = async ( request, responseStatusCode, responseHeaders, @@ -14,7 +14,7 @@ const handleDocumentRequest: HandleDocumentRequestFunction = ( const ssrHtml = renderToString( ); - const documentHtml = renderToDocument(ssrHtml); + const documentHtml = await renderToDocument(ssrHtml); responseHeaders.set("content-type", "text/html"); return new Response(documentHtml, { status: responseStatusCode, diff --git a/app/server/document.tsx b/app/server/document.tsx index 217c3084a6..6672a97c2a 100644 --- a/app/server/document.tsx +++ b/app/server/document.tsx @@ -4,7 +4,10 @@ import { injectPublicConfigScript, publicConfig } from "../utils/config-public"; // since we don't currently use remix's or convention, // we can render static document html only on server, which is probably common ssr practice. -export function renderToDocument(ssrHtml: string) { +export async function renderToDocument(ssrHtml: string) { + // @ts-ignore + const { default: cssHref } = await import("../../build/css/index.css"); + // syntax highlight by https://github.com/mjbvz/vscode-comment-tagged-templates/ return /* html */ ` @@ -19,7 +22,7 @@ export function renderToDocument(ssrHtml: string) { content="width=device-width, height=device-height, initial-scale=1.0" /> - + Date: Mon, 20 Nov 2023 14:43:29 +0900 Subject: [PATCH 43/72] chore: type "module" (wip) --- package.json | 3 +++ remix.config.js | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 95c4a350e2..deb49f01ff 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,7 @@ { + "name": "@hiogawa/ytsub", + "private": true, + "type": "module", "scripts": { "dev": "pnpm dev-pre && run-p dev:*", "dev-pre": "pnpm build:css", diff --git a/remix.config.js b/remix.config.js index 8e08ebca30..e6408b9fe6 100644 --- a/remix.config.js +++ b/remix.config.js @@ -1,8 +1,10 @@ +import { createRoutesFromFolders } from "@remix-run/v1-route-convention"; + const env = process.env.NODE_ENV ?? "development"; /** @type {import('@remix-run/dev').AppConfig} */ // prettier-ignore -module.exports = { +export default { serverBuildPath: `build/remix/${env}/server/index.js`, assetsBuildDirectory: `build/remix/${env}/public/build`, server: "./app/misc/entry-express.ts", @@ -16,7 +18,7 @@ module.exports = { v2_routeConvention: true, }, routes: (defineRoutes) => - require("@remix-run/v1-route-convention").createRoutesFromFolders( + createRoutesFromFolders( defineRoutes, { ignoredFilePatterns: ["**/*.test.*"] } ), From 0c7d3d2bdd31ed7b10e9cfec38e1c979c759776e Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Wed, 29 Nov 2023 18:23:45 +0900 Subject: [PATCH 44/72] chore: update remix nightly (no more patch!) --- package.json | 9 ++- patches/@remix-run__dev@2.3.0.patch | 27 --------- pnpm-lock.yaml | 93 +++++++++++------------------ 3 files changed, 39 insertions(+), 90 deletions(-) delete mode 100644 patches/@remix-run__dev@2.3.0.patch diff --git a/package.json b/package.json index 7fd6630404..b0f05dfad9 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,8 @@ "@opentelemetry/api": "^1.7.0", "@opentelemetry/sdk-node": "^0.39.1", "@opentelemetry/semantic-conventions": "^1.18.1", - "@remix-run/react": "2.3.0", - "@remix-run/server-runtime": "2.3.0", + "@remix-run/react": "0.0.0-nightly-bf6c0a4-20231129", + "@remix-run/server-runtime": "0.0.0-nightly-bf6c0a4-20231129", "@remix-run/v1-route-convention": "^0.1.4", "@tanstack/react-query": "^4.36.1", "@tanstack/react-query-devtools": "^4.36.1", @@ -89,7 +89,7 @@ "@hiogawa/vite-import-dev-server": "^0.0.1", "@iconify-json/ri": "^1.1.12", "@playwright/test": "^1.39.0", - "@remix-run/dev": "2.3.0", + "@remix-run/dev": "0.0.0-nightly-bf6c0a4-20231129", "@tsconfig/strictest": "^2.0.2", "@types/cookie": "^0.5.4", "@types/express": "^4.17.21", @@ -122,8 +122,7 @@ }, "pnpm": { "patchedDependencies": { - "@opentelemetry/sdk-node@0.39.1": "patches/@opentelemetry__sdk-node@0.39.1.patch", - "@remix-run/dev@2.3.0": "patches/@remix-run__dev@2.3.0.patch" + "@opentelemetry/sdk-node@0.39.1": "patches/@opentelemetry__sdk-node@0.39.1.patch" } } } diff --git a/patches/@remix-run__dev@2.3.0.patch b/patches/@remix-run__dev@2.3.0.patch deleted file mode 100644 index 56c82fe400..0000000000 --- a/patches/@remix-run__dev@2.3.0.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/dist/vite/node/adapter.js b/dist/vite/node/adapter.js -index c6f7097c1257ff59652836db54426030120881de..d49d41b9e185275692be312dc26390a2cf4ec9f6 100644 ---- a/dist/vite/node/adapter.js -+++ b/dist/vite/node/adapter.js -@@ -25,7 +25,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau - var multipart__default = /*#__PURE__*/_interopDefaultLegacy(multipart); - - // @ts-nocheck --node.installGlobals(); -+// imcompatibility with hattip on nodejs? -+// node.installGlobals(); - function nodeToWeb(nodeStream) { - let destroyed = false; - let listeners = {}; -diff --git a/dist/vite/plugin.js b/dist/vite/plugin.js -index 2a9bc7066ecd3819b9dd490d6a8cb543682cdbfa..61d5b8013ba54917005499dec70b098c342355e4 100644 ---- a/dist/vite/plugin.js -+++ b/dist/vite/plugin.js -@@ -782,7 +782,7 @@ const remixVitePlugin = (options = {}) => { - }; - function addRefreshWrapper(pluginConfig, code, id) { - let isRoute = getRoute(pluginConfig, id); -- let acceptExports = isRoute ? ["meta", "links", "shouldRevalidate"] : []; -+ let acceptExports = isRoute ? ["handle", "meta", "links", "shouldRevalidate"] : []; - return REACT_REFRESH_HEADER.replace("__SOURCE__", JSON.stringify(id)) + code + REACT_REFRESH_FOOTER.replace("__SOURCE__", JSON.stringify(id)).replace("__ACCEPT_EXPORTS__", JSON.stringify(acceptExports)); - } - const REACT_REFRESH_HEADER = ` \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b0f36880bb..e30a18792d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,9 +8,6 @@ patchedDependencies: '@opentelemetry/sdk-node@0.39.1': hash: opznjwpbsym5sugb4owpkabxrq path: patches/@opentelemetry__sdk-node@0.39.1.patch - '@remix-run/dev@2.3.0': - hash: gu77icqc36paj4gv6k5b5xuyfu - path: patches/@remix-run__dev@2.3.0.patch dependencies: '@floating-ui/react': @@ -77,14 +74,14 @@ dependencies: specifier: ^1.18.1 version: 1.18.1 '@remix-run/react': - specifier: 2.3.0 - version: 2.3.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) + specifier: 0.0.0-nightly-bf6c0a4-20231129 + version: 0.0.0-nightly-bf6c0a4-20231129(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) '@remix-run/server-runtime': - specifier: 2.3.0 - version: 2.3.0(typescript@5.2.2) + specifier: 0.0.0-nightly-bf6c0a4-20231129 + version: 0.0.0-nightly-bf6c0a4-20231129(typescript@5.2.2) '@remix-run/v1-route-convention': specifier: ^0.1.4 - version: 0.1.4(@remix-run/dev@2.3.0) + version: 0.1.4(@remix-run/dev@0.0.0-nightly-bf6c0a4-20231129) '@tanstack/react-query': specifier: ^4.36.1 version: 4.36.1(react-dom@18.2.0)(react@18.2.0) @@ -154,8 +151,8 @@ devDependencies: specifier: ^1.39.0 version: 1.39.0 '@remix-run/dev': - specifier: 2.3.0 - version: 2.3.0(patch_hash=gu77icqc36paj4gv6k5b5xuyfu)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) + specifier: 0.0.0-nightly-bf6c0a4-20231129 + version: 0.0.0-nightly-bf6c0a4-20231129(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) '@tsconfig/strictest': specifier: ^2.0.2 version: 2.0.2 @@ -1310,10 +1307,6 @@ packages: requiresBuild: true optional: true - /@fastify/busboy@2.0.0: - resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} - engines: {node: '>=14'} - /@floating-ui/core@1.5.0: resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} dependencies: @@ -2201,12 +2194,12 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: false - /@remix-run/dev@2.3.0(patch_hash=gu77icqc36paj4gv6k5b5xuyfu)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0): - resolution: {integrity: sha512-Eno0XHyIKo5GyzN4OAwNkgkyl4H1mLWbqeVUA8T5HmVDj+8qJLIcYeayS2BmA1KYAHJBiy5ufAGi2MpaXMjKww==} + /@remix-run/dev@0.0.0-nightly-bf6c0a4-20231129(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0): + resolution: {integrity: sha512-OZqE4cDCOtNMzFWojyNhdAXfKfj6IoExt6dQEAxKYd8nZUYGS7Xr1PR8og2lha8ETKf7gHXQ2krzuVkOBlH12A==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@remix-run/serve': ^2.3.0 + '@remix-run/serve': ^0.0.0-nightly-bf6c0a4-20231129 typescript: ^5.1.0 vite: ^4.4.9 || ^5.0.0 peerDependenciesMeta: @@ -2227,9 +2220,9 @@ packages: '@babel/types': 7.23.3 '@mdx-js/mdx': 2.3.0 '@npmcli/package-json': 4.0.1 - '@remix-run/node': 2.3.0(typescript@5.2.2) - '@remix-run/router': 1.12.0-pre.0 - '@remix-run/server-runtime': 2.3.0(typescript@5.2.2) + '@remix-run/node': 0.0.0-nightly-bf6c0a4-20231129(typescript@5.2.2) + '@remix-run/router': 1.13.0 + '@remix-run/server-runtime': 0.0.0-nightly-bf6c0a4-20231129(typescript@5.2.2) '@types/mdx': 2.0.10 '@vanilla-extract/integration': 6.2.3(@types/node@18.18.9) arg: 5.0.2 @@ -2254,7 +2247,6 @@ packages: minimatch: 9.0.3 node-fetch: 2.7.0 ora: 5.4.1 - parse-multipart-data: 1.5.0 picocolors: 1.0.0 picomatch: 2.3.1 pidtree: 0.6.0 @@ -2272,7 +2264,6 @@ packages: tar-fs: 2.1.1 tsconfig-paths: 4.2.0 typescript: 5.2.2 - undici: 5.27.2 vite: 5.0.0(@types/node@18.18.9) ws: 7.5.9 transitivePeerDependencies: @@ -2289,10 +2280,9 @@ packages: - terser - ts-node - utf-8-validate - patched: true - /@remix-run/node@2.3.0(typescript@5.2.2): - resolution: {integrity: sha512-WQybWc1EWPLMD/btDtchVrhoLvz/ek6MB0gr2cV2N3Sxgn1VaJmpsN3+sUA5lK8vR2S/kOmGun2Ut3tKi8TKHg==} + /@remix-run/node@0.0.0-nightly-bf6c0a4-20231129(typescript@5.2.2): + resolution: {integrity: sha512-WlbWiUGHt4qYoPuI9IV4y8rIUUIse44wzwRwWe+nvCcy3P8P/bnBmEUb8Ub+8+wClhRWzLVu7iqmyWOhmIX/fQ==} engines: {node: '>=18.0.0'} peerDependencies: typescript: ^5.1.0 @@ -2300,7 +2290,7 @@ packages: typescript: optional: true dependencies: - '@remix-run/server-runtime': 2.3.0(typescript@5.2.2) + '@remix-run/server-runtime': 0.0.0-nightly-bf6c0a4-20231129(typescript@5.2.2) '@remix-run/web-fetch': 4.4.1 '@remix-run/web-file': 3.1.0 '@remix-run/web-stream': 1.1.0 @@ -2310,8 +2300,8 @@ packages: stream-slice: 0.1.2 typescript: 5.2.2 - /@remix-run/react@2.3.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): - resolution: {integrity: sha512-8sLgNw0wbNx0Gir0CKCqJVlQ8ipKMvTfUAY/sra/jiAkUSztz1HuGXNTV+4yrP9786puiMp9mB+bJqD32SAEPg==} + /@remix-run/react@0.0.0-nightly-bf6c0a4-20231129(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): + resolution: {integrity: sha512-AO+YemiHai5Pxc2IY63ycNqj7gHDyRfuVQ1WANdaZVCycf1y9RLfGnHQe7AJj1WYMDmWl5cwsAXdg/gtsbWJOg==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0.0 @@ -2321,11 +2311,11 @@ packages: typescript: optional: true dependencies: - '@remix-run/router': 1.12.0 - '@remix-run/server-runtime': 2.3.0(typescript@5.2.2) + '@remix-run/router': 1.13.0 + '@remix-run/server-runtime': 0.0.0-nightly-bf6c0a4-20231129(typescript@5.2.2) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router-dom: 6.19.0(react-dom@18.2.0)(react@18.2.0) + react-router-dom: 6.20.0(react-dom@18.2.0)(react@18.2.0) typescript: 5.2.2 dev: false @@ -2334,16 +2324,12 @@ packages: engines: {node: '>=14.0.0'} dev: false - /@remix-run/router@1.12.0: - resolution: {integrity: sha512-2hXv036Bux90e1GXTWSMfNzfDDK8LA8JYEWfyHxzvwdp6GyoWEovKc9cotb3KCKmkdwsIBuFGX7ScTWyiHv7Eg==} - engines: {node: '>=14.0.0'} - - /@remix-run/router@1.12.0-pre.0: - resolution: {integrity: sha512-+bBn9KqD2AC0pttSGydVFOZSsT0NqQ1+rGFwMTx9dRANk6oGxrPbKTDxLLikocscGzSL5przvcK4Uxfq8yU7BQ==} + /@remix-run/router@1.13.0: + resolution: {integrity: sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==} engines: {node: '>=14.0.0'} - /@remix-run/server-runtime@2.3.0(typescript@5.2.2): - resolution: {integrity: sha512-9BiRK7VPm5nt/aOlRmeROXWA8HKgqjvQy+f9NNpqvf3jj62EUl0h4eUdyqRj6nNh44I+0XUBG7ZQ2xXTrGJATw==} + /@remix-run/server-runtime@0.0.0-nightly-bf6c0a4-20231129(typescript@5.2.2): + resolution: {integrity: sha512-YeW/pAAgI6CFzOIpBTbUTI6gq7es3Y3291qe7LIY5CF0cmDlnEdUYEYkmbQ1BkhA0LLW+Dch3seT97jI7ULovA==} engines: {node: '>=18.0.0'} peerDependencies: typescript: ^5.1.0 @@ -2351,7 +2337,7 @@ packages: typescript: optional: true dependencies: - '@remix-run/router': 1.12.0 + '@remix-run/router': 1.13.0 '@types/cookie': 0.5.4 '@web3-storage/multipart-parser': 1.0.0 cookie: 0.5.0 @@ -2359,12 +2345,12 @@ packages: source-map: 0.7.4 typescript: 5.2.2 - /@remix-run/v1-route-convention@0.1.4(@remix-run/dev@2.3.0): + /@remix-run/v1-route-convention@0.1.4(@remix-run/dev@0.0.0-nightly-bf6c0a4-20231129): resolution: {integrity: sha512-fVTr9YlNLWfaiM/6Y56sOtcY8x1bBJQHY0sDWO5+Z/vjJ2Ni7fe2fwrzs1jUFciMPXqBQdFGePnkuiYLz3cuUA==} peerDependencies: '@remix-run/dev': ^1.15.0 || ^2.0.0 dependencies: - '@remix-run/dev': 2.3.0(patch_hash=gu77icqc36paj4gv6k5b5xuyfu)(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) + '@remix-run/dev': 0.0.0-nightly-bf6c0a4-20231129(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) minimatch: 7.4.6 dev: false @@ -6884,9 +6870,6 @@ packages: resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} engines: {node: '>=6'} - /parse-multipart-data@1.5.0: - resolution: {integrity: sha512-ck5zaMF0ydjGfejNMnlo5YU2oJ+pT+80Jb1y4ybanT27j+zbVP/jkYmCrUGsEln0Ox/hZmuvgy8Ra7AxbXP2Mw==} - /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -7331,17 +7314,17 @@ packages: react-router: 6.18.0(react@18.2.0) dev: false - /react-router-dom@6.19.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-N6dWlcgL2w0U5HZUUqU2wlmOrSb3ighJmtQ438SWbhB1yuLTXQ8yyTBMK3BSvVjp7gBtKurT554nCtMOgxCZmQ==} + /react-router-dom@6.20.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.12.0 + '@remix-run/router': 1.13.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.19.0(react@18.2.0) + react-router: 6.20.0(react@18.2.0) dev: false /react-router@6.18.0(react@18.2.0): @@ -7354,13 +7337,13 @@ packages: react: 18.2.0 dev: false - /react-router@6.19.0(react@18.2.0): - resolution: {integrity: sha512-0W63PKCZ7+OuQd7Tm+RbkI8kCLmn4GPjDbX61tWljPxWgqTKlEpeQUwPkT1DRjYhF8KSihK0hQpmhU4uxVMcdw==} + /react-router@6.20.0(react@18.2.0): + resolution: {integrity: sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.12.0 + '@remix-run/router': 1.13.0 react: 18.2.0 dev: false @@ -8332,12 +8315,6 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /undici@5.27.2: - resolution: {integrity: sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==} - engines: {node: '>=14.0'} - dependencies: - '@fastify/busboy': 2.0.0 - /unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} dependencies: From 11e2f5468e202500bc5e88b7828fdf63fd90ee5b Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Wed, 29 Nov 2023 18:30:05 +0900 Subject: [PATCH 45/72] refactor: simplify config --- misc/vercel/build.sh | 9 +++++---- vite.config.ts | 2 -- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/misc/vercel/build.sh b/misc/vercel/build.sh index c1b5e98ef7..c1aaeb7c00 100644 --- a/misc/vercel/build.sh +++ b/misc/vercel/build.sh @@ -28,9 +28,10 @@ mkdir -p .vercel/output/functions/index.func # serverless mkdir -p .vercel/output/functions/index.func cp "$this_dir/.vc-config.json" .vercel/output/functions/index.func/.vc-config.json -npx esbuild dist/server/index.js \ +npx esbuild build/server/index.js \ --outfile=.vercel/output/functions/index.func/index.js \ - --metafile=dist/server/esbuild-metafile.json \ + --metafile=build/server/esbuild-metafile.json \ + --define:process.env.NODE_ENV='"production"' \ --bundle --minify --format=cjs --platform=node \ --external:node:async_hooks @@ -38,8 +39,8 @@ npx esbuild dist/server/index.js \ cp "$this_dir/config.json" .vercel/output/config.json # static -cp -r dist/client .vercel/output/static -cp ./public/* .vercel/output/static +cp -r build/client .vercel/output/static +rm -rf .vercel/output/static/.vite # output server size echo "* Serverless files" diff --git a/vite.config.ts b/vite.config.ts index 163feb2b00..0898aec067 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -21,8 +21,6 @@ export default defineConfig({ // skip remix on vitest !process.env.VITEST && remix({ - serverBuildPath: `dist/server/index.js`, - assetsBuildDirectory: `dist/client/build`, routes: (defineRoutes) => createRoutesFromFolders(defineRoutes, { ignoredFilePatterns: ["**/*.test.*"], From 54752f9470074b80870323c941c3a1d473113d65 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Wed, 29 Nov 2023 18:33:04 +0900 Subject: [PATCH 46/72] chore: minor --- .gitignore | 1 - .prettierignore | 1 - 2 files changed, 2 deletions(-) diff --git a/.gitignore b/.gitignore index f107f51cd5..a9ea4fcc40 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,3 @@ /.env.production.sh /coverage /test-results -dist diff --git a/.prettierignore b/.prettierignore index 1f95c167f4..2a679b736b 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,4 +8,3 @@ /misc/ytsub-v2/data-v2.json /coverage .vercel -dist From 093171a65251fa569b8a9091c1f0e70c36c73575 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Wed, 29 Nov 2023 19:02:15 +0900 Subject: [PATCH 47/72] refactor: minor --- vite.config.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 0898aec067..cc30f2e0b9 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -7,6 +7,9 @@ import { defineConfig } from "vite"; export default defineConfig({ clearScreen: false, + server: { + port: Number(process.env.PORT ?? "3000"), + }, plugins: [ unocss(), importDevServerPlugin(), @@ -44,9 +47,6 @@ export default defineConfig({ }, }, ], - server: { - port: Number(process.env.PORT ?? "3000"), - }, build: { rollupOptions: { // silence warning by "use client" in react-query https://github.com/TanStack/query/pull/5161#issuecomment-1506683450 From bad35dde45255dfc17bc7ba40c9a8d0ec5ac1a12 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Thu, 30 Nov 2023 21:06:57 +0900 Subject: [PATCH 48/72] chore: tree-shake react-query-devtools --- app/utils/react-query-utils.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/utils/react-query-utils.tsx b/app/utils/react-query-utils.tsx index 51507d7430..16f3974286 100644 --- a/app/utils/react-query-utils.tsx +++ b/app/utils/react-query-utils.tsx @@ -24,7 +24,7 @@ export function QueryClientWrapper({ children }: React.PropsWithChildren) { return ( {children} - {showDevtools && } + {import.meta.env.DEV && showDevtools && } ); } From acc6aafac3ea64040bc6dc024c938e4505f92cdb Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Fri, 1 Dec 2023 11:21:03 +0900 Subject: [PATCH 49/72] fix: fix knex --- app/db/{knexfile.ts => knexfile.mts} | 0 package.json | 3 ++- pnpm-lock.yaml | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) rename app/db/{knexfile.ts => knexfile.mts} (100%) diff --git a/app/db/knexfile.ts b/app/db/knexfile.mts similarity index 100% rename from app/db/knexfile.ts rename to app/db/knexfile.mts diff --git a/package.json b/package.json index deb49f01ff..b2d1d639e3 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "console-staging": "pnpm dotenv-staging npm run console", "console-production": "pnpm dotenv-production npm run console", "skeema": "cd app/db/skeema && skeema", - "knex": "NODE_OPTIONS='-r esbuild-register' knex --knexfile app/db/knexfile.ts", + "knex": "NODE_OPTIONS='--loader tsx/esm' knex --knexfile app/db/knexfile.mts", "knex-staging": "pnpm dotenv-staging pnpm knex", "knex-production": "pnpm dotenv-production pnpm knex", "dotenv-staging": "bash scripts/dotenv.sh .env.staging", @@ -115,6 +115,7 @@ "prettier": "^2.8.8", "qrcode-terminal": "^0.12.0", "showdown": "^2.1.0", + "tsx": "^4.6.1", "typescript": "^5.2.2", "unocss": "^0.52.7", "vite": "^4.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d08c2b530d..5b9f20f239 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -228,6 +228,9 @@ devDependencies: showdown: specifier: ^2.1.0 version: 2.1.0 + tsx: + specifier: ^4.6.1 + version: 4.6.1 typescript: specifier: ^5.2.2 version: 5.2.2 @@ -5735,6 +5738,12 @@ packages: get-intrinsic: 1.2.2 dev: true + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + /get-uri@3.0.2: resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==} engines: {node: '>= 6'} @@ -8717,6 +8726,10 @@ packages: engines: {node: '>=8'} dev: false + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -9460,6 +9473,17 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + /tsx@4.6.1: + resolution: {integrity: sha512-OQ4TAPHXAPUo/NZAmmIybl0o8LFOTlycQxFepLBAp6EV87U88fOKYGCQI2viGAEOVU9UW/cgQcxcOMnfEKVY3Q==} + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + esbuild: 0.18.20 + get-tsconfig: 4.7.2 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /tuf-js@1.1.7: resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} From ae9d35a0c83f4160f22f0cbd18912b7305f64ca3 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Fri, 1 Dec 2023 11:28:28 +0900 Subject: [PATCH 50/72] chore: knex js to esm --- app/db/migrations/20220226100116_create-user.js | 4 ++-- app/db/migrations/20220402105114_add-user-settings.js | 4 ++-- .../20220403010151_add-users-not-null-constraint.js | 4 ++-- .../migrations/20220403022654_add-default-users-settings.js | 4 ++-- app/db/migrations/20220408030906_change-users-settings.js | 4 ++-- app/db/migrations/20220410120806_create-videos.js | 4 ++-- app/db/migrations/20220411031243_create-bookmarks.js | 4 ++-- app/db/migrations/20220417071104_create-practice-system.js | 4 ++-- app/db/migrations/20220504095705_add-deck-options.js | 4 ++-- .../20220507021215_modify-createdAt-updatedAt-not-null.js | 4 ++-- app/db/migrations/20220508102506_add-deck-randomize.js | 4 ++-- app/db/migrations/20220528054447_add-user-timezone.js | 4 ++-- .../20220709023840_add-videos-bookmark-entries-count.js | 4 ++-- ...20220709054554_add-practiceEntries-practiceActionsCount.js | 4 ++-- ...0220709064132_add-decks-practiceEntriesCountByQueueType.js | 4 ++-- .../20220709082116_create-index-practiceActions-createdAt.js | 4 ++-- 16 files changed, 32 insertions(+), 32 deletions(-) diff --git a/app/db/migrations/20220226100116_create-user.js b/app/db/migrations/20220226100116_create-user.js index 5c12b5b4b9..16d67df998 100644 --- a/app/db/migrations/20220226100116_create-user.js +++ b/app/db/migrations/20220226100116_create-user.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` CREATE TABLE users ( id BIGINT AUTO_INCREMENT, @@ -20,7 +20,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` DROP TABLE users; `); diff --git a/app/db/migrations/20220402105114_add-user-settings.js b/app/db/migrations/20220402105114_add-user-settings.js index 7a55c01b81..0afbce3065 100644 --- a/app/db/migrations/20220402105114_add-user-settings.js +++ b/app/db/migrations/20220402105114_add-user-settings.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` ALTER TABLE users ADD settings JSON DEFAULT NULL; `); @@ -12,7 +12,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` ALTER TABLE users DROP COLUMN settings; `); diff --git a/app/db/migrations/20220403010151_add-users-not-null-constraint.js b/app/db/migrations/20220403010151_add-users-not-null-constraint.js index 5717ac68a6..8305495e0f 100644 --- a/app/db/migrations/20220403010151_add-users-not-null-constraint.js +++ b/app/db/migrations/20220403010151_add-users-not-null-constraint.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` ALTER TABLE users MODIFY createdAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP `); @@ -15,7 +15,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` ALTER TABLE users MODIFY updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP `); diff --git a/app/db/migrations/20220403022654_add-default-users-settings.js b/app/db/migrations/20220403022654_add-default-users-settings.js index 79920d2bad..b243e714d4 100644 --- a/app/db/migrations/20220403022654_add-default-users-settings.js +++ b/app/db/migrations/20220403022654_add-default-users-settings.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` UPDATE users SET settings = JSON_OBJECT() WHERE settings IS NULL `); @@ -15,7 +15,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` ALTER TABLE users MODIFY settings JSON DEFAULT NULL `); diff --git a/app/db/migrations/20220408030906_change-users-settings.js b/app/db/migrations/20220408030906_change-users-settings.js index 71dedaae32..d954fadd6c 100644 --- a/app/db/migrations/20220408030906_change-users-settings.js +++ b/app/db/migrations/20220408030906_change-users-settings.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { if (process.env.MIGRATION_UNIT_TEST) await testUp.before(knex); await knex.raw(` @@ -21,7 +21,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { if (process.env.MIGRATION_UNIT_TEST) await testDown.before(knex); await knex.raw(` diff --git a/app/db/migrations/20220410120806_create-videos.js b/app/db/migrations/20220410120806_create-videos.js index a7e01d8e18..6943ee1475 100644 --- a/app/db/migrations/20220410120806_create-videos.js +++ b/app/db/migrations/20220410120806_create-videos.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` CREATE TABLE videos ( id BIGINT AUTO_INCREMENT, @@ -43,7 +43,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` DROP TABLE captionEntries; `); diff --git a/app/db/migrations/20220411031243_create-bookmarks.js b/app/db/migrations/20220411031243_create-bookmarks.js index e444181672..7dc2dabae6 100644 --- a/app/db/migrations/20220411031243_create-bookmarks.js +++ b/app/db/migrations/20220411031243_create-bookmarks.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` CREATE TABLE bookmarkEntries ( id BIGINT AUTO_INCREMENT, @@ -26,7 +26,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` DROP TABLE bookmarkEntries; `); diff --git a/app/db/migrations/20220417071104_create-practice-system.js b/app/db/migrations/20220417071104_create-practice-system.js index c13ddafb25..87afc933f9 100644 --- a/app/db/migrations/20220417071104_create-practice-system.js +++ b/app/db/migrations/20220417071104_create-practice-system.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` CREATE TABLE decks ( id BIGINT AUTO_INCREMENT, @@ -51,7 +51,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(`DROP TABLE practiceActions`); await knex.raw(`DROP TABLE practiceEntries`); await knex.raw(`DROP TABLE decks`); diff --git a/app/db/migrations/20220504095705_add-deck-options.js b/app/db/migrations/20220504095705_add-deck-options.js index a35ff6a53a..fe30c55105 100644 --- a/app/db/migrations/20220504095705_add-deck-options.js +++ b/app/db/migrations/20220504095705_add-deck-options.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` ALTER TABLE decks ADD newEntriesPerDay INTEGER NOT NULL DEFAULT 50, @@ -16,7 +16,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` ALTER TABLE decks DROP newEntriesPerDay, diff --git a/app/db/migrations/20220507021215_modify-createdAt-updatedAt-not-null.js b/app/db/migrations/20220507021215_modify-createdAt-updatedAt-not-null.js index b582dd0c63..72e998d136 100644 --- a/app/db/migrations/20220507021215_modify-createdAt-updatedAt-not-null.js +++ b/app/db/migrations/20220507021215_modify-createdAt-updatedAt-not-null.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { for (const table of TABLES) { await knex.raw(` ALTER TABLE ${table} MODIFY createdAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP; @@ -15,7 +15,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { for (const table of TABLES) { await knex.raw(` ALTER TABLE ${table} MODIFY updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; diff --git a/app/db/migrations/20220508102506_add-deck-randomize.js b/app/db/migrations/20220508102506_add-deck-randomize.js index c3f4e19eaf..b2f1eb1549 100644 --- a/app/db/migrations/20220508102506_add-deck-randomize.js +++ b/app/db/migrations/20220508102506_add-deck-randomize.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` ALTER TABLE decks ADD randomMode BOOL NOT NULL DEFAULT FALSE `); @@ -12,7 +12,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` ALTER TABLE decks DROP randomMode `); diff --git a/app/db/migrations/20220528054447_add-user-timezone.js b/app/db/migrations/20220528054447_add-user-timezone.js index e6f7f1e071..f2798fb8e5 100644 --- a/app/db/migrations/20220528054447_add-user-timezone.js +++ b/app/db/migrations/20220528054447_add-user-timezone.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` ALTER TABLE users ADD timezone VARCHAR(32) NOT NULL DEFAULT '+00:00' `); @@ -12,7 +12,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` ALTER TABLE users DROP timezone `); diff --git a/app/db/migrations/20220709023840_add-videos-bookmark-entries-count.js b/app/db/migrations/20220709023840_add-videos-bookmark-entries-count.js index 3fb94aff16..628f5debcf 100644 --- a/app/db/migrations/20220709023840_add-videos-bookmark-entries-count.js +++ b/app/db/migrations/20220709023840_add-videos-bookmark-entries-count.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` ALTER TABLE videos ADD bookmarkEntriesCount INT NOT NULL DEFAULT 0 `); @@ -12,7 +12,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` ALTER TABLE videos DROP bookmarkEntriesCount `); diff --git a/app/db/migrations/20220709054554_add-practiceEntries-practiceActionsCount.js b/app/db/migrations/20220709054554_add-practiceEntries-practiceActionsCount.js index 102af5a665..0ddc1dd2d0 100644 --- a/app/db/migrations/20220709054554_add-practiceEntries-practiceActionsCount.js +++ b/app/db/migrations/20220709054554_add-practiceEntries-practiceActionsCount.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` ALTER TABLE practiceEntries ADD practiceActionsCount INT NOT NULL DEFAULT 0 `); @@ -12,7 +12,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` ALTER TABLE practiceEntries DROP practiceActionsCount `); diff --git a/app/db/migrations/20220709064132_add-decks-practiceEntriesCountByQueueType.js b/app/db/migrations/20220709064132_add-decks-practiceEntriesCountByQueueType.js index de9d164ee7..dd7c9fc4cb 100644 --- a/app/db/migrations/20220709064132_add-decks-practiceEntriesCountByQueueType.js +++ b/app/db/migrations/20220709064132_add-decks-practiceEntriesCountByQueueType.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` ALTER TABLE decks ADD practiceEntriesCountByQueueType JSON NOT NULL DEFAULT (JSON_OBJECT('NEW', 0, 'LEARN', 0, 'REVIEW', 0)) `); @@ -12,7 +12,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` ALTER TABLE decks DROP practiceEntriesCountByQueueType `); diff --git a/app/db/migrations/20220709082116_create-index-practiceActions-createdAt.js b/app/db/migrations/20220709082116_create-index-practiceActions-createdAt.js index f5af9ad864..7a153cf5a7 100644 --- a/app/db/migrations/20220709082116_create-index-practiceActions-createdAt.js +++ b/app/db/migrations/20220709082116_create-index-practiceActions-createdAt.js @@ -2,7 +2,7 @@ * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.up = async function (knex) { +export const up = async function (knex) { await knex.raw(` ALTER TABLE practiceActions ADD KEY practiceActions_createdAt_key (createdAt) `); @@ -12,7 +12,7 @@ exports.up = async function (knex) { * @param { import("knex").Knex } knex * @returns { Promise } */ -exports.down = async function (knex) { +export const down = async function (knex) { await knex.raw(` ALTER TABLE practiceActions DROP KEY practiceActions_createdAt_key `); From 962b709aed0bc359c4b44635d82736989dbaff46 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Fri, 1 Dec 2023 11:58:41 +0900 Subject: [PATCH 51/72] chore: fix cjs scripts --- package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index b2d1d639e3..fa46587015 100644 --- a/package.json +++ b/package.json @@ -27,16 +27,16 @@ "build": "bash misc/vercel/build.sh", "release": "vercel deploy --prebuilt .", "release-production": "vercel deploy --prebuilt . --prod", - "cli": "node --require esbuild-register app/misc/cli.ts", - "cli-staging": "pnpm dotenv-staging node --require esbuild-register app/misc/cli.ts", - "cli-production": "pnpm dotenv-production node --require esbuild-register app/misc/cli.ts", - "console": "node -r esbuild-register -r ./app/misc/console.ts", - "console-staging": "pnpm dotenv-staging npm run console", - "console-production": "pnpm dotenv-production npm run console", + "cli": "tsx app/misc/cli.ts", + "cli-staging": "pnpm -s dotenv-staging pnpm -s cli", + "cli-production": "pnpm -s dotenv-production pnpm -s cli", + "console": "tsx -i -e \"setTimeout(() => import('./app/misc/console.ts'), 300)\"", + "console-staging": "pnpm -s dotenv-staging pnpm -s console", + "console-production": "pnpm -s dotenv-production pnpm -s console", "skeema": "cd app/db/skeema && skeema", "knex": "NODE_OPTIONS='--loader tsx/esm' knex --knexfile app/db/knexfile.mts", - "knex-staging": "pnpm dotenv-staging pnpm knex", - "knex-production": "pnpm dotenv-production pnpm knex", + "knex-staging": "pnpm -s dotenv-staging pnpm -s knex", + "knex-production": "pnpm -s dotenv-production pnpm -s knex", "dotenv-staging": "bash scripts/dotenv.sh .env.staging", "dotenv-production": "bash scripts/dotenv.sh .env.production", "tunnel": "cloudflared tunnel --url http://localhost:3000", From 3e628d041a72343ed100fa4f125e7533cb8475eb Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Fri, 1 Dec 2023 12:15:58 +0900 Subject: [PATCH 52/72] chore: obsolete comment --- app/misc/entry-express.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/misc/entry-express.ts b/app/misc/entry-express.ts index cde6dca88c..5a81bb872e 100644 --- a/app/misc/entry-express.ts +++ b/app/misc/entry-express.ts @@ -1,9 +1,6 @@ import { createMiddleware } from "@hattip/adapter-node"; import { createHattipEntry } from "./entry-hattip"; -// we can reuse express middleware both for dev and vercel (by patching @remix-run/dev) -// https://github.com/hattipjs/hattip/blob/03a704fa120dfe2eddd6cf22eff00c90bda2acb5/packages/bundler/bundler-vercel/readme.md - export default createMiddleware(createHattipEntry(), { trustProxy: true, }); From 8c706052742a929cf99e842210d3f6679f82e94e Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Fri, 1 Dec 2023 12:36:29 +0900 Subject: [PATCH 53/72] chore: comment --- vite.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/vite.config.ts b/vite.config.ts index cc30f2e0b9..8c00e7862d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -26,6 +26,7 @@ export default defineConfig({ remix({ routes: (defineRoutes) => createRoutesFromFolders(defineRoutes, { + // TODO: why "**/*.serer.*" breaks? ignoredFilePatterns: ["**/*.test.*"], }) as any, }), From bdd19e0e8bf9cc936069bb2bdb2dd83fa03da0e4 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sat, 2 Dec 2023 16:07:34 +0900 Subject: [PATCH 54/72] chore: replace @vavite/connect with vite-plugin-ssr-middleware --- app/misc/entry-express.ts | 3 ++- package.json | 2 +- pnpm-lock.yaml | 29 +++++++++++------------------ vite.config.ts | 15 +++++++-------- 4 files changed, 21 insertions(+), 28 deletions(-) diff --git a/app/misc/entry-express.ts b/app/misc/entry-express.ts index 5a81bb872e..26de503e0d 100644 --- a/app/misc/entry-express.ts +++ b/app/misc/entry-express.ts @@ -2,5 +2,6 @@ import { createMiddleware } from "@hattip/adapter-node"; import { createHattipEntry } from "./entry-hattip"; export default createMiddleware(createHattipEntry(), { - trustProxy: true, + alwaysCallNext: false, // avoid calling remix handler + trustProxy: !import.meta.env.DEV, }); diff --git a/package.json b/package.json index b0f05dfad9..3fed4a74f7 100644 --- a/package.json +++ b/package.json @@ -87,6 +87,7 @@ "@hiogawa/unocss-preset-antd": "2.2.1-pre.7", "@hiogawa/utils-node": "0.0.1-pre.5", "@hiogawa/vite-import-dev-server": "^0.0.1", + "@hiogawa/vite-plugin-ssr-middleware": "^0.0.0", "@iconify-json/ri": "^1.1.12", "@playwright/test": "^1.39.0", "@remix-run/dev": "0.0.0-nightly-bf6c0a4-20231129", @@ -97,7 +98,6 @@ "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", "@types/showdown": "^2.0.4", - "@vavite/connect": "^3.0.0", "@vitejs/plugin-react": "^4.1.1", "@vitest/coverage-v8": "^0.34.6", "c8": "^8.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e30a18792d..f562a929d3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -144,6 +144,9 @@ devDependencies: '@hiogawa/vite-import-dev-server': specifier: ^0.0.1 version: 0.0.1(vite@5.0.0) + '@hiogawa/vite-plugin-ssr-middleware': + specifier: ^0.0.0 + version: 0.0.0(vite@5.0.0) '@iconify-json/ri': specifier: ^1.1.12 version: 1.1.12 @@ -174,9 +177,6 @@ devDependencies: '@types/showdown': specifier: ^2.0.4 version: 2.0.4 - '@vavite/connect': - specifier: ^3.0.0 - version: 3.0.0(vite@5.0.0) '@vitejs/plugin-react': specifier: ^4.1.1 version: 4.1.1(vite@5.0.0) @@ -1618,6 +1618,14 @@ packages: vite: 5.0.0(@types/node@18.18.9) dev: true + /@hiogawa/vite-plugin-ssr-middleware@0.0.0(vite@5.0.0): + resolution: {integrity: sha512-o2rTmqdfOpbrqQEWD0OwqypnoDa+0FD9Sdm0gf4rx+6u7+fSTmKEuT+tgwyVhPU7zwWJU8ODAkk3k3O9+noHTg==} + peerDependencies: + vite: '*' + dependencies: + vite: 5.0.0(@types/node@18.18.9) + dev: true + /@iconify-json/ri@1.1.12: resolution: {integrity: sha512-s5VsyMWYuUuTB5bATJRoDQKGqo6W0dsxvOBrJI/P2H9QI7IAaAWl8zHxseSjoUGG6AwZwWwDMW9YPULPt+vA6w==} dependencies: @@ -2746,12 +2754,6 @@ packages: dependencies: undici-types: 5.26.5 - /@types/node@20.9.0: - resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} - dependencies: - undici-types: 5.26.5 - dev: true - /@types/prop-types@15.7.10: resolution: {integrity: sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==} dev: true @@ -3069,15 +3071,6 @@ packages: /@vanilla-extract/private@1.0.3: resolution: {integrity: sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ==} - /@vavite/connect@3.0.0(vite@5.0.0): - resolution: {integrity: sha512-qTbxzuXlHiCHdeIa5PUaq3Xcj6mDAONZBzRCHY4NlHh0+9etG0Lb5yU2dwLdUvumqQaGKNljWMl5WCJ0pkOGEw==} - peerDependencies: - vite: ^2.8.1 || 3 || 4 - dependencies: - '@types/node': 20.9.0 - vite: 5.0.0(@types/node@18.18.9) - dev: true - /@vitejs/plugin-react@4.1.1(vite@5.0.0): resolution: {integrity: sha512-Jie2HERK+uh27e+ORXXwEP5h0Y2lS9T2PRGbfebiHGlwzDO0dEnd2aNtOR/qjBlPb1YgxwAONeblL1xqLikLag==} engines: {node: ^14.18.0 || >=16.0.0} diff --git a/vite.config.ts b/vite.config.ts index 8c00e7862d..0f224abcb2 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,7 +1,8 @@ +import { objectPick } from "@hiogawa/utils"; import { importDevServerPlugin } from "@hiogawa/vite-import-dev-server"; +import { vitePluginSsrMiddleware } from "@hiogawa/vite-plugin-ssr-middleware"; import { unstable_vitePlugin as remix } from "@remix-run/dev"; import { createRoutesFromFolders } from "@remix-run/v1-route-convention"; -import { vaviteConnect } from "@vavite/connect"; import unocss from "unocss/vite"; import { defineConfig } from "vite"; @@ -14,11 +15,9 @@ export default defineConfig({ unocss(), importDevServerPlugin(), - // run our own middleware via vavite before remix - vaviteConnect({ - standalone: false, - serveClientAssetsInDev: true, - handlerEntry: "./app/misc/entry-express.ts", + // intercept all the requests before remix + vitePluginSsrMiddleware({ + entry: "./app/misc/entry-express.ts", }), // skip remix on vitest @@ -31,8 +30,8 @@ export default defineConfig({ }) as any, }), - // since remix overwrites ssr build output of vavite, - // we overwrite it back with extra plugin. + // since remix overwrites ssr build output of vitePluginSsrMiddleware, + // we need to overwrite it back with extra plugin. { name: "overwrite-remix-server-entry", config(config, env) { From 0175409aca726992567a87ba36f8bfb762b05524 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 3 Dec 2023 16:17:47 +0900 Subject: [PATCH 55/72] chore: tweak script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e30c25f311..27f928e065 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "console-staging": "pnpm -s dotenv-staging pnpm -s console", "console-production": "pnpm -s dotenv-production pnpm -s console", "skeema": "cd app/db/skeema && skeema", - "knex": "NODE_OPTIONS='--loader tsx/esm' knex --knexfile app/db/knexfile.mts", + "knex": "tsx node_modules/knex/bin/cli.js --knexfile app/db/knexfile.mts", "knex-staging": "pnpm -s dotenv-staging pnpm -s knex", "knex-production": "pnpm -s dotenv-production pnpm -s knex", "dotenv-staging": "bash scripts/dotenv.sh .env.staging", From 3b0c52bc6e5cbcb8aaf1458bc12f6329be7f256d Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 3 Dec 2023 16:22:08 +0900 Subject: [PATCH 56/72] fix: replace "require" --- app/db/migrations/20220408030906_change-users-settings.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/db/migrations/20220408030906_change-users-settings.js b/app/db/migrations/20220408030906_change-users-settings.js index d954fadd6c..f8737509b2 100644 --- a/app/db/migrations/20220408030906_change-users-settings.js +++ b/app/db/migrations/20220408030906_change-users-settings.js @@ -1,3 +1,5 @@ +import * as assert from "assert/strict"; + /** * @param { import("knex").Knex } knex * @returns { Promise } @@ -48,7 +50,7 @@ const testUp = { const [rows] = await knex.raw( `SELECT language1, language2 FROM users ORDER BY username` ); - require("assert").deepStrictEqual(rows, [ + assert.deepEqual(rows, [ { language1: null, language2: null }, { language1: "fr", language2: null }, { language1: "fr", language2: "en" }, @@ -70,7 +72,7 @@ const testDown = { const [rows] = await knex.raw( `SELECT settings FROM users ORDER BY username` ); - require("assert").deepStrictEqual(rows, [ + assert.deepEqual(rows, [ { settings: { language1: null, language2: null } }, { settings: { language1: "fr", language2: null } }, { settings: { language1: "fr", language2: "en" } }, From 67aeeaa28ecebcb681a9e5cf1c3fa735ddcf5175 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 3 Dec 2023 16:30:49 +0900 Subject: [PATCH 57/72] chore: replace __filename --- app/e2e/auth.test.ts | 12 ++++++------ app/e2e/bookmarks.test.ts | 4 ++-- app/e2e/decks.test.ts | 6 +++--- app/e2e/videos.test.ts | 6 +++--- app/routes/videos/index.test.ts | 2 +- app/trpc/routes/bookmarks.test.ts | 4 ++-- app/trpc/routes/decks.test.ts | 2 +- app/trpc/routes/videos.test.ts | 2 +- app/utils/practice-system.test.ts | 12 ++++++------ 9 files changed, 25 insertions(+), 25 deletions(-) diff --git a/app/e2e/auth.test.ts b/app/e2e/auth.test.ts index 25a5ecf535..6f762bc485 100644 --- a/app/e2e/auth.test.ts +++ b/app/e2e/auth.test.ts @@ -12,7 +12,7 @@ test("/users/register success", async ({ page }) => { // submit form // prettier-ignore { - const username = "user-" + hashString(__filename + "/users/register").slice(0, 8); + const username = "user-" + hashString("/users/register").slice(0, 8); await page.locator('data-test=register-form >> input[name=username]').fill(username); await page.locator('data-test=register-form >> input[name=password]').fill('password'); await page.locator('data-test=register-form >> input[name=passwordConfirmation]').fill('password'); @@ -43,7 +43,7 @@ test.describe("/users/signin", () => { const password = "password"; const user = useUserE2E(test, { password, - seed: __filename + "/users/signin", + seed: "/users/signin", }); test("basic", async ({ page }) => { @@ -86,7 +86,7 @@ test.describe("/users/signin", () => { test.describe("/users/me", () => { const user = useUserE2E(test, { - seed: __filename + "/users/me", + seed: "/users/me", }); test("with-session", async ({ page }) => { @@ -137,7 +137,7 @@ test.describe("/users/me", () => { }); test.describe("/users/signout", () => { - const { signin } = useUserE2E(test, { seed: __filename + "signout" }); + const { signin } = useUserE2E(test, { seed: "signout" }); test("basic", async ({ page }) => { await signin(page); @@ -153,7 +153,7 @@ test.describe("/users/signout", () => { test.describe("change email", () => { const user = useUserE2E(test, { - seed: __filename + "change email", + seed: "change email", }); test("basic", async ({ page }) => { @@ -193,7 +193,7 @@ test.describe("change email", () => { test.describe("reset password", () => { const user = useUserE2E(test, { - seed: __filename + "reset password", + seed: "reset password", }); const userEmail = "reset-password@dummy.local"; diff --git a/app/e2e/bookmarks.test.ts b/app/e2e/bookmarks.test.ts index aeb67d8bda..10edde80ed 100644 --- a/app/e2e/bookmarks.test.ts +++ b/app/e2e/bookmarks.test.ts @@ -3,7 +3,7 @@ import { test } from "./coverage"; import { useUserE2E, waitForHydration } from "./helper"; test.describe("bookmarks", () => { - const user = useUserE2E(test, { seed: __filename }); + const user = useUserE2E(test, { seed: "bookmarks" }); test.beforeAll(async () => { await user.isReady; @@ -53,7 +53,7 @@ test.describe("bookmarks", () => { }); test.describe("/bookmarks/history-chart", () => { - const userHook = useUserE2E(test, { seed: __filename }); + const userHook = useUserE2E(test, { seed: "/bookmarks/history-chart" }); test("requires login", async ({ page }) => { await page.goto("/bookmarks/history-chart"); diff --git a/app/e2e/decks.test.ts b/app/e2e/decks.test.ts index 7dbf1ddfb4..3e773a98d9 100644 --- a/app/e2e/decks.test.ts +++ b/app/e2e/decks.test.ts @@ -4,7 +4,7 @@ import { test } from "./coverage"; import { useUserE2E, waitForHydration } from "./helper"; test.describe("decks-empty", () => { - const user = useUserE2E(test, { seed: __filename }); + const user = useUserE2E(test, { seed: "decks-empty" }); test("decks => new-deck => edit-deck => delete-deck", async ({ page }) => { await user.signin(page); @@ -49,7 +49,7 @@ test.describe("decks-empty", () => { }); test.describe("decks-seed", () => { - const user = useUserE2E(test, { seed: __filename }); + const user = useUserE2E(test, { seed: "decks-seed" }); let deckId: number; test.beforeAll(async () => { @@ -164,7 +164,7 @@ test.describe("decks-seed", () => { }); test.describe("decks-import-export", () => { - const user = useUserE2E(test, { seed: __filename }); + const user = useUserE2E(test, { seed: "decks-import-export" }); test("basic", async ({ page }) => { await user.signin(page); diff --git a/app/e2e/videos.test.ts b/app/e2e/videos.test.ts index d6c7d6a40f..8d6b1c6800 100644 --- a/app/e2e/videos.test.ts +++ b/app/e2e/videos.test.ts @@ -7,7 +7,7 @@ import { useUserE2E, waitForHydration } from "./helper"; test.describe("videos-signed-in", () => { const user = useUserE2E(test, { - seed: __filename + "/users/me", + seed: "videos-signed-in", }); // prettier-ignore @@ -274,7 +274,7 @@ test("invalid videoId input", async ({ page }) => { test.describe("video playback rate", () => { const userHook = useUserE2E(test, { - seed: __filename + "video playback rate", + seed: "video playback rate", }); test.beforeAll(async () => { @@ -297,7 +297,7 @@ test.describe("video playback rate", () => { }); test.describe("videos deletion", () => { - const userHook = useUserE2E(test, { seed: __filename + "videos deletion" }); + const userHook = useUserE2E(test, { seed: "videos deletion" }); test.beforeAll(async () => { await userHook.isReady; diff --git a/app/routes/videos/index.test.ts b/app/routes/videos/index.test.ts index c7a77c5d87..52c7e09d91 100644 --- a/app/routes/videos/index.test.ts +++ b/app/routes/videos/index.test.ts @@ -9,7 +9,7 @@ import { loader } from "./index"; describe("videos/index.loader", () => { const hook = useUserVideo({ - seed: __filename, + seed: "videos/index.loader", }); it("basic", async () => { diff --git a/app/trpc/routes/bookmarks.test.ts b/app/trpc/routes/bookmarks.test.ts index 59cfe47359..96d776c830 100644 --- a/app/trpc/routes/bookmarks.test.ts +++ b/app/trpc/routes/bookmarks.test.ts @@ -8,7 +8,7 @@ import { rpcRoutes } from "../server"; describe(rpcRoutes.bookmarks_create, () => { const hook = useUserVideo({ - seed: __filename + "bookmarks_create", + seed: "bookmarks_create", }); it("basic", async () => { @@ -77,7 +77,7 @@ describe(rpcRoutes.bookmarks_create, () => { describe(rpcRoutes.bookmarks_historyChart, () => { const user = useUser({ - seed: __filename, + seed: "bookmarks_historyChart", }); beforeAll(async () => { diff --git a/app/trpc/routes/decks.test.ts b/app/trpc/routes/decks.test.ts index ea3c489399..cb08fedcca 100644 --- a/app/trpc/routes/decks.test.ts +++ b/app/trpc/routes/decks.test.ts @@ -6,7 +6,7 @@ import { rpcRoutes } from "../server"; describe(rpcRoutes.decks_practiceHistoryChart, () => { const user = useUser({ - seed: __filename, + seed: "decks_practiceHistoryChart", }); let deckId: number; diff --git a/app/trpc/routes/videos.test.ts b/app/trpc/routes/videos.test.ts index 9abd5d6a75..f32b0730b8 100644 --- a/app/trpc/routes/videos.test.ts +++ b/app/trpc/routes/videos.test.ts @@ -6,7 +6,7 @@ import { rpcRoutes } from "../server"; describe(rpcRoutes.videos_destroy, () => { const hook = useUserVideo({ - seed: __filename + "videos_destroy", + seed: "videos_destroy", }); function getVideos() { diff --git a/app/utils/practice-system.test.ts b/app/utils/practice-system.test.ts index a8741dc0bd..0bb55b5cfb 100644 --- a/app/utils/practice-system.test.ts +++ b/app/utils/practice-system.test.ts @@ -17,7 +17,7 @@ const NOW = new Date("2023-04-10T00:00:00Z"); describe("PracticeSystem", () => { const hook = useUserVideo({ - seed: __filename, + seed: "PracticeSystem", }); async function getStatistics(deckId: number) { @@ -27,7 +27,7 @@ describe("PracticeSystem", () => { it("basic", async () => { // TODO: move to `use...` helpers const [{ insertId: deckId }] = await db.insert(T.decks).values({ - name: __filename, + name: "test", userId: hook.user.id, cache: DEFAULT_DECK_CACHE, randomMode: false, @@ -160,7 +160,7 @@ describe("PracticeSystem", () => { // TODO: setup data it("randomMode", async () => { const [{ insertId: deckId }] = await db.insert(T.decks).values({ - name: __filename, + name: "test", userId: hook.user.id, cache: DEFAULT_DECK_CACHE, randomMode: true, @@ -177,7 +177,7 @@ describe("PracticeSystem", () => { describe("cache.nextEntriesRandomMode", () => { const userHook = useUser({ - seed: __filename + "randomMode", + seed: "randomMode", }); let deckId: number; @@ -231,7 +231,7 @@ describe("cache.nextEntriesRandomMode", () => { describe("queryNextPracticeEntryRandomModeBatch", () => { const userHook = useUser({ - seed: __filename + "randomMode", + seed: "queryNextPracticeEntryRandomModeBatch", }); let deckId: number; @@ -276,7 +276,7 @@ describe("queryNextPracticeEntryRandomModeBatch", () => { describe("DeckCache", () => { const userHook = useUser({ - seed: __filename + "randomMode", + seed: "DeckCache", }); let deckId: number; From d4ba2a3024203d76693bd84e084df3195b94f675 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 3 Dec 2023 16:49:31 +0900 Subject: [PATCH 58/72] chore: test esm deployment --- misc/vercel/.vc-config.json | 2 +- misc/vercel/build.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/misc/vercel/.vc-config.json b/misc/vercel/.vc-config.json index 4052d4570e..71542b2fe7 100644 --- a/misc/vercel/.vc-config.json +++ b/misc/vercel/.vc-config.json @@ -1,6 +1,6 @@ { "runtime": "nodejs18.x", - "handler": "index.js", + "handler": "index.mjs", "launcherType": "Nodejs", "regions": ["hnd1"] } diff --git a/misc/vercel/build.sh b/misc/vercel/build.sh index c1aaeb7c00..64846a8191 100644 --- a/misc/vercel/build.sh +++ b/misc/vercel/build.sh @@ -14,7 +14,7 @@ set -eu -o pipefail # functions/ # index.func/ # .vc-config.json -# index.js = (remix-outdir)/server/index.js +# index.mjs = (remix-outdir)/server/index.js # this_dir="$(dirname "${BASH_SOURCE[0]}")" @@ -29,10 +29,10 @@ mkdir -p .vercel/output/functions/index.func mkdir -p .vercel/output/functions/index.func cp "$this_dir/.vc-config.json" .vercel/output/functions/index.func/.vc-config.json npx esbuild build/server/index.js \ - --outfile=.vercel/output/functions/index.func/index.js \ + --outfile=.vercel/output/functions/index.func/index.mjs \ --metafile=build/server/esbuild-metafile.json \ --define:process.env.NODE_ENV='"production"' \ - --bundle --minify --format=cjs --platform=node \ + --bundle --minify --format=esm --platform=node \ --external:node:async_hooks # config.json From e385991d1962e78e599e7a7b5ce4ca658cf6ba55 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 3 Dec 2023 17:18:24 +0900 Subject: [PATCH 59/72] fix: esm require banner trick --- misc/vercel/build.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/misc/vercel/build.sh b/misc/vercel/build.sh index 64846a8191..411045eda3 100644 --- a/misc/vercel/build.sh +++ b/misc/vercel/build.sh @@ -26,12 +26,14 @@ mkdir -p .vercel/output mkdir -p .vercel/output/functions/index.func # serverless +# - esm banner trick from https://github.com/evanw/esbuild/pull/2067#issuecomment-1324171716 mkdir -p .vercel/output/functions/index.func cp "$this_dir/.vc-config.json" .vercel/output/functions/index.func/.vc-config.json npx esbuild build/server/index.js \ --outfile=.vercel/output/functions/index.func/index.mjs \ --metafile=build/server/esbuild-metafile.json \ --define:process.env.NODE_ENV='"production"' \ + --banner:js="import { createRequire } from 'module'; const require = createRequire(import.meta.url);" \ --bundle --minify --format=esm --platform=node \ --external:node:async_hooks From 0951c7bdab1afcb016e34166f31d4548c0e356e1 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 3 Dec 2023 17:49:47 +0900 Subject: [PATCH 60/72] chore: remove unused deps --- package.json | 3 -- pnpm-lock.yaml | 86 -------------------------------------------------- 2 files changed, 89 deletions(-) diff --git a/package.json b/package.json index 27f928e065..b29d2d7703 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,6 @@ "@remix-run/dev": "0.0.0-nightly-bf6c0a4-20231129", "@tsconfig/strictest": "^2.0.2", "@types/cookie": "^0.5.4", - "@types/express": "^4.17.21", "@types/node": "^18.18.9", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", @@ -103,8 +102,6 @@ "@vitest/coverage-v8": "^0.34.6", "c8": "^8.0.1", "esbuild": "^0.17.19", - "esbuild-register": "^3.5.0", - "express": "^4.18.2", "gh-pages": "^6.0.0", "happy-dom": "^9.20.3", "node-mailjet": "^6.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8921229f60..5e7cccf972 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -162,9 +162,6 @@ devDependencies: '@types/cookie': specifier: ^0.5.4 version: 0.5.4 - '@types/express': - specifier: ^4.17.21 - version: 4.17.21 '@types/node': specifier: ^18.18.9 version: 18.18.9 @@ -189,12 +186,6 @@ devDependencies: esbuild: specifier: ^0.17.19 version: 0.17.19 - esbuild-register: - specifier: ^3.5.0 - version: 3.5.0(esbuild@0.17.19) - express: - specifier: ^4.18.2 - version: 4.18.2 gh-pages: specifier: ^6.0.0 version: 6.0.0 @@ -2659,13 +2650,6 @@ packages: '@babel/types': 7.23.3 dev: true - /@types/body-parser@1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - dependencies: - '@types/connect': 3.4.38 - '@types/node': 18.18.9 - dev: true - /@types/chai-subset@1.3.5: resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} dependencies: @@ -2676,12 +2660,6 @@ packages: resolution: {integrity: sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==} dev: true - /@types/connect@3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - dependencies: - '@types/node': 18.18.9 - dev: true - /@types/cookie@0.5.4: resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} @@ -2698,24 +2676,6 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - /@types/express-serve-static-core@4.17.41: - resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} - dependencies: - '@types/node': 18.18.9 - '@types/qs': 6.9.10 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - dev: true - - /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.41 - '@types/qs': 6.9.10 - '@types/serve-static': 1.15.5 - dev: true - /@types/hast@2.3.8: resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==} dependencies: @@ -2725,10 +2685,6 @@ packages: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} dev: true - /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - dev: true - /@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} dev: true @@ -2741,14 +2697,6 @@ packages: /@types/mdx@2.0.10: resolution: {integrity: sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==} - /@types/mime@1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - dev: true - - /@types/mime@3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - dev: true - /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} @@ -2761,14 +2709,6 @@ packages: resolution: {integrity: sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==} dev: true - /@types/qs@6.9.10: - resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} - dev: true - - /@types/range-parser@1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - dev: true - /@types/react-dom@18.2.15: resolution: {integrity: sha512-HWMdW+7r7MR5+PZqJF6YFNSCtjz1T0dsvo/f1BV6HkV+6erD/nA7wd9NM00KVG83zf2nJ7uATPO9ttdIPvi3gg==} dependencies: @@ -2787,21 +2727,6 @@ packages: resolution: {integrity: sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==} dev: true - /@types/send@0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - dependencies: - '@types/mime': 1.3.5 - '@types/node': 18.18.9 - dev: true - - /@types/serve-static@1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} - dependencies: - '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 - '@types/node': 18.18.9 - dev: true - /@types/showdown@2.0.4: resolution: {integrity: sha512-cSXSKOpTSr2HTdlGq8WskyZwNyxKhM7M/zJeLVdWjlUQmQ4d8TdtPrwz4JejglZdzIzSgU5loi5QUaEJF9JD8w==} dev: true @@ -4233,17 +4158,6 @@ packages: local-pkg: 0.4.3 resolve.exports: 2.0.2 - /esbuild-register@3.5.0(esbuild@0.17.19): - resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} - peerDependencies: - esbuild: '>=0.12 <1' - dependencies: - debug: 4.3.4 - esbuild: 0.17.19 - transitivePeerDependencies: - - supports-color - dev: true - /esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} From e580f939c7f885d930a29e761f294cee9b4dd9f2 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 4 Dec 2023 09:19:14 +0900 Subject: [PATCH 61/72] chore: use `@hattip/adapter-node/native-fetch` --- app/misc/entry-express.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/misc/entry-express.ts b/app/misc/entry-express.ts index 26de503e0d..99fce84758 100644 --- a/app/misc/entry-express.ts +++ b/app/misc/entry-express.ts @@ -1,4 +1,4 @@ -import { createMiddleware } from "@hattip/adapter-node"; +import { createMiddleware } from "@hattip/adapter-node/native-fetch"; import { createHattipEntry } from "./entry-hattip"; export default createMiddleware(createHattipEntry(), { From 79ced34fbd6633a22eb847c8bd8f6bec09a03b4a Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 4 Dec 2023 12:46:00 +0900 Subject: [PATCH 62/72] chore: unused deps --- package.json | 2 -- pnpm-lock.yaml | 72 -------------------------------------------------- 2 files changed, 74 deletions(-) diff --git a/package.json b/package.json index 3fed4a74f7..540829eb05 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,6 @@ "@remix-run/dev": "0.0.0-nightly-bf6c0a4-20231129", "@tsconfig/strictest": "^2.0.2", "@types/cookie": "^0.5.4", - "@types/express": "^4.17.21", "@types/node": "^18.18.9", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", @@ -103,7 +102,6 @@ "c8": "^8.0.1", "esbuild": "^0.17.19", "esbuild-register": "^3.5.0", - "express": "^4.18.2", "gh-pages": "^6.0.0", "happy-dom": "^9.20.3", "node-mailjet": "^6.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f562a929d3..c44b78d5f9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -162,9 +162,6 @@ devDependencies: '@types/cookie': specifier: ^0.5.4 version: 0.5.4 - '@types/express': - specifier: ^4.17.21 - version: 4.17.21 '@types/node': specifier: ^18.18.9 version: 18.18.9 @@ -192,9 +189,6 @@ devDependencies: esbuild-register: specifier: ^3.5.0 version: 3.5.0(esbuild@0.17.19) - express: - specifier: ^4.18.2 - version: 4.18.2 gh-pages: specifier: ^6.0.0 version: 6.0.0 @@ -2656,13 +2650,6 @@ packages: '@babel/types': 7.23.3 dev: true - /@types/body-parser@1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - dependencies: - '@types/connect': 3.4.38 - '@types/node': 18.18.9 - dev: true - /@types/chai-subset@1.3.5: resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} dependencies: @@ -2673,12 +2660,6 @@ packages: resolution: {integrity: sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==} dev: true - /@types/connect@3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - dependencies: - '@types/node': 18.18.9 - dev: true - /@types/cookie@0.5.4: resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} @@ -2695,24 +2676,6 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - /@types/express-serve-static-core@4.17.41: - resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} - dependencies: - '@types/node': 18.18.9 - '@types/qs': 6.9.10 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - dev: true - - /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.41 - '@types/qs': 6.9.10 - '@types/serve-static': 1.15.5 - dev: true - /@types/hast@2.3.8: resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==} dependencies: @@ -2722,10 +2685,6 @@ packages: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} dev: true - /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - dev: true - /@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} dev: true @@ -2738,14 +2697,6 @@ packages: /@types/mdx@2.0.10: resolution: {integrity: sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==} - /@types/mime@1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - dev: true - - /@types/mime@3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - dev: true - /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} @@ -2758,14 +2709,6 @@ packages: resolution: {integrity: sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==} dev: true - /@types/qs@6.9.10: - resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} - dev: true - - /@types/range-parser@1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - dev: true - /@types/react-dom@18.2.15: resolution: {integrity: sha512-HWMdW+7r7MR5+PZqJF6YFNSCtjz1T0dsvo/f1BV6HkV+6erD/nA7wd9NM00KVG83zf2nJ7uATPO9ttdIPvi3gg==} dependencies: @@ -2784,21 +2727,6 @@ packages: resolution: {integrity: sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==} dev: true - /@types/send@0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - dependencies: - '@types/mime': 1.3.5 - '@types/node': 18.18.9 - dev: true - - /@types/serve-static@1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} - dependencies: - '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 - '@types/node': 18.18.9 - dev: true - /@types/showdown@2.0.4: resolution: {integrity: sha512-cSXSKOpTSr2HTdlGq8WskyZwNyxKhM7M/zJeLVdWjlUQmQ4d8TdtPrwz4JejglZdzIzSgU5loi5QUaEJF9JD8w==} dev: true From b59fe29b4fa05471b404ce2d7b64c57a8ef6d176 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 4 Dec 2023 12:50:37 +0900 Subject: [PATCH 63/72] chore: update @vitejs/plugin-react --- package.json | 2 +- pnpm-lock.yaml | 178 +++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 152 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 540829eb05..f7b1834abc 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", "@types/showdown": "^2.0.4", - "@vitejs/plugin-react": "^4.1.1", + "@vitejs/plugin-react": "^4.2.0", "@vitest/coverage-v8": "^0.34.6", "c8": "^8.0.1", "esbuild": "^0.17.19", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c44b78d5f9..a30b8c501c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -175,8 +175,8 @@ devDependencies: specifier: ^2.0.4 version: 2.0.4 '@vitejs/plugin-react': - specifier: ^4.1.1 - version: 4.1.1(vite@5.0.0) + specifier: ^4.2.0 + version: 4.2.0(vite@5.0.0) '@vitest/coverage-v8': specifier: ^0.34.6 version: 0.34.6(vitest@0.34.6) @@ -218,7 +218,7 @@ devDependencies: version: 5.2.2 unocss: specifier: ^0.57.6 - version: 0.57.6(postcss@8.4.31)(vite@5.0.0) + version: 0.57.6(postcss@8.4.32)(vite@5.0.0) vite: specifier: ^5.0.0 version: 5.0.0(@types/node@18.18.9) @@ -253,6 +253,14 @@ packages: '@babel/highlight': 7.22.20 chalk: 2.4.2 + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + /@babel/compat-data@7.23.3: resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} engines: {node: '>=6.9.0'} @@ -279,6 +287,29 @@ packages: transitivePeerDependencies: - supports-color + /@babel/core@7.23.5: + resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/helpers': 7.23.5 + '@babel/parser': 7.23.5 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/generator@7.23.3: resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} engines: {node: '>=6.9.0'} @@ -288,6 +319,16 @@ packages: '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 + /@babel/generator@7.23.5: + resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + dev: true + /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} @@ -363,6 +404,20 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} @@ -406,6 +461,11 @@ packages: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} @@ -424,6 +484,17 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helpers@7.23.5: + resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/highlight@7.22.20: resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} engines: {node: '>=6.9.0'} @@ -432,6 +503,15 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + /@babel/parser@7.23.3: resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} engines: {node: '>=6.0.0'} @@ -439,6 +519,14 @@ packages: dependencies: '@babel/types': 7.23.3 + /@babel/parser@7.23.5: + resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.5 + dev: true + /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==} engines: {node: '>=6.9.0'} @@ -477,23 +565,23 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -553,6 +641,24 @@ packages: transitivePeerDependencies: - supports-color + /@babel/traverse@7.23.5: + resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/types@7.23.3: resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} engines: {node: '>=6.9.0'} @@ -561,6 +667,15 @@ packages: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + /@babel/types@7.23.5: + resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true @@ -1581,7 +1696,7 @@ packages: peerDependencies: unocss: '*' dependencies: - unocss: 0.57.6(postcss@8.4.31)(vite@5.0.0) + unocss: 0.57.6(postcss@8.4.32)(vite@5.0.0) dev: true /@hiogawa/utils-hattip@0.0.1-pre.1: @@ -2621,11 +2736,11 @@ packages: dependencies: '@types/estree': 1.0.5 - /@types/babel__core@7.20.4: - resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 '@types/babel__generator': 7.6.7 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.4 @@ -2634,20 +2749,20 @@ packages: /@types/babel__generator@7.6.7: resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 dev: true /@types/babel__traverse@7.20.4: resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: true /@types/chai-subset@1.3.5: @@ -2799,7 +2914,7 @@ packages: sirv: 2.0.3 dev: true - /@unocss/postcss@0.57.6(postcss@8.4.31): + /@unocss/postcss@0.57.6(postcss@8.4.32): resolution: {integrity: sha512-xpyr9OHZ59iYr/e0vGgqc4kDGJLbVAvysChfe2xCmfXf2hrqVWwcEYoeE3zW/6xnEDNxk6IQBml2xLjdS34haA==} engines: {node: '>=14'} peerDependencies: @@ -2811,7 +2926,7 @@ packages: css-tree: 2.3.1 fast-glob: 3.3.2 magic-string: 0.30.5 - postcss: 8.4.31 + postcss: 8.4.32 dev: true /@unocss/preset-attributify@0.57.6: @@ -2999,16 +3114,16 @@ packages: /@vanilla-extract/private@1.0.3: resolution: {integrity: sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ==} - /@vitejs/plugin-react@4.1.1(vite@5.0.0): - resolution: {integrity: sha512-Jie2HERK+uh27e+ORXXwEP5h0Y2lS9T2PRGbfebiHGlwzDO0dEnd2aNtOR/qjBlPb1YgxwAONeblL1xqLikLag==} + /@vitejs/plugin-react@4.2.0(vite@5.0.0): + resolution: {integrity: sha512-+MHTH/e6H12kRp5HUkzOGqPMksezRMmW+TNzlh/QXfI8rRf6l2Z2yH/v12no1UvTwhZgEDMuQ7g7rrfMseU6FQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.2.0 + vite: ^4.2.0 || ^5.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.3) - '@types/babel__core': 7.20.4 + '@babel/core': 7.23.5 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.5) + '@types/babel__core': 7.20.5 react-refresh: 0.14.0 vite: 5.0.0(@types/node@18.18.9) transitivePeerDependencies: @@ -7031,6 +7146,15 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -8326,7 +8450,7 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - /unocss@0.57.6(postcss@8.4.31)(vite@5.0.0): + /unocss@0.57.6(postcss@8.4.32)(vite@5.0.0): resolution: {integrity: sha512-z3a4Z8lGRVawr2A/1U0FuP1M9tuT6bs2RcIJ6kLBz5FC/XlLTGtUek6sadrKA0IMq7RWkgDRhdt8xQV0lh6TaA==} engines: {node: '>=14'} peerDependencies: @@ -8342,7 +8466,7 @@ packages: '@unocss/cli': 0.57.6 '@unocss/core': 0.57.6 '@unocss/extractor-arbitrary-variants': 0.57.6 - '@unocss/postcss': 0.57.6(postcss@8.4.31) + '@unocss/postcss': 0.57.6(postcss@8.4.32) '@unocss/preset-attributify': 0.57.6 '@unocss/preset-icons': 0.57.6 '@unocss/preset-mini': 0.57.6 From 20c757042ff4b12bfe1633405cb240825be0d0a9 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 4 Dec 2023 12:53:57 +0900 Subject: [PATCH 64/72] chore: update opentelemetry --- package.json | 4 +- ... => @opentelemetry__sdk-node@0.45.1.patch} | 0 pnpm-lock.yaml | 373 +++++++----------- 3 files changed, 151 insertions(+), 226 deletions(-) rename patches/{@opentelemetry__sdk-node@0.39.1.patch => @opentelemetry__sdk-node@0.45.1.patch} (100%) diff --git a/package.json b/package.json index f7b1834abc..036963fb19 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@hiogawa/utils-react": "1.3.1-pre.0", "@js-temporal/polyfill": "^0.4.4", "@opentelemetry/api": "^1.7.0", - "@opentelemetry/sdk-node": "^0.39.1", + "@opentelemetry/sdk-node": "^0.45.1", "@opentelemetry/semantic-conventions": "^1.18.1", "@remix-run/react": "0.0.0-nightly-bf6c0a4-20231129", "@remix-run/server-runtime": "0.0.0-nightly-bf6c0a4-20231129", @@ -120,7 +120,7 @@ }, "pnpm": { "patchedDependencies": { - "@opentelemetry/sdk-node@0.39.1": "patches/@opentelemetry__sdk-node@0.39.1.patch" + "@opentelemetry/sdk-node@0.45.1": "patches/@opentelemetry__sdk-node@0.45.1.patch" } } } diff --git a/patches/@opentelemetry__sdk-node@0.39.1.patch b/patches/@opentelemetry__sdk-node@0.45.1.patch similarity index 100% rename from patches/@opentelemetry__sdk-node@0.39.1.patch rename to patches/@opentelemetry__sdk-node@0.45.1.patch diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a30b8c501c..3c55e0aa80 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,9 +5,9 @@ settings: excludeLinksFromLockfile: false patchedDependencies: - '@opentelemetry/sdk-node@0.39.1': + '@opentelemetry/sdk-node@0.45.1': hash: opznjwpbsym5sugb4owpkabxrq - path: patches/@opentelemetry__sdk-node@0.39.1.patch + path: patches/@opentelemetry__sdk-node@0.45.1.patch dependencies: '@floating-ui/react': @@ -68,8 +68,8 @@ dependencies: specifier: ^1.7.0 version: 1.7.0 '@opentelemetry/sdk-node': - specifier: ^0.39.1 - version: 0.39.1(patch_hash=opznjwpbsym5sugb4owpkabxrq)(@opentelemetry/api@1.7.0) + specifier: ^0.45.1 + version: 0.45.1(patch_hash=opznjwpbsym5sugb4owpkabxrq)(@opentelemetry/api@1.7.0) '@opentelemetry/semantic-conventions': specifier: ^1.18.1 version: 1.18.1 @@ -1529,8 +1529,8 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true - /@grpc/grpc-js@1.9.9: - resolution: {integrity: sha512-vQ1qwi/Kiyprt+uhb1+rHMpyk4CVRMTGNUGGPRGS7pLNfWkdCHrGEnT6T3/JyC2VZgoOX/X1KwdoU0WYQAeYcQ==} + /@grpc/grpc-js@1.9.12: + resolution: {integrity: sha512-Um5MBuge32TS3lAKX02PGCnFM4xPT996yLgZNb5H03pn6NyJ4Iwn5YcPq6Jj9yxGRk7WOgaZFtVRH5iTdYBeUg==} engines: {node: ^8.13.0 || >=10.10.0} dependencies: '@grpc/proto-loader': 0.7.10 @@ -1947,8 +1947,8 @@ packages: - supports-color dev: true - /@opentelemetry/api-logs@0.39.1: - resolution: {integrity: sha512-9BJ8lMcOzEN0lu+Qji801y707oFO4xT3db6cosPvl+k7ItUHKN5ofWqtSbM9gbt1H4JJ/4/2TVrqI9Rq7hNv6Q==} + /@opentelemetry/api-logs@0.45.1: + resolution: {integrity: sha512-zVGq/k70l+kB/Wuv3O/zhptP2hvDhEbhDu9EtHde1iWZJf3FedeYS/nWVcMBkkyPAjS/JKNk86WN4CBQLGUuOw==} engines: {node: '>=14'} dependencies: '@opentelemetry/api': 1.7.0 @@ -1959,102 +1959,91 @@ packages: engines: {node: '>=8.0.0'} dev: false - /@opentelemetry/context-async-hooks@1.13.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-pS5fU4lrRjOIPZQqA2V1SUM9QUFXbO+8flubAiy6ntLjnAjJJUdRFOUOxK6v86ZHI2p2S8A0vD0BTu95FZYvjA==} + /@opentelemetry/context-async-hooks@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-HHfJR32NH2x0b69CACCwH8m1dpNALoCTtpgmIWMNkeMGNUeKT48d4AX4xsF4uIRuUoRTbTgtSBRvS+cF97qwCQ==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' + '@opentelemetry/api': '>=1.0.0 <1.8.0' dependencies: '@opentelemetry/api': 1.7.0 dev: false - /@opentelemetry/core@1.13.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-2dBX3Sj99H96uwJKvc2w9NOiNgbvAO6mOFJFramNkKfS9O4Um+VWgpnlAazoYjT6kUJ1MP70KQ5ngD4ed+4NUw==} + /@opentelemetry/core@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' + '@opentelemetry/api': '>=1.0.0 <1.8.0' dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/semantic-conventions': 1.13.0 + '@opentelemetry/semantic-conventions': 1.18.1 dev: false - /@opentelemetry/exporter-jaeger@1.13.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-ke/STs/erRDqKmNv6Dv+5SetXsVD+Zm1/Wo8cLdAGrZn6kG6Fyp5EXVO/BJuzx6q+jHCdODm8jV4veXl4m71nQ==} + /@opentelemetry/exporter-trace-otlp-grpc@0.45.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-c/Wrn6LUqPiRgKhvMydau6kPz4ih6b/uwospiavjXju98ZfVv+KjaIF13cblW+4cQ6ZR3lm7t66umQfXrGBhPQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: + '@grpc/grpc-js': 1.9.12 '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/semantic-conventions': 1.13.0 - jaeger-client: 3.19.0 + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.7.0) dev: false - /@opentelemetry/exporter-trace-otlp-grpc@0.39.1(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-l5RhLKx6U+yuLhMrtgavTDthX50E1mZM3/SSySC7OPZiArFHV/b/9x9jxAzrOgIQUDxyj4N0V9aLKSA2t7Qzxg==} + /@opentelemetry/exporter-trace-otlp-http@0.45.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-a6CGqSG66n5R1mghzLMzyzn3iGap1b0v+0PjKFjfYuwLtpHQBxh2PHxItu+m2mXSwnM4R0GJlk9oUW5sQkCE0w==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@grpc/grpc-js': 1.9.9 '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-transformer': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.7.0) dev: false - /@opentelemetry/exporter-trace-otlp-http@0.39.1(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-AEhnJfVmo1g+7NxszAuf3c6vddld2DGH2+IM4XrPxCklucCsIpuStuC5EVZbCXXXBMpAY+n3t04QMxIQqNrcSw==} + /@opentelemetry/exporter-trace-otlp-proto@0.45.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-8QI6QARxNP4y9RUpuQxXjw2HyRNyeuD9CWEhS5ON44Mt+XP7YbOZR3GLx2Ml2JZ8uzB5dd2EGlMgaMuZe36D5Q==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-transformer': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-proto-exporter-base': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.7.0) dev: false - /@opentelemetry/exporter-trace-otlp-proto@0.39.1(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-oJQC7a67iwExRYynKqn/O9Fl5gUjDa43ZQsZu2iKAADs/6YJ+u5MJ/wcq3CpJsn2KU/8j8HWAKOcDkkQXPuJ9A==} + /@opentelemetry/exporter-zipkin@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-RmoWVFXFhvIh3q4szUe8I+/vxuMR0HNsOm39zNxnWJcK7JDwnPra9cLY/M78u6bTgB6Fte8GKgU128vvDzz0Iw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-proto-exporter-base': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-transformer': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.18.1 dev: false - /@opentelemetry/exporter-zipkin@1.13.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-4IuUmYEhlHm8tAGtd6KKkktEO9Bt7dpdBdAPVAzhmXsPwGi0yExo7E5qfi9HtHQcdfP9SnrGRkeorVtrZkGlhg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/semantic-conventions': 1.13.0 - dev: false - - /@opentelemetry/instrumentation@0.39.1(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-s7/9tPmM0l5KCd07VQizC4AO2/5UJdkXq5gMSHPdCeiMKSeBEdyDyQX7A+Cq+RYZM452qzFmrJ4ut628J5bnSg==} + /@opentelemetry/instrumentation@0.45.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-V1Cr0g8hSg35lpW3G/GYVZurrhHrQZJdmP68WyJ83f1FDn3iru+/Vnlto9kiOSm7PHhW+pZGdb9Fbv+mkQ31CA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 dependencies: '@opentelemetry/api': 1.7.0 + '@types/shimmer': 1.0.5 + import-in-the-middle: 1.4.2 require-in-the-middle: 7.2.0 semver: 7.5.4 shimmer: 1.2.1 @@ -2062,168 +2051,164 @@ packages: - supports-color dev: false - /@opentelemetry/otlp-exporter-base@0.39.1(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-Pv5X8fbi6jD/RJBePyn7MnCSuE6MbPB6dl+7YYBWJ5RcMGYMwvLXjd4h2jWsPV2TSUg38H/RoSP0aXvQ06Y7iw==} + /@opentelemetry/otlp-exporter-base@0.45.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Jvd6x8EwWGKEPWF4tkP4LpTPXiIkkafMNMvMJUfJd5DyNAftL1vAz+48jmi3URL2LMPkGryrvWPz8Tdu917gQw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) dev: false - /@opentelemetry/otlp-grpc-exporter-base@0.39.1(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-u3ErFRQqQFKjjIMuwLWxz/tLPYInfmiAmSy//fGSCzCh2ZdJgqQjMOAxBgqFtCF2xFL+OmMhyuC2ThMzceGRWA==} + /@opentelemetry/otlp-grpc-exporter-base@0.45.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-81X4mlzaAFoQCSXCgvYoMFyTy3mBhf8DD3J8bjW6/PH/rGZPJJkyYW0/YzepMrmBZXqlKZpTOU1aJ8sebVvDvw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@grpc/grpc-js': 1.9.9 + '@grpc/grpc-js': 1.9.12 '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.39.1(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.45.1(@opentelemetry/api@1.7.0) protobufjs: 7.2.5 dev: false - /@opentelemetry/otlp-proto-exporter-base@0.39.1(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-VssdfGYu6LkSliQATdkvoP8lPSQuNLENRdHTUOV2veF4iqY/UpxBFFlkarY29W+MYjWXIBfYntgNjQvcn78A+w==} + /@opentelemetry/otlp-proto-exporter-base@0.45.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-jtDkly6EW8TZHpbPpwJV9YT5PgbtL5B2UU8zcyGDiLT1wkIAYjFJZ1AqWmROIpydu8ohMq0dRwe4u0izNMdHpA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.39.1(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.45.1(@opentelemetry/api@1.7.0) protobufjs: 7.2.5 dev: false - /@opentelemetry/otlp-transformer@0.39.1(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-0hgVnXXz5efI382B/24NxD4b6Zxlh7nxCdJkxkdmQMbn0yRiwoq/ZT+QG8eUL6JNzsBAV1WJlF5aJNsL8skHvw==} + /@opentelemetry/otlp-transformer@0.45.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-FhIHgfC0b0XtoBrS5ISfva939yWffNl47ypXR8I7Ru+dunlySpmf2TLocKHYLHGcWiuoeSNO5O4dZCmSKOtpXw==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.5.0' + '@opentelemetry/api': '>=1.3.0 <1.8.0' dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/api-logs': 0.39.1 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-logs': 0.39.1(@opentelemetry/api-logs@0.39.1)(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-metrics': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.7.0) + '@opentelemetry/api-logs': 0.45.1 + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.45.1(@opentelemetry/api-logs@0.45.1)(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.7.0) dev: false - /@opentelemetry/propagator-b3@1.13.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-HOo91EI4UbuG8xQVLFziTzrcIn0MJQhy8m9jorh8aonb94jFVFi3CFNIiAnIGOabmnshJLOABxpYXsiPB8Xnzg==} + /@opentelemetry/propagator-b3@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-oSTUOsnt31JDx5SoEy27B5jE1/tiPvvE46w7CDKj0R5oZhCCfYH2bbSGa7NOOyDXDNqQDkgqU1DIV/xOd3f8pw==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' + '@opentelemetry/api': '>=1.0.0 <1.8.0' dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) dev: false - /@opentelemetry/propagator-jaeger@1.13.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-IV9TO+u1Jzm9mUDAD3gyXf89eyvgEJUY1t+GB5QmS4wjVeWrSMUtD0JjH3yG9SNqkrQOqOGJq7YUSSetW+Lf5Q==} + /@opentelemetry/propagator-jaeger@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Kh4M1Qewv0Tbmts6D8LgNzx99IjdE18LCmY/utMkgVyU7Bg31Yuj+X6ZyoIRKPcD2EV4rVkuRI16WVMRuGbhWA==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' + '@opentelemetry/api': '>=1.0.0 <1.8.0' dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) dev: false - /@opentelemetry/resources@1.13.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==} + /@opentelemetry/resources@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' + '@opentelemetry/api': '>=1.0.0 <1.8.0' dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/semantic-conventions': 1.13.0 + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.18.1 dev: false - /@opentelemetry/sdk-logs@0.39.1(@opentelemetry/api-logs@0.39.1)(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-/gmgKfZ1ZVFporKuwsewqIyvaUIGpv76JZ7lBpHQQPb37IMpaXO6pdqFI4ebHAWfNIm3akMyhmdtzivcgF3lgw==} + /@opentelemetry/sdk-logs@0.45.1(@opentelemetry/api-logs@0.45.1)(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-z0RRgW4LeKEKnhXS4F/HnqB6+7gsy63YK47F4XAJYHs4s1KKg8XnQ2RkbuL31i/a9nXkylttYtvsT50CGr487g==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.5.0' - '@opentelemetry/api-logs': '>=0.38.0' + '@opentelemetry/api': '>=1.4.0 <1.8.0' + '@opentelemetry/api-logs': '>=0.39.1' dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/api-logs': 0.39.1 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.7.0) + '@opentelemetry/api-logs': 0.45.1 + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.7.0) dev: false - /@opentelemetry/sdk-metrics@1.13.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-MOjZX6AnSOqLliCcZUrb+DQKjAWXBiGeICGbHAGe5w0BB18PJIeIo995lO5JSaFfHpmUMgJButTPfJJD27W3Vg==} + /@opentelemetry/sdk-metrics@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-TEFgeNFhdULBYiCoHbz31Y4PDsfjjxRp8Wmdp6ybLQZPqMNEb+dRq+XN8Xw3ivIgTaf9gYsomgV5ensX99RuEQ==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.5.0' + '@opentelemetry/api': '>=1.3.0 <1.8.0' dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.7.0) lodash.merge: 4.6.2 dev: false - /@opentelemetry/sdk-node@0.39.1(patch_hash=opznjwpbsym5sugb4owpkabxrq)(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-qODReBGNSdfRS5gvCFj1SdiIi/3ZFTZb0H1KvWE/OrTkklyL5RhIs7vDwvEGHmha+YpUu0Y2+R2+itSBSu/jCA==} + /@opentelemetry/sdk-node@0.45.1(patch_hash=opznjwpbsym5sugb4owpkabxrq)(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-VtYvlz2ydfJLuOUhCnGER69mz2KUYk3/kpbqI1FWlUP+kzTwivMuy7hIPPv6KmuOIMYWmW4lM+WyJACHqNvROw==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.5.0' + '@opentelemetry/api': '>=1.3.0 <1.8.0' dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-jaeger': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-trace-otlp-http': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-trace-otlp-proto': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-zipkin': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/instrumentation': 0.39.1(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-metrics': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-node': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/semantic-conventions': 1.13.0 + '@opentelemetry/api-logs': 0.45.1 + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-http': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-proto': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-zipkin': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.45.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.45.1(@opentelemetry/api-logs@0.45.1)(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-node': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.18.1 transitivePeerDependencies: - supports-color dev: false patched: true - /@opentelemetry/sdk-trace-base@1.13.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-moTiQtc0uPR1hQLt6gLDJH9IIkeBhgRb71OKjNHZPE1VF45fHtD6nBDi5J/DkTHTwYP5X3kBJLa3xN7ub6J4eg==} + /@opentelemetry/sdk-trace-base@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-tRHfDxN5dO+nop78EWJpzZwHsN1ewrZRVVwo03VJa3JQZxToRDH29/+MB24+yoa+IArerdr7INFJiX/iN4gjqg==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' + '@opentelemetry/api': '>=1.0.0 <1.8.0' dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/semantic-conventions': 1.13.0 + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.18.1 dev: false - /@opentelemetry/sdk-trace-node@1.13.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-FXA85lXKTsnbOflA/TBuBf2pmhD3c8uDjNjG0YqK+ap8UayfALmfJhf+aG1yBOUHevCY0JXJ4/xtbXExxpsMog==} + /@opentelemetry/sdk-trace-node@1.18.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-ML0l9TNlfLoplLF1F8lb95NGKgdm6OezDS3Ymqav9sYxMd5bnH2LZVzd4xEF+ov5vpZJOGdWxJMs2nC9no7+xA==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' + '@opentelemetry/api': '>=1.0.0 <1.8.0' dependencies: '@opentelemetry/api': 1.7.0 - '@opentelemetry/context-async-hooks': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/propagator-b3': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/propagator-jaeger': 1.13.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.7.0) + '@opentelemetry/context-async-hooks': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-b3': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-jaeger': 1.18.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.7.0) semver: 7.5.4 dev: false - /@opentelemetry/semantic-conventions@1.13.0: - resolution: {integrity: sha512-LMGqfSZkaMQXqewO0o1wvWr/2fQdCh4a3Sqlxka/UsJCe0cfLulh6x2aqnKLnsrSGiCq5rSCwvINd152i0nCqw==} - engines: {node: '>=14'} - dev: false - /@opentelemetry/semantic-conventions@1.18.1: resolution: {integrity: sha512-+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA==} engines: {node: '>=14'} @@ -2842,6 +2827,10 @@ packages: resolution: {integrity: sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==} dev: true + /@types/shimmer@1.0.5: + resolution: {integrity: sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==} + dev: false + /@types/showdown@2.0.4: resolution: {integrity: sha512-cSXSKOpTSr2HTdlGq8WskyZwNyxKhM7M/zJeLVdWjlUQmQ4d8TdtPrwz4JejglZdzIzSgU5loi5QUaEJF9JD8w==} dev: true @@ -3214,6 +3203,14 @@ packages: mime-types: 2.1.35 negotiator: 0.6.3 + /acorn-import-assertions@1.9.0(acorn@8.11.2): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.2 + dev: false + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -3260,10 +3257,6 @@ packages: string-width: 4.2.3 dev: true - /ansi-color@0.2.1: - resolution: {integrity: sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==} - dev: false - /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3493,16 +3486,6 @@ packages: base64-js: 1.5.1 ieee754: 1.2.1 - /bufrw@1.4.0: - resolution: {integrity: sha512-sWm8iPbqvL9+5SiYxXH73UOkyEbGQg7kyHQmReF89WJHQJw2eV4P/yZ0E+b71cczJ4pPobVhXxgQcmfSTgGHxQ==} - engines: {node: '>= 0.10.x'} - dependencies: - ansi-color: 0.2.1 - error: 7.0.2 - hexer: 1.5.0 - xtend: 4.0.2 - dev: false - /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: @@ -3691,6 +3674,10 @@ packages: engines: {node: '>=8'} dev: true + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + dev: false + /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -4189,13 +4176,6 @@ packages: is-arrayish: 0.2.1 dev: true - /error@7.0.2: - resolution: {integrity: sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==} - dependencies: - string-template: 0.2.1 - xtend: 4.0.2 - dev: false - /es-abstract@1.22.3: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} @@ -5063,17 +5043,6 @@ packages: /hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} - /hexer@1.5.0: - resolution: {integrity: sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==} - engines: {node: '>= 0.10.x'} - hasBin: true - dependencies: - ansi-color: 0.2.1 - minimist: 1.2.8 - process: 0.10.1 - xtend: 4.0.2 - dev: false - /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -5183,6 +5152,15 @@ packages: engines: {node: '>= 4'} dev: true + /import-in-the-middle@1.4.2: + resolution: {integrity: sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==} + dependencies: + acorn: 8.11.2 + acorn-import-assertions: 1.9.0(acorn@8.11.2) + cjs-module-lexer: 1.2.3 + module-details-from-path: 1.0.3 + dev: false + /import-lazy@4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} @@ -5543,17 +5521,6 @@ packages: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - /jaeger-client@3.19.0: - resolution: {integrity: sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==} - engines: {node: '>=10'} - dependencies: - node-int64: 0.4.0 - opentracing: 0.14.7 - thriftrw: 3.11.4 - uuid: 8.3.2 - xorshift: 1.2.0 - dev: false - /javascript-stringify@2.1.0: resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} @@ -5760,11 +5727,6 @@ packages: chalk: 4.1.2 is-unicode-supported: 0.1.0 - /long@2.4.0: - resolution: {integrity: sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==} - engines: {node: '>=0.6'} - dev: false - /long@5.2.3: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} dev: false @@ -6532,10 +6494,6 @@ packages: - supports-color dev: true - /node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - dev: false - /node-mailjet@6.0.4: resolution: {integrity: sha512-gNWfbVnsH+KxkhfDLPA8OrQ2Q25OgyKp19C7DSJYmN2zNfqTKIXzhB9BZwgxZtErmPxz2Fp1NR18WPCmrJDuwg==} engines: {node: '>= 12.0.0', npm: '>= 6.9.0'} @@ -6764,11 +6722,6 @@ packages: dependencies: mimic-fn: 2.1.0 - /opentracing@0.14.7: - resolution: {integrity: sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==} - engines: {node: '>=0.10'} - dev: false - /ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} @@ -7182,11 +7135,6 @@ packages: /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - /process@0.10.1: - resolution: {integrity: sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==} - engines: {node: '>= 0.6.0'} - dev: false - /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -7973,10 +7921,6 @@ packages: /string-hash@1.1.3: resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} - /string-template@0.2.1: - resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==} - dev: false - /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -8165,16 +8109,6 @@ packages: minimatch: 3.1.2 dev: true - /thriftrw@3.11.4: - resolution: {integrity: sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA==} - engines: {node: '>= 0.10.x'} - hasBin: true - dependencies: - bufrw: 1.4.0 - error: 7.0.2 - long: 2.4.0 - dev: false - /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: @@ -8556,11 +8490,6 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: false - /uvu@0.5.6: resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} engines: {node: '>=8'} @@ -8941,10 +8870,6 @@ packages: engines: {node: '>=12'} dev: true - /xorshift@1.2.0: - resolution: {integrity: sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==} - dev: false - /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} From d5bae80f7bf3cd089c89869a0a41449a66ee8530 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Tue, 5 Dec 2023 08:52:51 +0900 Subject: [PATCH 65/72] chore: update icheck-ts dog-fooding https://github.com/hi-ogawa/js-utils/pull/184 --- package.json | 4 ++-- pnpm-lock.yaml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f7944c062e..bee05a220c 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "lint-check": "run-s lint-check:*", "lint:isort": "pnpm lint-check:isort --fix", "lint-check:isort": "isort-ts --git --cache", - "lint-check:icheck": "icheck-ts $(find app -name '*.ts' -o -name '*.tsx') --cache --ignore 'ErrorBoundary|default|loader|handle|shouldRevalidate|up|down'", + "lint-check:icheck": "tsx --experimental-import-meta-resolve ./node_modules/@hiogawa/icheck-ts/bin/cli.js $(find app -name '*.ts' -o -name '*.tsx') --ignore 'ErrorBoundary|default|loader|handle|shouldRevalidate|up|down' --ignoreUnresolved '^virtual:'", "lint:prettier": "prettier -w --cache .", "lint-check:prettier": "prettier -c --cache .", "test": "NODE_ENV=test vitest", @@ -81,7 +81,7 @@ "zod": "^3.22.4" }, "devDependencies": { - "@hiogawa/icheck-ts": "0.0.1-pre.15", + "@hiogawa/icheck-ts": "0.0.1-pre.17", "@hiogawa/isort-ts": "1.1.2-pre.0", "@hiogawa/tiny-cli": "0.0.4-pre.1", "@hiogawa/tiny-form": "0.0.1-pre.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cb0bd26710..1e5b1e6ba8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -124,8 +124,8 @@ dependencies: devDependencies: '@hiogawa/icheck-ts': - specifier: 0.0.1-pre.15 - version: 0.0.1-pre.15(typescript@5.2.2) + specifier: 0.0.1-pre.17 + version: 0.0.1-pre.17(typescript@5.2.2) '@hiogawa/isort-ts': specifier: 1.1.2-pre.0 version: 1.1.2-pre.0(prettier@2.8.8)(typescript@5.2.2) @@ -1576,8 +1576,8 @@ packages: resolution: {integrity: sha512-zcUOvlral68ua/27HbjGWZsAwCVt9q7ShDv5bPDngARhbhOhtCrp48EhphkOkjGo2VHC3rgD2O9tHvq5qxUmmw==} dev: false - /@hiogawa/icheck-ts@0.0.1-pre.15(typescript@5.2.2): - resolution: {integrity: sha512-3nZH2DfX6qrpDrPqgpYC20qH1n/zHI4J6U7ZB/RQbgvgUncfbmLzguw1tnQ2RllVC5WmS2Jb6W2us1ZcWSSD4g==} + /@hiogawa/icheck-ts@0.0.1-pre.17(typescript@5.2.2): + resolution: {integrity: sha512-NTJ6vh6KL7ch5oILUfNdd0MXqUJii3joMx0ZArn4s+UXiK3UjUu00XDWVIaxS1NLQLOM9e6cB0Z4wtLpbpi6ew==} hasBin: true peerDependencies: typescript: '*' From 39c1cc092f25f1533a06362c512a555a4fd3d2b2 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Tue, 5 Dec 2023 14:07:35 +0900 Subject: [PATCH 66/72] chore: update icheck-ts and node --- package.json | 4 ++-- pnpm-lock.yaml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index bee05a220c..2ad778ee72 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "zod": "^3.22.4" }, "devDependencies": { - "@hiogawa/icheck-ts": "0.0.1-pre.17", + "@hiogawa/icheck-ts": "0.0.1-pre.19", "@hiogawa/isort-ts": "1.1.2-pre.0", "@hiogawa/tiny-cli": "0.0.4-pre.1", "@hiogawa/tiny-form": "0.0.1-pre.10", @@ -117,7 +117,7 @@ "vitest": "^0.34.6" }, "volta": { - "node": "18.16.0" + "node": "18.19.0" }, "pnpm": { "patchedDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e5b1e6ba8..37659d537e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -124,8 +124,8 @@ dependencies: devDependencies: '@hiogawa/icheck-ts': - specifier: 0.0.1-pre.17 - version: 0.0.1-pre.17(typescript@5.2.2) + specifier: 0.0.1-pre.19 + version: 0.0.1-pre.19(typescript@5.2.2) '@hiogawa/isort-ts': specifier: 1.1.2-pre.0 version: 1.1.2-pre.0(prettier@2.8.8)(typescript@5.2.2) @@ -1576,8 +1576,8 @@ packages: resolution: {integrity: sha512-zcUOvlral68ua/27HbjGWZsAwCVt9q7ShDv5bPDngARhbhOhtCrp48EhphkOkjGo2VHC3rgD2O9tHvq5qxUmmw==} dev: false - /@hiogawa/icheck-ts@0.0.1-pre.17(typescript@5.2.2): - resolution: {integrity: sha512-NTJ6vh6KL7ch5oILUfNdd0MXqUJii3joMx0ZArn4s+UXiK3UjUu00XDWVIaxS1NLQLOM9e6cB0Z4wtLpbpi6ew==} + /@hiogawa/icheck-ts@0.0.1-pre.19(typescript@5.2.2): + resolution: {integrity: sha512-P589v2yUJZCic0Wj2DRsV6ka0SVTIw6n9AKO3xjzG/fuEkEzkoXO2UFcGqB6TFYRcxmSFfg+w1Vw+Tmyw2wn9A==} hasBin: true peerDependencies: typescript: '*' From 73a438a5efa51da61f0f10bbb5ccc3d13d673001 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Thu, 7 Dec 2023 17:06:24 +0900 Subject: [PATCH 67/72] chore: move vitest.config to vite.config --- vite.config.ts | 16 ++++++++++++++-- vitest.config.ts | 17 ----------------- 2 files changed, 14 insertions(+), 19 deletions(-) delete mode 100644 vitest.config.ts diff --git a/vite.config.ts b/vite.config.ts index 0f224abcb2..01d1140bdf 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,10 +1,9 @@ -import { objectPick } from "@hiogawa/utils"; import { importDevServerPlugin } from "@hiogawa/vite-import-dev-server"; import { vitePluginSsrMiddleware } from "@hiogawa/vite-plugin-ssr-middleware"; import { unstable_vitePlugin as remix } from "@remix-run/dev"; import { createRoutesFromFolders } from "@remix-run/v1-route-convention"; import unocss from "unocss/vite"; -import { defineConfig } from "vite"; +import { defineConfig } from "vitest/config"; export default defineConfig({ clearScreen: false, @@ -61,4 +60,17 @@ export default defineConfig({ }, }, }, + test: { + dir: "./app", + include: ["**/*.test.{ts,tsx}"], + exclude: ["**/e2e/**"], + environment: "happy-dom", + globalSetup: ["./app/misc/test-setup-global.ts"], + setupFiles: ["./app/misc/test-setup.ts"], + coverage: { + provider: "v8", + reporter: ["text", "html"], + reportsDirectory: "coverage/unit", + }, + }, }); diff --git a/vitest.config.ts b/vitest.config.ts deleted file mode 100644 index 2747b62652..0000000000 --- a/vitest.config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { defineConfig } from "vitest/config"; - -export default defineConfig({ - test: { - dir: "./app", - include: ["**/*.test.{ts,tsx}"], - exclude: ["**/e2e/**"], - environment: "happy-dom", - globalSetup: ["./app/misc/test-setup-global.ts"], - setupFiles: ["./app/misc/test-setup.ts"], - coverage: { - provider: "v8", - reporter: ["text", "html"], - reportsDirectory: "coverage/unit", - }, - }, -}); From 7a53a10b99cb8695e67e635c49e352891968f910 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 11 Dec 2023 13:48:39 +0900 Subject: [PATCH 68/72] chore: install @vitest/ui --- package.json | 1 + pnpm-lock.yaml | 41 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 036963fb19..c36834464d 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "@types/showdown": "^2.0.4", "@vitejs/plugin-react": "^4.2.0", "@vitest/coverage-v8": "^0.34.6", + "@vitest/ui": "^1.0.4", "c8": "^8.0.1", "esbuild": "^0.17.19", "esbuild-register": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c55e0aa80..9e851b8ca8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -180,6 +180,9 @@ devDependencies: '@vitest/coverage-v8': specifier: ^0.34.6 version: 0.34.6(vitest@0.34.6) + '@vitest/ui': + specifier: ^1.0.4 + version: 1.0.4(vitest@0.34.6) c8: specifier: ^8.0.1 version: 8.0.1 @@ -224,7 +227,7 @@ devDependencies: version: 5.0.0(@types/node@18.18.9) vitest: specifier: ^0.34.6 - version: 0.34.6(happy-dom@9.20.3) + version: 0.34.6(@vitest/ui@1.0.4)(happy-dom@9.20.3) packages: @@ -3135,7 +3138,7 @@ packages: std-env: 3.4.3 test-exclude: 6.0.0 v8-to-istanbul: 9.1.3 - vitest: 0.34.6(happy-dom@9.20.3) + vitest: 0.34.6(@vitest/ui@1.0.4)(happy-dom@9.20.3) transitivePeerDependencies: - supports-color dev: true @@ -3170,6 +3173,21 @@ packages: tinyspy: 2.2.0 dev: true + /@vitest/ui@1.0.4(vitest@0.34.6): + resolution: {integrity: sha512-gd4p6e7pjukSe4joWS5wpnm/JcEfzCZUYkYWQOORqJK1mDJ0MOaXa/9BbPOEVO5TcvdnKvFJUdJpFHnqoyYwZA==} + peerDependencies: + vitest: ^1.0.0 + dependencies: + '@vitest/utils': 1.0.4 + fast-glob: 3.3.2 + fflate: 0.8.1 + flatted: 3.2.9 + pathe: 1.1.1 + picocolors: 1.0.0 + sirv: 2.0.3 + vitest: 0.34.6(@vitest/ui@1.0.4)(happy-dom@9.20.3) + dev: true + /@vitest/utils@0.34.6: resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} dependencies: @@ -3178,6 +3196,14 @@ packages: pretty-format: 29.7.0 dev: true + /@vitest/utils@1.0.4: + resolution: {integrity: sha512-gsswWDXxtt0QvtK/y/LWukN7sGMYmnCcv1qv05CsY6cU/Y1zpGX1QuvLs+GO1inczpE6Owixeel3ShkjhYtGfA==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true + /@web3-storage/multipart-parser@1.0.0: resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} @@ -4559,6 +4585,10 @@ packages: dependencies: format: 0.2.2 + /fflate@0.8.1: + resolution: {integrity: sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==} + dev: true + /filename-reserved-regex@2.0.0: resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} engines: {node: '>=4'} @@ -4617,6 +4647,10 @@ packages: locate-path: 6.0.0 path-exists: 4.0.0 + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: true + /follow-redirects@1.15.3: resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} engines: {node: '>=4.0'} @@ -8654,7 +8688,7 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vitest@0.34.6(happy-dom@9.20.3): + /vitest@0.34.6(@vitest/ui@1.0.4)(happy-dom@9.20.3): resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} hasBin: true @@ -8692,6 +8726,7 @@ packages: '@vitest/runner': 0.34.6 '@vitest/snapshot': 0.34.6 '@vitest/spy': 0.34.6 + '@vitest/ui': 1.0.4(vitest@0.34.6) '@vitest/utils': 0.34.6 acorn: 8.11.2 acorn-walk: 8.3.0 From 098bd6868aab87527688057db58fb0cf5d9c42fa Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Dec 2023 18:33:39 +0900 Subject: [PATCH 69/72] chore: more ignoredFilePatterns --- package.json | 3 +++ pnpm-lock.yaml | 5 ++++- vite.config.ts | 11 ++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c36834464d..cc29ef6a2c 100644 --- a/package.json +++ b/package.json @@ -122,6 +122,9 @@ "pnpm": { "patchedDependencies": { "@opentelemetry/sdk-node@0.45.1": "patches/@opentelemetry__sdk-node@0.45.1.patch" + }, + "overrides": { + "@remix-run/dev": "0.0.0-nightly-bf6c0a4-20231129" } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e851b8ca8..6d04520d82 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@remix-run/dev': 0.0.0-nightly-bf6c0a4-20231129 + patchedDependencies: '@opentelemetry/sdk-node@0.45.1': hash: opznjwpbsym5sugb4owpkabxrq @@ -2453,7 +2456,7 @@ packages: /@remix-run/v1-route-convention@0.1.4(@remix-run/dev@0.0.0-nightly-bf6c0a4-20231129): resolution: {integrity: sha512-fVTr9YlNLWfaiM/6Y56sOtcY8x1bBJQHY0sDWO5+Z/vjJ2Ni7fe2fwrzs1jUFciMPXqBQdFGePnkuiYLz3cuUA==} peerDependencies: - '@remix-run/dev': ^1.15.0 || ^2.0.0 + '@remix-run/dev': 0.0.0-nightly-bf6c0a4-20231129 dependencies: '@remix-run/dev': 0.0.0-nightly-bf6c0a4-20231129(@types/node@18.18.9)(typescript@5.2.2)(vite@5.0.0) minimatch: 7.4.6 diff --git a/vite.config.ts b/vite.config.ts index 01d1140bdf..8db46d91d2 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -22,11 +22,12 @@ export default defineConfig({ // skip remix on vitest !process.env.VITEST && remix({ - routes: (defineRoutes) => - createRoutesFromFolders(defineRoutes, { - // TODO: why "**/*.serer.*" breaks? - ignoredFilePatterns: ["**/*.test.*"], - }) as any, + ignoredRouteFiles: ["**/*"], + routes: (defineRoutes) => { + return createRoutesFromFolders(defineRoutes, { + ignoredFilePatterns: ["**/*.test.*", "**/*.server.*"], + }) as any; + }, }), // since remix overwrites ssr build output of vitePluginSsrMiddleware, From a8d8bea218ffb8595bce1c2ad000852abc628c26 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Dec 2023 18:52:07 +0900 Subject: [PATCH 70/72] chore: simplify FOUC hack --- app/entry.server.tsx | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/app/entry.server.tsx b/app/entry.server.tsx index 6f92ca4d91..d5f716d837 100644 --- a/app/entry.server.tsx +++ b/app/entry.server.tsx @@ -17,22 +17,23 @@ const handleDocumentRequest: HandleDocumentRequestFunction = async ( ); - let style: string; + let styleHrefs: string[] = []; if (import.meta.env.DEV) { - // inject CSS to quickly workaround FOUC during dev - // since vite/unocss will inject css on client via javascript later. - // this would essentially create a duplicate style, - // but that's not usually a problem for utility-class based styling. + // cf. https://github.com/hi-ogawa/vite-plugins/blob/009cd6d2bc50312ec541753ac8e65a8b8be24b8f/packages/demo/vite-plugin-ssr-css.ts#L18-L25 tinyassert(viteDevServer); - const unocss = await viteDevServer.ssrLoadModule("virtual:uno.css"); - style = ``; + const [, resolvedId] = await viteDevServer.moduleGraph.resolveUrl( + "virtual:uno.css" + ); + styleHrefs = [`${resolvedId}?direct`]; } else { - // since we don't use , we have to inject unocss output manually. + // since we don't use , we inject unocss output manually. const root = remixContext.manifest.routes["root"]; - tinyassert(root && root.css && root.css[0]); - style = ``; + styleHrefs = root.css ?? []; } + const style = styleHrefs + .map((href) => ``) + .join("\n"); const documentHtml = await renderToDocument(ssrHtml, style); responseHeaders.set("content-type", "text/html"); return new Response(documentHtml, { From 1e8c36f4865e3e96fc01840cadf141991fc9de74 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Tue, 26 Dec 2023 16:40:16 +0900 Subject: [PATCH 71/72] fix: fix vercel cache header --- misc/vercel/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/vercel/config.json b/misc/vercel/config.json index 0f99076cc3..5da3244632 100644 --- a/misc/vercel/config.json +++ b/misc/vercel/config.json @@ -2,7 +2,7 @@ "version": 3, "routes": [ { - "src": "^/build/(.*)$", + "src": "^/assets/(.*)$", "headers": { "cache-control": "public, immutable, max-age=31536000" } From 80aa46095180acbcc33ade96809c8951adb1d558 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Tue, 26 Dec 2023 19:48:55 +0900 Subject: [PATCH 72/72] chore: tweak "createRequire" banner --- misc/vercel/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/vercel/build.sh b/misc/vercel/build.sh index 411045eda3..a856090157 100644 --- a/misc/vercel/build.sh +++ b/misc/vercel/build.sh @@ -33,7 +33,7 @@ npx esbuild build/server/index.js \ --outfile=.vercel/output/functions/index.func/index.mjs \ --metafile=build/server/esbuild-metafile.json \ --define:process.env.NODE_ENV='"production"' \ - --banner:js="import { createRequire } from 'module'; const require = createRequire(import.meta.url);" \ + --banner:js="const require = (await import('node:module')).createRequire(import.meta.url);" \ --bundle --minify --format=esm --platform=node \ --external:node:async_hooks